<?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>146556</bug_id>
          
          <creation_ts>2015-07-02 12:39:43 -0700</creation_ts>
          <short_desc>Drop RefPtr::clear() method</short_desc>
          <delta_ts>2015-07-04 12:43:29 -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>Web Template Framework</component>
          <version>528+ (Nightly build)</version>
          <rep_platform>Unspecified</rep_platform>
          <op_sys>Unspecified</op_sys>
          <bug_status>RESOLVED</bug_status>
          <resolution>FIXED</resolution>
          
          
          <bug_file_loc></bug_file_loc>
          <status_whiteboard></status_whiteboard>
          <keywords></keywords>
          <priority>P2</priority>
          <bug_severity>Normal</bug_severity>
          <target_milestone>---</target_milestone>
          
          
          <everconfirmed>1</everconfirmed>
          <reporter name="Chris Dumez">cdumez</reporter>
          <assigned_to name="Chris Dumez">cdumez</assigned_to>
          <cc>andersca</cc>
    
    <cc>beidson</cc>
    
    <cc>commit-queue</cc>
    
    <cc>darin</cc>
    
    <cc>sam</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>1106441</commentid>
    <comment_count>0</comment_count>
    <who name="Chris Dumez">cdumez</who>
    <bug_when>2015-07-02 12:39:43 -0700</bug_when>
    <thetext>Drop RefPtr::clear() method as we are instructing people to use &quot;= nullptr&quot; pattern instead.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1106442</commentid>
    <comment_count>1</comment_count>
      <attachid>256024</attachid>
    <who name="Chris Dumez">cdumez</who>
    <bug_when>2015-07-02 12:41:03 -0700</bug_when>
    <thetext>Created attachment 256024
WIP Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1106444</commentid>
    <comment_count>2</comment_count>
      <attachid>256026</attachid>
    <who name="Chris Dumez">cdumez</who>
    <bug_when>2015-07-02 13:02:54 -0700</bug_when>
    <thetext>Created attachment 256026
WIP Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1106446</commentid>
    <comment_count>3</comment_count>
      <attachid>256027</attachid>
    <who name="Chris Dumez">cdumez</who>
    <bug_when>2015-07-02 13:14:49 -0700</bug_when>
    <thetext>Created attachment 256027
WIP Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1106455</commentid>
    <comment_count>4</comment_count>
      <attachid>256031</attachid>
    <who name="Chris Dumez">cdumez</who>
    <bug_when>2015-07-02 13:54:17 -0700</bug_when>
    <thetext>Created attachment 256031
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1106469</commentid>
    <comment_count>5</comment_count>
    <who name="Brady Eidson">beidson</who>
    <bug_when>2015-07-02 14:20:38 -0700</bug_when>
    <thetext>I think this is a super great thing to do, and even started poking around it myself.

I did notice that the mechanics behind operator=(T*) and .clear() are subtly different, and I wasn&apos;t able to immediately convince myself there was 0-risk of a change in performance characteristics.

I brought this up to Chris on IRC, and I believe he&apos;s digging in more detail.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1106472</commentid>
    <comment_count>6</comment_count>
    <who name="Darin Adler">darin</who>
    <bug_when>2015-07-02 14:27:34 -0700</bug_when>
    <thetext>If there is any performance cost to using operator= we can overload it for std::nullptr_t.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1106474</commentid>
    <comment_count>7</comment_count>
    <who name="Chris Dumez">cdumez</who>
    <bug_when>2015-07-02 14:28:55 -0700</bug_when>
    <thetext>(In reply to comment #6)
&gt; If there is any performance cost to using operator= we can overload it for
&gt; std::nullptr_t.

Right. I&apos;ll benchmark locally to confirm if there is a noticeable performance difference between clear() and our current operator=(T*).</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1106800</commentid>
    <comment_count>8</comment_count>
      <attachid>256126</attachid>
    <who name="Chris Dumez">cdumez</who>
    <bug_when>2015-07-03 19:09:38 -0700</bug_when>
    <thetext>Created attachment 256126
WIP Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1106801</commentid>
    <comment_count>9</comment_count>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2015-07-03 19:12:40 -0700</bug_when>
    <thetext>Attachment 256126 did not pass style-queue:


ERROR: Source/WebKit/Storage/StorageAreaSync.cpp:91:  One space before end of line comments  [whitespace/comments] [5]
Total errors found: 1 in 187 files


If any of these errors are false positives, please file a bug against check-webkit-style.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1106802</commentid>
    <comment_count>10</comment_count>
      <attachid>256127</attachid>
    <who name="Chris Dumez">cdumez</who>
    <bug_when>2015-07-03 19:36:37 -0700</bug_when>
    <thetext>Created attachment 256127
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1106811</commentid>
    <comment_count>11</comment_count>
      <attachid>256129</attachid>
    <who name="Chris Dumez">cdumez</who>
    <bug_when>2015-07-03 20:13:58 -0700</bug_when>
    <thetext>Created attachment 256129
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1106812</commentid>
    <comment_count>12</comment_count>
      <attachid>256130</attachid>
    <who name="Chris Dumez">cdumez</who>
    <bug_when>2015-07-03 20:36:29 -0700</bug_when>
    <thetext>Created attachment 256130
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1106813</commentid>
    <comment_count>13</comment_count>
      <attachid>256131</attachid>
    <who name="Chris Dumez">cdumez</who>
    <bug_when>2015-07-03 20:40:43 -0700</bug_when>
    <thetext>Created attachment 256131
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1106814</commentid>
    <comment_count>14</comment_count>
      <attachid>256132</attachid>
    <who name="Chris Dumez">cdumez</who>
    <bug_when>2015-07-03 20:52:39 -0700</bug_when>
    <thetext>Created attachment 256132
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1106817</commentid>
    <comment_count>15</comment_count>
      <attachid>256133</attachid>
    <who name="Chris Dumez">cdumez</who>
    <bug_when>2015-07-03 21:05:06 -0700</bug_when>
    <thetext>Created attachment 256133
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1106818</commentid>
    <comment_count>16</comment_count>
      <attachid>256134</attachid>
    <who name="Chris Dumez">cdumez</who>
    <bug_when>2015-07-03 21:22:45 -0700</bug_when>
    <thetext>Created attachment 256134
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1106819</commentid>
    <comment_count>17</comment_count>
      <attachid>256135</attachid>
    <who name="Chris Dumez">cdumez</who>
    <bug_when>2015-07-03 21:28:15 -0700</bug_when>
    <thetext>Created attachment 256135
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1106820</commentid>
    <comment_count>18</comment_count>
      <attachid>256136</attachid>
    <who name="Chris Dumez">cdumez</who>
    <bug_when>2015-07-03 21:36:34 -0700</bug_when>
    <thetext>Created attachment 256136
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1106821</commentid>
    <comment_count>19</comment_count>
    <who name="Brady Eidson">beidson</who>
    <bug_when>2015-07-03 22:19:37 -0700</bug_when>
    <thetext>GETTING SO CLOSE!

Damned Windows build!</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1106822</commentid>
    <comment_count>20</comment_count>
    <who name="Chris Dumez">cdumez</who>
    <bug_when>2015-07-03 22:21:33 -0700</bug_when>
    <thetext>(In reply to comment #19)
&gt; GETTING SO CLOSE!
&gt; 
&gt; Damned Windows build!

No no, the Windows EWS issue is unrelated :) The patch is ready.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1106825</commentid>
    <comment_count>21</comment_count>
    <who name="Brady Eidson">beidson</who>
    <bug_when>2015-07-03 23:11:03 -0700</bug_when>
    <thetext>Really?

https://webkit-queues.appspot.com/results/5659624707457024

c:\cygwin\home\buildbot\webkit\source\webcore\dom\Position.h(95): error C2039: &apos;clear&apos; : is not a member of &apos;WTF::RefPtr&lt;WebCore::Node&gt;&apos; (..\page\win\EventHandlerWin.cpp) [C:\cygwin\home\buildbot\WebKit\Source\WebCore\WebCore.vcxproj\WebCore.vcxproj]
c:\cygwin\home\buildbot\webkit\source\webcore\dom\RangeBoundaryPoint.h(115): error C2039: &apos;clear&apos; : is not a member of &apos;WTF::RefPtr&lt;WebCore::Node&gt;&apos; (..\page\win\EventHandlerWin.cpp) [C:\cygwin\home\buildbot\WebKit\Source\WebCore\WebCore.vcxproj\WebCore.vcxproj]
c:\cygwin\home\buildbot\webkit\source\webcore\dom\RangeBoundaryPoint.h(117): error C2593: &apos;operator =&apos; is ambiguous (..\page\win\EventHandlerWin.cpp) [C:\cygwin\home\buildbot\WebKit\Source\WebCore\WebCore.vcxproj\WebCore.vcxproj]

etc etc.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1106828</commentid>
    <comment_count>22</comment_count>
    <who name="Chris Dumez">cdumez</who>
    <bug_when>2015-07-03 23:17:30 -0700</bug_when>
    <thetext>(In reply to comment #21)
&gt; Really?
&gt; 
&gt; https://webkit-queues.appspot.com/results/5659624707457024
&gt; 
&gt; c:\cygwin\home\buildbot\webkit\source\webcore\dom\Position.h(95): error
&gt; C2039: &apos;clear&apos; : is not a member of &apos;WTF::RefPtr&lt;WebCore::Node&gt;&apos;
&gt; (..\page\win\EventHandlerWin.cpp)
&gt; [C:\cygwin\home\buildbot\WebKit\Source\WebCore\WebCore.vcxproj\WebCore.
&gt; vcxproj]
&gt; c:\cygwin\home\buildbot\webkit\source\webcore\dom\RangeBoundaryPoint.h(115):
&gt; error C2039: &apos;clear&apos; : is not a member of &apos;WTF::RefPtr&lt;WebCore::Node&gt;&apos;
&gt; (..\page\win\EventHandlerWin.cpp)
&gt; [C:\cygwin\home\buildbot\WebKit\Source\WebCore\WebCore.vcxproj\WebCore.
&gt; vcxproj]
&gt; c:\cygwin\home\buildbot\webkit\source\webcore\dom\RangeBoundaryPoint.h(117):
&gt; error C2593: &apos;operator =&apos; is ambiguous (..\page\win\EventHandlerWin.cpp)
&gt; [C:\cygwin\home\buildbot\WebKit\Source\WebCore\WebCore.vcxproj\WebCore.
&gt; vcxproj]
&gt; 
&gt; etc etc.

Weird, I missed those when I looked. I&apos;ll fix them, thanks.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1106832</commentid>
    <comment_count>23</comment_count>
      <attachid>256139</attachid>
    <who name="Chris Dumez">cdumez</who>
    <bug_when>2015-07-03 23:34:17 -0700</bug_when>
    <thetext>Created attachment 256139
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1106854</commentid>
    <comment_count>24</comment_count>
      <attachid>256139</attachid>
    <who name="Brady Eidson">beidson</who>
    <bug_when>2015-07-04 08:08:29 -0700</bug_when>
    <thetext>Comment on attachment 256139
Patch

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

&gt; Source/JavaScriptCore/parser/Parser.cpp:494
&gt; +        lastPattern = TreeDestructuringPattern(0);

Is this one necessary?

&gt; Source/JavaScriptCore/parser/Parser.cpp:897
&gt; +            pattern = TreeDestructuringPattern(0);

Or this one?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1106855</commentid>
    <comment_count>25</comment_count>
      <attachid>256139</attachid>
    <who name="Brady Eidson">beidson</who>
    <bug_when>2015-07-04 08:09:19 -0700</bug_when>
    <thetext>Comment on attachment 256139
Patch

r+ but please make sure it won&apos;t break anything else.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1106861</commentid>
    <comment_count>26</comment_count>
    <who name="Chris Dumez">cdumez</who>
    <bug_when>2015-07-04 09:17:50 -0700</bug_when>
    <thetext>(In reply to comment #24)
&gt; Comment on attachment 256139 [details]
&gt; Patch
&gt; 
&gt; View in context:
&gt; https://bugs.webkit.org/attachment.cgi?id=256139&amp;action=review
&gt; 
&gt; &gt; Source/JavaScriptCore/parser/Parser.cpp:494
&gt; &gt; +        lastPattern = TreeDestructuringPattern(0);
&gt; 
&gt; Is this one necessary?
&gt; 
&gt; &gt; Source/JavaScriptCore/parser/Parser.cpp:897
&gt; &gt; +            pattern = TreeDestructuringPattern(0);
&gt; 
&gt; Or this one?

The reason I did this is because the functions are templated and depending on the template parameter, lastPattern / pattern can be either an int or a RefPtr. Therefore, using eight &quot;= 0;&quot; or &quot;= nullptr;&quot; wouldn&apos;t build. Calling the TreeDestructuringPattern constructor explicitly is the simplest workaround I found.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1106882</commentid>
    <comment_count>27</comment_count>
      <attachid>256139</attachid>
    <who name="Chris Dumez">cdumez</who>
    <bug_when>2015-07-04 12:43:21 -0700</bug_when>
    <thetext>Comment on attachment 256139
Patch

Clearing flags on attachment: 256139

Committed r186279: &lt;http://trac.webkit.org/changeset/186279&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1106883</commentid>
    <comment_count>28</comment_count>
    <who name="Chris Dumez">cdumez</who>
    <bug_when>2015-07-04 12:43:29 -0700</bug_when>
    <thetext>All reviewed patches have been landed.  Closing bug.</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>256024</attachid>
            <date>2015-07-02 12:41:03 -0700</date>
            <delta_ts>2015-07-02 13:02:54 -0700</delta_ts>
            <desc>WIP Patch</desc>
            <filename>RefPtr_clear_wip.patch</filename>
            <type>text/plain</type>
            <size>81092</size>
            <attacher name="Chris Dumez">cdumez</attacher>
            
              <data encoding="base64">ZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9BUEkvSlNWYWx1ZVJlZi5jcHAgYi9T
b3VyY2UvSmF2YVNjcmlwdENvcmUvQVBJL0pTVmFsdWVSZWYuY3BwCmluZGV4IDc1OWE2NWEuLjU0
NDA1ZTIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9BUEkvSlNWYWx1ZVJlZi5j
cHAKKysrIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL0FQSS9KU1ZhbHVlUmVmLmNwcApAQCAtNDIy
LDcgKzQyMiw3IEBAIEpTU3RyaW5nUmVmIEpTVmFsdWVUb1N0cmluZ0NvcHkoSlNDb250ZXh0UmVm
IGN0eCwgSlNWYWx1ZVJlZiB2YWx1ZSwgSlNWYWx1ZVJlZioKICAgICAKICAgICBSZWZQdHI8T3Bh
cXVlSlNTdHJpbmc+IHN0cmluZ1JlZihPcGFxdWVKU1N0cmluZzo6Y3JlYXRlKGpzVmFsdWUudG9T
dHJpbmcoZXhlYyktPnZhbHVlKGV4ZWMpKSk7CiAgICAgaWYgKGhhbmRsZUV4Y2VwdGlvbklmTmVl
ZGVkKGV4ZWMsIGV4Y2VwdGlvbikgPT0gRXhjZXB0aW9uU3RhdHVzOjpEaWRUaHJvdykKLSAgICAg
ICAgc3RyaW5nUmVmLmNsZWFyKCk7CisgICAgICAgIHN0cmluZ1JlZiA9IG51bGxwdHI7CiAgICAg
cmV0dXJuIHN0cmluZ1JlZi5yZWxlYXNlKCkubGVha1JlZigpOwogfQogCmRpZmYgLS1naXQgYS9T
b3VyY2UvSmF2YVNjcmlwdENvcmUvYnl0ZWNvZGUvQ2FsbExpbmtJbmZvLmNwcCBiL1NvdXJjZS9K
YXZhU2NyaXB0Q29yZS9ieXRlY29kZS9DYWxsTGlua0luZm8uY3BwCmluZGV4IDcyYTBjMjQuLmQ5
MjAwOTggMTAwNjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ieXRlY29kZS9DYWxsTGlu
a0luZm8uY3BwCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ieXRlY29kZS9DYWxsTGlua0lu
Zm8uY3BwCkBAIC00Myw3ICs0Myw3IEBAIHZvaWQgQ2FsbExpbmtJbmZvOjpjbGVhclN0dWIoKQog
ICAgICAgICByZXR1cm47CiAKICAgICBtX3N0dWItPmNsZWFyQ2FsbE5vZGVzRm9yKHRoaXMpOwot
ICAgIG1fc3R1Yi5jbGVhcigpOworICAgIG1fc3R1YiA9IG51bGxwdHI7CiB9CiAKIHZvaWQgQ2Fs
bExpbmtJbmZvOjp1bmxpbmsoUmVwYXRjaEJ1ZmZlciYgcmVwYXRjaEJ1ZmZlcikKZGlmZiAtLWdp
dCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ieXRlY29kZS9TdHJ1Y3R1cmVTdHViSW5mby5oIGIv
U291cmNlL0phdmFTY3JpcHRDb3JlL2J5dGVjb2RlL1N0cnVjdHVyZVN0dWJJbmZvLmgKaW5kZXgg
ZWM4Yjc5Yy4uZDQwMmFjZSAxMDA2NDQKLS0tIGEvU291cmNlL0phdmFTY3JpcHRDb3JlL2J5dGVj
b2RlL1N0cnVjdHVyZVN0dWJJbmZvLmgKKysrIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL2J5dGVj
b2RlL1N0cnVjdHVyZVN0dWJJbmZvLmgKQEAgLTE0OSw4ICsxNDksOCBAQCBzdHJ1Y3QgU3RydWN0
dXJlU3R1YkluZm8gewogICAgIHsKICAgICAgICAgZGVyZWYoKTsKICAgICAgICAgYWNjZXNzVHlw
ZSA9IGFjY2Vzc191bnNldDsKLSAgICAgICAgc3R1YlJvdXRpbmUuY2xlYXIoKTsKLSAgICAgICAg
d2F0Y2hwb2ludHMuY2xlYXIoKTsKKyAgICAgICAgc3R1YlJvdXRpbmUgPSBudWxscHRyOworICAg
ICAgICB3YXRjaHBvaW50cyA9IG51bGxwdHI7CiAgICAgfQogCiAgICAgdm9pZCBkZXJlZigpOwpk
aWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL2RmZy9ERkdHcmFwaC5oIGIvU291cmNl
L0phdmFTY3JpcHRDb3JlL2RmZy9ERkdHcmFwaC5oCmluZGV4IGJhYzUzOGYuLjdmNjc5NDYgMTAw
NjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9kZmcvREZHR3JhcGguaAorKysgYi9Tb3Vy
Y2UvSmF2YVNjcmlwdENvcmUvZGZnL0RGR0dyYXBoLmgKQEAgLTQ0Myw3ICs0NDMsNyBAQCBwdWJs
aWM6CiAgICAgCiAgICAgdm9pZCBraWxsQmxvY2soQmxvY2tJbmRleCBibG9ja0luZGV4KQogICAg
IHsKLSAgICAgICAgbV9ibG9ja3NbYmxvY2tJbmRleF0uY2xlYXIoKTsKKyAgICAgICAgbV9ibG9j
a3NbYmxvY2tJbmRleF0gPSBudWxscHRyOwogICAgIH0KICAgICAKICAgICB2b2lkIGtpbGxCbG9j
ayhCYXNpY0Jsb2NrKiBiYXNpY0Jsb2NrKQpkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRD
b3JlL2RmZy9ERkdPcGVyYXRpb25zLmNwcCBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9kZmcvREZH
T3BlcmF0aW9ucy5jcHAKaW5kZXggYTk5YTNmYS4uNmY5NTEyYiAxMDA2NDQKLS0tIGEvU291cmNl
L0phdmFTY3JpcHRDb3JlL2RmZy9ERkdPcGVyYXRpb25zLmNwcAorKysgYi9Tb3VyY2UvSmF2YVNj
cmlwdENvcmUvZGZnL0RGR09wZXJhdGlvbnMuY3BwCkBAIC0xNDQ3LDcgKzE0NDcsNyBAQCBjaGFy
KiBKSVRfT1BFUkFUSU9OIHRyaWdnZXJPU1JFbnRyeU5vdygKICAgICAgICAgCiAgICAgICAgIC8v
IE9TUiBlbnRyeSBmYWlsZWQuIE9oIG5vISBUaGlzIGltcGxpZXMgdGhhdCB3ZSBuZWVkIHRvIHJl
dHJ5LiBXZSByZXRyeQogICAgICAgICAvLyB3aXRob3V0IGV4cG9uZW50aWFsIGJhY2tvZmYgYW5k
IHdlIG9ubHkgZG8gdGhpcyBmb3IgdGhlIGVudHJ5IGNvZGUgYmxvY2suCi0gICAgICAgIGppdENv
ZGUtPm9zckVudHJ5QmxvY2suY2xlYXIoKTsKKyAgICAgICAgaml0Q29kZS0+b3NyRW50cnlCbG9j
ayA9IG51bGxwdHI7CiAgICAgICAgIGppdENvZGUtPm9zckVudHJ5UmV0cnkgPSAwOwogICAgICAg
ICByZXR1cm4gMDsKICAgICB9CmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvaW5z
cGVjdG9yL0NvbnNvbGVNZXNzYWdlLmNwcCBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9pbnNwZWN0
b3IvQ29uc29sZU1lc3NhZ2UuY3BwCmluZGV4IGEwNGE5N2QuLjlhYzBkZGVlIDEwMDY0NAotLS0g
YS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvaW5zcGVjdG9yL0NvbnNvbGVNZXNzYWdlLmNwcAorKysg
Yi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvaW5zcGVjdG9yL0NvbnNvbGVNZXNzYWdlLmNwcApAQCAt
MjczLDcgKzI3Myw3IEBAIHZvaWQgQ29uc29sZU1lc3NhZ2U6OmNsZWFyKCkKICAgICAgICAgbV9t
ZXNzYWdlID0gQVNDSUlMaXRlcmFsKCI8bWVzc2FnZSBjb2xsZWN0ZWQ+Iik7CiAKICAgICBpZiAo
bV9hcmd1bWVudHMpCi0gICAgICAgIG1fYXJndW1lbnRzLmNsZWFyKCk7CisgICAgICAgIG1fYXJn
dW1lbnRzID0gbnVsbHB0cjsKIH0KIAogSlNDOjpFeGVjU3RhdGUqIENvbnNvbGVNZXNzYWdlOjpz
Y3JpcHRTdGF0ZSgpIGNvbnN0CmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvaW5z
cGVjdG9yL0pTR2xvYmFsT2JqZWN0SW5zcGVjdG9yQ29udHJvbGxlci5jcHAgYi9Tb3VyY2UvSmF2
YVNjcmlwdENvcmUvaW5zcGVjdG9yL0pTR2xvYmFsT2JqZWN0SW5zcGVjdG9yQ29udHJvbGxlci5j
cHAKaW5kZXggNTdmNTJjNS4uMTFkODZlZCAxMDA2NDQKLS0tIGEvU291cmNlL0phdmFTY3JpcHRD
b3JlL2luc3BlY3Rvci9KU0dsb2JhbE9iamVjdEluc3BlY3RvckNvbnRyb2xsZXIuY3BwCisrKyBi
L1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9pbnNwZWN0b3IvSlNHbG9iYWxPYmplY3RJbnNwZWN0b3JD
b250cm9sbGVyLmNwcApAQCAtMTMxLDcgKzEzMSw3IEBAIHZvaWQgSlNHbG9iYWxPYmplY3RJbnNw
ZWN0b3JDb250cm9sbGVyOjpkaXNjb25uZWN0RnJvbnRlbmQoRGlzY29ubmVjdFJlYXNvbiByZWFz
CiAgICAgbV9hZ2VudHMud2lsbERlc3Ryb3lGcm9udGVuZEFuZEJhY2tlbmQocmVhc29uKTsKIAog
ICAgIG1fYmFja2VuZERpc3BhdGNoZXItPmNsZWFyRnJvbnRlbmQoKTsKLSAgICBtX2JhY2tlbmRE
aXNwYXRjaGVyLmNsZWFyKCk7CisgICAgbV9iYWNrZW5kRGlzcGF0Y2hlciA9IG51bGxwdHI7CiAg
ICAgbV9mcm9udGVuZENoYW5uZWwgPSBudWxscHRyOwogCiAgICAgbV9pc0F1dG9tYXRpY0luc3Bl
Y3Rpb24gPSBmYWxzZTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9pbnNwZWN0
b3IvYWdlbnRzL0luc3BlY3RvckFnZW50LmNwcCBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9pbnNw
ZWN0b3IvYWdlbnRzL0luc3BlY3RvckFnZW50LmNwcAppbmRleCBiZjI0MWJhLi4wNTM4NjkwIDEw
MDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvaW5zcGVjdG9yL2FnZW50cy9JbnNwZWN0
b3JBZ2VudC5jcHAKKysrIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL2luc3BlY3Rvci9hZ2VudHMv
SW5zcGVjdG9yQWdlbnQuY3BwCkBAIC01Nyw3ICs1Nyw3IEBAIHZvaWQgSW5zcGVjdG9yQWdlbnQ6
OmRpZENyZWF0ZUZyb250ZW5kQW5kQmFja2VuZChGcm9udGVuZENoYW5uZWwqIGZyb250ZW5kQ2hh
bm5lCiB2b2lkIEluc3BlY3RvckFnZW50Ojp3aWxsRGVzdHJveUZyb250ZW5kQW5kQmFja2VuZChE
aXNjb25uZWN0UmVhc29uKQogewogICAgIG1fZnJvbnRlbmREaXNwYXRjaGVyID0gbnVsbHB0cjsK
LSAgICBtX2JhY2tlbmREaXNwYXRjaGVyLmNsZWFyKCk7CisgICAgbV9iYWNrZW5kRGlzcGF0Y2hl
ciA9IG51bGxwdHI7CiAKICAgICBtX3BlbmRpbmdFdmFsdWF0ZVRlc3RDb21tYW5kcy5jbGVhcigp
OwogCmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvaW5zcGVjdG9yL2FnZW50cy9J
bnNwZWN0b3JDb25zb2xlQWdlbnQuY3BwIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL2luc3BlY3Rv
ci9hZ2VudHMvSW5zcGVjdG9yQ29uc29sZUFnZW50LmNwcAppbmRleCA4MTRhMGMxLi45ZmZkMDQ4
IDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvaW5zcGVjdG9yL2FnZW50cy9JbnNw
ZWN0b3JDb25zb2xlQWdlbnQuY3BwCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9pbnNwZWN0
b3IvYWdlbnRzL0luc3BlY3RvckNvbnNvbGVBZ2VudC5jcHAKQEAgLTY0LDcgKzY0LDcgQEAgdm9p
ZCBJbnNwZWN0b3JDb25zb2xlQWdlbnQ6OmRpZENyZWF0ZUZyb250ZW5kQW5kQmFja2VuZChGcm9u
dGVuZENoYW5uZWwqIGZyb250ZW4KIHZvaWQgSW5zcGVjdG9yQ29uc29sZUFnZW50Ojp3aWxsRGVz
dHJveUZyb250ZW5kQW5kQmFja2VuZChEaXNjb25uZWN0UmVhc29uKQogewogICAgIG1fZnJvbnRl
bmREaXNwYXRjaGVyID0gbnVsbHB0cjsKLSAgICBtX2JhY2tlbmREaXNwYXRjaGVyLmNsZWFyKCk7
CisgICAgbV9iYWNrZW5kRGlzcGF0Y2hlciA9IG51bGxwdHI7CiAKICAgICBTdHJpbmcgZXJyb3JT
dHJpbmc7CiAgICAgZGlzYWJsZShlcnJvclN0cmluZyk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2
YVNjcmlwdENvcmUvaW5zcGVjdG9yL2FnZW50cy9JbnNwZWN0b3JEZWJ1Z2dlckFnZW50LmNwcCBi
L1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9pbnNwZWN0b3IvYWdlbnRzL0luc3BlY3RvckRlYnVnZ2Vy
QWdlbnQuY3BwCmluZGV4IGE3NWUwYjIuLmYwZjBiNDggMTAwNjQ0Ci0tLSBhL1NvdXJjZS9KYXZh
U2NyaXB0Q29yZS9pbnNwZWN0b3IvYWdlbnRzL0luc3BlY3RvckRlYnVnZ2VyQWdlbnQuY3BwCisr
KyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9pbnNwZWN0b3IvYWdlbnRzL0luc3BlY3RvckRlYnVn
Z2VyQWdlbnQuY3BwCkBAIC03Nyw3ICs3Nyw3IEBAIHZvaWQgSW5zcGVjdG9yRGVidWdnZXJBZ2Vu
dDo6ZGlkQ3JlYXRlRnJvbnRlbmRBbmRCYWNrZW5kKEZyb250ZW5kQ2hhbm5lbCogZnJvbnRlCiB2
b2lkIEluc3BlY3RvckRlYnVnZ2VyQWdlbnQ6OndpbGxEZXN0cm95RnJvbnRlbmRBbmRCYWNrZW5k
KERpc2Nvbm5lY3RSZWFzb24gcmVhc29uKQogewogICAgIG1fZnJvbnRlbmREaXNwYXRjaGVyID0g
bnVsbHB0cjsKLSAgICBtX2JhY2tlbmREaXNwYXRjaGVyLmNsZWFyKCk7CisgICAgbV9iYWNrZW5k
RGlzcGF0Y2hlciA9IG51bGxwdHI7CiAKICAgICBib29sIHNraXBSZWNvbXBpbGUgPSByZWFzb24g
PT0gRGlzY29ubmVjdFJlYXNvbjo6SW5zcGVjdGVkVGFyZ2V0RGVzdHJveWVkOwogICAgIGRpc2Fi
bGUoc2tpcFJlY29tcGlsZSk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvaW5z
cGVjdG9yL2FnZW50cy9KU0dsb2JhbE9iamVjdFJ1bnRpbWVBZ2VudC5jcHAgYi9Tb3VyY2UvSmF2
YVNjcmlwdENvcmUvaW5zcGVjdG9yL2FnZW50cy9KU0dsb2JhbE9iamVjdFJ1bnRpbWVBZ2VudC5j
cHAKaW5kZXggNjU4YzY3YS4uNDYwNDlmNSAxMDA2NDQKLS0tIGEvU291cmNlL0phdmFTY3JpcHRD
b3JlL2luc3BlY3Rvci9hZ2VudHMvSlNHbG9iYWxPYmplY3RSdW50aW1lQWdlbnQuY3BwCisrKyBi
L1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9pbnNwZWN0b3IvYWdlbnRzL0pTR2xvYmFsT2JqZWN0UnVu
dGltZUFnZW50LmNwcApAQCAtNDksNyArNDksNyBAQCB2b2lkIEpTR2xvYmFsT2JqZWN0UnVudGlt
ZUFnZW50OjpkaWRDcmVhdGVGcm9udGVuZEFuZEJhY2tlbmQoRnJvbnRlbmRDaGFubmVsKiBmcgog
dm9pZCBKU0dsb2JhbE9iamVjdFJ1bnRpbWVBZ2VudDo6d2lsbERlc3Ryb3lGcm9udGVuZEFuZEJh
Y2tlbmQoRGlzY29ubmVjdFJlYXNvbiByZWFzb24pCiB7CiAgICAgbV9mcm9udGVuZERpc3BhdGNo
ZXIgPSBudWxscHRyOwotICAgIG1fYmFja2VuZERpc3BhdGNoZXIuY2xlYXIoKTsKKyAgICBtX2Jh
Y2tlbmREaXNwYXRjaGVyID0gbnVsbHB0cjsKIAogICAgIEluc3BlY3RvclJ1bnRpbWVBZ2VudDo6
d2lsbERlc3Ryb3lGcm9udGVuZEFuZEJhY2tlbmQocmVhc29uKTsKIH0KZGlmZiAtLWdpdCBhL1Nv
dXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0V4ZWN1dGFibGUuY3BwIGIvU291cmNlL0phdmFT
Y3JpcHRDb3JlL3J1bnRpbWUvRXhlY3V0YWJsZS5jcHAKaW5kZXggNmNiMDliMC4uNTUyNDBmZCAx
MDA2NDQKLS0tIGEvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvRXhlY3V0YWJsZS5jcHAK
KysrIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvRXhlY3V0YWJsZS5jcHAKQEAgLTUy
LDggKzUyLDggQEAgdm9pZCBFeGVjdXRhYmxlQmFzZTo6ZGVzdHJveShKU0NlbGwqIGNlbGwpCiB2
b2lkIEV4ZWN1dGFibGVCYXNlOjpjbGVhckNvZGUoKQogewogI2lmIEVOQUJMRShKSVQpCi0gICAg
bV9qaXRDb2RlRm9yQ2FsbC5jbGVhcigpOwotICAgIG1faml0Q29kZUZvckNvbnN0cnVjdC5jbGVh
cigpOworICAgIG1faml0Q29kZUZvckNhbGwgPSBudWxscHRyOworICAgIG1faml0Q29kZUZvckNv
bnN0cnVjdCA9IG51bGxwdHI7CiAgICAgbV9qaXRDb2RlRm9yQ2FsbFdpdGhBcml0eUNoZWNrID0g
TWFjcm9Bc3NlbWJsZXJDb2RlUHRyKCk7CiAgICAgbV9qaXRDb2RlRm9yQ29uc3RydWN0V2l0aEFy
aXR5Q2hlY2sgPSBNYWNyb0Fzc2VtYmxlckNvZGVQdHIoKTsKICAgICBtX2ppdENvZGVGb3JDYWxs
V2l0aEFyaXR5Q2hlY2tBbmRQcmVzZXJ2ZVJlZ3MgPSBNYWNyb0Fzc2VtYmxlckNvZGVQdHIoKTsK
QEAgLTQ2NCw3ICs0NjQsNyBAQCB2b2lkIEV2YWxFeGVjdXRhYmxlOjp1bmxpbmtDYWxscygpCiAK
IHZvaWQgRXZhbEV4ZWN1dGFibGU6OmNsZWFyQ29kZSgpCiB7Ci0gICAgbV9ldmFsQ29kZUJsb2Nr
LmNsZWFyKCk7CisgICAgbV9ldmFsQ29kZUJsb2NrID0gbnVsbHB0cjsKICAgICBtX3VubGlua2Vk
RXZhbENvZGVCbG9jay5jbGVhcigpOwogICAgIEJhc2U6OmNsZWFyQ29kZSgpOwogfQpAQCAtNTQz
LDcgKzU0Myw3IEBAIHZvaWQgUHJvZ3JhbUV4ZWN1dGFibGU6OnZpc2l0Q2hpbGRyZW4oSlNDZWxs
KiBjZWxsLCBTbG90VmlzaXRvciYgdmlzaXRvcikKIAogdm9pZCBQcm9ncmFtRXhlY3V0YWJsZTo6
Y2xlYXJDb2RlKCkKIHsKLSAgICBtX3Byb2dyYW1Db2RlQmxvY2suY2xlYXIoKTsKKyAgICBtX3By
b2dyYW1Db2RlQmxvY2sgPSBudWxscHRyOwogICAgIG1fdW5saW5rZWRQcm9ncmFtQ29kZUJsb2Nr
LmNsZWFyKCk7CiAgICAgQmFzZTo6Y2xlYXJDb2RlKCk7CiB9CkBAIC01ODcsOCArNTg3LDggQEAg
dm9pZCBGdW5jdGlvbkV4ZWN1dGFibGU6OmNsZWFyVW5saW5rZWRDb2RlRm9yUmVjb21waWxhdGlv
bigpCiAKIHZvaWQgRnVuY3Rpb25FeGVjdXRhYmxlOjpjbGVhckNvZGUoKQogewotICAgIG1fY29k
ZUJsb2NrRm9yQ2FsbC5jbGVhcigpOwotICAgIG1fY29kZUJsb2NrRm9yQ29uc3RydWN0LmNsZWFy
KCk7CisgICAgbV9jb2RlQmxvY2tGb3JDYWxsID0gbnVsbHB0cjsKKyAgICBtX2NvZGVCbG9ja0Zv
ckNvbnN0cnVjdCA9IG51bGxwdHI7CiAgICAgQmFzZTo6Y2xlYXJDb2RlKCk7CiB9CiAKZGlmZiAt
LWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0pTTG9jay5jcHAgYi9Tb3VyY2Uv
SmF2YVNjcmlwdENvcmUvcnVudGltZS9KU0xvY2suY3BwCmluZGV4IDJlNzk5NGMuLmMyZWUwYTUg
MTAwNjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0pTTG9jay5jcHAKKysr
IGIvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvSlNMb2NrLmNwcApAQCAtNzMsNyArNzMs
NyBAQCB2b2lkIEpTTG9ja0hvbGRlcjo6aW5pdCgpCiBKU0xvY2tIb2xkZXI6On5KU0xvY2tIb2xk
ZXIoKQogewogICAgIFJlZlB0cjxKU0xvY2s+IGFwaUxvY2soJm1fdm0tPmFwaUxvY2soKSk7Ci0g
ICAgbV92bS5jbGVhcigpOworICAgIG1fdm0gPSBudWxscHRyOwogICAgIGFwaUxvY2stPnVubG9j
aygpOwogfQogCmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9TdHJ1
Y3R1cmUuY3BwIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvU3RydWN0dXJlLmNwcApp
bmRleCBmNzcxYjYwLi4zOTg1ODA1IDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUv
cnVudGltZS9TdHJ1Y3R1cmUuY3BwCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1l
L1N0cnVjdHVyZS5jcHAKQEAgLTczNyw3ICs3MzcsNyBAQCB2b2lkIFN0cnVjdHVyZTo6cGluKCkK
ICAgICBBU1NFUlQocHJvcGVydHlUYWJsZSgpKTsKICAgICBzZXRJc1Bpbm5lZFByb3BlcnR5VGFi
bGUodHJ1ZSk7CiAgICAgY2xlYXJQcmV2aW91c0lEKCk7Ci0gICAgbV9uYW1lSW5QcmV2aW91cy5j
bGVhcigpOworICAgIG1fbmFtZUluUHJldmlvdXMgPSBudWxscHRyOwogfQogCiB2b2lkIFN0cnVj
dHVyZTo6YWxsb2NhdGVSYXJlRGF0YShWTSYgdm0pCmRpZmYgLS1naXQgYS9Tb3VyY2UvV1RGL3d0
Zi9SZWZQdHIuaCBiL1NvdXJjZS9XVEYvd3RmL1JlZlB0ci5oCmluZGV4IDI5MTFmMGRhLi4xNmNm
Y2NhIDEwMDY0NAotLS0gYS9Tb3VyY2UvV1RGL3d0Zi9SZWZQdHIuaAorKysgYi9Tb3VyY2UvV1RG
L3d0Zi9SZWZQdHIuaApAQCAtNjAsNyArNjAsNiBAQCBwdWJsaWM6CiAKICAgICBUKiBnZXQoKSBj
b25zdCB7IHJldHVybiBtX3B0cjsgfQogICAgIAotICAgIHZvaWQgY2xlYXIoKTsKICAgICBQYXNz
UmVmUHRyPFQ+IHJlbGVhc2UoKSB7IFBhc3NSZWZQdHI8VD4gdG1wID0gYWRvcHRSZWYobV9wdHIp
OyBtX3B0ciA9IG51bGxwdHI7IHJldHVybiB0bXA7IH0KICAgICBSZWY8VD4gcmVsZWFzZU5vbk51
bGwoKSB7IEFTU0VSVChtX3B0cik7IFJlZjxUPiB0bXAoYWRvcHRSZWYoKm1fcHRyKSk7IG1fcHRy
ID0gbnVsbHB0cjsgcmV0dXJuIHRtcDsgfQogCkBAIC0xMDksMTEgKzEwOCw2IEBAIHRlbXBsYXRl
PHR5cGVuYW1lIFQ+IHRlbXBsYXRlPHR5cGVuYW1lIFU+IGlubGluZSBSZWZQdHI8VD46OlJlZlB0
cihSZWY8VT4mJiByZWZlCiB7CiB9CiAKLXRlbXBsYXRlPHR5cGVuYW1lIFQ+IGlubGluZSB2b2lk
IFJlZlB0cjxUPjo6Y2xlYXIoKQotewotICAgIGRlcmVmSWZOb3ROdWxsKHN0ZDo6ZXhjaGFuZ2Uo
bV9wdHIsIG51bGxwdHIpKTsKLX0KLQogdGVtcGxhdGU8dHlwZW5hbWUgVD4KIGlubGluZSBUKiBS
ZWZQdHI8VD46OmxlYWtSZWYoKQogewpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvTW9kdWxl
cy9pbmRleGVkZGIvSURCQ3Vyc29yLmNwcCBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvaW5kZXhl
ZGRiL0lEQkN1cnNvci5jcHAKaW5kZXggYTIwZTFlMS4uYzQwMTFkYyAxMDA2NDQKLS0tIGEvU291
cmNlL1dlYkNvcmUvTW9kdWxlcy9pbmRleGVkZGIvSURCQ3Vyc29yLmNwcAorKysgYi9Tb3VyY2Uv
V2ViQ29yZS9Nb2R1bGVzL2luZGV4ZWRkYi9JREJDdXJzb3IuY3BwCkBAIC0yNTksNyArMjU5LDcg
QEAgdm9pZCBJREJDdXJzb3I6OmNsb3NlKCkKICAgICBtX3RyYW5zYWN0aW9uTm90aWZpZXIuY3Vy
c29yRmluaXNoZWQoKTsKICAgICBpZiAobV9yZXF1ZXN0KSB7CiAgICAgICAgIG1fcmVxdWVzdC0+
ZmluaXNoQ3Vyc29yKCk7Ci0gICAgICAgIG1fcmVxdWVzdC5jbGVhcigpOworICAgICAgICBtX3Jl
cXVlc3QgPSBudWxscHRyOwogICAgIH0KIH0KIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUv
TW9kdWxlcy9pbmRleGVkZGIvSURCRGF0YWJhc2VCYWNrZW5kLmNwcCBiL1NvdXJjZS9XZWJDb3Jl
L01vZHVsZXMvaW5kZXhlZGRiL0lEQkRhdGFiYXNlQmFja2VuZC5jcHAKaW5kZXggZmMyMzEwMi4u
MDllNGUyNyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9pbmRleGVkZGIvSURC
RGF0YWJhc2VCYWNrZW5kLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL2luZGV4ZWRk
Yi9JREJEYXRhYmFzZUJhY2tlbmQuY3BwCkBAIC0zMzMsNyArMzMzLDcgQEAgdm9pZCBJREJEYXRh
YmFzZUJhY2tlbmQ6OnRyYW5zYWN0aW9uRmluaXNoZWQoSURCVHJhbnNhY3Rpb25CYWNrZW5kKiBy
YXdUcmFuc2FjdGkKICAgICBtX3RyYW5zYWN0aW9ucy5yZW1vdmUodHJhbnNhY3Rpb24tPmlkKCkp
OwogICAgIGlmICh0cmFuc2FjdGlvbi0+bW9kZSgpID09IEluZGV4ZWREQjo6VHJhbnNhY3Rpb25N
b2RlOjpWZXJzaW9uQ2hhbmdlKSB7CiAgICAgICAgIEFTU0VSVCh0cmFuc2FjdGlvbi5nZXQoKSA9
PSBtX3J1bm5pbmdWZXJzaW9uQ2hhbmdlVHJhbnNhY3Rpb24uZ2V0KCkpOwotICAgICAgICBtX3J1
bm5pbmdWZXJzaW9uQ2hhbmdlVHJhbnNhY3Rpb24uY2xlYXIoKTsKKyAgICAgICAgbV9ydW5uaW5n
VmVyc2lvbkNoYW5nZVRyYW5zYWN0aW9uID0gbnVsbHB0cjsKICAgICB9CiB9CiAKZGlmZiAtLWdp
dCBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvaW5kZXhlZGRiL0lEQk9iamVjdFN0b3JlLmNwcCBi
L1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvaW5kZXhlZGRiL0lEQk9iamVjdFN0b3JlLmNwcAppbmRl
eCBlOGJmOWRkLi5hNmQyODE0IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL2lu
ZGV4ZWRkYi9JREJPYmplY3RTdG9yZS5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9p
bmRleGVkZGIvSURCT2JqZWN0U3RvcmUuY3BwCkBAIC0zMzcsNyArMzM3LDcgQEAgcHJpdmF0ZToK
ICAgICAgICAgICAgIC8vIE5vdyB0aGF0IHdlIGFyZSBkb25lIGluZGV4aW5nLCB0ZWxsIHRoZSBi
YWNrZW5kIHRvIGdvCiAgICAgICAgICAgICAvLyBiYWNrIHRvIHByb2Nlc3NpbmcgdGFza3Mgb2Yg
dHlwZSBOb3JtYWxUYXNrLgogICAgICAgICAgICAgbV9kYXRhYmFzZUJhY2tlbmQtPnNldEluZGV4
ZXNSZWFkeShtX3RyYW5zYWN0aW9uSWQsIG1fb2JqZWN0U3RvcmVJZCwgaW5kZXhJZHMpOwotICAg
ICAgICAgICAgbV9kYXRhYmFzZUJhY2tlbmQuY2xlYXIoKTsKKyAgICAgICAgICAgIG1fZGF0YWJh
c2VCYWNrZW5kID0gbnVsbHB0cjsKICAgICAgICAgfQogCiAgICAgfQpkaWZmIC0tZ2l0IGEvU291
cmNlL1dlYkNvcmUvTW9kdWxlcy9pbmRleGVkZGIvSURCT3BlbkRCUmVxdWVzdC5jcHAgYi9Tb3Vy
Y2UvV2ViQ29yZS9Nb2R1bGVzL2luZGV4ZWRkYi9JREJPcGVuREJSZXF1ZXN0LmNwcAppbmRleCA2
Mzc4MDdlLi43MTU3OWIwIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL2luZGV4
ZWRkYi9JREJPcGVuREJSZXF1ZXN0LmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL2lu
ZGV4ZWRkYi9JREJPcGVuREJSZXF1ZXN0LmNwcApAQCAtMTQyLDcgKzE0Miw3IEBAIGJvb2wgSURC
T3BlbkRCUmVxdWVzdDo6ZGlzcGF0Y2hFdmVudChQYXNzUmVmUHRyPEV2ZW50PiBldmVudCkKICAg
ICAvLyBJZiB0aGUgY29ubmVjdGlvbiBjbG9zZWQgYmV0d2VlbiBvblVwZ3JhZGVOZWVkZWQgYW5k
IHRoZSBkZWxpdmVyeSBvZiB0aGUgInN1Y2Nlc3MiIGV2ZW50LAogICAgIC8vIGFuICJlcnJvciIg
ZXZlbnQgc2hvdWxkIGJlIGZpcmVkIGluc3RlYWQuCiAgICAgaWYgKGV2ZW50LT50eXBlKCkgPT0g
ZXZlbnROYW1lcygpLnN1Y2Nlc3NFdmVudCAmJiBtX3Jlc3VsdC0+dHlwZSgpID09IElEQkFueTo6
SURCRGF0YWJhc2VUeXBlICYmIG1fcmVzdWx0LT5pZGJEYXRhYmFzZSgpLT5pc0Nsb3NlUGVuZGlu
ZygpKSB7Ci0gICAgICAgIG1fcmVzdWx0LmNsZWFyKCk7CisgICAgICAgIG1fcmVzdWx0ID0gbnVs
bHB0cjsKICAgICAgICAgb25FcnJvcihJREJEYXRhYmFzZUVycm9yOjpjcmVhdGUoSURCRGF0YWJh
c2VFeGNlcHRpb246OkFib3J0RXJyb3IsICJUaGUgY29ubmVjdGlvbiB3YXMgY2xvc2VkLiIpKTsK
ICAgICAgICAgcmV0dXJuIGZhbHNlOwogICAgIH0KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3Jl
L01vZHVsZXMvaW5kZXhlZGRiL0lEQlJlcXVlc3QuY3BwIGIvU291cmNlL1dlYkNvcmUvTW9kdWxl
cy9pbmRleGVkZGIvSURCUmVxdWVzdC5jcHAKaW5kZXggOWU1MDFiNC4uODY0ZGU1MyAxMDA2NDQK
LS0tIGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9pbmRleGVkZGIvSURCUmVxdWVzdC5jcHAKKysr
IGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9pbmRleGVkZGIvSURCUmVxdWVzdC5jcHAKQEAgLTE3
MCw5ICsxNzAsOSBAQCB2b2lkIElEQlJlcXVlc3Q6OmFib3J0KCkKICAgICBtX2VucXVldWVkRXZl
bnRzLmNsZWFyKCk7CiAKICAgICBtX2Vycm9yQ29kZSA9IDA7Ci0gICAgbV9lcnJvci5jbGVhcigp
OworICAgIG1fZXJyb3IgPSBudWxscHRyOwogICAgIG1fZXJyb3JNZXNzYWdlID0gU3RyaW5nKCk7
Ci0gICAgbV9yZXN1bHQuY2xlYXIoKTsKKyAgICBtX3Jlc3VsdCA9IG51bGxwdHI7CiAgICAgb25F
cnJvcihJREJEYXRhYmFzZUVycm9yOjpjcmVhdGUoSURCRGF0YWJhc2VFeGNlcHRpb246OkFib3J0
RXJyb3IpKTsKICAgICBtX3JlcXVlc3RBYm9ydGVkID0gdHJ1ZTsKIH0KQEAgLTE5NCwxMCArMTk0
LDEwIEBAIHZvaWQgSURCUmVxdWVzdDo6c2V0UGVuZGluZ0N1cnNvcihQYXNzUmVmUHRyPElEQkN1
cnNvcj4gY3Vyc29yKQogICAgIEFTU0VSVChjdXJzb3IgPT0gZ2V0UmVzdWx0Q3Vyc29yKCkpOwog
CiAgICAgbV9wZW5kaW5nQ3Vyc29yID0gY3Vyc29yOwotICAgIG1fcmVzdWx0LmNsZWFyKCk7Cisg
ICAgbV9yZXN1bHQgPSBudWxscHRyOwogICAgIG1fcmVhZHlTdGF0ZSA9IFBFTkRJTkc7CiAgICAg
bV9lcnJvckNvZGUgPSAwOwotICAgIG1fZXJyb3IuY2xlYXIoKTsKKyAgICBtX2Vycm9yID0gbnVs
bHB0cjsKICAgICBtX2Vycm9yTWVzc2FnZSA9IFN0cmluZygpOwogICAgIG1fdHJhbnNhY3Rpb24t
PnJlZ2lzdGVyUmVxdWVzdCh0aGlzKTsKIH0KQEAgLTI1Niw3ICsyNTYsNyBAQCB2b2lkIElEQlJl
cXVlc3Q6Om9uRXJyb3IoUGFzc1JlZlB0cjxJREJEYXRhYmFzZUVycm9yPiBlcnJvcikKICAgICBt
X2Vycm9yQ29kZSA9IGVycm9yLT5jb2RlKCk7CiAgICAgbV9lcnJvck1lc3NhZ2UgPSBlcnJvci0+
bWVzc2FnZSgpOwogICAgIG1fZXJyb3IgPSBET01FcnJvcjo6Y3JlYXRlKElEQkRhdGFiYXNlRXhj
ZXB0aW9uOjpnZXRFcnJvck5hbWUoZXJyb3ItPmlkYkNvZGUoKSkpOwotICAgIG1fcGVuZGluZ0N1
cnNvci5jbGVhcigpOworICAgIG1fcGVuZGluZ0N1cnNvciA9IG51bGxwdHI7CiAgICAgZW5xdWV1
ZUV2ZW50KEV2ZW50OjpjcmVhdGUoZXZlbnROYW1lcygpLmVycm9yRXZlbnQsIHRydWUsIHRydWUp
KTsKIH0KIApAQCAtNDA0LDcgKzQwNCw3IEBAIHZvaWQgSURCUmVxdWVzdDo6b25TdWNjZXNzSW50
ZXJuYWwoY29uc3QgRGVwcmVjYXRlZDo6U2NyaXB0VmFsdWUmIHZhbHVlKQogICAgIG1fcmVzdWx0
ID0gSURCQW55OjpjcmVhdGUodmFsdWUpOwogICAgIGlmIChtX3BlbmRpbmdDdXJzb3IpIHsKICAg
ICAgICAgbV9wZW5kaW5nQ3Vyc29yLT5jbG9zZSgpOwotICAgICAgICBtX3BlbmRpbmdDdXJzb3Iu
Y2xlYXIoKTsKKyAgICAgICAgbV9wZW5kaW5nQ3Vyc29yID0gbnVsbHB0cjsKICAgICB9CiAgICAg
ZW5xdWV1ZUV2ZW50KGNyZWF0ZVN1Y2Nlc3NFdmVudCgpKTsKIH0KQEAgLTU1Myw3ICs1NTMsNyBA
QCB2b2lkIElEQlJlcXVlc3Q6OnRyYW5zYWN0aW9uRGlkRmluaXNoQW5kRGlzcGF0Y2goKQogICAg
IEFTU0VSVChtX3RyYW5zYWN0aW9uLT5pc1ZlcnNpb25DaGFuZ2UoKSk7CiAgICAgQVNTRVJUKG1f
cmVhZHlTdGF0ZSA9PSBET05FKTsKICAgICBBU1NFUlQoc2NyaXB0RXhlY3V0aW9uQ29udGV4dCgp
KTsKLSAgICBtX3RyYW5zYWN0aW9uLmNsZWFyKCk7CisgICAgbV90cmFuc2FjdGlvbiA9IG51bGxw
dHI7CiAgICAgbV9yZWFkeVN0YXRlID0gUEVORElORzsKIH0KIApkaWZmIC0tZ2l0IGEvU291cmNl
L1dlYkNvcmUvTW9kdWxlcy9pbmRleGVkZGIvSURCVHJhbnNhY3Rpb24uY3BwIGIvU291cmNlL1dl
YkNvcmUvTW9kdWxlcy9pbmRleGVkZGIvSURCVHJhbnNhY3Rpb24uY3BwCmluZGV4IDk5NDhiYzcu
LjZlYzI5ZmEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvaW5kZXhlZGRiL0lE
QlRyYW5zYWN0aW9uLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL2luZGV4ZWRkYi9J
REJUcmFuc2FjdGlvbi5jcHAKQEAgLTI0MCw3ICsyNDAsNyBAQCB2b2lkIElEQlRyYW5zYWN0aW9u
OjpPcGVuQ3Vyc29yTm90aWZpZXI6OmN1cnNvckZpbmlzaGVkKCkKICAgICBpZiAobV9jdXJzb3Ip
IHsKICAgICAgICAgbV90cmFuc2FjdGlvbi0+dW5yZWdpc3Rlck9wZW5DdXJzb3IobV9jdXJzb3Ip
OwogICAgICAgICBtX2N1cnNvciA9IG51bGxwdHI7Ci0gICAgICAgIG1fdHJhbnNhY3Rpb24uY2xl
YXIoKTsKKyAgICAgICAgbV90cmFuc2FjdGlvbiA9IG51bGxwdHI7CiAgICAgfQogfQogCmRpZmYg
LS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL21lZGlhc291cmNlL01lZGlhU291cmNlLmNw
cCBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvbWVkaWFzb3VyY2UvTWVkaWFTb3VyY2UuY3BwCmlu
ZGV4IDkxMTcwYWEuLmM0MGQ2ZTMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMv
bWVkaWFzb3VyY2UvTWVkaWFTb3VyY2UuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMv
bWVkaWFzb3VyY2UvTWVkaWFTb3VyY2UuY3BwCkBAIC0zOTQsNyArMzk0LDcgQEAgdm9pZCBNZWRp
YVNvdXJjZTo6c2V0UmVhZHlTdGF0ZShjb25zdCBBdG9taWNTdHJpbmcmIHN0YXRlKQogICAgIExP
RyhNZWRpYVNvdXJjZSwgIk1lZGlhU291cmNlOjpzZXRSZWFkeVN0YXRlKCVwKSA6ICVzIC0+ICVz
IiwgdGhpcywgb2xkU3RhdGUuc3RyaW5nKCkuYXNjaWkoKS5kYXRhKCksIHN0YXRlLnN0cmluZygp
LmFzY2lpKCkuZGF0YSgpKTsKIAogICAgIGlmIChzdGF0ZSA9PSBjbG9zZWRLZXl3b3JkKCkpIHsK
LSAgICAgICAgbV9wcml2YXRlLmNsZWFyKCk7CisgICAgICAgIG1fcHJpdmF0ZSA9IG51bGxwdHI7
CiAgICAgICAgIG1fbWVkaWFFbGVtZW50ID0gbnVsbHB0cjsKICAgICAgICAgbV9kdXJhdGlvbiA9
IE1lZGlhVGltZTo6aW52YWxpZFRpbWUoKTsKICAgICB9CkBAIC04MTEsNyArODExLDcgQEAgdm9p
ZCBNZWRpYVNvdXJjZTo6c3RvcCgpCiAgICAgbV9hc3luY0V2ZW50UXVldWUuY2xvc2UoKTsKICAg
ICBpZiAoIWlzQ2xvc2VkKCkpCiAgICAgICAgIHNldFJlYWR5U3RhdGUoY2xvc2VkS2V5d29yZCgp
KTsKLSAgICBtX3ByaXZhdGUuY2xlYXIoKTsKKyAgICBtX3ByaXZhdGUgPSBudWxscHRyOwogfQog
CiBib29sIE1lZGlhU291cmNlOjpjYW5TdXNwZW5kRm9yUGFnZUNhY2hlKCkgY29uc3QKZGlmZiAt
LWdpdCBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvbWVkaWFzdHJlYW0vUlRDU2Vzc2lvbkRlc2Ny
aXB0aW9uUmVxdWVzdEltcGwuY3BwIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9tZWRpYXN0cmVh
bS9SVENTZXNzaW9uRGVzY3JpcHRpb25SZXF1ZXN0SW1wbC5jcHAKaW5kZXggZDcxMGRjMS4uMzAx
MzM0ZCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9tZWRpYXN0cmVhbS9SVENT
ZXNzaW9uRGVzY3JpcHRpb25SZXF1ZXN0SW1wbC5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvTW9k
dWxlcy9tZWRpYXN0cmVhbS9SVENTZXNzaW9uRGVzY3JpcHRpb25SZXF1ZXN0SW1wbC5jcHAKQEAg
LTk3LDggKzk3LDggQEAgYm9vbCBSVENTZXNzaW9uRGVzY3JpcHRpb25SZXF1ZXN0SW1wbDo6Y2Fu
U3VzcGVuZEZvclBhZ2VDYWNoZSgpIGNvbnN0CiAKIHZvaWQgUlRDU2Vzc2lvbkRlc2NyaXB0aW9u
UmVxdWVzdEltcGw6OmNsZWFyKCkKIHsKLSAgICBtX3N1Y2Nlc3NDYWxsYmFjay5jbGVhcigpOwot
ICAgIG1fZXJyb3JDYWxsYmFjay5jbGVhcigpOworICAgIG1fc3VjY2Vzc0NhbGxiYWNrID0gbnVs
bHB0cjsKKyAgICBtX2Vycm9yQ2FsbGJhY2sgPSBudWxscHRyOwogfQogCiB9IC8vIG5hbWVzcGFj
ZSBXZWJDb3JlCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL21lZGlhc3RyZWFt
L1JUQ1N0YXRzUmVxdWVzdEltcGwuY3BwIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9tZWRpYXN0
cmVhbS9SVENTdGF0c1JlcXVlc3RJbXBsLmNwcAppbmRleCBkZWIxOWE5Li5kMDAwYjExIDEwMDY0
NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL21lZGlhc3RyZWFtL1JUQ1N0YXRzUmVxdWVz
dEltcGwuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvbWVkaWFzdHJlYW0vUlRDU3Rh
dHNSZXF1ZXN0SW1wbC5jcHAKQEAgLTEwNCw3ICsxMDQsNyBAQCBib29sIFJUQ1N0YXRzUmVxdWVz
dEltcGw6OmNhblN1c3BlbmRGb3JQYWdlQ2FjaGUoKSBjb25zdAogCiB2b2lkIFJUQ1N0YXRzUmVx
dWVzdEltcGw6OmNsZWFyKCkKIHsKLSAgICBtX3N1Y2Nlc3NDYWxsYmFjay5jbGVhcigpOworICAg
IG1fc3VjY2Vzc0NhbGxiYWNrID0gbnVsbHB0cjsKIH0KIAogCmRpZmYgLS1naXQgYS9Tb3VyY2Uv
V2ViQ29yZS9Nb2R1bGVzL21lZGlhc3RyZWFtL1JUQ1ZvaWRSZXF1ZXN0SW1wbC5jcHAgYi9Tb3Vy
Y2UvV2ViQ29yZS9Nb2R1bGVzL21lZGlhc3RyZWFtL1JUQ1ZvaWRSZXF1ZXN0SW1wbC5jcHAKaW5k
ZXggODJmOGExMi4uNzA2ZjkwNyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9t
ZWRpYXN0cmVhbS9SVENWb2lkUmVxdWVzdEltcGwuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL01v
ZHVsZXMvbWVkaWFzdHJlYW0vUlRDVm9pZFJlcXVlc3RJbXBsLmNwcApAQCAtOTQsOCArOTQsOCBA
QCBib29sIFJUQ1ZvaWRSZXF1ZXN0SW1wbDo6Y2FuU3VzcGVuZEZvclBhZ2VDYWNoZSgpIGNvbnN0
CiAKIHZvaWQgUlRDVm9pZFJlcXVlc3RJbXBsOjpjbGVhcigpCiB7Ci0gICAgbV9zdWNjZXNzQ2Fs
bGJhY2suY2xlYXIoKTsKLSAgICBtX2Vycm9yQ2FsbGJhY2suY2xlYXIoKTsKKyAgICBtX3N1Y2Nl
c3NDYWxsYmFjayA9IG51bGxwdHI7CisgICAgbV9lcnJvckNhbGxiYWNrID0gbnVsbHB0cjsKIH0K
IAogfSAvLyBuYW1lc3BhY2UgV2ViQ29yZQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvTW9k
dWxlcy93ZWJhdWRpby9BdWRpb0NvbnRleHQuY3BwIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy93
ZWJhdWRpby9BdWRpb0NvbnRleHQuY3BwCmluZGV4IDVhM2RlYTAuLmZhYTk5NmIgMTAwNjQ0Ci0t
LSBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvd2ViYXVkaW8vQXVkaW9Db250ZXh0LmNwcAorKysg
Yi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL3dlYmF1ZGlvL0F1ZGlvQ29udGV4dC5jcHAKQEAgLTIz
MSw3ICsyMzEsNyBAQCB2b2lkIEF1ZGlvQ29udGV4dDo6Y2xlYXIoKQogewogICAgIC8vIFdlIGhh
dmUgdG8gcmVsZWFzZSBvdXIgcmVmZXJlbmNlIHRvIHRoZSBkZXN0aW5hdGlvbiBub2RlIGJlZm9y
ZSB0aGUgY29udGV4dCB3aWxsIGV2ZXIgYmUgZGVsZXRlZCBzaW5jZSB0aGUgZGVzdGluYXRpb24g
bm9kZSBob2xkcyBhIHJlZmVyZW5jZSB0byB0aGUgY29udGV4dC4KICAgICBpZiAobV9kZXN0aW5h
dGlvbk5vZGUpCi0gICAgICAgIG1fZGVzdGluYXRpb25Ob2RlLmNsZWFyKCk7CisgICAgICAgIG1f
ZGVzdGluYXRpb25Ob2RlID0gbnVsbHB0cjsKIAogICAgIC8vIEF1ZGlvIHRocmVhZCBpcyBkZWFk
LiBOb2JvZHkgd2lsbCBzY2hlZHVsZSBub2RlIGRlbGV0aW9uIGFjdGlvbi4gTGV0J3MgZG8gaXQg
b3Vyc2VsdmVzLgogICAgIGRvIHsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMv
d2ViZGF0YWJhc2UvU1FMVHJhbnNhY3Rpb25CYWNrZW5kLmNwcCBiL1NvdXJjZS9XZWJDb3JlL01v
ZHVsZXMvd2ViZGF0YWJhc2UvU1FMVHJhbnNhY3Rpb25CYWNrZW5kLmNwcAppbmRleCBkYTI1NGI2
Li5kMzExMzgwIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL3dlYmRhdGFiYXNl
L1NRTFRyYW5zYWN0aW9uQmFja2VuZC5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy93
ZWJkYXRhYmFzZS9TUUxUcmFuc2FjdGlvbkJhY2tlbmQuY3BwCkBAIC04NDUsNyArODQ1LDcgQEAg
dm9pZCBTUUxUcmFuc2FjdGlvbkJhY2tlbmQ6OnJlbGVhc2VPcmlnaW5Mb2NrSWZOZWVkZWQoKQog
ewogICAgIGlmIChtX29yaWdpbkxvY2spIHsKICAgICAgICAgbV9vcmlnaW5Mb2NrLT51bmxvY2so
KTsKLSAgICAgICAgbV9vcmlnaW5Mb2NrLmNsZWFyKCk7CisgICAgICAgIG1fb3JpZ2luTG9jayA9
IG51bGxwdHI7CiAgICAgfQogfQogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVz
L3dlYnNvY2tldHMvV29ya2VyVGhyZWFkYWJsZVdlYlNvY2tldENoYW5uZWwuY3BwIGIvU291cmNl
L1dlYkNvcmUvTW9kdWxlcy93ZWJzb2NrZXRzL1dvcmtlclRocmVhZGFibGVXZWJTb2NrZXRDaGFu
bmVsLmNwcAppbmRleCBiY2JkYWY5Li4zNGI2NGQ3IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29y
ZS9Nb2R1bGVzL3dlYnNvY2tldHMvV29ya2VyVGhyZWFkYWJsZVdlYlNvY2tldENoYW5uZWwuY3Bw
CisrKyBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvd2Vic29ja2V0cy9Xb3JrZXJUaHJlYWRhYmxl
V2ViU29ja2V0Q2hhbm5lbC5jcHAKQEAgLTEyNiw3ICsxMjYsNyBAQCB2b2lkIFdvcmtlclRocmVh
ZGFibGVXZWJTb2NrZXRDaGFubmVsOjpmYWlsKGNvbnN0IFN0cmluZyYgcmVhc29uKQogdm9pZCBX
b3JrZXJUaHJlYWRhYmxlV2ViU29ja2V0Q2hhbm5lbDo6ZGlzY29ubmVjdCgpCiB7CiAgICAgbV9i
cmlkZ2UtPmRpc2Nvbm5lY3QoKTsKLSAgICBtX2JyaWRnZS5jbGVhcigpOworICAgIG1fYnJpZGdl
ID0gbnVsbHB0cjsKIH0KIAogdm9pZCBXb3JrZXJUaHJlYWRhYmxlV2ViU29ja2V0Q2hhbm5lbDo6
c3VzcGVuZCgpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9qcy9XZWJDb3Jl
SlNDbGllbnREYXRhLmggYi9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9qcy9XZWJDb3JlSlNDbGll
bnREYXRhLmgKaW5kZXggNjU0NTEzMy4uNDMwMmQ2OCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNv
cmUvYmluZGluZ3MvanMvV2ViQ29yZUpTQ2xpZW50RGF0YS5oCisrKyBiL1NvdXJjZS9XZWJDb3Jl
L2JpbmRpbmdzL2pzL1dlYkNvcmVKU0NsaWVudERhdGEuaApAQCAtNDQsNyArNDQsNyBAQCBwdWJs
aWM6CiAgICAgICAgIEFTU0VSVChtX3dvcmxkU2V0LmNvbnRhaW5zKG1fbm9ybWFsV29ybGQuZ2V0
KCkpKTsKICAgICAgICAgQVNTRVJUKG1fd29ybGRTZXQuc2l6ZSgpID09IDEpOwogICAgICAgICBB
U1NFUlQobV9ub3JtYWxXb3JsZC0+aGFzT25lUmVmKCkpOwotICAgICAgICBtX25vcm1hbFdvcmxk
LmNsZWFyKCk7CisgICAgICAgIG1fbm9ybWFsV29ybGQgPSBudWxscHRyOwogICAgICAgICBBU1NF
UlQobV93b3JsZFNldC5pc0VtcHR5KCkpOwogICAgIH0KIApkaWZmIC0tZ2l0IGEvU291cmNlL1dl
YkNvcmUvYmluZGluZ3MvanMvV29ya2VyU2NyaXB0Q29udHJvbGxlci5jcHAgYi9Tb3VyY2UvV2Vi
Q29yZS9iaW5kaW5ncy9qcy9Xb3JrZXJTY3JpcHRDb250cm9sbGVyLmNwcAppbmRleCA5MGUwZmY1
Li4yOGM5ZWYwIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9qcy9Xb3JrZXJT
Y3JpcHRDb250cm9sbGVyLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9qcy9Xb3Jr
ZXJTY3JpcHRDb250cm9sbGVyLmNwcApAQCAtNjIsNyArNjIsNyBAQCBXb3JrZXJTY3JpcHRDb250
cm9sbGVyOjp+V29ya2VyU2NyaXB0Q29udHJvbGxlcigpCiB7CiAgICAgSlNMb2NrSG9sZGVyIGxv
Y2sodm0oKSk7CiAgICAgbV93b3JrZXJHbG9iYWxTY29wZVdyYXBwZXIuY2xlYXIoKTsKLSAgICBt
X3ZtLmNsZWFyKCk7CisgICAgbV92bSA9IG51bGxwdHI7CiB9CiAKIHZvaWQgV29ya2VyU2NyaXB0
Q29udHJvbGxlcjo6aW5pdFNjcmlwdCgpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9jb250
ZW50ZXh0ZW5zaW9ucy9Db250ZW50RXh0ZW5zaW9uUGFyc2VyLmNwcCBiL1NvdXJjZS9XZWJDb3Jl
L2NvbnRlbnRleHRlbnNpb25zL0NvbnRlbnRFeHRlbnNpb25QYXJzZXIuY3BwCmluZGV4IDAyMjY1
MmIuLjdiZjU2ZTcgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2NvbnRlbnRleHRlbnNpb25z
L0NvbnRlbnRFeHRlbnNpb25QYXJzZXIuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2NvbnRlbnRl
eHRlbnNpb25zL0NvbnRlbnRFeHRlbnNpb25QYXJzZXIuY3BwCkBAIC0yNzcsNyArMjc3LDcgQEAg
c3RkOjplcnJvcl9jb2RlIHBhcnNlUnVsZUxpc3QoY29uc3QgU3RyaW5nJiBydWxlcywgVmVjdG9y
PENvbnRlbnRFeHRlbnNpb25SdWxlPiYKICAgICBFeGVjU3RhdGUqIGV4ZWMgPSBnbG9iYWxPYmpl
Y3QtPmdsb2JhbEV4ZWMoKTsKICAgICBhdXRvIGVycm9yID0gbG9hZEVuY29kZWRSdWxlcygqZXhl
YywgcnVsZXMsIHJ1bGVMaXN0KTsKIAotICAgIHZtLmNsZWFyKCk7CisgICAgdm0gPSBudWxscHRy
OwogCiAgICAgaWYgKGVycm9yKQogICAgICAgICByZXR1cm4gZXJyb3I7CmRpZmYgLS1naXQgYS9T
b3VyY2UvV2ViQ29yZS9jc3MvQ1NTUGFyc2VyLmNwcCBiL1NvdXJjZS9XZWJDb3JlL2Nzcy9DU1NQ
YXJzZXIuY3BwCmluZGV4IDVlOGYwNWMuLmZmNTIyNDcgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJD
b3JlL2Nzcy9DU1NQYXJzZXIuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2Nzcy9DU1NQYXJzZXIu
Y3BwCkBAIC00NTAyLDE1ICs0NTAyLDE1IEBAIHZvaWQgQ1NTUGFyc2VyOjpwYXJzZUZpbGxQb3Np
dGlvbihDU1NQYXJzZXJWYWx1ZUxpc3QmIHZhbHVlTGlzdCwgUmVmUHRyPENTU1ZhbHVlCiAgICAg
aWYgKHZhbHVlMikKICAgICAgICAgdmFsdWVMaXN0Lm5leHQoKTsKICAgICBlbHNlIHsKLSAgICAg
ICAgdmFsdWUxLmNsZWFyKCk7CisgICAgICAgIHZhbHVlMSA9IG51bGxwdHI7CiAgICAgICAgIHJl
dHVybjsKICAgICB9CiAKICAgICBSZWZQdHI8Q1NTUHJpbWl0aXZlVmFsdWU+IHBhcnNlZFZhbHVl
MSA9IGRvd25jYXN0PENTU1ByaW1pdGl2ZVZhbHVlPih2YWx1ZTEuZ2V0KCkpOwogICAgIFJlZlB0
cjxDU1NQcmltaXRpdmVWYWx1ZT4gcGFyc2VkVmFsdWUyID0gZG93bmNhc3Q8Q1NTUHJpbWl0aXZl
VmFsdWU+KHZhbHVlMi5nZXQoKSk7CiAKLSAgICB2YWx1ZTEuY2xlYXIoKTsKLSAgICB2YWx1ZTIu
Y2xlYXIoKTsKKyAgICB2YWx1ZTEgPSBudWxscHRyOworICAgIHZhbHVlMiA9IG51bGxwdHI7CiAK
ICAgICAvLyBQZXIgQ1NTMyBzeW50YXgsIDxwb3NpdGlvbj4gY2FuJ3QgaGF2ZSAnY2VudGVyJyBh
cyBpdHMgc2Vjb25kIGtleXdvcmQgYXMgd2UgaGF2ZSBtb3JlIGFyZ3VtZW50cyB0byBmb2xsb3cu
CiAgICAgaWYgKHBhcnNlZFZhbHVlMi0+Z2V0VmFsdWVJRCgpID09IENTU1ZhbHVlQ2VudGVyKQpA
QCAtNDU0OSw3ICs0NTQ5LDcgQEAgdm9pZCBDU1NQYXJzZXI6OnBhcnNlMlZhbHVlc0ZpbGxQb3Np
dGlvbihDU1NQYXJzZXJWYWx1ZUxpc3QmIHZhbHVlTGlzdCwgUmVmUHRyPEMKICAgICAgICAgICAg
IHZhbHVlTGlzdC5uZXh0KCk7CiAgICAgICAgIGVsc2UgewogICAgICAgICAgICAgaWYgKCFpblNo
b3J0aGFuZCgpKSB7Ci0gICAgICAgICAgICAgICAgdmFsdWUxLmNsZWFyKCk7CisgICAgICAgICAg
ICAgICAgdmFsdWUxID0gbnVsbHB0cjsKICAgICAgICAgICAgICAgICByZXR1cm47CiAgICAgICAg
ICAgICB9CiAgICAgICAgIH0KQEAgLTEyMTg0LDcgKzEyMTg0LDcgQEAgUGFzc1JlZlB0cjxDU1NS
dWxlU291cmNlRGF0YT4gQ1NTUGFyc2VyOjpwb3BSdWxlRGF0YSgpCiAgICAgICAgIHJldHVybiBu
dWxscHRyOwogCiAgICAgQVNTRVJUKCFtX2N1cnJlbnRSdWxlRGF0YVN0YWNrLT5pc0VtcHR5KCkp
OwotICAgIG1fY3VycmVudFJ1bGVEYXRhLmNsZWFyKCk7CisgICAgbV9jdXJyZW50UnVsZURhdGEg
PSBudWxscHRyOwogICAgIFJlZlB0cjxDU1NSdWxlU291cmNlRGF0YT4gZGF0YSA9IG1fY3VycmVu
dFJ1bGVEYXRhU3RhY2stPmxhc3QoKTsKICAgICBtX2N1cnJlbnRSdWxlRGF0YVN0YWNrLT5yZW1v
dmVMYXN0KCk7CiAgICAgcmV0dXJuIGRhdGEucmVsZWFzZSgpOwpAQCAtMTI2MDUsNyArMTI2MDUs
NyBAQCB2b2lkIENTU1BhcnNlcjo6bWFya1J1bGVCb2R5U3RhcnQoKQogewogICAgIGlmICghaXNF
eHRyYWN0aW5nU291cmNlRGF0YSgpKQogICAgICAgICByZXR1cm47Ci0gICAgbV9jdXJyZW50UnVs
ZURhdGEuY2xlYXIoKTsKKyAgICBtX2N1cnJlbnRSdWxlRGF0YSA9IG51bGxwdHI7CiAgICAgdW5z
aWduZWQgb2Zmc2V0ID0gdG9rZW5TdGFydE9mZnNldCgpOwogICAgIGlmICh0b2tlblN0YXJ0Q2hh
cigpID09ICd7JykKICAgICAgICAgKytvZmZzZXQ7IC8vIFNraXAgdGhlIHJ1bGUgYm9keSBvcGVu
aW5nIGJyYWNlLgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvZG9tL0RvY3VtZW50LmNwcCBi
L1NvdXJjZS9XZWJDb3JlL2RvbS9Eb2N1bWVudC5jcHAKaW5kZXggOGQ2ZTk2YS4uYWEwNGFkNiAx
MDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvZG9tL0RvY3VtZW50LmNwcAorKysgYi9Tb3VyY2Uv
V2ViQ29yZS9kb20vRG9jdW1lbnQuY3BwCkBAIC0yNDI0LDcgKzI0MjQsNyBAQCB2b2lkIERvY3Vt
ZW50OjpkZXRhY2hQYXJzZXIoKQogICAgIGlmICghbV9wYXJzZXIpCiAgICAgICAgIHJldHVybjsK
ICAgICBtX3BhcnNlci0+ZGV0YWNoKCk7Ci0gICAgbV9wYXJzZXIuY2xlYXIoKTsKKyAgICBtX3Bh
cnNlciA9IG51bGxwdHI7CiB9CiAKIHZvaWQgRG9jdW1lbnQ6OmNhbmNlbFBhcnNpbmcoKQpAQCAt
NTg4Miw3ICs1ODgyLDcgQEAgdm9pZCBEb2N1bWVudDo6Y2xlYXJTY3JpcHRlZEFuaW1hdGlvbkNv
bnRyb2xsZXIoKQogICAgIC8vIEZJWE1FOiBjb25zaWRlciB1c2luZyBBY3RpdmVET01PYmplY3Qu
CiAgICAgaWYgKG1fc2NyaXB0ZWRBbmltYXRpb25Db250cm9sbGVyKQogICAgICAgICBtX3Njcmlw
dGVkQW5pbWF0aW9uQ29udHJvbGxlci0+Y2xlYXJEb2N1bWVudFBvaW50ZXIoKTsKLSAgICBtX3Nj
cmlwdGVkQW5pbWF0aW9uQ29udHJvbGxlci5jbGVhcigpOworICAgIG1fc2NyaXB0ZWRBbmltYXRp
b25Db250cm9sbGVyID0gbnVsbHB0cjsKIH0KICNlbmRpZgogICAgIApAQCAtNjMwMCw3ICs2MzAw
LDcgQEAgdm9pZCBEb2N1bWVudDo6dXBkYXRlSG92ZXJBY3RpdmVTdGF0ZShjb25zdCBIaXRUZXN0
UmVxdWVzdCYgcmVxdWVzdCwgRWxlbWVudCogaW4KICAgICAgICAgICAgIGN1cnItPnNldEFjdGl2
ZShmYWxzZSk7CiAgICAgICAgICAgICBtX3VzZXJBY3Rpb25FbGVtZW50cy5zZXRJbkFjdGl2ZUNo
YWluKGN1cnIsIGZhbHNlKTsKICAgICAgICAgfQotICAgICAgICBtX2FjdGl2ZUVsZW1lbnQuY2xl
YXIoKTsKKyAgICAgICAgbV9hY3RpdmVFbGVtZW50ID0gbnVsbHB0cjsKICAgICB9IGVsc2Ugewog
ICAgICAgICBFbGVtZW50KiBuZXdBY3RpdmVFbGVtZW50ID0gaW5uZXJFbGVtZW50SW5Eb2N1bWVu
dDsKICAgICAgICAgaWYgKCFvbGRBY3RpdmVFbGVtZW50ICYmIG5ld0FjdGl2ZUVsZW1lbnQgJiYg
cmVxdWVzdC5hY3RpdmUoKSAmJiAhcmVxdWVzdC50b3VjaE1vdmUoKSkgewpkaWZmIC0tZ2l0IGEv
U291cmNlL1dlYkNvcmUvZG9tL0RvY3VtZW50TWFya2VyLmggYi9Tb3VyY2UvV2ViQ29yZS9kb20v
RG9jdW1lbnRNYXJrZXIuaAppbmRleCA0Nzk0OWZlLi5lYzUyNDg5IDEwMDY0NAotLS0gYS9Tb3Vy
Y2UvV2ViQ29yZS9kb20vRG9jdW1lbnRNYXJrZXIuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9kb20v
RG9jdW1lbnRNYXJrZXIuaApAQCAtMTMxLDcgKzEzMSw3IEBAIHB1YmxpYzoKICAgICBEb2N1bWVu
dE1hcmtlckRldGFpbHMqIGRldGFpbHMoKSBjb25zdDsKIAogICAgIHZvaWQgc2V0QWN0aXZlTWF0
Y2goYm9vbCk7Ci0gICAgdm9pZCBjbGVhckRldGFpbHMoKSB7IG1fZGV0YWlscy5jbGVhcigpOyB9
CisgICAgdm9pZCBjbGVhckRldGFpbHMoKSB7IG1fZGV0YWlscyA9IG51bGxwdHI7IH0KIAogICAg
IC8vIE9mZnNldCBtb2RpZmljYXRpb25zIGFyZSBkb25lIGJ5IERvY3VtZW50TWFya2VyQ29udHJv
bGxlci4KICAgICAvLyBPdGhlciBjbGFzc2VzIHNob3VsZCBub3QgY2FsbCBmb2xsb3dpbmcgc2V0
dGVycy4KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2RvbS9FbGVtZW50LmNwcCBiL1NvdXJj
ZS9XZWJDb3JlL2RvbS9FbGVtZW50LmNwcAppbmRleCBjY2M2MzlhLi5jMGY0N2FiIDEwMDY0NAot
LS0gYS9Tb3VyY2UvV2ViQ29yZS9kb20vRWxlbWVudC5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUv
ZG9tL0VsZW1lbnQuY3BwCkBAIC0zMjA3LDcgKzMyMDcsNyBAQCB2b2lkIEVsZW1lbnQ6OmNsb25l
QXR0cmlidXRlc0Zyb21FbGVtZW50KGNvbnN0IEVsZW1lbnQmIG90aGVyKQogCiAgICAgb3RoZXIu
c3luY2hyb25pemVBbGxBdHRyaWJ1dGVzKCk7CiAgICAgaWYgKCFvdGhlci5tX2VsZW1lbnREYXRh
KSB7Ci0gICAgICAgIG1fZWxlbWVudERhdGEuY2xlYXIoKTsKKyAgICAgICAgbV9lbGVtZW50RGF0
YSA9IG51bGxwdHI7CiAgICAgICAgIHJldHVybjsKICAgICB9CiAKZGlmZiAtLWdpdCBhL1NvdXJj
ZS9XZWJDb3JlL2RvbS9Ob2RlSXRlcmF0b3IuY3BwIGIvU291cmNlL1dlYkNvcmUvZG9tL05vZGVJ
dGVyYXRvci5jcHAKaW5kZXggNThiMmI5Zi4uNjFhZTI4ZiAxMDA2NDQKLS0tIGEvU291cmNlL1dl
YkNvcmUvZG9tL05vZGVJdGVyYXRvci5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvZG9tL05vZGVJ
dGVyYXRvci5jcHAKQEAgLTQ1LDcgKzQ1LDcgQEAgTm9kZUl0ZXJhdG9yOjpOb2RlUG9pbnRlcjo6
Tm9kZVBvaW50ZXIoUGFzc1JlZlB0cjxOb2RlPiBuLCBib29sIGIpCiAKIHZvaWQgTm9kZUl0ZXJh
dG9yOjpOb2RlUG9pbnRlcjo6Y2xlYXIoKQogewotICAgIG5vZGUuY2xlYXIoKTsKKyAgICBub2Rl
ID0gbnVsbHB0cjsKIH0KIAogYm9vbCBOb2RlSXRlcmF0b3I6Ok5vZGVQb2ludGVyOjptb3ZlVG9O
ZXh0KE5vZGUqIHJvb3QpCkBAIC0xNTEsNyArMTUxLDcgQEAgdm9pZCBOb2RlSXRlcmF0b3I6OmRl
dGFjaCgpCiB7CiAgICAgcm9vdCgpLT5kb2N1bWVudCgpLmRldGFjaE5vZGVJdGVyYXRvcih0aGlz
KTsKICAgICBtX2RldGFjaGVkID0gdHJ1ZTsKLSAgICBtX3JlZmVyZW5jZU5vZGUubm9kZS5jbGVh
cigpOworICAgIG1fcmVmZXJlbmNlTm9kZS5ub2RlID0gbnVsbHB0cjsKIH0KIAogdm9pZCBOb2Rl
SXRlcmF0b3I6Om5vZGVXaWxsQmVSZW1vdmVkKE5vZGUmIHJlbW92ZWROb2RlKQpkaWZmIC0tZ2l0
IGEvU291cmNlL1dlYkNvcmUvZG9tL1Bvc2l0aW9uLmggYi9Tb3VyY2UvV2ViQ29yZS9kb20vUG9z
aXRpb24uaAppbmRleCAwZjMxNmRhLi42MDNlODhmIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29y
ZS9kb20vUG9zaXRpb24uaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9kb20vUG9zaXRpb24uaApAQCAt
OTIsNyArOTIsNyBAQCBwdWJsaWM6CiAKICAgICBBbmNob3JUeXBlIGFuY2hvclR5cGUoKSBjb25z
dCB7IHJldHVybiBzdGF0aWNfY2FzdDxBbmNob3JUeXBlPihtX2FuY2hvclR5cGUpOyB9CiAKLSAg
ICB2b2lkIGNsZWFyKCkgeyBtX2FuY2hvck5vZGUuY2xlYXIoKTsgbV9vZmZzZXQgPSAwOyBtX2Fu
Y2hvclR5cGUgPSBQb3NpdGlvbklzT2Zmc2V0SW5BbmNob3I7IG1faXNMZWdhY3lFZGl0aW5nUG9z
aXRpb24gPSBmYWxzZTsgfQorICAgIHZvaWQgY2xlYXIoKSB7IG1fYW5jaG9yTm9kZSA9IG51bGxw
dHI7IG1fb2Zmc2V0ID0gMDsgbV9hbmNob3JUeXBlID0gUG9zaXRpb25Jc09mZnNldEluQW5jaG9y
OyBtX2lzTGVnYWN5RWRpdGluZ1Bvc2l0aW9uID0gZmFsc2U7IH0KIAogICAgIC8vIFRoZXNlIGFy
ZSBhbHdheXMgRE9NIGNvbXBsaWFudCB2YWx1ZXMuICBFZGl0aW5nIHBvc2l0aW9ucyBsaWtlIFtp
bWcsIDBdIChha2EgW2ltZywgYmVmb3JlXSkKICAgICAvLyB3aWxsIHJldHVybiBpbWctPnBhcmVu
dE5vZGUoKSBhbmQgaW1nLT5jb21wdXRlTm9kZUluZGV4KCkgZnJvbSB0aGVzZSBmdW5jdGlvbnMu
CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9kb20vUmFuZ2VCb3VuZGFyeVBvaW50LmggYi9T
b3VyY2UvV2ViQ29yZS9kb20vUmFuZ2VCb3VuZGFyeVBvaW50LmgKaW5kZXggYjA0ZGMwOC4uOGM3
OTliMyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvZG9tL1JhbmdlQm91bmRhcnlQb2ludC5o
CisrKyBiL1NvdXJjZS9XZWJDb3JlL2RvbS9SYW5nZUJvdW5kYXJ5UG9pbnQuaApAQCAtMTEyLDkg
KzExMiw5IEBAIGlubGluZSBpbnQgUmFuZ2VCb3VuZGFyeVBvaW50OjpvZmZzZXQoKSBjb25zdAog
CiBpbmxpbmUgdm9pZCBSYW5nZUJvdW5kYXJ5UG9pbnQ6OmNsZWFyKCkKIHsKLSAgICBtX2NvbnRh
aW5lck5vZGUuY2xlYXIoKTsKKyAgICBtX2NvbnRhaW5lck5vZGUgPSBudWxscHRyOwogICAgIG1f
b2Zmc2V0SW5Db250YWluZXIgPSAwOwotICAgIG1fY2hpbGRCZWZvcmVCb3VuZGFyeSA9IDA7Cisg
ICAgbV9jaGlsZEJlZm9yZUJvdW5kYXJ5ID0gbnVsbHB0cjsKIH0KIAogaW5saW5lIHZvaWQgUmFu
Z2VCb3VuZGFyeVBvaW50OjpzZXQoUGFzc1JlZlB0cjxOb2RlPiBjb250YWluZXIsIGludCBvZmZz
ZXQsIE5vZGUqIGNoaWxkQmVmb3JlKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvZG9tL1Nw
YWNlU3BsaXRTdHJpbmcuaCBiL1NvdXJjZS9XZWJDb3JlL2RvbS9TcGFjZVNwbGl0U3RyaW5nLmgK
aW5kZXggZWY1NjgwMS4uZjg1Yjk2NCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvZG9tL1Nw
YWNlU3BsaXRTdHJpbmcuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9kb20vU3BhY2VTcGxpdFN0cmlu
Zy5oCkBAIC0xMDUsNyArMTA1LDcgQEAgcHVibGljOgogICAgIGJvb2wgb3BlcmF0b3IhPShjb25z
dCBTcGFjZVNwbGl0U3RyaW5nJiBvdGhlcikgY29uc3QgeyByZXR1cm4gbV9kYXRhICE9IG90aGVy
Lm1fZGF0YTsgfQogCiAgICAgdm9pZCBzZXQoY29uc3QgQXRvbWljU3RyaW5nJiwgYm9vbCBzaG91
bGRGb2xkQ2FzZSk7Ci0gICAgdm9pZCBjbGVhcigpIHsgbV9kYXRhLmNsZWFyKCk7IH0KKyAgICB2
b2lkIGNsZWFyKCkgeyBtX2RhdGEgPSBudWxscHRyOyB9CiAKICAgICBib29sIGNvbnRhaW5zKGNv
bnN0IEF0b21pY1N0cmluZyYgc3RyaW5nKSBjb25zdCB7IHJldHVybiBtX2RhdGEgJiYgbV9kYXRh
LT5jb250YWlucyhzdHJpbmcpOyB9CiAgICAgYm9vbCBjb250YWluc0FsbChjb25zdCBTcGFjZVNw
bGl0U3RyaW5nJiBuYW1lcykgY29uc3QgeyByZXR1cm4gIW5hbWVzLm1fZGF0YSB8fCAobV9kYXRh
ICYmIG1fZGF0YS0+Y29udGFpbnNBbGwoKm5hbWVzLm1fZGF0YSkpOyB9CmRpZmYgLS1naXQgYS9T
b3VyY2UvV2ViQ29yZS9kb20vU3R5bGVkRWxlbWVudC5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9kb20v
U3R5bGVkRWxlbWVudC5jcHAKaW5kZXggNWIyNjk2NmIuLjBlYzBkN2YgMTAwNjQ0Ci0tLSBhL1Nv
dXJjZS9XZWJDb3JlL2RvbS9TdHlsZWRFbGVtZW50LmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9k
b20vU3R5bGVkRWxlbWVudC5jcHAKQEAgLTE4NSw3ICsxODUsNyBAQCBpbmxpbmUgdm9pZCBTdHls
ZWRFbGVtZW50OjpzZXRJbmxpbmVTdHlsZUZyb21TdHJpbmcoY29uc3QgQXRvbWljU3RyaW5nJiBu
ZXdTdHlsZQogICAgIC8vIFdlIHJlY29uc3RydWN0IHRoZSBwcm9wZXJ0eSBzZXQgaW5zdGVhZCBv
ZiBtdXRhdGluZyBpZiB0aGVyZSBpcyBubyBDU1NPTSB3cmFwcGVyLgogICAgIC8vIFRoaXMgbWFr
ZXMgd3JhcHBlcmxlc3MgcHJvcGVydHkgc2V0cyBpbW11dGFibGUgYW5kIHNvIGNhY2hlYWJsZS4K
ICAgICBpZiAoaW5saW5lU3R5bGUgJiYgIWlzPE11dGFibGVTdHlsZVByb3BlcnRpZXM+KCppbmxp
bmVTdHlsZSkpCi0gICAgICAgIGlubGluZVN0eWxlLmNsZWFyKCk7CisgICAgICAgIGlubGluZVN0
eWxlID0gbnVsbHB0cjsKIAogICAgIGlmICghaW5saW5lU3R5bGUpCiAgICAgICAgIGlubGluZVN0
eWxlID0gQ1NTUGFyc2VyOjpwYXJzZUlubGluZVN0eWxlRGVjbGFyYXRpb24obmV3U3R5bGVTdHJp
bmcsIHRoaXMpOwpAQCAtMjAyLDcgKzIwMiw3IEBAIHZvaWQgU3R5bGVkRWxlbWVudDo6c3R5bGVB
dHRyaWJ1dGVDaGFuZ2VkKGNvbnN0IEF0b21pY1N0cmluZyYgbmV3U3R5bGVTdHJpbmcsIEF0CiAg
ICAgaWYgKG5ld1N0eWxlU3RyaW5nLmlzTnVsbCgpKSB7CiAgICAgICAgIGlmIChQcm9wZXJ0eVNl
dENTU1N0eWxlRGVjbGFyYXRpb24qIGNzc29tV3JhcHBlciA9IGlubGluZVN0eWxlQ1NTT01XcmFw
cGVyKCkpCiAgICAgICAgICAgICBjc3NvbVdyYXBwZXItPmNsZWFyUGFyZW50RWxlbWVudCgpOwot
ICAgICAgICBlbnN1cmVVbmlxdWVFbGVtZW50RGF0YSgpLm1faW5saW5lU3R5bGUuY2xlYXIoKTsK
KyAgICAgICAgZW5zdXJlVW5pcXVlRWxlbWVudERhdGEoKS5tX2lubGluZVN0eWxlID0gbnVsbHB0
cjsKICAgICB9IGVsc2UgaWYgKHJlYXNvbiA9PSBNb2RpZmllZEJ5Q2xvbmluZyB8fCBkb2N1bWVu
dCgpLmNvbnRlbnRTZWN1cml0eVBvbGljeSgpLT5hbGxvd0lubGluZVN0eWxlKGRvY3VtZW50KCku
dXJsKCksIHN0YXJ0TGluZU51bWJlcikpCiAgICAgICAgIHNldElubGluZVN0eWxlRnJvbVN0cmlu
ZyhuZXdTdHlsZVN0cmluZyk7CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2VkaXRpbmcv
QWx0ZXJuYXRpdmVUZXh0Q29udHJvbGxlci5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9lZGl0aW5nL0Fs
dGVybmF0aXZlVGV4dENvbnRyb2xsZXIuY3BwCmluZGV4IGY1YmM5NDguLjI3NWU0MzAgMTAwNjQ0
Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2VkaXRpbmcvQWx0ZXJuYXRpdmVUZXh0Q29udHJvbGxlci5j
cHAKKysrIGIvU291cmNlL1dlYkNvcmUvZWRpdGluZy9BbHRlcm5hdGl2ZVRleHRDb250cm9sbGVy
LmNwcApAQCAtMTQ3LDcgKzE0Nyw3IEBAIHZvaWQgQWx0ZXJuYXRpdmVUZXh0Q29udHJvbGxlcjo6
c3RhcnRBbHRlcm5hdGl2ZVRleHRVSVRpbWVyKEFsdGVybmF0aXZlVGV4dFR5cGUKIAogICAgIC8v
IElmIHR5cGUgaXMgUGFuZWxUeXBlUmV2ZXJzaW9uLCB0aGVuIHRoZSBuZXcgcmFuZ2UgaGFzIGJl
ZW4gc2V0LiBTbyB3ZSBzaG91bGRuJ3QgY2xlYXIgaXQuCiAgICAgaWYgKHR5cGUgPT0gQWx0ZXJu
YXRpdmVUZXh0VHlwZUNvcnJlY3Rpb24pCi0gICAgICAgIG1fYWx0ZXJuYXRpdmVUZXh0SW5mby5y
YW5nZVdpdGhBbHRlcm5hdGl2ZS5jbGVhcigpOworICAgICAgICBtX2FsdGVybmF0aXZlVGV4dElu
Zm8ucmFuZ2VXaXRoQWx0ZXJuYXRpdmUgPSBudWxscHRyOwogICAgIG1fYWx0ZXJuYXRpdmVUZXh0
SW5mby50eXBlID0gdHlwZTsKICAgICBtX3RpbWVyLnN0YXJ0T25lU2hvdChjb3JyZWN0aW9uUGFu
ZWxUaW1lckludGVydmFsKTsKIH0KQEAgLTE1NSw3ICsxNTUsNyBAQCB2b2lkIEFsdGVybmF0aXZl
VGV4dENvbnRyb2xsZXI6OnN0YXJ0QWx0ZXJuYXRpdmVUZXh0VUlUaW1lcihBbHRlcm5hdGl2ZVRl
eHRUeXBlCiB2b2lkIEFsdGVybmF0aXZlVGV4dENvbnRyb2xsZXI6OnN0b3BBbHRlcm5hdGl2ZVRl
eHRVSVRpbWVyKCkKIHsKICAgICBtX3RpbWVyLnN0b3AoKTsKLSAgICBtX2FsdGVybmF0aXZlVGV4
dEluZm8ucmFuZ2VXaXRoQWx0ZXJuYXRpdmUuY2xlYXIoKTsKKyAgICBtX2FsdGVybmF0aXZlVGV4
dEluZm8ucmFuZ2VXaXRoQWx0ZXJuYXRpdmUgPSBudWxscHRyOwogfQogCiB2b2lkIEFsdGVybmF0
aXZlVGV4dENvbnRyb2xsZXI6OnN0b3BQZW5kaW5nQ29ycmVjdGlvbihjb25zdCBWaXNpYmxlU2Vs
ZWN0aW9uJiBvbGRTZWxlY3Rpb24pCkBAIC0xODMsNyArMTgzLDcgQEAgdm9pZCBBbHRlcm5hdGl2
ZVRleHRDb250cm9sbGVyOjphcHBseVBlbmRpbmdDb3JyZWN0aW9uKGNvbnN0IFZpc2libGVTZWxl
Y3Rpb24mIHMKICAgICBpZiAoZG9BcHBseUNvcnJlY3Rpb24pCiAgICAgICAgIGhhbmRsZUFsdGVy
bmF0aXZlVGV4dFVJUmVzdWx0KGRpc21pc3NTb29uKFJlYXNvbkZvckRpc21pc3NpbmdBbHRlcm5h
dGl2ZVRleHRBY2NlcHRlZCkpOyAKICAgICBlbHNlCi0gICAgICAgIG1fYWx0ZXJuYXRpdmVUZXh0
SW5mby5yYW5nZVdpdGhBbHRlcm5hdGl2ZS5jbGVhcigpOworICAgICAgICBtX2FsdGVybmF0aXZl
VGV4dEluZm8ucmFuZ2VXaXRoQWx0ZXJuYXRpdmUgPSBudWxscHRyOwogfQogCiBib29sIEFsdGVy
bmF0aXZlVGV4dENvbnRyb2xsZXI6Omhhc1BlbmRpbmdDb3JyZWN0aW9uKCkgY29uc3QKQEAgLTM1
OSw3ICszNTksNyBAQCB2b2lkIEFsdGVybmF0aXZlVGV4dENvbnRyb2xsZXI6OnRpbWVyRmlyZWQo
KQogICAgICAgICBWZWN0b3I8U3RyaW5nPiBzdWdnZXN0aW9uczsKICAgICAgICAgdGV4dENoZWNr
ZXIoKS0+Z2V0R3Vlc3Nlc0ZvcldvcmQobV9hbHRlcm5hdGl2ZVRleHRJbmZvLm9yaWdpbmFsVGV4
dCwgcGFyYWdyYXBoVGV4dCwgc3VnZ2VzdGlvbnMpOwogICAgICAgICBpZiAoc3VnZ2VzdGlvbnMu
aXNFbXB0eSgpKSB7Ci0gICAgICAgICAgICBtX2FsdGVybmF0aXZlVGV4dEluZm8ucmFuZ2VXaXRo
QWx0ZXJuYXRpdmUuY2xlYXIoKTsKKyAgICAgICAgICAgIG1fYWx0ZXJuYXRpdmVUZXh0SW5mby5y
YW5nZVdpdGhBbHRlcm5hdGl2ZSA9IG51bGxwdHI7CiAgICAgICAgICAgICBicmVhazsKICAgICAg
ICAgfQogICAgICAgICBTdHJpbmcgdG9wU3VnZ2VzdGlvbiA9IHN1Z2dlc3Rpb25zLmZpcnN0KCk7
CkBAIC00MjIsNyArNDIyLDcgQEAgdm9pZCBBbHRlcm5hdGl2ZVRleHRDb250cm9sbGVyOjpoYW5k
bGVBbHRlcm5hdGl2ZVRleHRVSVJlc3VsdChjb25zdCBTdHJpbmcmIHJlc3UKICAgICAgICAgYnJl
YWs7CiAgICAgfQogCi0gICAgbV9hbHRlcm5hdGl2ZVRleHRJbmZvLnJhbmdlV2l0aEFsdGVybmF0
aXZlLmNsZWFyKCk7CisgICAgbV9hbHRlcm5hdGl2ZVRleHRJbmZvLnJhbmdlV2l0aEFsdGVybmF0
aXZlID0gbnVsbHB0cjsKIH0KIAogYm9vbCBBbHRlcm5hdGl2ZVRleHRDb250cm9sbGVyOjppc0F1
dG9tYXRpY1NwZWxsaW5nQ29ycmVjdGlvbkVuYWJsZWQoKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dl
YkNvcmUvZWRpdGluZy9FZGl0aW5nU3R5bGUuY3BwIGIvU291cmNlL1dlYkNvcmUvZWRpdGluZy9F
ZGl0aW5nU3R5bGUuY3BwCmluZGV4IDVjZjEyY2QuLjE3YWFiMjkgMTAwNjQ0Ci0tLSBhL1NvdXJj
ZS9XZWJDb3JlL2VkaXRpbmcvRWRpdGluZ1N0eWxlLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9l
ZGl0aW5nL0VkaXRpbmdTdHlsZS5jcHAKQEAgLTYzOCw3ICs2MzgsNyBAQCB2b2lkIEVkaXRpbmdT
dHlsZTo6b3ZlcnJpZGVUeXBpbmdTdHlsZUF0KGNvbnN0IEVkaXRpbmdTdHlsZSYgc3R5bGUsIGNv
bnN0IFBvc2l0aQogCiB2b2lkIEVkaXRpbmdTdHlsZTo6Y2xlYXIoKQogewotICAgIG1fbXV0YWJs
ZVN0eWxlLmNsZWFyKCk7CisgICAgbV9tdXRhYmxlU3R5bGUgPSBudWxscHRyOwogICAgIG1fc2hv
dWxkVXNlRml4ZWREZWZhdWx0Rm9udFNpemUgPSBmYWxzZTsKICAgICBtX2ZvbnRTaXplRGVsdGEg
PSBOb0ZvbnREZWx0YTsKICAgICBzZXRVbmRlcmxpbmVDaGFuZ2UoVGV4dERlY29yYXRpb25DaGFu
Z2U6Ok5vbmUpOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvZWRpdGluZy9FZGl0b3IuY3Bw
IGIvU291cmNlL1dlYkNvcmUvZWRpdGluZy9FZGl0b3IuY3BwCmluZGV4IGEzYzNjOWMuLmIzMWNi
MzMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2VkaXRpbmcvRWRpdG9yLmNwcAorKysgYi9T
b3VyY2UvV2ViQ29yZS9lZGl0aW5nL0VkaXRvci5jcHAKQEAgLTgyOCw3ICs4MjgsNyBAQCB2b2lk
IEVkaXRvcjo6cmVtb3ZlRm9ybWF0dGluZ0FuZFN0eWxlKCkKIAogdm9pZCBFZGl0b3I6OmNsZWFy
TGFzdEVkaXRDb21tYW5kKCkgCiB7Ci0gICAgbV9sYXN0RWRpdENvbW1hbmQuY2xlYXIoKTsKKyAg
ICBtX2xhc3RFZGl0Q29tbWFuZCA9IG51bGxwdHI7CiB9CiAjaWYgUExBVEZPUk0oSU9TKQogLy8g
SWYgdGhlIHNlbGVjdGlvbiBpcyBhZGp1c3RlZCBmcm9tIFVJS2l0IHdpdGhvdXQgY2xvc2luZyB0
aGUgdHlwaW5nLCB0aGUgdHlwaW5nIGNvbW1hbmQgbWF5CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2Vi
Q29yZS9lZGl0aW5nL0ZyYW1lU2VsZWN0aW9uLmNwcCBiL1NvdXJjZS9XZWJDb3JlL2VkaXRpbmcv
RnJhbWVTZWxlY3Rpb24uY3BwCmluZGV4IDllZTAwZjIuLjVkNjFhNTYgMTAwNjQ0Ci0tLSBhL1Nv
dXJjZS9XZWJDb3JlL2VkaXRpbmcvRnJhbWVTZWxlY3Rpb24uY3BwCisrKyBiL1NvdXJjZS9XZWJD
b3JlL2VkaXRpbmcvRnJhbWVTZWxlY3Rpb24uY3BwCkBAIC0xMzU5LDcgKzEzNTksNyBAQCB2b2lk
IEZyYW1lU2VsZWN0aW9uOjpwcmVwYXJlRm9yRGVzdHJ1Y3Rpb24oKQogICAgICAgICB2aWV3LT5j
bGVhclNlbGVjdGlvbigpOwogCiAgICAgc2V0U2VsZWN0aW9uV2l0aG91dFVwZGF0aW5nQXBwZWFy
YW5jZShWaXNpYmxlU2VsZWN0aW9uKCksIGRlZmF1bHRTZXRTZWxlY3Rpb25PcHRpb25zKCksIEFs
aWduQ3Vyc29yT25TY3JvbGxJZk5lZWRlZCwgQ2hhcmFjdGVyR3JhbnVsYXJpdHkpOwotICAgIG1f
cHJldmlvdXNDYXJldE5vZGUuY2xlYXIoKTsKKyAgICBtX3ByZXZpb3VzQ2FyZXROb2RlID0gbnVs
bHB0cjsKIH0KIAogdm9pZCBGcmFtZVNlbGVjdGlvbjo6c2V0U3RhcnQoY29uc3QgVmlzaWJsZVBv
c2l0aW9uICZwb3MsIEVVc2VyVHJpZ2dlcmVkIHRyaWdnZXIpCmRpZmYgLS1naXQgYS9Tb3VyY2Uv
V2ViQ29yZS9lZGl0aW5nL0ZyYW1lU2VsZWN0aW9uLmggYi9Tb3VyY2UvV2ViQ29yZS9lZGl0aW5n
L0ZyYW1lU2VsZWN0aW9uLmgKaW5kZXggNzc4M2I2YS4uMGNmMDQwNiAxMDA2NDQKLS0tIGEvU291
cmNlL1dlYkNvcmUvZWRpdGluZy9GcmFtZVNlbGVjdGlvbi5oCisrKyBiL1NvdXJjZS9XZWJDb3Jl
L2VkaXRpbmcvRnJhbWVTZWxlY3Rpb24uaApAQCAtMzU5LDcgKzM1OSw3IEBAIGlubGluZSBFZGl0
aW5nU3R5bGUqIEZyYW1lU2VsZWN0aW9uOjp0eXBpbmdTdHlsZSgpIGNvbnN0CiAKIGlubGluZSB2
b2lkIEZyYW1lU2VsZWN0aW9uOjpjbGVhclR5cGluZ1N0eWxlKCkKIHsKLSAgICBtX3R5cGluZ1N0
eWxlLmNsZWFyKCk7CisgICAgbV90eXBpbmdTdHlsZSA9IG51bGxwdHI7CiB9CiAKIGlubGluZSB2
b2lkIEZyYW1lU2VsZWN0aW9uOjpzZXRUeXBpbmdTdHlsZShQYXNzUmVmUHRyPEVkaXRpbmdTdHls
ZT4gc3R5bGUpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9lZGl0aW5nL1NwZWxsQ2hlY2tl
ci5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9lZGl0aW5nL1NwZWxsQ2hlY2tlci5jcHAKaW5kZXggOGI0
ZDU0MS4uMDNmMmU1MSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvZWRpdGluZy9TcGVsbENo
ZWNrZXIuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2VkaXRpbmcvU3BlbGxDaGVja2VyLmNwcApA
QCAtMjE0LDcgKzIxNCw3IEBAIHZvaWQgU3BlbGxDaGVja2VyOjpkaWRDaGVjayhpbnQgc2VxdWVu
Y2UsIGNvbnN0IFZlY3RvcjxUZXh0Q2hlY2tpbmdSZXN1bHQ+JiByZXN1CiAgICAgaWYgKG1fbGFz
dFByb2Nlc3NlZFNlcXVlbmNlIDwgc2VxdWVuY2UpCiAgICAgICAgIG1fbGFzdFByb2Nlc3NlZFNl
cXVlbmNlID0gc2VxdWVuY2U7CiAKLSAgICBtX3Byb2Nlc3NpbmdSZXF1ZXN0LmNsZWFyKCk7Cisg
ICAgbV9wcm9jZXNzaW5nUmVxdWVzdCA9IG51bGxwdHI7CiAgICAgaWYgKCFtX3JlcXVlc3RRdWV1
ZS5pc0VtcHR5KCkpCiAgICAgICAgIG1fdGltZXJUb1Byb2Nlc3NRdWV1ZWRSZXF1ZXN0LnN0YXJ0
T25lU2hvdCgwKTsKIH0KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2h0bWwvQmFzZUNob29z
ZXJPbmx5RGF0ZUFuZFRpbWVJbnB1dFR5cGUuY3BwIGIvU291cmNlL1dlYkNvcmUvaHRtbC9CYXNl
Q2hvb3Nlck9ubHlEYXRlQW5kVGltZUlucHV0VHlwZS5jcHAKaW5kZXggZTlhNmNjMC4uZGJlYTBl
OSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvaHRtbC9CYXNlQ2hvb3Nlck9ubHlEYXRlQW5k
VGltZUlucHV0VHlwZS5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvaHRtbC9CYXNlQ2hvb3Nlck9u
bHlEYXRlQW5kVGltZUlucHV0VHlwZS5jcHAKQEAgLTk4LDcgKzk4LDcgQEAgdm9pZCBCYXNlQ2hv
b3Nlck9ubHlEYXRlQW5kVGltZUlucHV0VHlwZTo6ZGlkQ2hvb3NlVmFsdWUoY29uc3QgU3RyaW5n
JiB2YWx1ZSkKIAogdm9pZCBCYXNlQ2hvb3Nlck9ubHlEYXRlQW5kVGltZUlucHV0VHlwZTo6ZGlk
RW5kQ2hvb3NlcigpCiB7Ci0gICAgbV9kYXRlVGltZUNob29zZXIuY2xlYXIoKTsKKyAgICBtX2Rh
dGVUaW1lQ2hvb3NlciA9IG51bGxwdHI7CiB9CiAKIHZvaWQgQmFzZUNob29zZXJPbmx5RGF0ZUFu
ZFRpbWVJbnB1dFR5cGU6OmNsb3NlRGF0ZVRpbWVDaG9vc2VyKCkKZGlmZiAtLWdpdCBhL1NvdXJj
ZS9XZWJDb3JlL2h0bWwvRmlsZUlucHV0VHlwZS5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9odG1sL0Zp
bGVJbnB1dFR5cGUuY3BwCmluZGV4IGEzZDNiNmIuLjQ4OWQ3OTkgMTAwNjQ0Ci0tLSBhL1NvdXJj
ZS9XZWJDb3JlL2h0bWwvRmlsZUlucHV0VHlwZS5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvaHRt
bC9GaWxlSW5wdXRUeXBlLmNwcApAQCAtMjUwLDcgKzI1MCw3IEBAIHZvaWQgRmlsZUlucHV0VHlw
ZTo6c2V0VmFsdWUoY29uc3QgU3RyaW5nJiwgYm9vbCwgVGV4dEZpZWxkRXZlbnRCZWhhdmlvcikK
IHsKICAgICAvLyBGSVhNRTogU2hvdWxkIHdlIGNsZWFyIHRoZSBmaWxlIGxpc3QsIG9yIHJlcGxh
Y2UgaXQgd2l0aCBhIG5ldyBlbXB0eSBvbmUgaGVyZT8gVGhpcyBpcyBvYnNlcnZhYmxlIGZyb20g
SmF2YVNjcmlwdCB0aHJvdWdoIGN1c3RvbSBwcm9wZXJ0aWVzLgogICAgIG1fZmlsZUxpc3QtPmNs
ZWFyKCk7Ci0gICAgbV9pY29uLmNsZWFyKCk7CisgICAgbV9pY29uID0gbnVsbHB0cjsKICAgICBl
bGVtZW50KCkuc2V0TmVlZHNTdHlsZVJlY2FsYygpOwogfQogCmRpZmYgLS1naXQgYS9Tb3VyY2Uv
V2ViQ29yZS9odG1sL0hUTUxDYW52YXNFbGVtZW50LmNwcCBiL1NvdXJjZS9XZWJDb3JlL2h0bWwv
SFRNTENhbnZhc0VsZW1lbnQuY3BwCmluZGV4IDg2ZDQ1YTQuLmNlNWQ3YjIgMTAwNjQ0Ci0tLSBh
L1NvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTENhbnZhc0VsZW1lbnQuY3BwCisrKyBiL1NvdXJjZS9X
ZWJDb3JlL2h0bWwvSFRNTENhbnZhc0VsZW1lbnQuY3BwCkBAIC00MjMsNyArNDIzLDcgQEAgdm9p
ZCBIVE1MQ2FudmFzRWxlbWVudDo6bWFrZVByZXNlbnRhdGlvbkNvcHkoKQogCiB2b2lkIEhUTUxD
YW52YXNFbGVtZW50OjpjbGVhclByZXNlbnRhdGlvbkNvcHkoKQogewotICAgIG1fcHJlc2VudGVk
SW1hZ2UuY2xlYXIoKTsKKyAgICBtX3ByZXNlbnRlZEltYWdlID0gbnVsbHB0cjsKIH0KIAogdm9p
ZCBIVE1MQ2FudmFzRWxlbWVudDo6c2V0U3VyZmFjZVNpemUoY29uc3QgSW50U2l6ZSYgc2l6ZSkK
QEAgLTY0NCw3ICs2NDQsNyBAQCB2b2lkIEhUTUxDYW52YXNFbGVtZW50OjpjbGVhckltYWdlQnVm
ZmVyKCkgY29uc3QKIAogdm9pZCBIVE1MQ2FudmFzRWxlbWVudDo6Y2xlYXJDb3BpZWRJbWFnZSgp
CiB7Ci0gICAgbV9jb3BpZWRJbWFnZS5jbGVhcigpOworICAgIG1fY29waWVkSW1hZ2UgPSBudWxs
cHRyOwogICAgIG1fZGlkQ2xlYXJJbWFnZUJ1ZmZlciA9IGZhbHNlOwogfQogCmRpZmYgLS1naXQg
YS9Tb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxQbHVnSW5FbGVtZW50LmNwcCBiL1NvdXJjZS9XZWJD
b3JlL2h0bWwvSFRNTFBsdWdJbkVsZW1lbnQuY3BwCmluZGV4IDIyMDQ2ZWEuLmQ3ODZkZjQgMTAw
NjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTFBsdWdJbkVsZW1lbnQuY3BwCisrKyBi
L1NvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTFBsdWdJbkVsZW1lbnQuY3BwCkBAIC0xMDQsNyArMTA0
LDcgQEAgYm9vbCBIVE1MUGx1Z0luRWxlbWVudDo6d2lsbFJlc3BvbmRUb01vdXNlQ2xpY2tFdmVu
dHMoKQogCiB2b2lkIEhUTUxQbHVnSW5FbGVtZW50Ojp3aWxsRGV0YWNoUmVuZGVyZXJzKCkKIHsK
LSAgICBtX2luc3RhbmNlLmNsZWFyKCk7CisgICAgbV9pbnN0YW5jZSA9IG51bGxwdHI7CiAKICAg
ICBpZiAobV9pc0NhcHR1cmluZ01vdXNlRXZlbnRzKSB7CiAgICAgICAgIGlmIChGcmFtZSogZnJh
bWUgPSBkb2N1bWVudCgpLmZyYW1lKCkpCkBAIC0xMjIsNyArMTIyLDcgQEAgdm9pZCBIVE1MUGx1
Z0luRWxlbWVudDo6d2lsbERldGFjaFJlbmRlcmVycygpCiAKIHZvaWQgSFRNTFBsdWdJbkVsZW1l
bnQ6OnJlc2V0SW5zdGFuY2UoKQogewotICAgIG1faW5zdGFuY2UuY2xlYXIoKTsKKyAgICBtX2lu
c3RhbmNlID0gbnVsbHB0cjsKIH0KIAogUGFzc1JlZlB0cjxKU0M6OkJpbmRpbmdzOjpJbnN0YW5j
ZT4gSFRNTFBsdWdJbkVsZW1lbnQ6OmdldEluc3RhbmNlKCkKZGlmZiAtLWdpdCBhL1NvdXJjZS9X
ZWJDb3JlL2h0bWwvVGV4dEZpZWxkSW5wdXRUeXBlLmNwcCBiL1NvdXJjZS9XZWJDb3JlL2h0bWwv
VGV4dEZpZWxkSW5wdXRUeXBlLmNwcAppbmRleCA0YjI4YWE4Li5lYWUzZGIyIDEwMDY0NAotLS0g
YS9Tb3VyY2UvV2ViQ29yZS9odG1sL1RleHRGaWVsZElucHV0VHlwZS5jcHAKKysrIGIvU291cmNl
L1dlYkNvcmUvaHRtbC9UZXh0RmllbGRJbnB1dFR5cGUuY3BwCkBAIC00NjIsNyArNDYyLDcgQEAg
dm9pZCBUZXh0RmllbGRJbnB1dFR5cGU6OnVwZGF0ZVBsYWNlaG9sZGVyVGV4dCgpCiAgICAgaWYg
KHBsYWNlaG9sZGVyVGV4dC5pc0VtcHR5KCkpIHsKICAgICAgICAgaWYgKG1fcGxhY2Vob2xkZXIp
IHsKICAgICAgICAgICAgIG1fcGxhY2Vob2xkZXItPnBhcmVudE5vZGUoKS0+cmVtb3ZlQ2hpbGQo
bV9wbGFjZWhvbGRlci5nZXQoKSwgQVNTRVJUX05PX0VYQ0VQVElPTik7Ci0gICAgICAgICAgICBt
X3BsYWNlaG9sZGVyLmNsZWFyKCk7CisgICAgICAgICAgICBtX3BsYWNlaG9sZGVyID0gbnVsbHB0
cjsKICAgICAgICAgfQogICAgICAgICByZXR1cm47CiAgICAgfQpkaWZmIC0tZ2l0IGEvU291cmNl
L1dlYkNvcmUvaHRtbC9jYW52YXMvV2ViR0xSZW5kZXJpbmdDb250ZXh0QmFzZS5jcHAgYi9Tb3Vy
Y2UvV2ViQ29yZS9odG1sL2NhbnZhcy9XZWJHTFJlbmRlcmluZ0NvbnRleHRCYXNlLmNwcAppbmRl
eCBiNjZiNjY5Li43NzVkZmM2IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9odG1sL2NhbnZh
cy9XZWJHTFJlbmRlcmluZ0NvbnRleHRCYXNlLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9odG1s
L2NhbnZhcy9XZWJHTFJlbmRlcmluZ0NvbnRleHRCYXNlLmNwcApAQCAtNjIzLDcgKzYyMyw3IEBA
IHZvaWQgV2ViR0xSZW5kZXJpbmdDb250ZXh0QmFzZTo6ZGVzdHJveUdyYXBoaWNzQ29udGV4dDNE
KCkKICAgICBpZiAobV9jb250ZXh0KSB7CiAgICAgICAgIG1fY29udGV4dC0+c2V0Q29udGV4dExv
c3RDYWxsYmFjayhudWxscHRyKTsKICAgICAgICAgbV9jb250ZXh0LT5zZXRFcnJvck1lc3NhZ2VD
YWxsYmFjayhudWxscHRyKTsKLSAgICAgICAgbV9jb250ZXh0LmNsZWFyKCk7CisgICAgICAgIG1f
Y29udGV4dCA9IG51bGxwdHI7CiAgICAgfQogfQogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29y
ZS9pbnNwZWN0b3IvSW5zcGVjdG9yQXBwbGljYXRpb25DYWNoZUFnZW50LmNwcCBiL1NvdXJjZS9X
ZWJDb3JlL2luc3BlY3Rvci9JbnNwZWN0b3JBcHBsaWNhdGlvbkNhY2hlQWdlbnQuY3BwCmluZGV4
IGZkNGNhZjYuLjJkY2QyNmUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9J
bnNwZWN0b3JBcHBsaWNhdGlvbkNhY2hlQWdlbnQuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2lu
c3BlY3Rvci9JbnNwZWN0b3JBcHBsaWNhdGlvbkNhY2hlQWdlbnQuY3BwCkBAIC01OCw3ICs1OCw3
IEBAIHZvaWQgSW5zcGVjdG9yQXBwbGljYXRpb25DYWNoZUFnZW50OjpkaWRDcmVhdGVGcm9udGVu
ZEFuZEJhY2tlbmQoRnJvbnRlbmRDaGFubmVsCiB2b2lkIEluc3BlY3RvckFwcGxpY2F0aW9uQ2Fj
aGVBZ2VudDo6d2lsbERlc3Ryb3lGcm9udGVuZEFuZEJhY2tlbmQoSW5zcGVjdG9yOjpEaXNjb25u
ZWN0UmVhc29uKQogewogICAgIG1fZnJvbnRlbmREaXNwYXRjaGVyID0gbnVsbHB0cjsKLSAgICBt
X2JhY2tlbmREaXNwYXRjaGVyLmNsZWFyKCk7CisgICAgbV9iYWNrZW5kRGlzcGF0Y2hlciA9IG51
bGxwdHI7CiAKICAgICBtX2luc3RydW1lbnRpbmdBZ2VudHMtPnNldEluc3BlY3RvckFwcGxpY2F0
aW9uQ2FjaGVBZ2VudChudWxscHRyKTsKIH0KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2lu
c3BlY3Rvci9JbnNwZWN0b3JDU1NBZ2VudC5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3Iv
SW5zcGVjdG9yQ1NTQWdlbnQuY3BwCmluZGV4IGE5MDgzZDAuLjNkMDYyMDggMTAwNjQ0Ci0tLSBh
L1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9JbnNwZWN0b3JDU1NBZ2VudC5jcHAKKysrIGIvU291
cmNlL1dlYkNvcmUvaW5zcGVjdG9yL0luc3BlY3RvckNTU0FnZW50LmNwcApAQCAtMzYwLDcgKzM2
MCw3IEBAIHZvaWQgSW5zcGVjdG9yQ1NTQWdlbnQ6OmRpZENyZWF0ZUZyb250ZW5kQW5kQmFja2Vu
ZChJbnNwZWN0b3I6OkZyb250ZW5kQ2hhbm5lbCoKIHZvaWQgSW5zcGVjdG9yQ1NTQWdlbnQ6Ondp
bGxEZXN0cm95RnJvbnRlbmRBbmRCYWNrZW5kKEluc3BlY3Rvcjo6RGlzY29ubmVjdFJlYXNvbikK
IHsKICAgICBtX2Zyb250ZW5kRGlzcGF0Y2hlciA9IG51bGxwdHI7Ci0gICAgbV9iYWNrZW5kRGlz
cGF0Y2hlci5jbGVhcigpOworICAgIG1fYmFja2VuZERpc3BhdGNoZXIgPSBudWxscHRyOwogCiAg
ICAgcmVzZXROb25QZXJzaXN0ZW50RGF0YSgpOwogfQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNv
cmUvaW5zcGVjdG9yL0luc3BlY3RvckNvbnRyb2xsZXIuY3BwIGIvU291cmNlL1dlYkNvcmUvaW5z
cGVjdG9yL0luc3BlY3RvckNvbnRyb2xsZXIuY3BwCmluZGV4IGYyM2E1ZWEuLmJjODBiY2EgMTAw
NjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9JbnNwZWN0b3JDb250cm9sbGVyLmNw
cAorKysgYi9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvSW5zcGVjdG9yQ29udHJvbGxlci5jcHAK
QEAgLTI2Myw3ICsyNjMsNyBAQCB2b2lkIEluc3BlY3RvckNvbnRyb2xsZXI6OmRpc2Nvbm5lY3RG
cm9udGVuZChEaXNjb25uZWN0UmVhc29uIHJlYXNvbikKICAgICBtX2FnZW50cy53aWxsRGVzdHJv
eUZyb250ZW5kQW5kQmFja2VuZChyZWFzb24pOwogCiAgICAgbV9iYWNrZW5kRGlzcGF0Y2hlci0+
Y2xlYXJGcm9udGVuZCgpOwotICAgIG1fYmFja2VuZERpc3BhdGNoZXIuY2xlYXIoKTsKKyAgICBt
X2JhY2tlbmREaXNwYXRjaGVyID0gbnVsbHB0cjsKICAgICBtX2Zyb250ZW5kQ2hhbm5lbCA9IG51
bGxwdHI7CiAKICAgICBtX2lzQXV0b21hdGljSW5zcGVjdGlvbiA9IGZhbHNlOwpkaWZmIC0tZ2l0
IGEvU291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL0luc3BlY3RvckRPTUFnZW50LmNwcCBiL1NvdXJj
ZS9XZWJDb3JlL2luc3BlY3Rvci9JbnNwZWN0b3JET01BZ2VudC5jcHAKaW5kZXggMGVkMmM1Yy4u
YmE3N2RlOSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL0luc3BlY3RvckRP
TUFnZW50LmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvSW5zcGVjdG9yRE9NQWdl
bnQuY3BwCkBAIC0yMzgsNyArMjM4LDcgQEAgdm9pZCBJbnNwZWN0b3JET01BZ2VudDo6ZGlkQ3Jl
YXRlRnJvbnRlbmRBbmRCYWNrZW5kKEluc3BlY3Rvcjo6RnJvbnRlbmRDaGFubmVsKgogdm9pZCBJ
bnNwZWN0b3JET01BZ2VudDo6d2lsbERlc3Ryb3lGcm9udGVuZEFuZEJhY2tlbmQoSW5zcGVjdG9y
OjpEaXNjb25uZWN0UmVhc29uKQogewogICAgIG1fZnJvbnRlbmREaXNwYXRjaGVyID0gbnVsbHB0
cjsKLSAgICBtX2JhY2tlbmREaXNwYXRjaGVyLmNsZWFyKCk7CisgICAgbV9iYWNrZW5kRGlzcGF0
Y2hlciA9IG51bGxwdHI7CiAKICAgICBtX2hpc3RvcnkucmVzZXQoKTsKICAgICBtX2RvbUVkaXRv
ci5yZXNldCgpOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL0luc3BlY3Rv
ckRPTURlYnVnZ2VyQWdlbnQuY3BwIGIvU291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL0luc3BlY3Rv
ckRPTURlYnVnZ2VyQWdlbnQuY3BwCmluZGV4IGY3NzhkZDkuLmQ1MWQ0YmUgMTAwNjQ0Ci0tLSBh
L1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9JbnNwZWN0b3JET01EZWJ1Z2dlckFnZW50LmNwcAor
KysgYi9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvSW5zcGVjdG9yRE9NRGVidWdnZXJBZ2VudC5j
cHAKQEAgLTEwOSw3ICsxMDksNyBAQCB2b2lkIEluc3BlY3RvckRPTURlYnVnZ2VyQWdlbnQ6OmRp
ZENyZWF0ZUZyb250ZW5kQW5kQmFja2VuZChJbnNwZWN0b3I6OkZyb250ZW5kQwogCiB2b2lkIElu
c3BlY3RvckRPTURlYnVnZ2VyQWdlbnQ6OndpbGxEZXN0cm95RnJvbnRlbmRBbmRCYWNrZW5kKElu
c3BlY3Rvcjo6RGlzY29ubmVjdFJlYXNvbikKIHsKLSAgICBtX2JhY2tlbmREaXNwYXRjaGVyLmNs
ZWFyKCk7CisgICAgbV9iYWNrZW5kRGlzcGF0Y2hlciA9IG51bGxwdHI7CiAKICAgICBkaXNhYmxl
KCk7CiB9CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvSW5zcGVjdG9yRE9N
U3RvcmFnZUFnZW50LmNwcCBiL1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9JbnNwZWN0b3JET01T
dG9yYWdlQWdlbnQuY3BwCmluZGV4IGIxNjg3Y2Y1Li4wNGFmODhiIDEwMDY0NAotLS0gYS9Tb3Vy
Y2UvV2ViQ29yZS9pbnNwZWN0b3IvSW5zcGVjdG9yRE9NU3RvcmFnZUFnZW50LmNwcAorKysgYi9T
b3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvSW5zcGVjdG9yRE9NU3RvcmFnZUFnZW50LmNwcApAQCAt
NzYsNyArNzYsNyBAQCB2b2lkIEluc3BlY3RvckRPTVN0b3JhZ2VBZ2VudDo6ZGlkQ3JlYXRlRnJv
bnRlbmRBbmRCYWNrZW5kKEluc3BlY3Rvcjo6RnJvbnRlbmRDaAogdm9pZCBJbnNwZWN0b3JET01T
dG9yYWdlQWdlbnQ6OndpbGxEZXN0cm95RnJvbnRlbmRBbmRCYWNrZW5kKEluc3BlY3Rvcjo6RGlz
Y29ubmVjdFJlYXNvbikKIHsKICAgICBtX2Zyb250ZW5kRGlzcGF0Y2hlciA9IG51bGxwdHI7Ci0g
ICAgbV9iYWNrZW5kRGlzcGF0Y2hlci5jbGVhcigpOworICAgIG1fYmFja2VuZERpc3BhdGNoZXIg
PSBudWxscHRyOwogCiAgICAgRXJyb3JTdHJpbmcgdW51c2VkOwogICAgIGRpc2FibGUodW51c2Vk
KTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9JbnNwZWN0b3JEYXRhYmFz
ZUFnZW50LmNwcCBiL1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9JbnNwZWN0b3JEYXRhYmFzZUFn
ZW50LmNwcAppbmRleCA5MTM0ZGZlLi5iZTI3Zjk1IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29y
ZS9pbnNwZWN0b3IvSW5zcGVjdG9yRGF0YWJhc2VBZ2VudC5jcHAKKysrIGIvU291cmNlL1dlYkNv
cmUvaW5zcGVjdG9yL0luc3BlY3RvckRhdGFiYXNlQWdlbnQuY3BwCkBAIC0yMzEsNyArMjMxLDcg
QEAgdm9pZCBJbnNwZWN0b3JEYXRhYmFzZUFnZW50OjpkaWRDcmVhdGVGcm9udGVuZEFuZEJhY2tl
bmQoSW5zcGVjdG9yOjpGcm9udGVuZENoYW4KIHZvaWQgSW5zcGVjdG9yRGF0YWJhc2VBZ2VudDo6
d2lsbERlc3Ryb3lGcm9udGVuZEFuZEJhY2tlbmQoSW5zcGVjdG9yOjpEaXNjb25uZWN0UmVhc29u
KQogewogICAgIG1fZnJvbnRlbmREaXNwYXRjaGVyID0gbnVsbHB0cjsKLSAgICBtX2JhY2tlbmRE
aXNwYXRjaGVyLmNsZWFyKCk7CisgICAgbV9iYWNrZW5kRGlzcGF0Y2hlciA9IG51bGxwdHI7CiAK
ICAgICBFcnJvclN0cmluZyB1bnVzZWQ7CiAgICAgZGlzYWJsZSh1bnVzZWQpOwpkaWZmIC0tZ2l0
IGEvU291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL0luc3BlY3RvckluZGV4ZWREQkFnZW50LmNwcCBi
L1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9JbnNwZWN0b3JJbmRleGVkREJBZ2VudC5jcHAKaW5k
ZXggOWJmMTI5MS4uMTcyZmI1OCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvaW5zcGVjdG9y
L0luc3BlY3RvckluZGV4ZWREQkFnZW50LmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0
b3IvSW5zcGVjdG9ySW5kZXhlZERCQWdlbnQuY3BwCkBAIC01ODIsNyArNTgyLDcgQEAgdm9pZCBJ
bnNwZWN0b3JJbmRleGVkREJBZ2VudDo6ZGlkQ3JlYXRlRnJvbnRlbmRBbmRCYWNrZW5kKEluc3Bl
Y3Rvcjo6RnJvbnRlbmRDaGEKIAogdm9pZCBJbnNwZWN0b3JJbmRleGVkREJBZ2VudDo6d2lsbERl
c3Ryb3lGcm9udGVuZEFuZEJhY2tlbmQoSW5zcGVjdG9yOjpEaXNjb25uZWN0UmVhc29uKQogewot
ICAgIG1fYmFja2VuZERpc3BhdGNoZXIuY2xlYXIoKTsKKyAgICBtX2JhY2tlbmREaXNwYXRjaGVy
ID0gbnVsbHB0cjsKIAogICAgIEVycm9yU3RyaW5nIHVudXNlZDsKICAgICBkaXNhYmxlKHVudXNl
ZCk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvSW5zcGVjdG9yTGF5ZXJU
cmVlQWdlbnQuY3BwIGIvU291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL0luc3BlY3RvckxheWVyVHJl
ZUFnZW50LmNwcAppbmRleCBiZTY0NDk2Li5mNmU0MWZhIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2Vi
Q29yZS9pbnNwZWN0b3IvSW5zcGVjdG9yTGF5ZXJUcmVlQWdlbnQuY3BwCisrKyBiL1NvdXJjZS9X
ZWJDb3JlL2luc3BlY3Rvci9JbnNwZWN0b3JMYXllclRyZWVBZ2VudC5jcHAKQEAgLTY1LDcgKzY1
LDcgQEAgdm9pZCBJbnNwZWN0b3JMYXllclRyZWVBZ2VudDo6ZGlkQ3JlYXRlRnJvbnRlbmRBbmRC
YWNrZW5kKEluc3BlY3Rvcjo6RnJvbnRlbmRDaGEKIHZvaWQgSW5zcGVjdG9yTGF5ZXJUcmVlQWdl
bnQ6OndpbGxEZXN0cm95RnJvbnRlbmRBbmRCYWNrZW5kKEluc3BlY3Rvcjo6RGlzY29ubmVjdFJl
YXNvbikKIHsKICAgICBtX2Zyb250ZW5kRGlzcGF0Y2hlciA9IG51bGxwdHI7Ci0gICAgbV9iYWNr
ZW5kRGlzcGF0Y2hlci5jbGVhcigpOworICAgIG1fYmFja2VuZERpc3BhdGNoZXIgPSBudWxscHRy
OwogCiAgICAgRXJyb3JTdHJpbmcgdW51c2VkOwogICAgIGRpc2FibGUodW51c2VkKTsKZGlmZiAt
LWdpdCBhL1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9JbnNwZWN0b3JPdmVybGF5LmNwcCBiL1Nv
dXJjZS9XZWJDb3JlL2luc3BlY3Rvci9JbnNwZWN0b3JPdmVybGF5LmNwcAppbmRleCA2ZDNhMGYz
Li5mYWVhN2NlIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvSW5zcGVjdG9y
T3ZlcmxheS5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL0luc3BlY3Rvck92ZXJs
YXkuY3BwCkBAIC0yNDMsOSArMjQzLDkgQEAgdm9pZCBJbnNwZWN0b3JPdmVybGF5OjpzZXRQYXVz
ZWRJbkRlYnVnZ2VyTWVzc2FnZShjb25zdCBTdHJpbmcqIG1lc3NhZ2UpCiAKIHZvaWQgSW5zcGVj
dG9yT3ZlcmxheTo6aGlkZUhpZ2hsaWdodCgpCiB7Ci0gICAgbV9oaWdobGlnaHROb2RlLmNsZWFy
KCk7Ci0gICAgbV9oaWdobGlnaHROb2RlTGlzdC5jbGVhcigpOwotICAgIG1faGlnaGxpZ2h0UXVh
ZC5yZXNldCgpOworICAgIG1faGlnaGxpZ2h0Tm9kZSA9IG51bGxwdHI7CisgICAgbV9oaWdobGln
aHROb2RlTGlzdCA9IG51bGxwdHI7CisgICAgbV9oaWdobGlnaHRRdWFkID0gbnVsbHB0cjsKICAg
ICB1cGRhdGUoKTsKIH0KIApAQCAtMjUzLDcgKzI1Myw3IEBAIHZvaWQgSW5zcGVjdG9yT3Zlcmxh
eTo6aGlnaGxpZ2h0Tm9kZUxpc3QoUGFzc1JlZlB0cjxOb2RlTGlzdD4gbm9kZXMsIGNvbnN0IEhp
Z2hsCiB7CiAgICAgbV9ub2RlSGlnaGxpZ2h0Q29uZmlnID0gaGlnaGxpZ2h0Q29uZmlnOwogICAg
IG1faGlnaGxpZ2h0Tm9kZUxpc3QgPSBub2RlczsKLSAgICBtX2hpZ2hsaWdodE5vZGUuY2xlYXIo
KTsKKyAgICBtX2hpZ2hsaWdodE5vZGUgPSBudWxscHRyOwogICAgIHVwZGF0ZSgpOwogfQogCkBA
IC0yNjEsNyArMjYxLDcgQEAgdm9pZCBJbnNwZWN0b3JPdmVybGF5OjpoaWdobGlnaHROb2RlKE5v
ZGUqIG5vZGUsIGNvbnN0IEhpZ2hsaWdodENvbmZpZyYgaGlnaGxpZ2gKIHsKICAgICBtX25vZGVI
aWdobGlnaHRDb25maWcgPSBoaWdobGlnaHRDb25maWc7CiAgICAgbV9oaWdobGlnaHROb2RlID0g
bm9kZTsKLSAgICBtX2hpZ2hsaWdodE5vZGVMaXN0LmNsZWFyKCk7CisgICAgbV9oaWdobGlnaHRO
b2RlTGlzdCA9IG51bGxwdHI7CiAgICAgdXBkYXRlKCk7CiB9CiAKZGlmZiAtLWdpdCBhL1NvdXJj
ZS9XZWJDb3JlL2luc3BlY3Rvci9JbnNwZWN0b3JQYWdlQWdlbnQuY3BwIGIvU291cmNlL1dlYkNv
cmUvaW5zcGVjdG9yL0luc3BlY3RvclBhZ2VBZ2VudC5jcHAKaW5kZXggNmY1MmJmYS4uM2U5ZmVi
ZSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL0luc3BlY3RvclBhZ2VBZ2Vu
dC5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL0luc3BlY3RvclBhZ2VBZ2VudC5j
cHAKQEAgLTM0OCw3ICszNDgsNyBAQCB2b2lkIEluc3BlY3RvclBhZ2VBZ2VudDo6ZGlkQ3JlYXRl
RnJvbnRlbmRBbmRCYWNrZW5kKEluc3BlY3Rvcjo6RnJvbnRlbmRDaGFubmVsKgogdm9pZCBJbnNw
ZWN0b3JQYWdlQWdlbnQ6OndpbGxEZXN0cm95RnJvbnRlbmRBbmRCYWNrZW5kKEluc3BlY3Rvcjo6
RGlzY29ubmVjdFJlYXNvbikKIHsKICAgICBtX2Zyb250ZW5kRGlzcGF0Y2hlciA9IG51bGxwdHI7
Ci0gICAgbV9iYWNrZW5kRGlzcGF0Y2hlci5jbGVhcigpOworICAgIG1fYmFja2VuZERpc3BhdGNo
ZXIgPSBudWxscHRyOwogCiAgICAgRXJyb3JTdHJpbmcgdW51c2VkOwogICAgIGRpc2FibGUodW51
c2VkKTsKQEAgLTM3NCw3ICszNzQsNyBAQCB2b2lkIEluc3BlY3RvclBhZ2VBZ2VudDo6ZW5hYmxl
KEVycm9yU3RyaW5nJikKIHZvaWQgSW5zcGVjdG9yUGFnZUFnZW50OjpkaXNhYmxlKEVycm9yU3Ry
aW5nJikKIHsKICAgICBtX2VuYWJsZWQgPSBmYWxzZTsKLSAgICBtX3NjcmlwdHNUb0V2YWx1YXRl
T25Mb2FkLmNsZWFyKCk7CisgICAgbV9zY3JpcHRzVG9FdmFsdWF0ZU9uTG9hZCA9IG51bGxwdHI7
CiAgICAgbV9pbnN0cnVtZW50aW5nQWdlbnRzLT5zZXRJbnNwZWN0b3JQYWdlQWdlbnQobnVsbHB0
cik7CiAKICAgICBFcnJvclN0cmluZyB1bnVzZWQ7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29y
ZS9pbnNwZWN0b3IvSW5zcGVjdG9yUmVwbGF5QWdlbnQuY3BwIGIvU291cmNlL1dlYkNvcmUvaW5z
cGVjdG9yL0luc3BlY3RvclJlcGxheUFnZW50LmNwcAppbmRleCA2NGNiODExLi4xODFhNjA5IDEw
MDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvSW5zcGVjdG9yUmVwbGF5QWdlbnQu
Y3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9JbnNwZWN0b3JSZXBsYXlBZ2VudC5j
cHAKQEAgLTE5Myw3ICsxOTMsNyBAQCB2b2lkIEluc3BlY3RvclJlcGxheUFnZW50OjpkaWRDcmVh
dGVGcm9udGVuZEFuZEJhY2tlbmQoSW5zcGVjdG9yOjpGcm9udGVuZENoYW5uZQogdm9pZCBJbnNw
ZWN0b3JSZXBsYXlBZ2VudDo6d2lsbERlc3Ryb3lGcm9udGVuZEFuZEJhY2tlbmQoSW5zcGVjdG9y
OjpEaXNjb25uZWN0UmVhc29uKQogewogICAgIG1fZnJvbnRlbmREaXNwYXRjaGVyID0gbnVsbHB0
cjsKLSAgICBtX2JhY2tlbmREaXNwYXRjaGVyLmNsZWFyKCk7CisgICAgbV9iYWNrZW5kRGlzcGF0
Y2hlciA9IG51bGxwdHI7CiAKICAgICBtX2luc3RydW1lbnRpbmdBZ2VudHMtPnNldEluc3BlY3Rv
clJlcGxheUFnZW50KG51bGxwdHIpOwogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9pbnNw
ZWN0b3IvSW5zcGVjdG9yUmVzb3VyY2VBZ2VudC5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0
b3IvSW5zcGVjdG9yUmVzb3VyY2VBZ2VudC5jcHAKaW5kZXggODU0NDg5Yy4uN2I1NmEwZiAxMDA2
NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL0luc3BlY3RvclJlc291cmNlQWdlbnQu
Y3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9JbnNwZWN0b3JSZXNvdXJjZUFnZW50
LmNwcApAQCAtMTgxLDcgKzE4MSw3IEBAIHZvaWQgSW5zcGVjdG9yUmVzb3VyY2VBZ2VudDo6ZGlk
Q3JlYXRlRnJvbnRlbmRBbmRCYWNrZW5kKEluc3BlY3Rvcjo6RnJvbnRlbmRDaGFuCiB2b2lkIElu
c3BlY3RvclJlc291cmNlQWdlbnQ6OndpbGxEZXN0cm95RnJvbnRlbmRBbmRCYWNrZW5kKEluc3Bl
Y3Rvcjo6RGlzY29ubmVjdFJlYXNvbikKIHsKICAgICBtX2Zyb250ZW5kRGlzcGF0Y2hlciA9IG51
bGxwdHI7Ci0gICAgbV9iYWNrZW5kRGlzcGF0Y2hlci5jbGVhcigpOworICAgIG1fYmFja2VuZERp
c3BhdGNoZXIgPSBudWxscHRyOwogCiAgICAgRXJyb3JTdHJpbmcgdW51c2VkOwogICAgIGRpc2Fi
bGUodW51c2VkKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9JbnNwZWN0
b3JTdHlsZVNoZWV0LmNwcCBiL1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9JbnNwZWN0b3JTdHls
ZVNoZWV0LmNwcAppbmRleCBiNDdjNjU0Li4wNmVjMWI2IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2Vi
Q29yZS9pbnNwZWN0b3IvSW5zcGVjdG9yU3R5bGVTaGVldC5jcHAKKysrIGIvU291cmNlL1dlYkNv
cmUvaW5zcGVjdG9yL0luc3BlY3RvclN0eWxlU2hlZXQuY3BwCkBAIC0xMjYxLDcgKzEyNjEsNyBA
QCB2b2lkIEluc3BlY3RvclN0eWxlU2hlZXRGb3JJbmxpbmVTdHlsZTo6ZGlkTW9kaWZ5RWxlbWVu
dEF0dHJpYnV0ZSgpCiAgICAgbV9pc1N0eWxlVGV4dFZhbGlkID0gZmFsc2U7CiAgICAgaWYgKG1f
ZWxlbWVudC0+aXNTdHlsZWRFbGVtZW50KCkgJiYgbV9lbGVtZW50LT5zdHlsZSgpICE9IG1faW5z
cGVjdG9yU3R5bGUtPmNzc1N0eWxlKCkpCiAgICAgICAgIG1faW5zcGVjdG9yU3R5bGUgPSBJbnNw
ZWN0b3JTdHlsZTo6Y3JlYXRlKEluc3BlY3RvckNTU0lkKGlkKCksIDApLCBpbmxpbmVTdHlsZSgp
LCB0aGlzKTsKLSAgICBtX3J1bGVTb3VyY2VEYXRhLmNsZWFyKCk7CisgICAgbV9ydWxlU291cmNl
RGF0YSA9IG51bGxwdHI7CiB9CiAKIGJvb2wgSW5zcGVjdG9yU3R5bGVTaGVldEZvcklubGluZVN0
eWxlOjpnZXRUZXh0KFN0cmluZyogcmVzdWx0KSBjb25zdApAQCAtMTI4NSw3ICsxMjg1LDcgQEAg
Ym9vbCBJbnNwZWN0b3JTdHlsZVNoZWV0Rm9ySW5saW5lU3R5bGU6OnNldFN0eWxlVGV4dChDU1NT
dHlsZURlY2xhcmF0aW9uKiBzdHlsZSwKIAogICAgIG1fc3R5bGVUZXh0ID0gdGV4dDsKICAgICBt
X2lzU3R5bGVUZXh0VmFsaWQgPSB0cnVlOwotICAgIG1fcnVsZVNvdXJjZURhdGEuY2xlYXIoKTsK
KyAgICBtX3J1bGVTb3VyY2VEYXRhID0gbnVsbHB0cjsKICAgICByZXR1cm4gIWVjOwogfQogCkBA
IC0xMzA0LDcgKzEzMDQsNyBAQCBib29sIEluc3BlY3RvclN0eWxlU2hlZXRGb3JJbmxpbmVTdHls
ZTo6ZW5zdXJlUGFyc2VkRGF0YVJlYWR5KCkKICAgICAvLyBUaGUgInN0eWxlIiBwcm9wZXJ0eSB2
YWx1ZSBjYW4gZ2V0IGNoYW5nZWQgaW5kaXJlY3RseSwgZS5nLiB2aWEgZWxlbWVudC5zdHlsZS5i
b3JkZXJXaWR0aCA9ICIycHgiLgogICAgIGNvbnN0IFN0cmluZyYgY3VycmVudFN0eWxlVGV4dCA9
IGVsZW1lbnRTdHlsZVRleHQoKTsKICAgICBpZiAobV9zdHlsZVRleHQgIT0gY3VycmVudFN0eWxl
VGV4dCkgewotICAgICAgICBtX3J1bGVTb3VyY2VEYXRhLmNsZWFyKCk7CisgICAgICAgIG1fcnVs
ZVNvdXJjZURhdGEgPSBudWxscHRyOwogICAgICAgICBtX3N0eWxlVGV4dCA9IGN1cnJlbnRTdHls
ZVRleHQ7CiAgICAgICAgIG1faXNTdHlsZVRleHRWYWxpZCA9IHRydWU7CiAgICAgfQpkaWZmIC0t
Z2l0IGEvU291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL0luc3BlY3RvclRpbWVsaW5lQWdlbnQuY3Bw
IGIvU291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL0luc3BlY3RvclRpbWVsaW5lQWdlbnQuY3BwCmlu
ZGV4IDBlMzJiYzUuLmY1NzU2YTIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rv
ci9JbnNwZWN0b3JUaW1lbGluZUFnZW50LmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0
b3IvSW5zcGVjdG9yVGltZWxpbmVBZ2VudC5jcHAKQEAgLTEwMyw3ICsxMDMsNyBAQCB2b2lkIElu
c3BlY3RvclRpbWVsaW5lQWdlbnQ6OmRpZENyZWF0ZUZyb250ZW5kQW5kQmFja2VuZChJbnNwZWN0
b3I6OkZyb250ZW5kQ2hhbgogdm9pZCBJbnNwZWN0b3JUaW1lbGluZUFnZW50Ojp3aWxsRGVzdHJv
eUZyb250ZW5kQW5kQmFja2VuZChJbnNwZWN0b3I6OkRpc2Nvbm5lY3RSZWFzb24gcmVhc29uKQog
ewogICAgIG1fZnJvbnRlbmREaXNwYXRjaGVyID0gbnVsbHB0cjsKLSAgICBtX2JhY2tlbmREaXNw
YXRjaGVyLmNsZWFyKCk7CisgICAgbV9iYWNrZW5kRGlzcGF0Y2hlciA9IG51bGxwdHI7CiAKICAg
ICBtX2luc3RydW1lbnRpbmdBZ2VudHMtPnNldFBlcnNpc3RlbnRJbnNwZWN0b3JUaW1lbGluZUFn
ZW50KG51bGxwdHIpOwogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvSW5z
cGVjdG9yV29ya2VyQWdlbnQuY3BwIGIvU291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL0luc3BlY3Rv
cldvcmtlckFnZW50LmNwcAppbmRleCBkZWJjNjk4Li41ZTIxZjM1IDEwMDY0NAotLS0gYS9Tb3Vy
Y2UvV2ViQ29yZS9pbnNwZWN0b3IvSW5zcGVjdG9yV29ya2VyQWdlbnQuY3BwCisrKyBiL1NvdXJj
ZS9XZWJDb3JlL2luc3BlY3Rvci9JbnNwZWN0b3JXb3JrZXJBZ2VudC5jcHAKQEAgLTEyNyw3ICsx
MjcsNyBAQCB2b2lkIEluc3BlY3RvcldvcmtlckFnZW50Ojp3aWxsRGVzdHJveUZyb250ZW5kQW5k
QmFja2VuZChJbnNwZWN0b3I6OkRpc2Nvbm5lY3RSZQogICAgIGRpc2FibGUodW51c2VkKTsKIAog
ICAgIG1fZnJvbnRlbmREaXNwYXRjaGVyID0gbnVsbHB0cjsKLSAgICBtX2JhY2tlbmREaXNwYXRj
aGVyLmNsZWFyKCk7CisgICAgbV9iYWNrZW5kRGlzcGF0Y2hlciA9IG51bGxwdHI7CiB9CiAKIHZv
aWQgSW5zcGVjdG9yV29ya2VyQWdlbnQ6OmVuYWJsZShFcnJvclN0cmluZyYpCmRpZmYgLS1naXQg
YS9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvUGFnZVJ1bnRpbWVBZ2VudC5jcHAgYi9Tb3VyY2Uv
V2ViQ29yZS9pbnNwZWN0b3IvUGFnZVJ1bnRpbWVBZ2VudC5jcHAKaW5kZXggOTNkYjU3Mi4uZTI0
NDVhYiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL1BhZ2VSdW50aW1lQWdl
bnQuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9QYWdlUnVudGltZUFnZW50LmNw
cApAQCAtNjksNyArNjksNyBAQCB2b2lkIFBhZ2VSdW50aW1lQWdlbnQ6OmRpZENyZWF0ZUZyb250
ZW5kQW5kQmFja2VuZChJbnNwZWN0b3I6OkZyb250ZW5kQ2hhbm5lbCogZgogdm9pZCBQYWdlUnVu
dGltZUFnZW50Ojp3aWxsRGVzdHJveUZyb250ZW5kQW5kQmFja2VuZChJbnNwZWN0b3I6OkRpc2Nv
bm5lY3RSZWFzb24gcmVhc29uKQogewogICAgIG1fZnJvbnRlbmREaXNwYXRjaGVyID0gbnVsbHB0
cjsKLSAgICBtX2JhY2tlbmREaXNwYXRjaGVyLmNsZWFyKCk7CisgICAgbV9iYWNrZW5kRGlzcGF0
Y2hlciA9IG51bGxwdHI7CiAKICAgICBTdHJpbmcgdW51c2VkOwogICAgIGRpc2FibGUodW51c2Vk
KTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9XZWJJbmplY3RlZFNjcmlw
dE1hbmFnZXIuY3BwIGIvU291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL1dlYkluamVjdGVkU2NyaXB0
TWFuYWdlci5jcHAKaW5kZXggOWY0YWY0Mi4uNTYxOTZmMCAxMDA2NDQKLS0tIGEvU291cmNlL1dl
YkNvcmUvaW5zcGVjdG9yL1dlYkluamVjdGVkU2NyaXB0TWFuYWdlci5jcHAKKysrIGIvU291cmNl
L1dlYkNvcmUvaW5zcGVjdG9yL1dlYkluamVjdGVkU2NyaXB0TWFuYWdlci5jcHAKQEAgLTQ0LDcg
KzQ0LDcgQEAgdm9pZCBXZWJJbmplY3RlZFNjcmlwdE1hbmFnZXI6OmRpc2Nvbm5lY3QoKQogICAg
IEluamVjdGVkU2NyaXB0TWFuYWdlcjo6ZGlzY29ubmVjdCgpOwogCiAgICAgbV9jb21tYW5kTGlu
ZUFQSUhvc3QtPmRpc2Nvbm5lY3QoKTsKLSAgICBtX2NvbW1hbmRMaW5lQVBJSG9zdC5jbGVhcigp
OworICAgIG1fY29tbWFuZExpbmVBUElIb3N0ID0gbnVsbHB0cjsKIH0KIAogdm9pZCBXZWJJbmpl
Y3RlZFNjcmlwdE1hbmFnZXI6OmRpZENyZWF0ZUluamVjdGVkU2NyaXB0KEluamVjdGVkU2NyaXB0
IGluamVjdGVkU2NyaXB0KQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL1dv
cmtlckluc3BlY3RvckNvbnRyb2xsZXIuY3BwIGIvU291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL1dv
cmtlckluc3BlY3RvckNvbnRyb2xsZXIuY3BwCmluZGV4IGYxZmU0MTAuLmQ4MzRlMGUgMTAwNjQ0
Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9Xb3JrZXJJbnNwZWN0b3JDb250cm9sbGVy
LmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvV29ya2VySW5zcGVjdG9yQ29udHJv
bGxlci5jcHAKQEAgLTEyNiw3ICsxMjYsNyBAQCB2b2lkIFdvcmtlckluc3BlY3RvckNvbnRyb2xs
ZXI6OmRpc2Nvbm5lY3RGcm9udGVuZChJbnNwZWN0b3I6OkRpc2Nvbm5lY3RSZWFzb24gcgogCiAg
ICAgbV9hZ2VudHMud2lsbERlc3Ryb3lGcm9udGVuZEFuZEJhY2tlbmQocmVhc29uKTsKICAgICBt
X2JhY2tlbmREaXNwYXRjaGVyLT5jbGVhckZyb250ZW5kKCk7Ci0gICAgbV9iYWNrZW5kRGlzcGF0
Y2hlci5jbGVhcigpOworICAgIG1fYmFja2VuZERpc3BhdGNoZXIgPSBudWxscHRyOwogICAgIG1f
ZnJvbnRlbmRDaGFubmVsID0gbnVsbHB0cjsKIH0KIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNv
cmUvaW5zcGVjdG9yL1dvcmtlclJ1bnRpbWVBZ2VudC5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9pbnNw
ZWN0b3IvV29ya2VyUnVudGltZUFnZW50LmNwcAppbmRleCAyMDZhNDFmLi4xMjIyZTU1IDEwMDY0
NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvV29ya2VyUnVudGltZUFnZW50LmNwcAor
KysgYi9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvV29ya2VyUnVudGltZUFnZW50LmNwcApAQCAt
NjAsNyArNjAsNyBAQCB2b2lkIFdvcmtlclJ1bnRpbWVBZ2VudDo6ZGlkQ3JlYXRlRnJvbnRlbmRB
bmRCYWNrZW5kKEluc3BlY3Rvcjo6RnJvbnRlbmRDaGFubmVsKgogCiB2b2lkIFdvcmtlclJ1bnRp
bWVBZ2VudDo6d2lsbERlc3Ryb3lGcm9udGVuZEFuZEJhY2tlbmQoSW5zcGVjdG9yOjpEaXNjb25u
ZWN0UmVhc29uIHJlYXNvbikKIHsKLSAgICBtX2JhY2tlbmREaXNwYXRjaGVyLmNsZWFyKCk7Cisg
ICAgbV9iYWNrZW5kRGlzcGF0Y2hlciA9IG51bGxwdHI7CiAKICAgICBJbnNwZWN0b3JSdW50aW1l
QWdlbnQ6OndpbGxEZXN0cm95RnJvbnRlbmRBbmRCYWNrZW5kKHJlYXNvbik7CiB9CmRpZmYgLS1n
aXQgYS9Tb3VyY2UvV2ViQ29yZS9sb2FkZXIvRnJhbWVMb2FkZXIuY3BwIGIvU291cmNlL1dlYkNv
cmUvbG9hZGVyL0ZyYW1lTG9hZGVyLmNwcAppbmRleCAxZTQ5NTU3Li4yOWIzZTY5IDEwMDY0NAot
LS0gYS9Tb3VyY2UvV2ViQ29yZS9sb2FkZXIvRnJhbWVMb2FkZXIuY3BwCisrKyBiL1NvdXJjZS9X
ZWJDb3JlL2xvYWRlci9GcmFtZUxvYWRlci5jcHAKQEAgLTY5MCw3ICs2OTAsNyBAQCB2b2lkIEZy
YW1lTG9hZGVyOjpkaWRCZWdpbkRvY3VtZW50KGJvb2wgZGlzcGF0Y2gpCiAKICAgICBpZiAobV9w
ZW5kaW5nU3RhdGVPYmplY3QpIHsKICAgICAgICAgbV9mcmFtZS5kb2N1bWVudCgpLT5zdGF0ZVBv
cHBlZChtX3BlbmRpbmdTdGF0ZU9iamVjdC5nZXQoKSk7Ci0gICAgICAgIG1fcGVuZGluZ1N0YXRl
T2JqZWN0LmNsZWFyKCk7CisgICAgICAgIG1fcGVuZGluZ1N0YXRlT2JqZWN0ID0gbnVsbHB0cjsK
ICAgICB9CiAKICAgICBpZiAoZGlzcGF0Y2gpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9s
b2FkZXIvY2FjaGUvQ2FjaGVkQ1NTU3R5bGVTaGVldC5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9sb2Fk
ZXIvY2FjaGUvQ2FjaGVkQ1NTU3R5bGVTaGVldC5jcHAKaW5kZXggN2MyZmU3ZC4uNmQxMTg4MCAx
MDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvbG9hZGVyL2NhY2hlL0NhY2hlZENTU1N0eWxlU2hl
ZXQuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2xvYWRlci9jYWNoZS9DYWNoZWRDU1NTdHlsZVNo
ZWV0LmNwcApAQCAtMTM4LDcgKzEzOCw3IEBAIHZvaWQgQ2FjaGVkQ1NTU3R5bGVTaGVldDo6ZGVz
dHJveURlY29kZWREYXRhKCkKICAgICAgICAgcmV0dXJuOwogCiAgICAgbV9wYXJzZWRTdHlsZVNo
ZWV0Q2FjaGUtPnJlbW92ZWRGcm9tTWVtb3J5Q2FjaGUoKTsKLSAgICBtX3BhcnNlZFN0eWxlU2hl
ZXRDYWNoZS5jbGVhcigpOworICAgIG1fcGFyc2VkU3R5bGVTaGVldENhY2hlID0gbnVsbHB0cjsK
IAogICAgIHNldERlY29kZWRTaXplKDApOwogfQpAQCAtMTQ2LDExICsxNDYsMTEgQEAgdm9pZCBD
YWNoZWRDU1NTdHlsZVNoZWV0OjpkZXN0cm95RGVjb2RlZERhdGEoKQogUGFzc1JlZlB0cjxTdHls
ZVNoZWV0Q29udGVudHM+IENhY2hlZENTU1N0eWxlU2hlZXQ6OnJlc3RvcmVQYXJzZWRTdHlsZVNo
ZWV0KGNvbnN0IENTU1BhcnNlckNvbnRleHQmIGNvbnRleHQsIENhY2hlUG9saWN5IGNhY2hlUG9s
aWN5KQogewogICAgIGlmICghbV9wYXJzZWRTdHlsZVNoZWV0Q2FjaGUpCi0gICAgICAgIHJldHVy
biAwOworICAgICAgICByZXR1cm4gbnVsbHB0cjsKICAgICBpZiAoIW1fcGFyc2VkU3R5bGVTaGVl
dENhY2hlLT5zdWJyZXNvdXJjZXNBbGxvd1JldXNlKGNhY2hlUG9saWN5KSkgewogICAgICAgICBt
X3BhcnNlZFN0eWxlU2hlZXRDYWNoZS0+cmVtb3ZlZEZyb21NZW1vcnlDYWNoZSgpOwotICAgICAg
ICBtX3BhcnNlZFN0eWxlU2hlZXRDYWNoZS5jbGVhcigpOwotICAgICAgICByZXR1cm4gMDsKKyAg
ICAgICAgbV9wYXJzZWRTdHlsZVNoZWV0Q2FjaGUgPSBudWxscHRyOworICAgICAgICByZXR1cm4g
bnVsbHB0cjsKICAgICB9CiAKICAgICBBU1NFUlQobV9wYXJzZWRTdHlsZVNoZWV0Q2FjaGUtPmlz
Q2FjaGVhYmxlKCkpOwpAQCAtMTU4LDcgKzE1OCw3IEBAIFBhc3NSZWZQdHI8U3R5bGVTaGVldENv
bnRlbnRzPiBDYWNoZWRDU1NTdHlsZVNoZWV0OjpyZXN0b3JlUGFyc2VkU3R5bGVTaGVldChjb25z
CiAKICAgICAvLyBDb250ZXh0cyBtdXN0IGJlIGlkZW50aWNhbCBzbyB3ZSBrbm93IHdlIHdvdWxk
IGdldCB0aGUgc2FtZSBleGFjdCByZXN1bHQgaWYgd2UgcGFyc2VkIGFnYWluLgogICAgIGlmICht
X3BhcnNlZFN0eWxlU2hlZXRDYWNoZS0+cGFyc2VyQ29udGV4dCgpICE9IGNvbnRleHQpCi0gICAg
ICAgIHJldHVybiAwOworICAgICAgICByZXR1cm4gbnVsbHB0cjsKIAogICAgIGRpZEFjY2Vzc0Rl
Y29kZWREYXRhKG1vbm90b25pY2FsbHlJbmNyZWFzaW5nVGltZSgpKTsKIApkaWZmIC0tZ2l0IGEv
U291cmNlL1dlYkNvcmUvbG9hZGVyL2NhY2hlL0NhY2hlZEltYWdlLmNwcCBiL1NvdXJjZS9XZWJD
b3JlL2xvYWRlci9jYWNoZS9DYWNoZWRJbWFnZS5jcHAKaW5kZXggNTI3NjlkYi4uODFkNWQ3YyAx
MDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvbG9hZGVyL2NhY2hlL0NhY2hlZEltYWdlLmNwcAor
KysgYi9Tb3VyY2UvV2ViQ29yZS9sb2FkZXIvY2FjaGUvQ2FjaGVkSW1hZ2UuY3BwCkBAIC0zNjUs
OCArMzY1LDggQEAgaW5saW5lIHZvaWQgQ2FjaGVkSW1hZ2U6OmNsZWFySW1hZ2UoKQogICAgIC8v
IElmIG91ciBJbWFnZSBoYXMgYW4gb2JzZXJ2ZXIsIGl0J3MgYWx3YXlzIHVzIHNvIHdlIG5lZWQg
dG8gY2xlYXIgdGhlIGJhY2sgcG9pbnRlcgogICAgIC8vIGJlZm9yZSBkcm9wcGluZyBvdXIgcmVm
ZXJlbmNlLgogICAgIGlmIChtX2ltYWdlKQotICAgICAgICBtX2ltYWdlLT5zZXRJbWFnZU9ic2Vy
dmVyKDApOwotICAgIG1faW1hZ2UuY2xlYXIoKTsKKyAgICAgICAgbV9pbWFnZS0+c2V0SW1hZ2VP
YnNlcnZlcihudWxscHRyKTsKKyAgICBtX2ltYWdlID0gbnVsbHB0cjsKIH0KIAogdm9pZCBDYWNo
ZWRJbWFnZTo6YWRkSW5jcmVtZW50YWxEYXRhQnVmZmVyKFNoYXJlZEJ1ZmZlciYgZGF0YSkKZGlm
ZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2xvYWRlci9jYWNoZS9DYWNoZWRSYXdSZXNvdXJjZS5j
cHAgYi9Tb3VyY2UvV2ViQ29yZS9sb2FkZXIvY2FjaGUvQ2FjaGVkUmF3UmVzb3VyY2UuY3BwCmlu
ZGV4IDNjMWIyOTUuLjU0YmJkZTEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2xvYWRlci9j
YWNoZS9DYWNoZWRSYXdSZXNvdXJjZS5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvbG9hZGVyL2Nh
Y2hlL0NhY2hlZFJhd1Jlc291cmNlLmNwcApAQCAtMjY4LDcgKzI2OCw3IEBAIGJvb2wgQ2FjaGVk
UmF3UmVzb3VyY2U6OmNhblJldXNlKGNvbnN0IFJlc291cmNlUmVxdWVzdCYgbmV3UmVxdWVzdCkg
Y29uc3QKIAogdm9pZCBDYWNoZWRSYXdSZXNvdXJjZTo6Y2xlYXIoKQogewotICAgIG1fZGF0YS5j
bGVhcigpOworICAgIG1fZGF0YSA9IG51bGxwdHI7CiAgICAgc2V0RW5jb2RlZFNpemUoMCk7CiAg
ICAgaWYgKG1fbG9hZGVyKQogICAgICAgICBtX2xvYWRlci0+Y2xlYXJSZXNvdXJjZURhdGEoKTsK
ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2xvYWRlci9jYWNoZS9DYWNoZWRSZXNvdXJjZS5j
cHAgYi9Tb3VyY2UvV2ViQ29yZS9sb2FkZXIvY2FjaGUvQ2FjaGVkUmVzb3VyY2UuY3BwCmluZGV4
IGY0NDMxYmYuLjNiZWYyMWUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2xvYWRlci9jYWNo
ZS9DYWNoZWRSZXNvdXJjZS5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvbG9hZGVyL2NhY2hlL0Nh
Y2hlZFJlc291cmNlLmNwcApAQCAtMzE3LDcgKzMxNyw3IEBAIHZvaWQgQ2FjaGVkUmVzb3VyY2U6
OmVycm9yKENhY2hlZFJlc291cmNlOjpTdGF0dXMgc3RhdHVzKQogewogICAgIHNldFN0YXR1cyhz
dGF0dXMpOwogICAgIEFTU0VSVChlcnJvck9jY3VycmVkKCkpOwotICAgIG1fZGF0YS5jbGVhcigp
OworICAgIG1fZGF0YSA9IG51bGxwdHI7CiAKICAgICBzZXRMb2FkaW5nKGZhbHNlKTsKICAgICBj
aGVja05vdGlmeSgpOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvbG9hZGVyL2ljb24vSWNv
blJlY29yZC5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9sb2FkZXIvaWNvbi9JY29uUmVjb3JkLmNwcApp
bmRleCBkNGJjMGQxLi5lN2YxZDRiIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9sb2FkZXIv
aWNvbi9JY29uUmVjb3JkLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9sb2FkZXIvaWNvbi9JY29u
UmVjb3JkLmNwcApAQCAtNzEsNyArNzEsNyBAQCB2b2lkIEljb25SZWNvcmQ6OnNldEltYWdlRGF0
YShQYXNzUmVmUHRyPFNoYXJlZEJ1ZmZlcj4gZGF0YSkKICAgICAvLyBDb3B5IHRoZSBwcm92aWRl
ZCBkYXRhIGludG8gdGhlIGJ1ZmZlciBvZiB0aGUgbmV3IEltYWdlIG9iamVjdC4KICAgICBpZiAo
IW1faW1hZ2UtPnNldERhdGEoZGF0YSwgdHJ1ZSkpIHsKICAgICAgICAgTE9HKEljb25EYXRhYmFz
ZSwgIk1hbnVhbCBpbWFnZSBkYXRhIGZvciBpY29uVVJMICclcycgRkFJTEVEIC0gaXQgd2FzIHBy
b2JhYmx5IGludmFsaWQgaW1hZ2UgZGF0YSIsIG1faWNvblVSTC5hc2NpaSgpLmRhdGEoKSk7Ci0g
ICAgICAgIG1faW1hZ2UuY2xlYXIoKTsKKyAgICAgICAgbV9pbWFnZSA9IG51bGxwdHI7CiAgICAg
fQogICAgIAogICAgIG1fZGF0YVNldCA9IHRydWU7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29y
ZS9wYWdlL0V2ZW50SGFuZGxlci5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9wYWdlL0V2ZW50SGFuZGxl
ci5jcHAKaW5kZXggMjE2YWJjNy4uNTdkYWExNSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUv
cGFnZS9FdmVudEhhbmRsZXIuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BhZ2UvRXZlbnRIYW5k
bGVyLmNwcApAQCAtNDk0LDcgKzQ5NCw3IEBAIHZvaWQgRXZlbnRIYW5kbGVyOjpjbGVhcigpCiAj
ZW5kaWYKICNpZiBFTkFCTEUoVE9VQ0hfRVZFTlRTKSAmJiAhRU5BQkxFKElPU19UT1VDSF9FVkVO
VFMpCiAgICAgbV9vcmlnaW5hdGluZ1RvdWNoUG9pbnRUYXJnZXRzLmNsZWFyKCk7Ci0gICAgbV9v
cmlnaW5hdGluZ1RvdWNoUG9pbnREb2N1bWVudC5jbGVhcigpOworICAgIG1fb3JpZ2luYXRpbmdU
b3VjaFBvaW50RG9jdW1lbnQgPSBudWxscHRyOwogICAgIG1fb3JpZ2luYXRpbmdUb3VjaFBvaW50
VGFyZ2V0S2V5ID0gMDsKICNlbmRpZgogICAgIG1fbWF4TW91c2VNb3ZlZER1cmF0aW9uID0gMDsK
QEAgLTM5OTQsNyArMzk5NCw3IEBAIGJvb2wgRXZlbnRIYW5kbGVyOjpoYW5kbGVUb3VjaEV2ZW50
KGNvbnN0IFBsYXRmb3JtVG91Y2hFdmVudCYgZXZlbnQpCiAgICAgfQogICAgIG1fdG91Y2hQcmVz
c2VkID0gdG91Y2hlcy0+bGVuZ3RoKCkgPiAwOwogICAgIGlmIChhbGxUb3VjaFJlbGVhc2VkKQot
ICAgICAgICBtX29yaWdpbmF0aW5nVG91Y2hQb2ludERvY3VtZW50LmNsZWFyKCk7CisgICAgICAg
IG1fb3JpZ2luYXRpbmdUb3VjaFBvaW50RG9jdW1lbnQgPSBudWxscHRyOwogCiAgICAgLy8gTm93
IGl0ZXJhdGUgdGhlIGNoYW5nZWRUb3VjaGVzIGxpc3QgYW5kIG1fdGFyZ2V0cyB3aXRoaW4gaXQs
IHNlbmRpbmcgZXZlbnRzIHRvIHRoZSB0YXJnZXRzIGFzIHJlcXVpcmVkLgogICAgIGJvb2wgc3dh
bGxvd2VkRXZlbnQgPSBmYWxzZTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BhZ2UvUGFn
ZS5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9wYWdlL1BhZ2UuY3BwCmluZGV4IDFkM2RjYzIuLmY4NmQ4
MWYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BhZ2UvUGFnZS5jcHAKKysrIGIvU291cmNl
L1dlYkNvcmUvcGFnZS9QYWdlLmNwcApAQCAtNTE2LDcgKzUxNiw3IEBAIHZvaWQgUGFnZTo6cmVm
cmVzaFBsdWdpbnMoYm9vbCByZWxvYWQpCiAgICAgVmVjdG9yPFJlZjxGcmFtZT4+IGZyYW1lc05l
ZWRpbmdSZWxvYWQ7CiAKICAgICBmb3IgKGF1dG8mIHBhZ2UgOiAqYWxsUGFnZXMpIHsKLSAgICAg
ICAgcGFnZS0+bV9wbHVnaW5EYXRhLmNsZWFyKCk7CisgICAgICAgIHBhZ2UtPm1fcGx1Z2luRGF0
YSA9IG51bGxwdHI7CiAKICAgICAgICAgaWYgKCFyZWxvYWQpCiAgICAgICAgICAgICBjb250aW51
ZTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2F1ZGlvL21hYy9DQVJpbmdC
dWZmZXIuY3BwIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vYXVkaW8vbWFjL0NBUmluZ0J1ZmZl
ci5jcHAKaW5kZXggZjc2ZThkZi4uMDU0NDJhZCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUv
cGxhdGZvcm0vYXVkaW8vbWFjL0NBUmluZ0J1ZmZlci5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUv
cGxhdGZvcm0vYXVkaW8vbWFjL0NBUmluZ0J1ZmZlci5jcHAKQEAgLTg2LDcgKzg2LDcgQEAgdm9p
ZCBDQVJpbmdCdWZmZXI6OmFsbG9jYXRlKHVpbnQzMl90IGNoYW5uZWxDb3VudCwgc2l6ZV90IGJ5
dGVzUGVyRnJhbWUsIHNpemVfdAogdm9pZCBDQVJpbmdCdWZmZXI6OmRlYWxsb2NhdGUoKQogewog
ICAgIGlmIChtX2J1ZmZlcnMpCi0gICAgICAgIG1fYnVmZmVycy5jbGVhcigpOworICAgICAgICBt
X2J1ZmZlcnMgPSBudWxscHRyOwogCiAgICAgbV9jaGFubmVsQ291bnQgPSAwOwogICAgIG1fY2Fw
YWNpdHlCeXRlcyA9IDA7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFw
aGljcy9Gb250LmNwcCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL0ZvbnQuY3Bw
CmluZGV4IDYwM2ViYTguLmQ5MjY1YjUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRm
b3JtL2dyYXBoaWNzL0ZvbnQuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBo
aWNzL0ZvbnQuY3BwCkBAIC0zNjMsNyArMzYzLDcgQEAgY29uc3QgT3BlblR5cGVNYXRoRGF0YSog
Rm9udDo6bWF0aERhdGEoKSBjb25zdAogICAgIGlmICghbV9tYXRoRGF0YSkgewogICAgICAgICBt
X21hdGhEYXRhID0gT3BlblR5cGVNYXRoRGF0YTo6Y3JlYXRlKG1fcGxhdGZvcm1EYXRhKTsKICAg
ICAgICAgaWYgKCFtX21hdGhEYXRhLT5oYXNNYXRoRGF0YSgpKQotICAgICAgICAgICAgbV9tYXRo
RGF0YS5jbGVhcigpOworICAgICAgICAgICAgbV9tYXRoRGF0YSA9IG51bGxwdHI7CiAgICAgfQog
ICAgIHJldHVybiBtX21hdGhEYXRhLmdldCgpOwogfQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNv
cmUvcGxhdGZvcm0vZ3JhcGhpY3MvR3JhcGhpY3NDb250ZXh0LmNwcCBiL1NvdXJjZS9XZWJDb3Jl
L3BsYXRmb3JtL2dyYXBoaWNzL0dyYXBoaWNzQ29udGV4dC5jcHAKaW5kZXggZDM4YzFmYS4uZTZi
MzdmZCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvR3JhcGhp
Y3NDb250ZXh0LmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9HcmFw
aGljc0NvbnRleHQuY3BwCkBAIC0xNzgsOCArMTc4LDggQEAgdm9pZCBHcmFwaGljc0NvbnRleHQ6
OnNldFN0cm9rZUNvbG9yKGNvbnN0IENvbG9yJiBjb2xvciwgQ29sb3JTcGFjZSBjb2xvclNwYWNl
KQogewogICAgIG1fc3RhdGUuc3Ryb2tlQ29sb3IgPSBjb2xvcjsKICAgICBtX3N0YXRlLnN0cm9r
ZUNvbG9yU3BhY2UgPSBjb2xvclNwYWNlOwotICAgIG1fc3RhdGUuc3Ryb2tlR3JhZGllbnQuY2xl
YXIoKTsKLSAgICBtX3N0YXRlLnN0cm9rZVBhdHRlcm4uY2xlYXIoKTsKKyAgICBtX3N0YXRlLnN0
cm9rZUdyYWRpZW50ID0gbnVsbHB0cjsKKyAgICBtX3N0YXRlLnN0cm9rZVBhdHRlcm4gPSBudWxs
cHRyOwogICAgIHNldFBsYXRmb3JtU3Ryb2tlQ29sb3IoY29sb3IsIGNvbG9yU3BhY2UpOwogfQog
CkBAIC0yNDUsOCArMjQ1LDggQEAgdm9pZCBHcmFwaGljc0NvbnRleHQ6OnNldEZpbGxDb2xvcihj
b25zdCBDb2xvciYgY29sb3IsIENvbG9yU3BhY2UgY29sb3JTcGFjZSkKIHsKICAgICBtX3N0YXRl
LmZpbGxDb2xvciA9IGNvbG9yOwogICAgIG1fc3RhdGUuZmlsbENvbG9yU3BhY2UgPSBjb2xvclNw
YWNlOwotICAgIG1fc3RhdGUuZmlsbEdyYWRpZW50LmNsZWFyKCk7Ci0gICAgbV9zdGF0ZS5maWxs
UGF0dGVybi5jbGVhcigpOworICAgIG1fc3RhdGUuZmlsbEdyYWRpZW50ID0gbnVsbHB0cjsKKyAg
ICBtX3N0YXRlLmZpbGxQYXR0ZXJuID0gbnVsbHB0cjsKICAgICBzZXRQbGF0Zm9ybUZpbGxDb2xv
cihjb2xvciwgY29sb3JTcGFjZSk7CiB9CiAKQEAgLTI2OSwyNiArMjY5LDI2IEBAIHZvaWQgR3Jh
cGhpY3NDb250ZXh0OjpzZXRBbnRpYWxpYXNlZEZvbnREaWxhdGlvbkVuYWJsZWQoYm9vbCBhbnRp
YWxpYXNlZEZvbnREaWxhCiAKIHZvaWQgR3JhcGhpY3NDb250ZXh0OjpzZXRTdHJva2VQYXR0ZXJu
KFJlZjxQYXR0ZXJuPiYmIHBhdHRlcm4pCiB7Ci0gICAgbV9zdGF0ZS5zdHJva2VHcmFkaWVudC5j
bGVhcigpOworICAgIG1fc3RhdGUuc3Ryb2tlR3JhZGllbnQgPSBudWxscHRyOwogICAgIG1fc3Rh
dGUuc3Ryb2tlUGF0dGVybiA9IFdURjo6bW92ZShwYXR0ZXJuKTsKIH0KIAogdm9pZCBHcmFwaGlj
c0NvbnRleHQ6OnNldEZpbGxQYXR0ZXJuKFJlZjxQYXR0ZXJuPiYmIHBhdHRlcm4pCiB7Ci0gICAg
bV9zdGF0ZS5maWxsR3JhZGllbnQuY2xlYXIoKTsKKyAgICBtX3N0YXRlLmZpbGxHcmFkaWVudCA9
IG51bGxwdHI7CiAgICAgbV9zdGF0ZS5maWxsUGF0dGVybiA9IFdURjo6bW92ZShwYXR0ZXJuKTsK
IH0KIAogdm9pZCBHcmFwaGljc0NvbnRleHQ6OnNldFN0cm9rZUdyYWRpZW50KFJlZjxHcmFkaWVu
dD4mJiBncmFkaWVudCkKIHsKICAgICBtX3N0YXRlLnN0cm9rZUdyYWRpZW50ID0gV1RGOjptb3Zl
KGdyYWRpZW50KTsKLSAgICBtX3N0YXRlLnN0cm9rZVBhdHRlcm4uY2xlYXIoKTsKKyAgICBtX3N0
YXRlLnN0cm9rZVBhdHRlcm4gPSBudWxscHRyOwogfQogCiB2b2lkIEdyYXBoaWNzQ29udGV4dDo6
c2V0RmlsbEdyYWRpZW50KFJlZjxHcmFkaWVudD4mJiBncmFkaWVudCkKIHsKICAgICBtX3N0YXRl
LmZpbGxHcmFkaWVudCA9IFdURjo6bW92ZShncmFkaWVudCk7Ci0gICAgbV9zdGF0ZS5maWxsUGF0
dGVybi5jbGVhcigpOworICAgIG1fc3RhdGUuZmlsbFBhdHRlcm4gPSBudWxscHRyOwogfQogCiB2
b2lkIEdyYXBoaWNzQ29udGV4dDo6YmVnaW5UcmFuc3BhcmVuY3lMYXllcihmbG9hdCBvcGFjaXR5
KQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvY2Fpcm8vQmFj
a2luZ1N0b3JlQmFja2VuZENhaXJvWDExLmNwcCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dy
YXBoaWNzL2NhaXJvL0JhY2tpbmdTdG9yZUJhY2tlbmRDYWlyb1gxMS5jcHAKaW5kZXggN2I4NjMx
YS4uNDM3ZGFmYyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3Mv
Y2Fpcm8vQmFja2luZ1N0b3JlQmFja2VuZENhaXJvWDExLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29y
ZS9wbGF0Zm9ybS9ncmFwaGljcy9jYWlyby9CYWNraW5nU3RvcmVCYWNrZW5kQ2Fpcm9YMTEuY3Bw
CkBAIC00Myw3ICs0Myw3IEBAIEJhY2tpbmdTdG9yZUJhY2tlbmRDYWlyb1gxMTo6QmFja2luZ1N0
b3JlQmFja2VuZENhaXJvWDExKHVuc2lnbmVkIGxvbmcgcm9vdFdpbmRvCiBCYWNraW5nU3RvcmVC
YWNrZW5kQ2Fpcm9YMTE6On5CYWNraW5nU3RvcmVCYWNrZW5kQ2Fpcm9YMTEoKQogewogICAgIC8v
IFRoZSBwaXhtYXAgbmVlZHMgdG8gZXhpc3Qgd2hlbiB0aGUgc3VyZmFjZSBpcyBkZXN0cm95ZWQs
IHNvIGJlZ2luIGJ5IGNsZWFyaW5nIGl0LgotICAgIG1fc3VyZmFjZS5jbGVhcigpOworICAgIG1f
c3VyZmFjZSA9IG51bGxwdHI7CiB9CiAKIHZvaWQgQmFja2luZ1N0b3JlQmFja2VuZENhaXJvWDEx
OjpzY3JvbGwoY29uc3QgSW50UmVjdCYgc2Nyb2xsUmVjdCwgY29uc3QgSW50U2l6ZSYgc2Nyb2xs
T2Zmc2V0KQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvY2Fp
cm8vQml0bWFwSW1hZ2VDYWlyby5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGlj
cy9jYWlyby9CaXRtYXBJbWFnZUNhaXJvLmNwcAppbmRleCAyNmRmNWRmLi5mMGQzYTdhIDEwMDY0
NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9jYWlyby9CaXRtYXBJbWFn
ZUNhaXJvLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9jYWlyby9C
aXRtYXBJbWFnZUNhaXJvLmNwcApAQCAtMTU5LDcgKzE1OSw3IEBAIGJvb2wgRnJhbWVEYXRhOjpj
bGVhcihib29sIGNsZWFyTWV0YWRhdGEpCiAgICAgICAgIG1faGF2ZU1ldGFkYXRhID0gZmFsc2U7
CiAKICAgICBpZiAobV9mcmFtZSkgewotICAgICAgICBtX2ZyYW1lLmNsZWFyKCk7CisgICAgICAg
IG1fZnJhbWUgPSBudWxscHRyOwogICAgICAgICByZXR1cm4gdHJ1ZTsKICAgICB9CiAgICAgcmV0
dXJuIGZhbHNlOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3Mv
ZmlsdGVycy9GaWx0ZXJFZmZlY3QuY3BwIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhp
Y3MvZmlsdGVycy9GaWx0ZXJFZmZlY3QuY3BwCmluZGV4IDc2MjcwMDguLmM5OGQ1YjkgMTAwNjQ0
Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2ZpbHRlcnMvRmlsdGVyRWZm
ZWN0LmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9maWx0ZXJzL0Zp
bHRlckVmZmVjdC5jcHAKQEAgLTI0NSwxMiArMjQ1LDEyIEBAIHZvaWQgRmlsdGVyRWZmZWN0Ojpj
bGVhclJlc3VsdCgpCiAgICAgaWYgKG1faW1hZ2VCdWZmZXJSZXN1bHQpCiAgICAgICAgIG1faW1h
Z2VCdWZmZXJSZXN1bHQucmVzZXQoKTsKICAgICBpZiAobV91bm11bHRpcGxpZWRJbWFnZVJlc3Vs
dCkKLSAgICAgICAgbV91bm11bHRpcGxpZWRJbWFnZVJlc3VsdC5jbGVhcigpOworICAgICAgICBt
X3VubXVsdGlwbGllZEltYWdlUmVzdWx0ID0gbnVsbHB0cjsKICAgICBpZiAobV9wcmVtdWx0aXBs
aWVkSW1hZ2VSZXN1bHQpCi0gICAgICAgIG1fcHJlbXVsdGlwbGllZEltYWdlUmVzdWx0LmNsZWFy
KCk7CisgICAgICAgIG1fcHJlbXVsdGlwbGllZEltYWdlUmVzdWx0ID0gbnVsbHB0cjsKICNpZiBF
TkFCTEUoT1BFTkNMKQogICAgIGlmIChtX29wZW5DTEltYWdlUmVzdWx0KQotICAgICAgICBtX29w
ZW5DTEltYWdlUmVzdWx0LmNsZWFyKCk7CisgICAgICAgIG1fb3BlbkNMSW1hZ2VSZXN1bHQgPSBu
dWxscHRyOwogI2VuZGlmCiB9CiAKQEAgLTU0MCw3ICs1NDAsNyBAQCB2b2lkIEZpbHRlckVmZmVj
dDo6dHJhbnNmb3JtUmVzdWx0Q29sb3JTcGFjZShDb2xvclNwYWNlIGRzdENvbG9yU3BhY2UpCiAj
aWYgRU5BQkxFKE9QRU5DTCkKICAgICBpZiAob3BlbkNMSW1hZ2UoKSkgewogICAgICAgICBpZiAo
bV9pbWFnZUJ1ZmZlclJlc3VsdCkKLSAgICAgICAgICAgIG1faW1hZ2VCdWZmZXJSZXN1bHQuY2xl
YXIoKTsKKyAgICAgICAgICAgIG1faW1hZ2VCdWZmZXJSZXN1bHQgPSBudWxscHRyOwogICAgICAg
ICBGaWx0ZXJDb250ZXh0T3BlbkNMKiBjb250ZXh0ID0gRmlsdGVyQ29udGV4dE9wZW5DTDo6Y29u
dGV4dCgpOwogICAgICAgICBBU1NFUlQoY29udGV4dCk7CiAgICAgICAgIGNvbnRleHQtPm9wZW5D
TFRyYW5zZm9ybUNvbG9yU3BhY2UobV9vcGVuQ0xJbWFnZVJlc3VsdCwgYWJzb2x1dGVQYWludFJl
Y3QoKSwgbV9yZXN1bHRDb2xvclNwYWNlLCBkc3RDb2xvclNwYWNlKTsKQEAgLTU1OCw5ICs1NTgs
OSBAQCB2b2lkIEZpbHRlckVmZmVjdDo6dHJhbnNmb3JtUmVzdWx0Q29sb3JTcGFjZShDb2xvclNw
YWNlIGRzdENvbG9yU3BhY2UpCiAgICAgbV9yZXN1bHRDb2xvclNwYWNlID0gZHN0Q29sb3JTcGFj
ZTsKIAogICAgIGlmIChtX3VubXVsdGlwbGllZEltYWdlUmVzdWx0KQotICAgICAgICBtX3VubXVs
dGlwbGllZEltYWdlUmVzdWx0LmNsZWFyKCk7CisgICAgICAgIG1fdW5tdWx0aXBsaWVkSW1hZ2VS
ZXN1bHQgPSBudWxscHRyOwogICAgIGlmIChtX3ByZW11bHRpcGxpZWRJbWFnZVJlc3VsdCkKLSAg
ICAgICAgbV9wcmVtdWx0aXBsaWVkSW1hZ2VSZXN1bHQuY2xlYXIoKTsKKyAgICAgICAgbV9wcmVt
dWx0aXBsaWVkSW1hZ2VSZXN1bHQgPSBudWxscHRyOwogI2VuZGlmCiB9CiAKZGlmZiAtLWdpdCBh
L1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL3RleG1hcC9CaXRtYXBUZXh0dXJlR0wu
Y3BwIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvdGV4bWFwL0JpdG1hcFRleHR1
cmVHTC5jcHAKaW5kZXggOTc1YzM4Zi4uMGU1MmQ3YiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNv
cmUvcGxhdGZvcm0vZ3JhcGhpY3MvdGV4bWFwL0JpdG1hcFRleHR1cmVHTC5jcHAKKysrIGIvU291
cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvdGV4bWFwL0JpdG1hcFRleHR1cmVHTC5jcHAK
QEAgLTI3OCw3ICsyNzgsNyBAQCBQYXNzUmVmUHRyPEJpdG1hcFRleHR1cmU+IEJpdG1hcFRleHR1
cmVHTDo6YXBwbHlGaWx0ZXJzKFRleHR1cmVNYXBwZXIqIHRleHR1cmVNYQogICAgICAgICAgICAg
dGV4bWFwR0wtPmRyYXdGaWx0ZXJlZCgqcmVzdWx0U3VyZmFjZS5nZXQoKSwgc3BhcmVTdXJmYWNl
LmdldCgpLCAqZmlsdGVyLCBqKTsKICAgICAgICAgICAgIGlmICghaiAmJiBmaWx0ZXItPnR5cGUo
KSA9PSBGaWx0ZXJPcGVyYXRpb246OkRST1BfU0hBRE9XKSB7CiAgICAgICAgICAgICAgICAgc3Bh
cmVTdXJmYWNlID0gcmVzdWx0U3VyZmFjZTsKLSAgICAgICAgICAgICAgICByZXN1bHRTdXJmYWNl
LmNsZWFyKCk7CisgICAgICAgICAgICAgICAgcmVzdWx0U3VyZmFjZSA9IG51bGxwdHI7CiAgICAg
ICAgICAgICB9CiAgICAgICAgICAgICBzdGQ6OnN3YXAocmVzdWx0U3VyZmFjZSwgaW50ZXJtZWRp
YXRlU3VyZmFjZSk7CiAgICAgICAgIH0KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRm
b3JtL2dyYXBoaWNzL3RleG1hcC9UZXh0dXJlTWFwcGVyR0wuY3BwIGIvU291cmNlL1dlYkNvcmUv
cGxhdGZvcm0vZ3JhcGhpY3MvdGV4bWFwL1RleHR1cmVNYXBwZXJHTC5jcHAKaW5kZXggMGJjZThj
Ny4uNGM1NDgwNSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3Mv
dGV4bWFwL1RleHR1cmVNYXBwZXJHTC5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0v
Z3JhcGhpY3MvdGV4bWFwL1RleHR1cmVNYXBwZXJHTC5jcHAKQEAgLTY5MSw3ICs2OTEsNyBAQCB2
b2lkIFRleHR1cmVNYXBwZXJHTDo6YmluZERlZmF1bHRTdXJmYWNlKCkKICAgICBkYXRhKCkucHJv
amVjdGlvbk1hdHJpeCA9IGNyZWF0ZVByb2plY3Rpb25NYXRyaXgodmlld3BvcnRTaXplLCBkYXRh
KCkuUGFpbnRGbGFncyAmIFBhaW50aW5nTWlycm9yZWQpOwogICAgIG1fY29udGV4dDNELT52aWV3
cG9ydChkYXRhKCkudmlld3BvcnRbMF0sIGRhdGEoKS52aWV3cG9ydFsxXSwgdmlld3BvcnRTaXpl
LndpZHRoKCksIHZpZXdwb3J0U2l6ZS5oZWlnaHQoKSk7CiAgICAgbV9jbGlwU3RhY2suYXBwbHko
bV9jb250ZXh0M0QuZ2V0KCkpOwotICAgIGRhdGEoKS5jdXJyZW50U3VyZmFjZS5jbGVhcigpOwor
ICAgIGRhdGEoKS5jdXJyZW50U3VyZmFjZSA9IG51bGxwdHI7CiB9CiAKIHZvaWQgVGV4dHVyZU1h
cHBlckdMOjpiaW5kU3VyZmFjZShCaXRtYXBUZXh0dXJlICpzdXJmYWNlKQpkaWZmIC0tZ2l0IGEv
U291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvdGV4bWFwL1RleHR1cmVNYXBwZXJMYXll
ci5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy90ZXhtYXAvVGV4dHVyZU1h
cHBlckxheWVyLmNwcAppbmRleCBjODY0MjAyLi4zNDU1Mzk4IDEwMDY0NAotLS0gYS9Tb3VyY2Uv
V2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy90ZXhtYXAvVGV4dHVyZU1hcHBlckxheWVyLmNwcAor
KysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy90ZXhtYXAvVGV4dHVyZU1hcHBl
ckxheWVyLmNwcApAQCAtNDA4LDcgKzQwOCw3IEBAIHZvaWQgVGV4dHVyZU1hcHBlckxheWVyOjpw
YWludFdpdGhJbnRlcm1lZGlhdGVTdXJmYWNlKGNvbnN0IFRleHR1cmVNYXBwZXJQYWludE9wCiAK
ICAgICBpZiAocmVwbGljYVN1cmZhY2UgJiYgb3B0aW9ucy5vcGFjaXR5ID09IDEpIHsKICAgICAg
ICAgY29tbWl0U3VyZmFjZShvcHRpb25zLCByZXBsaWNhU3VyZmFjZSwgcmVjdCwgMSk7Ci0gICAg
ICAgIHJlcGxpY2FTdXJmYWNlLmNsZWFyKCk7CisgICAgICAgIHJlcGxpY2FTdXJmYWNlID0gbnVs
bHB0cjsKICAgICB9CiAKICAgICBtYWluU3VyZmFjZSA9IHBhaW50SW50b1N1cmZhY2UocGFpbnRP
cHRpb25zLCByZWN0LnNpemUoKSk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9y
bS9ncmFwaGljcy90ZXhtYXAvVGV4dHVyZU1hcHBlclRpbGVkQmFja2luZ1N0b3JlLmNwcCBiL1Nv
dXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL3RleG1hcC9UZXh0dXJlTWFwcGVyVGlsZWRC
YWNraW5nU3RvcmUuY3BwCmluZGV4IDIwODA0NjIuLmQzNTcxMGEgMTAwNjQ0Ci0tLSBhL1NvdXJj
ZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL3RleG1hcC9UZXh0dXJlTWFwcGVyVGlsZWRCYWNr
aW5nU3RvcmUuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL3RleG1h
cC9UZXh0dXJlTWFwcGVyVGlsZWRCYWNraW5nU3RvcmUuY3BwCkBAIC0zOSw3ICszOSw3IEBAIHZv
aWQgVGV4dHVyZU1hcHBlclRpbGVkQmFja2luZ1N0b3JlOjp1cGRhdGVDb250ZW50c0Zyb21JbWFn
ZUlmTmVlZGVkKFRleHR1cmVNYXBwCiAgICAgICAgIHJldHVybjsKIAogICAgIHVwZGF0ZUNvbnRl
bnRzKHRleHR1cmVNYXBwZXIsIG1faW1hZ2UuZ2V0KCksIG1faW1hZ2UtPnNpemUoKSwgZW5jbG9z
aW5nSW50UmVjdChtX2ltYWdlLT5yZWN0KCkpLCBCaXRtYXBUZXh0dXJlOjpVcGRhdGVDYW5ub3RN
b2RpZnlPcmlnaW5hbEltYWdlRGF0YSk7Ci0gICAgbV9pbWFnZS5jbGVhcigpOworICAgIG1faW1h
Z2UgPSBudWxscHRyOwogfQogCiBUcmFuc2Zvcm1hdGlvbk1hdHJpeCBUZXh0dXJlTWFwcGVyVGls
ZWRCYWNraW5nU3RvcmU6OmFkanVzdGVkVHJhbnNmb3JtRm9yUmVjdChjb25zdCBGbG9hdFJlY3Qm
IHRhcmdldFJlY3QpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGlj
cy90ZXhtYXAvY29vcmRpbmF0ZWQvQ29vcmRpbmF0ZWRHcmFwaGljc0xheWVyLmNwcCBiL1NvdXJj
ZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL3RleG1hcC9jb29yZGluYXRlZC9Db29yZGluYXRl
ZEdyYXBoaWNzTGF5ZXIuY3BwCmluZGV4IGUyZTFmNGEuLmE3MGU3YTAgMTAwNjQ0Ci0tLSBhL1Nv
dXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL3RleG1hcC9jb29yZGluYXRlZC9Db29yZGlu
YXRlZEdyYXBoaWNzTGF5ZXIuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBo
aWNzL3RleG1hcC9jb29yZGluYXRlZC9Db29yZGluYXRlZEdyYXBoaWNzTGF5ZXIuY3BwCkBAIC04
MjAsNyArODIwLDcgQEAgdm9pZCBDb29yZGluYXRlZEdyYXBoaWNzTGF5ZXI6OnJlbGVhc2VJbWFn
ZUJhY2tpbmdJZk5lZWRlZCgpCiAKICAgICBBU1NFUlQobV9jb29yZGluYXRvcik7CiAgICAgbV9j
b29yZGluYXRlZEltYWdlQmFja2luZy0+cmVtb3ZlSG9zdCh0aGlzKTsKLSAgICBtX2Nvb3JkaW5h
dGVkSW1hZ2VCYWNraW5nLmNsZWFyKCk7CisgICAgbV9jb29yZGluYXRlZEltYWdlQmFja2luZyA9
IG51bGxwdHI7CiAgICAgbV9sYXllclN0YXRlLmltYWdlSUQgPSBJbnZhbGlkQ29vcmRpbmF0ZWRJ
bWFnZUJhY2tpbmdJRDsKICAgICBtX2xheWVyU3RhdGUuaW1hZ2VDaGFuZ2VkID0gdHJ1ZTsKIH0K
ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL3RleG1hcC9jb29y
ZGluYXRlZC9Db29yZGluYXRlZEltYWdlQmFja2luZy5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0
Zm9ybS9ncmFwaGljcy90ZXhtYXAvY29vcmRpbmF0ZWQvQ29vcmRpbmF0ZWRJbWFnZUJhY2tpbmcu
Y3BwCmluZGV4IGQyMmIxNWUuLmUyNjE1MGYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3Bs
YXRmb3JtL2dyYXBoaWNzL3RleG1hcC9jb29yZGluYXRlZC9Db29yZGluYXRlZEltYWdlQmFja2lu
Zy5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvdGV4bWFwL2Nvb3Jk
aW5hdGVkL0Nvb3JkaW5hdGVkSW1hZ2VCYWNraW5nLmNwcApAQCAtMTQxLDcgKzE0MSw3IEBAIHZv
aWQgQ29vcmRpbmF0ZWRJbWFnZUJhY2tpbmc6OnJlbGVhc2VTdXJmYWNlSWZOZWVkZWQoKQogewog
ICAgIC8vIFdlIG11c3Qga2VlcCBtX3N1cmZhY2UgdW50aWwgVUkgUHJvY2VzcyByZWFkcyBtX3N1
cmZhY2UuCiAgICAgLy8gSWYgbV9zdXJmYWNlIGV4aXN0cywgaXQgd2FzIGNyZWF0ZWQgaW4gdGhl
IHByZXZpb3VzIHVwZGF0ZS4KLSAgICBtX3N1cmZhY2UuY2xlYXIoKTsKKyAgICBtX3N1cmZhY2Ug
PSBudWxscHRyOwogfQogCiBzdGF0aWMgY29uc3QgZG91YmxlIGNsZWFyQ29udGVudHNUaW1lcklu
dGVydmFsID0gMzsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2d0ay9HYW1l
cGFkc0d0ay5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ndGsvR2FtZXBhZHNHdGsuY3Bw
CmluZGV4IDI2ZjliZTYuLjlmYjI5ZjIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRm
b3JtL2d0ay9HYW1lcGFkc0d0ay5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3Rr
L0dhbWVwYWRzR3RrLmNwcApAQCAtMTU1LDcgKzE1NSw3IEBAIHZvaWQgR2FtZXBhZHNHdGs6OnVu
cmVnaXN0ZXJEZXZpY2UoU3RyaW5nIGRldmljZUZpbGUpCiAgICAgc2l6ZV90IGluZGV4ID0gbV9z
bG90cy5maW5kKGdhbWVwYWREZXZpY2UpOwogICAgIEFTU0VSVChpbmRleCAhPSBub3RGb3VuZCk7
CiAKLSAgICBtX3Nsb3RzW2luZGV4XS5jbGVhcigpOworICAgIG1fc2xvdHNbaW5kZXhdID0gbnVs
bHB0cjsKIH0KIAogdm9pZCBHYW1lcGFkc0d0azo6dXBkYXRlR2FtZXBhZExpc3QoR2FtZXBhZExp
c3QqIGludG8pCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvSW5saW5lRmxv
d0JveC5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvSW5saW5lRmxvd0JveC5jcHAKaW5k
ZXggNDE2ODJjOC4uMmQ2ZmI2OSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5n
L0lubGluZUZsb3dCb3guY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9JbmxpbmVG
bG93Qm94LmNwcApAQCAtOTU0LDcgKzk1NCw3IEBAIHZvaWQgSW5saW5lRmxvd0JveDo6Y29tcHV0
ZU92ZXJmbG93KExheW91dFVuaXQgbGluZVRvcCwgTGF5b3V0VW5pdCBsaW5lQm90dG9tLCBHCiAg
ICAgICAgIHJldHVybjsKIAogICAgIGlmIChtX292ZXJmbG93KQotICAgICAgICBtX292ZXJmbG93
LmNsZWFyKCk7CisgICAgICAgIG1fb3ZlcmZsb3cgPSBudWxscHRyOwogCiAgICAgLy8gVmlzdWFs
IG92ZXJmbG93IGp1c3QgaW5jbHVkZXMgb3ZlcmZsb3cgZm9yIHN0dWZmIHdlIG5lZWQgdG8gcmVw
YWludCBvdXJzZWx2ZXMuICBTZWxmLXBhaW50aW5nIGxheWVycyBhcmUgaWdub3JlZC4KICAgICAv
LyBMYXlvdXQgb3ZlcmZsb3cgaXMgdXNlZCB0byBkZXRlcm1pbmUgc2Nyb2xsaW5nIGV4dGVudCwg
c28gaXQgc3RpbGwgaW5jbHVkZXMgY2hpbGQgbGF5ZXJzIGFuZCBhbHNvIGZhY3RvcnMgaW4KZGlm
ZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJCb3guY3BwIGIvU291cmNl
L1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlckJveC5jcHAKaW5kZXggNTAyZGY2Ni4uNjE3MWRiNSAx
MDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlckJveC5jcHAKKysrIGIv
U291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlckJveC5jcHAKQEAgLTQ0OTcsNyArNDQ5Nyw3
IEBAIHZvaWQgUmVuZGVyQm94OjphZGRWaXN1YWxPdmVyZmxvdyhjb25zdCBMYXlvdXRSZWN0JiBy
ZWN0KQogCiB2b2lkIFJlbmRlckJveDo6Y2xlYXJPdmVyZmxvdygpCiB7Ci0gICAgbV9vdmVyZmxv
dy5jbGVhcigpOworICAgIG1fb3ZlcmZsb3cgPSBudWxscHRyOwogICAgIFJlbmRlckZsb3dUaHJl
YWQqIGZsb3dUaHJlYWQgPSBmbG93VGhyZWFkQ29udGFpbmluZ0Jsb2NrKCk7CiAgICAgaWYgKGZs
b3dUaHJlYWQpCiAgICAgICAgIGZsb3dUaHJlYWQtPmNsZWFyUmVnaW9uc092ZXJmbG93KHRoaXMp
OwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlckJveFJlZ2lvbklu
Zm8uaCBiL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJCb3hSZWdpb25JbmZvLmgKaW5k
ZXggNjIzNjA4ZC4uZWEyM2MxZWMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmlu
Zy9SZW5kZXJCb3hSZWdpb25JbmZvLmgKKysrIGIvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1Jl
bmRlckJveFJlZ2lvbkluZm8uaApAQCAtNTMsNyArNTMsNyBAQCBwdWJsaWM6CiAgICAgdm9pZCBj
bGVhck92ZXJmbG93KCkKICAgICB7CiAgICAgICAgIGlmIChtX292ZXJmbG93KQotICAgICAgICAg
ICAgbV9vdmVyZmxvdy5jbGVhcigpOworICAgICAgICAgICAgbV9vdmVyZmxvdyA9IG51bGxwdHI7
CiAgICAgfQogCiBwcml2YXRlOgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5n
L3N0eWxlL0ZpbGxMYXllci5oIGIvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL3N0eWxlL0ZpbGxM
YXllci5oCmluZGV4IDhiMDZjZTMuLjAzMDk4NjMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3Jl
L3JlbmRlcmluZy9zdHlsZS9GaWxsTGF5ZXIuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJp
bmcvc3R5bGUvRmlsbExheWVyLmgKQEAgLTEyMSw4ICsxMjEsOCBAQCBwdWJsaWM6CiAgICAgdm9p
ZCBzZXRTaXplKEZpbGxTaXplIGYpIHsgbV9zaXplVHlwZSA9IGYudHlwZTsgbV9zaXplTGVuZ3Ro
ID0gZi5zaXplOyB9CiAgICAgdm9pZCBzZXRNYXNrU291cmNlVHlwZShFTWFza1NvdXJjZVR5cGUg
bSkgeyBtX21hc2tTb3VyY2VUeXBlID0gbTsgbV9tYXNrU291cmNlVHlwZVNldCA9IHRydWU7IH0K
IAotICAgIHZvaWQgY2xlYXJNYXNrSW1hZ2UoKSB7IG1fbWFza0ltYWdlT3BlcmF0aW9uLmNsZWFy
KCk7IH0KLSAgICB2b2lkIGNsZWFySW1hZ2UoKSB7IG1faW1hZ2UuY2xlYXIoKTsgbV9pbWFnZVNl
dCA9IGZhbHNlOyB9CisgICAgdm9pZCBjbGVhck1hc2tJbWFnZSgpIHsgbV9tYXNrSW1hZ2VPcGVy
YXRpb24gPSBudWxscHRyOyB9CisgICAgdm9pZCBjbGVhckltYWdlKCkgeyBtX2ltYWdlID0gbnVs
bHB0cjsgbV9pbWFnZVNldCA9IGZhbHNlOyB9CiAgICAgdm9pZCBjbGVhclhQb3NpdGlvbigpIHsg
bV94UG9zU2V0ID0gZmFsc2U7IG1fYmFja2dyb3VuZE9yaWdpblNldCA9IGZhbHNlOyB9CiAgICAg
dm9pZCBjbGVhcllQb3NpdGlvbigpIHsgbV95UG9zU2V0ID0gZmFsc2U7IG1fYmFja2dyb3VuZE9y
aWdpblNldCA9IGZhbHNlOyB9CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3N2Zy9TVkdU
UmVmRWxlbWVudC5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9zdmcvU1ZHVFJlZkVsZW1lbnQuY3BwCmlu
ZGV4IDIyNWEzMDQuLmUzZmFkOGQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3N2Zy9TVkdU
UmVmRWxlbWVudC5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvc3ZnL1NWR1RSZWZFbGVtZW50LmNw
cApAQCAtMTA0LDcgKzEwNCw3IEBAIHZvaWQgU1ZHVFJlZlRhcmdldEV2ZW50TGlzdGVuZXI6OmRl
dGFjaCgpCiAKICAgICBtX3RhcmdldC0+cmVtb3ZlRXZlbnRMaXN0ZW5lcihldmVudE5hbWVzKCku
RE9NU3VidHJlZU1vZGlmaWVkRXZlbnQsIHRoaXMsIGZhbHNlKTsKICAgICBtX3RhcmdldC0+cmVt
b3ZlRXZlbnRMaXN0ZW5lcihldmVudE5hbWVzKCkuRE9NTm9kZVJlbW92ZWRGcm9tRG9jdW1lbnRF
dmVudCwgdGhpcywgZmFsc2UpOwotICAgIG1fdGFyZ2V0LmNsZWFyKCk7CisgICAgbV90YXJnZXQg
PSBudWxscHRyOwogfQogCiBib29sIFNWR1RSZWZUYXJnZXRFdmVudExpc3RlbmVyOjpvcGVyYXRv
cj09KGNvbnN0IEV2ZW50TGlzdGVuZXImIGxpc3RlbmVyKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dl
YkNvcmUvdGVzdGluZy9JbnRlcm5hbHMuY3BwIGIvU291cmNlL1dlYkNvcmUvdGVzdGluZy9JbnRl
cm5hbHMuY3BwCmluZGV4IDFhMTA1MTcuLjQ3NmQxZTIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJD
b3JlL3Rlc3RpbmcvSW50ZXJuYWxzLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS90ZXN0aW5nL0lu
dGVybmFscy5jcHAKQEAgLTE3MjMsNyArMTcyMyw3IEBAIHZvaWQgSW50ZXJuYWxzOjpjbG9zZUR1
bW15SW5zcGVjdG9yRnJvbnRlbmQoKQogICAgIG1fZnJvbnRlbmRDaGFubmVsID0gbnVsbHB0cjsK
IAogICAgIG1fZnJvbnRlbmRXaW5kb3ctPmNsb3NlKG1fZnJvbnRlbmRXaW5kb3ctPnNjcmlwdEV4
ZWN1dGlvbkNvbnRleHQoKSk7Ci0gICAgbV9mcm9udGVuZFdpbmRvdy5jbGVhcigpOworICAgIG1f
ZnJvbnRlbmRXaW5kb3cgPSBudWxscHRyOwogfQogCiB2b2lkIEludGVybmFsczo6c2V0SmF2YVNj
cmlwdFByb2ZpbGluZ0VuYWJsZWQoYm9vbCBlbmFibGVkLCBFeGNlcHRpb25Db2RlJiBlYykKZGlm
ZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3dvcmtlcnMvV29ya2VyRXZlbnRRdWV1ZS5jcHAgYi9T
b3VyY2UvV2ViQ29yZS93b3JrZXJzL1dvcmtlckV2ZW50UXVldWUuY3BwCmluZGV4IGY1MjBjMWQu
LjA3MjEwNzYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3dvcmtlcnMvV29ya2VyRXZlbnRR
dWV1ZS5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvd29ya2Vycy9Xb3JrZXJFdmVudFF1ZXVlLmNw
cApAQCAtNjgsMTMgKzY4LDEzIEBAIHB1YmxpYzoKICAgICAgICAgICAgIHJldHVybjsKICAgICAg
ICAgbV9ldmVudFF1ZXVlLm1fZXZlbnREaXNwYXRjaGVyTWFwLnJlbW92ZShtX2V2ZW50LmdldCgp
KTsKICAgICAgICAgbV9ldmVudC0+dGFyZ2V0KCktPmRpc3BhdGNoRXZlbnQobV9ldmVudCk7Ci0g
ICAgICAgIG1fZXZlbnQuY2xlYXIoKTsKKyAgICAgICAgbV9ldmVudCA9IG51bGxwdHI7CiAgICAg
fQogCiAgICAgdm9pZCBjYW5jZWwoKQogICAgIHsKICAgICAgICAgbV9pc0NhbmNlbGxlZCA9IHRy
dWU7Ci0gICAgICAgIG1fZXZlbnQuY2xlYXIoKTsKKyAgICAgICAgbV9ldmVudCA9IG51bGxwdHI7
CiAgICAgfQogCiBwcml2YXRlOgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUveG1sL1hNTEh0
dHBSZXF1ZXN0LmNwcCBiL1NvdXJjZS9XZWJDb3JlL3htbC9YTUxIdHRwUmVxdWVzdC5jcHAKaW5k
ZXggYzdlOGMwYi4uNDc1ZDZmYiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUveG1sL1hNTEh0
dHBSZXF1ZXN0LmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS94bWwvWE1MSHR0cFJlcXVlc3QuY3Bw
CkBAIC0yNDUsNyArMjQ1LDcgQEAgQmxvYiogWE1MSHR0cFJlcXVlc3Q6OnJlc3BvbnNlQmxvYigp
CiAgICAgICAgICAgICBkYXRhLmFwcGVuZChtX2JpbmFyeVJlc3BvbnNlQnVpbGRlci0+ZGF0YSgp
LCBtX2JpbmFyeVJlc3BvbnNlQnVpbGRlci0+c2l6ZSgpKTsKICAgICAgICAgICAgIFN0cmluZyBu
b3JtYWxpemVkQ29udGVudFR5cGUgPSBCbG9iOjpub3JtYWxpemVkQ29udGVudFR5cGUocmVzcG9u
c2VNSU1FVHlwZSgpKTsgLy8gcmVzcG9uc2VNSU1FVHlwZSBkZWZhdWx0cyB0byB0ZXh0L3htbCB3
aGljaCBtYXkgYmUgaW5jb3JyZWN0LgogICAgICAgICAgICAgbV9yZXNwb25zZUJsb2IgPSBCbG9i
OjpjcmVhdGUoV1RGOjptb3ZlKGRhdGEpLCBub3JtYWxpemVkQ29udGVudFR5cGUpOwotICAgICAg
ICAgICAgbV9iaW5hcnlSZXNwb25zZUJ1aWxkZXIuY2xlYXIoKTsKKyAgICAgICAgICAgIG1fYmlu
YXJ5UmVzcG9uc2VCdWlsZGVyID0gbnVsbHB0cjsKICAgICAgICAgfSBlbHNlIHsKICAgICAgICAg
ICAgIC8vIElmIHdlIGVycm9yZWQgb3V0IG9yIGdvdCBubyBkYXRhLCB3ZSBzdGlsbCByZXR1cm4g
YSBibG9iLCBqdXN0IGFuIGVtcHR5IG9uZS4KICAgICAgICAgICAgIG1fcmVzcG9uc2VCbG9iID0g
QmxvYjo6Y3JlYXRlKCk7CkBAIC0yNjUsNyArMjY1LDcgQEAgQXJyYXlCdWZmZXIqIFhNTEh0dHBS
ZXF1ZXN0OjpyZXNwb25zZUFycmF5QnVmZmVyKCkKICAgICAgICAgICAgIG1fcmVzcG9uc2VBcnJh
eUJ1ZmZlciA9IG1fYmluYXJ5UmVzcG9uc2VCdWlsZGVyLT5jcmVhdGVBcnJheUJ1ZmZlcigpOwog
ICAgICAgICBlbHNlCiAgICAgICAgICAgICBtX3Jlc3BvbnNlQXJyYXlCdWZmZXIgPSBBcnJheUJ1
ZmZlcjo6Y3JlYXRlKG51bGxwdHIsIDApOwotICAgICAgICBtX2JpbmFyeVJlc3BvbnNlQnVpbGRl
ci5jbGVhcigpOworICAgICAgICBtX2JpbmFyeVJlc3BvbnNlQnVpbGRlciA9IG51bGxwdHI7CiAg
ICAgfQogCiAgICAgcmV0dXJuIG1fcmVzcG9uc2VBcnJheUJ1ZmZlci5nZXQoKTsKQEAgLTg2OCw4
ICs4NjgsOCBAQCB2b2lkIFhNTEh0dHBSZXF1ZXN0OjpjbGVhclJlc3BvbnNlQnVmZmVycygpCiAg
ICAgbV9jcmVhdGVkRG9jdW1lbnQgPSBmYWxzZTsKICAgICBtX3Jlc3BvbnNlRG9jdW1lbnQgPSBu
dWxscHRyOwogICAgIG1fcmVzcG9uc2VCbG9iID0gbnVsbHB0cjsKLSAgICBtX2JpbmFyeVJlc3Bv
bnNlQnVpbGRlci5jbGVhcigpOwotICAgIG1fcmVzcG9uc2VBcnJheUJ1ZmZlci5jbGVhcigpOwor
ICAgIG1fYmluYXJ5UmVzcG9uc2VCdWlsZGVyID0gbnVsbHB0cjsKKyAgICBtX3Jlc3BvbnNlQXJy
YXlCdWZmZXIgPSBudWxscHRyOwogICAgIG1fcmVzcG9uc2VDYWNoZUlzVmFsaWQgPSBmYWxzZTsK
IH0KIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUveG1sL1hTTFRQcm9jZXNzb3IuY3BwIGIv
U291cmNlL1dlYkNvcmUveG1sL1hTTFRQcm9jZXNzb3IuY3BwCmluZGV4IDA2OWNjZWMuLjQ5MWYx
MmMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3htbC9YU0xUUHJvY2Vzc29yLmNwcAorKysg
Yi9Tb3VyY2UvV2ViQ29yZS94bWwvWFNMVFByb2Nlc3Nvci5jcHAKQEAgLTE2Miw4ICsxNjIsOCBA
QCB2b2lkIFhTTFRQcm9jZXNzb3I6OnJlbW92ZVBhcmFtZXRlcihjb25zdCBTdHJpbmcmIC8qbmFt
ZXNwYWNlVVJJKi8sIGNvbnN0IFN0cmluZwogCiB2b2lkIFhTTFRQcm9jZXNzb3I6OnJlc2V0KCkK
IHsKLSAgICBtX3N0eWxlc2hlZXQuY2xlYXIoKTsKLSAgICBtX3N0eWxlc2hlZXRSb290Tm9kZS5j
bGVhcigpOworICAgIG1fc3R5bGVzaGVldCA9IG51bGxwdHI7CisgICAgbV9zdHlsZXNoZWV0Um9v
dE5vZGUgPSBudWxscHRyOwogICAgIG1fcGFyYW1ldGVycy5jbGVhcigpOwogfQogCmRpZmYgLS1n
aXQgYS9Tb3VyY2UvV2ViS2l0L21hYy9XZWJDb3JlU3VwcG9ydC9XZWJFZGl0b3JDbGllbnQubW0g
Yi9Tb3VyY2UvV2ViS2l0L21hYy9XZWJDb3JlU3VwcG9ydC9XZWJFZGl0b3JDbGllbnQubW0KaW5k
ZXggNmNlZDE5NC4uYzE4OGI5ZCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9tYWMvV2ViQ29y
ZVN1cHBvcnQvV2ViRWRpdG9yQ2xpZW50Lm1tCisrKyBiL1NvdXJjZS9XZWJLaXQvbWFjL1dlYkNv
cmVTdXBwb3J0L1dlYkVkaXRvckNsaWVudC5tbQpAQCAtMTE0Myw3ICsxMTQzLDcgQEAgdm9pZCBX
ZWJFZGl0b3JDbGllbnQ6OmRpZENoZWNrU3VjY2VlZChpbnQgc2VxdWVuY2UsIE5TQXJyYXkqIHJl
c3VsdHMpCiB7CiAgICAgQVNTRVJUX1VOVVNFRChzZXF1ZW5jZSwgc2VxdWVuY2UgPT0gbV90ZXh0
Q2hlY2tpbmdSZXF1ZXN0LT5kYXRhKCkuc2VxdWVuY2UoKSk7CiAgICAgbV90ZXh0Q2hlY2tpbmdS
ZXF1ZXN0LT5kaWRTdWNjZWVkKGNvcmUocmVzdWx0cywgbV90ZXh0Q2hlY2tpbmdSZXF1ZXN0LT5k
YXRhKCkubWFzaygpKSk7Ci0gICAgbV90ZXh0Q2hlY2tpbmdSZXF1ZXN0LmNsZWFyKCk7CisgICAg
bV90ZXh0Q2hlY2tpbmdSZXF1ZXN0ID0gbnVsbHB0cjsKIH0KICNlbmRpZgogCmRpZmYgLS1naXQg
YS9Tb3VyY2UvV2ViS2l0L3dpbi9XZWJWaWV3LmNwcCBiL1NvdXJjZS9XZWJLaXQvd2luL1dlYlZp
ZXcuY3BwCmluZGV4IDQzNzUyNzEuLmI3OWU2M2MgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQv
d2luL1dlYlZpZXcuY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQvd2luL1dlYlZpZXcuY3BwCkBAIC04
NTEsOCArODUxLDggQEAgdm9pZCBXZWJWaWV3OjpkZWxldGVCYWNraW5nU3RvcmUoKQogICAgICAg
ICBLaWxsVGltZXIobV92aWV3V2luZG93LCBEZWxldGVCYWNraW5nU3RvcmVUaW1lcik7CiAgICAg
ICAgIG1fZGVsZXRlQmFja2luZ1N0b3JlVGltZXJBY3RpdmUgPSBmYWxzZTsKICAgICB9Ci0gICAg
bV9iYWNraW5nU3RvcmVCaXRtYXAuY2xlYXIoKTsKLSAgICBtX2JhY2tpbmdTdG9yZURpcnR5UmVn
aW9uLmNsZWFyKCk7CisgICAgbV9iYWNraW5nU3RvcmVCaXRtYXAgPSBudWxscHRyOworICAgIG1f
YmFja2luZ1N0b3JlRGlydHlSZWdpb24gPSBudWxscHRyOwogICAgIG1fYmFja2luZ1N0b3JlU2l6
ZS5jeCA9IG1fYmFja2luZ1N0b3JlU2l6ZS5jeSA9IDA7CiB9CiAKQEAgLTEwNzksNyArMTA3OSw3
IEBAIHZvaWQgV2ViVmlldzo6dXBkYXRlQmFja2luZ1N0b3JlKEZyYW1lVmlldyogZnJhbWVWaWV3
LCBIREMgZGMsIGJvb2wgYmFja2luZ1N0b3JlCiAgICAgICAgIGlmIChtX3VpRGVsZWdhdGVQcml2
YXRlKQogICAgICAgICAgICAgbV91aURlbGVnYXRlUHJpdmF0ZS0+d2ViVmlld1BhaW50ZWQodGhp
cyk7CiAKLSAgICAgICAgbV9iYWNraW5nU3RvcmVEaXJ0eVJlZ2lvbi5jbGVhcigpOworICAgICAg
ICBtX2JhY2tpbmdTdG9yZURpcnR5UmVnaW9uID0gbnVsbHB0cjsKICAgICB9CiAKICAgICBpZiAo
IWRjKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdDIvRGF0YWJhc2VQcm9jZXNzL0luZGV4ZWRE
Qi9VbmlxdWVJREJEYXRhYmFzZS5jcHAgYi9Tb3VyY2UvV2ViS2l0Mi9EYXRhYmFzZVByb2Nlc3Mv
SW5kZXhlZERCL1VuaXF1ZUlEQkRhdGFiYXNlLmNwcAppbmRleCA2MTk4MDVjLi4zZDJjYTViIDEw
MDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0Mi9EYXRhYmFzZVByb2Nlc3MvSW5kZXhlZERCL1VuaXF1
ZUlEQkRhdGFiYXNlLmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0Mi9EYXRhYmFzZVByb2Nlc3MvSW5k
ZXhlZERCL1VuaXF1ZUlEQkRhdGFiYXNlLmNwcApAQCAtMTQ3LDcgKzE0Nyw3IEBAIHZvaWQgVW5p
cXVlSURCRGF0YWJhc2U6OnNodXRkb3duQmFja2luZ1N0b3JlKFVuaXF1ZUlEQkRhdGFiYXNlU2h1
dGRvd25UeXBlIHR5cGUsCiB7CiAgICAgQVNTRVJUKCFSdW5Mb29wOjppc01haW4oKSk7CiAKLSAg
ICBtX2JhY2tpbmdTdG9yZS5jbGVhcigpOworICAgIG1fYmFja2luZ1N0b3JlID0gbnVsbHB0cjsK
IAogICAgIGlmICh0eXBlID09IFVuaXF1ZUlEQkRhdGFiYXNlU2h1dGRvd25UeXBlOjpEZWxldGVT
aHV0ZG93bikgewogICAgICAgICBTdHJpbmcgZGJGaWxlbmFtZSA9IFVuaXF1ZUlEQkRhdGFiYXNl
OjpjYWxjdWxhdGVBYnNvbHV0ZURhdGFiYXNlRmlsZW5hbWUoZGF0YWJhc2VEaXJlY3RvcnkpOwpk
aWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdDIvU2hhcmVkL0Nvb3JkaW5hdGVkR3JhcGhpY3MvQ29v
cmRpbmF0ZWRCYWNraW5nU3RvcmUuY3BwIGIvU291cmNlL1dlYktpdDIvU2hhcmVkL0Nvb3JkaW5h
dGVkR3JhcGhpY3MvQ29vcmRpbmF0ZWRCYWNraW5nU3RvcmUuY3BwCmluZGV4IGI5YTA1ZjkuLmM2
NmQyOGIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQyL1NoYXJlZC9Db29yZGluYXRlZEdyYXBo
aWNzL0Nvb3JkaW5hdGVkQmFja2luZ1N0b3JlLmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0Mi9TaGFy
ZWQvQ29vcmRpbmF0ZWRHcmFwaGljcy9Db29yZGluYXRlZEJhY2tpbmdTdG9yZS5jcHAKQEAgLTU1
LDcgKzU1LDcgQEAgdm9pZCBDb29yZGluYXRlZEJhY2tpbmdTdG9yZVRpbGU6OnN3YXBCdWZmZXJz
KFRleHR1cmVNYXBwZXIqIHRleHR1cmVNYXBwZXIpCiAgICAgICAgIHRleHR1cmUtPnJlc2V0KG1f
dGlsZVJlY3Quc2l6ZSgpLCBtX3N1cmZhY2UtPnN1cHBvcnRzQWxwaGEoKSk7CiAKICAgICBtX3N1
cmZhY2UtPmNvcHlUb1RleHR1cmUodGV4dHVyZSwgbV9zb3VyY2VSZWN0LCBtX3N1cmZhY2VPZmZz
ZXQpOwotICAgIG1fc3VyZmFjZS5jbGVhcigpOworICAgIG1fc3VyZmFjZSA9IG51bGxwdHI7CiB9
CiAKIHZvaWQgQ29vcmRpbmF0ZWRCYWNraW5nU3RvcmVUaWxlOjpzZXRCYWNrQnVmZmVyKGNvbnN0
IEludFJlY3QmIHRpbGVSZWN0LCBjb25zdCBJbnRSZWN0JiBzb3VyY2VSZWN0LCBQYXNzUmVmUHRy
PENvb3JkaW5hdGVkU3VyZmFjZT4gYnVmZmVyLCBjb25zdCBJbnRQb2ludCYgb2Zmc2V0KQpkaWZm
IC0tZ2l0IGEvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL0FQSS9lZmwvRXdrVmlldy5jcHAgYi9T
b3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvQVBJL2VmbC9Fd2tWaWV3LmNwcAppbmRleCA3N2I1MDFh
Li40NTg4NDY0IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvQVBJL2VmbC9F
d2tWaWV3LmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvQVBJL2VmbC9Fd2tWaWV3
LmNwcApAQCAtOTQwLDcgKzk0MCw3IEBAIHZvaWQgRXdrVmlldzo6aGlkZUNvbnRleHRNZW51KCkK
ICAgICBpZiAoc2QtPmFwaS0+Y29udGV4dF9tZW51X2hpZGUpCiAgICAgICAgIHNkLT5hcGktPmNv
bnRleHRfbWVudV9oaWRlKHNkKTsKIAotICAgIG1fY29udGV4dE1lbnUuY2xlYXIoKTsKKyAgICBt
X2NvbnRleHRNZW51ID0gbnVsbHB0cjsKIH0KIAogdm9pZCBFd2tWaWV3OjpyZXF1ZXN0UG9wdXBN
ZW51KFdLUG9wdXBNZW51TGlzdGVuZXJSZWYgcG9wdXBNZW51TGlzdGVuZXIsIGNvbnN0IFdLUmVj
dCYgcmVjdCwgV0tQb3B1cEl0ZW1UZXh0RGlyZWN0aW9uIHRleHREaXJlY3Rpb24sIGRvdWJsZSBw
YWdlU2NhbGVGYWN0b3IsIFdLQXJyYXlSZWYgaXRlbXMsIGludDMyX3Qgc2VsZWN0ZWRJbmRleCkK
ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9JbnNwZWN0b3JTZXJ2ZXIvV2Vi
U29ja2V0U2VydmVyQ29ubmVjdGlvbi5jcHAgYi9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvSW5z
cGVjdG9yU2VydmVyL1dlYlNvY2tldFNlcnZlckNvbm5lY3Rpb24uY3BwCmluZGV4IDgwOTdhYzEu
Ljk0YTI0YzkgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9JbnNwZWN0b3JT
ZXJ2ZXIvV2ViU29ja2V0U2VydmVyQ29ubmVjdGlvbi5jcHAKKysrIGIvU291cmNlL1dlYktpdDIv
VUlQcm9jZXNzL0luc3BlY3RvclNlcnZlci9XZWJTb2NrZXRTZXJ2ZXJDb25uZWN0aW9uLmNwcApA
QCAtMTI2LDcgKzEyNiw3IEBAIHZvaWQgV2ViU29ja2V0U2VydmVyQ29ubmVjdGlvbjo6c2VuZFJh
d0RhdGEoY29uc3QgY2hhciogZGF0YSwgc2l6ZV90IGxlbmd0aCkKIHZvaWQgV2ViU29ja2V0U2Vy
dmVyQ29ubmVjdGlvbjo6ZGlkQ2xvc2VTb2NrZXRTdHJlYW0oU29ja2V0U3RyZWFtSGFuZGxlKikK
IHsKICAgICAvLyBEZXN0cm95IHRoZSBTb2NrZXRTdHJlYW1IYW5kbGUgbm93IHRvIHByZXZlbnQg
Y2xvc2luZyBhbiBhbHJlYWR5IGNsb3NlZCBzb2NrZXQgbGF0ZXIuCi0gICAgbV9zb2NrZXQuY2xl
YXIoKTsKKyAgICBtX3NvY2tldCA9IG51bGxwdHI7CiAKICAgICAvLyBXZWIgU29ja2V0IE1vZGUu
CiAgICAgaWYgKG1fbW9kZSA9PSBXZWJTb2NrZXQpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0
Mi9VSVByb2Nlc3MvTmV0d29yay9DdXN0b21Qcm90b2NvbHMvbWFjL0N1c3RvbVByb3RvY29sTWFu
YWdlclByb3h5TWFjLm1tIGIvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL05ldHdvcmsvQ3VzdG9t
UHJvdG9jb2xzL21hYy9DdXN0b21Qcm90b2NvbE1hbmFnZXJQcm94eU1hYy5tbQppbmRleCA5NDI1
Mjk5Li41MTNiMWUwIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvTmV0d29y
ay9DdXN0b21Qcm90b2NvbHMvbWFjL0N1c3RvbVByb3RvY29sTWFuYWdlclByb3h5TWFjLm1tCisr
KyBiL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9OZXR3b3JrL0N1c3RvbVByb3RvY29scy9tYWMv
Q3VzdG9tUHJvdG9jb2xNYW5hZ2VyUHJveHlNYWMubW0KQEAgLTc2LDcgKzc2LDcgQEAgLSAoaWQp
aW5pdFdpdGhDdXN0b21Qcm90b2NvbE1hbmFnZXJQcm94eTooQ3VzdG9tUHJvdG9jb2xNYW5hZ2Vy
UHJveHkqKWN1c3RvbVByb3QKIAogLSAodm9pZClkZWFsbG9jCiB7Ci0gICAgX2Nvbm5lY3Rpb24u
Y2xlYXIoKTsKKyAgICBfY29ubmVjdGlvbiA9IG51bGxwdHI7CiAgICAgW191cmxDb25uZWN0aW9u
IGNhbmNlbF07CiAgICAgW191cmxDb25uZWN0aW9uIHJlbGVhc2VdOwogICAgIFtzdXBlciBkZWFs
bG9jXTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9pb3MvV0tHZW9sb2Nh
dGlvblByb3ZpZGVySU9TLm1tIGIvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL2lvcy9XS0dlb2xv
Y2F0aW9uUHJvdmlkZXJJT1MubW0KaW5kZXggYmI2YmI2MC4uYmRkMTE0YSAxMDA2NDQKLS0tIGEv
U291cmNlL1dlYktpdDIvVUlQcm9jZXNzL2lvcy9XS0dlb2xvY2F0aW9uUHJvdmlkZXJJT1MubW0K
KysrIGIvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL2lvcy9XS0dlb2xvY2F0aW9uUHJvdmlkZXJJ
T1MubW0KQEAgLTExOCw3ICsxMTgsNyBAQCAtKHZvaWQpX3N0b3BVcGRhdGluZwogewogICAgIF9p
c1dlYkNvcmVHZW9sb2NhdGlvbkFjdGl2ZSA9IE5POwogICAgIFtfY29yZUxvY2F0aW9uUHJvdmlk
ZXIgc3RvcF07Ci0gICAgX2xhc3RBY3RpdmVQb3NpdGlvbi5jbGVhcigpOworICAgIF9sYXN0QWN0
aXZlUG9zaXRpb24gPSBudWxscHRyOwogfQogCiAtKHZvaWQpX3NldEVuYWJsZUhpZ2hBY2N1cmFj
eTooQk9PTCllbmFibGVIaWdoQWNjdXJhY3kKZGlmZiAtLWdpdCBhL1Rvb2xzL0R1bXBSZW5kZXJU
cmVlL21hYy9EdW1wUmVuZGVyVHJlZS5tbSBiL1Rvb2xzL0R1bXBSZW5kZXJUcmVlL21hYy9EdW1w
UmVuZGVyVHJlZS5tbQppbmRleCBiY2NkNGE5Li4yNzZkZjhiIDEwMDY0NAotLS0gYS9Ub29scy9E
dW1wUmVuZGVyVHJlZS9tYWMvRHVtcFJlbmRlclRyZWUubW0KKysrIGIvVG9vbHMvRHVtcFJlbmRl
clRyZWUvbWFjL0R1bXBSZW5kZXJUcmVlLm1tCkBAIC0yMDY0LDcgKzIwNjQsNyBAQCBzdGF0aWMg
dm9pZCBydW5UZXN0KGNvbnN0IHN0cmluZyYgaW5wdXRMaW5lKQogICAgIEFTU0VSVChDRkFycmF5
R2V0Q291bnQob3BlbldpbmRvd3NSZWYpID09IDEpOwogICAgIEFTU0VSVChDRkFycmF5R2V0VmFs
dWVBdEluZGV4KG9wZW5XaW5kb3dzUmVmLCAwKSA9PSBbW21haW5GcmFtZSB3ZWJWaWV3XSB3aW5k
b3ddKTsKIAotICAgIGdUZXN0UnVubmVyLmNsZWFyKCk7CisgICAgZ1Rlc3RSdW5uZXIgPSBudWxs
cHRyOwogCiAgICAgaWYgKGlnbm9yZVdlYkNvcmVOb2RlTGVha3MpCiAgICAgICAgIFtXZWJDb3Jl
U3RhdGlzdGljcyBzdG9wSWdub3JpbmdXZWJDb3JlTm9kZUxlYWtzXTsKZGlmZiAtLWdpdCBhL1Rv
b2xzL0R1bXBSZW5kZXJUcmVlL3dpbi9EdW1wUmVuZGVyVHJlZS5jcHAgYi9Ub29scy9EdW1wUmVu
ZGVyVHJlZS93aW4vRHVtcFJlbmRlclRyZWUuY3BwCmluZGV4IGQ5ODZjYmYuLmM4NDM1NDcgMTAw
NjQ0Ci0tLSBhL1Rvb2xzL0R1bXBSZW5kZXJUcmVlL3dpbi9EdW1wUmVuZGVyVHJlZS5jcHAKKysr
IGIvVG9vbHMvRHVtcFJlbmRlclRyZWUvd2luL0R1bXBSZW5kZXJUcmVlLmNwcApAQCAtMTE4Myw3
ICsxMTgzLDcgQEAgc3RhdGljIHZvaWQgcnVuVGVzdChjb25zdCBzdHJpbmcmIGlucHV0TGluZSkK
IAogZXhpdDoKICAgICByZW1vdmVGb250RmFsbGJhY2tJZlByZXNlbnQoZmFsbGJhY2tQYXRoKTsK
LSAgICA6OmdUZXN0UnVubmVyLmNsZWFyKCk7CisgICAgOjpnVGVzdFJ1bm5lciA9IG51bGxwdHI7
CiAKICAgICBmcHV0cygiI0VPRlxuIiwgc3RkZXJyKTsKICAgICBmZmx1c2goc3RkZXJyKTsKZGlm
ZiAtLWdpdCBhL1Rvb2xzL1Rlc3RXZWJLaXRBUEkvVGVzdHMvV1RGL1JlZlB0ci5jcHAgYi9Ub29s
cy9UZXN0V2ViS2l0QVBJL1Rlc3RzL1dURi9SZWZQdHIuY3BwCmluZGV4IGZjOTIyNDYuLmI3MjZk
N2QgMTAwNjQ0Ci0tLSBhL1Rvb2xzL1Rlc3RXZWJLaXRBUEkvVGVzdHMvV1RGL1JlZlB0ci5jcHAK
KysrIGIvVG9vbHMvVGVzdFdlYktpdEFQSS9UZXN0cy9XVEYvUmVmUHRyLmNwcApAQCAtMTAyLDcg
KzEwMiw3IEBAIFRFU1QoV1RGX1JlZlB0ciwgQmFzaWMpCiAgICAgewogICAgICAgICBSZWZQdHI8
UmVmTG9nZ2VyPiBwdHIoJmEpOwogICAgICAgICBBU1NFUlRfRVEoJmEsIHB0ci5nZXQoKSk7Ci0g
ICAgICAgIHB0ci5jbGVhcigpOworICAgICAgICBwdHIgPSBudWxscHRyOwogICAgICAgICBBU1NF
UlRfRVEobnVsbHB0ciwgcHRyLmdldCgpKTsKICAgICB9CiAgICAgQVNTRVJUX1NUUkVRKCJyZWYo
YSkgZGVyZWYoYSkgIiwgdGFrZUxvZ1N0cigpLmNfc3RyKCkpOwo=
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>256026</attachid>
            <date>2015-07-02 13:02:54 -0700</date>
            <delta_ts>2015-07-02 13:14:49 -0700</delta_ts>
            <desc>WIP Patch</desc>
            <filename>RefPtr_clear_wip.patch</filename>
            <type>text/plain</type>
            <size>81715</size>
            <attacher name="Chris Dumez">cdumez</attacher>
            
              <data encoding="base64">ZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9BUEkvSlNWYWx1ZVJlZi5jcHAgYi9T
b3VyY2UvSmF2YVNjcmlwdENvcmUvQVBJL0pTVmFsdWVSZWYuY3BwCmluZGV4IDc1OWE2NWEuLjU0
NDA1ZTIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9BUEkvSlNWYWx1ZVJlZi5j
cHAKKysrIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL0FQSS9KU1ZhbHVlUmVmLmNwcApAQCAtNDIy
LDcgKzQyMiw3IEBAIEpTU3RyaW5nUmVmIEpTVmFsdWVUb1N0cmluZ0NvcHkoSlNDb250ZXh0UmVm
IGN0eCwgSlNWYWx1ZVJlZiB2YWx1ZSwgSlNWYWx1ZVJlZioKICAgICAKICAgICBSZWZQdHI8T3Bh
cXVlSlNTdHJpbmc+IHN0cmluZ1JlZihPcGFxdWVKU1N0cmluZzo6Y3JlYXRlKGpzVmFsdWUudG9T
dHJpbmcoZXhlYyktPnZhbHVlKGV4ZWMpKSk7CiAgICAgaWYgKGhhbmRsZUV4Y2VwdGlvbklmTmVl
ZGVkKGV4ZWMsIGV4Y2VwdGlvbikgPT0gRXhjZXB0aW9uU3RhdHVzOjpEaWRUaHJvdykKLSAgICAg
ICAgc3RyaW5nUmVmLmNsZWFyKCk7CisgICAgICAgIHN0cmluZ1JlZiA9IG51bGxwdHI7CiAgICAg
cmV0dXJuIHN0cmluZ1JlZi5yZWxlYXNlKCkubGVha1JlZigpOwogfQogCmRpZmYgLS1naXQgYS9T
b3VyY2UvSmF2YVNjcmlwdENvcmUvYnl0ZWNvZGUvQ2FsbExpbmtJbmZvLmNwcCBiL1NvdXJjZS9K
YXZhU2NyaXB0Q29yZS9ieXRlY29kZS9DYWxsTGlua0luZm8uY3BwCmluZGV4IDcyYTBjMjQuLmQ5
MjAwOTggMTAwNjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ieXRlY29kZS9DYWxsTGlu
a0luZm8uY3BwCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ieXRlY29kZS9DYWxsTGlua0lu
Zm8uY3BwCkBAIC00Myw3ICs0Myw3IEBAIHZvaWQgQ2FsbExpbmtJbmZvOjpjbGVhclN0dWIoKQog
ICAgICAgICByZXR1cm47CiAKICAgICBtX3N0dWItPmNsZWFyQ2FsbE5vZGVzRm9yKHRoaXMpOwot
ICAgIG1fc3R1Yi5jbGVhcigpOworICAgIG1fc3R1YiA9IG51bGxwdHI7CiB9CiAKIHZvaWQgQ2Fs
bExpbmtJbmZvOjp1bmxpbmsoUmVwYXRjaEJ1ZmZlciYgcmVwYXRjaEJ1ZmZlcikKZGlmZiAtLWdp
dCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ieXRlY29kZS9TdHJ1Y3R1cmVTdHViSW5mby5oIGIv
U291cmNlL0phdmFTY3JpcHRDb3JlL2J5dGVjb2RlL1N0cnVjdHVyZVN0dWJJbmZvLmgKaW5kZXgg
ZWM4Yjc5Yy4uZDQwMmFjZSAxMDA2NDQKLS0tIGEvU291cmNlL0phdmFTY3JpcHRDb3JlL2J5dGVj
b2RlL1N0cnVjdHVyZVN0dWJJbmZvLmgKKysrIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL2J5dGVj
b2RlL1N0cnVjdHVyZVN0dWJJbmZvLmgKQEAgLTE0OSw4ICsxNDksOCBAQCBzdHJ1Y3QgU3RydWN0
dXJlU3R1YkluZm8gewogICAgIHsKICAgICAgICAgZGVyZWYoKTsKICAgICAgICAgYWNjZXNzVHlw
ZSA9IGFjY2Vzc191bnNldDsKLSAgICAgICAgc3R1YlJvdXRpbmUuY2xlYXIoKTsKLSAgICAgICAg
d2F0Y2hwb2ludHMuY2xlYXIoKTsKKyAgICAgICAgc3R1YlJvdXRpbmUgPSBudWxscHRyOworICAg
ICAgICB3YXRjaHBvaW50cyA9IG51bGxwdHI7CiAgICAgfQogCiAgICAgdm9pZCBkZXJlZigpOwpk
aWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL2RmZy9ERkdHcmFwaC5oIGIvU291cmNl
L0phdmFTY3JpcHRDb3JlL2RmZy9ERkdHcmFwaC5oCmluZGV4IGJhYzUzOGYuLjdmNjc5NDYgMTAw
NjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9kZmcvREZHR3JhcGguaAorKysgYi9Tb3Vy
Y2UvSmF2YVNjcmlwdENvcmUvZGZnL0RGR0dyYXBoLmgKQEAgLTQ0Myw3ICs0NDMsNyBAQCBwdWJs
aWM6CiAgICAgCiAgICAgdm9pZCBraWxsQmxvY2soQmxvY2tJbmRleCBibG9ja0luZGV4KQogICAg
IHsKLSAgICAgICAgbV9ibG9ja3NbYmxvY2tJbmRleF0uY2xlYXIoKTsKKyAgICAgICAgbV9ibG9j
a3NbYmxvY2tJbmRleF0gPSBudWxscHRyOwogICAgIH0KICAgICAKICAgICB2b2lkIGtpbGxCbG9j
ayhCYXNpY0Jsb2NrKiBiYXNpY0Jsb2NrKQpkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRD
b3JlL2RmZy9ERkdPcGVyYXRpb25zLmNwcCBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9kZmcvREZH
T3BlcmF0aW9ucy5jcHAKaW5kZXggYTk5YTNmYS4uNmY5NTEyYiAxMDA2NDQKLS0tIGEvU291cmNl
L0phdmFTY3JpcHRDb3JlL2RmZy9ERkdPcGVyYXRpb25zLmNwcAorKysgYi9Tb3VyY2UvSmF2YVNj
cmlwdENvcmUvZGZnL0RGR09wZXJhdGlvbnMuY3BwCkBAIC0xNDQ3LDcgKzE0NDcsNyBAQCBjaGFy
KiBKSVRfT1BFUkFUSU9OIHRyaWdnZXJPU1JFbnRyeU5vdygKICAgICAgICAgCiAgICAgICAgIC8v
IE9TUiBlbnRyeSBmYWlsZWQuIE9oIG5vISBUaGlzIGltcGxpZXMgdGhhdCB3ZSBuZWVkIHRvIHJl
dHJ5LiBXZSByZXRyeQogICAgICAgICAvLyB3aXRob3V0IGV4cG9uZW50aWFsIGJhY2tvZmYgYW5k
IHdlIG9ubHkgZG8gdGhpcyBmb3IgdGhlIGVudHJ5IGNvZGUgYmxvY2suCi0gICAgICAgIGppdENv
ZGUtPm9zckVudHJ5QmxvY2suY2xlYXIoKTsKKyAgICAgICAgaml0Q29kZS0+b3NyRW50cnlCbG9j
ayA9IG51bGxwdHI7CiAgICAgICAgIGppdENvZGUtPm9zckVudHJ5UmV0cnkgPSAwOwogICAgICAg
ICByZXR1cm4gMDsKICAgICB9CmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvaW5z
cGVjdG9yL0NvbnNvbGVNZXNzYWdlLmNwcCBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9pbnNwZWN0
b3IvQ29uc29sZU1lc3NhZ2UuY3BwCmluZGV4IGEwNGE5N2QuLjlhYzBkZGVlIDEwMDY0NAotLS0g
YS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvaW5zcGVjdG9yL0NvbnNvbGVNZXNzYWdlLmNwcAorKysg
Yi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvaW5zcGVjdG9yL0NvbnNvbGVNZXNzYWdlLmNwcApAQCAt
MjczLDcgKzI3Myw3IEBAIHZvaWQgQ29uc29sZU1lc3NhZ2U6OmNsZWFyKCkKICAgICAgICAgbV9t
ZXNzYWdlID0gQVNDSUlMaXRlcmFsKCI8bWVzc2FnZSBjb2xsZWN0ZWQ+Iik7CiAKICAgICBpZiAo
bV9hcmd1bWVudHMpCi0gICAgICAgIG1fYXJndW1lbnRzLmNsZWFyKCk7CisgICAgICAgIG1fYXJn
dW1lbnRzID0gbnVsbHB0cjsKIH0KIAogSlNDOjpFeGVjU3RhdGUqIENvbnNvbGVNZXNzYWdlOjpz
Y3JpcHRTdGF0ZSgpIGNvbnN0CmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvaW5z
cGVjdG9yL0pTR2xvYmFsT2JqZWN0SW5zcGVjdG9yQ29udHJvbGxlci5jcHAgYi9Tb3VyY2UvSmF2
YVNjcmlwdENvcmUvaW5zcGVjdG9yL0pTR2xvYmFsT2JqZWN0SW5zcGVjdG9yQ29udHJvbGxlci5j
cHAKaW5kZXggNTdmNTJjNS4uMTFkODZlZCAxMDA2NDQKLS0tIGEvU291cmNlL0phdmFTY3JpcHRD
b3JlL2luc3BlY3Rvci9KU0dsb2JhbE9iamVjdEluc3BlY3RvckNvbnRyb2xsZXIuY3BwCisrKyBi
L1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9pbnNwZWN0b3IvSlNHbG9iYWxPYmplY3RJbnNwZWN0b3JD
b250cm9sbGVyLmNwcApAQCAtMTMxLDcgKzEzMSw3IEBAIHZvaWQgSlNHbG9iYWxPYmplY3RJbnNw
ZWN0b3JDb250cm9sbGVyOjpkaXNjb25uZWN0RnJvbnRlbmQoRGlzY29ubmVjdFJlYXNvbiByZWFz
CiAgICAgbV9hZ2VudHMud2lsbERlc3Ryb3lGcm9udGVuZEFuZEJhY2tlbmQocmVhc29uKTsKIAog
ICAgIG1fYmFja2VuZERpc3BhdGNoZXItPmNsZWFyRnJvbnRlbmQoKTsKLSAgICBtX2JhY2tlbmRE
aXNwYXRjaGVyLmNsZWFyKCk7CisgICAgbV9iYWNrZW5kRGlzcGF0Y2hlciA9IG51bGxwdHI7CiAg
ICAgbV9mcm9udGVuZENoYW5uZWwgPSBudWxscHRyOwogCiAgICAgbV9pc0F1dG9tYXRpY0luc3Bl
Y3Rpb24gPSBmYWxzZTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9pbnNwZWN0
b3IvYWdlbnRzL0luc3BlY3RvckFnZW50LmNwcCBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9pbnNw
ZWN0b3IvYWdlbnRzL0luc3BlY3RvckFnZW50LmNwcAppbmRleCBiZjI0MWJhLi4wNTM4NjkwIDEw
MDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvaW5zcGVjdG9yL2FnZW50cy9JbnNwZWN0
b3JBZ2VudC5jcHAKKysrIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL2luc3BlY3Rvci9hZ2VudHMv
SW5zcGVjdG9yQWdlbnQuY3BwCkBAIC01Nyw3ICs1Nyw3IEBAIHZvaWQgSW5zcGVjdG9yQWdlbnQ6
OmRpZENyZWF0ZUZyb250ZW5kQW5kQmFja2VuZChGcm9udGVuZENoYW5uZWwqIGZyb250ZW5kQ2hh
bm5lCiB2b2lkIEluc3BlY3RvckFnZW50Ojp3aWxsRGVzdHJveUZyb250ZW5kQW5kQmFja2VuZChE
aXNjb25uZWN0UmVhc29uKQogewogICAgIG1fZnJvbnRlbmREaXNwYXRjaGVyID0gbnVsbHB0cjsK
LSAgICBtX2JhY2tlbmREaXNwYXRjaGVyLmNsZWFyKCk7CisgICAgbV9iYWNrZW5kRGlzcGF0Y2hl
ciA9IG51bGxwdHI7CiAKICAgICBtX3BlbmRpbmdFdmFsdWF0ZVRlc3RDb21tYW5kcy5jbGVhcigp
OwogCmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvaW5zcGVjdG9yL2FnZW50cy9J
bnNwZWN0b3JDb25zb2xlQWdlbnQuY3BwIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL2luc3BlY3Rv
ci9hZ2VudHMvSW5zcGVjdG9yQ29uc29sZUFnZW50LmNwcAppbmRleCA4MTRhMGMxLi45ZmZkMDQ4
IDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvaW5zcGVjdG9yL2FnZW50cy9JbnNw
ZWN0b3JDb25zb2xlQWdlbnQuY3BwCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9pbnNwZWN0
b3IvYWdlbnRzL0luc3BlY3RvckNvbnNvbGVBZ2VudC5jcHAKQEAgLTY0LDcgKzY0LDcgQEAgdm9p
ZCBJbnNwZWN0b3JDb25zb2xlQWdlbnQ6OmRpZENyZWF0ZUZyb250ZW5kQW5kQmFja2VuZChGcm9u
dGVuZENoYW5uZWwqIGZyb250ZW4KIHZvaWQgSW5zcGVjdG9yQ29uc29sZUFnZW50Ojp3aWxsRGVz
dHJveUZyb250ZW5kQW5kQmFja2VuZChEaXNjb25uZWN0UmVhc29uKQogewogICAgIG1fZnJvbnRl
bmREaXNwYXRjaGVyID0gbnVsbHB0cjsKLSAgICBtX2JhY2tlbmREaXNwYXRjaGVyLmNsZWFyKCk7
CisgICAgbV9iYWNrZW5kRGlzcGF0Y2hlciA9IG51bGxwdHI7CiAKICAgICBTdHJpbmcgZXJyb3JT
dHJpbmc7CiAgICAgZGlzYWJsZShlcnJvclN0cmluZyk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2
YVNjcmlwdENvcmUvaW5zcGVjdG9yL2FnZW50cy9JbnNwZWN0b3JEZWJ1Z2dlckFnZW50LmNwcCBi
L1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9pbnNwZWN0b3IvYWdlbnRzL0luc3BlY3RvckRlYnVnZ2Vy
QWdlbnQuY3BwCmluZGV4IGE3NWUwYjIuLmYwZjBiNDggMTAwNjQ0Ci0tLSBhL1NvdXJjZS9KYXZh
U2NyaXB0Q29yZS9pbnNwZWN0b3IvYWdlbnRzL0luc3BlY3RvckRlYnVnZ2VyQWdlbnQuY3BwCisr
KyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9pbnNwZWN0b3IvYWdlbnRzL0luc3BlY3RvckRlYnVn
Z2VyQWdlbnQuY3BwCkBAIC03Nyw3ICs3Nyw3IEBAIHZvaWQgSW5zcGVjdG9yRGVidWdnZXJBZ2Vu
dDo6ZGlkQ3JlYXRlRnJvbnRlbmRBbmRCYWNrZW5kKEZyb250ZW5kQ2hhbm5lbCogZnJvbnRlCiB2
b2lkIEluc3BlY3RvckRlYnVnZ2VyQWdlbnQ6OndpbGxEZXN0cm95RnJvbnRlbmRBbmRCYWNrZW5k
KERpc2Nvbm5lY3RSZWFzb24gcmVhc29uKQogewogICAgIG1fZnJvbnRlbmREaXNwYXRjaGVyID0g
bnVsbHB0cjsKLSAgICBtX2JhY2tlbmREaXNwYXRjaGVyLmNsZWFyKCk7CisgICAgbV9iYWNrZW5k
RGlzcGF0Y2hlciA9IG51bGxwdHI7CiAKICAgICBib29sIHNraXBSZWNvbXBpbGUgPSByZWFzb24g
PT0gRGlzY29ubmVjdFJlYXNvbjo6SW5zcGVjdGVkVGFyZ2V0RGVzdHJveWVkOwogICAgIGRpc2Fi
bGUoc2tpcFJlY29tcGlsZSk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvaW5z
cGVjdG9yL2FnZW50cy9KU0dsb2JhbE9iamVjdFJ1bnRpbWVBZ2VudC5jcHAgYi9Tb3VyY2UvSmF2
YVNjcmlwdENvcmUvaW5zcGVjdG9yL2FnZW50cy9KU0dsb2JhbE9iamVjdFJ1bnRpbWVBZ2VudC5j
cHAKaW5kZXggNjU4YzY3YS4uNDYwNDlmNSAxMDA2NDQKLS0tIGEvU291cmNlL0phdmFTY3JpcHRD
b3JlL2luc3BlY3Rvci9hZ2VudHMvSlNHbG9iYWxPYmplY3RSdW50aW1lQWdlbnQuY3BwCisrKyBi
L1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9pbnNwZWN0b3IvYWdlbnRzL0pTR2xvYmFsT2JqZWN0UnVu
dGltZUFnZW50LmNwcApAQCAtNDksNyArNDksNyBAQCB2b2lkIEpTR2xvYmFsT2JqZWN0UnVudGlt
ZUFnZW50OjpkaWRDcmVhdGVGcm9udGVuZEFuZEJhY2tlbmQoRnJvbnRlbmRDaGFubmVsKiBmcgog
dm9pZCBKU0dsb2JhbE9iamVjdFJ1bnRpbWVBZ2VudDo6d2lsbERlc3Ryb3lGcm9udGVuZEFuZEJh
Y2tlbmQoRGlzY29ubmVjdFJlYXNvbiByZWFzb24pCiB7CiAgICAgbV9mcm9udGVuZERpc3BhdGNo
ZXIgPSBudWxscHRyOwotICAgIG1fYmFja2VuZERpc3BhdGNoZXIuY2xlYXIoKTsKKyAgICBtX2Jh
Y2tlbmREaXNwYXRjaGVyID0gbnVsbHB0cjsKIAogICAgIEluc3BlY3RvclJ1bnRpbWVBZ2VudDo6
d2lsbERlc3Ryb3lGcm9udGVuZEFuZEJhY2tlbmQocmVhc29uKTsKIH0KZGlmZiAtLWdpdCBhL1Nv
dXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0V4ZWN1dGFibGUuY3BwIGIvU291cmNlL0phdmFT
Y3JpcHRDb3JlL3J1bnRpbWUvRXhlY3V0YWJsZS5jcHAKaW5kZXggNmNiMDliMC4uNTUyNDBmZCAx
MDA2NDQKLS0tIGEvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvRXhlY3V0YWJsZS5jcHAK
KysrIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvRXhlY3V0YWJsZS5jcHAKQEAgLTUy
LDggKzUyLDggQEAgdm9pZCBFeGVjdXRhYmxlQmFzZTo6ZGVzdHJveShKU0NlbGwqIGNlbGwpCiB2
b2lkIEV4ZWN1dGFibGVCYXNlOjpjbGVhckNvZGUoKQogewogI2lmIEVOQUJMRShKSVQpCi0gICAg
bV9qaXRDb2RlRm9yQ2FsbC5jbGVhcigpOwotICAgIG1faml0Q29kZUZvckNvbnN0cnVjdC5jbGVh
cigpOworICAgIG1faml0Q29kZUZvckNhbGwgPSBudWxscHRyOworICAgIG1faml0Q29kZUZvckNv
bnN0cnVjdCA9IG51bGxwdHI7CiAgICAgbV9qaXRDb2RlRm9yQ2FsbFdpdGhBcml0eUNoZWNrID0g
TWFjcm9Bc3NlbWJsZXJDb2RlUHRyKCk7CiAgICAgbV9qaXRDb2RlRm9yQ29uc3RydWN0V2l0aEFy
aXR5Q2hlY2sgPSBNYWNyb0Fzc2VtYmxlckNvZGVQdHIoKTsKICAgICBtX2ppdENvZGVGb3JDYWxs
V2l0aEFyaXR5Q2hlY2tBbmRQcmVzZXJ2ZVJlZ3MgPSBNYWNyb0Fzc2VtYmxlckNvZGVQdHIoKTsK
QEAgLTQ2NCw3ICs0NjQsNyBAQCB2b2lkIEV2YWxFeGVjdXRhYmxlOjp1bmxpbmtDYWxscygpCiAK
IHZvaWQgRXZhbEV4ZWN1dGFibGU6OmNsZWFyQ29kZSgpCiB7Ci0gICAgbV9ldmFsQ29kZUJsb2Nr
LmNsZWFyKCk7CisgICAgbV9ldmFsQ29kZUJsb2NrID0gbnVsbHB0cjsKICAgICBtX3VubGlua2Vk
RXZhbENvZGVCbG9jay5jbGVhcigpOwogICAgIEJhc2U6OmNsZWFyQ29kZSgpOwogfQpAQCAtNTQz
LDcgKzU0Myw3IEBAIHZvaWQgUHJvZ3JhbUV4ZWN1dGFibGU6OnZpc2l0Q2hpbGRyZW4oSlNDZWxs
KiBjZWxsLCBTbG90VmlzaXRvciYgdmlzaXRvcikKIAogdm9pZCBQcm9ncmFtRXhlY3V0YWJsZTo6
Y2xlYXJDb2RlKCkKIHsKLSAgICBtX3Byb2dyYW1Db2RlQmxvY2suY2xlYXIoKTsKKyAgICBtX3By
b2dyYW1Db2RlQmxvY2sgPSBudWxscHRyOwogICAgIG1fdW5saW5rZWRQcm9ncmFtQ29kZUJsb2Nr
LmNsZWFyKCk7CiAgICAgQmFzZTo6Y2xlYXJDb2RlKCk7CiB9CkBAIC01ODcsOCArNTg3LDggQEAg
dm9pZCBGdW5jdGlvbkV4ZWN1dGFibGU6OmNsZWFyVW5saW5rZWRDb2RlRm9yUmVjb21waWxhdGlv
bigpCiAKIHZvaWQgRnVuY3Rpb25FeGVjdXRhYmxlOjpjbGVhckNvZGUoKQogewotICAgIG1fY29k
ZUJsb2NrRm9yQ2FsbC5jbGVhcigpOwotICAgIG1fY29kZUJsb2NrRm9yQ29uc3RydWN0LmNsZWFy
KCk7CisgICAgbV9jb2RlQmxvY2tGb3JDYWxsID0gbnVsbHB0cjsKKyAgICBtX2NvZGVCbG9ja0Zv
ckNvbnN0cnVjdCA9IG51bGxwdHI7CiAgICAgQmFzZTo6Y2xlYXJDb2RlKCk7CiB9CiAKZGlmZiAt
LWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0pTTG9jay5jcHAgYi9Tb3VyY2Uv
SmF2YVNjcmlwdENvcmUvcnVudGltZS9KU0xvY2suY3BwCmluZGV4IDJlNzk5NGMuLmMyZWUwYTUg
MTAwNjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0pTTG9jay5jcHAKKysr
IGIvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvSlNMb2NrLmNwcApAQCAtNzMsNyArNzMs
NyBAQCB2b2lkIEpTTG9ja0hvbGRlcjo6aW5pdCgpCiBKU0xvY2tIb2xkZXI6On5KU0xvY2tIb2xk
ZXIoKQogewogICAgIFJlZlB0cjxKU0xvY2s+IGFwaUxvY2soJm1fdm0tPmFwaUxvY2soKSk7Ci0g
ICAgbV92bS5jbGVhcigpOworICAgIG1fdm0gPSBudWxscHRyOwogICAgIGFwaUxvY2stPnVubG9j
aygpOwogfQogCmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9TdHJ1
Y3R1cmUuY3BwIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvU3RydWN0dXJlLmNwcApp
bmRleCBmNzcxYjYwLi4zOTg1ODA1IDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUv
cnVudGltZS9TdHJ1Y3R1cmUuY3BwCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1l
L1N0cnVjdHVyZS5jcHAKQEAgLTczNyw3ICs3MzcsNyBAQCB2b2lkIFN0cnVjdHVyZTo6cGluKCkK
ICAgICBBU1NFUlQocHJvcGVydHlUYWJsZSgpKTsKICAgICBzZXRJc1Bpbm5lZFByb3BlcnR5VGFi
bGUodHJ1ZSk7CiAgICAgY2xlYXJQcmV2aW91c0lEKCk7Ci0gICAgbV9uYW1lSW5QcmV2aW91cy5j
bGVhcigpOworICAgIG1fbmFtZUluUHJldmlvdXMgPSBudWxscHRyOwogfQogCiB2b2lkIFN0cnVj
dHVyZTo6YWxsb2NhdGVSYXJlRGF0YShWTSYgdm0pCmRpZmYgLS1naXQgYS9Tb3VyY2UvV1RGL3d0
Zi9SZWZQdHIuaCBiL1NvdXJjZS9XVEYvd3RmL1JlZlB0ci5oCmluZGV4IDI5MTFmMGRhLi4xNmNm
Y2NhIDEwMDY0NAotLS0gYS9Tb3VyY2UvV1RGL3d0Zi9SZWZQdHIuaAorKysgYi9Tb3VyY2UvV1RG
L3d0Zi9SZWZQdHIuaApAQCAtNjAsNyArNjAsNiBAQCBwdWJsaWM6CiAKICAgICBUKiBnZXQoKSBj
b25zdCB7IHJldHVybiBtX3B0cjsgfQogICAgIAotICAgIHZvaWQgY2xlYXIoKTsKICAgICBQYXNz
UmVmUHRyPFQ+IHJlbGVhc2UoKSB7IFBhc3NSZWZQdHI8VD4gdG1wID0gYWRvcHRSZWYobV9wdHIp
OyBtX3B0ciA9IG51bGxwdHI7IHJldHVybiB0bXA7IH0KICAgICBSZWY8VD4gcmVsZWFzZU5vbk51
bGwoKSB7IEFTU0VSVChtX3B0cik7IFJlZjxUPiB0bXAoYWRvcHRSZWYoKm1fcHRyKSk7IG1fcHRy
ID0gbnVsbHB0cjsgcmV0dXJuIHRtcDsgfQogCkBAIC0xMDksMTEgKzEwOCw2IEBAIHRlbXBsYXRl
PHR5cGVuYW1lIFQ+IHRlbXBsYXRlPHR5cGVuYW1lIFU+IGlubGluZSBSZWZQdHI8VD46OlJlZlB0
cihSZWY8VT4mJiByZWZlCiB7CiB9CiAKLXRlbXBsYXRlPHR5cGVuYW1lIFQ+IGlubGluZSB2b2lk
IFJlZlB0cjxUPjo6Y2xlYXIoKQotewotICAgIGRlcmVmSWZOb3ROdWxsKHN0ZDo6ZXhjaGFuZ2Uo
bV9wdHIsIG51bGxwdHIpKTsKLX0KLQogdGVtcGxhdGU8dHlwZW5hbWUgVD4KIGlubGluZSBUKiBS
ZWZQdHI8VD46OmxlYWtSZWYoKQogewpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvTW9kdWxl
cy9pbmRleGVkZGIvSURCQ3Vyc29yLmNwcCBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvaW5kZXhl
ZGRiL0lEQkN1cnNvci5jcHAKaW5kZXggYTIwZTFlMS4uYzQwMTFkYyAxMDA2NDQKLS0tIGEvU291
cmNlL1dlYkNvcmUvTW9kdWxlcy9pbmRleGVkZGIvSURCQ3Vyc29yLmNwcAorKysgYi9Tb3VyY2Uv
V2ViQ29yZS9Nb2R1bGVzL2luZGV4ZWRkYi9JREJDdXJzb3IuY3BwCkBAIC0yNTksNyArMjU5LDcg
QEAgdm9pZCBJREJDdXJzb3I6OmNsb3NlKCkKICAgICBtX3RyYW5zYWN0aW9uTm90aWZpZXIuY3Vy
c29yRmluaXNoZWQoKTsKICAgICBpZiAobV9yZXF1ZXN0KSB7CiAgICAgICAgIG1fcmVxdWVzdC0+
ZmluaXNoQ3Vyc29yKCk7Ci0gICAgICAgIG1fcmVxdWVzdC5jbGVhcigpOworICAgICAgICBtX3Jl
cXVlc3QgPSBudWxscHRyOwogICAgIH0KIH0KIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUv
TW9kdWxlcy9pbmRleGVkZGIvSURCRGF0YWJhc2VCYWNrZW5kLmNwcCBiL1NvdXJjZS9XZWJDb3Jl
L01vZHVsZXMvaW5kZXhlZGRiL0lEQkRhdGFiYXNlQmFja2VuZC5jcHAKaW5kZXggZmMyMzEwMi4u
MDllNGUyNyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9pbmRleGVkZGIvSURC
RGF0YWJhc2VCYWNrZW5kLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL2luZGV4ZWRk
Yi9JREJEYXRhYmFzZUJhY2tlbmQuY3BwCkBAIC0zMzMsNyArMzMzLDcgQEAgdm9pZCBJREJEYXRh
YmFzZUJhY2tlbmQ6OnRyYW5zYWN0aW9uRmluaXNoZWQoSURCVHJhbnNhY3Rpb25CYWNrZW5kKiBy
YXdUcmFuc2FjdGkKICAgICBtX3RyYW5zYWN0aW9ucy5yZW1vdmUodHJhbnNhY3Rpb24tPmlkKCkp
OwogICAgIGlmICh0cmFuc2FjdGlvbi0+bW9kZSgpID09IEluZGV4ZWREQjo6VHJhbnNhY3Rpb25N
b2RlOjpWZXJzaW9uQ2hhbmdlKSB7CiAgICAgICAgIEFTU0VSVCh0cmFuc2FjdGlvbi5nZXQoKSA9
PSBtX3J1bm5pbmdWZXJzaW9uQ2hhbmdlVHJhbnNhY3Rpb24uZ2V0KCkpOwotICAgICAgICBtX3J1
bm5pbmdWZXJzaW9uQ2hhbmdlVHJhbnNhY3Rpb24uY2xlYXIoKTsKKyAgICAgICAgbV9ydW5uaW5n
VmVyc2lvbkNoYW5nZVRyYW5zYWN0aW9uID0gbnVsbHB0cjsKICAgICB9CiB9CiAKZGlmZiAtLWdp
dCBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvaW5kZXhlZGRiL0lEQk9iamVjdFN0b3JlLmNwcCBi
L1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvaW5kZXhlZGRiL0lEQk9iamVjdFN0b3JlLmNwcAppbmRl
eCBlOGJmOWRkLi5hNmQyODE0IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL2lu
ZGV4ZWRkYi9JREJPYmplY3RTdG9yZS5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9p
bmRleGVkZGIvSURCT2JqZWN0U3RvcmUuY3BwCkBAIC0zMzcsNyArMzM3LDcgQEAgcHJpdmF0ZToK
ICAgICAgICAgICAgIC8vIE5vdyB0aGF0IHdlIGFyZSBkb25lIGluZGV4aW5nLCB0ZWxsIHRoZSBi
YWNrZW5kIHRvIGdvCiAgICAgICAgICAgICAvLyBiYWNrIHRvIHByb2Nlc3NpbmcgdGFza3Mgb2Yg
dHlwZSBOb3JtYWxUYXNrLgogICAgICAgICAgICAgbV9kYXRhYmFzZUJhY2tlbmQtPnNldEluZGV4
ZXNSZWFkeShtX3RyYW5zYWN0aW9uSWQsIG1fb2JqZWN0U3RvcmVJZCwgaW5kZXhJZHMpOwotICAg
ICAgICAgICAgbV9kYXRhYmFzZUJhY2tlbmQuY2xlYXIoKTsKKyAgICAgICAgICAgIG1fZGF0YWJh
c2VCYWNrZW5kID0gbnVsbHB0cjsKICAgICAgICAgfQogCiAgICAgfQpkaWZmIC0tZ2l0IGEvU291
cmNlL1dlYkNvcmUvTW9kdWxlcy9pbmRleGVkZGIvSURCT3BlbkRCUmVxdWVzdC5jcHAgYi9Tb3Vy
Y2UvV2ViQ29yZS9Nb2R1bGVzL2luZGV4ZWRkYi9JREJPcGVuREJSZXF1ZXN0LmNwcAppbmRleCA2
Mzc4MDdlLi43MTU3OWIwIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL2luZGV4
ZWRkYi9JREJPcGVuREJSZXF1ZXN0LmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL2lu
ZGV4ZWRkYi9JREJPcGVuREJSZXF1ZXN0LmNwcApAQCAtMTQyLDcgKzE0Miw3IEBAIGJvb2wgSURC
T3BlbkRCUmVxdWVzdDo6ZGlzcGF0Y2hFdmVudChQYXNzUmVmUHRyPEV2ZW50PiBldmVudCkKICAg
ICAvLyBJZiB0aGUgY29ubmVjdGlvbiBjbG9zZWQgYmV0d2VlbiBvblVwZ3JhZGVOZWVkZWQgYW5k
IHRoZSBkZWxpdmVyeSBvZiB0aGUgInN1Y2Nlc3MiIGV2ZW50LAogICAgIC8vIGFuICJlcnJvciIg
ZXZlbnQgc2hvdWxkIGJlIGZpcmVkIGluc3RlYWQuCiAgICAgaWYgKGV2ZW50LT50eXBlKCkgPT0g
ZXZlbnROYW1lcygpLnN1Y2Nlc3NFdmVudCAmJiBtX3Jlc3VsdC0+dHlwZSgpID09IElEQkFueTo6
SURCRGF0YWJhc2VUeXBlICYmIG1fcmVzdWx0LT5pZGJEYXRhYmFzZSgpLT5pc0Nsb3NlUGVuZGlu
ZygpKSB7Ci0gICAgICAgIG1fcmVzdWx0LmNsZWFyKCk7CisgICAgICAgIG1fcmVzdWx0ID0gbnVs
bHB0cjsKICAgICAgICAgb25FcnJvcihJREJEYXRhYmFzZUVycm9yOjpjcmVhdGUoSURCRGF0YWJh
c2VFeGNlcHRpb246OkFib3J0RXJyb3IsICJUaGUgY29ubmVjdGlvbiB3YXMgY2xvc2VkLiIpKTsK
ICAgICAgICAgcmV0dXJuIGZhbHNlOwogICAgIH0KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3Jl
L01vZHVsZXMvaW5kZXhlZGRiL0lEQlJlcXVlc3QuY3BwIGIvU291cmNlL1dlYkNvcmUvTW9kdWxl
cy9pbmRleGVkZGIvSURCUmVxdWVzdC5jcHAKaW5kZXggOWU1MDFiNC4uODY0ZGU1MyAxMDA2NDQK
LS0tIGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9pbmRleGVkZGIvSURCUmVxdWVzdC5jcHAKKysr
IGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9pbmRleGVkZGIvSURCUmVxdWVzdC5jcHAKQEAgLTE3
MCw5ICsxNzAsOSBAQCB2b2lkIElEQlJlcXVlc3Q6OmFib3J0KCkKICAgICBtX2VucXVldWVkRXZl
bnRzLmNsZWFyKCk7CiAKICAgICBtX2Vycm9yQ29kZSA9IDA7Ci0gICAgbV9lcnJvci5jbGVhcigp
OworICAgIG1fZXJyb3IgPSBudWxscHRyOwogICAgIG1fZXJyb3JNZXNzYWdlID0gU3RyaW5nKCk7
Ci0gICAgbV9yZXN1bHQuY2xlYXIoKTsKKyAgICBtX3Jlc3VsdCA9IG51bGxwdHI7CiAgICAgb25F
cnJvcihJREJEYXRhYmFzZUVycm9yOjpjcmVhdGUoSURCRGF0YWJhc2VFeGNlcHRpb246OkFib3J0
RXJyb3IpKTsKICAgICBtX3JlcXVlc3RBYm9ydGVkID0gdHJ1ZTsKIH0KQEAgLTE5NCwxMCArMTk0
LDEwIEBAIHZvaWQgSURCUmVxdWVzdDo6c2V0UGVuZGluZ0N1cnNvcihQYXNzUmVmUHRyPElEQkN1
cnNvcj4gY3Vyc29yKQogICAgIEFTU0VSVChjdXJzb3IgPT0gZ2V0UmVzdWx0Q3Vyc29yKCkpOwog
CiAgICAgbV9wZW5kaW5nQ3Vyc29yID0gY3Vyc29yOwotICAgIG1fcmVzdWx0LmNsZWFyKCk7Cisg
ICAgbV9yZXN1bHQgPSBudWxscHRyOwogICAgIG1fcmVhZHlTdGF0ZSA9IFBFTkRJTkc7CiAgICAg
bV9lcnJvckNvZGUgPSAwOwotICAgIG1fZXJyb3IuY2xlYXIoKTsKKyAgICBtX2Vycm9yID0gbnVs
bHB0cjsKICAgICBtX2Vycm9yTWVzc2FnZSA9IFN0cmluZygpOwogICAgIG1fdHJhbnNhY3Rpb24t
PnJlZ2lzdGVyUmVxdWVzdCh0aGlzKTsKIH0KQEAgLTI1Niw3ICsyNTYsNyBAQCB2b2lkIElEQlJl
cXVlc3Q6Om9uRXJyb3IoUGFzc1JlZlB0cjxJREJEYXRhYmFzZUVycm9yPiBlcnJvcikKICAgICBt
X2Vycm9yQ29kZSA9IGVycm9yLT5jb2RlKCk7CiAgICAgbV9lcnJvck1lc3NhZ2UgPSBlcnJvci0+
bWVzc2FnZSgpOwogICAgIG1fZXJyb3IgPSBET01FcnJvcjo6Y3JlYXRlKElEQkRhdGFiYXNlRXhj
ZXB0aW9uOjpnZXRFcnJvck5hbWUoZXJyb3ItPmlkYkNvZGUoKSkpOwotICAgIG1fcGVuZGluZ0N1
cnNvci5jbGVhcigpOworICAgIG1fcGVuZGluZ0N1cnNvciA9IG51bGxwdHI7CiAgICAgZW5xdWV1
ZUV2ZW50KEV2ZW50OjpjcmVhdGUoZXZlbnROYW1lcygpLmVycm9yRXZlbnQsIHRydWUsIHRydWUp
KTsKIH0KIApAQCAtNDA0LDcgKzQwNCw3IEBAIHZvaWQgSURCUmVxdWVzdDo6b25TdWNjZXNzSW50
ZXJuYWwoY29uc3QgRGVwcmVjYXRlZDo6U2NyaXB0VmFsdWUmIHZhbHVlKQogICAgIG1fcmVzdWx0
ID0gSURCQW55OjpjcmVhdGUodmFsdWUpOwogICAgIGlmIChtX3BlbmRpbmdDdXJzb3IpIHsKICAg
ICAgICAgbV9wZW5kaW5nQ3Vyc29yLT5jbG9zZSgpOwotICAgICAgICBtX3BlbmRpbmdDdXJzb3Iu
Y2xlYXIoKTsKKyAgICAgICAgbV9wZW5kaW5nQ3Vyc29yID0gbnVsbHB0cjsKICAgICB9CiAgICAg
ZW5xdWV1ZUV2ZW50KGNyZWF0ZVN1Y2Nlc3NFdmVudCgpKTsKIH0KQEAgLTU1Myw3ICs1NTMsNyBA
QCB2b2lkIElEQlJlcXVlc3Q6OnRyYW5zYWN0aW9uRGlkRmluaXNoQW5kRGlzcGF0Y2goKQogICAg
IEFTU0VSVChtX3RyYW5zYWN0aW9uLT5pc1ZlcnNpb25DaGFuZ2UoKSk7CiAgICAgQVNTRVJUKG1f
cmVhZHlTdGF0ZSA9PSBET05FKTsKICAgICBBU1NFUlQoc2NyaXB0RXhlY3V0aW9uQ29udGV4dCgp
KTsKLSAgICBtX3RyYW5zYWN0aW9uLmNsZWFyKCk7CisgICAgbV90cmFuc2FjdGlvbiA9IG51bGxw
dHI7CiAgICAgbV9yZWFkeVN0YXRlID0gUEVORElORzsKIH0KIApkaWZmIC0tZ2l0IGEvU291cmNl
L1dlYkNvcmUvTW9kdWxlcy9pbmRleGVkZGIvSURCVHJhbnNhY3Rpb24uY3BwIGIvU291cmNlL1dl
YkNvcmUvTW9kdWxlcy9pbmRleGVkZGIvSURCVHJhbnNhY3Rpb24uY3BwCmluZGV4IDk5NDhiYzcu
LjZlYzI5ZmEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvaW5kZXhlZGRiL0lE
QlRyYW5zYWN0aW9uLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL2luZGV4ZWRkYi9J
REJUcmFuc2FjdGlvbi5jcHAKQEAgLTI0MCw3ICsyNDAsNyBAQCB2b2lkIElEQlRyYW5zYWN0aW9u
OjpPcGVuQ3Vyc29yTm90aWZpZXI6OmN1cnNvckZpbmlzaGVkKCkKICAgICBpZiAobV9jdXJzb3Ip
IHsKICAgICAgICAgbV90cmFuc2FjdGlvbi0+dW5yZWdpc3Rlck9wZW5DdXJzb3IobV9jdXJzb3Ip
OwogICAgICAgICBtX2N1cnNvciA9IG51bGxwdHI7Ci0gICAgICAgIG1fdHJhbnNhY3Rpb24uY2xl
YXIoKTsKKyAgICAgICAgbV90cmFuc2FjdGlvbiA9IG51bGxwdHI7CiAgICAgfQogfQogCmRpZmYg
LS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL21lZGlhc291cmNlL01lZGlhU291cmNlLmNw
cCBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvbWVkaWFzb3VyY2UvTWVkaWFTb3VyY2UuY3BwCmlu
ZGV4IDkxMTcwYWEuLmM0MGQ2ZTMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMv
bWVkaWFzb3VyY2UvTWVkaWFTb3VyY2UuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMv
bWVkaWFzb3VyY2UvTWVkaWFTb3VyY2UuY3BwCkBAIC0zOTQsNyArMzk0LDcgQEAgdm9pZCBNZWRp
YVNvdXJjZTo6c2V0UmVhZHlTdGF0ZShjb25zdCBBdG9taWNTdHJpbmcmIHN0YXRlKQogICAgIExP
RyhNZWRpYVNvdXJjZSwgIk1lZGlhU291cmNlOjpzZXRSZWFkeVN0YXRlKCVwKSA6ICVzIC0+ICVz
IiwgdGhpcywgb2xkU3RhdGUuc3RyaW5nKCkuYXNjaWkoKS5kYXRhKCksIHN0YXRlLnN0cmluZygp
LmFzY2lpKCkuZGF0YSgpKTsKIAogICAgIGlmIChzdGF0ZSA9PSBjbG9zZWRLZXl3b3JkKCkpIHsK
LSAgICAgICAgbV9wcml2YXRlLmNsZWFyKCk7CisgICAgICAgIG1fcHJpdmF0ZSA9IG51bGxwdHI7
CiAgICAgICAgIG1fbWVkaWFFbGVtZW50ID0gbnVsbHB0cjsKICAgICAgICAgbV9kdXJhdGlvbiA9
IE1lZGlhVGltZTo6aW52YWxpZFRpbWUoKTsKICAgICB9CkBAIC04MTEsNyArODExLDcgQEAgdm9p
ZCBNZWRpYVNvdXJjZTo6c3RvcCgpCiAgICAgbV9hc3luY0V2ZW50UXVldWUuY2xvc2UoKTsKICAg
ICBpZiAoIWlzQ2xvc2VkKCkpCiAgICAgICAgIHNldFJlYWR5U3RhdGUoY2xvc2VkS2V5d29yZCgp
KTsKLSAgICBtX3ByaXZhdGUuY2xlYXIoKTsKKyAgICBtX3ByaXZhdGUgPSBudWxscHRyOwogfQog
CiBib29sIE1lZGlhU291cmNlOjpjYW5TdXNwZW5kRm9yUGFnZUNhY2hlKCkgY29uc3QKZGlmZiAt
LWdpdCBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvbWVkaWFzdHJlYW0vUlRDU2Vzc2lvbkRlc2Ny
aXB0aW9uUmVxdWVzdEltcGwuY3BwIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9tZWRpYXN0cmVh
bS9SVENTZXNzaW9uRGVzY3JpcHRpb25SZXF1ZXN0SW1wbC5jcHAKaW5kZXggZDcxMGRjMS4uMzAx
MzM0ZCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9tZWRpYXN0cmVhbS9SVENT
ZXNzaW9uRGVzY3JpcHRpb25SZXF1ZXN0SW1wbC5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvTW9k
dWxlcy9tZWRpYXN0cmVhbS9SVENTZXNzaW9uRGVzY3JpcHRpb25SZXF1ZXN0SW1wbC5jcHAKQEAg
LTk3LDggKzk3LDggQEAgYm9vbCBSVENTZXNzaW9uRGVzY3JpcHRpb25SZXF1ZXN0SW1wbDo6Y2Fu
U3VzcGVuZEZvclBhZ2VDYWNoZSgpIGNvbnN0CiAKIHZvaWQgUlRDU2Vzc2lvbkRlc2NyaXB0aW9u
UmVxdWVzdEltcGw6OmNsZWFyKCkKIHsKLSAgICBtX3N1Y2Nlc3NDYWxsYmFjay5jbGVhcigpOwot
ICAgIG1fZXJyb3JDYWxsYmFjay5jbGVhcigpOworICAgIG1fc3VjY2Vzc0NhbGxiYWNrID0gbnVs
bHB0cjsKKyAgICBtX2Vycm9yQ2FsbGJhY2sgPSBudWxscHRyOwogfQogCiB9IC8vIG5hbWVzcGFj
ZSBXZWJDb3JlCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL21lZGlhc3RyZWFt
L1JUQ1N0YXRzUmVxdWVzdEltcGwuY3BwIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9tZWRpYXN0
cmVhbS9SVENTdGF0c1JlcXVlc3RJbXBsLmNwcAppbmRleCBkZWIxOWE5Li5kMDAwYjExIDEwMDY0
NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL21lZGlhc3RyZWFtL1JUQ1N0YXRzUmVxdWVz
dEltcGwuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvbWVkaWFzdHJlYW0vUlRDU3Rh
dHNSZXF1ZXN0SW1wbC5jcHAKQEAgLTEwNCw3ICsxMDQsNyBAQCBib29sIFJUQ1N0YXRzUmVxdWVz
dEltcGw6OmNhblN1c3BlbmRGb3JQYWdlQ2FjaGUoKSBjb25zdAogCiB2b2lkIFJUQ1N0YXRzUmVx
dWVzdEltcGw6OmNsZWFyKCkKIHsKLSAgICBtX3N1Y2Nlc3NDYWxsYmFjay5jbGVhcigpOworICAg
IG1fc3VjY2Vzc0NhbGxiYWNrID0gbnVsbHB0cjsKIH0KIAogCmRpZmYgLS1naXQgYS9Tb3VyY2Uv
V2ViQ29yZS9Nb2R1bGVzL21lZGlhc3RyZWFtL1JUQ1ZvaWRSZXF1ZXN0SW1wbC5jcHAgYi9Tb3Vy
Y2UvV2ViQ29yZS9Nb2R1bGVzL21lZGlhc3RyZWFtL1JUQ1ZvaWRSZXF1ZXN0SW1wbC5jcHAKaW5k
ZXggODJmOGExMi4uNzA2ZjkwNyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9t
ZWRpYXN0cmVhbS9SVENWb2lkUmVxdWVzdEltcGwuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL01v
ZHVsZXMvbWVkaWFzdHJlYW0vUlRDVm9pZFJlcXVlc3RJbXBsLmNwcApAQCAtOTQsOCArOTQsOCBA
QCBib29sIFJUQ1ZvaWRSZXF1ZXN0SW1wbDo6Y2FuU3VzcGVuZEZvclBhZ2VDYWNoZSgpIGNvbnN0
CiAKIHZvaWQgUlRDVm9pZFJlcXVlc3RJbXBsOjpjbGVhcigpCiB7Ci0gICAgbV9zdWNjZXNzQ2Fs
bGJhY2suY2xlYXIoKTsKLSAgICBtX2Vycm9yQ2FsbGJhY2suY2xlYXIoKTsKKyAgICBtX3N1Y2Nl
c3NDYWxsYmFjayA9IG51bGxwdHI7CisgICAgbV9lcnJvckNhbGxiYWNrID0gbnVsbHB0cjsKIH0K
IAogfSAvLyBuYW1lc3BhY2UgV2ViQ29yZQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvTW9k
dWxlcy93ZWJhdWRpby9BdWRpb0NvbnRleHQuY3BwIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy93
ZWJhdWRpby9BdWRpb0NvbnRleHQuY3BwCmluZGV4IDVhM2RlYTAuLmZhYTk5NmIgMTAwNjQ0Ci0t
LSBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvd2ViYXVkaW8vQXVkaW9Db250ZXh0LmNwcAorKysg
Yi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL3dlYmF1ZGlvL0F1ZGlvQ29udGV4dC5jcHAKQEAgLTIz
MSw3ICsyMzEsNyBAQCB2b2lkIEF1ZGlvQ29udGV4dDo6Y2xlYXIoKQogewogICAgIC8vIFdlIGhh
dmUgdG8gcmVsZWFzZSBvdXIgcmVmZXJlbmNlIHRvIHRoZSBkZXN0aW5hdGlvbiBub2RlIGJlZm9y
ZSB0aGUgY29udGV4dCB3aWxsIGV2ZXIgYmUgZGVsZXRlZCBzaW5jZSB0aGUgZGVzdGluYXRpb24g
bm9kZSBob2xkcyBhIHJlZmVyZW5jZSB0byB0aGUgY29udGV4dC4KICAgICBpZiAobV9kZXN0aW5h
dGlvbk5vZGUpCi0gICAgICAgIG1fZGVzdGluYXRpb25Ob2RlLmNsZWFyKCk7CisgICAgICAgIG1f
ZGVzdGluYXRpb25Ob2RlID0gbnVsbHB0cjsKIAogICAgIC8vIEF1ZGlvIHRocmVhZCBpcyBkZWFk
LiBOb2JvZHkgd2lsbCBzY2hlZHVsZSBub2RlIGRlbGV0aW9uIGFjdGlvbi4gTGV0J3MgZG8gaXQg
b3Vyc2VsdmVzLgogICAgIGRvIHsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMv
d2ViZGF0YWJhc2UvU1FMVHJhbnNhY3Rpb25CYWNrZW5kLmNwcCBiL1NvdXJjZS9XZWJDb3JlL01v
ZHVsZXMvd2ViZGF0YWJhc2UvU1FMVHJhbnNhY3Rpb25CYWNrZW5kLmNwcAppbmRleCBkYTI1NGI2
Li5kMzExMzgwIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL3dlYmRhdGFiYXNl
L1NRTFRyYW5zYWN0aW9uQmFja2VuZC5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy93
ZWJkYXRhYmFzZS9TUUxUcmFuc2FjdGlvbkJhY2tlbmQuY3BwCkBAIC04NDUsNyArODQ1LDcgQEAg
dm9pZCBTUUxUcmFuc2FjdGlvbkJhY2tlbmQ6OnJlbGVhc2VPcmlnaW5Mb2NrSWZOZWVkZWQoKQog
ewogICAgIGlmIChtX29yaWdpbkxvY2spIHsKICAgICAgICAgbV9vcmlnaW5Mb2NrLT51bmxvY2so
KTsKLSAgICAgICAgbV9vcmlnaW5Mb2NrLmNsZWFyKCk7CisgICAgICAgIG1fb3JpZ2luTG9jayA9
IG51bGxwdHI7CiAgICAgfQogfQogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVz
L3dlYnNvY2tldHMvV29ya2VyVGhyZWFkYWJsZVdlYlNvY2tldENoYW5uZWwuY3BwIGIvU291cmNl
L1dlYkNvcmUvTW9kdWxlcy93ZWJzb2NrZXRzL1dvcmtlclRocmVhZGFibGVXZWJTb2NrZXRDaGFu
bmVsLmNwcAppbmRleCBiY2JkYWY5Li4zNGI2NGQ3IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29y
ZS9Nb2R1bGVzL3dlYnNvY2tldHMvV29ya2VyVGhyZWFkYWJsZVdlYlNvY2tldENoYW5uZWwuY3Bw
CisrKyBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvd2Vic29ja2V0cy9Xb3JrZXJUaHJlYWRhYmxl
V2ViU29ja2V0Q2hhbm5lbC5jcHAKQEAgLTEyNiw3ICsxMjYsNyBAQCB2b2lkIFdvcmtlclRocmVh
ZGFibGVXZWJTb2NrZXRDaGFubmVsOjpmYWlsKGNvbnN0IFN0cmluZyYgcmVhc29uKQogdm9pZCBX
b3JrZXJUaHJlYWRhYmxlV2ViU29ja2V0Q2hhbm5lbDo6ZGlzY29ubmVjdCgpCiB7CiAgICAgbV9i
cmlkZ2UtPmRpc2Nvbm5lY3QoKTsKLSAgICBtX2JyaWRnZS5jbGVhcigpOworICAgIG1fYnJpZGdl
ID0gbnVsbHB0cjsKIH0KIAogdm9pZCBXb3JrZXJUaHJlYWRhYmxlV2ViU29ja2V0Q2hhbm5lbDo6
c3VzcGVuZCgpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9qcy9XZWJDb3Jl
SlNDbGllbnREYXRhLmggYi9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9qcy9XZWJDb3JlSlNDbGll
bnREYXRhLmgKaW5kZXggNjU0NTEzMy4uNDMwMmQ2OCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNv
cmUvYmluZGluZ3MvanMvV2ViQ29yZUpTQ2xpZW50RGF0YS5oCisrKyBiL1NvdXJjZS9XZWJDb3Jl
L2JpbmRpbmdzL2pzL1dlYkNvcmVKU0NsaWVudERhdGEuaApAQCAtNDQsNyArNDQsNyBAQCBwdWJs
aWM6CiAgICAgICAgIEFTU0VSVChtX3dvcmxkU2V0LmNvbnRhaW5zKG1fbm9ybWFsV29ybGQuZ2V0
KCkpKTsKICAgICAgICAgQVNTRVJUKG1fd29ybGRTZXQuc2l6ZSgpID09IDEpOwogICAgICAgICBB
U1NFUlQobV9ub3JtYWxXb3JsZC0+aGFzT25lUmVmKCkpOwotICAgICAgICBtX25vcm1hbFdvcmxk
LmNsZWFyKCk7CisgICAgICAgIG1fbm9ybWFsV29ybGQgPSBudWxscHRyOwogICAgICAgICBBU1NF
UlQobV93b3JsZFNldC5pc0VtcHR5KCkpOwogICAgIH0KIApkaWZmIC0tZ2l0IGEvU291cmNlL1dl
YkNvcmUvYmluZGluZ3MvanMvV29ya2VyU2NyaXB0Q29udHJvbGxlci5jcHAgYi9Tb3VyY2UvV2Vi
Q29yZS9iaW5kaW5ncy9qcy9Xb3JrZXJTY3JpcHRDb250cm9sbGVyLmNwcAppbmRleCA5MGUwZmY1
Li4yOGM5ZWYwIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9qcy9Xb3JrZXJT
Y3JpcHRDb250cm9sbGVyLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9qcy9Xb3Jr
ZXJTY3JpcHRDb250cm9sbGVyLmNwcApAQCAtNjIsNyArNjIsNyBAQCBXb3JrZXJTY3JpcHRDb250
cm9sbGVyOjp+V29ya2VyU2NyaXB0Q29udHJvbGxlcigpCiB7CiAgICAgSlNMb2NrSG9sZGVyIGxv
Y2sodm0oKSk7CiAgICAgbV93b3JrZXJHbG9iYWxTY29wZVdyYXBwZXIuY2xlYXIoKTsKLSAgICBt
X3ZtLmNsZWFyKCk7CisgICAgbV92bSA9IG51bGxwdHI7CiB9CiAKIHZvaWQgV29ya2VyU2NyaXB0
Q29udHJvbGxlcjo6aW5pdFNjcmlwdCgpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9jb250
ZW50ZXh0ZW5zaW9ucy9Db250ZW50RXh0ZW5zaW9uUGFyc2VyLmNwcCBiL1NvdXJjZS9XZWJDb3Jl
L2NvbnRlbnRleHRlbnNpb25zL0NvbnRlbnRFeHRlbnNpb25QYXJzZXIuY3BwCmluZGV4IDAyMjY1
MmIuLjdiZjU2ZTcgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2NvbnRlbnRleHRlbnNpb25z
L0NvbnRlbnRFeHRlbnNpb25QYXJzZXIuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2NvbnRlbnRl
eHRlbnNpb25zL0NvbnRlbnRFeHRlbnNpb25QYXJzZXIuY3BwCkBAIC0yNzcsNyArMjc3LDcgQEAg
c3RkOjplcnJvcl9jb2RlIHBhcnNlUnVsZUxpc3QoY29uc3QgU3RyaW5nJiBydWxlcywgVmVjdG9y
PENvbnRlbnRFeHRlbnNpb25SdWxlPiYKICAgICBFeGVjU3RhdGUqIGV4ZWMgPSBnbG9iYWxPYmpl
Y3QtPmdsb2JhbEV4ZWMoKTsKICAgICBhdXRvIGVycm9yID0gbG9hZEVuY29kZWRSdWxlcygqZXhl
YywgcnVsZXMsIHJ1bGVMaXN0KTsKIAotICAgIHZtLmNsZWFyKCk7CisgICAgdm0gPSBudWxscHRy
OwogCiAgICAgaWYgKGVycm9yKQogICAgICAgICByZXR1cm4gZXJyb3I7CmRpZmYgLS1naXQgYS9T
b3VyY2UvV2ViQ29yZS9jc3MvQ1NTUGFyc2VyLmNwcCBiL1NvdXJjZS9XZWJDb3JlL2Nzcy9DU1NQ
YXJzZXIuY3BwCmluZGV4IDVlOGYwNWMuLmZmNTIyNDcgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJD
b3JlL2Nzcy9DU1NQYXJzZXIuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2Nzcy9DU1NQYXJzZXIu
Y3BwCkBAIC00NTAyLDE1ICs0NTAyLDE1IEBAIHZvaWQgQ1NTUGFyc2VyOjpwYXJzZUZpbGxQb3Np
dGlvbihDU1NQYXJzZXJWYWx1ZUxpc3QmIHZhbHVlTGlzdCwgUmVmUHRyPENTU1ZhbHVlCiAgICAg
aWYgKHZhbHVlMikKICAgICAgICAgdmFsdWVMaXN0Lm5leHQoKTsKICAgICBlbHNlIHsKLSAgICAg
ICAgdmFsdWUxLmNsZWFyKCk7CisgICAgICAgIHZhbHVlMSA9IG51bGxwdHI7CiAgICAgICAgIHJl
dHVybjsKICAgICB9CiAKICAgICBSZWZQdHI8Q1NTUHJpbWl0aXZlVmFsdWU+IHBhcnNlZFZhbHVl
MSA9IGRvd25jYXN0PENTU1ByaW1pdGl2ZVZhbHVlPih2YWx1ZTEuZ2V0KCkpOwogICAgIFJlZlB0
cjxDU1NQcmltaXRpdmVWYWx1ZT4gcGFyc2VkVmFsdWUyID0gZG93bmNhc3Q8Q1NTUHJpbWl0aXZl
VmFsdWU+KHZhbHVlMi5nZXQoKSk7CiAKLSAgICB2YWx1ZTEuY2xlYXIoKTsKLSAgICB2YWx1ZTIu
Y2xlYXIoKTsKKyAgICB2YWx1ZTEgPSBudWxscHRyOworICAgIHZhbHVlMiA9IG51bGxwdHI7CiAK
ICAgICAvLyBQZXIgQ1NTMyBzeW50YXgsIDxwb3NpdGlvbj4gY2FuJ3QgaGF2ZSAnY2VudGVyJyBh
cyBpdHMgc2Vjb25kIGtleXdvcmQgYXMgd2UgaGF2ZSBtb3JlIGFyZ3VtZW50cyB0byBmb2xsb3cu
CiAgICAgaWYgKHBhcnNlZFZhbHVlMi0+Z2V0VmFsdWVJRCgpID09IENTU1ZhbHVlQ2VudGVyKQpA
QCAtNDU0OSw3ICs0NTQ5LDcgQEAgdm9pZCBDU1NQYXJzZXI6OnBhcnNlMlZhbHVlc0ZpbGxQb3Np
dGlvbihDU1NQYXJzZXJWYWx1ZUxpc3QmIHZhbHVlTGlzdCwgUmVmUHRyPEMKICAgICAgICAgICAg
IHZhbHVlTGlzdC5uZXh0KCk7CiAgICAgICAgIGVsc2UgewogICAgICAgICAgICAgaWYgKCFpblNo
b3J0aGFuZCgpKSB7Ci0gICAgICAgICAgICAgICAgdmFsdWUxLmNsZWFyKCk7CisgICAgICAgICAg
ICAgICAgdmFsdWUxID0gbnVsbHB0cjsKICAgICAgICAgICAgICAgICByZXR1cm47CiAgICAgICAg
ICAgICB9CiAgICAgICAgIH0KQEAgLTEyMTg0LDcgKzEyMTg0LDcgQEAgUGFzc1JlZlB0cjxDU1NS
dWxlU291cmNlRGF0YT4gQ1NTUGFyc2VyOjpwb3BSdWxlRGF0YSgpCiAgICAgICAgIHJldHVybiBu
dWxscHRyOwogCiAgICAgQVNTRVJUKCFtX2N1cnJlbnRSdWxlRGF0YVN0YWNrLT5pc0VtcHR5KCkp
OwotICAgIG1fY3VycmVudFJ1bGVEYXRhLmNsZWFyKCk7CisgICAgbV9jdXJyZW50UnVsZURhdGEg
PSBudWxscHRyOwogICAgIFJlZlB0cjxDU1NSdWxlU291cmNlRGF0YT4gZGF0YSA9IG1fY3VycmVu
dFJ1bGVEYXRhU3RhY2stPmxhc3QoKTsKICAgICBtX2N1cnJlbnRSdWxlRGF0YVN0YWNrLT5yZW1v
dmVMYXN0KCk7CiAgICAgcmV0dXJuIGRhdGEucmVsZWFzZSgpOwpAQCAtMTI2MDUsNyArMTI2MDUs
NyBAQCB2b2lkIENTU1BhcnNlcjo6bWFya1J1bGVCb2R5U3RhcnQoKQogewogICAgIGlmICghaXNF
eHRyYWN0aW5nU291cmNlRGF0YSgpKQogICAgICAgICByZXR1cm47Ci0gICAgbV9jdXJyZW50UnVs
ZURhdGEuY2xlYXIoKTsKKyAgICBtX2N1cnJlbnRSdWxlRGF0YSA9IG51bGxwdHI7CiAgICAgdW5z
aWduZWQgb2Zmc2V0ID0gdG9rZW5TdGFydE9mZnNldCgpOwogICAgIGlmICh0b2tlblN0YXJ0Q2hh
cigpID09ICd7JykKICAgICAgICAgKytvZmZzZXQ7IC8vIFNraXAgdGhlIHJ1bGUgYm9keSBvcGVu
aW5nIGJyYWNlLgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvZG9tL0RvY3VtZW50LmNwcCBi
L1NvdXJjZS9XZWJDb3JlL2RvbS9Eb2N1bWVudC5jcHAKaW5kZXggOGQ2ZTk2YS4uYWEwNGFkNiAx
MDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvZG9tL0RvY3VtZW50LmNwcAorKysgYi9Tb3VyY2Uv
V2ViQ29yZS9kb20vRG9jdW1lbnQuY3BwCkBAIC0yNDI0LDcgKzI0MjQsNyBAQCB2b2lkIERvY3Vt
ZW50OjpkZXRhY2hQYXJzZXIoKQogICAgIGlmICghbV9wYXJzZXIpCiAgICAgICAgIHJldHVybjsK
ICAgICBtX3BhcnNlci0+ZGV0YWNoKCk7Ci0gICAgbV9wYXJzZXIuY2xlYXIoKTsKKyAgICBtX3Bh
cnNlciA9IG51bGxwdHI7CiB9CiAKIHZvaWQgRG9jdW1lbnQ6OmNhbmNlbFBhcnNpbmcoKQpAQCAt
NTg4Miw3ICs1ODgyLDcgQEAgdm9pZCBEb2N1bWVudDo6Y2xlYXJTY3JpcHRlZEFuaW1hdGlvbkNv
bnRyb2xsZXIoKQogICAgIC8vIEZJWE1FOiBjb25zaWRlciB1c2luZyBBY3RpdmVET01PYmplY3Qu
CiAgICAgaWYgKG1fc2NyaXB0ZWRBbmltYXRpb25Db250cm9sbGVyKQogICAgICAgICBtX3Njcmlw
dGVkQW5pbWF0aW9uQ29udHJvbGxlci0+Y2xlYXJEb2N1bWVudFBvaW50ZXIoKTsKLSAgICBtX3Nj
cmlwdGVkQW5pbWF0aW9uQ29udHJvbGxlci5jbGVhcigpOworICAgIG1fc2NyaXB0ZWRBbmltYXRp
b25Db250cm9sbGVyID0gbnVsbHB0cjsKIH0KICNlbmRpZgogICAgIApAQCAtNjMwMCw3ICs2MzAw
LDcgQEAgdm9pZCBEb2N1bWVudDo6dXBkYXRlSG92ZXJBY3RpdmVTdGF0ZShjb25zdCBIaXRUZXN0
UmVxdWVzdCYgcmVxdWVzdCwgRWxlbWVudCogaW4KICAgICAgICAgICAgIGN1cnItPnNldEFjdGl2
ZShmYWxzZSk7CiAgICAgICAgICAgICBtX3VzZXJBY3Rpb25FbGVtZW50cy5zZXRJbkFjdGl2ZUNo
YWluKGN1cnIsIGZhbHNlKTsKICAgICAgICAgfQotICAgICAgICBtX2FjdGl2ZUVsZW1lbnQuY2xl
YXIoKTsKKyAgICAgICAgbV9hY3RpdmVFbGVtZW50ID0gbnVsbHB0cjsKICAgICB9IGVsc2Ugewog
ICAgICAgICBFbGVtZW50KiBuZXdBY3RpdmVFbGVtZW50ID0gaW5uZXJFbGVtZW50SW5Eb2N1bWVu
dDsKICAgICAgICAgaWYgKCFvbGRBY3RpdmVFbGVtZW50ICYmIG5ld0FjdGl2ZUVsZW1lbnQgJiYg
cmVxdWVzdC5hY3RpdmUoKSAmJiAhcmVxdWVzdC50b3VjaE1vdmUoKSkgewpkaWZmIC0tZ2l0IGEv
U291cmNlL1dlYkNvcmUvZG9tL0RvY3VtZW50TWFya2VyLmggYi9Tb3VyY2UvV2ViQ29yZS9kb20v
RG9jdW1lbnRNYXJrZXIuaAppbmRleCA0Nzk0OWZlLi5lYzUyNDg5IDEwMDY0NAotLS0gYS9Tb3Vy
Y2UvV2ViQ29yZS9kb20vRG9jdW1lbnRNYXJrZXIuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9kb20v
RG9jdW1lbnRNYXJrZXIuaApAQCAtMTMxLDcgKzEzMSw3IEBAIHB1YmxpYzoKICAgICBEb2N1bWVu
dE1hcmtlckRldGFpbHMqIGRldGFpbHMoKSBjb25zdDsKIAogICAgIHZvaWQgc2V0QWN0aXZlTWF0
Y2goYm9vbCk7Ci0gICAgdm9pZCBjbGVhckRldGFpbHMoKSB7IG1fZGV0YWlscy5jbGVhcigpOyB9
CisgICAgdm9pZCBjbGVhckRldGFpbHMoKSB7IG1fZGV0YWlscyA9IG51bGxwdHI7IH0KIAogICAg
IC8vIE9mZnNldCBtb2RpZmljYXRpb25zIGFyZSBkb25lIGJ5IERvY3VtZW50TWFya2VyQ29udHJv
bGxlci4KICAgICAvLyBPdGhlciBjbGFzc2VzIHNob3VsZCBub3QgY2FsbCBmb2xsb3dpbmcgc2V0
dGVycy4KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2RvbS9FbGVtZW50LmNwcCBiL1NvdXJj
ZS9XZWJDb3JlL2RvbS9FbGVtZW50LmNwcAppbmRleCBjY2M2MzlhLi5jMGY0N2FiIDEwMDY0NAot
LS0gYS9Tb3VyY2UvV2ViQ29yZS9kb20vRWxlbWVudC5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUv
ZG9tL0VsZW1lbnQuY3BwCkBAIC0zMjA3LDcgKzMyMDcsNyBAQCB2b2lkIEVsZW1lbnQ6OmNsb25l
QXR0cmlidXRlc0Zyb21FbGVtZW50KGNvbnN0IEVsZW1lbnQmIG90aGVyKQogCiAgICAgb3RoZXIu
c3luY2hyb25pemVBbGxBdHRyaWJ1dGVzKCk7CiAgICAgaWYgKCFvdGhlci5tX2VsZW1lbnREYXRh
KSB7Ci0gICAgICAgIG1fZWxlbWVudERhdGEuY2xlYXIoKTsKKyAgICAgICAgbV9lbGVtZW50RGF0
YSA9IG51bGxwdHI7CiAgICAgICAgIHJldHVybjsKICAgICB9CiAKZGlmZiAtLWdpdCBhL1NvdXJj
ZS9XZWJDb3JlL2RvbS9Ob2RlSXRlcmF0b3IuY3BwIGIvU291cmNlL1dlYkNvcmUvZG9tL05vZGVJ
dGVyYXRvci5jcHAKaW5kZXggNThiMmI5Zi4uNjFhZTI4ZiAxMDA2NDQKLS0tIGEvU291cmNlL1dl
YkNvcmUvZG9tL05vZGVJdGVyYXRvci5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvZG9tL05vZGVJ
dGVyYXRvci5jcHAKQEAgLTQ1LDcgKzQ1LDcgQEAgTm9kZUl0ZXJhdG9yOjpOb2RlUG9pbnRlcjo6
Tm9kZVBvaW50ZXIoUGFzc1JlZlB0cjxOb2RlPiBuLCBib29sIGIpCiAKIHZvaWQgTm9kZUl0ZXJh
dG9yOjpOb2RlUG9pbnRlcjo6Y2xlYXIoKQogewotICAgIG5vZGUuY2xlYXIoKTsKKyAgICBub2Rl
ID0gbnVsbHB0cjsKIH0KIAogYm9vbCBOb2RlSXRlcmF0b3I6Ok5vZGVQb2ludGVyOjptb3ZlVG9O
ZXh0KE5vZGUqIHJvb3QpCkBAIC0xNTEsNyArMTUxLDcgQEAgdm9pZCBOb2RlSXRlcmF0b3I6OmRl
dGFjaCgpCiB7CiAgICAgcm9vdCgpLT5kb2N1bWVudCgpLmRldGFjaE5vZGVJdGVyYXRvcih0aGlz
KTsKICAgICBtX2RldGFjaGVkID0gdHJ1ZTsKLSAgICBtX3JlZmVyZW5jZU5vZGUubm9kZS5jbGVh
cigpOworICAgIG1fcmVmZXJlbmNlTm9kZS5ub2RlID0gbnVsbHB0cjsKIH0KIAogdm9pZCBOb2Rl
SXRlcmF0b3I6Om5vZGVXaWxsQmVSZW1vdmVkKE5vZGUmIHJlbW92ZWROb2RlKQpkaWZmIC0tZ2l0
IGEvU291cmNlL1dlYkNvcmUvZG9tL1Bvc2l0aW9uLmggYi9Tb3VyY2UvV2ViQ29yZS9kb20vUG9z
aXRpb24uaAppbmRleCAwZjMxNmRhLi42MDNlODhmIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29y
ZS9kb20vUG9zaXRpb24uaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9kb20vUG9zaXRpb24uaApAQCAt
OTIsNyArOTIsNyBAQCBwdWJsaWM6CiAKICAgICBBbmNob3JUeXBlIGFuY2hvclR5cGUoKSBjb25z
dCB7IHJldHVybiBzdGF0aWNfY2FzdDxBbmNob3JUeXBlPihtX2FuY2hvclR5cGUpOyB9CiAKLSAg
ICB2b2lkIGNsZWFyKCkgeyBtX2FuY2hvck5vZGUuY2xlYXIoKTsgbV9vZmZzZXQgPSAwOyBtX2Fu
Y2hvclR5cGUgPSBQb3NpdGlvbklzT2Zmc2V0SW5BbmNob3I7IG1faXNMZWdhY3lFZGl0aW5nUG9z
aXRpb24gPSBmYWxzZTsgfQorICAgIHZvaWQgY2xlYXIoKSB7IG1fYW5jaG9yTm9kZSA9IG51bGxw
dHI7IG1fb2Zmc2V0ID0gMDsgbV9hbmNob3JUeXBlID0gUG9zaXRpb25Jc09mZnNldEluQW5jaG9y
OyBtX2lzTGVnYWN5RWRpdGluZ1Bvc2l0aW9uID0gZmFsc2U7IH0KIAogICAgIC8vIFRoZXNlIGFy
ZSBhbHdheXMgRE9NIGNvbXBsaWFudCB2YWx1ZXMuICBFZGl0aW5nIHBvc2l0aW9ucyBsaWtlIFtp
bWcsIDBdIChha2EgW2ltZywgYmVmb3JlXSkKICAgICAvLyB3aWxsIHJldHVybiBpbWctPnBhcmVu
dE5vZGUoKSBhbmQgaW1nLT5jb21wdXRlTm9kZUluZGV4KCkgZnJvbSB0aGVzZSBmdW5jdGlvbnMu
CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9kb20vUmFuZ2VCb3VuZGFyeVBvaW50LmggYi9T
b3VyY2UvV2ViQ29yZS9kb20vUmFuZ2VCb3VuZGFyeVBvaW50LmgKaW5kZXggYjA0ZGMwOC4uOGM3
OTliMyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvZG9tL1JhbmdlQm91bmRhcnlQb2ludC5o
CisrKyBiL1NvdXJjZS9XZWJDb3JlL2RvbS9SYW5nZUJvdW5kYXJ5UG9pbnQuaApAQCAtMTEyLDkg
KzExMiw5IEBAIGlubGluZSBpbnQgUmFuZ2VCb3VuZGFyeVBvaW50OjpvZmZzZXQoKSBjb25zdAog
CiBpbmxpbmUgdm9pZCBSYW5nZUJvdW5kYXJ5UG9pbnQ6OmNsZWFyKCkKIHsKLSAgICBtX2NvbnRh
aW5lck5vZGUuY2xlYXIoKTsKKyAgICBtX2NvbnRhaW5lck5vZGUgPSBudWxscHRyOwogICAgIG1f
b2Zmc2V0SW5Db250YWluZXIgPSAwOwotICAgIG1fY2hpbGRCZWZvcmVCb3VuZGFyeSA9IDA7Cisg
ICAgbV9jaGlsZEJlZm9yZUJvdW5kYXJ5ID0gbnVsbHB0cjsKIH0KIAogaW5saW5lIHZvaWQgUmFu
Z2VCb3VuZGFyeVBvaW50OjpzZXQoUGFzc1JlZlB0cjxOb2RlPiBjb250YWluZXIsIGludCBvZmZz
ZXQsIE5vZGUqIGNoaWxkQmVmb3JlKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvZG9tL1Nw
YWNlU3BsaXRTdHJpbmcuaCBiL1NvdXJjZS9XZWJDb3JlL2RvbS9TcGFjZVNwbGl0U3RyaW5nLmgK
aW5kZXggZWY1NjgwMS4uZjg1Yjk2NCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvZG9tL1Nw
YWNlU3BsaXRTdHJpbmcuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9kb20vU3BhY2VTcGxpdFN0cmlu
Zy5oCkBAIC0xMDUsNyArMTA1LDcgQEAgcHVibGljOgogICAgIGJvb2wgb3BlcmF0b3IhPShjb25z
dCBTcGFjZVNwbGl0U3RyaW5nJiBvdGhlcikgY29uc3QgeyByZXR1cm4gbV9kYXRhICE9IG90aGVy
Lm1fZGF0YTsgfQogCiAgICAgdm9pZCBzZXQoY29uc3QgQXRvbWljU3RyaW5nJiwgYm9vbCBzaG91
bGRGb2xkQ2FzZSk7Ci0gICAgdm9pZCBjbGVhcigpIHsgbV9kYXRhLmNsZWFyKCk7IH0KKyAgICB2
b2lkIGNsZWFyKCkgeyBtX2RhdGEgPSBudWxscHRyOyB9CiAKICAgICBib29sIGNvbnRhaW5zKGNv
bnN0IEF0b21pY1N0cmluZyYgc3RyaW5nKSBjb25zdCB7IHJldHVybiBtX2RhdGEgJiYgbV9kYXRh
LT5jb250YWlucyhzdHJpbmcpOyB9CiAgICAgYm9vbCBjb250YWluc0FsbChjb25zdCBTcGFjZVNw
bGl0U3RyaW5nJiBuYW1lcykgY29uc3QgeyByZXR1cm4gIW5hbWVzLm1fZGF0YSB8fCAobV9kYXRh
ICYmIG1fZGF0YS0+Y29udGFpbnNBbGwoKm5hbWVzLm1fZGF0YSkpOyB9CmRpZmYgLS1naXQgYS9T
b3VyY2UvV2ViQ29yZS9kb20vU3R5bGVkRWxlbWVudC5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9kb20v
U3R5bGVkRWxlbWVudC5jcHAKaW5kZXggNWIyNjk2NmIuLjBlYzBkN2YgMTAwNjQ0Ci0tLSBhL1Nv
dXJjZS9XZWJDb3JlL2RvbS9TdHlsZWRFbGVtZW50LmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9k
b20vU3R5bGVkRWxlbWVudC5jcHAKQEAgLTE4NSw3ICsxODUsNyBAQCBpbmxpbmUgdm9pZCBTdHls
ZWRFbGVtZW50OjpzZXRJbmxpbmVTdHlsZUZyb21TdHJpbmcoY29uc3QgQXRvbWljU3RyaW5nJiBu
ZXdTdHlsZQogICAgIC8vIFdlIHJlY29uc3RydWN0IHRoZSBwcm9wZXJ0eSBzZXQgaW5zdGVhZCBv
ZiBtdXRhdGluZyBpZiB0aGVyZSBpcyBubyBDU1NPTSB3cmFwcGVyLgogICAgIC8vIFRoaXMgbWFr
ZXMgd3JhcHBlcmxlc3MgcHJvcGVydHkgc2V0cyBpbW11dGFibGUgYW5kIHNvIGNhY2hlYWJsZS4K
ICAgICBpZiAoaW5saW5lU3R5bGUgJiYgIWlzPE11dGFibGVTdHlsZVByb3BlcnRpZXM+KCppbmxp
bmVTdHlsZSkpCi0gICAgICAgIGlubGluZVN0eWxlLmNsZWFyKCk7CisgICAgICAgIGlubGluZVN0
eWxlID0gbnVsbHB0cjsKIAogICAgIGlmICghaW5saW5lU3R5bGUpCiAgICAgICAgIGlubGluZVN0
eWxlID0gQ1NTUGFyc2VyOjpwYXJzZUlubGluZVN0eWxlRGVjbGFyYXRpb24obmV3U3R5bGVTdHJp
bmcsIHRoaXMpOwpAQCAtMjAyLDcgKzIwMiw3IEBAIHZvaWQgU3R5bGVkRWxlbWVudDo6c3R5bGVB
dHRyaWJ1dGVDaGFuZ2VkKGNvbnN0IEF0b21pY1N0cmluZyYgbmV3U3R5bGVTdHJpbmcsIEF0CiAg
ICAgaWYgKG5ld1N0eWxlU3RyaW5nLmlzTnVsbCgpKSB7CiAgICAgICAgIGlmIChQcm9wZXJ0eVNl
dENTU1N0eWxlRGVjbGFyYXRpb24qIGNzc29tV3JhcHBlciA9IGlubGluZVN0eWxlQ1NTT01XcmFw
cGVyKCkpCiAgICAgICAgICAgICBjc3NvbVdyYXBwZXItPmNsZWFyUGFyZW50RWxlbWVudCgpOwot
ICAgICAgICBlbnN1cmVVbmlxdWVFbGVtZW50RGF0YSgpLm1faW5saW5lU3R5bGUuY2xlYXIoKTsK
KyAgICAgICAgZW5zdXJlVW5pcXVlRWxlbWVudERhdGEoKS5tX2lubGluZVN0eWxlID0gbnVsbHB0
cjsKICAgICB9IGVsc2UgaWYgKHJlYXNvbiA9PSBNb2RpZmllZEJ5Q2xvbmluZyB8fCBkb2N1bWVu
dCgpLmNvbnRlbnRTZWN1cml0eVBvbGljeSgpLT5hbGxvd0lubGluZVN0eWxlKGRvY3VtZW50KCku
dXJsKCksIHN0YXJ0TGluZU51bWJlcikpCiAgICAgICAgIHNldElubGluZVN0eWxlRnJvbVN0cmlu
ZyhuZXdTdHlsZVN0cmluZyk7CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2VkaXRpbmcv
QWx0ZXJuYXRpdmVUZXh0Q29udHJvbGxlci5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9lZGl0aW5nL0Fs
dGVybmF0aXZlVGV4dENvbnRyb2xsZXIuY3BwCmluZGV4IGY1YmM5NDguLjI3NWU0MzAgMTAwNjQ0
Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2VkaXRpbmcvQWx0ZXJuYXRpdmVUZXh0Q29udHJvbGxlci5j
cHAKKysrIGIvU291cmNlL1dlYkNvcmUvZWRpdGluZy9BbHRlcm5hdGl2ZVRleHRDb250cm9sbGVy
LmNwcApAQCAtMTQ3LDcgKzE0Nyw3IEBAIHZvaWQgQWx0ZXJuYXRpdmVUZXh0Q29udHJvbGxlcjo6
c3RhcnRBbHRlcm5hdGl2ZVRleHRVSVRpbWVyKEFsdGVybmF0aXZlVGV4dFR5cGUKIAogICAgIC8v
IElmIHR5cGUgaXMgUGFuZWxUeXBlUmV2ZXJzaW9uLCB0aGVuIHRoZSBuZXcgcmFuZ2UgaGFzIGJl
ZW4gc2V0LiBTbyB3ZSBzaG91bGRuJ3QgY2xlYXIgaXQuCiAgICAgaWYgKHR5cGUgPT0gQWx0ZXJu
YXRpdmVUZXh0VHlwZUNvcnJlY3Rpb24pCi0gICAgICAgIG1fYWx0ZXJuYXRpdmVUZXh0SW5mby5y
YW5nZVdpdGhBbHRlcm5hdGl2ZS5jbGVhcigpOworICAgICAgICBtX2FsdGVybmF0aXZlVGV4dElu
Zm8ucmFuZ2VXaXRoQWx0ZXJuYXRpdmUgPSBudWxscHRyOwogICAgIG1fYWx0ZXJuYXRpdmVUZXh0
SW5mby50eXBlID0gdHlwZTsKICAgICBtX3RpbWVyLnN0YXJ0T25lU2hvdChjb3JyZWN0aW9uUGFu
ZWxUaW1lckludGVydmFsKTsKIH0KQEAgLTE1NSw3ICsxNTUsNyBAQCB2b2lkIEFsdGVybmF0aXZl
VGV4dENvbnRyb2xsZXI6OnN0YXJ0QWx0ZXJuYXRpdmVUZXh0VUlUaW1lcihBbHRlcm5hdGl2ZVRl
eHRUeXBlCiB2b2lkIEFsdGVybmF0aXZlVGV4dENvbnRyb2xsZXI6OnN0b3BBbHRlcm5hdGl2ZVRl
eHRVSVRpbWVyKCkKIHsKICAgICBtX3RpbWVyLnN0b3AoKTsKLSAgICBtX2FsdGVybmF0aXZlVGV4
dEluZm8ucmFuZ2VXaXRoQWx0ZXJuYXRpdmUuY2xlYXIoKTsKKyAgICBtX2FsdGVybmF0aXZlVGV4
dEluZm8ucmFuZ2VXaXRoQWx0ZXJuYXRpdmUgPSBudWxscHRyOwogfQogCiB2b2lkIEFsdGVybmF0
aXZlVGV4dENvbnRyb2xsZXI6OnN0b3BQZW5kaW5nQ29ycmVjdGlvbihjb25zdCBWaXNpYmxlU2Vs
ZWN0aW9uJiBvbGRTZWxlY3Rpb24pCkBAIC0xODMsNyArMTgzLDcgQEAgdm9pZCBBbHRlcm5hdGl2
ZVRleHRDb250cm9sbGVyOjphcHBseVBlbmRpbmdDb3JyZWN0aW9uKGNvbnN0IFZpc2libGVTZWxl
Y3Rpb24mIHMKICAgICBpZiAoZG9BcHBseUNvcnJlY3Rpb24pCiAgICAgICAgIGhhbmRsZUFsdGVy
bmF0aXZlVGV4dFVJUmVzdWx0KGRpc21pc3NTb29uKFJlYXNvbkZvckRpc21pc3NpbmdBbHRlcm5h
dGl2ZVRleHRBY2NlcHRlZCkpOyAKICAgICBlbHNlCi0gICAgICAgIG1fYWx0ZXJuYXRpdmVUZXh0
SW5mby5yYW5nZVdpdGhBbHRlcm5hdGl2ZS5jbGVhcigpOworICAgICAgICBtX2FsdGVybmF0aXZl
VGV4dEluZm8ucmFuZ2VXaXRoQWx0ZXJuYXRpdmUgPSBudWxscHRyOwogfQogCiBib29sIEFsdGVy
bmF0aXZlVGV4dENvbnRyb2xsZXI6Omhhc1BlbmRpbmdDb3JyZWN0aW9uKCkgY29uc3QKQEAgLTM1
OSw3ICszNTksNyBAQCB2b2lkIEFsdGVybmF0aXZlVGV4dENvbnRyb2xsZXI6OnRpbWVyRmlyZWQo
KQogICAgICAgICBWZWN0b3I8U3RyaW5nPiBzdWdnZXN0aW9uczsKICAgICAgICAgdGV4dENoZWNr
ZXIoKS0+Z2V0R3Vlc3Nlc0ZvcldvcmQobV9hbHRlcm5hdGl2ZVRleHRJbmZvLm9yaWdpbmFsVGV4
dCwgcGFyYWdyYXBoVGV4dCwgc3VnZ2VzdGlvbnMpOwogICAgICAgICBpZiAoc3VnZ2VzdGlvbnMu
aXNFbXB0eSgpKSB7Ci0gICAgICAgICAgICBtX2FsdGVybmF0aXZlVGV4dEluZm8ucmFuZ2VXaXRo
QWx0ZXJuYXRpdmUuY2xlYXIoKTsKKyAgICAgICAgICAgIG1fYWx0ZXJuYXRpdmVUZXh0SW5mby5y
YW5nZVdpdGhBbHRlcm5hdGl2ZSA9IG51bGxwdHI7CiAgICAgICAgICAgICBicmVhazsKICAgICAg
ICAgfQogICAgICAgICBTdHJpbmcgdG9wU3VnZ2VzdGlvbiA9IHN1Z2dlc3Rpb25zLmZpcnN0KCk7
CkBAIC00MjIsNyArNDIyLDcgQEAgdm9pZCBBbHRlcm5hdGl2ZVRleHRDb250cm9sbGVyOjpoYW5k
bGVBbHRlcm5hdGl2ZVRleHRVSVJlc3VsdChjb25zdCBTdHJpbmcmIHJlc3UKICAgICAgICAgYnJl
YWs7CiAgICAgfQogCi0gICAgbV9hbHRlcm5hdGl2ZVRleHRJbmZvLnJhbmdlV2l0aEFsdGVybmF0
aXZlLmNsZWFyKCk7CisgICAgbV9hbHRlcm5hdGl2ZVRleHRJbmZvLnJhbmdlV2l0aEFsdGVybmF0
aXZlID0gbnVsbHB0cjsKIH0KIAogYm9vbCBBbHRlcm5hdGl2ZVRleHRDb250cm9sbGVyOjppc0F1
dG9tYXRpY1NwZWxsaW5nQ29ycmVjdGlvbkVuYWJsZWQoKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dl
YkNvcmUvZWRpdGluZy9FZGl0aW5nU3R5bGUuY3BwIGIvU291cmNlL1dlYkNvcmUvZWRpdGluZy9F
ZGl0aW5nU3R5bGUuY3BwCmluZGV4IDVjZjEyY2QuLjE3YWFiMjkgMTAwNjQ0Ci0tLSBhL1NvdXJj
ZS9XZWJDb3JlL2VkaXRpbmcvRWRpdGluZ1N0eWxlLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9l
ZGl0aW5nL0VkaXRpbmdTdHlsZS5jcHAKQEAgLTYzOCw3ICs2MzgsNyBAQCB2b2lkIEVkaXRpbmdT
dHlsZTo6b3ZlcnJpZGVUeXBpbmdTdHlsZUF0KGNvbnN0IEVkaXRpbmdTdHlsZSYgc3R5bGUsIGNv
bnN0IFBvc2l0aQogCiB2b2lkIEVkaXRpbmdTdHlsZTo6Y2xlYXIoKQogewotICAgIG1fbXV0YWJs
ZVN0eWxlLmNsZWFyKCk7CisgICAgbV9tdXRhYmxlU3R5bGUgPSBudWxscHRyOwogICAgIG1fc2hv
dWxkVXNlRml4ZWREZWZhdWx0Rm9udFNpemUgPSBmYWxzZTsKICAgICBtX2ZvbnRTaXplRGVsdGEg
PSBOb0ZvbnREZWx0YTsKICAgICBzZXRVbmRlcmxpbmVDaGFuZ2UoVGV4dERlY29yYXRpb25DaGFu
Z2U6Ok5vbmUpOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvZWRpdGluZy9FZGl0b3IuY3Bw
IGIvU291cmNlL1dlYkNvcmUvZWRpdGluZy9FZGl0b3IuY3BwCmluZGV4IGEzYzNjOWMuLmIzMWNi
MzMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2VkaXRpbmcvRWRpdG9yLmNwcAorKysgYi9T
b3VyY2UvV2ViQ29yZS9lZGl0aW5nL0VkaXRvci5jcHAKQEAgLTgyOCw3ICs4MjgsNyBAQCB2b2lk
IEVkaXRvcjo6cmVtb3ZlRm9ybWF0dGluZ0FuZFN0eWxlKCkKIAogdm9pZCBFZGl0b3I6OmNsZWFy
TGFzdEVkaXRDb21tYW5kKCkgCiB7Ci0gICAgbV9sYXN0RWRpdENvbW1hbmQuY2xlYXIoKTsKKyAg
ICBtX2xhc3RFZGl0Q29tbWFuZCA9IG51bGxwdHI7CiB9CiAjaWYgUExBVEZPUk0oSU9TKQogLy8g
SWYgdGhlIHNlbGVjdGlvbiBpcyBhZGp1c3RlZCBmcm9tIFVJS2l0IHdpdGhvdXQgY2xvc2luZyB0
aGUgdHlwaW5nLCB0aGUgdHlwaW5nIGNvbW1hbmQgbWF5CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2Vi
Q29yZS9lZGl0aW5nL0ZyYW1lU2VsZWN0aW9uLmNwcCBiL1NvdXJjZS9XZWJDb3JlL2VkaXRpbmcv
RnJhbWVTZWxlY3Rpb24uY3BwCmluZGV4IDllZTAwZjIuLjVkNjFhNTYgMTAwNjQ0Ci0tLSBhL1Nv
dXJjZS9XZWJDb3JlL2VkaXRpbmcvRnJhbWVTZWxlY3Rpb24uY3BwCisrKyBiL1NvdXJjZS9XZWJD
b3JlL2VkaXRpbmcvRnJhbWVTZWxlY3Rpb24uY3BwCkBAIC0xMzU5LDcgKzEzNTksNyBAQCB2b2lk
IEZyYW1lU2VsZWN0aW9uOjpwcmVwYXJlRm9yRGVzdHJ1Y3Rpb24oKQogICAgICAgICB2aWV3LT5j
bGVhclNlbGVjdGlvbigpOwogCiAgICAgc2V0U2VsZWN0aW9uV2l0aG91dFVwZGF0aW5nQXBwZWFy
YW5jZShWaXNpYmxlU2VsZWN0aW9uKCksIGRlZmF1bHRTZXRTZWxlY3Rpb25PcHRpb25zKCksIEFs
aWduQ3Vyc29yT25TY3JvbGxJZk5lZWRlZCwgQ2hhcmFjdGVyR3JhbnVsYXJpdHkpOwotICAgIG1f
cHJldmlvdXNDYXJldE5vZGUuY2xlYXIoKTsKKyAgICBtX3ByZXZpb3VzQ2FyZXROb2RlID0gbnVs
bHB0cjsKIH0KIAogdm9pZCBGcmFtZVNlbGVjdGlvbjo6c2V0U3RhcnQoY29uc3QgVmlzaWJsZVBv
c2l0aW9uICZwb3MsIEVVc2VyVHJpZ2dlcmVkIHRyaWdnZXIpCmRpZmYgLS1naXQgYS9Tb3VyY2Uv
V2ViQ29yZS9lZGl0aW5nL0ZyYW1lU2VsZWN0aW9uLmggYi9Tb3VyY2UvV2ViQ29yZS9lZGl0aW5n
L0ZyYW1lU2VsZWN0aW9uLmgKaW5kZXggNzc4M2I2YS4uMGNmMDQwNiAxMDA2NDQKLS0tIGEvU291
cmNlL1dlYkNvcmUvZWRpdGluZy9GcmFtZVNlbGVjdGlvbi5oCisrKyBiL1NvdXJjZS9XZWJDb3Jl
L2VkaXRpbmcvRnJhbWVTZWxlY3Rpb24uaApAQCAtMzU5LDcgKzM1OSw3IEBAIGlubGluZSBFZGl0
aW5nU3R5bGUqIEZyYW1lU2VsZWN0aW9uOjp0eXBpbmdTdHlsZSgpIGNvbnN0CiAKIGlubGluZSB2
b2lkIEZyYW1lU2VsZWN0aW9uOjpjbGVhclR5cGluZ1N0eWxlKCkKIHsKLSAgICBtX3R5cGluZ1N0
eWxlLmNsZWFyKCk7CisgICAgbV90eXBpbmdTdHlsZSA9IG51bGxwdHI7CiB9CiAKIGlubGluZSB2
b2lkIEZyYW1lU2VsZWN0aW9uOjpzZXRUeXBpbmdTdHlsZShQYXNzUmVmUHRyPEVkaXRpbmdTdHls
ZT4gc3R5bGUpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9lZGl0aW5nL1NwZWxsQ2hlY2tl
ci5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9lZGl0aW5nL1NwZWxsQ2hlY2tlci5jcHAKaW5kZXggOGI0
ZDU0MS4uMDNmMmU1MSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvZWRpdGluZy9TcGVsbENo
ZWNrZXIuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2VkaXRpbmcvU3BlbGxDaGVja2VyLmNwcApA
QCAtMjE0LDcgKzIxNCw3IEBAIHZvaWQgU3BlbGxDaGVja2VyOjpkaWRDaGVjayhpbnQgc2VxdWVu
Y2UsIGNvbnN0IFZlY3RvcjxUZXh0Q2hlY2tpbmdSZXN1bHQ+JiByZXN1CiAgICAgaWYgKG1fbGFz
dFByb2Nlc3NlZFNlcXVlbmNlIDwgc2VxdWVuY2UpCiAgICAgICAgIG1fbGFzdFByb2Nlc3NlZFNl
cXVlbmNlID0gc2VxdWVuY2U7CiAKLSAgICBtX3Byb2Nlc3NpbmdSZXF1ZXN0LmNsZWFyKCk7Cisg
ICAgbV9wcm9jZXNzaW5nUmVxdWVzdCA9IG51bGxwdHI7CiAgICAgaWYgKCFtX3JlcXVlc3RRdWV1
ZS5pc0VtcHR5KCkpCiAgICAgICAgIG1fdGltZXJUb1Byb2Nlc3NRdWV1ZWRSZXF1ZXN0LnN0YXJ0
T25lU2hvdCgwKTsKIH0KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2h0bWwvQmFzZUNob29z
ZXJPbmx5RGF0ZUFuZFRpbWVJbnB1dFR5cGUuY3BwIGIvU291cmNlL1dlYkNvcmUvaHRtbC9CYXNl
Q2hvb3Nlck9ubHlEYXRlQW5kVGltZUlucHV0VHlwZS5jcHAKaW5kZXggZTlhNmNjMC4uZGJlYTBl
OSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvaHRtbC9CYXNlQ2hvb3Nlck9ubHlEYXRlQW5k
VGltZUlucHV0VHlwZS5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvaHRtbC9CYXNlQ2hvb3Nlck9u
bHlEYXRlQW5kVGltZUlucHV0VHlwZS5jcHAKQEAgLTk4LDcgKzk4LDcgQEAgdm9pZCBCYXNlQ2hv
b3Nlck9ubHlEYXRlQW5kVGltZUlucHV0VHlwZTo6ZGlkQ2hvb3NlVmFsdWUoY29uc3QgU3RyaW5n
JiB2YWx1ZSkKIAogdm9pZCBCYXNlQ2hvb3Nlck9ubHlEYXRlQW5kVGltZUlucHV0VHlwZTo6ZGlk
RW5kQ2hvb3NlcigpCiB7Ci0gICAgbV9kYXRlVGltZUNob29zZXIuY2xlYXIoKTsKKyAgICBtX2Rh
dGVUaW1lQ2hvb3NlciA9IG51bGxwdHI7CiB9CiAKIHZvaWQgQmFzZUNob29zZXJPbmx5RGF0ZUFu
ZFRpbWVJbnB1dFR5cGU6OmNsb3NlRGF0ZVRpbWVDaG9vc2VyKCkKZGlmZiAtLWdpdCBhL1NvdXJj
ZS9XZWJDb3JlL2h0bWwvRmlsZUlucHV0VHlwZS5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9odG1sL0Zp
bGVJbnB1dFR5cGUuY3BwCmluZGV4IGEzZDNiNmIuLjQ4OWQ3OTkgMTAwNjQ0Ci0tLSBhL1NvdXJj
ZS9XZWJDb3JlL2h0bWwvRmlsZUlucHV0VHlwZS5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvaHRt
bC9GaWxlSW5wdXRUeXBlLmNwcApAQCAtMjUwLDcgKzI1MCw3IEBAIHZvaWQgRmlsZUlucHV0VHlw
ZTo6c2V0VmFsdWUoY29uc3QgU3RyaW5nJiwgYm9vbCwgVGV4dEZpZWxkRXZlbnRCZWhhdmlvcikK
IHsKICAgICAvLyBGSVhNRTogU2hvdWxkIHdlIGNsZWFyIHRoZSBmaWxlIGxpc3QsIG9yIHJlcGxh
Y2UgaXQgd2l0aCBhIG5ldyBlbXB0eSBvbmUgaGVyZT8gVGhpcyBpcyBvYnNlcnZhYmxlIGZyb20g
SmF2YVNjcmlwdCB0aHJvdWdoIGN1c3RvbSBwcm9wZXJ0aWVzLgogICAgIG1fZmlsZUxpc3QtPmNs
ZWFyKCk7Ci0gICAgbV9pY29uLmNsZWFyKCk7CisgICAgbV9pY29uID0gbnVsbHB0cjsKICAgICBl
bGVtZW50KCkuc2V0TmVlZHNTdHlsZVJlY2FsYygpOwogfQogCmRpZmYgLS1naXQgYS9Tb3VyY2Uv
V2ViQ29yZS9odG1sL0hUTUxDYW52YXNFbGVtZW50LmNwcCBiL1NvdXJjZS9XZWJDb3JlL2h0bWwv
SFRNTENhbnZhc0VsZW1lbnQuY3BwCmluZGV4IDg2ZDQ1YTQuLmNlNWQ3YjIgMTAwNjQ0Ci0tLSBh
L1NvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTENhbnZhc0VsZW1lbnQuY3BwCisrKyBiL1NvdXJjZS9X
ZWJDb3JlL2h0bWwvSFRNTENhbnZhc0VsZW1lbnQuY3BwCkBAIC00MjMsNyArNDIzLDcgQEAgdm9p
ZCBIVE1MQ2FudmFzRWxlbWVudDo6bWFrZVByZXNlbnRhdGlvbkNvcHkoKQogCiB2b2lkIEhUTUxD
YW52YXNFbGVtZW50OjpjbGVhclByZXNlbnRhdGlvbkNvcHkoKQogewotICAgIG1fcHJlc2VudGVk
SW1hZ2UuY2xlYXIoKTsKKyAgICBtX3ByZXNlbnRlZEltYWdlID0gbnVsbHB0cjsKIH0KIAogdm9p
ZCBIVE1MQ2FudmFzRWxlbWVudDo6c2V0U3VyZmFjZVNpemUoY29uc3QgSW50U2l6ZSYgc2l6ZSkK
QEAgLTY0NCw3ICs2NDQsNyBAQCB2b2lkIEhUTUxDYW52YXNFbGVtZW50OjpjbGVhckltYWdlQnVm
ZmVyKCkgY29uc3QKIAogdm9pZCBIVE1MQ2FudmFzRWxlbWVudDo6Y2xlYXJDb3BpZWRJbWFnZSgp
CiB7Ci0gICAgbV9jb3BpZWRJbWFnZS5jbGVhcigpOworICAgIG1fY29waWVkSW1hZ2UgPSBudWxs
cHRyOwogICAgIG1fZGlkQ2xlYXJJbWFnZUJ1ZmZlciA9IGZhbHNlOwogfQogCmRpZmYgLS1naXQg
YS9Tb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxQbHVnSW5FbGVtZW50LmNwcCBiL1NvdXJjZS9XZWJD
b3JlL2h0bWwvSFRNTFBsdWdJbkVsZW1lbnQuY3BwCmluZGV4IDIyMDQ2ZWEuLmQ3ODZkZjQgMTAw
NjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTFBsdWdJbkVsZW1lbnQuY3BwCisrKyBi
L1NvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTFBsdWdJbkVsZW1lbnQuY3BwCkBAIC0xMDQsNyArMTA0
LDcgQEAgYm9vbCBIVE1MUGx1Z0luRWxlbWVudDo6d2lsbFJlc3BvbmRUb01vdXNlQ2xpY2tFdmVu
dHMoKQogCiB2b2lkIEhUTUxQbHVnSW5FbGVtZW50Ojp3aWxsRGV0YWNoUmVuZGVyZXJzKCkKIHsK
LSAgICBtX2luc3RhbmNlLmNsZWFyKCk7CisgICAgbV9pbnN0YW5jZSA9IG51bGxwdHI7CiAKICAg
ICBpZiAobV9pc0NhcHR1cmluZ01vdXNlRXZlbnRzKSB7CiAgICAgICAgIGlmIChGcmFtZSogZnJh
bWUgPSBkb2N1bWVudCgpLmZyYW1lKCkpCkBAIC0xMjIsNyArMTIyLDcgQEAgdm9pZCBIVE1MUGx1
Z0luRWxlbWVudDo6d2lsbERldGFjaFJlbmRlcmVycygpCiAKIHZvaWQgSFRNTFBsdWdJbkVsZW1l
bnQ6OnJlc2V0SW5zdGFuY2UoKQogewotICAgIG1faW5zdGFuY2UuY2xlYXIoKTsKKyAgICBtX2lu
c3RhbmNlID0gbnVsbHB0cjsKIH0KIAogUGFzc1JlZlB0cjxKU0M6OkJpbmRpbmdzOjpJbnN0YW5j
ZT4gSFRNTFBsdWdJbkVsZW1lbnQ6OmdldEluc3RhbmNlKCkKZGlmZiAtLWdpdCBhL1NvdXJjZS9X
ZWJDb3JlL2h0bWwvVGV4dEZpZWxkSW5wdXRUeXBlLmNwcCBiL1NvdXJjZS9XZWJDb3JlL2h0bWwv
VGV4dEZpZWxkSW5wdXRUeXBlLmNwcAppbmRleCA0YjI4YWE4Li5lYWUzZGIyIDEwMDY0NAotLS0g
YS9Tb3VyY2UvV2ViQ29yZS9odG1sL1RleHRGaWVsZElucHV0VHlwZS5jcHAKKysrIGIvU291cmNl
L1dlYkNvcmUvaHRtbC9UZXh0RmllbGRJbnB1dFR5cGUuY3BwCkBAIC00NjIsNyArNDYyLDcgQEAg
dm9pZCBUZXh0RmllbGRJbnB1dFR5cGU6OnVwZGF0ZVBsYWNlaG9sZGVyVGV4dCgpCiAgICAgaWYg
KHBsYWNlaG9sZGVyVGV4dC5pc0VtcHR5KCkpIHsKICAgICAgICAgaWYgKG1fcGxhY2Vob2xkZXIp
IHsKICAgICAgICAgICAgIG1fcGxhY2Vob2xkZXItPnBhcmVudE5vZGUoKS0+cmVtb3ZlQ2hpbGQo
bV9wbGFjZWhvbGRlci5nZXQoKSwgQVNTRVJUX05PX0VYQ0VQVElPTik7Ci0gICAgICAgICAgICBt
X3BsYWNlaG9sZGVyLmNsZWFyKCk7CisgICAgICAgICAgICBtX3BsYWNlaG9sZGVyID0gbnVsbHB0
cjsKICAgICAgICAgfQogICAgICAgICByZXR1cm47CiAgICAgfQpkaWZmIC0tZ2l0IGEvU291cmNl
L1dlYkNvcmUvaHRtbC9jYW52YXMvV2ViR0xSZW5kZXJpbmdDb250ZXh0QmFzZS5jcHAgYi9Tb3Vy
Y2UvV2ViQ29yZS9odG1sL2NhbnZhcy9XZWJHTFJlbmRlcmluZ0NvbnRleHRCYXNlLmNwcAppbmRl
eCBiNjZiNjY5Li43NzVkZmM2IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9odG1sL2NhbnZh
cy9XZWJHTFJlbmRlcmluZ0NvbnRleHRCYXNlLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9odG1s
L2NhbnZhcy9XZWJHTFJlbmRlcmluZ0NvbnRleHRCYXNlLmNwcApAQCAtNjIzLDcgKzYyMyw3IEBA
IHZvaWQgV2ViR0xSZW5kZXJpbmdDb250ZXh0QmFzZTo6ZGVzdHJveUdyYXBoaWNzQ29udGV4dDNE
KCkKICAgICBpZiAobV9jb250ZXh0KSB7CiAgICAgICAgIG1fY29udGV4dC0+c2V0Q29udGV4dExv
c3RDYWxsYmFjayhudWxscHRyKTsKICAgICAgICAgbV9jb250ZXh0LT5zZXRFcnJvck1lc3NhZ2VD
YWxsYmFjayhudWxscHRyKTsKLSAgICAgICAgbV9jb250ZXh0LmNsZWFyKCk7CisgICAgICAgIG1f
Y29udGV4dCA9IG51bGxwdHI7CiAgICAgfQogfQogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29y
ZS9pbnNwZWN0b3IvSW5zcGVjdG9yQXBwbGljYXRpb25DYWNoZUFnZW50LmNwcCBiL1NvdXJjZS9X
ZWJDb3JlL2luc3BlY3Rvci9JbnNwZWN0b3JBcHBsaWNhdGlvbkNhY2hlQWdlbnQuY3BwCmluZGV4
IGZkNGNhZjYuLjJkY2QyNmUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9J
bnNwZWN0b3JBcHBsaWNhdGlvbkNhY2hlQWdlbnQuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2lu
c3BlY3Rvci9JbnNwZWN0b3JBcHBsaWNhdGlvbkNhY2hlQWdlbnQuY3BwCkBAIC01OCw3ICs1OCw3
IEBAIHZvaWQgSW5zcGVjdG9yQXBwbGljYXRpb25DYWNoZUFnZW50OjpkaWRDcmVhdGVGcm9udGVu
ZEFuZEJhY2tlbmQoRnJvbnRlbmRDaGFubmVsCiB2b2lkIEluc3BlY3RvckFwcGxpY2F0aW9uQ2Fj
aGVBZ2VudDo6d2lsbERlc3Ryb3lGcm9udGVuZEFuZEJhY2tlbmQoSW5zcGVjdG9yOjpEaXNjb25u
ZWN0UmVhc29uKQogewogICAgIG1fZnJvbnRlbmREaXNwYXRjaGVyID0gbnVsbHB0cjsKLSAgICBt
X2JhY2tlbmREaXNwYXRjaGVyLmNsZWFyKCk7CisgICAgbV9iYWNrZW5kRGlzcGF0Y2hlciA9IG51
bGxwdHI7CiAKICAgICBtX2luc3RydW1lbnRpbmdBZ2VudHMtPnNldEluc3BlY3RvckFwcGxpY2F0
aW9uQ2FjaGVBZ2VudChudWxscHRyKTsKIH0KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2lu
c3BlY3Rvci9JbnNwZWN0b3JDU1NBZ2VudC5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3Iv
SW5zcGVjdG9yQ1NTQWdlbnQuY3BwCmluZGV4IGE5MDgzZDAuLjNkMDYyMDggMTAwNjQ0Ci0tLSBh
L1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9JbnNwZWN0b3JDU1NBZ2VudC5jcHAKKysrIGIvU291
cmNlL1dlYkNvcmUvaW5zcGVjdG9yL0luc3BlY3RvckNTU0FnZW50LmNwcApAQCAtMzYwLDcgKzM2
MCw3IEBAIHZvaWQgSW5zcGVjdG9yQ1NTQWdlbnQ6OmRpZENyZWF0ZUZyb250ZW5kQW5kQmFja2Vu
ZChJbnNwZWN0b3I6OkZyb250ZW5kQ2hhbm5lbCoKIHZvaWQgSW5zcGVjdG9yQ1NTQWdlbnQ6Ondp
bGxEZXN0cm95RnJvbnRlbmRBbmRCYWNrZW5kKEluc3BlY3Rvcjo6RGlzY29ubmVjdFJlYXNvbikK
IHsKICAgICBtX2Zyb250ZW5kRGlzcGF0Y2hlciA9IG51bGxwdHI7Ci0gICAgbV9iYWNrZW5kRGlz
cGF0Y2hlci5jbGVhcigpOworICAgIG1fYmFja2VuZERpc3BhdGNoZXIgPSBudWxscHRyOwogCiAg
ICAgcmVzZXROb25QZXJzaXN0ZW50RGF0YSgpOwogfQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNv
cmUvaW5zcGVjdG9yL0luc3BlY3RvckNvbnRyb2xsZXIuY3BwIGIvU291cmNlL1dlYkNvcmUvaW5z
cGVjdG9yL0luc3BlY3RvckNvbnRyb2xsZXIuY3BwCmluZGV4IGYyM2E1ZWEuLmJjODBiY2EgMTAw
NjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9JbnNwZWN0b3JDb250cm9sbGVyLmNw
cAorKysgYi9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvSW5zcGVjdG9yQ29udHJvbGxlci5jcHAK
QEAgLTI2Myw3ICsyNjMsNyBAQCB2b2lkIEluc3BlY3RvckNvbnRyb2xsZXI6OmRpc2Nvbm5lY3RG
cm9udGVuZChEaXNjb25uZWN0UmVhc29uIHJlYXNvbikKICAgICBtX2FnZW50cy53aWxsRGVzdHJv
eUZyb250ZW5kQW5kQmFja2VuZChyZWFzb24pOwogCiAgICAgbV9iYWNrZW5kRGlzcGF0Y2hlci0+
Y2xlYXJGcm9udGVuZCgpOwotICAgIG1fYmFja2VuZERpc3BhdGNoZXIuY2xlYXIoKTsKKyAgICBt
X2JhY2tlbmREaXNwYXRjaGVyID0gbnVsbHB0cjsKICAgICBtX2Zyb250ZW5kQ2hhbm5lbCA9IG51
bGxwdHI7CiAKICAgICBtX2lzQXV0b21hdGljSW5zcGVjdGlvbiA9IGZhbHNlOwpkaWZmIC0tZ2l0
IGEvU291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL0luc3BlY3RvckRPTUFnZW50LmNwcCBiL1NvdXJj
ZS9XZWJDb3JlL2luc3BlY3Rvci9JbnNwZWN0b3JET01BZ2VudC5jcHAKaW5kZXggMGVkMmM1Yy4u
YmE3N2RlOSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL0luc3BlY3RvckRP
TUFnZW50LmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvSW5zcGVjdG9yRE9NQWdl
bnQuY3BwCkBAIC0yMzgsNyArMjM4LDcgQEAgdm9pZCBJbnNwZWN0b3JET01BZ2VudDo6ZGlkQ3Jl
YXRlRnJvbnRlbmRBbmRCYWNrZW5kKEluc3BlY3Rvcjo6RnJvbnRlbmRDaGFubmVsKgogdm9pZCBJ
bnNwZWN0b3JET01BZ2VudDo6d2lsbERlc3Ryb3lGcm9udGVuZEFuZEJhY2tlbmQoSW5zcGVjdG9y
OjpEaXNjb25uZWN0UmVhc29uKQogewogICAgIG1fZnJvbnRlbmREaXNwYXRjaGVyID0gbnVsbHB0
cjsKLSAgICBtX2JhY2tlbmREaXNwYXRjaGVyLmNsZWFyKCk7CisgICAgbV9iYWNrZW5kRGlzcGF0
Y2hlciA9IG51bGxwdHI7CiAKICAgICBtX2hpc3RvcnkucmVzZXQoKTsKICAgICBtX2RvbUVkaXRv
ci5yZXNldCgpOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL0luc3BlY3Rv
ckRPTURlYnVnZ2VyQWdlbnQuY3BwIGIvU291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL0luc3BlY3Rv
ckRPTURlYnVnZ2VyQWdlbnQuY3BwCmluZGV4IGY3NzhkZDkuLmQ1MWQ0YmUgMTAwNjQ0Ci0tLSBh
L1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9JbnNwZWN0b3JET01EZWJ1Z2dlckFnZW50LmNwcAor
KysgYi9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvSW5zcGVjdG9yRE9NRGVidWdnZXJBZ2VudC5j
cHAKQEAgLTEwOSw3ICsxMDksNyBAQCB2b2lkIEluc3BlY3RvckRPTURlYnVnZ2VyQWdlbnQ6OmRp
ZENyZWF0ZUZyb250ZW5kQW5kQmFja2VuZChJbnNwZWN0b3I6OkZyb250ZW5kQwogCiB2b2lkIElu
c3BlY3RvckRPTURlYnVnZ2VyQWdlbnQ6OndpbGxEZXN0cm95RnJvbnRlbmRBbmRCYWNrZW5kKElu
c3BlY3Rvcjo6RGlzY29ubmVjdFJlYXNvbikKIHsKLSAgICBtX2JhY2tlbmREaXNwYXRjaGVyLmNs
ZWFyKCk7CisgICAgbV9iYWNrZW5kRGlzcGF0Y2hlciA9IG51bGxwdHI7CiAKICAgICBkaXNhYmxl
KCk7CiB9CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvSW5zcGVjdG9yRE9N
U3RvcmFnZUFnZW50LmNwcCBiL1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9JbnNwZWN0b3JET01T
dG9yYWdlQWdlbnQuY3BwCmluZGV4IGIxNjg3Y2Y1Li4wNGFmODhiIDEwMDY0NAotLS0gYS9Tb3Vy
Y2UvV2ViQ29yZS9pbnNwZWN0b3IvSW5zcGVjdG9yRE9NU3RvcmFnZUFnZW50LmNwcAorKysgYi9T
b3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvSW5zcGVjdG9yRE9NU3RvcmFnZUFnZW50LmNwcApAQCAt
NzYsNyArNzYsNyBAQCB2b2lkIEluc3BlY3RvckRPTVN0b3JhZ2VBZ2VudDo6ZGlkQ3JlYXRlRnJv
bnRlbmRBbmRCYWNrZW5kKEluc3BlY3Rvcjo6RnJvbnRlbmRDaAogdm9pZCBJbnNwZWN0b3JET01T
dG9yYWdlQWdlbnQ6OndpbGxEZXN0cm95RnJvbnRlbmRBbmRCYWNrZW5kKEluc3BlY3Rvcjo6RGlz
Y29ubmVjdFJlYXNvbikKIHsKICAgICBtX2Zyb250ZW5kRGlzcGF0Y2hlciA9IG51bGxwdHI7Ci0g
ICAgbV9iYWNrZW5kRGlzcGF0Y2hlci5jbGVhcigpOworICAgIG1fYmFja2VuZERpc3BhdGNoZXIg
PSBudWxscHRyOwogCiAgICAgRXJyb3JTdHJpbmcgdW51c2VkOwogICAgIGRpc2FibGUodW51c2Vk
KTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9JbnNwZWN0b3JEYXRhYmFz
ZUFnZW50LmNwcCBiL1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9JbnNwZWN0b3JEYXRhYmFzZUFn
ZW50LmNwcAppbmRleCA5MTM0ZGZlLi5iZTI3Zjk1IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29y
ZS9pbnNwZWN0b3IvSW5zcGVjdG9yRGF0YWJhc2VBZ2VudC5jcHAKKysrIGIvU291cmNlL1dlYkNv
cmUvaW5zcGVjdG9yL0luc3BlY3RvckRhdGFiYXNlQWdlbnQuY3BwCkBAIC0yMzEsNyArMjMxLDcg
QEAgdm9pZCBJbnNwZWN0b3JEYXRhYmFzZUFnZW50OjpkaWRDcmVhdGVGcm9udGVuZEFuZEJhY2tl
bmQoSW5zcGVjdG9yOjpGcm9udGVuZENoYW4KIHZvaWQgSW5zcGVjdG9yRGF0YWJhc2VBZ2VudDo6
d2lsbERlc3Ryb3lGcm9udGVuZEFuZEJhY2tlbmQoSW5zcGVjdG9yOjpEaXNjb25uZWN0UmVhc29u
KQogewogICAgIG1fZnJvbnRlbmREaXNwYXRjaGVyID0gbnVsbHB0cjsKLSAgICBtX2JhY2tlbmRE
aXNwYXRjaGVyLmNsZWFyKCk7CisgICAgbV9iYWNrZW5kRGlzcGF0Y2hlciA9IG51bGxwdHI7CiAK
ICAgICBFcnJvclN0cmluZyB1bnVzZWQ7CiAgICAgZGlzYWJsZSh1bnVzZWQpOwpkaWZmIC0tZ2l0
IGEvU291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL0luc3BlY3RvckluZGV4ZWREQkFnZW50LmNwcCBi
L1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9JbnNwZWN0b3JJbmRleGVkREJBZ2VudC5jcHAKaW5k
ZXggOWJmMTI5MS4uMTcyZmI1OCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvaW5zcGVjdG9y
L0luc3BlY3RvckluZGV4ZWREQkFnZW50LmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0
b3IvSW5zcGVjdG9ySW5kZXhlZERCQWdlbnQuY3BwCkBAIC01ODIsNyArNTgyLDcgQEAgdm9pZCBJ
bnNwZWN0b3JJbmRleGVkREJBZ2VudDo6ZGlkQ3JlYXRlRnJvbnRlbmRBbmRCYWNrZW5kKEluc3Bl
Y3Rvcjo6RnJvbnRlbmRDaGEKIAogdm9pZCBJbnNwZWN0b3JJbmRleGVkREJBZ2VudDo6d2lsbERl
c3Ryb3lGcm9udGVuZEFuZEJhY2tlbmQoSW5zcGVjdG9yOjpEaXNjb25uZWN0UmVhc29uKQogewot
ICAgIG1fYmFja2VuZERpc3BhdGNoZXIuY2xlYXIoKTsKKyAgICBtX2JhY2tlbmREaXNwYXRjaGVy
ID0gbnVsbHB0cjsKIAogICAgIEVycm9yU3RyaW5nIHVudXNlZDsKICAgICBkaXNhYmxlKHVudXNl
ZCk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvSW5zcGVjdG9yTGF5ZXJU
cmVlQWdlbnQuY3BwIGIvU291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL0luc3BlY3RvckxheWVyVHJl
ZUFnZW50LmNwcAppbmRleCBiZTY0NDk2Li5mNmU0MWZhIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2Vi
Q29yZS9pbnNwZWN0b3IvSW5zcGVjdG9yTGF5ZXJUcmVlQWdlbnQuY3BwCisrKyBiL1NvdXJjZS9X
ZWJDb3JlL2luc3BlY3Rvci9JbnNwZWN0b3JMYXllclRyZWVBZ2VudC5jcHAKQEAgLTY1LDcgKzY1
LDcgQEAgdm9pZCBJbnNwZWN0b3JMYXllclRyZWVBZ2VudDo6ZGlkQ3JlYXRlRnJvbnRlbmRBbmRC
YWNrZW5kKEluc3BlY3Rvcjo6RnJvbnRlbmRDaGEKIHZvaWQgSW5zcGVjdG9yTGF5ZXJUcmVlQWdl
bnQ6OndpbGxEZXN0cm95RnJvbnRlbmRBbmRCYWNrZW5kKEluc3BlY3Rvcjo6RGlzY29ubmVjdFJl
YXNvbikKIHsKICAgICBtX2Zyb250ZW5kRGlzcGF0Y2hlciA9IG51bGxwdHI7Ci0gICAgbV9iYWNr
ZW5kRGlzcGF0Y2hlci5jbGVhcigpOworICAgIG1fYmFja2VuZERpc3BhdGNoZXIgPSBudWxscHRy
OwogCiAgICAgRXJyb3JTdHJpbmcgdW51c2VkOwogICAgIGRpc2FibGUodW51c2VkKTsKZGlmZiAt
LWdpdCBhL1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9JbnNwZWN0b3JPdmVybGF5LmNwcCBiL1Nv
dXJjZS9XZWJDb3JlL2luc3BlY3Rvci9JbnNwZWN0b3JPdmVybGF5LmNwcAppbmRleCA2ZDNhMGYz
Li5mYWVhN2NlIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvSW5zcGVjdG9y
T3ZlcmxheS5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL0luc3BlY3Rvck92ZXJs
YXkuY3BwCkBAIC0yNDMsOSArMjQzLDkgQEAgdm9pZCBJbnNwZWN0b3JPdmVybGF5OjpzZXRQYXVz
ZWRJbkRlYnVnZ2VyTWVzc2FnZShjb25zdCBTdHJpbmcqIG1lc3NhZ2UpCiAKIHZvaWQgSW5zcGVj
dG9yT3ZlcmxheTo6aGlkZUhpZ2hsaWdodCgpCiB7Ci0gICAgbV9oaWdobGlnaHROb2RlLmNsZWFy
KCk7Ci0gICAgbV9oaWdobGlnaHROb2RlTGlzdC5jbGVhcigpOwotICAgIG1faGlnaGxpZ2h0UXVh
ZC5yZXNldCgpOworICAgIG1faGlnaGxpZ2h0Tm9kZSA9IG51bGxwdHI7CisgICAgbV9oaWdobGln
aHROb2RlTGlzdCA9IG51bGxwdHI7CisgICAgbV9oaWdobGlnaHRRdWFkID0gbnVsbHB0cjsKICAg
ICB1cGRhdGUoKTsKIH0KIApAQCAtMjUzLDcgKzI1Myw3IEBAIHZvaWQgSW5zcGVjdG9yT3Zlcmxh
eTo6aGlnaGxpZ2h0Tm9kZUxpc3QoUGFzc1JlZlB0cjxOb2RlTGlzdD4gbm9kZXMsIGNvbnN0IEhp
Z2hsCiB7CiAgICAgbV9ub2RlSGlnaGxpZ2h0Q29uZmlnID0gaGlnaGxpZ2h0Q29uZmlnOwogICAg
IG1faGlnaGxpZ2h0Tm9kZUxpc3QgPSBub2RlczsKLSAgICBtX2hpZ2hsaWdodE5vZGUuY2xlYXIo
KTsKKyAgICBtX2hpZ2hsaWdodE5vZGUgPSBudWxscHRyOwogICAgIHVwZGF0ZSgpOwogfQogCkBA
IC0yNjEsNyArMjYxLDcgQEAgdm9pZCBJbnNwZWN0b3JPdmVybGF5OjpoaWdobGlnaHROb2RlKE5v
ZGUqIG5vZGUsIGNvbnN0IEhpZ2hsaWdodENvbmZpZyYgaGlnaGxpZ2gKIHsKICAgICBtX25vZGVI
aWdobGlnaHRDb25maWcgPSBoaWdobGlnaHRDb25maWc7CiAgICAgbV9oaWdobGlnaHROb2RlID0g
bm9kZTsKLSAgICBtX2hpZ2hsaWdodE5vZGVMaXN0LmNsZWFyKCk7CisgICAgbV9oaWdobGlnaHRO
b2RlTGlzdCA9IG51bGxwdHI7CiAgICAgdXBkYXRlKCk7CiB9CiAKZGlmZiAtLWdpdCBhL1NvdXJj
ZS9XZWJDb3JlL2luc3BlY3Rvci9JbnNwZWN0b3JQYWdlQWdlbnQuY3BwIGIvU291cmNlL1dlYkNv
cmUvaW5zcGVjdG9yL0luc3BlY3RvclBhZ2VBZ2VudC5jcHAKaW5kZXggNmY1MmJmYS4uM2U5ZmVi
ZSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL0luc3BlY3RvclBhZ2VBZ2Vu
dC5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL0luc3BlY3RvclBhZ2VBZ2VudC5j
cHAKQEAgLTM0OCw3ICszNDgsNyBAQCB2b2lkIEluc3BlY3RvclBhZ2VBZ2VudDo6ZGlkQ3JlYXRl
RnJvbnRlbmRBbmRCYWNrZW5kKEluc3BlY3Rvcjo6RnJvbnRlbmRDaGFubmVsKgogdm9pZCBJbnNw
ZWN0b3JQYWdlQWdlbnQ6OndpbGxEZXN0cm95RnJvbnRlbmRBbmRCYWNrZW5kKEluc3BlY3Rvcjo6
RGlzY29ubmVjdFJlYXNvbikKIHsKICAgICBtX2Zyb250ZW5kRGlzcGF0Y2hlciA9IG51bGxwdHI7
Ci0gICAgbV9iYWNrZW5kRGlzcGF0Y2hlci5jbGVhcigpOworICAgIG1fYmFja2VuZERpc3BhdGNo
ZXIgPSBudWxscHRyOwogCiAgICAgRXJyb3JTdHJpbmcgdW51c2VkOwogICAgIGRpc2FibGUodW51
c2VkKTsKQEAgLTM3NCw3ICszNzQsNyBAQCB2b2lkIEluc3BlY3RvclBhZ2VBZ2VudDo6ZW5hYmxl
KEVycm9yU3RyaW5nJikKIHZvaWQgSW5zcGVjdG9yUGFnZUFnZW50OjpkaXNhYmxlKEVycm9yU3Ry
aW5nJikKIHsKICAgICBtX2VuYWJsZWQgPSBmYWxzZTsKLSAgICBtX3NjcmlwdHNUb0V2YWx1YXRl
T25Mb2FkLmNsZWFyKCk7CisgICAgbV9zY3JpcHRzVG9FdmFsdWF0ZU9uTG9hZCA9IG51bGxwdHI7
CiAgICAgbV9pbnN0cnVtZW50aW5nQWdlbnRzLT5zZXRJbnNwZWN0b3JQYWdlQWdlbnQobnVsbHB0
cik7CiAKICAgICBFcnJvclN0cmluZyB1bnVzZWQ7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29y
ZS9pbnNwZWN0b3IvSW5zcGVjdG9yUmVwbGF5QWdlbnQuY3BwIGIvU291cmNlL1dlYkNvcmUvaW5z
cGVjdG9yL0luc3BlY3RvclJlcGxheUFnZW50LmNwcAppbmRleCA2NGNiODExLi4xODFhNjA5IDEw
MDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvSW5zcGVjdG9yUmVwbGF5QWdlbnQu
Y3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9JbnNwZWN0b3JSZXBsYXlBZ2VudC5j
cHAKQEAgLTE5Myw3ICsxOTMsNyBAQCB2b2lkIEluc3BlY3RvclJlcGxheUFnZW50OjpkaWRDcmVh
dGVGcm9udGVuZEFuZEJhY2tlbmQoSW5zcGVjdG9yOjpGcm9udGVuZENoYW5uZQogdm9pZCBJbnNw
ZWN0b3JSZXBsYXlBZ2VudDo6d2lsbERlc3Ryb3lGcm9udGVuZEFuZEJhY2tlbmQoSW5zcGVjdG9y
OjpEaXNjb25uZWN0UmVhc29uKQogewogICAgIG1fZnJvbnRlbmREaXNwYXRjaGVyID0gbnVsbHB0
cjsKLSAgICBtX2JhY2tlbmREaXNwYXRjaGVyLmNsZWFyKCk7CisgICAgbV9iYWNrZW5kRGlzcGF0
Y2hlciA9IG51bGxwdHI7CiAKICAgICBtX2luc3RydW1lbnRpbmdBZ2VudHMtPnNldEluc3BlY3Rv
clJlcGxheUFnZW50KG51bGxwdHIpOwogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9pbnNw
ZWN0b3IvSW5zcGVjdG9yUmVzb3VyY2VBZ2VudC5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0
b3IvSW5zcGVjdG9yUmVzb3VyY2VBZ2VudC5jcHAKaW5kZXggODU0NDg5Yy4uN2I1NmEwZiAxMDA2
NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL0luc3BlY3RvclJlc291cmNlQWdlbnQu
Y3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9JbnNwZWN0b3JSZXNvdXJjZUFnZW50
LmNwcApAQCAtMTgxLDcgKzE4MSw3IEBAIHZvaWQgSW5zcGVjdG9yUmVzb3VyY2VBZ2VudDo6ZGlk
Q3JlYXRlRnJvbnRlbmRBbmRCYWNrZW5kKEluc3BlY3Rvcjo6RnJvbnRlbmRDaGFuCiB2b2lkIElu
c3BlY3RvclJlc291cmNlQWdlbnQ6OndpbGxEZXN0cm95RnJvbnRlbmRBbmRCYWNrZW5kKEluc3Bl
Y3Rvcjo6RGlzY29ubmVjdFJlYXNvbikKIHsKICAgICBtX2Zyb250ZW5kRGlzcGF0Y2hlciA9IG51
bGxwdHI7Ci0gICAgbV9iYWNrZW5kRGlzcGF0Y2hlci5jbGVhcigpOworICAgIG1fYmFja2VuZERp
c3BhdGNoZXIgPSBudWxscHRyOwogCiAgICAgRXJyb3JTdHJpbmcgdW51c2VkOwogICAgIGRpc2Fi
bGUodW51c2VkKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9JbnNwZWN0
b3JTdHlsZVNoZWV0LmNwcCBiL1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9JbnNwZWN0b3JTdHls
ZVNoZWV0LmNwcAppbmRleCBiNDdjNjU0Li4wNmVjMWI2IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2Vi
Q29yZS9pbnNwZWN0b3IvSW5zcGVjdG9yU3R5bGVTaGVldC5jcHAKKysrIGIvU291cmNlL1dlYkNv
cmUvaW5zcGVjdG9yL0luc3BlY3RvclN0eWxlU2hlZXQuY3BwCkBAIC0xMjYxLDcgKzEyNjEsNyBA
QCB2b2lkIEluc3BlY3RvclN0eWxlU2hlZXRGb3JJbmxpbmVTdHlsZTo6ZGlkTW9kaWZ5RWxlbWVu
dEF0dHJpYnV0ZSgpCiAgICAgbV9pc1N0eWxlVGV4dFZhbGlkID0gZmFsc2U7CiAgICAgaWYgKG1f
ZWxlbWVudC0+aXNTdHlsZWRFbGVtZW50KCkgJiYgbV9lbGVtZW50LT5zdHlsZSgpICE9IG1faW5z
cGVjdG9yU3R5bGUtPmNzc1N0eWxlKCkpCiAgICAgICAgIG1faW5zcGVjdG9yU3R5bGUgPSBJbnNw
ZWN0b3JTdHlsZTo6Y3JlYXRlKEluc3BlY3RvckNTU0lkKGlkKCksIDApLCBpbmxpbmVTdHlsZSgp
LCB0aGlzKTsKLSAgICBtX3J1bGVTb3VyY2VEYXRhLmNsZWFyKCk7CisgICAgbV9ydWxlU291cmNl
RGF0YSA9IG51bGxwdHI7CiB9CiAKIGJvb2wgSW5zcGVjdG9yU3R5bGVTaGVldEZvcklubGluZVN0
eWxlOjpnZXRUZXh0KFN0cmluZyogcmVzdWx0KSBjb25zdApAQCAtMTI4NSw3ICsxMjg1LDcgQEAg
Ym9vbCBJbnNwZWN0b3JTdHlsZVNoZWV0Rm9ySW5saW5lU3R5bGU6OnNldFN0eWxlVGV4dChDU1NT
dHlsZURlY2xhcmF0aW9uKiBzdHlsZSwKIAogICAgIG1fc3R5bGVUZXh0ID0gdGV4dDsKICAgICBt
X2lzU3R5bGVUZXh0VmFsaWQgPSB0cnVlOwotICAgIG1fcnVsZVNvdXJjZURhdGEuY2xlYXIoKTsK
KyAgICBtX3J1bGVTb3VyY2VEYXRhID0gbnVsbHB0cjsKICAgICByZXR1cm4gIWVjOwogfQogCkBA
IC0xMzA0LDcgKzEzMDQsNyBAQCBib29sIEluc3BlY3RvclN0eWxlU2hlZXRGb3JJbmxpbmVTdHls
ZTo6ZW5zdXJlUGFyc2VkRGF0YVJlYWR5KCkKICAgICAvLyBUaGUgInN0eWxlIiBwcm9wZXJ0eSB2
YWx1ZSBjYW4gZ2V0IGNoYW5nZWQgaW5kaXJlY3RseSwgZS5nLiB2aWEgZWxlbWVudC5zdHlsZS5i
b3JkZXJXaWR0aCA9ICIycHgiLgogICAgIGNvbnN0IFN0cmluZyYgY3VycmVudFN0eWxlVGV4dCA9
IGVsZW1lbnRTdHlsZVRleHQoKTsKICAgICBpZiAobV9zdHlsZVRleHQgIT0gY3VycmVudFN0eWxl
VGV4dCkgewotICAgICAgICBtX3J1bGVTb3VyY2VEYXRhLmNsZWFyKCk7CisgICAgICAgIG1fcnVs
ZVNvdXJjZURhdGEgPSBudWxscHRyOwogICAgICAgICBtX3N0eWxlVGV4dCA9IGN1cnJlbnRTdHls
ZVRleHQ7CiAgICAgICAgIG1faXNTdHlsZVRleHRWYWxpZCA9IHRydWU7CiAgICAgfQpkaWZmIC0t
Z2l0IGEvU291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL0luc3BlY3RvclRpbWVsaW5lQWdlbnQuY3Bw
IGIvU291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL0luc3BlY3RvclRpbWVsaW5lQWdlbnQuY3BwCmlu
ZGV4IDBlMzJiYzUuLmY1NzU2YTIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rv
ci9JbnNwZWN0b3JUaW1lbGluZUFnZW50LmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0
b3IvSW5zcGVjdG9yVGltZWxpbmVBZ2VudC5jcHAKQEAgLTEwMyw3ICsxMDMsNyBAQCB2b2lkIElu
c3BlY3RvclRpbWVsaW5lQWdlbnQ6OmRpZENyZWF0ZUZyb250ZW5kQW5kQmFja2VuZChJbnNwZWN0
b3I6OkZyb250ZW5kQ2hhbgogdm9pZCBJbnNwZWN0b3JUaW1lbGluZUFnZW50Ojp3aWxsRGVzdHJv
eUZyb250ZW5kQW5kQmFja2VuZChJbnNwZWN0b3I6OkRpc2Nvbm5lY3RSZWFzb24gcmVhc29uKQog
ewogICAgIG1fZnJvbnRlbmREaXNwYXRjaGVyID0gbnVsbHB0cjsKLSAgICBtX2JhY2tlbmREaXNw
YXRjaGVyLmNsZWFyKCk7CisgICAgbV9iYWNrZW5kRGlzcGF0Y2hlciA9IG51bGxwdHI7CiAKICAg
ICBtX2luc3RydW1lbnRpbmdBZ2VudHMtPnNldFBlcnNpc3RlbnRJbnNwZWN0b3JUaW1lbGluZUFn
ZW50KG51bGxwdHIpOwogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvSW5z
cGVjdG9yV29ya2VyQWdlbnQuY3BwIGIvU291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL0luc3BlY3Rv
cldvcmtlckFnZW50LmNwcAppbmRleCBkZWJjNjk4Li41ZTIxZjM1IDEwMDY0NAotLS0gYS9Tb3Vy
Y2UvV2ViQ29yZS9pbnNwZWN0b3IvSW5zcGVjdG9yV29ya2VyQWdlbnQuY3BwCisrKyBiL1NvdXJj
ZS9XZWJDb3JlL2luc3BlY3Rvci9JbnNwZWN0b3JXb3JrZXJBZ2VudC5jcHAKQEAgLTEyNyw3ICsx
MjcsNyBAQCB2b2lkIEluc3BlY3RvcldvcmtlckFnZW50Ojp3aWxsRGVzdHJveUZyb250ZW5kQW5k
QmFja2VuZChJbnNwZWN0b3I6OkRpc2Nvbm5lY3RSZQogICAgIGRpc2FibGUodW51c2VkKTsKIAog
ICAgIG1fZnJvbnRlbmREaXNwYXRjaGVyID0gbnVsbHB0cjsKLSAgICBtX2JhY2tlbmREaXNwYXRj
aGVyLmNsZWFyKCk7CisgICAgbV9iYWNrZW5kRGlzcGF0Y2hlciA9IG51bGxwdHI7CiB9CiAKIHZv
aWQgSW5zcGVjdG9yV29ya2VyQWdlbnQ6OmVuYWJsZShFcnJvclN0cmluZyYpCmRpZmYgLS1naXQg
YS9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvUGFnZVJ1bnRpbWVBZ2VudC5jcHAgYi9Tb3VyY2Uv
V2ViQ29yZS9pbnNwZWN0b3IvUGFnZVJ1bnRpbWVBZ2VudC5jcHAKaW5kZXggOTNkYjU3Mi4uZTI0
NDVhYiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL1BhZ2VSdW50aW1lQWdl
bnQuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9QYWdlUnVudGltZUFnZW50LmNw
cApAQCAtNjksNyArNjksNyBAQCB2b2lkIFBhZ2VSdW50aW1lQWdlbnQ6OmRpZENyZWF0ZUZyb250
ZW5kQW5kQmFja2VuZChJbnNwZWN0b3I6OkZyb250ZW5kQ2hhbm5lbCogZgogdm9pZCBQYWdlUnVu
dGltZUFnZW50Ojp3aWxsRGVzdHJveUZyb250ZW5kQW5kQmFja2VuZChJbnNwZWN0b3I6OkRpc2Nv
bm5lY3RSZWFzb24gcmVhc29uKQogewogICAgIG1fZnJvbnRlbmREaXNwYXRjaGVyID0gbnVsbHB0
cjsKLSAgICBtX2JhY2tlbmREaXNwYXRjaGVyLmNsZWFyKCk7CisgICAgbV9iYWNrZW5kRGlzcGF0
Y2hlciA9IG51bGxwdHI7CiAKICAgICBTdHJpbmcgdW51c2VkOwogICAgIGRpc2FibGUodW51c2Vk
KTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9XZWJJbmplY3RlZFNjcmlw
dE1hbmFnZXIuY3BwIGIvU291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL1dlYkluamVjdGVkU2NyaXB0
TWFuYWdlci5jcHAKaW5kZXggOWY0YWY0Mi4uNTYxOTZmMCAxMDA2NDQKLS0tIGEvU291cmNlL1dl
YkNvcmUvaW5zcGVjdG9yL1dlYkluamVjdGVkU2NyaXB0TWFuYWdlci5jcHAKKysrIGIvU291cmNl
L1dlYkNvcmUvaW5zcGVjdG9yL1dlYkluamVjdGVkU2NyaXB0TWFuYWdlci5jcHAKQEAgLTQ0LDcg
KzQ0LDcgQEAgdm9pZCBXZWJJbmplY3RlZFNjcmlwdE1hbmFnZXI6OmRpc2Nvbm5lY3QoKQogICAg
IEluamVjdGVkU2NyaXB0TWFuYWdlcjo6ZGlzY29ubmVjdCgpOwogCiAgICAgbV9jb21tYW5kTGlu
ZUFQSUhvc3QtPmRpc2Nvbm5lY3QoKTsKLSAgICBtX2NvbW1hbmRMaW5lQVBJSG9zdC5jbGVhcigp
OworICAgIG1fY29tbWFuZExpbmVBUElIb3N0ID0gbnVsbHB0cjsKIH0KIAogdm9pZCBXZWJJbmpl
Y3RlZFNjcmlwdE1hbmFnZXI6OmRpZENyZWF0ZUluamVjdGVkU2NyaXB0KEluamVjdGVkU2NyaXB0
IGluamVjdGVkU2NyaXB0KQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL1dv
cmtlckluc3BlY3RvckNvbnRyb2xsZXIuY3BwIGIvU291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL1dv
cmtlckluc3BlY3RvckNvbnRyb2xsZXIuY3BwCmluZGV4IGYxZmU0MTAuLmQ4MzRlMGUgMTAwNjQ0
Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9Xb3JrZXJJbnNwZWN0b3JDb250cm9sbGVy
LmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvV29ya2VySW5zcGVjdG9yQ29udHJv
bGxlci5jcHAKQEAgLTEyNiw3ICsxMjYsNyBAQCB2b2lkIFdvcmtlckluc3BlY3RvckNvbnRyb2xs
ZXI6OmRpc2Nvbm5lY3RGcm9udGVuZChJbnNwZWN0b3I6OkRpc2Nvbm5lY3RSZWFzb24gcgogCiAg
ICAgbV9hZ2VudHMud2lsbERlc3Ryb3lGcm9udGVuZEFuZEJhY2tlbmQocmVhc29uKTsKICAgICBt
X2JhY2tlbmREaXNwYXRjaGVyLT5jbGVhckZyb250ZW5kKCk7Ci0gICAgbV9iYWNrZW5kRGlzcGF0
Y2hlci5jbGVhcigpOworICAgIG1fYmFja2VuZERpc3BhdGNoZXIgPSBudWxscHRyOwogICAgIG1f
ZnJvbnRlbmRDaGFubmVsID0gbnVsbHB0cjsKIH0KIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNv
cmUvaW5zcGVjdG9yL1dvcmtlclJ1bnRpbWVBZ2VudC5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9pbnNw
ZWN0b3IvV29ya2VyUnVudGltZUFnZW50LmNwcAppbmRleCAyMDZhNDFmLi4xMjIyZTU1IDEwMDY0
NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvV29ya2VyUnVudGltZUFnZW50LmNwcAor
KysgYi9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvV29ya2VyUnVudGltZUFnZW50LmNwcApAQCAt
NjAsNyArNjAsNyBAQCB2b2lkIFdvcmtlclJ1bnRpbWVBZ2VudDo6ZGlkQ3JlYXRlRnJvbnRlbmRB
bmRCYWNrZW5kKEluc3BlY3Rvcjo6RnJvbnRlbmRDaGFubmVsKgogCiB2b2lkIFdvcmtlclJ1bnRp
bWVBZ2VudDo6d2lsbERlc3Ryb3lGcm9udGVuZEFuZEJhY2tlbmQoSW5zcGVjdG9yOjpEaXNjb25u
ZWN0UmVhc29uIHJlYXNvbikKIHsKLSAgICBtX2JhY2tlbmREaXNwYXRjaGVyLmNsZWFyKCk7Cisg
ICAgbV9iYWNrZW5kRGlzcGF0Y2hlciA9IG51bGxwdHI7CiAKICAgICBJbnNwZWN0b3JSdW50aW1l
QWdlbnQ6OndpbGxEZXN0cm95RnJvbnRlbmRBbmRCYWNrZW5kKHJlYXNvbik7CiB9CmRpZmYgLS1n
aXQgYS9Tb3VyY2UvV2ViQ29yZS9sb2FkZXIvRnJhbWVMb2FkZXIuY3BwIGIvU291cmNlL1dlYkNv
cmUvbG9hZGVyL0ZyYW1lTG9hZGVyLmNwcAppbmRleCAxZTQ5NTU3Li4yOWIzZTY5IDEwMDY0NAot
LS0gYS9Tb3VyY2UvV2ViQ29yZS9sb2FkZXIvRnJhbWVMb2FkZXIuY3BwCisrKyBiL1NvdXJjZS9X
ZWJDb3JlL2xvYWRlci9GcmFtZUxvYWRlci5jcHAKQEAgLTY5MCw3ICs2OTAsNyBAQCB2b2lkIEZy
YW1lTG9hZGVyOjpkaWRCZWdpbkRvY3VtZW50KGJvb2wgZGlzcGF0Y2gpCiAKICAgICBpZiAobV9w
ZW5kaW5nU3RhdGVPYmplY3QpIHsKICAgICAgICAgbV9mcmFtZS5kb2N1bWVudCgpLT5zdGF0ZVBv
cHBlZChtX3BlbmRpbmdTdGF0ZU9iamVjdC5nZXQoKSk7Ci0gICAgICAgIG1fcGVuZGluZ1N0YXRl
T2JqZWN0LmNsZWFyKCk7CisgICAgICAgIG1fcGVuZGluZ1N0YXRlT2JqZWN0ID0gbnVsbHB0cjsK
ICAgICB9CiAKICAgICBpZiAoZGlzcGF0Y2gpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9s
b2FkZXIvY2FjaGUvQ2FjaGVkQ1NTU3R5bGVTaGVldC5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9sb2Fk
ZXIvY2FjaGUvQ2FjaGVkQ1NTU3R5bGVTaGVldC5jcHAKaW5kZXggN2MyZmU3ZC4uNmQxMTg4MCAx
MDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvbG9hZGVyL2NhY2hlL0NhY2hlZENTU1N0eWxlU2hl
ZXQuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2xvYWRlci9jYWNoZS9DYWNoZWRDU1NTdHlsZVNo
ZWV0LmNwcApAQCAtMTM4LDcgKzEzOCw3IEBAIHZvaWQgQ2FjaGVkQ1NTU3R5bGVTaGVldDo6ZGVz
dHJveURlY29kZWREYXRhKCkKICAgICAgICAgcmV0dXJuOwogCiAgICAgbV9wYXJzZWRTdHlsZVNo
ZWV0Q2FjaGUtPnJlbW92ZWRGcm9tTWVtb3J5Q2FjaGUoKTsKLSAgICBtX3BhcnNlZFN0eWxlU2hl
ZXRDYWNoZS5jbGVhcigpOworICAgIG1fcGFyc2VkU3R5bGVTaGVldENhY2hlID0gbnVsbHB0cjsK
IAogICAgIHNldERlY29kZWRTaXplKDApOwogfQpAQCAtMTQ2LDExICsxNDYsMTEgQEAgdm9pZCBD
YWNoZWRDU1NTdHlsZVNoZWV0OjpkZXN0cm95RGVjb2RlZERhdGEoKQogUGFzc1JlZlB0cjxTdHls
ZVNoZWV0Q29udGVudHM+IENhY2hlZENTU1N0eWxlU2hlZXQ6OnJlc3RvcmVQYXJzZWRTdHlsZVNo
ZWV0KGNvbnN0IENTU1BhcnNlckNvbnRleHQmIGNvbnRleHQsIENhY2hlUG9saWN5IGNhY2hlUG9s
aWN5KQogewogICAgIGlmICghbV9wYXJzZWRTdHlsZVNoZWV0Q2FjaGUpCi0gICAgICAgIHJldHVy
biAwOworICAgICAgICByZXR1cm4gbnVsbHB0cjsKICAgICBpZiAoIW1fcGFyc2VkU3R5bGVTaGVl
dENhY2hlLT5zdWJyZXNvdXJjZXNBbGxvd1JldXNlKGNhY2hlUG9saWN5KSkgewogICAgICAgICBt
X3BhcnNlZFN0eWxlU2hlZXRDYWNoZS0+cmVtb3ZlZEZyb21NZW1vcnlDYWNoZSgpOwotICAgICAg
ICBtX3BhcnNlZFN0eWxlU2hlZXRDYWNoZS5jbGVhcigpOwotICAgICAgICByZXR1cm4gMDsKKyAg
ICAgICAgbV9wYXJzZWRTdHlsZVNoZWV0Q2FjaGUgPSBudWxscHRyOworICAgICAgICByZXR1cm4g
bnVsbHB0cjsKICAgICB9CiAKICAgICBBU1NFUlQobV9wYXJzZWRTdHlsZVNoZWV0Q2FjaGUtPmlz
Q2FjaGVhYmxlKCkpOwpAQCAtMTU4LDcgKzE1OCw3IEBAIFBhc3NSZWZQdHI8U3R5bGVTaGVldENv
bnRlbnRzPiBDYWNoZWRDU1NTdHlsZVNoZWV0OjpyZXN0b3JlUGFyc2VkU3R5bGVTaGVldChjb25z
CiAKICAgICAvLyBDb250ZXh0cyBtdXN0IGJlIGlkZW50aWNhbCBzbyB3ZSBrbm93IHdlIHdvdWxk
IGdldCB0aGUgc2FtZSBleGFjdCByZXN1bHQgaWYgd2UgcGFyc2VkIGFnYWluLgogICAgIGlmICht
X3BhcnNlZFN0eWxlU2hlZXRDYWNoZS0+cGFyc2VyQ29udGV4dCgpICE9IGNvbnRleHQpCi0gICAg
ICAgIHJldHVybiAwOworICAgICAgICByZXR1cm4gbnVsbHB0cjsKIAogICAgIGRpZEFjY2Vzc0Rl
Y29kZWREYXRhKG1vbm90b25pY2FsbHlJbmNyZWFzaW5nVGltZSgpKTsKIApkaWZmIC0tZ2l0IGEv
U291cmNlL1dlYkNvcmUvbG9hZGVyL2NhY2hlL0NhY2hlZEltYWdlLmNwcCBiL1NvdXJjZS9XZWJD
b3JlL2xvYWRlci9jYWNoZS9DYWNoZWRJbWFnZS5jcHAKaW5kZXggNTI3NjlkYi4uODFkNWQ3YyAx
MDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvbG9hZGVyL2NhY2hlL0NhY2hlZEltYWdlLmNwcAor
KysgYi9Tb3VyY2UvV2ViQ29yZS9sb2FkZXIvY2FjaGUvQ2FjaGVkSW1hZ2UuY3BwCkBAIC0zNjUs
OCArMzY1LDggQEAgaW5saW5lIHZvaWQgQ2FjaGVkSW1hZ2U6OmNsZWFySW1hZ2UoKQogICAgIC8v
IElmIG91ciBJbWFnZSBoYXMgYW4gb2JzZXJ2ZXIsIGl0J3MgYWx3YXlzIHVzIHNvIHdlIG5lZWQg
dG8gY2xlYXIgdGhlIGJhY2sgcG9pbnRlcgogICAgIC8vIGJlZm9yZSBkcm9wcGluZyBvdXIgcmVm
ZXJlbmNlLgogICAgIGlmIChtX2ltYWdlKQotICAgICAgICBtX2ltYWdlLT5zZXRJbWFnZU9ic2Vy
dmVyKDApOwotICAgIG1faW1hZ2UuY2xlYXIoKTsKKyAgICAgICAgbV9pbWFnZS0+c2V0SW1hZ2VP
YnNlcnZlcihudWxscHRyKTsKKyAgICBtX2ltYWdlID0gbnVsbHB0cjsKIH0KIAogdm9pZCBDYWNo
ZWRJbWFnZTo6YWRkSW5jcmVtZW50YWxEYXRhQnVmZmVyKFNoYXJlZEJ1ZmZlciYgZGF0YSkKZGlm
ZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2xvYWRlci9jYWNoZS9DYWNoZWRSYXdSZXNvdXJjZS5j
cHAgYi9Tb3VyY2UvV2ViQ29yZS9sb2FkZXIvY2FjaGUvQ2FjaGVkUmF3UmVzb3VyY2UuY3BwCmlu
ZGV4IDNjMWIyOTUuLjU0YmJkZTEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2xvYWRlci9j
YWNoZS9DYWNoZWRSYXdSZXNvdXJjZS5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvbG9hZGVyL2Nh
Y2hlL0NhY2hlZFJhd1Jlc291cmNlLmNwcApAQCAtMjY4LDcgKzI2OCw3IEBAIGJvb2wgQ2FjaGVk
UmF3UmVzb3VyY2U6OmNhblJldXNlKGNvbnN0IFJlc291cmNlUmVxdWVzdCYgbmV3UmVxdWVzdCkg
Y29uc3QKIAogdm9pZCBDYWNoZWRSYXdSZXNvdXJjZTo6Y2xlYXIoKQogewotICAgIG1fZGF0YS5j
bGVhcigpOworICAgIG1fZGF0YSA9IG51bGxwdHI7CiAgICAgc2V0RW5jb2RlZFNpemUoMCk7CiAg
ICAgaWYgKG1fbG9hZGVyKQogICAgICAgICBtX2xvYWRlci0+Y2xlYXJSZXNvdXJjZURhdGEoKTsK
ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2xvYWRlci9jYWNoZS9DYWNoZWRSZXNvdXJjZS5j
cHAgYi9Tb3VyY2UvV2ViQ29yZS9sb2FkZXIvY2FjaGUvQ2FjaGVkUmVzb3VyY2UuY3BwCmluZGV4
IGY0NDMxYmYuLjNiZWYyMWUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2xvYWRlci9jYWNo
ZS9DYWNoZWRSZXNvdXJjZS5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvbG9hZGVyL2NhY2hlL0Nh
Y2hlZFJlc291cmNlLmNwcApAQCAtMzE3LDcgKzMxNyw3IEBAIHZvaWQgQ2FjaGVkUmVzb3VyY2U6
OmVycm9yKENhY2hlZFJlc291cmNlOjpTdGF0dXMgc3RhdHVzKQogewogICAgIHNldFN0YXR1cyhz
dGF0dXMpOwogICAgIEFTU0VSVChlcnJvck9jY3VycmVkKCkpOwotICAgIG1fZGF0YS5jbGVhcigp
OworICAgIG1fZGF0YSA9IG51bGxwdHI7CiAKICAgICBzZXRMb2FkaW5nKGZhbHNlKTsKICAgICBj
aGVja05vdGlmeSgpOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvbG9hZGVyL2ljb24vSWNv
blJlY29yZC5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9sb2FkZXIvaWNvbi9JY29uUmVjb3JkLmNwcApp
bmRleCBkNGJjMGQxLi5lN2YxZDRiIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9sb2FkZXIv
aWNvbi9JY29uUmVjb3JkLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9sb2FkZXIvaWNvbi9JY29u
UmVjb3JkLmNwcApAQCAtNzEsNyArNzEsNyBAQCB2b2lkIEljb25SZWNvcmQ6OnNldEltYWdlRGF0
YShQYXNzUmVmUHRyPFNoYXJlZEJ1ZmZlcj4gZGF0YSkKICAgICAvLyBDb3B5IHRoZSBwcm92aWRl
ZCBkYXRhIGludG8gdGhlIGJ1ZmZlciBvZiB0aGUgbmV3IEltYWdlIG9iamVjdC4KICAgICBpZiAo
IW1faW1hZ2UtPnNldERhdGEoZGF0YSwgdHJ1ZSkpIHsKICAgICAgICAgTE9HKEljb25EYXRhYmFz
ZSwgIk1hbnVhbCBpbWFnZSBkYXRhIGZvciBpY29uVVJMICclcycgRkFJTEVEIC0gaXQgd2FzIHBy
b2JhYmx5IGludmFsaWQgaW1hZ2UgZGF0YSIsIG1faWNvblVSTC5hc2NpaSgpLmRhdGEoKSk7Ci0g
ICAgICAgIG1faW1hZ2UuY2xlYXIoKTsKKyAgICAgICAgbV9pbWFnZSA9IG51bGxwdHI7CiAgICAg
fQogICAgIAogICAgIG1fZGF0YVNldCA9IHRydWU7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29y
ZS9wYWdlL0V2ZW50SGFuZGxlci5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9wYWdlL0V2ZW50SGFuZGxl
ci5jcHAKaW5kZXggMjE2YWJjNy4uNTdkYWExNSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUv
cGFnZS9FdmVudEhhbmRsZXIuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BhZ2UvRXZlbnRIYW5k
bGVyLmNwcApAQCAtNDk0LDcgKzQ5NCw3IEBAIHZvaWQgRXZlbnRIYW5kbGVyOjpjbGVhcigpCiAj
ZW5kaWYKICNpZiBFTkFCTEUoVE9VQ0hfRVZFTlRTKSAmJiAhRU5BQkxFKElPU19UT1VDSF9FVkVO
VFMpCiAgICAgbV9vcmlnaW5hdGluZ1RvdWNoUG9pbnRUYXJnZXRzLmNsZWFyKCk7Ci0gICAgbV9v
cmlnaW5hdGluZ1RvdWNoUG9pbnREb2N1bWVudC5jbGVhcigpOworICAgIG1fb3JpZ2luYXRpbmdU
b3VjaFBvaW50RG9jdW1lbnQgPSBudWxscHRyOwogICAgIG1fb3JpZ2luYXRpbmdUb3VjaFBvaW50
VGFyZ2V0S2V5ID0gMDsKICNlbmRpZgogICAgIG1fbWF4TW91c2VNb3ZlZER1cmF0aW9uID0gMDsK
QEAgLTM5OTQsNyArMzk5NCw3IEBAIGJvb2wgRXZlbnRIYW5kbGVyOjpoYW5kbGVUb3VjaEV2ZW50
KGNvbnN0IFBsYXRmb3JtVG91Y2hFdmVudCYgZXZlbnQpCiAgICAgfQogICAgIG1fdG91Y2hQcmVz
c2VkID0gdG91Y2hlcy0+bGVuZ3RoKCkgPiAwOwogICAgIGlmIChhbGxUb3VjaFJlbGVhc2VkKQot
ICAgICAgICBtX29yaWdpbmF0aW5nVG91Y2hQb2ludERvY3VtZW50LmNsZWFyKCk7CisgICAgICAg
IG1fb3JpZ2luYXRpbmdUb3VjaFBvaW50RG9jdW1lbnQgPSBudWxscHRyOwogCiAgICAgLy8gTm93
IGl0ZXJhdGUgdGhlIGNoYW5nZWRUb3VjaGVzIGxpc3QgYW5kIG1fdGFyZ2V0cyB3aXRoaW4gaXQs
IHNlbmRpbmcgZXZlbnRzIHRvIHRoZSB0YXJnZXRzIGFzIHJlcXVpcmVkLgogICAgIGJvb2wgc3dh
bGxvd2VkRXZlbnQgPSBmYWxzZTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BhZ2UvUGFn
ZS5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9wYWdlL1BhZ2UuY3BwCmluZGV4IDFkM2RjYzIuLmY4NmQ4
MWYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BhZ2UvUGFnZS5jcHAKKysrIGIvU291cmNl
L1dlYkNvcmUvcGFnZS9QYWdlLmNwcApAQCAtNTE2LDcgKzUxNiw3IEBAIHZvaWQgUGFnZTo6cmVm
cmVzaFBsdWdpbnMoYm9vbCByZWxvYWQpCiAgICAgVmVjdG9yPFJlZjxGcmFtZT4+IGZyYW1lc05l
ZWRpbmdSZWxvYWQ7CiAKICAgICBmb3IgKGF1dG8mIHBhZ2UgOiAqYWxsUGFnZXMpIHsKLSAgICAg
ICAgcGFnZS0+bV9wbHVnaW5EYXRhLmNsZWFyKCk7CisgICAgICAgIHBhZ2UtPm1fcGx1Z2luRGF0
YSA9IG51bGxwdHI7CiAKICAgICAgICAgaWYgKCFyZWxvYWQpCiAgICAgICAgICAgICBjb250aW51
ZTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2F1ZGlvL21hYy9DQVJpbmdC
dWZmZXIuY3BwIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vYXVkaW8vbWFjL0NBUmluZ0J1ZmZl
ci5jcHAKaW5kZXggZjc2ZThkZi4uMDU0NDJhZCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUv
cGxhdGZvcm0vYXVkaW8vbWFjL0NBUmluZ0J1ZmZlci5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUv
cGxhdGZvcm0vYXVkaW8vbWFjL0NBUmluZ0J1ZmZlci5jcHAKQEAgLTg2LDcgKzg2LDcgQEAgdm9p
ZCBDQVJpbmdCdWZmZXI6OmFsbG9jYXRlKHVpbnQzMl90IGNoYW5uZWxDb3VudCwgc2l6ZV90IGJ5
dGVzUGVyRnJhbWUsIHNpemVfdAogdm9pZCBDQVJpbmdCdWZmZXI6OmRlYWxsb2NhdGUoKQogewog
ICAgIGlmIChtX2J1ZmZlcnMpCi0gICAgICAgIG1fYnVmZmVycy5jbGVhcigpOworICAgICAgICBt
X2J1ZmZlcnMgPSBudWxscHRyOwogCiAgICAgbV9jaGFubmVsQ291bnQgPSAwOwogICAgIG1fY2Fw
YWNpdHlCeXRlcyA9IDA7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFw
aGljcy9Gb250LmNwcCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL0ZvbnQuY3Bw
CmluZGV4IDYwM2ViYTguLmQ5MjY1YjUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRm
b3JtL2dyYXBoaWNzL0ZvbnQuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBo
aWNzL0ZvbnQuY3BwCkBAIC0zNjMsNyArMzYzLDcgQEAgY29uc3QgT3BlblR5cGVNYXRoRGF0YSog
Rm9udDo6bWF0aERhdGEoKSBjb25zdAogICAgIGlmICghbV9tYXRoRGF0YSkgewogICAgICAgICBt
X21hdGhEYXRhID0gT3BlblR5cGVNYXRoRGF0YTo6Y3JlYXRlKG1fcGxhdGZvcm1EYXRhKTsKICAg
ICAgICAgaWYgKCFtX21hdGhEYXRhLT5oYXNNYXRoRGF0YSgpKQotICAgICAgICAgICAgbV9tYXRo
RGF0YS5jbGVhcigpOworICAgICAgICAgICAgbV9tYXRoRGF0YSA9IG51bGxwdHI7CiAgICAgfQog
ICAgIHJldHVybiBtX21hdGhEYXRhLmdldCgpOwogfQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNv
cmUvcGxhdGZvcm0vZ3JhcGhpY3MvRm9udENhY2hlLmNwcCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRm
b3JtL2dyYXBoaWNzL0ZvbnRDYWNoZS5jcHAKaW5kZXggYTZjNDA0OS4uOGQxYTgzNSAxMDA2NDQK
LS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvRm9udENhY2hlLmNwcAorKysg
Yi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9Gb250Q2FjaGUuY3BwCkBAIC0zMjAs
NyArMzIwLDcgQEAgUGFzc1JlZlB0cjxPcGVuVHlwZVZlcnRpY2FsRGF0YT4gRm9udENhY2hlOjpn
ZXRWZXJ0aWNhbERhdGEoY29uc3QgRm9udEZpbGVLZXkmIGsKIAogICAgIFJlZlB0cjxPcGVuVHlw
ZVZlcnRpY2FsRGF0YT4gdmVydGljYWxEYXRhID0gT3BlblR5cGVWZXJ0aWNhbERhdGE6OmNyZWF0
ZShwbGF0Zm9ybURhdGEpOwogICAgIGlmICghdmVydGljYWxEYXRhLT5pc09wZW5UeXBlKCkpCi0g
ICAgICAgIHZlcnRpY2FsRGF0YS5jbGVhcigpOworICAgICAgICB2ZXJ0aWNhbERhdGEgPSBudWxs
cHRyOwogICAgIGZvbnRWZXJ0aWNhbERhdGFDYWNoZS5zZXQoa2V5LCB2ZXJ0aWNhbERhdGEpOwog
ICAgIHJldHVybiB2ZXJ0aWNhbERhdGE7CiB9CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9w
bGF0Zm9ybS9ncmFwaGljcy9HcmFwaGljc0NvbnRleHQuY3BwIGIvU291cmNlL1dlYkNvcmUvcGxh
dGZvcm0vZ3JhcGhpY3MvR3JhcGhpY3NDb250ZXh0LmNwcAppbmRleCBkMzhjMWZhLi5lNmIzN2Zk
IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9HcmFwaGljc0Nv
bnRleHQuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL0dyYXBoaWNz
Q29udGV4dC5jcHAKQEAgLTE3OCw4ICsxNzgsOCBAQCB2b2lkIEdyYXBoaWNzQ29udGV4dDo6c2V0
U3Ryb2tlQ29sb3IoY29uc3QgQ29sb3ImIGNvbG9yLCBDb2xvclNwYWNlIGNvbG9yU3BhY2UpCiB7
CiAgICAgbV9zdGF0ZS5zdHJva2VDb2xvciA9IGNvbG9yOwogICAgIG1fc3RhdGUuc3Ryb2tlQ29s
b3JTcGFjZSA9IGNvbG9yU3BhY2U7Ci0gICAgbV9zdGF0ZS5zdHJva2VHcmFkaWVudC5jbGVhcigp
OwotICAgIG1fc3RhdGUuc3Ryb2tlUGF0dGVybi5jbGVhcigpOworICAgIG1fc3RhdGUuc3Ryb2tl
R3JhZGllbnQgPSBudWxscHRyOworICAgIG1fc3RhdGUuc3Ryb2tlUGF0dGVybiA9IG51bGxwdHI7
CiAgICAgc2V0UGxhdGZvcm1TdHJva2VDb2xvcihjb2xvciwgY29sb3JTcGFjZSk7CiB9CiAKQEAg
LTI0NSw4ICsyNDUsOCBAQCB2b2lkIEdyYXBoaWNzQ29udGV4dDo6c2V0RmlsbENvbG9yKGNvbnN0
IENvbG9yJiBjb2xvciwgQ29sb3JTcGFjZSBjb2xvclNwYWNlKQogewogICAgIG1fc3RhdGUuZmls
bENvbG9yID0gY29sb3I7CiAgICAgbV9zdGF0ZS5maWxsQ29sb3JTcGFjZSA9IGNvbG9yU3BhY2U7
Ci0gICAgbV9zdGF0ZS5maWxsR3JhZGllbnQuY2xlYXIoKTsKLSAgICBtX3N0YXRlLmZpbGxQYXR0
ZXJuLmNsZWFyKCk7CisgICAgbV9zdGF0ZS5maWxsR3JhZGllbnQgPSBudWxscHRyOworICAgIG1f
c3RhdGUuZmlsbFBhdHRlcm4gPSBudWxscHRyOwogICAgIHNldFBsYXRmb3JtRmlsbENvbG9yKGNv
bG9yLCBjb2xvclNwYWNlKTsKIH0KIApAQCAtMjY5LDI2ICsyNjksMjYgQEAgdm9pZCBHcmFwaGlj
c0NvbnRleHQ6OnNldEFudGlhbGlhc2VkRm9udERpbGF0aW9uRW5hYmxlZChib29sIGFudGlhbGlh
c2VkRm9udERpbGEKIAogdm9pZCBHcmFwaGljc0NvbnRleHQ6OnNldFN0cm9rZVBhdHRlcm4oUmVm
PFBhdHRlcm4+JiYgcGF0dGVybikKIHsKLSAgICBtX3N0YXRlLnN0cm9rZUdyYWRpZW50LmNsZWFy
KCk7CisgICAgbV9zdGF0ZS5zdHJva2VHcmFkaWVudCA9IG51bGxwdHI7CiAgICAgbV9zdGF0ZS5z
dHJva2VQYXR0ZXJuID0gV1RGOjptb3ZlKHBhdHRlcm4pOwogfQogCiB2b2lkIEdyYXBoaWNzQ29u
dGV4dDo6c2V0RmlsbFBhdHRlcm4oUmVmPFBhdHRlcm4+JiYgcGF0dGVybikKIHsKLSAgICBtX3N0
YXRlLmZpbGxHcmFkaWVudC5jbGVhcigpOworICAgIG1fc3RhdGUuZmlsbEdyYWRpZW50ID0gbnVs
bHB0cjsKICAgICBtX3N0YXRlLmZpbGxQYXR0ZXJuID0gV1RGOjptb3ZlKHBhdHRlcm4pOwogfQog
CiB2b2lkIEdyYXBoaWNzQ29udGV4dDo6c2V0U3Ryb2tlR3JhZGllbnQoUmVmPEdyYWRpZW50PiYm
IGdyYWRpZW50KQogewogICAgIG1fc3RhdGUuc3Ryb2tlR3JhZGllbnQgPSBXVEY6Om1vdmUoZ3Jh
ZGllbnQpOwotICAgIG1fc3RhdGUuc3Ryb2tlUGF0dGVybi5jbGVhcigpOworICAgIG1fc3RhdGUu
c3Ryb2tlUGF0dGVybiA9IG51bGxwdHI7CiB9CiAKIHZvaWQgR3JhcGhpY3NDb250ZXh0OjpzZXRG
aWxsR3JhZGllbnQoUmVmPEdyYWRpZW50PiYmIGdyYWRpZW50KQogewogICAgIG1fc3RhdGUuZmls
bEdyYWRpZW50ID0gV1RGOjptb3ZlKGdyYWRpZW50KTsKLSAgICBtX3N0YXRlLmZpbGxQYXR0ZXJu
LmNsZWFyKCk7CisgICAgbV9zdGF0ZS5maWxsUGF0dGVybiA9IG51bGxwdHI7CiB9CiAKIHZvaWQg
R3JhcGhpY3NDb250ZXh0OjpiZWdpblRyYW5zcGFyZW5jeUxheWVyKGZsb2F0IG9wYWNpdHkpCmRp
ZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9jYWlyby9CYWNraW5n
U3RvcmVCYWNrZW5kQ2Fpcm9YMTEuY3BwIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhp
Y3MvY2Fpcm8vQmFja2luZ1N0b3JlQmFja2VuZENhaXJvWDExLmNwcAppbmRleCA3Yjg2MzFhLi40
MzdkYWZjIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9jYWly
by9CYWNraW5nU3RvcmVCYWNrZW5kQ2Fpcm9YMTEuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3Bs
YXRmb3JtL2dyYXBoaWNzL2NhaXJvL0JhY2tpbmdTdG9yZUJhY2tlbmRDYWlyb1gxMS5jcHAKQEAg
LTQzLDcgKzQzLDcgQEAgQmFja2luZ1N0b3JlQmFja2VuZENhaXJvWDExOjpCYWNraW5nU3RvcmVC
YWNrZW5kQ2Fpcm9YMTEodW5zaWduZWQgbG9uZyByb290V2luZG8KIEJhY2tpbmdTdG9yZUJhY2tl
bmRDYWlyb1gxMTo6fkJhY2tpbmdTdG9yZUJhY2tlbmRDYWlyb1gxMSgpCiB7CiAgICAgLy8gVGhl
IHBpeG1hcCBuZWVkcyB0byBleGlzdCB3aGVuIHRoZSBzdXJmYWNlIGlzIGRlc3Ryb3llZCwgc28g
YmVnaW4gYnkgY2xlYXJpbmcgaXQuCi0gICAgbV9zdXJmYWNlLmNsZWFyKCk7CisgICAgbV9zdXJm
YWNlID0gbnVsbHB0cjsKIH0KIAogdm9pZCBCYWNraW5nU3RvcmVCYWNrZW5kQ2Fpcm9YMTE6OnNj
cm9sbChjb25zdCBJbnRSZWN0JiBzY3JvbGxSZWN0LCBjb25zdCBJbnRTaXplJiBzY3JvbGxPZmZz
ZXQpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9jYWlyby9C
aXRtYXBJbWFnZUNhaXJvLmNwcCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2Nh
aXJvL0JpdG1hcEltYWdlQ2Fpcm8uY3BwCmluZGV4IDI2ZGY1ZGYuLmYwZDNhN2EgMTAwNjQ0Ci0t
LSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2NhaXJvL0JpdG1hcEltYWdlQ2Fp
cm8uY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2NhaXJvL0JpdG1h
cEltYWdlQ2Fpcm8uY3BwCkBAIC0xNTksNyArMTU5LDcgQEAgYm9vbCBGcmFtZURhdGE6OmNsZWFy
KGJvb2wgY2xlYXJNZXRhZGF0YSkKICAgICAgICAgbV9oYXZlTWV0YWRhdGEgPSBmYWxzZTsKIAog
ICAgIGlmIChtX2ZyYW1lKSB7Ci0gICAgICAgIG1fZnJhbWUuY2xlYXIoKTsKKyAgICAgICAgbV9m
cmFtZSA9IG51bGxwdHI7CiAgICAgICAgIHJldHVybiB0cnVlOwogICAgIH0KICAgICByZXR1cm4g
ZmFsc2U7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9maWx0
ZXJzL0ZpbHRlckVmZmVjdC5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9m
aWx0ZXJzL0ZpbHRlckVmZmVjdC5jcHAKaW5kZXggNzYyNzAwOC4uYzk4ZDViOSAxMDA2NDQKLS0t
IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvZmlsdGVycy9GaWx0ZXJFZmZlY3Qu
Y3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2ZpbHRlcnMvRmlsdGVy
RWZmZWN0LmNwcApAQCAtMjQ1LDEyICsyNDUsMTIgQEAgdm9pZCBGaWx0ZXJFZmZlY3Q6OmNsZWFy
UmVzdWx0KCkKICAgICBpZiAobV9pbWFnZUJ1ZmZlclJlc3VsdCkKICAgICAgICAgbV9pbWFnZUJ1
ZmZlclJlc3VsdC5yZXNldCgpOwogICAgIGlmIChtX3VubXVsdGlwbGllZEltYWdlUmVzdWx0KQot
ICAgICAgICBtX3VubXVsdGlwbGllZEltYWdlUmVzdWx0LmNsZWFyKCk7CisgICAgICAgIG1fdW5t
dWx0aXBsaWVkSW1hZ2VSZXN1bHQgPSBudWxscHRyOwogICAgIGlmIChtX3ByZW11bHRpcGxpZWRJ
bWFnZVJlc3VsdCkKLSAgICAgICAgbV9wcmVtdWx0aXBsaWVkSW1hZ2VSZXN1bHQuY2xlYXIoKTsK
KyAgICAgICAgbV9wcmVtdWx0aXBsaWVkSW1hZ2VSZXN1bHQgPSBudWxscHRyOwogI2lmIEVOQUJM
RShPUEVOQ0wpCiAgICAgaWYgKG1fb3BlbkNMSW1hZ2VSZXN1bHQpCi0gICAgICAgIG1fb3BlbkNM
SW1hZ2VSZXN1bHQuY2xlYXIoKTsKKyAgICAgICAgbV9vcGVuQ0xJbWFnZVJlc3VsdCA9IG51bGxw
dHI7CiAjZW5kaWYKIH0KIApAQCAtNTQwLDcgKzU0MCw3IEBAIHZvaWQgRmlsdGVyRWZmZWN0Ojp0
cmFuc2Zvcm1SZXN1bHRDb2xvclNwYWNlKENvbG9yU3BhY2UgZHN0Q29sb3JTcGFjZSkKICNpZiBF
TkFCTEUoT1BFTkNMKQogICAgIGlmIChvcGVuQ0xJbWFnZSgpKSB7CiAgICAgICAgIGlmIChtX2lt
YWdlQnVmZmVyUmVzdWx0KQotICAgICAgICAgICAgbV9pbWFnZUJ1ZmZlclJlc3VsdC5jbGVhcigp
OworICAgICAgICAgICAgbV9pbWFnZUJ1ZmZlclJlc3VsdCA9IG51bGxwdHI7CiAgICAgICAgIEZp
bHRlckNvbnRleHRPcGVuQ0wqIGNvbnRleHQgPSBGaWx0ZXJDb250ZXh0T3BlbkNMOjpjb250ZXh0
KCk7CiAgICAgICAgIEFTU0VSVChjb250ZXh0KTsKICAgICAgICAgY29udGV4dC0+b3BlbkNMVHJh
bnNmb3JtQ29sb3JTcGFjZShtX29wZW5DTEltYWdlUmVzdWx0LCBhYnNvbHV0ZVBhaW50UmVjdCgp
LCBtX3Jlc3VsdENvbG9yU3BhY2UsIGRzdENvbG9yU3BhY2UpOwpAQCAtNTU4LDkgKzU1OCw5IEBA
IHZvaWQgRmlsdGVyRWZmZWN0Ojp0cmFuc2Zvcm1SZXN1bHRDb2xvclNwYWNlKENvbG9yU3BhY2Ug
ZHN0Q29sb3JTcGFjZSkKICAgICBtX3Jlc3VsdENvbG9yU3BhY2UgPSBkc3RDb2xvclNwYWNlOwog
CiAgICAgaWYgKG1fdW5tdWx0aXBsaWVkSW1hZ2VSZXN1bHQpCi0gICAgICAgIG1fdW5tdWx0aXBs
aWVkSW1hZ2VSZXN1bHQuY2xlYXIoKTsKKyAgICAgICAgbV91bm11bHRpcGxpZWRJbWFnZVJlc3Vs
dCA9IG51bGxwdHI7CiAgICAgaWYgKG1fcHJlbXVsdGlwbGllZEltYWdlUmVzdWx0KQotICAgICAg
ICBtX3ByZW11bHRpcGxpZWRJbWFnZVJlc3VsdC5jbGVhcigpOworICAgICAgICBtX3ByZW11bHRp
cGxpZWRJbWFnZVJlc3VsdCA9IG51bGxwdHI7CiAjZW5kaWYKIH0KIApkaWZmIC0tZ2l0IGEvU291
cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvdGV4bWFwL0JpdG1hcFRleHR1cmVHTC5jcHAg
Yi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy90ZXhtYXAvQml0bWFwVGV4dHVyZUdM
LmNwcAppbmRleCA5NzVjMzhmLi4wZTUyZDdiIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9w
bGF0Zm9ybS9ncmFwaGljcy90ZXhtYXAvQml0bWFwVGV4dHVyZUdMLmNwcAorKysgYi9Tb3VyY2Uv
V2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy90ZXhtYXAvQml0bWFwVGV4dHVyZUdMLmNwcApAQCAt
Mjc4LDcgKzI3OCw3IEBAIFBhc3NSZWZQdHI8Qml0bWFwVGV4dHVyZT4gQml0bWFwVGV4dHVyZUdM
OjphcHBseUZpbHRlcnMoVGV4dHVyZU1hcHBlciogdGV4dHVyZU1hCiAgICAgICAgICAgICB0ZXht
YXBHTC0+ZHJhd0ZpbHRlcmVkKCpyZXN1bHRTdXJmYWNlLmdldCgpLCBzcGFyZVN1cmZhY2UuZ2V0
KCksICpmaWx0ZXIsIGopOwogICAgICAgICAgICAgaWYgKCFqICYmIGZpbHRlci0+dHlwZSgpID09
IEZpbHRlck9wZXJhdGlvbjo6RFJPUF9TSEFET1cpIHsKICAgICAgICAgICAgICAgICBzcGFyZVN1
cmZhY2UgPSByZXN1bHRTdXJmYWNlOwotICAgICAgICAgICAgICAgIHJlc3VsdFN1cmZhY2UuY2xl
YXIoKTsKKyAgICAgICAgICAgICAgICByZXN1bHRTdXJmYWNlID0gbnVsbHB0cjsKICAgICAgICAg
ICAgIH0KICAgICAgICAgICAgIHN0ZDo6c3dhcChyZXN1bHRTdXJmYWNlLCBpbnRlcm1lZGlhdGVT
dXJmYWNlKTsKICAgICAgICAgfQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0v
Z3JhcGhpY3MvdGV4bWFwL1RleHR1cmVNYXBwZXJHTC5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0
Zm9ybS9ncmFwaGljcy90ZXhtYXAvVGV4dHVyZU1hcHBlckdMLmNwcAppbmRleCAwYmNlOGM3Li40
YzU0ODA1IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy90ZXht
YXAvVGV4dHVyZU1hcHBlckdMLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFw
aGljcy90ZXhtYXAvVGV4dHVyZU1hcHBlckdMLmNwcApAQCAtNjkxLDcgKzY5MSw3IEBAIHZvaWQg
VGV4dHVyZU1hcHBlckdMOjpiaW5kRGVmYXVsdFN1cmZhY2UoKQogICAgIGRhdGEoKS5wcm9qZWN0
aW9uTWF0cml4ID0gY3JlYXRlUHJvamVjdGlvbk1hdHJpeCh2aWV3cG9ydFNpemUsIGRhdGEoKS5Q
YWludEZsYWdzICYgUGFpbnRpbmdNaXJyb3JlZCk7CiAgICAgbV9jb250ZXh0M0QtPnZpZXdwb3J0
KGRhdGEoKS52aWV3cG9ydFswXSwgZGF0YSgpLnZpZXdwb3J0WzFdLCB2aWV3cG9ydFNpemUud2lk
dGgoKSwgdmlld3BvcnRTaXplLmhlaWdodCgpKTsKICAgICBtX2NsaXBTdGFjay5hcHBseShtX2Nv
bnRleHQzRC5nZXQoKSk7Ci0gICAgZGF0YSgpLmN1cnJlbnRTdXJmYWNlLmNsZWFyKCk7CisgICAg
ZGF0YSgpLmN1cnJlbnRTdXJmYWNlID0gbnVsbHB0cjsKIH0KIAogdm9pZCBUZXh0dXJlTWFwcGVy
R0w6OmJpbmRTdXJmYWNlKEJpdG1hcFRleHR1cmUgKnN1cmZhY2UpCmRpZmYgLS1naXQgYS9Tb3Vy
Y2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy90ZXhtYXAvVGV4dHVyZU1hcHBlckxheWVyLmNw
cCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL3RleG1hcC9UZXh0dXJlTWFwcGVy
TGF5ZXIuY3BwCmluZGV4IGM4NjQyMDIuLjM0NTUzOTggMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJD
b3JlL3BsYXRmb3JtL2dyYXBoaWNzL3RleG1hcC9UZXh0dXJlTWFwcGVyTGF5ZXIuY3BwCisrKyBi
L1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL3RleG1hcC9UZXh0dXJlTWFwcGVyTGF5
ZXIuY3BwCkBAIC00MDgsNyArNDA4LDcgQEAgdm9pZCBUZXh0dXJlTWFwcGVyTGF5ZXI6OnBhaW50
V2l0aEludGVybWVkaWF0ZVN1cmZhY2UoY29uc3QgVGV4dHVyZU1hcHBlclBhaW50T3AKIAogICAg
IGlmIChyZXBsaWNhU3VyZmFjZSAmJiBvcHRpb25zLm9wYWNpdHkgPT0gMSkgewogICAgICAgICBj
b21taXRTdXJmYWNlKG9wdGlvbnMsIHJlcGxpY2FTdXJmYWNlLCByZWN0LCAxKTsKLSAgICAgICAg
cmVwbGljYVN1cmZhY2UuY2xlYXIoKTsKKyAgICAgICAgcmVwbGljYVN1cmZhY2UgPSBudWxscHRy
OwogICAgIH0KIAogICAgIG1haW5TdXJmYWNlID0gcGFpbnRJbnRvU3VyZmFjZShwYWludE9wdGlv
bnMsIHJlY3Quc2l6ZSgpKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dy
YXBoaWNzL3RleG1hcC9UZXh0dXJlTWFwcGVyVGlsZWRCYWNraW5nU3RvcmUuY3BwIGIvU291cmNl
L1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvdGV4bWFwL1RleHR1cmVNYXBwZXJUaWxlZEJhY2tp
bmdTdG9yZS5jcHAKaW5kZXggMjA4MDQ2Mi4uZDM1NzEwYSAxMDA2NDQKLS0tIGEvU291cmNlL1dl
YkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvdGV4bWFwL1RleHR1cmVNYXBwZXJUaWxlZEJhY2tpbmdT
dG9yZS5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvdGV4bWFwL1Rl
eHR1cmVNYXBwZXJUaWxlZEJhY2tpbmdTdG9yZS5jcHAKQEAgLTM5LDcgKzM5LDcgQEAgdm9pZCBU
ZXh0dXJlTWFwcGVyVGlsZWRCYWNraW5nU3RvcmU6OnVwZGF0ZUNvbnRlbnRzRnJvbUltYWdlSWZO
ZWVkZWQoVGV4dHVyZU1hcHAKICAgICAgICAgcmV0dXJuOwogCiAgICAgdXBkYXRlQ29udGVudHMo
dGV4dHVyZU1hcHBlciwgbV9pbWFnZS5nZXQoKSwgbV9pbWFnZS0+c2l6ZSgpLCBlbmNsb3NpbmdJ
bnRSZWN0KG1faW1hZ2UtPnJlY3QoKSksIEJpdG1hcFRleHR1cmU6OlVwZGF0ZUNhbm5vdE1vZGlm
eU9yaWdpbmFsSW1hZ2VEYXRhKTsKLSAgICBtX2ltYWdlLmNsZWFyKCk7CisgICAgbV9pbWFnZSA9
IG51bGxwdHI7CiB9CiAKIFRyYW5zZm9ybWF0aW9uTWF0cml4IFRleHR1cmVNYXBwZXJUaWxlZEJh
Y2tpbmdTdG9yZTo6YWRqdXN0ZWRUcmFuc2Zvcm1Gb3JSZWN0KGNvbnN0IEZsb2F0UmVjdCYgdGFy
Z2V0UmVjdCkKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL3Rl
eG1hcC9jb29yZGluYXRlZC9Db29yZGluYXRlZEdyYXBoaWNzTGF5ZXIuY3BwIGIvU291cmNlL1dl
YkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvdGV4bWFwL2Nvb3JkaW5hdGVkL0Nvb3JkaW5hdGVkR3Jh
cGhpY3NMYXllci5jcHAKaW5kZXggZTJlMWY0YS4uYTcwZTdhMCAxMDA2NDQKLS0tIGEvU291cmNl
L1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvdGV4bWFwL2Nvb3JkaW5hdGVkL0Nvb3JkaW5hdGVk
R3JhcGhpY3NMYXllci5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3Mv
dGV4bWFwL2Nvb3JkaW5hdGVkL0Nvb3JkaW5hdGVkR3JhcGhpY3NMYXllci5jcHAKQEAgLTgyMCw3
ICs4MjAsNyBAQCB2b2lkIENvb3JkaW5hdGVkR3JhcGhpY3NMYXllcjo6cmVsZWFzZUltYWdlQmFj
a2luZ0lmTmVlZGVkKCkKIAogICAgIEFTU0VSVChtX2Nvb3JkaW5hdG9yKTsKICAgICBtX2Nvb3Jk
aW5hdGVkSW1hZ2VCYWNraW5nLT5yZW1vdmVIb3N0KHRoaXMpOwotICAgIG1fY29vcmRpbmF0ZWRJ
bWFnZUJhY2tpbmcuY2xlYXIoKTsKKyAgICBtX2Nvb3JkaW5hdGVkSW1hZ2VCYWNraW5nID0gbnVs
bHB0cjsKICAgICBtX2xheWVyU3RhdGUuaW1hZ2VJRCA9IEludmFsaWRDb29yZGluYXRlZEltYWdl
QmFja2luZ0lEOwogICAgIG1fbGF5ZXJTdGF0ZS5pbWFnZUNoYW5nZWQgPSB0cnVlOwogfQpkaWZm
IC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvdGV4bWFwL2Nvb3JkaW5h
dGVkL0Nvb3JkaW5hdGVkSW1hZ2VCYWNraW5nLmNwcCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3Jt
L2dyYXBoaWNzL3RleG1hcC9jb29yZGluYXRlZC9Db29yZGluYXRlZEltYWdlQmFja2luZy5jcHAK
aW5kZXggZDIyYjE1ZS4uZTI2MTUwZiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZv
cm0vZ3JhcGhpY3MvdGV4bWFwL2Nvb3JkaW5hdGVkL0Nvb3JkaW5hdGVkSW1hZ2VCYWNraW5nLmNw
cAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy90ZXhtYXAvY29vcmRpbmF0
ZWQvQ29vcmRpbmF0ZWRJbWFnZUJhY2tpbmcuY3BwCkBAIC0xNDEsNyArMTQxLDcgQEAgdm9pZCBD
b29yZGluYXRlZEltYWdlQmFja2luZzo6cmVsZWFzZVN1cmZhY2VJZk5lZWRlZCgpCiB7CiAgICAg
Ly8gV2UgbXVzdCBrZWVwIG1fc3VyZmFjZSB1bnRpbCBVSSBQcm9jZXNzIHJlYWRzIG1fc3VyZmFj
ZS4KICAgICAvLyBJZiBtX3N1cmZhY2UgZXhpc3RzLCBpdCB3YXMgY3JlYXRlZCBpbiB0aGUgcHJl
dmlvdXMgdXBkYXRlLgotICAgIG1fc3VyZmFjZS5jbGVhcigpOworICAgIG1fc3VyZmFjZSA9IG51
bGxwdHI7CiB9CiAKIHN0YXRpYyBjb25zdCBkb3VibGUgY2xlYXJDb250ZW50c1RpbWVySW50ZXJ2
YWwgPSAzOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3RrL0dhbWVwYWRz
R3RrLmNwcCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2d0ay9HYW1lcGFkc0d0ay5jcHAKaW5k
ZXggMjZmOWJlNi4uOWZiMjlmMiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0v
Z3RrL0dhbWVwYWRzR3RrLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ndGsvR2Ft
ZXBhZHNHdGsuY3BwCkBAIC0xNTUsNyArMTU1LDcgQEAgdm9pZCBHYW1lcGFkc0d0azo6dW5yZWdp
c3RlckRldmljZShTdHJpbmcgZGV2aWNlRmlsZSkKICAgICBzaXplX3QgaW5kZXggPSBtX3Nsb3Rz
LmZpbmQoZ2FtZXBhZERldmljZSk7CiAgICAgQVNTRVJUKGluZGV4ICE9IG5vdEZvdW5kKTsKIAot
ICAgIG1fc2xvdHNbaW5kZXhdLmNsZWFyKCk7CisgICAgbV9zbG90c1tpbmRleF0gPSBudWxscHRy
OwogfQogCiB2b2lkIEdhbWVwYWRzR3RrOjp1cGRhdGVHYW1lcGFkTGlzdChHYW1lcGFkTGlzdCog
aW50bykKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9JbmxpbmVGbG93Qm94
LmNwcCBiL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9JbmxpbmVGbG93Qm94LmNwcAppbmRleCA0
MTY4MmM4Li4yZDZmYjY5IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvSW5s
aW5lRmxvd0JveC5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL0lubGluZUZsb3dC
b3guY3BwCkBAIC05NTQsNyArOTU0LDcgQEAgdm9pZCBJbmxpbmVGbG93Qm94Ojpjb21wdXRlT3Zl
cmZsb3coTGF5b3V0VW5pdCBsaW5lVG9wLCBMYXlvdXRVbml0IGxpbmVCb3R0b20sIEcKICAgICAg
ICAgcmV0dXJuOwogCiAgICAgaWYgKG1fb3ZlcmZsb3cpCi0gICAgICAgIG1fb3ZlcmZsb3cuY2xl
YXIoKTsKKyAgICAgICAgbV9vdmVyZmxvdyA9IG51bGxwdHI7CiAKICAgICAvLyBWaXN1YWwgb3Zl
cmZsb3cganVzdCBpbmNsdWRlcyBvdmVyZmxvdyBmb3Igc3R1ZmYgd2UgbmVlZCB0byByZXBhaW50
IG91cnNlbHZlcy4gIFNlbGYtcGFpbnRpbmcgbGF5ZXJzIGFyZSBpZ25vcmVkLgogICAgIC8vIExh
eW91dCBvdmVyZmxvdyBpcyB1c2VkIHRvIGRldGVybWluZSBzY3JvbGxpbmcgZXh0ZW50LCBzbyBp
dCBzdGlsbCBpbmNsdWRlcyBjaGlsZCBsYXllcnMgYW5kIGFsc28gZmFjdG9ycyBpbgpkaWZmIC0t
Z2l0IGEvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlckJveC5jcHAgYi9Tb3VyY2UvV2Vi
Q29yZS9yZW5kZXJpbmcvUmVuZGVyQm94LmNwcAppbmRleCA1MDJkZjY2Li42MTcxZGI1IDEwMDY0
NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyQm94LmNwcAorKysgYi9Tb3Vy
Y2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyQm94LmNwcApAQCAtNDQ5Nyw3ICs0NDk3LDcgQEAg
dm9pZCBSZW5kZXJCb3g6OmFkZFZpc3VhbE92ZXJmbG93KGNvbnN0IExheW91dFJlY3QmIHJlY3Qp
CiAKIHZvaWQgUmVuZGVyQm94OjpjbGVhck92ZXJmbG93KCkKIHsKLSAgICBtX292ZXJmbG93LmNs
ZWFyKCk7CisgICAgbV9vdmVyZmxvdyA9IG51bGxwdHI7CiAgICAgUmVuZGVyRmxvd1RocmVhZCog
Zmxvd1RocmVhZCA9IGZsb3dUaHJlYWRDb250YWluaW5nQmxvY2soKTsKICAgICBpZiAoZmxvd1Ro
cmVhZCkKICAgICAgICAgZmxvd1RocmVhZC0+Y2xlYXJSZWdpb25zT3ZlcmZsb3codGhpcyk7CmRp
ZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyQm94UmVnaW9uSW5mby5o
IGIvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlckJveFJlZ2lvbkluZm8uaAppbmRleCA2
MjM2MDhkLi5lYTIzYzFlYyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1Jl
bmRlckJveFJlZ2lvbkluZm8uaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVy
Qm94UmVnaW9uSW5mby5oCkBAIC01Myw3ICs1Myw3IEBAIHB1YmxpYzoKICAgICB2b2lkIGNsZWFy
T3ZlcmZsb3coKQogICAgIHsKICAgICAgICAgaWYgKG1fb3ZlcmZsb3cpCi0gICAgICAgICAgICBt
X292ZXJmbG93LmNsZWFyKCk7CisgICAgICAgICAgICBtX292ZXJmbG93ID0gbnVsbHB0cjsKICAg
ICB9CiAKIHByaXZhdGU6CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvc3R5
bGUvRmlsbExheWVyLmggYi9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvc3R5bGUvRmlsbExheWVy
LmgKaW5kZXggOGIwNmNlMy4uMDMwOTg2MyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcmVu
ZGVyaW5nL3N0eWxlL0ZpbGxMYXllci5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9z
dHlsZS9GaWxsTGF5ZXIuaApAQCAtMTIxLDggKzEyMSw4IEBAIHB1YmxpYzoKICAgICB2b2lkIHNl
dFNpemUoRmlsbFNpemUgZikgeyBtX3NpemVUeXBlID0gZi50eXBlOyBtX3NpemVMZW5ndGggPSBm
LnNpemU7IH0KICAgICB2b2lkIHNldE1hc2tTb3VyY2VUeXBlKEVNYXNrU291cmNlVHlwZSBtKSB7
IG1fbWFza1NvdXJjZVR5cGUgPSBtOyBtX21hc2tTb3VyY2VUeXBlU2V0ID0gdHJ1ZTsgfQogCi0g
ICAgdm9pZCBjbGVhck1hc2tJbWFnZSgpIHsgbV9tYXNrSW1hZ2VPcGVyYXRpb24uY2xlYXIoKTsg
fQotICAgIHZvaWQgY2xlYXJJbWFnZSgpIHsgbV9pbWFnZS5jbGVhcigpOyBtX2ltYWdlU2V0ID0g
ZmFsc2U7IH0KKyAgICB2b2lkIGNsZWFyTWFza0ltYWdlKCkgeyBtX21hc2tJbWFnZU9wZXJhdGlv
biA9IG51bGxwdHI7IH0KKyAgICB2b2lkIGNsZWFySW1hZ2UoKSB7IG1faW1hZ2UgPSBudWxscHRy
OyBtX2ltYWdlU2V0ID0gZmFsc2U7IH0KICAgICB2b2lkIGNsZWFyWFBvc2l0aW9uKCkgeyBtX3hQ
b3NTZXQgPSBmYWxzZTsgbV9iYWNrZ3JvdW5kT3JpZ2luU2V0ID0gZmFsc2U7IH0KICAgICB2b2lk
IGNsZWFyWVBvc2l0aW9uKCkgeyBtX3lQb3NTZXQgPSBmYWxzZTsgbV9iYWNrZ3JvdW5kT3JpZ2lu
U2V0ID0gZmFsc2U7IH0KIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvc3ZnL1NWR1RSZWZF
bGVtZW50LmNwcCBiL1NvdXJjZS9XZWJDb3JlL3N2Zy9TVkdUUmVmRWxlbWVudC5jcHAKaW5kZXgg
MjI1YTMwNC4uZTNmYWQ4ZCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvc3ZnL1NWR1RSZWZF
bGVtZW50LmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9zdmcvU1ZHVFJlZkVsZW1lbnQuY3BwCkBA
IC0xMDQsNyArMTA0LDcgQEAgdm9pZCBTVkdUUmVmVGFyZ2V0RXZlbnRMaXN0ZW5lcjo6ZGV0YWNo
KCkKIAogICAgIG1fdGFyZ2V0LT5yZW1vdmVFdmVudExpc3RlbmVyKGV2ZW50TmFtZXMoKS5ET01T
dWJ0cmVlTW9kaWZpZWRFdmVudCwgdGhpcywgZmFsc2UpOwogICAgIG1fdGFyZ2V0LT5yZW1vdmVF
dmVudExpc3RlbmVyKGV2ZW50TmFtZXMoKS5ET01Ob2RlUmVtb3ZlZEZyb21Eb2N1bWVudEV2ZW50
LCB0aGlzLCBmYWxzZSk7Ci0gICAgbV90YXJnZXQuY2xlYXIoKTsKKyAgICBtX3RhcmdldCA9IG51
bGxwdHI7CiB9CiAKIGJvb2wgU1ZHVFJlZlRhcmdldEV2ZW50TGlzdGVuZXI6Om9wZXJhdG9yPT0o
Y29uc3QgRXZlbnRMaXN0ZW5lciYgbGlzdGVuZXIpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29y
ZS90ZXN0aW5nL0ludGVybmFscy5jcHAgYi9Tb3VyY2UvV2ViQ29yZS90ZXN0aW5nL0ludGVybmFs
cy5jcHAKaW5kZXggMWExMDUxNy4uNDc2ZDFlMiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUv
dGVzdGluZy9JbnRlcm5hbHMuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3Rlc3RpbmcvSW50ZXJu
YWxzLmNwcApAQCAtMTcyMyw3ICsxNzIzLDcgQEAgdm9pZCBJbnRlcm5hbHM6OmNsb3NlRHVtbXlJ
bnNwZWN0b3JGcm9udGVuZCgpCiAgICAgbV9mcm9udGVuZENoYW5uZWwgPSBudWxscHRyOwogCiAg
ICAgbV9mcm9udGVuZFdpbmRvdy0+Y2xvc2UobV9mcm9udGVuZFdpbmRvdy0+c2NyaXB0RXhlY3V0
aW9uQ29udGV4dCgpKTsKLSAgICBtX2Zyb250ZW5kV2luZG93LmNsZWFyKCk7CisgICAgbV9mcm9u
dGVuZFdpbmRvdyA9IG51bGxwdHI7CiB9CiAKIHZvaWQgSW50ZXJuYWxzOjpzZXRKYXZhU2NyaXB0
UHJvZmlsaW5nRW5hYmxlZChib29sIGVuYWJsZWQsIEV4Y2VwdGlvbkNvZGUmIGVjKQpkaWZmIC0t
Z2l0IGEvU291cmNlL1dlYkNvcmUvd29ya2Vycy9Xb3JrZXJFdmVudFF1ZXVlLmNwcCBiL1NvdXJj
ZS9XZWJDb3JlL3dvcmtlcnMvV29ya2VyRXZlbnRRdWV1ZS5jcHAKaW5kZXggZjUyMGMxZC4uMDcy
MTA3NiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvd29ya2Vycy9Xb3JrZXJFdmVudFF1ZXVl
LmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS93b3JrZXJzL1dvcmtlckV2ZW50UXVldWUuY3BwCkBA
IC02OCwxMyArNjgsMTMgQEAgcHVibGljOgogICAgICAgICAgICAgcmV0dXJuOwogICAgICAgICBt
X2V2ZW50UXVldWUubV9ldmVudERpc3BhdGNoZXJNYXAucmVtb3ZlKG1fZXZlbnQuZ2V0KCkpOwog
ICAgICAgICBtX2V2ZW50LT50YXJnZXQoKS0+ZGlzcGF0Y2hFdmVudChtX2V2ZW50KTsKLSAgICAg
ICAgbV9ldmVudC5jbGVhcigpOworICAgICAgICBtX2V2ZW50ID0gbnVsbHB0cjsKICAgICB9CiAK
ICAgICB2b2lkIGNhbmNlbCgpCiAgICAgewogICAgICAgICBtX2lzQ2FuY2VsbGVkID0gdHJ1ZTsK
LSAgICAgICAgbV9ldmVudC5jbGVhcigpOworICAgICAgICBtX2V2ZW50ID0gbnVsbHB0cjsKICAg
ICB9CiAKIHByaXZhdGU6CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS94bWwvWE1MSHR0cFJl
cXVlc3QuY3BwIGIvU291cmNlL1dlYkNvcmUveG1sL1hNTEh0dHBSZXF1ZXN0LmNwcAppbmRleCBj
N2U4YzBiLi40NzVkNmZiIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS94bWwvWE1MSHR0cFJl
cXVlc3QuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3htbC9YTUxIdHRwUmVxdWVzdC5jcHAKQEAg
LTI0NSw3ICsyNDUsNyBAQCBCbG9iKiBYTUxIdHRwUmVxdWVzdDo6cmVzcG9uc2VCbG9iKCkKICAg
ICAgICAgICAgIGRhdGEuYXBwZW5kKG1fYmluYXJ5UmVzcG9uc2VCdWlsZGVyLT5kYXRhKCksIG1f
YmluYXJ5UmVzcG9uc2VCdWlsZGVyLT5zaXplKCkpOwogICAgICAgICAgICAgU3RyaW5nIG5vcm1h
bGl6ZWRDb250ZW50VHlwZSA9IEJsb2I6Om5vcm1hbGl6ZWRDb250ZW50VHlwZShyZXNwb25zZU1J
TUVUeXBlKCkpOyAvLyByZXNwb25zZU1JTUVUeXBlIGRlZmF1bHRzIHRvIHRleHQveG1sIHdoaWNo
IG1heSBiZSBpbmNvcnJlY3QuCiAgICAgICAgICAgICBtX3Jlc3BvbnNlQmxvYiA9IEJsb2I6OmNy
ZWF0ZShXVEY6Om1vdmUoZGF0YSksIG5vcm1hbGl6ZWRDb250ZW50VHlwZSk7Ci0gICAgICAgICAg
ICBtX2JpbmFyeVJlc3BvbnNlQnVpbGRlci5jbGVhcigpOworICAgICAgICAgICAgbV9iaW5hcnlS
ZXNwb25zZUJ1aWxkZXIgPSBudWxscHRyOwogICAgICAgICB9IGVsc2UgewogICAgICAgICAgICAg
Ly8gSWYgd2UgZXJyb3JlZCBvdXQgb3IgZ290IG5vIGRhdGEsIHdlIHN0aWxsIHJldHVybiBhIGJs
b2IsIGp1c3QgYW4gZW1wdHkgb25lLgogICAgICAgICAgICAgbV9yZXNwb25zZUJsb2IgPSBCbG9i
OjpjcmVhdGUoKTsKQEAgLTI2NSw3ICsyNjUsNyBAQCBBcnJheUJ1ZmZlciogWE1MSHR0cFJlcXVl
c3Q6OnJlc3BvbnNlQXJyYXlCdWZmZXIoKQogICAgICAgICAgICAgbV9yZXNwb25zZUFycmF5QnVm
ZmVyID0gbV9iaW5hcnlSZXNwb25zZUJ1aWxkZXItPmNyZWF0ZUFycmF5QnVmZmVyKCk7CiAgICAg
ICAgIGVsc2UKICAgICAgICAgICAgIG1fcmVzcG9uc2VBcnJheUJ1ZmZlciA9IEFycmF5QnVmZmVy
OjpjcmVhdGUobnVsbHB0ciwgMCk7Ci0gICAgICAgIG1fYmluYXJ5UmVzcG9uc2VCdWlsZGVyLmNs
ZWFyKCk7CisgICAgICAgIG1fYmluYXJ5UmVzcG9uc2VCdWlsZGVyID0gbnVsbHB0cjsKICAgICB9
CiAKICAgICByZXR1cm4gbV9yZXNwb25zZUFycmF5QnVmZmVyLmdldCgpOwpAQCAtODY4LDggKzg2
OCw4IEBAIHZvaWQgWE1MSHR0cFJlcXVlc3Q6OmNsZWFyUmVzcG9uc2VCdWZmZXJzKCkKICAgICBt
X2NyZWF0ZWREb2N1bWVudCA9IGZhbHNlOwogICAgIG1fcmVzcG9uc2VEb2N1bWVudCA9IG51bGxw
dHI7CiAgICAgbV9yZXNwb25zZUJsb2IgPSBudWxscHRyOwotICAgIG1fYmluYXJ5UmVzcG9uc2VC
dWlsZGVyLmNsZWFyKCk7Ci0gICAgbV9yZXNwb25zZUFycmF5QnVmZmVyLmNsZWFyKCk7CisgICAg
bV9iaW5hcnlSZXNwb25zZUJ1aWxkZXIgPSBudWxscHRyOworICAgIG1fcmVzcG9uc2VBcnJheUJ1
ZmZlciA9IG51bGxwdHI7CiAgICAgbV9yZXNwb25zZUNhY2hlSXNWYWxpZCA9IGZhbHNlOwogfQog
CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS94bWwvWFNMVFByb2Nlc3Nvci5jcHAgYi9Tb3Vy
Y2UvV2ViQ29yZS94bWwvWFNMVFByb2Nlc3Nvci5jcHAKaW5kZXggMDY5Y2NlYy4uNDkxZjEyYyAx
MDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUveG1sL1hTTFRQcm9jZXNzb3IuY3BwCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL3htbC9YU0xUUHJvY2Vzc29yLmNwcApAQCAtMTYyLDggKzE2Miw4IEBAIHZv
aWQgWFNMVFByb2Nlc3Nvcjo6cmVtb3ZlUGFyYW1ldGVyKGNvbnN0IFN0cmluZyYgLypuYW1lc3Bh
Y2VVUkkqLywgY29uc3QgU3RyaW5nCiAKIHZvaWQgWFNMVFByb2Nlc3Nvcjo6cmVzZXQoKQogewot
ICAgIG1fc3R5bGVzaGVldC5jbGVhcigpOwotICAgIG1fc3R5bGVzaGVldFJvb3ROb2RlLmNsZWFy
KCk7CisgICAgbV9zdHlsZXNoZWV0ID0gbnVsbHB0cjsKKyAgICBtX3N0eWxlc2hlZXRSb290Tm9k
ZSA9IG51bGxwdHI7CiAgICAgbV9wYXJhbWV0ZXJzLmNsZWFyKCk7CiB9CiAKZGlmZiAtLWdpdCBh
L1NvdXJjZS9XZWJLaXQvbWFjL1dlYkNvcmVTdXBwb3J0L1dlYkVkaXRvckNsaWVudC5tbSBiL1Nv
dXJjZS9XZWJLaXQvbWFjL1dlYkNvcmVTdXBwb3J0L1dlYkVkaXRvckNsaWVudC5tbQppbmRleCA2
Y2VkMTk0Li5jMTg4YjlkIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L21hYy9XZWJDb3JlU3Vw
cG9ydC9XZWJFZGl0b3JDbGllbnQubW0KKysrIGIvU291cmNlL1dlYktpdC9tYWMvV2ViQ29yZVN1
cHBvcnQvV2ViRWRpdG9yQ2xpZW50Lm1tCkBAIC0xMTQzLDcgKzExNDMsNyBAQCB2b2lkIFdlYkVk
aXRvckNsaWVudDo6ZGlkQ2hlY2tTdWNjZWVkKGludCBzZXF1ZW5jZSwgTlNBcnJheSogcmVzdWx0
cykKIHsKICAgICBBU1NFUlRfVU5VU0VEKHNlcXVlbmNlLCBzZXF1ZW5jZSA9PSBtX3RleHRDaGVj
a2luZ1JlcXVlc3QtPmRhdGEoKS5zZXF1ZW5jZSgpKTsKICAgICBtX3RleHRDaGVja2luZ1JlcXVl
c3QtPmRpZFN1Y2NlZWQoY29yZShyZXN1bHRzLCBtX3RleHRDaGVja2luZ1JlcXVlc3QtPmRhdGEo
KS5tYXNrKCkpKTsKLSAgICBtX3RleHRDaGVja2luZ1JlcXVlc3QuY2xlYXIoKTsKKyAgICBtX3Rl
eHRDaGVja2luZ1JlcXVlc3QgPSBudWxscHRyOwogfQogI2VuZGlmCiAKZGlmZiAtLWdpdCBhL1Nv
dXJjZS9XZWJLaXQvd2luL1dlYlZpZXcuY3BwIGIvU291cmNlL1dlYktpdC93aW4vV2ViVmlldy5j
cHAKaW5kZXggNDM3NTI3MS4uYjc5ZTYzYyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC93aW4v
V2ViVmlldy5jcHAKKysrIGIvU291cmNlL1dlYktpdC93aW4vV2ViVmlldy5jcHAKQEAgLTg1MSw4
ICs4NTEsOCBAQCB2b2lkIFdlYlZpZXc6OmRlbGV0ZUJhY2tpbmdTdG9yZSgpCiAgICAgICAgIEtp
bGxUaW1lcihtX3ZpZXdXaW5kb3csIERlbGV0ZUJhY2tpbmdTdG9yZVRpbWVyKTsKICAgICAgICAg
bV9kZWxldGVCYWNraW5nU3RvcmVUaW1lckFjdGl2ZSA9IGZhbHNlOwogICAgIH0KLSAgICBtX2Jh
Y2tpbmdTdG9yZUJpdG1hcC5jbGVhcigpOwotICAgIG1fYmFja2luZ1N0b3JlRGlydHlSZWdpb24u
Y2xlYXIoKTsKKyAgICBtX2JhY2tpbmdTdG9yZUJpdG1hcCA9IG51bGxwdHI7CisgICAgbV9iYWNr
aW5nU3RvcmVEaXJ0eVJlZ2lvbiA9IG51bGxwdHI7CiAgICAgbV9iYWNraW5nU3RvcmVTaXplLmN4
ID0gbV9iYWNraW5nU3RvcmVTaXplLmN5ID0gMDsKIH0KIApAQCAtMTA3OSw3ICsxMDc5LDcgQEAg
dm9pZCBXZWJWaWV3Ojp1cGRhdGVCYWNraW5nU3RvcmUoRnJhbWVWaWV3KiBmcmFtZVZpZXcsIEhE
QyBkYywgYm9vbCBiYWNraW5nU3RvcmUKICAgICAgICAgaWYgKG1fdWlEZWxlZ2F0ZVByaXZhdGUp
CiAgICAgICAgICAgICBtX3VpRGVsZWdhdGVQcml2YXRlLT53ZWJWaWV3UGFpbnRlZCh0aGlzKTsK
IAotICAgICAgICBtX2JhY2tpbmdTdG9yZURpcnR5UmVnaW9uLmNsZWFyKCk7CisgICAgICAgIG1f
YmFja2luZ1N0b3JlRGlydHlSZWdpb24gPSBudWxscHRyOwogICAgIH0KIAogICAgIGlmICghZGMp
CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9EYXRhYmFzZVByb2Nlc3MvSW5kZXhlZERCL1Vu
aXF1ZUlEQkRhdGFiYXNlLmNwcCBiL1NvdXJjZS9XZWJLaXQyL0RhdGFiYXNlUHJvY2Vzcy9JbmRl
eGVkREIvVW5pcXVlSURCRGF0YWJhc2UuY3BwCmluZGV4IDYxOTgwNWMuLjNkMmNhNWIgMTAwNjQ0
Ci0tLSBhL1NvdXJjZS9XZWJLaXQyL0RhdGFiYXNlUHJvY2Vzcy9JbmRleGVkREIvVW5pcXVlSURC
RGF0YWJhc2UuY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQyL0RhdGFiYXNlUHJvY2Vzcy9JbmRleGVk
REIvVW5pcXVlSURCRGF0YWJhc2UuY3BwCkBAIC0xNDcsNyArMTQ3LDcgQEAgdm9pZCBVbmlxdWVJ
REJEYXRhYmFzZTo6c2h1dGRvd25CYWNraW5nU3RvcmUoVW5pcXVlSURCRGF0YWJhc2VTaHV0ZG93
blR5cGUgdHlwZSwKIHsKICAgICBBU1NFUlQoIVJ1bkxvb3A6OmlzTWFpbigpKTsKIAotICAgIG1f
YmFja2luZ1N0b3JlLmNsZWFyKCk7CisgICAgbV9iYWNraW5nU3RvcmUgPSBudWxscHRyOwogCiAg
ICAgaWYgKHR5cGUgPT0gVW5pcXVlSURCRGF0YWJhc2VTaHV0ZG93blR5cGU6OkRlbGV0ZVNodXRk
b3duKSB7CiAgICAgICAgIFN0cmluZyBkYkZpbGVuYW1lID0gVW5pcXVlSURCRGF0YWJhc2U6OmNh
bGN1bGF0ZUFic29sdXRlRGF0YWJhc2VGaWxlbmFtZShkYXRhYmFzZURpcmVjdG9yeSk7CmRpZmYg
LS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9TaGFyZWQvQ29vcmRpbmF0ZWRHcmFwaGljcy9Db29yZGlu
YXRlZEJhY2tpbmdTdG9yZS5jcHAgYi9Tb3VyY2UvV2ViS2l0Mi9TaGFyZWQvQ29vcmRpbmF0ZWRH
cmFwaGljcy9Db29yZGluYXRlZEJhY2tpbmdTdG9yZS5jcHAKaW5kZXggYjlhMDVmOS4uYzY2ZDI4
YiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdDIvU2hhcmVkL0Nvb3JkaW5hdGVkR3JhcGhpY3Mv
Q29vcmRpbmF0ZWRCYWNraW5nU3RvcmUuY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQyL1NoYXJlZC9D
b29yZGluYXRlZEdyYXBoaWNzL0Nvb3JkaW5hdGVkQmFja2luZ1N0b3JlLmNwcApAQCAtNTUsNyAr
NTUsNyBAQCB2b2lkIENvb3JkaW5hdGVkQmFja2luZ1N0b3JlVGlsZTo6c3dhcEJ1ZmZlcnMoVGV4
dHVyZU1hcHBlciogdGV4dHVyZU1hcHBlcikKICAgICAgICAgdGV4dHVyZS0+cmVzZXQobV90aWxl
UmVjdC5zaXplKCksIG1fc3VyZmFjZS0+c3VwcG9ydHNBbHBoYSgpKTsKIAogICAgIG1fc3VyZmFj
ZS0+Y29weVRvVGV4dHVyZSh0ZXh0dXJlLCBtX3NvdXJjZVJlY3QsIG1fc3VyZmFjZU9mZnNldCk7
Ci0gICAgbV9zdXJmYWNlLmNsZWFyKCk7CisgICAgbV9zdXJmYWNlID0gbnVsbHB0cjsKIH0KIAog
dm9pZCBDb29yZGluYXRlZEJhY2tpbmdTdG9yZVRpbGU6OnNldEJhY2tCdWZmZXIoY29uc3QgSW50
UmVjdCYgdGlsZVJlY3QsIGNvbnN0IEludFJlY3QmIHNvdXJjZVJlY3QsIFBhc3NSZWZQdHI8Q29v
cmRpbmF0ZWRTdXJmYWNlPiBidWZmZXIsIGNvbnN0IEludFBvaW50JiBvZmZzZXQpCmRpZmYgLS1n
aXQgYS9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvQVBJL2VmbC9Fd2tWaWV3LmNwcCBiL1NvdXJj
ZS9XZWJLaXQyL1VJUHJvY2Vzcy9BUEkvZWZsL0V3a1ZpZXcuY3BwCmluZGV4IDc3YjUwMWEuLjQ1
ODg0NjQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9BUEkvZWZsL0V3a1Zp
ZXcuY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9BUEkvZWZsL0V3a1ZpZXcuY3Bw
CkBAIC05NDAsNyArOTQwLDcgQEAgdm9pZCBFd2tWaWV3OjpoaWRlQ29udGV4dE1lbnUoKQogICAg
IGlmIChzZC0+YXBpLT5jb250ZXh0X21lbnVfaGlkZSkKICAgICAgICAgc2QtPmFwaS0+Y29udGV4
dF9tZW51X2hpZGUoc2QpOwogCi0gICAgbV9jb250ZXh0TWVudS5jbGVhcigpOworICAgIG1fY29u
dGV4dE1lbnUgPSBudWxscHRyOwogfQogCiB2b2lkIEV3a1ZpZXc6OnJlcXVlc3RQb3B1cE1lbnUo
V0tQb3B1cE1lbnVMaXN0ZW5lclJlZiBwb3B1cE1lbnVMaXN0ZW5lciwgY29uc3QgV0tSZWN0JiBy
ZWN0LCBXS1BvcHVwSXRlbVRleHREaXJlY3Rpb24gdGV4dERpcmVjdGlvbiwgZG91YmxlIHBhZ2VT
Y2FsZUZhY3RvciwgV0tBcnJheVJlZiBpdGVtcywgaW50MzJfdCBzZWxlY3RlZEluZGV4KQpkaWZm
IC0tZ2l0IGEvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL0luc3BlY3RvclNlcnZlci9XZWJTb2Nr
ZXRTZXJ2ZXJDb25uZWN0aW9uLmNwcCBiL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9JbnNwZWN0
b3JTZXJ2ZXIvV2ViU29ja2V0U2VydmVyQ29ubmVjdGlvbi5jcHAKaW5kZXggODA5N2FjMS4uOTRh
MjRjOSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL0luc3BlY3RvclNlcnZl
ci9XZWJTb2NrZXRTZXJ2ZXJDb25uZWN0aW9uLmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0Mi9VSVBy
b2Nlc3MvSW5zcGVjdG9yU2VydmVyL1dlYlNvY2tldFNlcnZlckNvbm5lY3Rpb24uY3BwCkBAIC0x
MjYsNyArMTI2LDcgQEAgdm9pZCBXZWJTb2NrZXRTZXJ2ZXJDb25uZWN0aW9uOjpzZW5kUmF3RGF0
YShjb25zdCBjaGFyKiBkYXRhLCBzaXplX3QgbGVuZ3RoKQogdm9pZCBXZWJTb2NrZXRTZXJ2ZXJD
b25uZWN0aW9uOjpkaWRDbG9zZVNvY2tldFN0cmVhbShTb2NrZXRTdHJlYW1IYW5kbGUqKQogewog
ICAgIC8vIERlc3Ryb3kgdGhlIFNvY2tldFN0cmVhbUhhbmRsZSBub3cgdG8gcHJldmVudCBjbG9z
aW5nIGFuIGFscmVhZHkgY2xvc2VkIHNvY2tldCBsYXRlci4KLSAgICBtX3NvY2tldC5jbGVhcigp
OworICAgIG1fc29ja2V0ID0gbnVsbHB0cjsKIAogICAgIC8vIFdlYiBTb2NrZXQgTW9kZS4KICAg
ICBpZiAobV9tb2RlID09IFdlYlNvY2tldCkKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL1VJ
UHJvY2Vzcy9OZXR3b3JrL0N1c3RvbVByb3RvY29scy9tYWMvQ3VzdG9tUHJvdG9jb2xNYW5hZ2Vy
UHJveHlNYWMubW0gYi9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvTmV0d29yay9DdXN0b21Qcm90
b2NvbHMvbWFjL0N1c3RvbVByb3RvY29sTWFuYWdlclByb3h5TWFjLm1tCmluZGV4IDk0MjUyOTku
LjUxM2IxZTAgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9OZXR3b3JrL0N1
c3RvbVByb3RvY29scy9tYWMvQ3VzdG9tUHJvdG9jb2xNYW5hZ2VyUHJveHlNYWMubW0KKysrIGIv
U291cmNlL1dlYktpdDIvVUlQcm9jZXNzL05ldHdvcmsvQ3VzdG9tUHJvdG9jb2xzL21hYy9DdXN0
b21Qcm90b2NvbE1hbmFnZXJQcm94eU1hYy5tbQpAQCAtNzYsNyArNzYsNyBAQCAtIChpZClpbml0
V2l0aEN1c3RvbVByb3RvY29sTWFuYWdlclByb3h5OihDdXN0b21Qcm90b2NvbE1hbmFnZXJQcm94
eSopY3VzdG9tUHJvdAogCiAtICh2b2lkKWRlYWxsb2MKIHsKLSAgICBfY29ubmVjdGlvbi5jbGVh
cigpOworICAgIF9jb25uZWN0aW9uID0gbnVsbHB0cjsKICAgICBbX3VybENvbm5lY3Rpb24gY2Fu
Y2VsXTsKICAgICBbX3VybENvbm5lY3Rpb24gcmVsZWFzZV07CiAgICAgW3N1cGVyIGRlYWxsb2Nd
OwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL2lvcy9XS0dlb2xvY2F0aW9u
UHJvdmlkZXJJT1MubW0gYi9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvaW9zL1dLR2VvbG9jYXRp
b25Qcm92aWRlcklPUy5tbQppbmRleCBiYjZiYjYwLi5iZGQxMTRhIDEwMDY0NAotLS0gYS9Tb3Vy
Y2UvV2ViS2l0Mi9VSVByb2Nlc3MvaW9zL1dLR2VvbG9jYXRpb25Qcm92aWRlcklPUy5tbQorKysg
Yi9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvaW9zL1dLR2VvbG9jYXRpb25Qcm92aWRlcklPUy5t
bQpAQCAtMTE4LDcgKzExOCw3IEBAIC0odm9pZClfc3RvcFVwZGF0aW5nCiB7CiAgICAgX2lzV2Vi
Q29yZUdlb2xvY2F0aW9uQWN0aXZlID0gTk87CiAgICAgW19jb3JlTG9jYXRpb25Qcm92aWRlciBz
dG9wXTsKLSAgICBfbGFzdEFjdGl2ZVBvc2l0aW9uLmNsZWFyKCk7CisgICAgX2xhc3RBY3RpdmVQ
b3NpdGlvbiA9IG51bGxwdHI7CiB9CiAKIC0odm9pZClfc2V0RW5hYmxlSGlnaEFjY3VyYWN5OihC
T09MKWVuYWJsZUhpZ2hBY2N1cmFjeQpkaWZmIC0tZ2l0IGEvVG9vbHMvRHVtcFJlbmRlclRyZWUv
bWFjL0R1bXBSZW5kZXJUcmVlLm1tIGIvVG9vbHMvRHVtcFJlbmRlclRyZWUvbWFjL0R1bXBSZW5k
ZXJUcmVlLm1tCmluZGV4IGJjY2Q0YTkuLjI3NmRmOGIgMTAwNjQ0Ci0tLSBhL1Rvb2xzL0R1bXBS
ZW5kZXJUcmVlL21hYy9EdW1wUmVuZGVyVHJlZS5tbQorKysgYi9Ub29scy9EdW1wUmVuZGVyVHJl
ZS9tYWMvRHVtcFJlbmRlclRyZWUubW0KQEAgLTIwNjQsNyArMjA2NCw3IEBAIHN0YXRpYyB2b2lk
IHJ1blRlc3QoY29uc3Qgc3RyaW5nJiBpbnB1dExpbmUpCiAgICAgQVNTRVJUKENGQXJyYXlHZXRD
b3VudChvcGVuV2luZG93c1JlZikgPT0gMSk7CiAgICAgQVNTRVJUKENGQXJyYXlHZXRWYWx1ZUF0
SW5kZXgob3BlbldpbmRvd3NSZWYsIDApID09IFtbbWFpbkZyYW1lIHdlYlZpZXddIHdpbmRvd10p
OwogCi0gICAgZ1Rlc3RSdW5uZXIuY2xlYXIoKTsKKyAgICBnVGVzdFJ1bm5lciA9IG51bGxwdHI7
CiAKICAgICBpZiAoaWdub3JlV2ViQ29yZU5vZGVMZWFrcykKICAgICAgICAgW1dlYkNvcmVTdGF0
aXN0aWNzIHN0b3BJZ25vcmluZ1dlYkNvcmVOb2RlTGVha3NdOwpkaWZmIC0tZ2l0IGEvVG9vbHMv
RHVtcFJlbmRlclRyZWUvd2luL0R1bXBSZW5kZXJUcmVlLmNwcCBiL1Rvb2xzL0R1bXBSZW5kZXJU
cmVlL3dpbi9EdW1wUmVuZGVyVHJlZS5jcHAKaW5kZXggZDk4NmNiZi4uYzg0MzU0NyAxMDA2NDQK
LS0tIGEvVG9vbHMvRHVtcFJlbmRlclRyZWUvd2luL0R1bXBSZW5kZXJUcmVlLmNwcAorKysgYi9U
b29scy9EdW1wUmVuZGVyVHJlZS93aW4vRHVtcFJlbmRlclRyZWUuY3BwCkBAIC0xMTgzLDcgKzEx
ODMsNyBAQCBzdGF0aWMgdm9pZCBydW5UZXN0KGNvbnN0IHN0cmluZyYgaW5wdXRMaW5lKQogCiBl
eGl0OgogICAgIHJlbW92ZUZvbnRGYWxsYmFja0lmUHJlc2VudChmYWxsYmFja1BhdGgpOwotICAg
IDo6Z1Rlc3RSdW5uZXIuY2xlYXIoKTsKKyAgICA6OmdUZXN0UnVubmVyID0gbnVsbHB0cjsKIAog
ICAgIGZwdXRzKCIjRU9GXG4iLCBzdGRlcnIpOwogICAgIGZmbHVzaChzdGRlcnIpOwpkaWZmIC0t
Z2l0IGEvVG9vbHMvVGVzdFdlYktpdEFQSS9UZXN0cy9XVEYvUmVmUHRyLmNwcCBiL1Rvb2xzL1Rl
c3RXZWJLaXRBUEkvVGVzdHMvV1RGL1JlZlB0ci5jcHAKaW5kZXggZmM5MjI0Ni4uYjcyNmQ3ZCAx
MDA2NDQKLS0tIGEvVG9vbHMvVGVzdFdlYktpdEFQSS9UZXN0cy9XVEYvUmVmUHRyLmNwcAorKysg
Yi9Ub29scy9UZXN0V2ViS2l0QVBJL1Rlc3RzL1dURi9SZWZQdHIuY3BwCkBAIC0xMDIsNyArMTAy
LDcgQEAgVEVTVChXVEZfUmVmUHRyLCBCYXNpYykKICAgICB7CiAgICAgICAgIFJlZlB0cjxSZWZM
b2dnZXI+IHB0cigmYSk7CiAgICAgICAgIEFTU0VSVF9FUSgmYSwgcHRyLmdldCgpKTsKLSAgICAg
ICAgcHRyLmNsZWFyKCk7CisgICAgICAgIHB0ciA9IG51bGxwdHI7CiAgICAgICAgIEFTU0VSVF9F
UShudWxscHRyLCBwdHIuZ2V0KCkpOwogICAgIH0KICAgICBBU1NFUlRfU1RSRVEoInJlZihhKSBk
ZXJlZihhKSAiLCB0YWtlTG9nU3RyKCkuY19zdHIoKSk7Cg==
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>256027</attachid>
            <date>2015-07-02 13:14:49 -0700</date>
            <delta_ts>2015-07-02 13:54:13 -0700</delta_ts>
            <desc>WIP Patch</desc>
            <filename>RefPtr_clear_wip.patch</filename>
            <type>text/plain</type>
            <size>82412</size>
            <attacher name="Chris Dumez">cdumez</attacher>
            
              <data encoding="base64">ZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9BUEkvSlNWYWx1ZVJlZi5jcHAgYi9T
b3VyY2UvSmF2YVNjcmlwdENvcmUvQVBJL0pTVmFsdWVSZWYuY3BwCmluZGV4IDc1OWE2NWEuLjU0
NDA1ZTIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9BUEkvSlNWYWx1ZVJlZi5j
cHAKKysrIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL0FQSS9KU1ZhbHVlUmVmLmNwcApAQCAtNDIy
LDcgKzQyMiw3IEBAIEpTU3RyaW5nUmVmIEpTVmFsdWVUb1N0cmluZ0NvcHkoSlNDb250ZXh0UmVm
IGN0eCwgSlNWYWx1ZVJlZiB2YWx1ZSwgSlNWYWx1ZVJlZioKICAgICAKICAgICBSZWZQdHI8T3Bh
cXVlSlNTdHJpbmc+IHN0cmluZ1JlZihPcGFxdWVKU1N0cmluZzo6Y3JlYXRlKGpzVmFsdWUudG9T
dHJpbmcoZXhlYyktPnZhbHVlKGV4ZWMpKSk7CiAgICAgaWYgKGhhbmRsZUV4Y2VwdGlvbklmTmVl
ZGVkKGV4ZWMsIGV4Y2VwdGlvbikgPT0gRXhjZXB0aW9uU3RhdHVzOjpEaWRUaHJvdykKLSAgICAg
ICAgc3RyaW5nUmVmLmNsZWFyKCk7CisgICAgICAgIHN0cmluZ1JlZiA9IG51bGxwdHI7CiAgICAg
cmV0dXJuIHN0cmluZ1JlZi5yZWxlYXNlKCkubGVha1JlZigpOwogfQogCmRpZmYgLS1naXQgYS9T
b3VyY2UvSmF2YVNjcmlwdENvcmUvYnl0ZWNvZGUvQ2FsbExpbmtJbmZvLmNwcCBiL1NvdXJjZS9K
YXZhU2NyaXB0Q29yZS9ieXRlY29kZS9DYWxsTGlua0luZm8uY3BwCmluZGV4IDcyYTBjMjQuLmQ5
MjAwOTggMTAwNjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ieXRlY29kZS9DYWxsTGlu
a0luZm8uY3BwCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ieXRlY29kZS9DYWxsTGlua0lu
Zm8uY3BwCkBAIC00Myw3ICs0Myw3IEBAIHZvaWQgQ2FsbExpbmtJbmZvOjpjbGVhclN0dWIoKQog
ICAgICAgICByZXR1cm47CiAKICAgICBtX3N0dWItPmNsZWFyQ2FsbE5vZGVzRm9yKHRoaXMpOwot
ICAgIG1fc3R1Yi5jbGVhcigpOworICAgIG1fc3R1YiA9IG51bGxwdHI7CiB9CiAKIHZvaWQgQ2Fs
bExpbmtJbmZvOjp1bmxpbmsoUmVwYXRjaEJ1ZmZlciYgcmVwYXRjaEJ1ZmZlcikKZGlmZiAtLWdp
dCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ieXRlY29kZS9TdHJ1Y3R1cmVTdHViSW5mby5oIGIv
U291cmNlL0phdmFTY3JpcHRDb3JlL2J5dGVjb2RlL1N0cnVjdHVyZVN0dWJJbmZvLmgKaW5kZXgg
ZWM4Yjc5Yy4uZDQwMmFjZSAxMDA2NDQKLS0tIGEvU291cmNlL0phdmFTY3JpcHRDb3JlL2J5dGVj
b2RlL1N0cnVjdHVyZVN0dWJJbmZvLmgKKysrIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL2J5dGVj
b2RlL1N0cnVjdHVyZVN0dWJJbmZvLmgKQEAgLTE0OSw4ICsxNDksOCBAQCBzdHJ1Y3QgU3RydWN0
dXJlU3R1YkluZm8gewogICAgIHsKICAgICAgICAgZGVyZWYoKTsKICAgICAgICAgYWNjZXNzVHlw
ZSA9IGFjY2Vzc191bnNldDsKLSAgICAgICAgc3R1YlJvdXRpbmUuY2xlYXIoKTsKLSAgICAgICAg
d2F0Y2hwb2ludHMuY2xlYXIoKTsKKyAgICAgICAgc3R1YlJvdXRpbmUgPSBudWxscHRyOworICAg
ICAgICB3YXRjaHBvaW50cyA9IG51bGxwdHI7CiAgICAgfQogCiAgICAgdm9pZCBkZXJlZigpOwpk
aWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL2RmZy9ERkdHcmFwaC5oIGIvU291cmNl
L0phdmFTY3JpcHRDb3JlL2RmZy9ERkdHcmFwaC5oCmluZGV4IGJhYzUzOGYuLjdmNjc5NDYgMTAw
NjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9kZmcvREZHR3JhcGguaAorKysgYi9Tb3Vy
Y2UvSmF2YVNjcmlwdENvcmUvZGZnL0RGR0dyYXBoLmgKQEAgLTQ0Myw3ICs0NDMsNyBAQCBwdWJs
aWM6CiAgICAgCiAgICAgdm9pZCBraWxsQmxvY2soQmxvY2tJbmRleCBibG9ja0luZGV4KQogICAg
IHsKLSAgICAgICAgbV9ibG9ja3NbYmxvY2tJbmRleF0uY2xlYXIoKTsKKyAgICAgICAgbV9ibG9j
a3NbYmxvY2tJbmRleF0gPSBudWxscHRyOwogICAgIH0KICAgICAKICAgICB2b2lkIGtpbGxCbG9j
ayhCYXNpY0Jsb2NrKiBiYXNpY0Jsb2NrKQpkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRD
b3JlL2RmZy9ERkdPcGVyYXRpb25zLmNwcCBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9kZmcvREZH
T3BlcmF0aW9ucy5jcHAKaW5kZXggYTk5YTNmYS4uNmY5NTEyYiAxMDA2NDQKLS0tIGEvU291cmNl
L0phdmFTY3JpcHRDb3JlL2RmZy9ERkdPcGVyYXRpb25zLmNwcAorKysgYi9Tb3VyY2UvSmF2YVNj
cmlwdENvcmUvZGZnL0RGR09wZXJhdGlvbnMuY3BwCkBAIC0xNDQ3LDcgKzE0NDcsNyBAQCBjaGFy
KiBKSVRfT1BFUkFUSU9OIHRyaWdnZXJPU1JFbnRyeU5vdygKICAgICAgICAgCiAgICAgICAgIC8v
IE9TUiBlbnRyeSBmYWlsZWQuIE9oIG5vISBUaGlzIGltcGxpZXMgdGhhdCB3ZSBuZWVkIHRvIHJl
dHJ5LiBXZSByZXRyeQogICAgICAgICAvLyB3aXRob3V0IGV4cG9uZW50aWFsIGJhY2tvZmYgYW5k
IHdlIG9ubHkgZG8gdGhpcyBmb3IgdGhlIGVudHJ5IGNvZGUgYmxvY2suCi0gICAgICAgIGppdENv
ZGUtPm9zckVudHJ5QmxvY2suY2xlYXIoKTsKKyAgICAgICAgaml0Q29kZS0+b3NyRW50cnlCbG9j
ayA9IG51bGxwdHI7CiAgICAgICAgIGppdENvZGUtPm9zckVudHJ5UmV0cnkgPSAwOwogICAgICAg
ICByZXR1cm4gMDsKICAgICB9CmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvaW5z
cGVjdG9yL0NvbnNvbGVNZXNzYWdlLmNwcCBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9pbnNwZWN0
b3IvQ29uc29sZU1lc3NhZ2UuY3BwCmluZGV4IGEwNGE5N2QuLjlhYzBkZGVlIDEwMDY0NAotLS0g
YS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvaW5zcGVjdG9yL0NvbnNvbGVNZXNzYWdlLmNwcAorKysg
Yi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvaW5zcGVjdG9yL0NvbnNvbGVNZXNzYWdlLmNwcApAQCAt
MjczLDcgKzI3Myw3IEBAIHZvaWQgQ29uc29sZU1lc3NhZ2U6OmNsZWFyKCkKICAgICAgICAgbV9t
ZXNzYWdlID0gQVNDSUlMaXRlcmFsKCI8bWVzc2FnZSBjb2xsZWN0ZWQ+Iik7CiAKICAgICBpZiAo
bV9hcmd1bWVudHMpCi0gICAgICAgIG1fYXJndW1lbnRzLmNsZWFyKCk7CisgICAgICAgIG1fYXJn
dW1lbnRzID0gbnVsbHB0cjsKIH0KIAogSlNDOjpFeGVjU3RhdGUqIENvbnNvbGVNZXNzYWdlOjpz
Y3JpcHRTdGF0ZSgpIGNvbnN0CmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvaW5z
cGVjdG9yL0pTR2xvYmFsT2JqZWN0SW5zcGVjdG9yQ29udHJvbGxlci5jcHAgYi9Tb3VyY2UvSmF2
YVNjcmlwdENvcmUvaW5zcGVjdG9yL0pTR2xvYmFsT2JqZWN0SW5zcGVjdG9yQ29udHJvbGxlci5j
cHAKaW5kZXggNTdmNTJjNS4uMTFkODZlZCAxMDA2NDQKLS0tIGEvU291cmNlL0phdmFTY3JpcHRD
b3JlL2luc3BlY3Rvci9KU0dsb2JhbE9iamVjdEluc3BlY3RvckNvbnRyb2xsZXIuY3BwCisrKyBi
L1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9pbnNwZWN0b3IvSlNHbG9iYWxPYmplY3RJbnNwZWN0b3JD
b250cm9sbGVyLmNwcApAQCAtMTMxLDcgKzEzMSw3IEBAIHZvaWQgSlNHbG9iYWxPYmplY3RJbnNw
ZWN0b3JDb250cm9sbGVyOjpkaXNjb25uZWN0RnJvbnRlbmQoRGlzY29ubmVjdFJlYXNvbiByZWFz
CiAgICAgbV9hZ2VudHMud2lsbERlc3Ryb3lGcm9udGVuZEFuZEJhY2tlbmQocmVhc29uKTsKIAog
ICAgIG1fYmFja2VuZERpc3BhdGNoZXItPmNsZWFyRnJvbnRlbmQoKTsKLSAgICBtX2JhY2tlbmRE
aXNwYXRjaGVyLmNsZWFyKCk7CisgICAgbV9iYWNrZW5kRGlzcGF0Y2hlciA9IG51bGxwdHI7CiAg
ICAgbV9mcm9udGVuZENoYW5uZWwgPSBudWxscHRyOwogCiAgICAgbV9pc0F1dG9tYXRpY0luc3Bl
Y3Rpb24gPSBmYWxzZTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9pbnNwZWN0
b3IvYWdlbnRzL0luc3BlY3RvckFnZW50LmNwcCBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9pbnNw
ZWN0b3IvYWdlbnRzL0luc3BlY3RvckFnZW50LmNwcAppbmRleCBiZjI0MWJhLi4wNTM4NjkwIDEw
MDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvaW5zcGVjdG9yL2FnZW50cy9JbnNwZWN0
b3JBZ2VudC5jcHAKKysrIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL2luc3BlY3Rvci9hZ2VudHMv
SW5zcGVjdG9yQWdlbnQuY3BwCkBAIC01Nyw3ICs1Nyw3IEBAIHZvaWQgSW5zcGVjdG9yQWdlbnQ6
OmRpZENyZWF0ZUZyb250ZW5kQW5kQmFja2VuZChGcm9udGVuZENoYW5uZWwqIGZyb250ZW5kQ2hh
bm5lCiB2b2lkIEluc3BlY3RvckFnZW50Ojp3aWxsRGVzdHJveUZyb250ZW5kQW5kQmFja2VuZChE
aXNjb25uZWN0UmVhc29uKQogewogICAgIG1fZnJvbnRlbmREaXNwYXRjaGVyID0gbnVsbHB0cjsK
LSAgICBtX2JhY2tlbmREaXNwYXRjaGVyLmNsZWFyKCk7CisgICAgbV9iYWNrZW5kRGlzcGF0Y2hl
ciA9IG51bGxwdHI7CiAKICAgICBtX3BlbmRpbmdFdmFsdWF0ZVRlc3RDb21tYW5kcy5jbGVhcigp
OwogCmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvaW5zcGVjdG9yL2FnZW50cy9J
bnNwZWN0b3JDb25zb2xlQWdlbnQuY3BwIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL2luc3BlY3Rv
ci9hZ2VudHMvSW5zcGVjdG9yQ29uc29sZUFnZW50LmNwcAppbmRleCA4MTRhMGMxLi45ZmZkMDQ4
IDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvaW5zcGVjdG9yL2FnZW50cy9JbnNw
ZWN0b3JDb25zb2xlQWdlbnQuY3BwCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9pbnNwZWN0
b3IvYWdlbnRzL0luc3BlY3RvckNvbnNvbGVBZ2VudC5jcHAKQEAgLTY0LDcgKzY0LDcgQEAgdm9p
ZCBJbnNwZWN0b3JDb25zb2xlQWdlbnQ6OmRpZENyZWF0ZUZyb250ZW5kQW5kQmFja2VuZChGcm9u
dGVuZENoYW5uZWwqIGZyb250ZW4KIHZvaWQgSW5zcGVjdG9yQ29uc29sZUFnZW50Ojp3aWxsRGVz
dHJveUZyb250ZW5kQW5kQmFja2VuZChEaXNjb25uZWN0UmVhc29uKQogewogICAgIG1fZnJvbnRl
bmREaXNwYXRjaGVyID0gbnVsbHB0cjsKLSAgICBtX2JhY2tlbmREaXNwYXRjaGVyLmNsZWFyKCk7
CisgICAgbV9iYWNrZW5kRGlzcGF0Y2hlciA9IG51bGxwdHI7CiAKICAgICBTdHJpbmcgZXJyb3JT
dHJpbmc7CiAgICAgZGlzYWJsZShlcnJvclN0cmluZyk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2
YVNjcmlwdENvcmUvaW5zcGVjdG9yL2FnZW50cy9JbnNwZWN0b3JEZWJ1Z2dlckFnZW50LmNwcCBi
L1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9pbnNwZWN0b3IvYWdlbnRzL0luc3BlY3RvckRlYnVnZ2Vy
QWdlbnQuY3BwCmluZGV4IGE3NWUwYjIuLmYwZjBiNDggMTAwNjQ0Ci0tLSBhL1NvdXJjZS9KYXZh
U2NyaXB0Q29yZS9pbnNwZWN0b3IvYWdlbnRzL0luc3BlY3RvckRlYnVnZ2VyQWdlbnQuY3BwCisr
KyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9pbnNwZWN0b3IvYWdlbnRzL0luc3BlY3RvckRlYnVn
Z2VyQWdlbnQuY3BwCkBAIC03Nyw3ICs3Nyw3IEBAIHZvaWQgSW5zcGVjdG9yRGVidWdnZXJBZ2Vu
dDo6ZGlkQ3JlYXRlRnJvbnRlbmRBbmRCYWNrZW5kKEZyb250ZW5kQ2hhbm5lbCogZnJvbnRlCiB2
b2lkIEluc3BlY3RvckRlYnVnZ2VyQWdlbnQ6OndpbGxEZXN0cm95RnJvbnRlbmRBbmRCYWNrZW5k
KERpc2Nvbm5lY3RSZWFzb24gcmVhc29uKQogewogICAgIG1fZnJvbnRlbmREaXNwYXRjaGVyID0g
bnVsbHB0cjsKLSAgICBtX2JhY2tlbmREaXNwYXRjaGVyLmNsZWFyKCk7CisgICAgbV9iYWNrZW5k
RGlzcGF0Y2hlciA9IG51bGxwdHI7CiAKICAgICBib29sIHNraXBSZWNvbXBpbGUgPSByZWFzb24g
PT0gRGlzY29ubmVjdFJlYXNvbjo6SW5zcGVjdGVkVGFyZ2V0RGVzdHJveWVkOwogICAgIGRpc2Fi
bGUoc2tpcFJlY29tcGlsZSk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvaW5z
cGVjdG9yL2FnZW50cy9KU0dsb2JhbE9iamVjdFJ1bnRpbWVBZ2VudC5jcHAgYi9Tb3VyY2UvSmF2
YVNjcmlwdENvcmUvaW5zcGVjdG9yL2FnZW50cy9KU0dsb2JhbE9iamVjdFJ1bnRpbWVBZ2VudC5j
cHAKaW5kZXggNjU4YzY3YS4uNDYwNDlmNSAxMDA2NDQKLS0tIGEvU291cmNlL0phdmFTY3JpcHRD
b3JlL2luc3BlY3Rvci9hZ2VudHMvSlNHbG9iYWxPYmplY3RSdW50aW1lQWdlbnQuY3BwCisrKyBi
L1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9pbnNwZWN0b3IvYWdlbnRzL0pTR2xvYmFsT2JqZWN0UnVu
dGltZUFnZW50LmNwcApAQCAtNDksNyArNDksNyBAQCB2b2lkIEpTR2xvYmFsT2JqZWN0UnVudGlt
ZUFnZW50OjpkaWRDcmVhdGVGcm9udGVuZEFuZEJhY2tlbmQoRnJvbnRlbmRDaGFubmVsKiBmcgog
dm9pZCBKU0dsb2JhbE9iamVjdFJ1bnRpbWVBZ2VudDo6d2lsbERlc3Ryb3lGcm9udGVuZEFuZEJh
Y2tlbmQoRGlzY29ubmVjdFJlYXNvbiByZWFzb24pCiB7CiAgICAgbV9mcm9udGVuZERpc3BhdGNo
ZXIgPSBudWxscHRyOwotICAgIG1fYmFja2VuZERpc3BhdGNoZXIuY2xlYXIoKTsKKyAgICBtX2Jh
Y2tlbmREaXNwYXRjaGVyID0gbnVsbHB0cjsKIAogICAgIEluc3BlY3RvclJ1bnRpbWVBZ2VudDo6
d2lsbERlc3Ryb3lGcm9udGVuZEFuZEJhY2tlbmQocmVhc29uKTsKIH0KZGlmZiAtLWdpdCBhL1Nv
dXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0V4ZWN1dGFibGUuY3BwIGIvU291cmNlL0phdmFT
Y3JpcHRDb3JlL3J1bnRpbWUvRXhlY3V0YWJsZS5jcHAKaW5kZXggNmNiMDliMC4uNTUyNDBmZCAx
MDA2NDQKLS0tIGEvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvRXhlY3V0YWJsZS5jcHAK
KysrIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvRXhlY3V0YWJsZS5jcHAKQEAgLTUy
LDggKzUyLDggQEAgdm9pZCBFeGVjdXRhYmxlQmFzZTo6ZGVzdHJveShKU0NlbGwqIGNlbGwpCiB2
b2lkIEV4ZWN1dGFibGVCYXNlOjpjbGVhckNvZGUoKQogewogI2lmIEVOQUJMRShKSVQpCi0gICAg
bV9qaXRDb2RlRm9yQ2FsbC5jbGVhcigpOwotICAgIG1faml0Q29kZUZvckNvbnN0cnVjdC5jbGVh
cigpOworICAgIG1faml0Q29kZUZvckNhbGwgPSBudWxscHRyOworICAgIG1faml0Q29kZUZvckNv
bnN0cnVjdCA9IG51bGxwdHI7CiAgICAgbV9qaXRDb2RlRm9yQ2FsbFdpdGhBcml0eUNoZWNrID0g
TWFjcm9Bc3NlbWJsZXJDb2RlUHRyKCk7CiAgICAgbV9qaXRDb2RlRm9yQ29uc3RydWN0V2l0aEFy
aXR5Q2hlY2sgPSBNYWNyb0Fzc2VtYmxlckNvZGVQdHIoKTsKICAgICBtX2ppdENvZGVGb3JDYWxs
V2l0aEFyaXR5Q2hlY2tBbmRQcmVzZXJ2ZVJlZ3MgPSBNYWNyb0Fzc2VtYmxlckNvZGVQdHIoKTsK
QEAgLTQ2NCw3ICs0NjQsNyBAQCB2b2lkIEV2YWxFeGVjdXRhYmxlOjp1bmxpbmtDYWxscygpCiAK
IHZvaWQgRXZhbEV4ZWN1dGFibGU6OmNsZWFyQ29kZSgpCiB7Ci0gICAgbV9ldmFsQ29kZUJsb2Nr
LmNsZWFyKCk7CisgICAgbV9ldmFsQ29kZUJsb2NrID0gbnVsbHB0cjsKICAgICBtX3VubGlua2Vk
RXZhbENvZGVCbG9jay5jbGVhcigpOwogICAgIEJhc2U6OmNsZWFyQ29kZSgpOwogfQpAQCAtNTQz
LDcgKzU0Myw3IEBAIHZvaWQgUHJvZ3JhbUV4ZWN1dGFibGU6OnZpc2l0Q2hpbGRyZW4oSlNDZWxs
KiBjZWxsLCBTbG90VmlzaXRvciYgdmlzaXRvcikKIAogdm9pZCBQcm9ncmFtRXhlY3V0YWJsZTo6
Y2xlYXJDb2RlKCkKIHsKLSAgICBtX3Byb2dyYW1Db2RlQmxvY2suY2xlYXIoKTsKKyAgICBtX3By
b2dyYW1Db2RlQmxvY2sgPSBudWxscHRyOwogICAgIG1fdW5saW5rZWRQcm9ncmFtQ29kZUJsb2Nr
LmNsZWFyKCk7CiAgICAgQmFzZTo6Y2xlYXJDb2RlKCk7CiB9CkBAIC01ODcsOCArNTg3LDggQEAg
dm9pZCBGdW5jdGlvbkV4ZWN1dGFibGU6OmNsZWFyVW5saW5rZWRDb2RlRm9yUmVjb21waWxhdGlv
bigpCiAKIHZvaWQgRnVuY3Rpb25FeGVjdXRhYmxlOjpjbGVhckNvZGUoKQogewotICAgIG1fY29k
ZUJsb2NrRm9yQ2FsbC5jbGVhcigpOwotICAgIG1fY29kZUJsb2NrRm9yQ29uc3RydWN0LmNsZWFy
KCk7CisgICAgbV9jb2RlQmxvY2tGb3JDYWxsID0gbnVsbHB0cjsKKyAgICBtX2NvZGVCbG9ja0Zv
ckNvbnN0cnVjdCA9IG51bGxwdHI7CiAgICAgQmFzZTo6Y2xlYXJDb2RlKCk7CiB9CiAKZGlmZiAt
LWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0pTTG9jay5jcHAgYi9Tb3VyY2Uv
SmF2YVNjcmlwdENvcmUvcnVudGltZS9KU0xvY2suY3BwCmluZGV4IDJlNzk5NGMuLmMyZWUwYTUg
MTAwNjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0pTTG9jay5jcHAKKysr
IGIvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvSlNMb2NrLmNwcApAQCAtNzMsNyArNzMs
NyBAQCB2b2lkIEpTTG9ja0hvbGRlcjo6aW5pdCgpCiBKU0xvY2tIb2xkZXI6On5KU0xvY2tIb2xk
ZXIoKQogewogICAgIFJlZlB0cjxKU0xvY2s+IGFwaUxvY2soJm1fdm0tPmFwaUxvY2soKSk7Ci0g
ICAgbV92bS5jbGVhcigpOworICAgIG1fdm0gPSBudWxscHRyOwogICAgIGFwaUxvY2stPnVubG9j
aygpOwogfQogCmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9TdHJ1
Y3R1cmUuY3BwIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvU3RydWN0dXJlLmNwcApp
bmRleCBmNzcxYjYwLi4zOTg1ODA1IDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUv
cnVudGltZS9TdHJ1Y3R1cmUuY3BwCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1l
L1N0cnVjdHVyZS5jcHAKQEAgLTczNyw3ICs3MzcsNyBAQCB2b2lkIFN0cnVjdHVyZTo6cGluKCkK
ICAgICBBU1NFUlQocHJvcGVydHlUYWJsZSgpKTsKICAgICBzZXRJc1Bpbm5lZFByb3BlcnR5VGFi
bGUodHJ1ZSk7CiAgICAgY2xlYXJQcmV2aW91c0lEKCk7Ci0gICAgbV9uYW1lSW5QcmV2aW91cy5j
bGVhcigpOworICAgIG1fbmFtZUluUHJldmlvdXMgPSBudWxscHRyOwogfQogCiB2b2lkIFN0cnVj
dHVyZTo6YWxsb2NhdGVSYXJlRGF0YShWTSYgdm0pCmRpZmYgLS1naXQgYS9Tb3VyY2UvV1RGL3d0
Zi9SZWZQdHIuaCBiL1NvdXJjZS9XVEYvd3RmL1JlZlB0ci5oCmluZGV4IDI5MTFmMGRhLi4xNmNm
Y2NhIDEwMDY0NAotLS0gYS9Tb3VyY2UvV1RGL3d0Zi9SZWZQdHIuaAorKysgYi9Tb3VyY2UvV1RG
L3d0Zi9SZWZQdHIuaApAQCAtNjAsNyArNjAsNiBAQCBwdWJsaWM6CiAKICAgICBUKiBnZXQoKSBj
b25zdCB7IHJldHVybiBtX3B0cjsgfQogICAgIAotICAgIHZvaWQgY2xlYXIoKTsKICAgICBQYXNz
UmVmUHRyPFQ+IHJlbGVhc2UoKSB7IFBhc3NSZWZQdHI8VD4gdG1wID0gYWRvcHRSZWYobV9wdHIp
OyBtX3B0ciA9IG51bGxwdHI7IHJldHVybiB0bXA7IH0KICAgICBSZWY8VD4gcmVsZWFzZU5vbk51
bGwoKSB7IEFTU0VSVChtX3B0cik7IFJlZjxUPiB0bXAoYWRvcHRSZWYoKm1fcHRyKSk7IG1fcHRy
ID0gbnVsbHB0cjsgcmV0dXJuIHRtcDsgfQogCkBAIC0xMDksMTEgKzEwOCw2IEBAIHRlbXBsYXRl
PHR5cGVuYW1lIFQ+IHRlbXBsYXRlPHR5cGVuYW1lIFU+IGlubGluZSBSZWZQdHI8VD46OlJlZlB0
cihSZWY8VT4mJiByZWZlCiB7CiB9CiAKLXRlbXBsYXRlPHR5cGVuYW1lIFQ+IGlubGluZSB2b2lk
IFJlZlB0cjxUPjo6Y2xlYXIoKQotewotICAgIGRlcmVmSWZOb3ROdWxsKHN0ZDo6ZXhjaGFuZ2Uo
bV9wdHIsIG51bGxwdHIpKTsKLX0KLQogdGVtcGxhdGU8dHlwZW5hbWUgVD4KIGlubGluZSBUKiBS
ZWZQdHI8VD46OmxlYWtSZWYoKQogewpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvTW9kdWxl
cy9pbmRleGVkZGIvSURCQ3Vyc29yLmNwcCBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvaW5kZXhl
ZGRiL0lEQkN1cnNvci5jcHAKaW5kZXggYTIwZTFlMS4uYzQwMTFkYyAxMDA2NDQKLS0tIGEvU291
cmNlL1dlYkNvcmUvTW9kdWxlcy9pbmRleGVkZGIvSURCQ3Vyc29yLmNwcAorKysgYi9Tb3VyY2Uv
V2ViQ29yZS9Nb2R1bGVzL2luZGV4ZWRkYi9JREJDdXJzb3IuY3BwCkBAIC0yNTksNyArMjU5LDcg
QEAgdm9pZCBJREJDdXJzb3I6OmNsb3NlKCkKICAgICBtX3RyYW5zYWN0aW9uTm90aWZpZXIuY3Vy
c29yRmluaXNoZWQoKTsKICAgICBpZiAobV9yZXF1ZXN0KSB7CiAgICAgICAgIG1fcmVxdWVzdC0+
ZmluaXNoQ3Vyc29yKCk7Ci0gICAgICAgIG1fcmVxdWVzdC5jbGVhcigpOworICAgICAgICBtX3Jl
cXVlc3QgPSBudWxscHRyOwogICAgIH0KIH0KIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUv
TW9kdWxlcy9pbmRleGVkZGIvSURCRGF0YWJhc2VCYWNrZW5kLmNwcCBiL1NvdXJjZS9XZWJDb3Jl
L01vZHVsZXMvaW5kZXhlZGRiL0lEQkRhdGFiYXNlQmFja2VuZC5jcHAKaW5kZXggZmMyMzEwMi4u
MDllNGUyNyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9pbmRleGVkZGIvSURC
RGF0YWJhc2VCYWNrZW5kLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL2luZGV4ZWRk
Yi9JREJEYXRhYmFzZUJhY2tlbmQuY3BwCkBAIC0zMzMsNyArMzMzLDcgQEAgdm9pZCBJREJEYXRh
YmFzZUJhY2tlbmQ6OnRyYW5zYWN0aW9uRmluaXNoZWQoSURCVHJhbnNhY3Rpb25CYWNrZW5kKiBy
YXdUcmFuc2FjdGkKICAgICBtX3RyYW5zYWN0aW9ucy5yZW1vdmUodHJhbnNhY3Rpb24tPmlkKCkp
OwogICAgIGlmICh0cmFuc2FjdGlvbi0+bW9kZSgpID09IEluZGV4ZWREQjo6VHJhbnNhY3Rpb25N
b2RlOjpWZXJzaW9uQ2hhbmdlKSB7CiAgICAgICAgIEFTU0VSVCh0cmFuc2FjdGlvbi5nZXQoKSA9
PSBtX3J1bm5pbmdWZXJzaW9uQ2hhbmdlVHJhbnNhY3Rpb24uZ2V0KCkpOwotICAgICAgICBtX3J1
bm5pbmdWZXJzaW9uQ2hhbmdlVHJhbnNhY3Rpb24uY2xlYXIoKTsKKyAgICAgICAgbV9ydW5uaW5n
VmVyc2lvbkNoYW5nZVRyYW5zYWN0aW9uID0gbnVsbHB0cjsKICAgICB9CiB9CiAKZGlmZiAtLWdp
dCBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvaW5kZXhlZGRiL0lEQk9iamVjdFN0b3JlLmNwcCBi
L1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvaW5kZXhlZGRiL0lEQk9iamVjdFN0b3JlLmNwcAppbmRl
eCBlOGJmOWRkLi5hNmQyODE0IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL2lu
ZGV4ZWRkYi9JREJPYmplY3RTdG9yZS5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9p
bmRleGVkZGIvSURCT2JqZWN0U3RvcmUuY3BwCkBAIC0zMzcsNyArMzM3LDcgQEAgcHJpdmF0ZToK
ICAgICAgICAgICAgIC8vIE5vdyB0aGF0IHdlIGFyZSBkb25lIGluZGV4aW5nLCB0ZWxsIHRoZSBi
YWNrZW5kIHRvIGdvCiAgICAgICAgICAgICAvLyBiYWNrIHRvIHByb2Nlc3NpbmcgdGFza3Mgb2Yg
dHlwZSBOb3JtYWxUYXNrLgogICAgICAgICAgICAgbV9kYXRhYmFzZUJhY2tlbmQtPnNldEluZGV4
ZXNSZWFkeShtX3RyYW5zYWN0aW9uSWQsIG1fb2JqZWN0U3RvcmVJZCwgaW5kZXhJZHMpOwotICAg
ICAgICAgICAgbV9kYXRhYmFzZUJhY2tlbmQuY2xlYXIoKTsKKyAgICAgICAgICAgIG1fZGF0YWJh
c2VCYWNrZW5kID0gbnVsbHB0cjsKICAgICAgICAgfQogCiAgICAgfQpkaWZmIC0tZ2l0IGEvU291
cmNlL1dlYkNvcmUvTW9kdWxlcy9pbmRleGVkZGIvSURCT3BlbkRCUmVxdWVzdC5jcHAgYi9Tb3Vy
Y2UvV2ViQ29yZS9Nb2R1bGVzL2luZGV4ZWRkYi9JREJPcGVuREJSZXF1ZXN0LmNwcAppbmRleCA2
Mzc4MDdlLi43MTU3OWIwIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL2luZGV4
ZWRkYi9JREJPcGVuREJSZXF1ZXN0LmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL2lu
ZGV4ZWRkYi9JREJPcGVuREJSZXF1ZXN0LmNwcApAQCAtMTQyLDcgKzE0Miw3IEBAIGJvb2wgSURC
T3BlbkRCUmVxdWVzdDo6ZGlzcGF0Y2hFdmVudChQYXNzUmVmUHRyPEV2ZW50PiBldmVudCkKICAg
ICAvLyBJZiB0aGUgY29ubmVjdGlvbiBjbG9zZWQgYmV0d2VlbiBvblVwZ3JhZGVOZWVkZWQgYW5k
IHRoZSBkZWxpdmVyeSBvZiB0aGUgInN1Y2Nlc3MiIGV2ZW50LAogICAgIC8vIGFuICJlcnJvciIg
ZXZlbnQgc2hvdWxkIGJlIGZpcmVkIGluc3RlYWQuCiAgICAgaWYgKGV2ZW50LT50eXBlKCkgPT0g
ZXZlbnROYW1lcygpLnN1Y2Nlc3NFdmVudCAmJiBtX3Jlc3VsdC0+dHlwZSgpID09IElEQkFueTo6
SURCRGF0YWJhc2VUeXBlICYmIG1fcmVzdWx0LT5pZGJEYXRhYmFzZSgpLT5pc0Nsb3NlUGVuZGlu
ZygpKSB7Ci0gICAgICAgIG1fcmVzdWx0LmNsZWFyKCk7CisgICAgICAgIG1fcmVzdWx0ID0gbnVs
bHB0cjsKICAgICAgICAgb25FcnJvcihJREJEYXRhYmFzZUVycm9yOjpjcmVhdGUoSURCRGF0YWJh
c2VFeGNlcHRpb246OkFib3J0RXJyb3IsICJUaGUgY29ubmVjdGlvbiB3YXMgY2xvc2VkLiIpKTsK
ICAgICAgICAgcmV0dXJuIGZhbHNlOwogICAgIH0KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3Jl
L01vZHVsZXMvaW5kZXhlZGRiL0lEQlJlcXVlc3QuY3BwIGIvU291cmNlL1dlYkNvcmUvTW9kdWxl
cy9pbmRleGVkZGIvSURCUmVxdWVzdC5jcHAKaW5kZXggOWU1MDFiNC4uODY0ZGU1MyAxMDA2NDQK
LS0tIGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9pbmRleGVkZGIvSURCUmVxdWVzdC5jcHAKKysr
IGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9pbmRleGVkZGIvSURCUmVxdWVzdC5jcHAKQEAgLTE3
MCw5ICsxNzAsOSBAQCB2b2lkIElEQlJlcXVlc3Q6OmFib3J0KCkKICAgICBtX2VucXVldWVkRXZl
bnRzLmNsZWFyKCk7CiAKICAgICBtX2Vycm9yQ29kZSA9IDA7Ci0gICAgbV9lcnJvci5jbGVhcigp
OworICAgIG1fZXJyb3IgPSBudWxscHRyOwogICAgIG1fZXJyb3JNZXNzYWdlID0gU3RyaW5nKCk7
Ci0gICAgbV9yZXN1bHQuY2xlYXIoKTsKKyAgICBtX3Jlc3VsdCA9IG51bGxwdHI7CiAgICAgb25F
cnJvcihJREJEYXRhYmFzZUVycm9yOjpjcmVhdGUoSURCRGF0YWJhc2VFeGNlcHRpb246OkFib3J0
RXJyb3IpKTsKICAgICBtX3JlcXVlc3RBYm9ydGVkID0gdHJ1ZTsKIH0KQEAgLTE5NCwxMCArMTk0
LDEwIEBAIHZvaWQgSURCUmVxdWVzdDo6c2V0UGVuZGluZ0N1cnNvcihQYXNzUmVmUHRyPElEQkN1
cnNvcj4gY3Vyc29yKQogICAgIEFTU0VSVChjdXJzb3IgPT0gZ2V0UmVzdWx0Q3Vyc29yKCkpOwog
CiAgICAgbV9wZW5kaW5nQ3Vyc29yID0gY3Vyc29yOwotICAgIG1fcmVzdWx0LmNsZWFyKCk7Cisg
ICAgbV9yZXN1bHQgPSBudWxscHRyOwogICAgIG1fcmVhZHlTdGF0ZSA9IFBFTkRJTkc7CiAgICAg
bV9lcnJvckNvZGUgPSAwOwotICAgIG1fZXJyb3IuY2xlYXIoKTsKKyAgICBtX2Vycm9yID0gbnVs
bHB0cjsKICAgICBtX2Vycm9yTWVzc2FnZSA9IFN0cmluZygpOwogICAgIG1fdHJhbnNhY3Rpb24t
PnJlZ2lzdGVyUmVxdWVzdCh0aGlzKTsKIH0KQEAgLTI1Niw3ICsyNTYsNyBAQCB2b2lkIElEQlJl
cXVlc3Q6Om9uRXJyb3IoUGFzc1JlZlB0cjxJREJEYXRhYmFzZUVycm9yPiBlcnJvcikKICAgICBt
X2Vycm9yQ29kZSA9IGVycm9yLT5jb2RlKCk7CiAgICAgbV9lcnJvck1lc3NhZ2UgPSBlcnJvci0+
bWVzc2FnZSgpOwogICAgIG1fZXJyb3IgPSBET01FcnJvcjo6Y3JlYXRlKElEQkRhdGFiYXNlRXhj
ZXB0aW9uOjpnZXRFcnJvck5hbWUoZXJyb3ItPmlkYkNvZGUoKSkpOwotICAgIG1fcGVuZGluZ0N1
cnNvci5jbGVhcigpOworICAgIG1fcGVuZGluZ0N1cnNvciA9IG51bGxwdHI7CiAgICAgZW5xdWV1
ZUV2ZW50KEV2ZW50OjpjcmVhdGUoZXZlbnROYW1lcygpLmVycm9yRXZlbnQsIHRydWUsIHRydWUp
KTsKIH0KIApAQCAtNDA0LDcgKzQwNCw3IEBAIHZvaWQgSURCUmVxdWVzdDo6b25TdWNjZXNzSW50
ZXJuYWwoY29uc3QgRGVwcmVjYXRlZDo6U2NyaXB0VmFsdWUmIHZhbHVlKQogICAgIG1fcmVzdWx0
ID0gSURCQW55OjpjcmVhdGUodmFsdWUpOwogICAgIGlmIChtX3BlbmRpbmdDdXJzb3IpIHsKICAg
ICAgICAgbV9wZW5kaW5nQ3Vyc29yLT5jbG9zZSgpOwotICAgICAgICBtX3BlbmRpbmdDdXJzb3Iu
Y2xlYXIoKTsKKyAgICAgICAgbV9wZW5kaW5nQ3Vyc29yID0gbnVsbHB0cjsKICAgICB9CiAgICAg
ZW5xdWV1ZUV2ZW50KGNyZWF0ZVN1Y2Nlc3NFdmVudCgpKTsKIH0KQEAgLTU1Myw3ICs1NTMsNyBA
QCB2b2lkIElEQlJlcXVlc3Q6OnRyYW5zYWN0aW9uRGlkRmluaXNoQW5kRGlzcGF0Y2goKQogICAg
IEFTU0VSVChtX3RyYW5zYWN0aW9uLT5pc1ZlcnNpb25DaGFuZ2UoKSk7CiAgICAgQVNTRVJUKG1f
cmVhZHlTdGF0ZSA9PSBET05FKTsKICAgICBBU1NFUlQoc2NyaXB0RXhlY3V0aW9uQ29udGV4dCgp
KTsKLSAgICBtX3RyYW5zYWN0aW9uLmNsZWFyKCk7CisgICAgbV90cmFuc2FjdGlvbiA9IG51bGxw
dHI7CiAgICAgbV9yZWFkeVN0YXRlID0gUEVORElORzsKIH0KIApkaWZmIC0tZ2l0IGEvU291cmNl
L1dlYkNvcmUvTW9kdWxlcy9pbmRleGVkZGIvSURCVHJhbnNhY3Rpb24uY3BwIGIvU291cmNlL1dl
YkNvcmUvTW9kdWxlcy9pbmRleGVkZGIvSURCVHJhbnNhY3Rpb24uY3BwCmluZGV4IDk5NDhiYzcu
LjZlYzI5ZmEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvaW5kZXhlZGRiL0lE
QlRyYW5zYWN0aW9uLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL2luZGV4ZWRkYi9J
REJUcmFuc2FjdGlvbi5jcHAKQEAgLTI0MCw3ICsyNDAsNyBAQCB2b2lkIElEQlRyYW5zYWN0aW9u
OjpPcGVuQ3Vyc29yTm90aWZpZXI6OmN1cnNvckZpbmlzaGVkKCkKICAgICBpZiAobV9jdXJzb3Ip
IHsKICAgICAgICAgbV90cmFuc2FjdGlvbi0+dW5yZWdpc3Rlck9wZW5DdXJzb3IobV9jdXJzb3Ip
OwogICAgICAgICBtX2N1cnNvciA9IG51bGxwdHI7Ci0gICAgICAgIG1fdHJhbnNhY3Rpb24uY2xl
YXIoKTsKKyAgICAgICAgbV90cmFuc2FjdGlvbiA9IG51bGxwdHI7CiAgICAgfQogfQogCmRpZmYg
LS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL21lZGlhc291cmNlL01lZGlhU291cmNlLmNw
cCBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvbWVkaWFzb3VyY2UvTWVkaWFTb3VyY2UuY3BwCmlu
ZGV4IDkxMTcwYWEuLmM0MGQ2ZTMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMv
bWVkaWFzb3VyY2UvTWVkaWFTb3VyY2UuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMv
bWVkaWFzb3VyY2UvTWVkaWFTb3VyY2UuY3BwCkBAIC0zOTQsNyArMzk0LDcgQEAgdm9pZCBNZWRp
YVNvdXJjZTo6c2V0UmVhZHlTdGF0ZShjb25zdCBBdG9taWNTdHJpbmcmIHN0YXRlKQogICAgIExP
RyhNZWRpYVNvdXJjZSwgIk1lZGlhU291cmNlOjpzZXRSZWFkeVN0YXRlKCVwKSA6ICVzIC0+ICVz
IiwgdGhpcywgb2xkU3RhdGUuc3RyaW5nKCkuYXNjaWkoKS5kYXRhKCksIHN0YXRlLnN0cmluZygp
LmFzY2lpKCkuZGF0YSgpKTsKIAogICAgIGlmIChzdGF0ZSA9PSBjbG9zZWRLZXl3b3JkKCkpIHsK
LSAgICAgICAgbV9wcml2YXRlLmNsZWFyKCk7CisgICAgICAgIG1fcHJpdmF0ZSA9IG51bGxwdHI7
CiAgICAgICAgIG1fbWVkaWFFbGVtZW50ID0gbnVsbHB0cjsKICAgICAgICAgbV9kdXJhdGlvbiA9
IE1lZGlhVGltZTo6aW52YWxpZFRpbWUoKTsKICAgICB9CkBAIC04MTEsNyArODExLDcgQEAgdm9p
ZCBNZWRpYVNvdXJjZTo6c3RvcCgpCiAgICAgbV9hc3luY0V2ZW50UXVldWUuY2xvc2UoKTsKICAg
ICBpZiAoIWlzQ2xvc2VkKCkpCiAgICAgICAgIHNldFJlYWR5U3RhdGUoY2xvc2VkS2V5d29yZCgp
KTsKLSAgICBtX3ByaXZhdGUuY2xlYXIoKTsKKyAgICBtX3ByaXZhdGUgPSBudWxscHRyOwogfQog
CiBib29sIE1lZGlhU291cmNlOjpjYW5TdXNwZW5kRm9yUGFnZUNhY2hlKCkgY29uc3QKZGlmZiAt
LWdpdCBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvbWVkaWFzdHJlYW0vUlRDU2Vzc2lvbkRlc2Ny
aXB0aW9uUmVxdWVzdEltcGwuY3BwIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9tZWRpYXN0cmVh
bS9SVENTZXNzaW9uRGVzY3JpcHRpb25SZXF1ZXN0SW1wbC5jcHAKaW5kZXggZDcxMGRjMS4uMzAx
MzM0ZCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9tZWRpYXN0cmVhbS9SVENT
ZXNzaW9uRGVzY3JpcHRpb25SZXF1ZXN0SW1wbC5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvTW9k
dWxlcy9tZWRpYXN0cmVhbS9SVENTZXNzaW9uRGVzY3JpcHRpb25SZXF1ZXN0SW1wbC5jcHAKQEAg
LTk3LDggKzk3LDggQEAgYm9vbCBSVENTZXNzaW9uRGVzY3JpcHRpb25SZXF1ZXN0SW1wbDo6Y2Fu
U3VzcGVuZEZvclBhZ2VDYWNoZSgpIGNvbnN0CiAKIHZvaWQgUlRDU2Vzc2lvbkRlc2NyaXB0aW9u
UmVxdWVzdEltcGw6OmNsZWFyKCkKIHsKLSAgICBtX3N1Y2Nlc3NDYWxsYmFjay5jbGVhcigpOwot
ICAgIG1fZXJyb3JDYWxsYmFjay5jbGVhcigpOworICAgIG1fc3VjY2Vzc0NhbGxiYWNrID0gbnVs
bHB0cjsKKyAgICBtX2Vycm9yQ2FsbGJhY2sgPSBudWxscHRyOwogfQogCiB9IC8vIG5hbWVzcGFj
ZSBXZWJDb3JlCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL21lZGlhc3RyZWFt
L1JUQ1N0YXRzUmVxdWVzdEltcGwuY3BwIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9tZWRpYXN0
cmVhbS9SVENTdGF0c1JlcXVlc3RJbXBsLmNwcAppbmRleCBkZWIxOWE5Li5kMDAwYjExIDEwMDY0
NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL21lZGlhc3RyZWFtL1JUQ1N0YXRzUmVxdWVz
dEltcGwuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvbWVkaWFzdHJlYW0vUlRDU3Rh
dHNSZXF1ZXN0SW1wbC5jcHAKQEAgLTEwNCw3ICsxMDQsNyBAQCBib29sIFJUQ1N0YXRzUmVxdWVz
dEltcGw6OmNhblN1c3BlbmRGb3JQYWdlQ2FjaGUoKSBjb25zdAogCiB2b2lkIFJUQ1N0YXRzUmVx
dWVzdEltcGw6OmNsZWFyKCkKIHsKLSAgICBtX3N1Y2Nlc3NDYWxsYmFjay5jbGVhcigpOworICAg
IG1fc3VjY2Vzc0NhbGxiYWNrID0gbnVsbHB0cjsKIH0KIAogCmRpZmYgLS1naXQgYS9Tb3VyY2Uv
V2ViQ29yZS9Nb2R1bGVzL21lZGlhc3RyZWFtL1JUQ1ZvaWRSZXF1ZXN0SW1wbC5jcHAgYi9Tb3Vy
Y2UvV2ViQ29yZS9Nb2R1bGVzL21lZGlhc3RyZWFtL1JUQ1ZvaWRSZXF1ZXN0SW1wbC5jcHAKaW5k
ZXggODJmOGExMi4uNzA2ZjkwNyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9t
ZWRpYXN0cmVhbS9SVENWb2lkUmVxdWVzdEltcGwuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL01v
ZHVsZXMvbWVkaWFzdHJlYW0vUlRDVm9pZFJlcXVlc3RJbXBsLmNwcApAQCAtOTQsOCArOTQsOCBA
QCBib29sIFJUQ1ZvaWRSZXF1ZXN0SW1wbDo6Y2FuU3VzcGVuZEZvclBhZ2VDYWNoZSgpIGNvbnN0
CiAKIHZvaWQgUlRDVm9pZFJlcXVlc3RJbXBsOjpjbGVhcigpCiB7Ci0gICAgbV9zdWNjZXNzQ2Fs
bGJhY2suY2xlYXIoKTsKLSAgICBtX2Vycm9yQ2FsbGJhY2suY2xlYXIoKTsKKyAgICBtX3N1Y2Nl
c3NDYWxsYmFjayA9IG51bGxwdHI7CisgICAgbV9lcnJvckNhbGxiYWNrID0gbnVsbHB0cjsKIH0K
IAogfSAvLyBuYW1lc3BhY2UgV2ViQ29yZQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvTW9k
dWxlcy93ZWJhdWRpby9BdWRpb0NvbnRleHQuY3BwIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy93
ZWJhdWRpby9BdWRpb0NvbnRleHQuY3BwCmluZGV4IDVhM2RlYTAuLmZhYTk5NmIgMTAwNjQ0Ci0t
LSBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvd2ViYXVkaW8vQXVkaW9Db250ZXh0LmNwcAorKysg
Yi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL3dlYmF1ZGlvL0F1ZGlvQ29udGV4dC5jcHAKQEAgLTIz
MSw3ICsyMzEsNyBAQCB2b2lkIEF1ZGlvQ29udGV4dDo6Y2xlYXIoKQogewogICAgIC8vIFdlIGhh
dmUgdG8gcmVsZWFzZSBvdXIgcmVmZXJlbmNlIHRvIHRoZSBkZXN0aW5hdGlvbiBub2RlIGJlZm9y
ZSB0aGUgY29udGV4dCB3aWxsIGV2ZXIgYmUgZGVsZXRlZCBzaW5jZSB0aGUgZGVzdGluYXRpb24g
bm9kZSBob2xkcyBhIHJlZmVyZW5jZSB0byB0aGUgY29udGV4dC4KICAgICBpZiAobV9kZXN0aW5h
dGlvbk5vZGUpCi0gICAgICAgIG1fZGVzdGluYXRpb25Ob2RlLmNsZWFyKCk7CisgICAgICAgIG1f
ZGVzdGluYXRpb25Ob2RlID0gbnVsbHB0cjsKIAogICAgIC8vIEF1ZGlvIHRocmVhZCBpcyBkZWFk
LiBOb2JvZHkgd2lsbCBzY2hlZHVsZSBub2RlIGRlbGV0aW9uIGFjdGlvbi4gTGV0J3MgZG8gaXQg
b3Vyc2VsdmVzLgogICAgIGRvIHsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMv
d2ViZGF0YWJhc2UvU1FMVHJhbnNhY3Rpb25CYWNrZW5kLmNwcCBiL1NvdXJjZS9XZWJDb3JlL01v
ZHVsZXMvd2ViZGF0YWJhc2UvU1FMVHJhbnNhY3Rpb25CYWNrZW5kLmNwcAppbmRleCBkYTI1NGI2
Li5kMzExMzgwIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL3dlYmRhdGFiYXNl
L1NRTFRyYW5zYWN0aW9uQmFja2VuZC5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy93
ZWJkYXRhYmFzZS9TUUxUcmFuc2FjdGlvbkJhY2tlbmQuY3BwCkBAIC04NDUsNyArODQ1LDcgQEAg
dm9pZCBTUUxUcmFuc2FjdGlvbkJhY2tlbmQ6OnJlbGVhc2VPcmlnaW5Mb2NrSWZOZWVkZWQoKQog
ewogICAgIGlmIChtX29yaWdpbkxvY2spIHsKICAgICAgICAgbV9vcmlnaW5Mb2NrLT51bmxvY2so
KTsKLSAgICAgICAgbV9vcmlnaW5Mb2NrLmNsZWFyKCk7CisgICAgICAgIG1fb3JpZ2luTG9jayA9
IG51bGxwdHI7CiAgICAgfQogfQogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVz
L3dlYnNvY2tldHMvV29ya2VyVGhyZWFkYWJsZVdlYlNvY2tldENoYW5uZWwuY3BwIGIvU291cmNl
L1dlYkNvcmUvTW9kdWxlcy93ZWJzb2NrZXRzL1dvcmtlclRocmVhZGFibGVXZWJTb2NrZXRDaGFu
bmVsLmNwcAppbmRleCBiY2JkYWY5Li4zNGI2NGQ3IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29y
ZS9Nb2R1bGVzL3dlYnNvY2tldHMvV29ya2VyVGhyZWFkYWJsZVdlYlNvY2tldENoYW5uZWwuY3Bw
CisrKyBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvd2Vic29ja2V0cy9Xb3JrZXJUaHJlYWRhYmxl
V2ViU29ja2V0Q2hhbm5lbC5jcHAKQEAgLTEyNiw3ICsxMjYsNyBAQCB2b2lkIFdvcmtlclRocmVh
ZGFibGVXZWJTb2NrZXRDaGFubmVsOjpmYWlsKGNvbnN0IFN0cmluZyYgcmVhc29uKQogdm9pZCBX
b3JrZXJUaHJlYWRhYmxlV2ViU29ja2V0Q2hhbm5lbDo6ZGlzY29ubmVjdCgpCiB7CiAgICAgbV9i
cmlkZ2UtPmRpc2Nvbm5lY3QoKTsKLSAgICBtX2JyaWRnZS5jbGVhcigpOworICAgIG1fYnJpZGdl
ID0gbnVsbHB0cjsKIH0KIAogdm9pZCBXb3JrZXJUaHJlYWRhYmxlV2ViU29ja2V0Q2hhbm5lbDo6
c3VzcGVuZCgpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9qcy9XZWJDb3Jl
SlNDbGllbnREYXRhLmggYi9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9qcy9XZWJDb3JlSlNDbGll
bnREYXRhLmgKaW5kZXggNjU0NTEzMy4uNDMwMmQ2OCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNv
cmUvYmluZGluZ3MvanMvV2ViQ29yZUpTQ2xpZW50RGF0YS5oCisrKyBiL1NvdXJjZS9XZWJDb3Jl
L2JpbmRpbmdzL2pzL1dlYkNvcmVKU0NsaWVudERhdGEuaApAQCAtNDQsNyArNDQsNyBAQCBwdWJs
aWM6CiAgICAgICAgIEFTU0VSVChtX3dvcmxkU2V0LmNvbnRhaW5zKG1fbm9ybWFsV29ybGQuZ2V0
KCkpKTsKICAgICAgICAgQVNTRVJUKG1fd29ybGRTZXQuc2l6ZSgpID09IDEpOwogICAgICAgICBB
U1NFUlQobV9ub3JtYWxXb3JsZC0+aGFzT25lUmVmKCkpOwotICAgICAgICBtX25vcm1hbFdvcmxk
LmNsZWFyKCk7CisgICAgICAgIG1fbm9ybWFsV29ybGQgPSBudWxscHRyOwogICAgICAgICBBU1NF
UlQobV93b3JsZFNldC5pc0VtcHR5KCkpOwogICAgIH0KIApkaWZmIC0tZ2l0IGEvU291cmNlL1dl
YkNvcmUvYmluZGluZ3MvanMvV29ya2VyU2NyaXB0Q29udHJvbGxlci5jcHAgYi9Tb3VyY2UvV2Vi
Q29yZS9iaW5kaW5ncy9qcy9Xb3JrZXJTY3JpcHRDb250cm9sbGVyLmNwcAppbmRleCA5MGUwZmY1
Li4yOGM5ZWYwIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9qcy9Xb3JrZXJT
Y3JpcHRDb250cm9sbGVyLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9qcy9Xb3Jr
ZXJTY3JpcHRDb250cm9sbGVyLmNwcApAQCAtNjIsNyArNjIsNyBAQCBXb3JrZXJTY3JpcHRDb250
cm9sbGVyOjp+V29ya2VyU2NyaXB0Q29udHJvbGxlcigpCiB7CiAgICAgSlNMb2NrSG9sZGVyIGxv
Y2sodm0oKSk7CiAgICAgbV93b3JrZXJHbG9iYWxTY29wZVdyYXBwZXIuY2xlYXIoKTsKLSAgICBt
X3ZtLmNsZWFyKCk7CisgICAgbV92bSA9IG51bGxwdHI7CiB9CiAKIHZvaWQgV29ya2VyU2NyaXB0
Q29udHJvbGxlcjo6aW5pdFNjcmlwdCgpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9jb250
ZW50ZXh0ZW5zaW9ucy9Db250ZW50RXh0ZW5zaW9uUGFyc2VyLmNwcCBiL1NvdXJjZS9XZWJDb3Jl
L2NvbnRlbnRleHRlbnNpb25zL0NvbnRlbnRFeHRlbnNpb25QYXJzZXIuY3BwCmluZGV4IDAyMjY1
MmIuLjdiZjU2ZTcgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2NvbnRlbnRleHRlbnNpb25z
L0NvbnRlbnRFeHRlbnNpb25QYXJzZXIuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2NvbnRlbnRl
eHRlbnNpb25zL0NvbnRlbnRFeHRlbnNpb25QYXJzZXIuY3BwCkBAIC0yNzcsNyArMjc3LDcgQEAg
c3RkOjplcnJvcl9jb2RlIHBhcnNlUnVsZUxpc3QoY29uc3QgU3RyaW5nJiBydWxlcywgVmVjdG9y
PENvbnRlbnRFeHRlbnNpb25SdWxlPiYKICAgICBFeGVjU3RhdGUqIGV4ZWMgPSBnbG9iYWxPYmpl
Y3QtPmdsb2JhbEV4ZWMoKTsKICAgICBhdXRvIGVycm9yID0gbG9hZEVuY29kZWRSdWxlcygqZXhl
YywgcnVsZXMsIHJ1bGVMaXN0KTsKIAotICAgIHZtLmNsZWFyKCk7CisgICAgdm0gPSBudWxscHRy
OwogCiAgICAgaWYgKGVycm9yKQogICAgICAgICByZXR1cm4gZXJyb3I7CmRpZmYgLS1naXQgYS9T
b3VyY2UvV2ViQ29yZS9jc3MvQ1NTUGFyc2VyLmNwcCBiL1NvdXJjZS9XZWJDb3JlL2Nzcy9DU1NQ
YXJzZXIuY3BwCmluZGV4IDVlOGYwNWMuLmZmNTIyNDcgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJD
b3JlL2Nzcy9DU1NQYXJzZXIuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2Nzcy9DU1NQYXJzZXIu
Y3BwCkBAIC00NTAyLDE1ICs0NTAyLDE1IEBAIHZvaWQgQ1NTUGFyc2VyOjpwYXJzZUZpbGxQb3Np
dGlvbihDU1NQYXJzZXJWYWx1ZUxpc3QmIHZhbHVlTGlzdCwgUmVmUHRyPENTU1ZhbHVlCiAgICAg
aWYgKHZhbHVlMikKICAgICAgICAgdmFsdWVMaXN0Lm5leHQoKTsKICAgICBlbHNlIHsKLSAgICAg
ICAgdmFsdWUxLmNsZWFyKCk7CisgICAgICAgIHZhbHVlMSA9IG51bGxwdHI7CiAgICAgICAgIHJl
dHVybjsKICAgICB9CiAKICAgICBSZWZQdHI8Q1NTUHJpbWl0aXZlVmFsdWU+IHBhcnNlZFZhbHVl
MSA9IGRvd25jYXN0PENTU1ByaW1pdGl2ZVZhbHVlPih2YWx1ZTEuZ2V0KCkpOwogICAgIFJlZlB0
cjxDU1NQcmltaXRpdmVWYWx1ZT4gcGFyc2VkVmFsdWUyID0gZG93bmNhc3Q8Q1NTUHJpbWl0aXZl
VmFsdWU+KHZhbHVlMi5nZXQoKSk7CiAKLSAgICB2YWx1ZTEuY2xlYXIoKTsKLSAgICB2YWx1ZTIu
Y2xlYXIoKTsKKyAgICB2YWx1ZTEgPSBudWxscHRyOworICAgIHZhbHVlMiA9IG51bGxwdHI7CiAK
ICAgICAvLyBQZXIgQ1NTMyBzeW50YXgsIDxwb3NpdGlvbj4gY2FuJ3QgaGF2ZSAnY2VudGVyJyBh
cyBpdHMgc2Vjb25kIGtleXdvcmQgYXMgd2UgaGF2ZSBtb3JlIGFyZ3VtZW50cyB0byBmb2xsb3cu
CiAgICAgaWYgKHBhcnNlZFZhbHVlMi0+Z2V0VmFsdWVJRCgpID09IENTU1ZhbHVlQ2VudGVyKQpA
QCAtNDU0OSw3ICs0NTQ5LDcgQEAgdm9pZCBDU1NQYXJzZXI6OnBhcnNlMlZhbHVlc0ZpbGxQb3Np
dGlvbihDU1NQYXJzZXJWYWx1ZUxpc3QmIHZhbHVlTGlzdCwgUmVmUHRyPEMKICAgICAgICAgICAg
IHZhbHVlTGlzdC5uZXh0KCk7CiAgICAgICAgIGVsc2UgewogICAgICAgICAgICAgaWYgKCFpblNo
b3J0aGFuZCgpKSB7Ci0gICAgICAgICAgICAgICAgdmFsdWUxLmNsZWFyKCk7CisgICAgICAgICAg
ICAgICAgdmFsdWUxID0gbnVsbHB0cjsKICAgICAgICAgICAgICAgICByZXR1cm47CiAgICAgICAg
ICAgICB9CiAgICAgICAgIH0KQEAgLTEyMTg0LDcgKzEyMTg0LDcgQEAgUGFzc1JlZlB0cjxDU1NS
dWxlU291cmNlRGF0YT4gQ1NTUGFyc2VyOjpwb3BSdWxlRGF0YSgpCiAgICAgICAgIHJldHVybiBu
dWxscHRyOwogCiAgICAgQVNTRVJUKCFtX2N1cnJlbnRSdWxlRGF0YVN0YWNrLT5pc0VtcHR5KCkp
OwotICAgIG1fY3VycmVudFJ1bGVEYXRhLmNsZWFyKCk7CisgICAgbV9jdXJyZW50UnVsZURhdGEg
PSBudWxscHRyOwogICAgIFJlZlB0cjxDU1NSdWxlU291cmNlRGF0YT4gZGF0YSA9IG1fY3VycmVu
dFJ1bGVEYXRhU3RhY2stPmxhc3QoKTsKICAgICBtX2N1cnJlbnRSdWxlRGF0YVN0YWNrLT5yZW1v
dmVMYXN0KCk7CiAgICAgcmV0dXJuIGRhdGEucmVsZWFzZSgpOwpAQCAtMTI2MDUsNyArMTI2MDUs
NyBAQCB2b2lkIENTU1BhcnNlcjo6bWFya1J1bGVCb2R5U3RhcnQoKQogewogICAgIGlmICghaXNF
eHRyYWN0aW5nU291cmNlRGF0YSgpKQogICAgICAgICByZXR1cm47Ci0gICAgbV9jdXJyZW50UnVs
ZURhdGEuY2xlYXIoKTsKKyAgICBtX2N1cnJlbnRSdWxlRGF0YSA9IG51bGxwdHI7CiAgICAgdW5z
aWduZWQgb2Zmc2V0ID0gdG9rZW5TdGFydE9mZnNldCgpOwogICAgIGlmICh0b2tlblN0YXJ0Q2hh
cigpID09ICd7JykKICAgICAgICAgKytvZmZzZXQ7IC8vIFNraXAgdGhlIHJ1bGUgYm9keSBvcGVu
aW5nIGJyYWNlLgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvZG9tL0RvY3VtZW50LmNwcCBi
L1NvdXJjZS9XZWJDb3JlL2RvbS9Eb2N1bWVudC5jcHAKaW5kZXggOGQ2ZTk2YS4uYWEwNGFkNiAx
MDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvZG9tL0RvY3VtZW50LmNwcAorKysgYi9Tb3VyY2Uv
V2ViQ29yZS9kb20vRG9jdW1lbnQuY3BwCkBAIC0yNDI0LDcgKzI0MjQsNyBAQCB2b2lkIERvY3Vt
ZW50OjpkZXRhY2hQYXJzZXIoKQogICAgIGlmICghbV9wYXJzZXIpCiAgICAgICAgIHJldHVybjsK
ICAgICBtX3BhcnNlci0+ZGV0YWNoKCk7Ci0gICAgbV9wYXJzZXIuY2xlYXIoKTsKKyAgICBtX3Bh
cnNlciA9IG51bGxwdHI7CiB9CiAKIHZvaWQgRG9jdW1lbnQ6OmNhbmNlbFBhcnNpbmcoKQpAQCAt
NTg4Miw3ICs1ODgyLDcgQEAgdm9pZCBEb2N1bWVudDo6Y2xlYXJTY3JpcHRlZEFuaW1hdGlvbkNv
bnRyb2xsZXIoKQogICAgIC8vIEZJWE1FOiBjb25zaWRlciB1c2luZyBBY3RpdmVET01PYmplY3Qu
CiAgICAgaWYgKG1fc2NyaXB0ZWRBbmltYXRpb25Db250cm9sbGVyKQogICAgICAgICBtX3Njcmlw
dGVkQW5pbWF0aW9uQ29udHJvbGxlci0+Y2xlYXJEb2N1bWVudFBvaW50ZXIoKTsKLSAgICBtX3Nj
cmlwdGVkQW5pbWF0aW9uQ29udHJvbGxlci5jbGVhcigpOworICAgIG1fc2NyaXB0ZWRBbmltYXRp
b25Db250cm9sbGVyID0gbnVsbHB0cjsKIH0KICNlbmRpZgogICAgIApAQCAtNjMwMCw3ICs2MzAw
LDcgQEAgdm9pZCBEb2N1bWVudDo6dXBkYXRlSG92ZXJBY3RpdmVTdGF0ZShjb25zdCBIaXRUZXN0
UmVxdWVzdCYgcmVxdWVzdCwgRWxlbWVudCogaW4KICAgICAgICAgICAgIGN1cnItPnNldEFjdGl2
ZShmYWxzZSk7CiAgICAgICAgICAgICBtX3VzZXJBY3Rpb25FbGVtZW50cy5zZXRJbkFjdGl2ZUNo
YWluKGN1cnIsIGZhbHNlKTsKICAgICAgICAgfQotICAgICAgICBtX2FjdGl2ZUVsZW1lbnQuY2xl
YXIoKTsKKyAgICAgICAgbV9hY3RpdmVFbGVtZW50ID0gbnVsbHB0cjsKICAgICB9IGVsc2Ugewog
ICAgICAgICBFbGVtZW50KiBuZXdBY3RpdmVFbGVtZW50ID0gaW5uZXJFbGVtZW50SW5Eb2N1bWVu
dDsKICAgICAgICAgaWYgKCFvbGRBY3RpdmVFbGVtZW50ICYmIG5ld0FjdGl2ZUVsZW1lbnQgJiYg
cmVxdWVzdC5hY3RpdmUoKSAmJiAhcmVxdWVzdC50b3VjaE1vdmUoKSkgewpkaWZmIC0tZ2l0IGEv
U291cmNlL1dlYkNvcmUvZG9tL0RvY3VtZW50TWFya2VyLmggYi9Tb3VyY2UvV2ViQ29yZS9kb20v
RG9jdW1lbnRNYXJrZXIuaAppbmRleCA0Nzk0OWZlLi5lYzUyNDg5IDEwMDY0NAotLS0gYS9Tb3Vy
Y2UvV2ViQ29yZS9kb20vRG9jdW1lbnRNYXJrZXIuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9kb20v
RG9jdW1lbnRNYXJrZXIuaApAQCAtMTMxLDcgKzEzMSw3IEBAIHB1YmxpYzoKICAgICBEb2N1bWVu
dE1hcmtlckRldGFpbHMqIGRldGFpbHMoKSBjb25zdDsKIAogICAgIHZvaWQgc2V0QWN0aXZlTWF0
Y2goYm9vbCk7Ci0gICAgdm9pZCBjbGVhckRldGFpbHMoKSB7IG1fZGV0YWlscy5jbGVhcigpOyB9
CisgICAgdm9pZCBjbGVhckRldGFpbHMoKSB7IG1fZGV0YWlscyA9IG51bGxwdHI7IH0KIAogICAg
IC8vIE9mZnNldCBtb2RpZmljYXRpb25zIGFyZSBkb25lIGJ5IERvY3VtZW50TWFya2VyQ29udHJv
bGxlci4KICAgICAvLyBPdGhlciBjbGFzc2VzIHNob3VsZCBub3QgY2FsbCBmb2xsb3dpbmcgc2V0
dGVycy4KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2RvbS9FbGVtZW50LmNwcCBiL1NvdXJj
ZS9XZWJDb3JlL2RvbS9FbGVtZW50LmNwcAppbmRleCBjY2M2MzlhLi5jMGY0N2FiIDEwMDY0NAot
LS0gYS9Tb3VyY2UvV2ViQ29yZS9kb20vRWxlbWVudC5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUv
ZG9tL0VsZW1lbnQuY3BwCkBAIC0zMjA3LDcgKzMyMDcsNyBAQCB2b2lkIEVsZW1lbnQ6OmNsb25l
QXR0cmlidXRlc0Zyb21FbGVtZW50KGNvbnN0IEVsZW1lbnQmIG90aGVyKQogCiAgICAgb3RoZXIu
c3luY2hyb25pemVBbGxBdHRyaWJ1dGVzKCk7CiAgICAgaWYgKCFvdGhlci5tX2VsZW1lbnREYXRh
KSB7Ci0gICAgICAgIG1fZWxlbWVudERhdGEuY2xlYXIoKTsKKyAgICAgICAgbV9lbGVtZW50RGF0
YSA9IG51bGxwdHI7CiAgICAgICAgIHJldHVybjsKICAgICB9CiAKZGlmZiAtLWdpdCBhL1NvdXJj
ZS9XZWJDb3JlL2RvbS9Ob2RlSXRlcmF0b3IuY3BwIGIvU291cmNlL1dlYkNvcmUvZG9tL05vZGVJ
dGVyYXRvci5jcHAKaW5kZXggNThiMmI5Zi4uNjFhZTI4ZiAxMDA2NDQKLS0tIGEvU291cmNlL1dl
YkNvcmUvZG9tL05vZGVJdGVyYXRvci5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvZG9tL05vZGVJ
dGVyYXRvci5jcHAKQEAgLTQ1LDcgKzQ1LDcgQEAgTm9kZUl0ZXJhdG9yOjpOb2RlUG9pbnRlcjo6
Tm9kZVBvaW50ZXIoUGFzc1JlZlB0cjxOb2RlPiBuLCBib29sIGIpCiAKIHZvaWQgTm9kZUl0ZXJh
dG9yOjpOb2RlUG9pbnRlcjo6Y2xlYXIoKQogewotICAgIG5vZGUuY2xlYXIoKTsKKyAgICBub2Rl
ID0gbnVsbHB0cjsKIH0KIAogYm9vbCBOb2RlSXRlcmF0b3I6Ok5vZGVQb2ludGVyOjptb3ZlVG9O
ZXh0KE5vZGUqIHJvb3QpCkBAIC0xNTEsNyArMTUxLDcgQEAgdm9pZCBOb2RlSXRlcmF0b3I6OmRl
dGFjaCgpCiB7CiAgICAgcm9vdCgpLT5kb2N1bWVudCgpLmRldGFjaE5vZGVJdGVyYXRvcih0aGlz
KTsKICAgICBtX2RldGFjaGVkID0gdHJ1ZTsKLSAgICBtX3JlZmVyZW5jZU5vZGUubm9kZS5jbGVh
cigpOworICAgIG1fcmVmZXJlbmNlTm9kZS5ub2RlID0gbnVsbHB0cjsKIH0KIAogdm9pZCBOb2Rl
SXRlcmF0b3I6Om5vZGVXaWxsQmVSZW1vdmVkKE5vZGUmIHJlbW92ZWROb2RlKQpkaWZmIC0tZ2l0
IGEvU291cmNlL1dlYkNvcmUvZG9tL1Bvc2l0aW9uLmggYi9Tb3VyY2UvV2ViQ29yZS9kb20vUG9z
aXRpb24uaAppbmRleCAwZjMxNmRhLi42MDNlODhmIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29y
ZS9kb20vUG9zaXRpb24uaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9kb20vUG9zaXRpb24uaApAQCAt
OTIsNyArOTIsNyBAQCBwdWJsaWM6CiAKICAgICBBbmNob3JUeXBlIGFuY2hvclR5cGUoKSBjb25z
dCB7IHJldHVybiBzdGF0aWNfY2FzdDxBbmNob3JUeXBlPihtX2FuY2hvclR5cGUpOyB9CiAKLSAg
ICB2b2lkIGNsZWFyKCkgeyBtX2FuY2hvck5vZGUuY2xlYXIoKTsgbV9vZmZzZXQgPSAwOyBtX2Fu
Y2hvclR5cGUgPSBQb3NpdGlvbklzT2Zmc2V0SW5BbmNob3I7IG1faXNMZWdhY3lFZGl0aW5nUG9z
aXRpb24gPSBmYWxzZTsgfQorICAgIHZvaWQgY2xlYXIoKSB7IG1fYW5jaG9yTm9kZSA9IG51bGxw
dHI7IG1fb2Zmc2V0ID0gMDsgbV9hbmNob3JUeXBlID0gUG9zaXRpb25Jc09mZnNldEluQW5jaG9y
OyBtX2lzTGVnYWN5RWRpdGluZ1Bvc2l0aW9uID0gZmFsc2U7IH0KIAogICAgIC8vIFRoZXNlIGFy
ZSBhbHdheXMgRE9NIGNvbXBsaWFudCB2YWx1ZXMuICBFZGl0aW5nIHBvc2l0aW9ucyBsaWtlIFtp
bWcsIDBdIChha2EgW2ltZywgYmVmb3JlXSkKICAgICAvLyB3aWxsIHJldHVybiBpbWctPnBhcmVu
dE5vZGUoKSBhbmQgaW1nLT5jb21wdXRlTm9kZUluZGV4KCkgZnJvbSB0aGVzZSBmdW5jdGlvbnMu
CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9kb20vUmFuZ2VCb3VuZGFyeVBvaW50LmggYi9T
b3VyY2UvV2ViQ29yZS9kb20vUmFuZ2VCb3VuZGFyeVBvaW50LmgKaW5kZXggYjA0ZGMwOC4uOGM3
OTliMyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvZG9tL1JhbmdlQm91bmRhcnlQb2ludC5o
CisrKyBiL1NvdXJjZS9XZWJDb3JlL2RvbS9SYW5nZUJvdW5kYXJ5UG9pbnQuaApAQCAtMTEyLDkg
KzExMiw5IEBAIGlubGluZSBpbnQgUmFuZ2VCb3VuZGFyeVBvaW50OjpvZmZzZXQoKSBjb25zdAog
CiBpbmxpbmUgdm9pZCBSYW5nZUJvdW5kYXJ5UG9pbnQ6OmNsZWFyKCkKIHsKLSAgICBtX2NvbnRh
aW5lck5vZGUuY2xlYXIoKTsKKyAgICBtX2NvbnRhaW5lck5vZGUgPSBudWxscHRyOwogICAgIG1f
b2Zmc2V0SW5Db250YWluZXIgPSAwOwotICAgIG1fY2hpbGRCZWZvcmVCb3VuZGFyeSA9IDA7Cisg
ICAgbV9jaGlsZEJlZm9yZUJvdW5kYXJ5ID0gbnVsbHB0cjsKIH0KIAogaW5saW5lIHZvaWQgUmFu
Z2VCb3VuZGFyeVBvaW50OjpzZXQoUGFzc1JlZlB0cjxOb2RlPiBjb250YWluZXIsIGludCBvZmZz
ZXQsIE5vZGUqIGNoaWxkQmVmb3JlKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvZG9tL1Nw
YWNlU3BsaXRTdHJpbmcuaCBiL1NvdXJjZS9XZWJDb3JlL2RvbS9TcGFjZVNwbGl0U3RyaW5nLmgK
aW5kZXggZWY1NjgwMS4uZjg1Yjk2NCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvZG9tL1Nw
YWNlU3BsaXRTdHJpbmcuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9kb20vU3BhY2VTcGxpdFN0cmlu
Zy5oCkBAIC0xMDUsNyArMTA1LDcgQEAgcHVibGljOgogICAgIGJvb2wgb3BlcmF0b3IhPShjb25z
dCBTcGFjZVNwbGl0U3RyaW5nJiBvdGhlcikgY29uc3QgeyByZXR1cm4gbV9kYXRhICE9IG90aGVy
Lm1fZGF0YTsgfQogCiAgICAgdm9pZCBzZXQoY29uc3QgQXRvbWljU3RyaW5nJiwgYm9vbCBzaG91
bGRGb2xkQ2FzZSk7Ci0gICAgdm9pZCBjbGVhcigpIHsgbV9kYXRhLmNsZWFyKCk7IH0KKyAgICB2
b2lkIGNsZWFyKCkgeyBtX2RhdGEgPSBudWxscHRyOyB9CiAKICAgICBib29sIGNvbnRhaW5zKGNv
bnN0IEF0b21pY1N0cmluZyYgc3RyaW5nKSBjb25zdCB7IHJldHVybiBtX2RhdGEgJiYgbV9kYXRh
LT5jb250YWlucyhzdHJpbmcpOyB9CiAgICAgYm9vbCBjb250YWluc0FsbChjb25zdCBTcGFjZVNw
bGl0U3RyaW5nJiBuYW1lcykgY29uc3QgeyByZXR1cm4gIW5hbWVzLm1fZGF0YSB8fCAobV9kYXRh
ICYmIG1fZGF0YS0+Y29udGFpbnNBbGwoKm5hbWVzLm1fZGF0YSkpOyB9CmRpZmYgLS1naXQgYS9T
b3VyY2UvV2ViQ29yZS9kb20vU3R5bGVkRWxlbWVudC5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9kb20v
U3R5bGVkRWxlbWVudC5jcHAKaW5kZXggNWIyNjk2NmIuLjBlYzBkN2YgMTAwNjQ0Ci0tLSBhL1Nv
dXJjZS9XZWJDb3JlL2RvbS9TdHlsZWRFbGVtZW50LmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9k
b20vU3R5bGVkRWxlbWVudC5jcHAKQEAgLTE4NSw3ICsxODUsNyBAQCBpbmxpbmUgdm9pZCBTdHls
ZWRFbGVtZW50OjpzZXRJbmxpbmVTdHlsZUZyb21TdHJpbmcoY29uc3QgQXRvbWljU3RyaW5nJiBu
ZXdTdHlsZQogICAgIC8vIFdlIHJlY29uc3RydWN0IHRoZSBwcm9wZXJ0eSBzZXQgaW5zdGVhZCBv
ZiBtdXRhdGluZyBpZiB0aGVyZSBpcyBubyBDU1NPTSB3cmFwcGVyLgogICAgIC8vIFRoaXMgbWFr
ZXMgd3JhcHBlcmxlc3MgcHJvcGVydHkgc2V0cyBpbW11dGFibGUgYW5kIHNvIGNhY2hlYWJsZS4K
ICAgICBpZiAoaW5saW5lU3R5bGUgJiYgIWlzPE11dGFibGVTdHlsZVByb3BlcnRpZXM+KCppbmxp
bmVTdHlsZSkpCi0gICAgICAgIGlubGluZVN0eWxlLmNsZWFyKCk7CisgICAgICAgIGlubGluZVN0
eWxlID0gbnVsbHB0cjsKIAogICAgIGlmICghaW5saW5lU3R5bGUpCiAgICAgICAgIGlubGluZVN0
eWxlID0gQ1NTUGFyc2VyOjpwYXJzZUlubGluZVN0eWxlRGVjbGFyYXRpb24obmV3U3R5bGVTdHJp
bmcsIHRoaXMpOwpAQCAtMjAyLDcgKzIwMiw3IEBAIHZvaWQgU3R5bGVkRWxlbWVudDo6c3R5bGVB
dHRyaWJ1dGVDaGFuZ2VkKGNvbnN0IEF0b21pY1N0cmluZyYgbmV3U3R5bGVTdHJpbmcsIEF0CiAg
ICAgaWYgKG5ld1N0eWxlU3RyaW5nLmlzTnVsbCgpKSB7CiAgICAgICAgIGlmIChQcm9wZXJ0eVNl
dENTU1N0eWxlRGVjbGFyYXRpb24qIGNzc29tV3JhcHBlciA9IGlubGluZVN0eWxlQ1NTT01XcmFw
cGVyKCkpCiAgICAgICAgICAgICBjc3NvbVdyYXBwZXItPmNsZWFyUGFyZW50RWxlbWVudCgpOwot
ICAgICAgICBlbnN1cmVVbmlxdWVFbGVtZW50RGF0YSgpLm1faW5saW5lU3R5bGUuY2xlYXIoKTsK
KyAgICAgICAgZW5zdXJlVW5pcXVlRWxlbWVudERhdGEoKS5tX2lubGluZVN0eWxlID0gbnVsbHB0
cjsKICAgICB9IGVsc2UgaWYgKHJlYXNvbiA9PSBNb2RpZmllZEJ5Q2xvbmluZyB8fCBkb2N1bWVu
dCgpLmNvbnRlbnRTZWN1cml0eVBvbGljeSgpLT5hbGxvd0lubGluZVN0eWxlKGRvY3VtZW50KCku
dXJsKCksIHN0YXJ0TGluZU51bWJlcikpCiAgICAgICAgIHNldElubGluZVN0eWxlRnJvbVN0cmlu
ZyhuZXdTdHlsZVN0cmluZyk7CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2VkaXRpbmcv
QWx0ZXJuYXRpdmVUZXh0Q29udHJvbGxlci5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9lZGl0aW5nL0Fs
dGVybmF0aXZlVGV4dENvbnRyb2xsZXIuY3BwCmluZGV4IGY1YmM5NDguLjI3NWU0MzAgMTAwNjQ0
Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2VkaXRpbmcvQWx0ZXJuYXRpdmVUZXh0Q29udHJvbGxlci5j
cHAKKysrIGIvU291cmNlL1dlYkNvcmUvZWRpdGluZy9BbHRlcm5hdGl2ZVRleHRDb250cm9sbGVy
LmNwcApAQCAtMTQ3LDcgKzE0Nyw3IEBAIHZvaWQgQWx0ZXJuYXRpdmVUZXh0Q29udHJvbGxlcjo6
c3RhcnRBbHRlcm5hdGl2ZVRleHRVSVRpbWVyKEFsdGVybmF0aXZlVGV4dFR5cGUKIAogICAgIC8v
IElmIHR5cGUgaXMgUGFuZWxUeXBlUmV2ZXJzaW9uLCB0aGVuIHRoZSBuZXcgcmFuZ2UgaGFzIGJl
ZW4gc2V0LiBTbyB3ZSBzaG91bGRuJ3QgY2xlYXIgaXQuCiAgICAgaWYgKHR5cGUgPT0gQWx0ZXJu
YXRpdmVUZXh0VHlwZUNvcnJlY3Rpb24pCi0gICAgICAgIG1fYWx0ZXJuYXRpdmVUZXh0SW5mby5y
YW5nZVdpdGhBbHRlcm5hdGl2ZS5jbGVhcigpOworICAgICAgICBtX2FsdGVybmF0aXZlVGV4dElu
Zm8ucmFuZ2VXaXRoQWx0ZXJuYXRpdmUgPSBudWxscHRyOwogICAgIG1fYWx0ZXJuYXRpdmVUZXh0
SW5mby50eXBlID0gdHlwZTsKICAgICBtX3RpbWVyLnN0YXJ0T25lU2hvdChjb3JyZWN0aW9uUGFu
ZWxUaW1lckludGVydmFsKTsKIH0KQEAgLTE1NSw3ICsxNTUsNyBAQCB2b2lkIEFsdGVybmF0aXZl
VGV4dENvbnRyb2xsZXI6OnN0YXJ0QWx0ZXJuYXRpdmVUZXh0VUlUaW1lcihBbHRlcm5hdGl2ZVRl
eHRUeXBlCiB2b2lkIEFsdGVybmF0aXZlVGV4dENvbnRyb2xsZXI6OnN0b3BBbHRlcm5hdGl2ZVRl
eHRVSVRpbWVyKCkKIHsKICAgICBtX3RpbWVyLnN0b3AoKTsKLSAgICBtX2FsdGVybmF0aXZlVGV4
dEluZm8ucmFuZ2VXaXRoQWx0ZXJuYXRpdmUuY2xlYXIoKTsKKyAgICBtX2FsdGVybmF0aXZlVGV4
dEluZm8ucmFuZ2VXaXRoQWx0ZXJuYXRpdmUgPSBudWxscHRyOwogfQogCiB2b2lkIEFsdGVybmF0
aXZlVGV4dENvbnRyb2xsZXI6OnN0b3BQZW5kaW5nQ29ycmVjdGlvbihjb25zdCBWaXNpYmxlU2Vs
ZWN0aW9uJiBvbGRTZWxlY3Rpb24pCkBAIC0xODMsNyArMTgzLDcgQEAgdm9pZCBBbHRlcm5hdGl2
ZVRleHRDb250cm9sbGVyOjphcHBseVBlbmRpbmdDb3JyZWN0aW9uKGNvbnN0IFZpc2libGVTZWxl
Y3Rpb24mIHMKICAgICBpZiAoZG9BcHBseUNvcnJlY3Rpb24pCiAgICAgICAgIGhhbmRsZUFsdGVy
bmF0aXZlVGV4dFVJUmVzdWx0KGRpc21pc3NTb29uKFJlYXNvbkZvckRpc21pc3NpbmdBbHRlcm5h
dGl2ZVRleHRBY2NlcHRlZCkpOyAKICAgICBlbHNlCi0gICAgICAgIG1fYWx0ZXJuYXRpdmVUZXh0
SW5mby5yYW5nZVdpdGhBbHRlcm5hdGl2ZS5jbGVhcigpOworICAgICAgICBtX2FsdGVybmF0aXZl
VGV4dEluZm8ucmFuZ2VXaXRoQWx0ZXJuYXRpdmUgPSBudWxscHRyOwogfQogCiBib29sIEFsdGVy
bmF0aXZlVGV4dENvbnRyb2xsZXI6Omhhc1BlbmRpbmdDb3JyZWN0aW9uKCkgY29uc3QKQEAgLTM1
OSw3ICszNTksNyBAQCB2b2lkIEFsdGVybmF0aXZlVGV4dENvbnRyb2xsZXI6OnRpbWVyRmlyZWQo
KQogICAgICAgICBWZWN0b3I8U3RyaW5nPiBzdWdnZXN0aW9uczsKICAgICAgICAgdGV4dENoZWNr
ZXIoKS0+Z2V0R3Vlc3Nlc0ZvcldvcmQobV9hbHRlcm5hdGl2ZVRleHRJbmZvLm9yaWdpbmFsVGV4
dCwgcGFyYWdyYXBoVGV4dCwgc3VnZ2VzdGlvbnMpOwogICAgICAgICBpZiAoc3VnZ2VzdGlvbnMu
aXNFbXB0eSgpKSB7Ci0gICAgICAgICAgICBtX2FsdGVybmF0aXZlVGV4dEluZm8ucmFuZ2VXaXRo
QWx0ZXJuYXRpdmUuY2xlYXIoKTsKKyAgICAgICAgICAgIG1fYWx0ZXJuYXRpdmVUZXh0SW5mby5y
YW5nZVdpdGhBbHRlcm5hdGl2ZSA9IG51bGxwdHI7CiAgICAgICAgICAgICBicmVhazsKICAgICAg
ICAgfQogICAgICAgICBTdHJpbmcgdG9wU3VnZ2VzdGlvbiA9IHN1Z2dlc3Rpb25zLmZpcnN0KCk7
CkBAIC00MjIsNyArNDIyLDcgQEAgdm9pZCBBbHRlcm5hdGl2ZVRleHRDb250cm9sbGVyOjpoYW5k
bGVBbHRlcm5hdGl2ZVRleHRVSVJlc3VsdChjb25zdCBTdHJpbmcmIHJlc3UKICAgICAgICAgYnJl
YWs7CiAgICAgfQogCi0gICAgbV9hbHRlcm5hdGl2ZVRleHRJbmZvLnJhbmdlV2l0aEFsdGVybmF0
aXZlLmNsZWFyKCk7CisgICAgbV9hbHRlcm5hdGl2ZVRleHRJbmZvLnJhbmdlV2l0aEFsdGVybmF0
aXZlID0gbnVsbHB0cjsKIH0KIAogYm9vbCBBbHRlcm5hdGl2ZVRleHRDb250cm9sbGVyOjppc0F1
dG9tYXRpY1NwZWxsaW5nQ29ycmVjdGlvbkVuYWJsZWQoKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dl
YkNvcmUvZWRpdGluZy9FZGl0aW5nU3R5bGUuY3BwIGIvU291cmNlL1dlYkNvcmUvZWRpdGluZy9F
ZGl0aW5nU3R5bGUuY3BwCmluZGV4IDVjZjEyY2QuLjE3YWFiMjkgMTAwNjQ0Ci0tLSBhL1NvdXJj
ZS9XZWJDb3JlL2VkaXRpbmcvRWRpdGluZ1N0eWxlLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9l
ZGl0aW5nL0VkaXRpbmdTdHlsZS5jcHAKQEAgLTYzOCw3ICs2MzgsNyBAQCB2b2lkIEVkaXRpbmdT
dHlsZTo6b3ZlcnJpZGVUeXBpbmdTdHlsZUF0KGNvbnN0IEVkaXRpbmdTdHlsZSYgc3R5bGUsIGNv
bnN0IFBvc2l0aQogCiB2b2lkIEVkaXRpbmdTdHlsZTo6Y2xlYXIoKQogewotICAgIG1fbXV0YWJs
ZVN0eWxlLmNsZWFyKCk7CisgICAgbV9tdXRhYmxlU3R5bGUgPSBudWxscHRyOwogICAgIG1fc2hv
dWxkVXNlRml4ZWREZWZhdWx0Rm9udFNpemUgPSBmYWxzZTsKICAgICBtX2ZvbnRTaXplRGVsdGEg
PSBOb0ZvbnREZWx0YTsKICAgICBzZXRVbmRlcmxpbmVDaGFuZ2UoVGV4dERlY29yYXRpb25DaGFu
Z2U6Ok5vbmUpOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvZWRpdGluZy9FZGl0b3IuY3Bw
IGIvU291cmNlL1dlYkNvcmUvZWRpdGluZy9FZGl0b3IuY3BwCmluZGV4IGEzYzNjOWMuLmIzMWNi
MzMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2VkaXRpbmcvRWRpdG9yLmNwcAorKysgYi9T
b3VyY2UvV2ViQ29yZS9lZGl0aW5nL0VkaXRvci5jcHAKQEAgLTgyOCw3ICs4MjgsNyBAQCB2b2lk
IEVkaXRvcjo6cmVtb3ZlRm9ybWF0dGluZ0FuZFN0eWxlKCkKIAogdm9pZCBFZGl0b3I6OmNsZWFy
TGFzdEVkaXRDb21tYW5kKCkgCiB7Ci0gICAgbV9sYXN0RWRpdENvbW1hbmQuY2xlYXIoKTsKKyAg
ICBtX2xhc3RFZGl0Q29tbWFuZCA9IG51bGxwdHI7CiB9CiAjaWYgUExBVEZPUk0oSU9TKQogLy8g
SWYgdGhlIHNlbGVjdGlvbiBpcyBhZGp1c3RlZCBmcm9tIFVJS2l0IHdpdGhvdXQgY2xvc2luZyB0
aGUgdHlwaW5nLCB0aGUgdHlwaW5nIGNvbW1hbmQgbWF5CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2Vi
Q29yZS9lZGl0aW5nL0ZyYW1lU2VsZWN0aW9uLmNwcCBiL1NvdXJjZS9XZWJDb3JlL2VkaXRpbmcv
RnJhbWVTZWxlY3Rpb24uY3BwCmluZGV4IDllZTAwZjIuLjVkNjFhNTYgMTAwNjQ0Ci0tLSBhL1Nv
dXJjZS9XZWJDb3JlL2VkaXRpbmcvRnJhbWVTZWxlY3Rpb24uY3BwCisrKyBiL1NvdXJjZS9XZWJD
b3JlL2VkaXRpbmcvRnJhbWVTZWxlY3Rpb24uY3BwCkBAIC0xMzU5LDcgKzEzNTksNyBAQCB2b2lk
IEZyYW1lU2VsZWN0aW9uOjpwcmVwYXJlRm9yRGVzdHJ1Y3Rpb24oKQogICAgICAgICB2aWV3LT5j
bGVhclNlbGVjdGlvbigpOwogCiAgICAgc2V0U2VsZWN0aW9uV2l0aG91dFVwZGF0aW5nQXBwZWFy
YW5jZShWaXNpYmxlU2VsZWN0aW9uKCksIGRlZmF1bHRTZXRTZWxlY3Rpb25PcHRpb25zKCksIEFs
aWduQ3Vyc29yT25TY3JvbGxJZk5lZWRlZCwgQ2hhcmFjdGVyR3JhbnVsYXJpdHkpOwotICAgIG1f
cHJldmlvdXNDYXJldE5vZGUuY2xlYXIoKTsKKyAgICBtX3ByZXZpb3VzQ2FyZXROb2RlID0gbnVs
bHB0cjsKIH0KIAogdm9pZCBGcmFtZVNlbGVjdGlvbjo6c2V0U3RhcnQoY29uc3QgVmlzaWJsZVBv
c2l0aW9uICZwb3MsIEVVc2VyVHJpZ2dlcmVkIHRyaWdnZXIpCmRpZmYgLS1naXQgYS9Tb3VyY2Uv
V2ViQ29yZS9lZGl0aW5nL0ZyYW1lU2VsZWN0aW9uLmggYi9Tb3VyY2UvV2ViQ29yZS9lZGl0aW5n
L0ZyYW1lU2VsZWN0aW9uLmgKaW5kZXggNzc4M2I2YS4uMGNmMDQwNiAxMDA2NDQKLS0tIGEvU291
cmNlL1dlYkNvcmUvZWRpdGluZy9GcmFtZVNlbGVjdGlvbi5oCisrKyBiL1NvdXJjZS9XZWJDb3Jl
L2VkaXRpbmcvRnJhbWVTZWxlY3Rpb24uaApAQCAtMzU5LDcgKzM1OSw3IEBAIGlubGluZSBFZGl0
aW5nU3R5bGUqIEZyYW1lU2VsZWN0aW9uOjp0eXBpbmdTdHlsZSgpIGNvbnN0CiAKIGlubGluZSB2
b2lkIEZyYW1lU2VsZWN0aW9uOjpjbGVhclR5cGluZ1N0eWxlKCkKIHsKLSAgICBtX3R5cGluZ1N0
eWxlLmNsZWFyKCk7CisgICAgbV90eXBpbmdTdHlsZSA9IG51bGxwdHI7CiB9CiAKIGlubGluZSB2
b2lkIEZyYW1lU2VsZWN0aW9uOjpzZXRUeXBpbmdTdHlsZShQYXNzUmVmUHRyPEVkaXRpbmdTdHls
ZT4gc3R5bGUpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9lZGl0aW5nL1NwZWxsQ2hlY2tl
ci5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9lZGl0aW5nL1NwZWxsQ2hlY2tlci5jcHAKaW5kZXggOGI0
ZDU0MS4uMDNmMmU1MSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvZWRpdGluZy9TcGVsbENo
ZWNrZXIuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2VkaXRpbmcvU3BlbGxDaGVja2VyLmNwcApA
QCAtMjE0LDcgKzIxNCw3IEBAIHZvaWQgU3BlbGxDaGVja2VyOjpkaWRDaGVjayhpbnQgc2VxdWVu
Y2UsIGNvbnN0IFZlY3RvcjxUZXh0Q2hlY2tpbmdSZXN1bHQ+JiByZXN1CiAgICAgaWYgKG1fbGFz
dFByb2Nlc3NlZFNlcXVlbmNlIDwgc2VxdWVuY2UpCiAgICAgICAgIG1fbGFzdFByb2Nlc3NlZFNl
cXVlbmNlID0gc2VxdWVuY2U7CiAKLSAgICBtX3Byb2Nlc3NpbmdSZXF1ZXN0LmNsZWFyKCk7Cisg
ICAgbV9wcm9jZXNzaW5nUmVxdWVzdCA9IG51bGxwdHI7CiAgICAgaWYgKCFtX3JlcXVlc3RRdWV1
ZS5pc0VtcHR5KCkpCiAgICAgICAgIG1fdGltZXJUb1Byb2Nlc3NRdWV1ZWRSZXF1ZXN0LnN0YXJ0
T25lU2hvdCgwKTsKIH0KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2h0bWwvQmFzZUNob29z
ZXJPbmx5RGF0ZUFuZFRpbWVJbnB1dFR5cGUuY3BwIGIvU291cmNlL1dlYkNvcmUvaHRtbC9CYXNl
Q2hvb3Nlck9ubHlEYXRlQW5kVGltZUlucHV0VHlwZS5jcHAKaW5kZXggZTlhNmNjMC4uZGJlYTBl
OSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvaHRtbC9CYXNlQ2hvb3Nlck9ubHlEYXRlQW5k
VGltZUlucHV0VHlwZS5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvaHRtbC9CYXNlQ2hvb3Nlck9u
bHlEYXRlQW5kVGltZUlucHV0VHlwZS5jcHAKQEAgLTk4LDcgKzk4LDcgQEAgdm9pZCBCYXNlQ2hv
b3Nlck9ubHlEYXRlQW5kVGltZUlucHV0VHlwZTo6ZGlkQ2hvb3NlVmFsdWUoY29uc3QgU3RyaW5n
JiB2YWx1ZSkKIAogdm9pZCBCYXNlQ2hvb3Nlck9ubHlEYXRlQW5kVGltZUlucHV0VHlwZTo6ZGlk
RW5kQ2hvb3NlcigpCiB7Ci0gICAgbV9kYXRlVGltZUNob29zZXIuY2xlYXIoKTsKKyAgICBtX2Rh
dGVUaW1lQ2hvb3NlciA9IG51bGxwdHI7CiB9CiAKIHZvaWQgQmFzZUNob29zZXJPbmx5RGF0ZUFu
ZFRpbWVJbnB1dFR5cGU6OmNsb3NlRGF0ZVRpbWVDaG9vc2VyKCkKZGlmZiAtLWdpdCBhL1NvdXJj
ZS9XZWJDb3JlL2h0bWwvRmlsZUlucHV0VHlwZS5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9odG1sL0Zp
bGVJbnB1dFR5cGUuY3BwCmluZGV4IGEzZDNiNmIuLjQ4OWQ3OTkgMTAwNjQ0Ci0tLSBhL1NvdXJj
ZS9XZWJDb3JlL2h0bWwvRmlsZUlucHV0VHlwZS5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvaHRt
bC9GaWxlSW5wdXRUeXBlLmNwcApAQCAtMjUwLDcgKzI1MCw3IEBAIHZvaWQgRmlsZUlucHV0VHlw
ZTo6c2V0VmFsdWUoY29uc3QgU3RyaW5nJiwgYm9vbCwgVGV4dEZpZWxkRXZlbnRCZWhhdmlvcikK
IHsKICAgICAvLyBGSVhNRTogU2hvdWxkIHdlIGNsZWFyIHRoZSBmaWxlIGxpc3QsIG9yIHJlcGxh
Y2UgaXQgd2l0aCBhIG5ldyBlbXB0eSBvbmUgaGVyZT8gVGhpcyBpcyBvYnNlcnZhYmxlIGZyb20g
SmF2YVNjcmlwdCB0aHJvdWdoIGN1c3RvbSBwcm9wZXJ0aWVzLgogICAgIG1fZmlsZUxpc3QtPmNs
ZWFyKCk7Ci0gICAgbV9pY29uLmNsZWFyKCk7CisgICAgbV9pY29uID0gbnVsbHB0cjsKICAgICBl
bGVtZW50KCkuc2V0TmVlZHNTdHlsZVJlY2FsYygpOwogfQogCmRpZmYgLS1naXQgYS9Tb3VyY2Uv
V2ViQ29yZS9odG1sL0hUTUxDYW52YXNFbGVtZW50LmNwcCBiL1NvdXJjZS9XZWJDb3JlL2h0bWwv
SFRNTENhbnZhc0VsZW1lbnQuY3BwCmluZGV4IDg2ZDQ1YTQuLmNlNWQ3YjIgMTAwNjQ0Ci0tLSBh
L1NvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTENhbnZhc0VsZW1lbnQuY3BwCisrKyBiL1NvdXJjZS9X
ZWJDb3JlL2h0bWwvSFRNTENhbnZhc0VsZW1lbnQuY3BwCkBAIC00MjMsNyArNDIzLDcgQEAgdm9p
ZCBIVE1MQ2FudmFzRWxlbWVudDo6bWFrZVByZXNlbnRhdGlvbkNvcHkoKQogCiB2b2lkIEhUTUxD
YW52YXNFbGVtZW50OjpjbGVhclByZXNlbnRhdGlvbkNvcHkoKQogewotICAgIG1fcHJlc2VudGVk
SW1hZ2UuY2xlYXIoKTsKKyAgICBtX3ByZXNlbnRlZEltYWdlID0gbnVsbHB0cjsKIH0KIAogdm9p
ZCBIVE1MQ2FudmFzRWxlbWVudDo6c2V0U3VyZmFjZVNpemUoY29uc3QgSW50U2l6ZSYgc2l6ZSkK
QEAgLTY0NCw3ICs2NDQsNyBAQCB2b2lkIEhUTUxDYW52YXNFbGVtZW50OjpjbGVhckltYWdlQnVm
ZmVyKCkgY29uc3QKIAogdm9pZCBIVE1MQ2FudmFzRWxlbWVudDo6Y2xlYXJDb3BpZWRJbWFnZSgp
CiB7Ci0gICAgbV9jb3BpZWRJbWFnZS5jbGVhcigpOworICAgIG1fY29waWVkSW1hZ2UgPSBudWxs
cHRyOwogICAgIG1fZGlkQ2xlYXJJbWFnZUJ1ZmZlciA9IGZhbHNlOwogfQogCmRpZmYgLS1naXQg
YS9Tb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxQbHVnSW5FbGVtZW50LmNwcCBiL1NvdXJjZS9XZWJD
b3JlL2h0bWwvSFRNTFBsdWdJbkVsZW1lbnQuY3BwCmluZGV4IDIyMDQ2ZWEuLmQ3ODZkZjQgMTAw
NjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTFBsdWdJbkVsZW1lbnQuY3BwCisrKyBi
L1NvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTFBsdWdJbkVsZW1lbnQuY3BwCkBAIC0xMDQsNyArMTA0
LDcgQEAgYm9vbCBIVE1MUGx1Z0luRWxlbWVudDo6d2lsbFJlc3BvbmRUb01vdXNlQ2xpY2tFdmVu
dHMoKQogCiB2b2lkIEhUTUxQbHVnSW5FbGVtZW50Ojp3aWxsRGV0YWNoUmVuZGVyZXJzKCkKIHsK
LSAgICBtX2luc3RhbmNlLmNsZWFyKCk7CisgICAgbV9pbnN0YW5jZSA9IG51bGxwdHI7CiAKICAg
ICBpZiAobV9pc0NhcHR1cmluZ01vdXNlRXZlbnRzKSB7CiAgICAgICAgIGlmIChGcmFtZSogZnJh
bWUgPSBkb2N1bWVudCgpLmZyYW1lKCkpCkBAIC0xMjIsNyArMTIyLDcgQEAgdm9pZCBIVE1MUGx1
Z0luRWxlbWVudDo6d2lsbERldGFjaFJlbmRlcmVycygpCiAKIHZvaWQgSFRNTFBsdWdJbkVsZW1l
bnQ6OnJlc2V0SW5zdGFuY2UoKQogewotICAgIG1faW5zdGFuY2UuY2xlYXIoKTsKKyAgICBtX2lu
c3RhbmNlID0gbnVsbHB0cjsKIH0KIAogUGFzc1JlZlB0cjxKU0M6OkJpbmRpbmdzOjpJbnN0YW5j
ZT4gSFRNTFBsdWdJbkVsZW1lbnQ6OmdldEluc3RhbmNlKCkKZGlmZiAtLWdpdCBhL1NvdXJjZS9X
ZWJDb3JlL2h0bWwvVGV4dEZpZWxkSW5wdXRUeXBlLmNwcCBiL1NvdXJjZS9XZWJDb3JlL2h0bWwv
VGV4dEZpZWxkSW5wdXRUeXBlLmNwcAppbmRleCA0YjI4YWE4Li5lYWUzZGIyIDEwMDY0NAotLS0g
YS9Tb3VyY2UvV2ViQ29yZS9odG1sL1RleHRGaWVsZElucHV0VHlwZS5jcHAKKysrIGIvU291cmNl
L1dlYkNvcmUvaHRtbC9UZXh0RmllbGRJbnB1dFR5cGUuY3BwCkBAIC00NjIsNyArNDYyLDcgQEAg
dm9pZCBUZXh0RmllbGRJbnB1dFR5cGU6OnVwZGF0ZVBsYWNlaG9sZGVyVGV4dCgpCiAgICAgaWYg
KHBsYWNlaG9sZGVyVGV4dC5pc0VtcHR5KCkpIHsKICAgICAgICAgaWYgKG1fcGxhY2Vob2xkZXIp
IHsKICAgICAgICAgICAgIG1fcGxhY2Vob2xkZXItPnBhcmVudE5vZGUoKS0+cmVtb3ZlQ2hpbGQo
bV9wbGFjZWhvbGRlci5nZXQoKSwgQVNTRVJUX05PX0VYQ0VQVElPTik7Ci0gICAgICAgICAgICBt
X3BsYWNlaG9sZGVyLmNsZWFyKCk7CisgICAgICAgICAgICBtX3BsYWNlaG9sZGVyID0gbnVsbHB0
cjsKICAgICAgICAgfQogICAgICAgICByZXR1cm47CiAgICAgfQpkaWZmIC0tZ2l0IGEvU291cmNl
L1dlYkNvcmUvaHRtbC9jYW52YXMvV2ViR0xSZW5kZXJpbmdDb250ZXh0QmFzZS5jcHAgYi9Tb3Vy
Y2UvV2ViQ29yZS9odG1sL2NhbnZhcy9XZWJHTFJlbmRlcmluZ0NvbnRleHRCYXNlLmNwcAppbmRl
eCBiNjZiNjY5Li43NzVkZmM2IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9odG1sL2NhbnZh
cy9XZWJHTFJlbmRlcmluZ0NvbnRleHRCYXNlLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9odG1s
L2NhbnZhcy9XZWJHTFJlbmRlcmluZ0NvbnRleHRCYXNlLmNwcApAQCAtNjIzLDcgKzYyMyw3IEBA
IHZvaWQgV2ViR0xSZW5kZXJpbmdDb250ZXh0QmFzZTo6ZGVzdHJveUdyYXBoaWNzQ29udGV4dDNE
KCkKICAgICBpZiAobV9jb250ZXh0KSB7CiAgICAgICAgIG1fY29udGV4dC0+c2V0Q29udGV4dExv
c3RDYWxsYmFjayhudWxscHRyKTsKICAgICAgICAgbV9jb250ZXh0LT5zZXRFcnJvck1lc3NhZ2VD
YWxsYmFjayhudWxscHRyKTsKLSAgICAgICAgbV9jb250ZXh0LmNsZWFyKCk7CisgICAgICAgIG1f
Y29udGV4dCA9IG51bGxwdHI7CiAgICAgfQogfQogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29y
ZS9pbnNwZWN0b3IvSW5zcGVjdG9yQXBwbGljYXRpb25DYWNoZUFnZW50LmNwcCBiL1NvdXJjZS9X
ZWJDb3JlL2luc3BlY3Rvci9JbnNwZWN0b3JBcHBsaWNhdGlvbkNhY2hlQWdlbnQuY3BwCmluZGV4
IGZkNGNhZjYuLjJkY2QyNmUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9J
bnNwZWN0b3JBcHBsaWNhdGlvbkNhY2hlQWdlbnQuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2lu
c3BlY3Rvci9JbnNwZWN0b3JBcHBsaWNhdGlvbkNhY2hlQWdlbnQuY3BwCkBAIC01OCw3ICs1OCw3
IEBAIHZvaWQgSW5zcGVjdG9yQXBwbGljYXRpb25DYWNoZUFnZW50OjpkaWRDcmVhdGVGcm9udGVu
ZEFuZEJhY2tlbmQoRnJvbnRlbmRDaGFubmVsCiB2b2lkIEluc3BlY3RvckFwcGxpY2F0aW9uQ2Fj
aGVBZ2VudDo6d2lsbERlc3Ryb3lGcm9udGVuZEFuZEJhY2tlbmQoSW5zcGVjdG9yOjpEaXNjb25u
ZWN0UmVhc29uKQogewogICAgIG1fZnJvbnRlbmREaXNwYXRjaGVyID0gbnVsbHB0cjsKLSAgICBt
X2JhY2tlbmREaXNwYXRjaGVyLmNsZWFyKCk7CisgICAgbV9iYWNrZW5kRGlzcGF0Y2hlciA9IG51
bGxwdHI7CiAKICAgICBtX2luc3RydW1lbnRpbmdBZ2VudHMtPnNldEluc3BlY3RvckFwcGxpY2F0
aW9uQ2FjaGVBZ2VudChudWxscHRyKTsKIH0KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2lu
c3BlY3Rvci9JbnNwZWN0b3JDU1NBZ2VudC5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3Iv
SW5zcGVjdG9yQ1NTQWdlbnQuY3BwCmluZGV4IGE5MDgzZDAuLjNkMDYyMDggMTAwNjQ0Ci0tLSBh
L1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9JbnNwZWN0b3JDU1NBZ2VudC5jcHAKKysrIGIvU291
cmNlL1dlYkNvcmUvaW5zcGVjdG9yL0luc3BlY3RvckNTU0FnZW50LmNwcApAQCAtMzYwLDcgKzM2
MCw3IEBAIHZvaWQgSW5zcGVjdG9yQ1NTQWdlbnQ6OmRpZENyZWF0ZUZyb250ZW5kQW5kQmFja2Vu
ZChJbnNwZWN0b3I6OkZyb250ZW5kQ2hhbm5lbCoKIHZvaWQgSW5zcGVjdG9yQ1NTQWdlbnQ6Ondp
bGxEZXN0cm95RnJvbnRlbmRBbmRCYWNrZW5kKEluc3BlY3Rvcjo6RGlzY29ubmVjdFJlYXNvbikK
IHsKICAgICBtX2Zyb250ZW5kRGlzcGF0Y2hlciA9IG51bGxwdHI7Ci0gICAgbV9iYWNrZW5kRGlz
cGF0Y2hlci5jbGVhcigpOworICAgIG1fYmFja2VuZERpc3BhdGNoZXIgPSBudWxscHRyOwogCiAg
ICAgcmVzZXROb25QZXJzaXN0ZW50RGF0YSgpOwogfQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNv
cmUvaW5zcGVjdG9yL0luc3BlY3RvckNvbnRyb2xsZXIuY3BwIGIvU291cmNlL1dlYkNvcmUvaW5z
cGVjdG9yL0luc3BlY3RvckNvbnRyb2xsZXIuY3BwCmluZGV4IGYyM2E1ZWEuLmJjODBiY2EgMTAw
NjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9JbnNwZWN0b3JDb250cm9sbGVyLmNw
cAorKysgYi9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvSW5zcGVjdG9yQ29udHJvbGxlci5jcHAK
QEAgLTI2Myw3ICsyNjMsNyBAQCB2b2lkIEluc3BlY3RvckNvbnRyb2xsZXI6OmRpc2Nvbm5lY3RG
cm9udGVuZChEaXNjb25uZWN0UmVhc29uIHJlYXNvbikKICAgICBtX2FnZW50cy53aWxsRGVzdHJv
eUZyb250ZW5kQW5kQmFja2VuZChyZWFzb24pOwogCiAgICAgbV9iYWNrZW5kRGlzcGF0Y2hlci0+
Y2xlYXJGcm9udGVuZCgpOwotICAgIG1fYmFja2VuZERpc3BhdGNoZXIuY2xlYXIoKTsKKyAgICBt
X2JhY2tlbmREaXNwYXRjaGVyID0gbnVsbHB0cjsKICAgICBtX2Zyb250ZW5kQ2hhbm5lbCA9IG51
bGxwdHI7CiAKICAgICBtX2lzQXV0b21hdGljSW5zcGVjdGlvbiA9IGZhbHNlOwpkaWZmIC0tZ2l0
IGEvU291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL0luc3BlY3RvckRPTUFnZW50LmNwcCBiL1NvdXJj
ZS9XZWJDb3JlL2luc3BlY3Rvci9JbnNwZWN0b3JET01BZ2VudC5jcHAKaW5kZXggMGVkMmM1Yy4u
YmE3N2RlOSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL0luc3BlY3RvckRP
TUFnZW50LmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvSW5zcGVjdG9yRE9NQWdl
bnQuY3BwCkBAIC0yMzgsNyArMjM4LDcgQEAgdm9pZCBJbnNwZWN0b3JET01BZ2VudDo6ZGlkQ3Jl
YXRlRnJvbnRlbmRBbmRCYWNrZW5kKEluc3BlY3Rvcjo6RnJvbnRlbmRDaGFubmVsKgogdm9pZCBJ
bnNwZWN0b3JET01BZ2VudDo6d2lsbERlc3Ryb3lGcm9udGVuZEFuZEJhY2tlbmQoSW5zcGVjdG9y
OjpEaXNjb25uZWN0UmVhc29uKQogewogICAgIG1fZnJvbnRlbmREaXNwYXRjaGVyID0gbnVsbHB0
cjsKLSAgICBtX2JhY2tlbmREaXNwYXRjaGVyLmNsZWFyKCk7CisgICAgbV9iYWNrZW5kRGlzcGF0
Y2hlciA9IG51bGxwdHI7CiAKICAgICBtX2hpc3RvcnkucmVzZXQoKTsKICAgICBtX2RvbUVkaXRv
ci5yZXNldCgpOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL0luc3BlY3Rv
ckRPTURlYnVnZ2VyQWdlbnQuY3BwIGIvU291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL0luc3BlY3Rv
ckRPTURlYnVnZ2VyQWdlbnQuY3BwCmluZGV4IGY3NzhkZDkuLmQ1MWQ0YmUgMTAwNjQ0Ci0tLSBh
L1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9JbnNwZWN0b3JET01EZWJ1Z2dlckFnZW50LmNwcAor
KysgYi9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvSW5zcGVjdG9yRE9NRGVidWdnZXJBZ2VudC5j
cHAKQEAgLTEwOSw3ICsxMDksNyBAQCB2b2lkIEluc3BlY3RvckRPTURlYnVnZ2VyQWdlbnQ6OmRp
ZENyZWF0ZUZyb250ZW5kQW5kQmFja2VuZChJbnNwZWN0b3I6OkZyb250ZW5kQwogCiB2b2lkIElu
c3BlY3RvckRPTURlYnVnZ2VyQWdlbnQ6OndpbGxEZXN0cm95RnJvbnRlbmRBbmRCYWNrZW5kKElu
c3BlY3Rvcjo6RGlzY29ubmVjdFJlYXNvbikKIHsKLSAgICBtX2JhY2tlbmREaXNwYXRjaGVyLmNs
ZWFyKCk7CisgICAgbV9iYWNrZW5kRGlzcGF0Y2hlciA9IG51bGxwdHI7CiAKICAgICBkaXNhYmxl
KCk7CiB9CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvSW5zcGVjdG9yRE9N
U3RvcmFnZUFnZW50LmNwcCBiL1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9JbnNwZWN0b3JET01T
dG9yYWdlQWdlbnQuY3BwCmluZGV4IGIxNjg3Y2Y1Li4wNGFmODhiIDEwMDY0NAotLS0gYS9Tb3Vy
Y2UvV2ViQ29yZS9pbnNwZWN0b3IvSW5zcGVjdG9yRE9NU3RvcmFnZUFnZW50LmNwcAorKysgYi9T
b3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvSW5zcGVjdG9yRE9NU3RvcmFnZUFnZW50LmNwcApAQCAt
NzYsNyArNzYsNyBAQCB2b2lkIEluc3BlY3RvckRPTVN0b3JhZ2VBZ2VudDo6ZGlkQ3JlYXRlRnJv
bnRlbmRBbmRCYWNrZW5kKEluc3BlY3Rvcjo6RnJvbnRlbmRDaAogdm9pZCBJbnNwZWN0b3JET01T
dG9yYWdlQWdlbnQ6OndpbGxEZXN0cm95RnJvbnRlbmRBbmRCYWNrZW5kKEluc3BlY3Rvcjo6RGlz
Y29ubmVjdFJlYXNvbikKIHsKICAgICBtX2Zyb250ZW5kRGlzcGF0Y2hlciA9IG51bGxwdHI7Ci0g
ICAgbV9iYWNrZW5kRGlzcGF0Y2hlci5jbGVhcigpOworICAgIG1fYmFja2VuZERpc3BhdGNoZXIg
PSBudWxscHRyOwogCiAgICAgRXJyb3JTdHJpbmcgdW51c2VkOwogICAgIGRpc2FibGUodW51c2Vk
KTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9JbnNwZWN0b3JEYXRhYmFz
ZUFnZW50LmNwcCBiL1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9JbnNwZWN0b3JEYXRhYmFzZUFn
ZW50LmNwcAppbmRleCA5MTM0ZGZlLi5iZTI3Zjk1IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29y
ZS9pbnNwZWN0b3IvSW5zcGVjdG9yRGF0YWJhc2VBZ2VudC5jcHAKKysrIGIvU291cmNlL1dlYkNv
cmUvaW5zcGVjdG9yL0luc3BlY3RvckRhdGFiYXNlQWdlbnQuY3BwCkBAIC0yMzEsNyArMjMxLDcg
QEAgdm9pZCBJbnNwZWN0b3JEYXRhYmFzZUFnZW50OjpkaWRDcmVhdGVGcm9udGVuZEFuZEJhY2tl
bmQoSW5zcGVjdG9yOjpGcm9udGVuZENoYW4KIHZvaWQgSW5zcGVjdG9yRGF0YWJhc2VBZ2VudDo6
d2lsbERlc3Ryb3lGcm9udGVuZEFuZEJhY2tlbmQoSW5zcGVjdG9yOjpEaXNjb25uZWN0UmVhc29u
KQogewogICAgIG1fZnJvbnRlbmREaXNwYXRjaGVyID0gbnVsbHB0cjsKLSAgICBtX2JhY2tlbmRE
aXNwYXRjaGVyLmNsZWFyKCk7CisgICAgbV9iYWNrZW5kRGlzcGF0Y2hlciA9IG51bGxwdHI7CiAK
ICAgICBFcnJvclN0cmluZyB1bnVzZWQ7CiAgICAgZGlzYWJsZSh1bnVzZWQpOwpkaWZmIC0tZ2l0
IGEvU291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL0luc3BlY3RvckluZGV4ZWREQkFnZW50LmNwcCBi
L1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9JbnNwZWN0b3JJbmRleGVkREJBZ2VudC5jcHAKaW5k
ZXggOWJmMTI5MS4uMTcyZmI1OCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvaW5zcGVjdG9y
L0luc3BlY3RvckluZGV4ZWREQkFnZW50LmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0
b3IvSW5zcGVjdG9ySW5kZXhlZERCQWdlbnQuY3BwCkBAIC01ODIsNyArNTgyLDcgQEAgdm9pZCBJ
bnNwZWN0b3JJbmRleGVkREJBZ2VudDo6ZGlkQ3JlYXRlRnJvbnRlbmRBbmRCYWNrZW5kKEluc3Bl
Y3Rvcjo6RnJvbnRlbmRDaGEKIAogdm9pZCBJbnNwZWN0b3JJbmRleGVkREJBZ2VudDo6d2lsbERl
c3Ryb3lGcm9udGVuZEFuZEJhY2tlbmQoSW5zcGVjdG9yOjpEaXNjb25uZWN0UmVhc29uKQogewot
ICAgIG1fYmFja2VuZERpc3BhdGNoZXIuY2xlYXIoKTsKKyAgICBtX2JhY2tlbmREaXNwYXRjaGVy
ID0gbnVsbHB0cjsKIAogICAgIEVycm9yU3RyaW5nIHVudXNlZDsKICAgICBkaXNhYmxlKHVudXNl
ZCk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvSW5zcGVjdG9yTGF5ZXJU
cmVlQWdlbnQuY3BwIGIvU291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL0luc3BlY3RvckxheWVyVHJl
ZUFnZW50LmNwcAppbmRleCBiZTY0NDk2Li5mNmU0MWZhIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2Vi
Q29yZS9pbnNwZWN0b3IvSW5zcGVjdG9yTGF5ZXJUcmVlQWdlbnQuY3BwCisrKyBiL1NvdXJjZS9X
ZWJDb3JlL2luc3BlY3Rvci9JbnNwZWN0b3JMYXllclRyZWVBZ2VudC5jcHAKQEAgLTY1LDcgKzY1
LDcgQEAgdm9pZCBJbnNwZWN0b3JMYXllclRyZWVBZ2VudDo6ZGlkQ3JlYXRlRnJvbnRlbmRBbmRC
YWNrZW5kKEluc3BlY3Rvcjo6RnJvbnRlbmRDaGEKIHZvaWQgSW5zcGVjdG9yTGF5ZXJUcmVlQWdl
bnQ6OndpbGxEZXN0cm95RnJvbnRlbmRBbmRCYWNrZW5kKEluc3BlY3Rvcjo6RGlzY29ubmVjdFJl
YXNvbikKIHsKICAgICBtX2Zyb250ZW5kRGlzcGF0Y2hlciA9IG51bGxwdHI7Ci0gICAgbV9iYWNr
ZW5kRGlzcGF0Y2hlci5jbGVhcigpOworICAgIG1fYmFja2VuZERpc3BhdGNoZXIgPSBudWxscHRy
OwogCiAgICAgRXJyb3JTdHJpbmcgdW51c2VkOwogICAgIGRpc2FibGUodW51c2VkKTsKZGlmZiAt
LWdpdCBhL1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9JbnNwZWN0b3JPdmVybGF5LmNwcCBiL1Nv
dXJjZS9XZWJDb3JlL2luc3BlY3Rvci9JbnNwZWN0b3JPdmVybGF5LmNwcAppbmRleCA2ZDNhMGYz
Li5mYWVhN2NlIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvSW5zcGVjdG9y
T3ZlcmxheS5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL0luc3BlY3Rvck92ZXJs
YXkuY3BwCkBAIC0yNDMsOSArMjQzLDkgQEAgdm9pZCBJbnNwZWN0b3JPdmVybGF5OjpzZXRQYXVz
ZWRJbkRlYnVnZ2VyTWVzc2FnZShjb25zdCBTdHJpbmcqIG1lc3NhZ2UpCiAKIHZvaWQgSW5zcGVj
dG9yT3ZlcmxheTo6aGlkZUhpZ2hsaWdodCgpCiB7Ci0gICAgbV9oaWdobGlnaHROb2RlLmNsZWFy
KCk7Ci0gICAgbV9oaWdobGlnaHROb2RlTGlzdC5jbGVhcigpOwotICAgIG1faGlnaGxpZ2h0UXVh
ZC5yZXNldCgpOworICAgIG1faGlnaGxpZ2h0Tm9kZSA9IG51bGxwdHI7CisgICAgbV9oaWdobGln
aHROb2RlTGlzdCA9IG51bGxwdHI7CisgICAgbV9oaWdobGlnaHRRdWFkID0gbnVsbHB0cjsKICAg
ICB1cGRhdGUoKTsKIH0KIApAQCAtMjUzLDcgKzI1Myw3IEBAIHZvaWQgSW5zcGVjdG9yT3Zlcmxh
eTo6aGlnaGxpZ2h0Tm9kZUxpc3QoUGFzc1JlZlB0cjxOb2RlTGlzdD4gbm9kZXMsIGNvbnN0IEhp
Z2hsCiB7CiAgICAgbV9ub2RlSGlnaGxpZ2h0Q29uZmlnID0gaGlnaGxpZ2h0Q29uZmlnOwogICAg
IG1faGlnaGxpZ2h0Tm9kZUxpc3QgPSBub2RlczsKLSAgICBtX2hpZ2hsaWdodE5vZGUuY2xlYXIo
KTsKKyAgICBtX2hpZ2hsaWdodE5vZGUgPSBudWxscHRyOwogICAgIHVwZGF0ZSgpOwogfQogCkBA
IC0yNjEsNyArMjYxLDcgQEAgdm9pZCBJbnNwZWN0b3JPdmVybGF5OjpoaWdobGlnaHROb2RlKE5v
ZGUqIG5vZGUsIGNvbnN0IEhpZ2hsaWdodENvbmZpZyYgaGlnaGxpZ2gKIHsKICAgICBtX25vZGVI
aWdobGlnaHRDb25maWcgPSBoaWdobGlnaHRDb25maWc7CiAgICAgbV9oaWdobGlnaHROb2RlID0g
bm9kZTsKLSAgICBtX2hpZ2hsaWdodE5vZGVMaXN0LmNsZWFyKCk7CisgICAgbV9oaWdobGlnaHRO
b2RlTGlzdCA9IG51bGxwdHI7CiAgICAgdXBkYXRlKCk7CiB9CiAKZGlmZiAtLWdpdCBhL1NvdXJj
ZS9XZWJDb3JlL2luc3BlY3Rvci9JbnNwZWN0b3JQYWdlQWdlbnQuY3BwIGIvU291cmNlL1dlYkNv
cmUvaW5zcGVjdG9yL0luc3BlY3RvclBhZ2VBZ2VudC5jcHAKaW5kZXggNmY1MmJmYS4uM2U5ZmVi
ZSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL0luc3BlY3RvclBhZ2VBZ2Vu
dC5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL0luc3BlY3RvclBhZ2VBZ2VudC5j
cHAKQEAgLTM0OCw3ICszNDgsNyBAQCB2b2lkIEluc3BlY3RvclBhZ2VBZ2VudDo6ZGlkQ3JlYXRl
RnJvbnRlbmRBbmRCYWNrZW5kKEluc3BlY3Rvcjo6RnJvbnRlbmRDaGFubmVsKgogdm9pZCBJbnNw
ZWN0b3JQYWdlQWdlbnQ6OndpbGxEZXN0cm95RnJvbnRlbmRBbmRCYWNrZW5kKEluc3BlY3Rvcjo6
RGlzY29ubmVjdFJlYXNvbikKIHsKICAgICBtX2Zyb250ZW5kRGlzcGF0Y2hlciA9IG51bGxwdHI7
Ci0gICAgbV9iYWNrZW5kRGlzcGF0Y2hlci5jbGVhcigpOworICAgIG1fYmFja2VuZERpc3BhdGNo
ZXIgPSBudWxscHRyOwogCiAgICAgRXJyb3JTdHJpbmcgdW51c2VkOwogICAgIGRpc2FibGUodW51
c2VkKTsKQEAgLTM3NCw3ICszNzQsNyBAQCB2b2lkIEluc3BlY3RvclBhZ2VBZ2VudDo6ZW5hYmxl
KEVycm9yU3RyaW5nJikKIHZvaWQgSW5zcGVjdG9yUGFnZUFnZW50OjpkaXNhYmxlKEVycm9yU3Ry
aW5nJikKIHsKICAgICBtX2VuYWJsZWQgPSBmYWxzZTsKLSAgICBtX3NjcmlwdHNUb0V2YWx1YXRl
T25Mb2FkLmNsZWFyKCk7CisgICAgbV9zY3JpcHRzVG9FdmFsdWF0ZU9uTG9hZCA9IG51bGxwdHI7
CiAgICAgbV9pbnN0cnVtZW50aW5nQWdlbnRzLT5zZXRJbnNwZWN0b3JQYWdlQWdlbnQobnVsbHB0
cik7CiAKICAgICBFcnJvclN0cmluZyB1bnVzZWQ7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29y
ZS9pbnNwZWN0b3IvSW5zcGVjdG9yUmVwbGF5QWdlbnQuY3BwIGIvU291cmNlL1dlYkNvcmUvaW5z
cGVjdG9yL0luc3BlY3RvclJlcGxheUFnZW50LmNwcAppbmRleCA2NGNiODExLi4xODFhNjA5IDEw
MDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvSW5zcGVjdG9yUmVwbGF5QWdlbnQu
Y3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9JbnNwZWN0b3JSZXBsYXlBZ2VudC5j
cHAKQEAgLTE5Myw3ICsxOTMsNyBAQCB2b2lkIEluc3BlY3RvclJlcGxheUFnZW50OjpkaWRDcmVh
dGVGcm9udGVuZEFuZEJhY2tlbmQoSW5zcGVjdG9yOjpGcm9udGVuZENoYW5uZQogdm9pZCBJbnNw
ZWN0b3JSZXBsYXlBZ2VudDo6d2lsbERlc3Ryb3lGcm9udGVuZEFuZEJhY2tlbmQoSW5zcGVjdG9y
OjpEaXNjb25uZWN0UmVhc29uKQogewogICAgIG1fZnJvbnRlbmREaXNwYXRjaGVyID0gbnVsbHB0
cjsKLSAgICBtX2JhY2tlbmREaXNwYXRjaGVyLmNsZWFyKCk7CisgICAgbV9iYWNrZW5kRGlzcGF0
Y2hlciA9IG51bGxwdHI7CiAKICAgICBtX2luc3RydW1lbnRpbmdBZ2VudHMtPnNldEluc3BlY3Rv
clJlcGxheUFnZW50KG51bGxwdHIpOwogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9pbnNw
ZWN0b3IvSW5zcGVjdG9yUmVzb3VyY2VBZ2VudC5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0
b3IvSW5zcGVjdG9yUmVzb3VyY2VBZ2VudC5jcHAKaW5kZXggODU0NDg5Yy4uN2I1NmEwZiAxMDA2
NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL0luc3BlY3RvclJlc291cmNlQWdlbnQu
Y3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9JbnNwZWN0b3JSZXNvdXJjZUFnZW50
LmNwcApAQCAtMTgxLDcgKzE4MSw3IEBAIHZvaWQgSW5zcGVjdG9yUmVzb3VyY2VBZ2VudDo6ZGlk
Q3JlYXRlRnJvbnRlbmRBbmRCYWNrZW5kKEluc3BlY3Rvcjo6RnJvbnRlbmRDaGFuCiB2b2lkIElu
c3BlY3RvclJlc291cmNlQWdlbnQ6OndpbGxEZXN0cm95RnJvbnRlbmRBbmRCYWNrZW5kKEluc3Bl
Y3Rvcjo6RGlzY29ubmVjdFJlYXNvbikKIHsKICAgICBtX2Zyb250ZW5kRGlzcGF0Y2hlciA9IG51
bGxwdHI7Ci0gICAgbV9iYWNrZW5kRGlzcGF0Y2hlci5jbGVhcigpOworICAgIG1fYmFja2VuZERp
c3BhdGNoZXIgPSBudWxscHRyOwogCiAgICAgRXJyb3JTdHJpbmcgdW51c2VkOwogICAgIGRpc2Fi
bGUodW51c2VkKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9JbnNwZWN0
b3JTdHlsZVNoZWV0LmNwcCBiL1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9JbnNwZWN0b3JTdHls
ZVNoZWV0LmNwcAppbmRleCBiNDdjNjU0Li4wNmVjMWI2IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2Vi
Q29yZS9pbnNwZWN0b3IvSW5zcGVjdG9yU3R5bGVTaGVldC5jcHAKKysrIGIvU291cmNlL1dlYkNv
cmUvaW5zcGVjdG9yL0luc3BlY3RvclN0eWxlU2hlZXQuY3BwCkBAIC0xMjYxLDcgKzEyNjEsNyBA
QCB2b2lkIEluc3BlY3RvclN0eWxlU2hlZXRGb3JJbmxpbmVTdHlsZTo6ZGlkTW9kaWZ5RWxlbWVu
dEF0dHJpYnV0ZSgpCiAgICAgbV9pc1N0eWxlVGV4dFZhbGlkID0gZmFsc2U7CiAgICAgaWYgKG1f
ZWxlbWVudC0+aXNTdHlsZWRFbGVtZW50KCkgJiYgbV9lbGVtZW50LT5zdHlsZSgpICE9IG1faW5z
cGVjdG9yU3R5bGUtPmNzc1N0eWxlKCkpCiAgICAgICAgIG1faW5zcGVjdG9yU3R5bGUgPSBJbnNw
ZWN0b3JTdHlsZTo6Y3JlYXRlKEluc3BlY3RvckNTU0lkKGlkKCksIDApLCBpbmxpbmVTdHlsZSgp
LCB0aGlzKTsKLSAgICBtX3J1bGVTb3VyY2VEYXRhLmNsZWFyKCk7CisgICAgbV9ydWxlU291cmNl
RGF0YSA9IG51bGxwdHI7CiB9CiAKIGJvb2wgSW5zcGVjdG9yU3R5bGVTaGVldEZvcklubGluZVN0
eWxlOjpnZXRUZXh0KFN0cmluZyogcmVzdWx0KSBjb25zdApAQCAtMTI4NSw3ICsxMjg1LDcgQEAg
Ym9vbCBJbnNwZWN0b3JTdHlsZVNoZWV0Rm9ySW5saW5lU3R5bGU6OnNldFN0eWxlVGV4dChDU1NT
dHlsZURlY2xhcmF0aW9uKiBzdHlsZSwKIAogICAgIG1fc3R5bGVUZXh0ID0gdGV4dDsKICAgICBt
X2lzU3R5bGVUZXh0VmFsaWQgPSB0cnVlOwotICAgIG1fcnVsZVNvdXJjZURhdGEuY2xlYXIoKTsK
KyAgICBtX3J1bGVTb3VyY2VEYXRhID0gbnVsbHB0cjsKICAgICByZXR1cm4gIWVjOwogfQogCkBA
IC0xMzA0LDcgKzEzMDQsNyBAQCBib29sIEluc3BlY3RvclN0eWxlU2hlZXRGb3JJbmxpbmVTdHls
ZTo6ZW5zdXJlUGFyc2VkRGF0YVJlYWR5KCkKICAgICAvLyBUaGUgInN0eWxlIiBwcm9wZXJ0eSB2
YWx1ZSBjYW4gZ2V0IGNoYW5nZWQgaW5kaXJlY3RseSwgZS5nLiB2aWEgZWxlbWVudC5zdHlsZS5i
b3JkZXJXaWR0aCA9ICIycHgiLgogICAgIGNvbnN0IFN0cmluZyYgY3VycmVudFN0eWxlVGV4dCA9
IGVsZW1lbnRTdHlsZVRleHQoKTsKICAgICBpZiAobV9zdHlsZVRleHQgIT0gY3VycmVudFN0eWxl
VGV4dCkgewotICAgICAgICBtX3J1bGVTb3VyY2VEYXRhLmNsZWFyKCk7CisgICAgICAgIG1fcnVs
ZVNvdXJjZURhdGEgPSBudWxscHRyOwogICAgICAgICBtX3N0eWxlVGV4dCA9IGN1cnJlbnRTdHls
ZVRleHQ7CiAgICAgICAgIG1faXNTdHlsZVRleHRWYWxpZCA9IHRydWU7CiAgICAgfQpkaWZmIC0t
Z2l0IGEvU291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL0luc3BlY3RvclRpbWVsaW5lQWdlbnQuY3Bw
IGIvU291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL0luc3BlY3RvclRpbWVsaW5lQWdlbnQuY3BwCmlu
ZGV4IDBlMzJiYzUuLmY1NzU2YTIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rv
ci9JbnNwZWN0b3JUaW1lbGluZUFnZW50LmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0
b3IvSW5zcGVjdG9yVGltZWxpbmVBZ2VudC5jcHAKQEAgLTEwMyw3ICsxMDMsNyBAQCB2b2lkIElu
c3BlY3RvclRpbWVsaW5lQWdlbnQ6OmRpZENyZWF0ZUZyb250ZW5kQW5kQmFja2VuZChJbnNwZWN0
b3I6OkZyb250ZW5kQ2hhbgogdm9pZCBJbnNwZWN0b3JUaW1lbGluZUFnZW50Ojp3aWxsRGVzdHJv
eUZyb250ZW5kQW5kQmFja2VuZChJbnNwZWN0b3I6OkRpc2Nvbm5lY3RSZWFzb24gcmVhc29uKQog
ewogICAgIG1fZnJvbnRlbmREaXNwYXRjaGVyID0gbnVsbHB0cjsKLSAgICBtX2JhY2tlbmREaXNw
YXRjaGVyLmNsZWFyKCk7CisgICAgbV9iYWNrZW5kRGlzcGF0Y2hlciA9IG51bGxwdHI7CiAKICAg
ICBtX2luc3RydW1lbnRpbmdBZ2VudHMtPnNldFBlcnNpc3RlbnRJbnNwZWN0b3JUaW1lbGluZUFn
ZW50KG51bGxwdHIpOwogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvSW5z
cGVjdG9yV29ya2VyQWdlbnQuY3BwIGIvU291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL0luc3BlY3Rv
cldvcmtlckFnZW50LmNwcAppbmRleCBkZWJjNjk4Li41ZTIxZjM1IDEwMDY0NAotLS0gYS9Tb3Vy
Y2UvV2ViQ29yZS9pbnNwZWN0b3IvSW5zcGVjdG9yV29ya2VyQWdlbnQuY3BwCisrKyBiL1NvdXJj
ZS9XZWJDb3JlL2luc3BlY3Rvci9JbnNwZWN0b3JXb3JrZXJBZ2VudC5jcHAKQEAgLTEyNyw3ICsx
MjcsNyBAQCB2b2lkIEluc3BlY3RvcldvcmtlckFnZW50Ojp3aWxsRGVzdHJveUZyb250ZW5kQW5k
QmFja2VuZChJbnNwZWN0b3I6OkRpc2Nvbm5lY3RSZQogICAgIGRpc2FibGUodW51c2VkKTsKIAog
ICAgIG1fZnJvbnRlbmREaXNwYXRjaGVyID0gbnVsbHB0cjsKLSAgICBtX2JhY2tlbmREaXNwYXRj
aGVyLmNsZWFyKCk7CisgICAgbV9iYWNrZW5kRGlzcGF0Y2hlciA9IG51bGxwdHI7CiB9CiAKIHZv
aWQgSW5zcGVjdG9yV29ya2VyQWdlbnQ6OmVuYWJsZShFcnJvclN0cmluZyYpCmRpZmYgLS1naXQg
YS9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvUGFnZVJ1bnRpbWVBZ2VudC5jcHAgYi9Tb3VyY2Uv
V2ViQ29yZS9pbnNwZWN0b3IvUGFnZVJ1bnRpbWVBZ2VudC5jcHAKaW5kZXggOTNkYjU3Mi4uZTI0
NDVhYiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL1BhZ2VSdW50aW1lQWdl
bnQuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9QYWdlUnVudGltZUFnZW50LmNw
cApAQCAtNjksNyArNjksNyBAQCB2b2lkIFBhZ2VSdW50aW1lQWdlbnQ6OmRpZENyZWF0ZUZyb250
ZW5kQW5kQmFja2VuZChJbnNwZWN0b3I6OkZyb250ZW5kQ2hhbm5lbCogZgogdm9pZCBQYWdlUnVu
dGltZUFnZW50Ojp3aWxsRGVzdHJveUZyb250ZW5kQW5kQmFja2VuZChJbnNwZWN0b3I6OkRpc2Nv
bm5lY3RSZWFzb24gcmVhc29uKQogewogICAgIG1fZnJvbnRlbmREaXNwYXRjaGVyID0gbnVsbHB0
cjsKLSAgICBtX2JhY2tlbmREaXNwYXRjaGVyLmNsZWFyKCk7CisgICAgbV9iYWNrZW5kRGlzcGF0
Y2hlciA9IG51bGxwdHI7CiAKICAgICBTdHJpbmcgdW51c2VkOwogICAgIGRpc2FibGUodW51c2Vk
KTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9XZWJJbmplY3RlZFNjcmlw
dE1hbmFnZXIuY3BwIGIvU291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL1dlYkluamVjdGVkU2NyaXB0
TWFuYWdlci5jcHAKaW5kZXggOWY0YWY0Mi4uNTYxOTZmMCAxMDA2NDQKLS0tIGEvU291cmNlL1dl
YkNvcmUvaW5zcGVjdG9yL1dlYkluamVjdGVkU2NyaXB0TWFuYWdlci5jcHAKKysrIGIvU291cmNl
L1dlYkNvcmUvaW5zcGVjdG9yL1dlYkluamVjdGVkU2NyaXB0TWFuYWdlci5jcHAKQEAgLTQ0LDcg
KzQ0LDcgQEAgdm9pZCBXZWJJbmplY3RlZFNjcmlwdE1hbmFnZXI6OmRpc2Nvbm5lY3QoKQogICAg
IEluamVjdGVkU2NyaXB0TWFuYWdlcjo6ZGlzY29ubmVjdCgpOwogCiAgICAgbV9jb21tYW5kTGlu
ZUFQSUhvc3QtPmRpc2Nvbm5lY3QoKTsKLSAgICBtX2NvbW1hbmRMaW5lQVBJSG9zdC5jbGVhcigp
OworICAgIG1fY29tbWFuZExpbmVBUElIb3N0ID0gbnVsbHB0cjsKIH0KIAogdm9pZCBXZWJJbmpl
Y3RlZFNjcmlwdE1hbmFnZXI6OmRpZENyZWF0ZUluamVjdGVkU2NyaXB0KEluamVjdGVkU2NyaXB0
IGluamVjdGVkU2NyaXB0KQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL1dv
cmtlckluc3BlY3RvckNvbnRyb2xsZXIuY3BwIGIvU291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL1dv
cmtlckluc3BlY3RvckNvbnRyb2xsZXIuY3BwCmluZGV4IGYxZmU0MTAuLmQ4MzRlMGUgMTAwNjQ0
Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9Xb3JrZXJJbnNwZWN0b3JDb250cm9sbGVy
LmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvV29ya2VySW5zcGVjdG9yQ29udHJv
bGxlci5jcHAKQEAgLTEyNiw3ICsxMjYsNyBAQCB2b2lkIFdvcmtlckluc3BlY3RvckNvbnRyb2xs
ZXI6OmRpc2Nvbm5lY3RGcm9udGVuZChJbnNwZWN0b3I6OkRpc2Nvbm5lY3RSZWFzb24gcgogCiAg
ICAgbV9hZ2VudHMud2lsbERlc3Ryb3lGcm9udGVuZEFuZEJhY2tlbmQocmVhc29uKTsKICAgICBt
X2JhY2tlbmREaXNwYXRjaGVyLT5jbGVhckZyb250ZW5kKCk7Ci0gICAgbV9iYWNrZW5kRGlzcGF0
Y2hlci5jbGVhcigpOworICAgIG1fYmFja2VuZERpc3BhdGNoZXIgPSBudWxscHRyOwogICAgIG1f
ZnJvbnRlbmRDaGFubmVsID0gbnVsbHB0cjsKIH0KIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNv
cmUvaW5zcGVjdG9yL1dvcmtlclJ1bnRpbWVBZ2VudC5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9pbnNw
ZWN0b3IvV29ya2VyUnVudGltZUFnZW50LmNwcAppbmRleCAyMDZhNDFmLi4xMjIyZTU1IDEwMDY0
NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvV29ya2VyUnVudGltZUFnZW50LmNwcAor
KysgYi9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvV29ya2VyUnVudGltZUFnZW50LmNwcApAQCAt
NjAsNyArNjAsNyBAQCB2b2lkIFdvcmtlclJ1bnRpbWVBZ2VudDo6ZGlkQ3JlYXRlRnJvbnRlbmRB
bmRCYWNrZW5kKEluc3BlY3Rvcjo6RnJvbnRlbmRDaGFubmVsKgogCiB2b2lkIFdvcmtlclJ1bnRp
bWVBZ2VudDo6d2lsbERlc3Ryb3lGcm9udGVuZEFuZEJhY2tlbmQoSW5zcGVjdG9yOjpEaXNjb25u
ZWN0UmVhc29uIHJlYXNvbikKIHsKLSAgICBtX2JhY2tlbmREaXNwYXRjaGVyLmNsZWFyKCk7Cisg
ICAgbV9iYWNrZW5kRGlzcGF0Y2hlciA9IG51bGxwdHI7CiAKICAgICBJbnNwZWN0b3JSdW50aW1l
QWdlbnQ6OndpbGxEZXN0cm95RnJvbnRlbmRBbmRCYWNrZW5kKHJlYXNvbik7CiB9CmRpZmYgLS1n
aXQgYS9Tb3VyY2UvV2ViQ29yZS9sb2FkZXIvRnJhbWVMb2FkZXIuY3BwIGIvU291cmNlL1dlYkNv
cmUvbG9hZGVyL0ZyYW1lTG9hZGVyLmNwcAppbmRleCAxZTQ5NTU3Li4yOWIzZTY5IDEwMDY0NAot
LS0gYS9Tb3VyY2UvV2ViQ29yZS9sb2FkZXIvRnJhbWVMb2FkZXIuY3BwCisrKyBiL1NvdXJjZS9X
ZWJDb3JlL2xvYWRlci9GcmFtZUxvYWRlci5jcHAKQEAgLTY5MCw3ICs2OTAsNyBAQCB2b2lkIEZy
YW1lTG9hZGVyOjpkaWRCZWdpbkRvY3VtZW50KGJvb2wgZGlzcGF0Y2gpCiAKICAgICBpZiAobV9w
ZW5kaW5nU3RhdGVPYmplY3QpIHsKICAgICAgICAgbV9mcmFtZS5kb2N1bWVudCgpLT5zdGF0ZVBv
cHBlZChtX3BlbmRpbmdTdGF0ZU9iamVjdC5nZXQoKSk7Ci0gICAgICAgIG1fcGVuZGluZ1N0YXRl
T2JqZWN0LmNsZWFyKCk7CisgICAgICAgIG1fcGVuZGluZ1N0YXRlT2JqZWN0ID0gbnVsbHB0cjsK
ICAgICB9CiAKICAgICBpZiAoZGlzcGF0Y2gpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9s
b2FkZXIvY2FjaGUvQ2FjaGVkQ1NTU3R5bGVTaGVldC5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9sb2Fk
ZXIvY2FjaGUvQ2FjaGVkQ1NTU3R5bGVTaGVldC5jcHAKaW5kZXggN2MyZmU3ZC4uNmQxMTg4MCAx
MDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvbG9hZGVyL2NhY2hlL0NhY2hlZENTU1N0eWxlU2hl
ZXQuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2xvYWRlci9jYWNoZS9DYWNoZWRDU1NTdHlsZVNo
ZWV0LmNwcApAQCAtMTM4LDcgKzEzOCw3IEBAIHZvaWQgQ2FjaGVkQ1NTU3R5bGVTaGVldDo6ZGVz
dHJveURlY29kZWREYXRhKCkKICAgICAgICAgcmV0dXJuOwogCiAgICAgbV9wYXJzZWRTdHlsZVNo
ZWV0Q2FjaGUtPnJlbW92ZWRGcm9tTWVtb3J5Q2FjaGUoKTsKLSAgICBtX3BhcnNlZFN0eWxlU2hl
ZXRDYWNoZS5jbGVhcigpOworICAgIG1fcGFyc2VkU3R5bGVTaGVldENhY2hlID0gbnVsbHB0cjsK
IAogICAgIHNldERlY29kZWRTaXplKDApOwogfQpAQCAtMTQ2LDExICsxNDYsMTEgQEAgdm9pZCBD
YWNoZWRDU1NTdHlsZVNoZWV0OjpkZXN0cm95RGVjb2RlZERhdGEoKQogUGFzc1JlZlB0cjxTdHls
ZVNoZWV0Q29udGVudHM+IENhY2hlZENTU1N0eWxlU2hlZXQ6OnJlc3RvcmVQYXJzZWRTdHlsZVNo
ZWV0KGNvbnN0IENTU1BhcnNlckNvbnRleHQmIGNvbnRleHQsIENhY2hlUG9saWN5IGNhY2hlUG9s
aWN5KQogewogICAgIGlmICghbV9wYXJzZWRTdHlsZVNoZWV0Q2FjaGUpCi0gICAgICAgIHJldHVy
biAwOworICAgICAgICByZXR1cm4gbnVsbHB0cjsKICAgICBpZiAoIW1fcGFyc2VkU3R5bGVTaGVl
dENhY2hlLT5zdWJyZXNvdXJjZXNBbGxvd1JldXNlKGNhY2hlUG9saWN5KSkgewogICAgICAgICBt
X3BhcnNlZFN0eWxlU2hlZXRDYWNoZS0+cmVtb3ZlZEZyb21NZW1vcnlDYWNoZSgpOwotICAgICAg
ICBtX3BhcnNlZFN0eWxlU2hlZXRDYWNoZS5jbGVhcigpOwotICAgICAgICByZXR1cm4gMDsKKyAg
ICAgICAgbV9wYXJzZWRTdHlsZVNoZWV0Q2FjaGUgPSBudWxscHRyOworICAgICAgICByZXR1cm4g
bnVsbHB0cjsKICAgICB9CiAKICAgICBBU1NFUlQobV9wYXJzZWRTdHlsZVNoZWV0Q2FjaGUtPmlz
Q2FjaGVhYmxlKCkpOwpAQCAtMTU4LDcgKzE1OCw3IEBAIFBhc3NSZWZQdHI8U3R5bGVTaGVldENv
bnRlbnRzPiBDYWNoZWRDU1NTdHlsZVNoZWV0OjpyZXN0b3JlUGFyc2VkU3R5bGVTaGVldChjb25z
CiAKICAgICAvLyBDb250ZXh0cyBtdXN0IGJlIGlkZW50aWNhbCBzbyB3ZSBrbm93IHdlIHdvdWxk
IGdldCB0aGUgc2FtZSBleGFjdCByZXN1bHQgaWYgd2UgcGFyc2VkIGFnYWluLgogICAgIGlmICht
X3BhcnNlZFN0eWxlU2hlZXRDYWNoZS0+cGFyc2VyQ29udGV4dCgpICE9IGNvbnRleHQpCi0gICAg
ICAgIHJldHVybiAwOworICAgICAgICByZXR1cm4gbnVsbHB0cjsKIAogICAgIGRpZEFjY2Vzc0Rl
Y29kZWREYXRhKG1vbm90b25pY2FsbHlJbmNyZWFzaW5nVGltZSgpKTsKIApkaWZmIC0tZ2l0IGEv
U291cmNlL1dlYkNvcmUvbG9hZGVyL2NhY2hlL0NhY2hlZEltYWdlLmNwcCBiL1NvdXJjZS9XZWJD
b3JlL2xvYWRlci9jYWNoZS9DYWNoZWRJbWFnZS5jcHAKaW5kZXggNTI3NjlkYi4uODFkNWQ3YyAx
MDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvbG9hZGVyL2NhY2hlL0NhY2hlZEltYWdlLmNwcAor
KysgYi9Tb3VyY2UvV2ViQ29yZS9sb2FkZXIvY2FjaGUvQ2FjaGVkSW1hZ2UuY3BwCkBAIC0zNjUs
OCArMzY1LDggQEAgaW5saW5lIHZvaWQgQ2FjaGVkSW1hZ2U6OmNsZWFySW1hZ2UoKQogICAgIC8v
IElmIG91ciBJbWFnZSBoYXMgYW4gb2JzZXJ2ZXIsIGl0J3MgYWx3YXlzIHVzIHNvIHdlIG5lZWQg
dG8gY2xlYXIgdGhlIGJhY2sgcG9pbnRlcgogICAgIC8vIGJlZm9yZSBkcm9wcGluZyBvdXIgcmVm
ZXJlbmNlLgogICAgIGlmIChtX2ltYWdlKQotICAgICAgICBtX2ltYWdlLT5zZXRJbWFnZU9ic2Vy
dmVyKDApOwotICAgIG1faW1hZ2UuY2xlYXIoKTsKKyAgICAgICAgbV9pbWFnZS0+c2V0SW1hZ2VP
YnNlcnZlcihudWxscHRyKTsKKyAgICBtX2ltYWdlID0gbnVsbHB0cjsKIH0KIAogdm9pZCBDYWNo
ZWRJbWFnZTo6YWRkSW5jcmVtZW50YWxEYXRhQnVmZmVyKFNoYXJlZEJ1ZmZlciYgZGF0YSkKZGlm
ZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2xvYWRlci9jYWNoZS9DYWNoZWRSYXdSZXNvdXJjZS5j
cHAgYi9Tb3VyY2UvV2ViQ29yZS9sb2FkZXIvY2FjaGUvQ2FjaGVkUmF3UmVzb3VyY2UuY3BwCmlu
ZGV4IDNjMWIyOTUuLjU0YmJkZTEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2xvYWRlci9j
YWNoZS9DYWNoZWRSYXdSZXNvdXJjZS5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvbG9hZGVyL2Nh
Y2hlL0NhY2hlZFJhd1Jlc291cmNlLmNwcApAQCAtMjY4LDcgKzI2OCw3IEBAIGJvb2wgQ2FjaGVk
UmF3UmVzb3VyY2U6OmNhblJldXNlKGNvbnN0IFJlc291cmNlUmVxdWVzdCYgbmV3UmVxdWVzdCkg
Y29uc3QKIAogdm9pZCBDYWNoZWRSYXdSZXNvdXJjZTo6Y2xlYXIoKQogewotICAgIG1fZGF0YS5j
bGVhcigpOworICAgIG1fZGF0YSA9IG51bGxwdHI7CiAgICAgc2V0RW5jb2RlZFNpemUoMCk7CiAg
ICAgaWYgKG1fbG9hZGVyKQogICAgICAgICBtX2xvYWRlci0+Y2xlYXJSZXNvdXJjZURhdGEoKTsK
ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2xvYWRlci9jYWNoZS9DYWNoZWRSZXNvdXJjZS5j
cHAgYi9Tb3VyY2UvV2ViQ29yZS9sb2FkZXIvY2FjaGUvQ2FjaGVkUmVzb3VyY2UuY3BwCmluZGV4
IGY0NDMxYmYuLjNiZWYyMWUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2xvYWRlci9jYWNo
ZS9DYWNoZWRSZXNvdXJjZS5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvbG9hZGVyL2NhY2hlL0Nh
Y2hlZFJlc291cmNlLmNwcApAQCAtMzE3LDcgKzMxNyw3IEBAIHZvaWQgQ2FjaGVkUmVzb3VyY2U6
OmVycm9yKENhY2hlZFJlc291cmNlOjpTdGF0dXMgc3RhdHVzKQogewogICAgIHNldFN0YXR1cyhz
dGF0dXMpOwogICAgIEFTU0VSVChlcnJvck9jY3VycmVkKCkpOwotICAgIG1fZGF0YS5jbGVhcigp
OworICAgIG1fZGF0YSA9IG51bGxwdHI7CiAKICAgICBzZXRMb2FkaW5nKGZhbHNlKTsKICAgICBj
aGVja05vdGlmeSgpOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvbG9hZGVyL2ljb24vSWNv
blJlY29yZC5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9sb2FkZXIvaWNvbi9JY29uUmVjb3JkLmNwcApp
bmRleCBkNGJjMGQxLi5lN2YxZDRiIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9sb2FkZXIv
aWNvbi9JY29uUmVjb3JkLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9sb2FkZXIvaWNvbi9JY29u
UmVjb3JkLmNwcApAQCAtNzEsNyArNzEsNyBAQCB2b2lkIEljb25SZWNvcmQ6OnNldEltYWdlRGF0
YShQYXNzUmVmUHRyPFNoYXJlZEJ1ZmZlcj4gZGF0YSkKICAgICAvLyBDb3B5IHRoZSBwcm92aWRl
ZCBkYXRhIGludG8gdGhlIGJ1ZmZlciBvZiB0aGUgbmV3IEltYWdlIG9iamVjdC4KICAgICBpZiAo
IW1faW1hZ2UtPnNldERhdGEoZGF0YSwgdHJ1ZSkpIHsKICAgICAgICAgTE9HKEljb25EYXRhYmFz
ZSwgIk1hbnVhbCBpbWFnZSBkYXRhIGZvciBpY29uVVJMICclcycgRkFJTEVEIC0gaXQgd2FzIHBy
b2JhYmx5IGludmFsaWQgaW1hZ2UgZGF0YSIsIG1faWNvblVSTC5hc2NpaSgpLmRhdGEoKSk7Ci0g
ICAgICAgIG1faW1hZ2UuY2xlYXIoKTsKKyAgICAgICAgbV9pbWFnZSA9IG51bGxwdHI7CiAgICAg
fQogICAgIAogICAgIG1fZGF0YVNldCA9IHRydWU7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29y
ZS9wYWdlL0V2ZW50SGFuZGxlci5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9wYWdlL0V2ZW50SGFuZGxl
ci5jcHAKaW5kZXggMjE2YWJjNy4uNTdkYWExNSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUv
cGFnZS9FdmVudEhhbmRsZXIuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BhZ2UvRXZlbnRIYW5k
bGVyLmNwcApAQCAtNDk0LDcgKzQ5NCw3IEBAIHZvaWQgRXZlbnRIYW5kbGVyOjpjbGVhcigpCiAj
ZW5kaWYKICNpZiBFTkFCTEUoVE9VQ0hfRVZFTlRTKSAmJiAhRU5BQkxFKElPU19UT1VDSF9FVkVO
VFMpCiAgICAgbV9vcmlnaW5hdGluZ1RvdWNoUG9pbnRUYXJnZXRzLmNsZWFyKCk7Ci0gICAgbV9v
cmlnaW5hdGluZ1RvdWNoUG9pbnREb2N1bWVudC5jbGVhcigpOworICAgIG1fb3JpZ2luYXRpbmdU
b3VjaFBvaW50RG9jdW1lbnQgPSBudWxscHRyOwogICAgIG1fb3JpZ2luYXRpbmdUb3VjaFBvaW50
VGFyZ2V0S2V5ID0gMDsKICNlbmRpZgogICAgIG1fbWF4TW91c2VNb3ZlZER1cmF0aW9uID0gMDsK
QEAgLTM5OTQsNyArMzk5NCw3IEBAIGJvb2wgRXZlbnRIYW5kbGVyOjpoYW5kbGVUb3VjaEV2ZW50
KGNvbnN0IFBsYXRmb3JtVG91Y2hFdmVudCYgZXZlbnQpCiAgICAgfQogICAgIG1fdG91Y2hQcmVz
c2VkID0gdG91Y2hlcy0+bGVuZ3RoKCkgPiAwOwogICAgIGlmIChhbGxUb3VjaFJlbGVhc2VkKQot
ICAgICAgICBtX29yaWdpbmF0aW5nVG91Y2hQb2ludERvY3VtZW50LmNsZWFyKCk7CisgICAgICAg
IG1fb3JpZ2luYXRpbmdUb3VjaFBvaW50RG9jdW1lbnQgPSBudWxscHRyOwogCiAgICAgLy8gTm93
IGl0ZXJhdGUgdGhlIGNoYW5nZWRUb3VjaGVzIGxpc3QgYW5kIG1fdGFyZ2V0cyB3aXRoaW4gaXQs
IHNlbmRpbmcgZXZlbnRzIHRvIHRoZSB0YXJnZXRzIGFzIHJlcXVpcmVkLgogICAgIGJvb2wgc3dh
bGxvd2VkRXZlbnQgPSBmYWxzZTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BhZ2UvUGFn
ZS5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9wYWdlL1BhZ2UuY3BwCmluZGV4IDFkM2RjYzIuLmY4NmQ4
MWYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BhZ2UvUGFnZS5jcHAKKysrIGIvU291cmNl
L1dlYkNvcmUvcGFnZS9QYWdlLmNwcApAQCAtNTE2LDcgKzUxNiw3IEBAIHZvaWQgUGFnZTo6cmVm
cmVzaFBsdWdpbnMoYm9vbCByZWxvYWQpCiAgICAgVmVjdG9yPFJlZjxGcmFtZT4+IGZyYW1lc05l
ZWRpbmdSZWxvYWQ7CiAKICAgICBmb3IgKGF1dG8mIHBhZ2UgOiAqYWxsUGFnZXMpIHsKLSAgICAg
ICAgcGFnZS0+bV9wbHVnaW5EYXRhLmNsZWFyKCk7CisgICAgICAgIHBhZ2UtPm1fcGx1Z2luRGF0
YSA9IG51bGxwdHI7CiAKICAgICAgICAgaWYgKCFyZWxvYWQpCiAgICAgICAgICAgICBjb250aW51
ZTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2F1ZGlvL21hYy9DQVJpbmdC
dWZmZXIuY3BwIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vYXVkaW8vbWFjL0NBUmluZ0J1ZmZl
ci5jcHAKaW5kZXggZjc2ZThkZi4uMDU0NDJhZCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUv
cGxhdGZvcm0vYXVkaW8vbWFjL0NBUmluZ0J1ZmZlci5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUv
cGxhdGZvcm0vYXVkaW8vbWFjL0NBUmluZ0J1ZmZlci5jcHAKQEAgLTg2LDcgKzg2LDcgQEAgdm9p
ZCBDQVJpbmdCdWZmZXI6OmFsbG9jYXRlKHVpbnQzMl90IGNoYW5uZWxDb3VudCwgc2l6ZV90IGJ5
dGVzUGVyRnJhbWUsIHNpemVfdAogdm9pZCBDQVJpbmdCdWZmZXI6OmRlYWxsb2NhdGUoKQogewog
ICAgIGlmIChtX2J1ZmZlcnMpCi0gICAgICAgIG1fYnVmZmVycy5jbGVhcigpOworICAgICAgICBt
X2J1ZmZlcnMgPSBudWxscHRyOwogCiAgICAgbV9jaGFubmVsQ291bnQgPSAwOwogICAgIG1fY2Fw
YWNpdHlCeXRlcyA9IDA7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFw
aGljcy9Gb250LmNwcCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL0ZvbnQuY3Bw
CmluZGV4IDYwM2ViYTguLmQ5MjY1YjUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRm
b3JtL2dyYXBoaWNzL0ZvbnQuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBo
aWNzL0ZvbnQuY3BwCkBAIC0zNjMsNyArMzYzLDcgQEAgY29uc3QgT3BlblR5cGVNYXRoRGF0YSog
Rm9udDo6bWF0aERhdGEoKSBjb25zdAogICAgIGlmICghbV9tYXRoRGF0YSkgewogICAgICAgICBt
X21hdGhEYXRhID0gT3BlblR5cGVNYXRoRGF0YTo6Y3JlYXRlKG1fcGxhdGZvcm1EYXRhKTsKICAg
ICAgICAgaWYgKCFtX21hdGhEYXRhLT5oYXNNYXRoRGF0YSgpKQotICAgICAgICAgICAgbV9tYXRo
RGF0YS5jbGVhcigpOworICAgICAgICAgICAgbV9tYXRoRGF0YSA9IG51bGxwdHI7CiAgICAgfQog
ICAgIHJldHVybiBtX21hdGhEYXRhLmdldCgpOwogfQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNv
cmUvcGxhdGZvcm0vZ3JhcGhpY3MvRm9udENhY2hlLmNwcCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRm
b3JtL2dyYXBoaWNzL0ZvbnRDYWNoZS5jcHAKaW5kZXggYTZjNDA0OS4uOGQxYTgzNSAxMDA2NDQK
LS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvRm9udENhY2hlLmNwcAorKysg
Yi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9Gb250Q2FjaGUuY3BwCkBAIC0zMjAs
NyArMzIwLDcgQEAgUGFzc1JlZlB0cjxPcGVuVHlwZVZlcnRpY2FsRGF0YT4gRm9udENhY2hlOjpn
ZXRWZXJ0aWNhbERhdGEoY29uc3QgRm9udEZpbGVLZXkmIGsKIAogICAgIFJlZlB0cjxPcGVuVHlw
ZVZlcnRpY2FsRGF0YT4gdmVydGljYWxEYXRhID0gT3BlblR5cGVWZXJ0aWNhbERhdGE6OmNyZWF0
ZShwbGF0Zm9ybURhdGEpOwogICAgIGlmICghdmVydGljYWxEYXRhLT5pc09wZW5UeXBlKCkpCi0g
ICAgICAgIHZlcnRpY2FsRGF0YS5jbGVhcigpOworICAgICAgICB2ZXJ0aWNhbERhdGEgPSBudWxs
cHRyOwogICAgIGZvbnRWZXJ0aWNhbERhdGFDYWNoZS5zZXQoa2V5LCB2ZXJ0aWNhbERhdGEpOwog
ICAgIHJldHVybiB2ZXJ0aWNhbERhdGE7CiB9CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9w
bGF0Zm9ybS9ncmFwaGljcy9HcmFwaGljc0NvbnRleHQuY3BwIGIvU291cmNlL1dlYkNvcmUvcGxh
dGZvcm0vZ3JhcGhpY3MvR3JhcGhpY3NDb250ZXh0LmNwcAppbmRleCBkMzhjMWZhLi5lNmIzN2Zk
IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9HcmFwaGljc0Nv
bnRleHQuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL0dyYXBoaWNz
Q29udGV4dC5jcHAKQEAgLTE3OCw4ICsxNzgsOCBAQCB2b2lkIEdyYXBoaWNzQ29udGV4dDo6c2V0
U3Ryb2tlQ29sb3IoY29uc3QgQ29sb3ImIGNvbG9yLCBDb2xvclNwYWNlIGNvbG9yU3BhY2UpCiB7
CiAgICAgbV9zdGF0ZS5zdHJva2VDb2xvciA9IGNvbG9yOwogICAgIG1fc3RhdGUuc3Ryb2tlQ29s
b3JTcGFjZSA9IGNvbG9yU3BhY2U7Ci0gICAgbV9zdGF0ZS5zdHJva2VHcmFkaWVudC5jbGVhcigp
OwotICAgIG1fc3RhdGUuc3Ryb2tlUGF0dGVybi5jbGVhcigpOworICAgIG1fc3RhdGUuc3Ryb2tl
R3JhZGllbnQgPSBudWxscHRyOworICAgIG1fc3RhdGUuc3Ryb2tlUGF0dGVybiA9IG51bGxwdHI7
CiAgICAgc2V0UGxhdGZvcm1TdHJva2VDb2xvcihjb2xvciwgY29sb3JTcGFjZSk7CiB9CiAKQEAg
LTI0NSw4ICsyNDUsOCBAQCB2b2lkIEdyYXBoaWNzQ29udGV4dDo6c2V0RmlsbENvbG9yKGNvbnN0
IENvbG9yJiBjb2xvciwgQ29sb3JTcGFjZSBjb2xvclNwYWNlKQogewogICAgIG1fc3RhdGUuZmls
bENvbG9yID0gY29sb3I7CiAgICAgbV9zdGF0ZS5maWxsQ29sb3JTcGFjZSA9IGNvbG9yU3BhY2U7
Ci0gICAgbV9zdGF0ZS5maWxsR3JhZGllbnQuY2xlYXIoKTsKLSAgICBtX3N0YXRlLmZpbGxQYXR0
ZXJuLmNsZWFyKCk7CisgICAgbV9zdGF0ZS5maWxsR3JhZGllbnQgPSBudWxscHRyOworICAgIG1f
c3RhdGUuZmlsbFBhdHRlcm4gPSBudWxscHRyOwogICAgIHNldFBsYXRmb3JtRmlsbENvbG9yKGNv
bG9yLCBjb2xvclNwYWNlKTsKIH0KIApAQCAtMjY5LDI2ICsyNjksMjYgQEAgdm9pZCBHcmFwaGlj
c0NvbnRleHQ6OnNldEFudGlhbGlhc2VkRm9udERpbGF0aW9uRW5hYmxlZChib29sIGFudGlhbGlh
c2VkRm9udERpbGEKIAogdm9pZCBHcmFwaGljc0NvbnRleHQ6OnNldFN0cm9rZVBhdHRlcm4oUmVm
PFBhdHRlcm4+JiYgcGF0dGVybikKIHsKLSAgICBtX3N0YXRlLnN0cm9rZUdyYWRpZW50LmNsZWFy
KCk7CisgICAgbV9zdGF0ZS5zdHJva2VHcmFkaWVudCA9IG51bGxwdHI7CiAgICAgbV9zdGF0ZS5z
dHJva2VQYXR0ZXJuID0gV1RGOjptb3ZlKHBhdHRlcm4pOwogfQogCiB2b2lkIEdyYXBoaWNzQ29u
dGV4dDo6c2V0RmlsbFBhdHRlcm4oUmVmPFBhdHRlcm4+JiYgcGF0dGVybikKIHsKLSAgICBtX3N0
YXRlLmZpbGxHcmFkaWVudC5jbGVhcigpOworICAgIG1fc3RhdGUuZmlsbEdyYWRpZW50ID0gbnVs
bHB0cjsKICAgICBtX3N0YXRlLmZpbGxQYXR0ZXJuID0gV1RGOjptb3ZlKHBhdHRlcm4pOwogfQog
CiB2b2lkIEdyYXBoaWNzQ29udGV4dDo6c2V0U3Ryb2tlR3JhZGllbnQoUmVmPEdyYWRpZW50PiYm
IGdyYWRpZW50KQogewogICAgIG1fc3RhdGUuc3Ryb2tlR3JhZGllbnQgPSBXVEY6Om1vdmUoZ3Jh
ZGllbnQpOwotICAgIG1fc3RhdGUuc3Ryb2tlUGF0dGVybi5jbGVhcigpOworICAgIG1fc3RhdGUu
c3Ryb2tlUGF0dGVybiA9IG51bGxwdHI7CiB9CiAKIHZvaWQgR3JhcGhpY3NDb250ZXh0OjpzZXRG
aWxsR3JhZGllbnQoUmVmPEdyYWRpZW50PiYmIGdyYWRpZW50KQogewogICAgIG1fc3RhdGUuZmls
bEdyYWRpZW50ID0gV1RGOjptb3ZlKGdyYWRpZW50KTsKLSAgICBtX3N0YXRlLmZpbGxQYXR0ZXJu
LmNsZWFyKCk7CisgICAgbV9zdGF0ZS5maWxsUGF0dGVybiA9IG51bGxwdHI7CiB9CiAKIHZvaWQg
R3JhcGhpY3NDb250ZXh0OjpiZWdpblRyYW5zcGFyZW5jeUxheWVyKGZsb2F0IG9wYWNpdHkpCmRp
ZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9jYWlyby9CYWNraW5n
U3RvcmVCYWNrZW5kQ2Fpcm9YMTEuY3BwIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhp
Y3MvY2Fpcm8vQmFja2luZ1N0b3JlQmFja2VuZENhaXJvWDExLmNwcAppbmRleCA3Yjg2MzFhLi40
MzdkYWZjIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9jYWly
by9CYWNraW5nU3RvcmVCYWNrZW5kQ2Fpcm9YMTEuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3Bs
YXRmb3JtL2dyYXBoaWNzL2NhaXJvL0JhY2tpbmdTdG9yZUJhY2tlbmRDYWlyb1gxMS5jcHAKQEAg
LTQzLDcgKzQzLDcgQEAgQmFja2luZ1N0b3JlQmFja2VuZENhaXJvWDExOjpCYWNraW5nU3RvcmVC
YWNrZW5kQ2Fpcm9YMTEodW5zaWduZWQgbG9uZyByb290V2luZG8KIEJhY2tpbmdTdG9yZUJhY2tl
bmRDYWlyb1gxMTo6fkJhY2tpbmdTdG9yZUJhY2tlbmRDYWlyb1gxMSgpCiB7CiAgICAgLy8gVGhl
IHBpeG1hcCBuZWVkcyB0byBleGlzdCB3aGVuIHRoZSBzdXJmYWNlIGlzIGRlc3Ryb3llZCwgc28g
YmVnaW4gYnkgY2xlYXJpbmcgaXQuCi0gICAgbV9zdXJmYWNlLmNsZWFyKCk7CisgICAgbV9zdXJm
YWNlID0gbnVsbHB0cjsKIH0KIAogdm9pZCBCYWNraW5nU3RvcmVCYWNrZW5kQ2Fpcm9YMTE6OnNj
cm9sbChjb25zdCBJbnRSZWN0JiBzY3JvbGxSZWN0LCBjb25zdCBJbnRTaXplJiBzY3JvbGxPZmZz
ZXQpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9jYWlyby9C
aXRtYXBJbWFnZUNhaXJvLmNwcCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2Nh
aXJvL0JpdG1hcEltYWdlQ2Fpcm8uY3BwCmluZGV4IDI2ZGY1ZGYuLmYwZDNhN2EgMTAwNjQ0Ci0t
LSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2NhaXJvL0JpdG1hcEltYWdlQ2Fp
cm8uY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2NhaXJvL0JpdG1h
cEltYWdlQ2Fpcm8uY3BwCkBAIC0xNTksNyArMTU5LDcgQEAgYm9vbCBGcmFtZURhdGE6OmNsZWFy
KGJvb2wgY2xlYXJNZXRhZGF0YSkKICAgICAgICAgbV9oYXZlTWV0YWRhdGEgPSBmYWxzZTsKIAog
ICAgIGlmIChtX2ZyYW1lKSB7Ci0gICAgICAgIG1fZnJhbWUuY2xlYXIoKTsKKyAgICAgICAgbV9m
cmFtZSA9IG51bGxwdHI7CiAgICAgICAgIHJldHVybiB0cnVlOwogICAgIH0KICAgICByZXR1cm4g
ZmFsc2U7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9maWx0
ZXJzL0ZpbHRlckVmZmVjdC5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9m
aWx0ZXJzL0ZpbHRlckVmZmVjdC5jcHAKaW5kZXggNzYyNzAwOC4uYzk4ZDViOSAxMDA2NDQKLS0t
IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvZmlsdGVycy9GaWx0ZXJFZmZlY3Qu
Y3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2ZpbHRlcnMvRmlsdGVy
RWZmZWN0LmNwcApAQCAtMjQ1LDEyICsyNDUsMTIgQEAgdm9pZCBGaWx0ZXJFZmZlY3Q6OmNsZWFy
UmVzdWx0KCkKICAgICBpZiAobV9pbWFnZUJ1ZmZlclJlc3VsdCkKICAgICAgICAgbV9pbWFnZUJ1
ZmZlclJlc3VsdC5yZXNldCgpOwogICAgIGlmIChtX3VubXVsdGlwbGllZEltYWdlUmVzdWx0KQot
ICAgICAgICBtX3VubXVsdGlwbGllZEltYWdlUmVzdWx0LmNsZWFyKCk7CisgICAgICAgIG1fdW5t
dWx0aXBsaWVkSW1hZ2VSZXN1bHQgPSBudWxscHRyOwogICAgIGlmIChtX3ByZW11bHRpcGxpZWRJ
bWFnZVJlc3VsdCkKLSAgICAgICAgbV9wcmVtdWx0aXBsaWVkSW1hZ2VSZXN1bHQuY2xlYXIoKTsK
KyAgICAgICAgbV9wcmVtdWx0aXBsaWVkSW1hZ2VSZXN1bHQgPSBudWxscHRyOwogI2lmIEVOQUJM
RShPUEVOQ0wpCiAgICAgaWYgKG1fb3BlbkNMSW1hZ2VSZXN1bHQpCi0gICAgICAgIG1fb3BlbkNM
SW1hZ2VSZXN1bHQuY2xlYXIoKTsKKyAgICAgICAgbV9vcGVuQ0xJbWFnZVJlc3VsdCA9IG51bGxw
dHI7CiAjZW5kaWYKIH0KIApAQCAtNTQwLDcgKzU0MCw3IEBAIHZvaWQgRmlsdGVyRWZmZWN0Ojp0
cmFuc2Zvcm1SZXN1bHRDb2xvclNwYWNlKENvbG9yU3BhY2UgZHN0Q29sb3JTcGFjZSkKICNpZiBF
TkFCTEUoT1BFTkNMKQogICAgIGlmIChvcGVuQ0xJbWFnZSgpKSB7CiAgICAgICAgIGlmIChtX2lt
YWdlQnVmZmVyUmVzdWx0KQotICAgICAgICAgICAgbV9pbWFnZUJ1ZmZlclJlc3VsdC5jbGVhcigp
OworICAgICAgICAgICAgbV9pbWFnZUJ1ZmZlclJlc3VsdCA9IG51bGxwdHI7CiAgICAgICAgIEZp
bHRlckNvbnRleHRPcGVuQ0wqIGNvbnRleHQgPSBGaWx0ZXJDb250ZXh0T3BlbkNMOjpjb250ZXh0
KCk7CiAgICAgICAgIEFTU0VSVChjb250ZXh0KTsKICAgICAgICAgY29udGV4dC0+b3BlbkNMVHJh
bnNmb3JtQ29sb3JTcGFjZShtX29wZW5DTEltYWdlUmVzdWx0LCBhYnNvbHV0ZVBhaW50UmVjdCgp
LCBtX3Jlc3VsdENvbG9yU3BhY2UsIGRzdENvbG9yU3BhY2UpOwpAQCAtNTU4LDkgKzU1OCw5IEBA
IHZvaWQgRmlsdGVyRWZmZWN0Ojp0cmFuc2Zvcm1SZXN1bHRDb2xvclNwYWNlKENvbG9yU3BhY2Ug
ZHN0Q29sb3JTcGFjZSkKICAgICBtX3Jlc3VsdENvbG9yU3BhY2UgPSBkc3RDb2xvclNwYWNlOwog
CiAgICAgaWYgKG1fdW5tdWx0aXBsaWVkSW1hZ2VSZXN1bHQpCi0gICAgICAgIG1fdW5tdWx0aXBs
aWVkSW1hZ2VSZXN1bHQuY2xlYXIoKTsKKyAgICAgICAgbV91bm11bHRpcGxpZWRJbWFnZVJlc3Vs
dCA9IG51bGxwdHI7CiAgICAgaWYgKG1fcHJlbXVsdGlwbGllZEltYWdlUmVzdWx0KQotICAgICAg
ICBtX3ByZW11bHRpcGxpZWRJbWFnZVJlc3VsdC5jbGVhcigpOworICAgICAgICBtX3ByZW11bHRp
cGxpZWRJbWFnZVJlc3VsdCA9IG51bGxwdHI7CiAjZW5kaWYKIH0KIApkaWZmIC0tZ2l0IGEvU291
cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvZ3N0cmVhbWVyL0ltYWdlR1N0cmVhbWVyQ2Fp
cm8uY3BwIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvZ3N0cmVhbWVyL0ltYWdl
R1N0cmVhbWVyQ2Fpcm8uY3BwCmluZGV4IDA2ZmFlY2EuLmVlMjcyNzcgMTAwNjQ0Ci0tLSBhL1Nv
dXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2dzdHJlYW1lci9JbWFnZUdTdHJlYW1lckNh
aXJvLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9nc3RyZWFtZXIv
SW1hZ2VHU3RyZWFtZXJDYWlyby5jcHAKQEAgLTcxLDkgKzcxLDcgQEAgSW1hZ2VHU3RyZWFtZXI6
OkltYWdlR1N0cmVhbWVyKEdzdFNhbXBsZSogc2FtcGxlKQogSW1hZ2VHU3RyZWFtZXI6On5JbWFn
ZUdTdHJlYW1lcigpCiB7CiAgICAgaWYgKG1faW1hZ2UpCi0gICAgICAgIG1faW1hZ2UuY2xlYXIo
KTsKLQotICAgIG1faW1hZ2UgPSAwOworICAgICAgICBtX2ltYWdlID0gbnVsbHB0cjsKIAogICAg
IC8vIFdlIGtlZXAgdGhlIGJ1ZmZlciBtZW1vcnkgbWFwcGVkIHVudGlsIHRoZSBpbWFnZSBpcyBk
ZXN0cm95ZWQgYmVjYXVzZSB0aGUgaW50ZXJuYWwKICAgICAvLyBjYWlyb19zdXJmYWNlX3Qgd2Fz
IGNyZWF0ZWQgdXNpbmcgY2Fpcm9faW1hZ2Vfc3VyZmFjZV9jcmVhdGVfZm9yX2RhdGEoKS4KZGlm
ZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL3RleG1hcC9CaXRtYXBU
ZXh0dXJlR0wuY3BwIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvdGV4bWFwL0Jp
dG1hcFRleHR1cmVHTC5jcHAKaW5kZXggOTc1YzM4Zi4uMGU1MmQ3YiAxMDA2NDQKLS0tIGEvU291
cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvdGV4bWFwL0JpdG1hcFRleHR1cmVHTC5jcHAK
KysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvdGV4bWFwL0JpdG1hcFRleHR1
cmVHTC5jcHAKQEAgLTI3OCw3ICsyNzgsNyBAQCBQYXNzUmVmUHRyPEJpdG1hcFRleHR1cmU+IEJp
dG1hcFRleHR1cmVHTDo6YXBwbHlGaWx0ZXJzKFRleHR1cmVNYXBwZXIqIHRleHR1cmVNYQogICAg
ICAgICAgICAgdGV4bWFwR0wtPmRyYXdGaWx0ZXJlZCgqcmVzdWx0U3VyZmFjZS5nZXQoKSwgc3Bh
cmVTdXJmYWNlLmdldCgpLCAqZmlsdGVyLCBqKTsKICAgICAgICAgICAgIGlmICghaiAmJiBmaWx0
ZXItPnR5cGUoKSA9PSBGaWx0ZXJPcGVyYXRpb246OkRST1BfU0hBRE9XKSB7CiAgICAgICAgICAg
ICAgICAgc3BhcmVTdXJmYWNlID0gcmVzdWx0U3VyZmFjZTsKLSAgICAgICAgICAgICAgICByZXN1
bHRTdXJmYWNlLmNsZWFyKCk7CisgICAgICAgICAgICAgICAgcmVzdWx0U3VyZmFjZSA9IG51bGxw
dHI7CiAgICAgICAgICAgICB9CiAgICAgICAgICAgICBzdGQ6OnN3YXAocmVzdWx0U3VyZmFjZSwg
aW50ZXJtZWRpYXRlU3VyZmFjZSk7CiAgICAgICAgIH0KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJD
b3JlL3BsYXRmb3JtL2dyYXBoaWNzL3RleG1hcC9UZXh0dXJlTWFwcGVyR0wuY3BwIGIvU291cmNl
L1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvdGV4bWFwL1RleHR1cmVNYXBwZXJHTC5jcHAKaW5k
ZXggMGJjZThjNy4uNGM1NDgwNSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0v
Z3JhcGhpY3MvdGV4bWFwL1RleHR1cmVNYXBwZXJHTC5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUv
cGxhdGZvcm0vZ3JhcGhpY3MvdGV4bWFwL1RleHR1cmVNYXBwZXJHTC5jcHAKQEAgLTY5MSw3ICs2
OTEsNyBAQCB2b2lkIFRleHR1cmVNYXBwZXJHTDo6YmluZERlZmF1bHRTdXJmYWNlKCkKICAgICBk
YXRhKCkucHJvamVjdGlvbk1hdHJpeCA9IGNyZWF0ZVByb2plY3Rpb25NYXRyaXgodmlld3BvcnRT
aXplLCBkYXRhKCkuUGFpbnRGbGFncyAmIFBhaW50aW5nTWlycm9yZWQpOwogICAgIG1fY29udGV4
dDNELT52aWV3cG9ydChkYXRhKCkudmlld3BvcnRbMF0sIGRhdGEoKS52aWV3cG9ydFsxXSwgdmll
d3BvcnRTaXplLndpZHRoKCksIHZpZXdwb3J0U2l6ZS5oZWlnaHQoKSk7CiAgICAgbV9jbGlwU3Rh
Y2suYXBwbHkobV9jb250ZXh0M0QuZ2V0KCkpOwotICAgIGRhdGEoKS5jdXJyZW50U3VyZmFjZS5j
bGVhcigpOworICAgIGRhdGEoKS5jdXJyZW50U3VyZmFjZSA9IG51bGxwdHI7CiB9CiAKIHZvaWQg
VGV4dHVyZU1hcHBlckdMOjpiaW5kU3VyZmFjZShCaXRtYXBUZXh0dXJlICpzdXJmYWNlKQpkaWZm
IC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvdGV4bWFwL1RleHR1cmVN
YXBwZXJMYXllci5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy90ZXhtYXAv
VGV4dHVyZU1hcHBlckxheWVyLmNwcAppbmRleCBjODY0MjAyLi4zNDU1Mzk4IDEwMDY0NAotLS0g
YS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy90ZXhtYXAvVGV4dHVyZU1hcHBlckxh
eWVyLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy90ZXhtYXAvVGV4
dHVyZU1hcHBlckxheWVyLmNwcApAQCAtNDA4LDcgKzQwOCw3IEBAIHZvaWQgVGV4dHVyZU1hcHBl
ckxheWVyOjpwYWludFdpdGhJbnRlcm1lZGlhdGVTdXJmYWNlKGNvbnN0IFRleHR1cmVNYXBwZXJQ
YWludE9wCiAKICAgICBpZiAocmVwbGljYVN1cmZhY2UgJiYgb3B0aW9ucy5vcGFjaXR5ID09IDEp
IHsKICAgICAgICAgY29tbWl0U3VyZmFjZShvcHRpb25zLCByZXBsaWNhU3VyZmFjZSwgcmVjdCwg
MSk7Ci0gICAgICAgIHJlcGxpY2FTdXJmYWNlLmNsZWFyKCk7CisgICAgICAgIHJlcGxpY2FTdXJm
YWNlID0gbnVsbHB0cjsKICAgICB9CiAKICAgICBtYWluU3VyZmFjZSA9IHBhaW50SW50b1N1cmZh
Y2UocGFpbnRPcHRpb25zLCByZWN0LnNpemUoKSk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29y
ZS9wbGF0Zm9ybS9ncmFwaGljcy90ZXhtYXAvVGV4dHVyZU1hcHBlclRpbGVkQmFja2luZ1N0b3Jl
LmNwcCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL3RleG1hcC9UZXh0dXJlTWFw
cGVyVGlsZWRCYWNraW5nU3RvcmUuY3BwCmluZGV4IDIwODA0NjIuLmQzNTcxMGEgMTAwNjQ0Ci0t
LSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL3RleG1hcC9UZXh0dXJlTWFwcGVy
VGlsZWRCYWNraW5nU3RvcmUuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBo
aWNzL3RleG1hcC9UZXh0dXJlTWFwcGVyVGlsZWRCYWNraW5nU3RvcmUuY3BwCkBAIC0zOSw3ICsz
OSw3IEBAIHZvaWQgVGV4dHVyZU1hcHBlclRpbGVkQmFja2luZ1N0b3JlOjp1cGRhdGVDb250ZW50
c0Zyb21JbWFnZUlmTmVlZGVkKFRleHR1cmVNYXBwCiAgICAgICAgIHJldHVybjsKIAogICAgIHVw
ZGF0ZUNvbnRlbnRzKHRleHR1cmVNYXBwZXIsIG1faW1hZ2UuZ2V0KCksIG1faW1hZ2UtPnNpemUo
KSwgZW5jbG9zaW5nSW50UmVjdChtX2ltYWdlLT5yZWN0KCkpLCBCaXRtYXBUZXh0dXJlOjpVcGRh
dGVDYW5ub3RNb2RpZnlPcmlnaW5hbEltYWdlRGF0YSk7Ci0gICAgbV9pbWFnZS5jbGVhcigpOwor
ICAgIG1faW1hZ2UgPSBudWxscHRyOwogfQogCiBUcmFuc2Zvcm1hdGlvbk1hdHJpeCBUZXh0dXJl
TWFwcGVyVGlsZWRCYWNraW5nU3RvcmU6OmFkanVzdGVkVHJhbnNmb3JtRm9yUmVjdChjb25zdCBG
bG9hdFJlY3QmIHRhcmdldFJlY3QpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9y
bS9ncmFwaGljcy90ZXhtYXAvY29vcmRpbmF0ZWQvQ29vcmRpbmF0ZWRHcmFwaGljc0xheWVyLmNw
cCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL3RleG1hcC9jb29yZGluYXRlZC9D
b29yZGluYXRlZEdyYXBoaWNzTGF5ZXIuY3BwCmluZGV4IGUyZTFmNGEuLmE3MGU3YTAgMTAwNjQ0
Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL3RleG1hcC9jb29yZGluYXRl
ZC9Db29yZGluYXRlZEdyYXBoaWNzTGF5ZXIuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRm
b3JtL2dyYXBoaWNzL3RleG1hcC9jb29yZGluYXRlZC9Db29yZGluYXRlZEdyYXBoaWNzTGF5ZXIu
Y3BwCkBAIC04MjAsNyArODIwLDcgQEAgdm9pZCBDb29yZGluYXRlZEdyYXBoaWNzTGF5ZXI6OnJl
bGVhc2VJbWFnZUJhY2tpbmdJZk5lZWRlZCgpCiAKICAgICBBU1NFUlQobV9jb29yZGluYXRvcik7
CiAgICAgbV9jb29yZGluYXRlZEltYWdlQmFja2luZy0+cmVtb3ZlSG9zdCh0aGlzKTsKLSAgICBt
X2Nvb3JkaW5hdGVkSW1hZ2VCYWNraW5nLmNsZWFyKCk7CisgICAgbV9jb29yZGluYXRlZEltYWdl
QmFja2luZyA9IG51bGxwdHI7CiAgICAgbV9sYXllclN0YXRlLmltYWdlSUQgPSBJbnZhbGlkQ29v
cmRpbmF0ZWRJbWFnZUJhY2tpbmdJRDsKICAgICBtX2xheWVyU3RhdGUuaW1hZ2VDaGFuZ2VkID0g
dHJ1ZTsKIH0KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL3Rl
eG1hcC9jb29yZGluYXRlZC9Db29yZGluYXRlZEltYWdlQmFja2luZy5jcHAgYi9Tb3VyY2UvV2Vi
Q29yZS9wbGF0Zm9ybS9ncmFwaGljcy90ZXhtYXAvY29vcmRpbmF0ZWQvQ29vcmRpbmF0ZWRJbWFn
ZUJhY2tpbmcuY3BwCmluZGV4IGQyMmIxNWUuLmUyNjE1MGYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9X
ZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL3RleG1hcC9jb29yZGluYXRlZC9Db29yZGluYXRlZElt
YWdlQmFja2luZy5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvdGV4
bWFwL2Nvb3JkaW5hdGVkL0Nvb3JkaW5hdGVkSW1hZ2VCYWNraW5nLmNwcApAQCAtMTQxLDcgKzE0
MSw3IEBAIHZvaWQgQ29vcmRpbmF0ZWRJbWFnZUJhY2tpbmc6OnJlbGVhc2VTdXJmYWNlSWZOZWVk
ZWQoKQogewogICAgIC8vIFdlIG11c3Qga2VlcCBtX3N1cmZhY2UgdW50aWwgVUkgUHJvY2VzcyBy
ZWFkcyBtX3N1cmZhY2UuCiAgICAgLy8gSWYgbV9zdXJmYWNlIGV4aXN0cywgaXQgd2FzIGNyZWF0
ZWQgaW4gdGhlIHByZXZpb3VzIHVwZGF0ZS4KLSAgICBtX3N1cmZhY2UuY2xlYXIoKTsKKyAgICBt
X3N1cmZhY2UgPSBudWxscHRyOwogfQogCiBzdGF0aWMgY29uc3QgZG91YmxlIGNsZWFyQ29udGVu
dHNUaW1lckludGVydmFsID0gMzsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3Jt
L2d0ay9HYW1lcGFkc0d0ay5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ndGsvR2FtZXBh
ZHNHdGsuY3BwCmluZGV4IDI2ZjliZTYuLjlmYjI5ZjIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJD
b3JlL3BsYXRmb3JtL2d0ay9HYW1lcGFkc0d0ay5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvcGxh
dGZvcm0vZ3RrL0dhbWVwYWRzR3RrLmNwcApAQCAtMTU1LDcgKzE1NSw3IEBAIHZvaWQgR2FtZXBh
ZHNHdGs6OnVucmVnaXN0ZXJEZXZpY2UoU3RyaW5nIGRldmljZUZpbGUpCiAgICAgc2l6ZV90IGlu
ZGV4ID0gbV9zbG90cy5maW5kKGdhbWVwYWREZXZpY2UpOwogICAgIEFTU0VSVChpbmRleCAhPSBu
b3RGb3VuZCk7CiAKLSAgICBtX3Nsb3RzW2luZGV4XS5jbGVhcigpOworICAgIG1fc2xvdHNbaW5k
ZXhdID0gbnVsbHB0cjsKIH0KIAogdm9pZCBHYW1lcGFkc0d0azo6dXBkYXRlR2FtZXBhZExpc3Qo
R2FtZXBhZExpc3QqIGludG8pCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcv
SW5saW5lRmxvd0JveC5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvSW5saW5lRmxvd0Jv
eC5jcHAKaW5kZXggNDE2ODJjOC4uMmQ2ZmI2OSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUv
cmVuZGVyaW5nL0lubGluZUZsb3dCb3guY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmlu
Zy9JbmxpbmVGbG93Qm94LmNwcApAQCAtOTU0LDcgKzk1NCw3IEBAIHZvaWQgSW5saW5lRmxvd0Jv
eDo6Y29tcHV0ZU92ZXJmbG93KExheW91dFVuaXQgbGluZVRvcCwgTGF5b3V0VW5pdCBsaW5lQm90
dG9tLCBHCiAgICAgICAgIHJldHVybjsKIAogICAgIGlmIChtX292ZXJmbG93KQotICAgICAgICBt
X292ZXJmbG93LmNsZWFyKCk7CisgICAgICAgIG1fb3ZlcmZsb3cgPSBudWxscHRyOwogCiAgICAg
Ly8gVmlzdWFsIG92ZXJmbG93IGp1c3QgaW5jbHVkZXMgb3ZlcmZsb3cgZm9yIHN0dWZmIHdlIG5l
ZWQgdG8gcmVwYWludCBvdXJzZWx2ZXMuICBTZWxmLXBhaW50aW5nIGxheWVycyBhcmUgaWdub3Jl
ZC4KICAgICAvLyBMYXlvdXQgb3ZlcmZsb3cgaXMgdXNlZCB0byBkZXRlcm1pbmUgc2Nyb2xsaW5n
IGV4dGVudCwgc28gaXQgc3RpbGwgaW5jbHVkZXMgY2hpbGQgbGF5ZXJzIGFuZCBhbHNvIGZhY3Rv
cnMgaW4KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJCb3guY3Bw
IGIvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlckJveC5jcHAKaW5kZXggNTAyZGY2Ni4u
NjE3MWRiNSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlckJveC5j
cHAKKysrIGIvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlckJveC5jcHAKQEAgLTQ0OTcs
NyArNDQ5Nyw3IEBAIHZvaWQgUmVuZGVyQm94OjphZGRWaXN1YWxPdmVyZmxvdyhjb25zdCBMYXlv
dXRSZWN0JiByZWN0KQogCiB2b2lkIFJlbmRlckJveDo6Y2xlYXJPdmVyZmxvdygpCiB7Ci0gICAg
bV9vdmVyZmxvdy5jbGVhcigpOworICAgIG1fb3ZlcmZsb3cgPSBudWxscHRyOwogICAgIFJlbmRl
ckZsb3dUaHJlYWQqIGZsb3dUaHJlYWQgPSBmbG93VGhyZWFkQ29udGFpbmluZ0Jsb2NrKCk7CiAg
ICAgaWYgKGZsb3dUaHJlYWQpCiAgICAgICAgIGZsb3dUaHJlYWQtPmNsZWFyUmVnaW9uc092ZXJm
bG93KHRoaXMpOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlckJv
eFJlZ2lvbkluZm8uaCBiL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJCb3hSZWdpb25J
bmZvLmgKaW5kZXggNjIzNjA4ZC4uZWEyM2MxZWMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3Jl
L3JlbmRlcmluZy9SZW5kZXJCb3hSZWdpb25JbmZvLmgKKysrIGIvU291cmNlL1dlYkNvcmUvcmVu
ZGVyaW5nL1JlbmRlckJveFJlZ2lvbkluZm8uaApAQCAtNTMsNyArNTMsNyBAQCBwdWJsaWM6CiAg
ICAgdm9pZCBjbGVhck92ZXJmbG93KCkKICAgICB7CiAgICAgICAgIGlmIChtX292ZXJmbG93KQot
ICAgICAgICAgICAgbV9vdmVyZmxvdy5jbGVhcigpOworICAgICAgICAgICAgbV9vdmVyZmxvdyA9
IG51bGxwdHI7CiAgICAgfQogCiBwcml2YXRlOgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUv
cmVuZGVyaW5nL3N0eWxlL0ZpbGxMYXllci5oIGIvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL3N0
eWxlL0ZpbGxMYXllci5oCmluZGV4IDhiMDZjZTMuLjAzMDk4NjMgMTAwNjQ0Ci0tLSBhL1NvdXJj
ZS9XZWJDb3JlL3JlbmRlcmluZy9zdHlsZS9GaWxsTGF5ZXIuaAorKysgYi9Tb3VyY2UvV2ViQ29y
ZS9yZW5kZXJpbmcvc3R5bGUvRmlsbExheWVyLmgKQEAgLTEyMSw4ICsxMjEsOCBAQCBwdWJsaWM6
CiAgICAgdm9pZCBzZXRTaXplKEZpbGxTaXplIGYpIHsgbV9zaXplVHlwZSA9IGYudHlwZTsgbV9z
aXplTGVuZ3RoID0gZi5zaXplOyB9CiAgICAgdm9pZCBzZXRNYXNrU291cmNlVHlwZShFTWFza1Nv
dXJjZVR5cGUgbSkgeyBtX21hc2tTb3VyY2VUeXBlID0gbTsgbV9tYXNrU291cmNlVHlwZVNldCA9
IHRydWU7IH0KIAotICAgIHZvaWQgY2xlYXJNYXNrSW1hZ2UoKSB7IG1fbWFza0ltYWdlT3BlcmF0
aW9uLmNsZWFyKCk7IH0KLSAgICB2b2lkIGNsZWFySW1hZ2UoKSB7IG1faW1hZ2UuY2xlYXIoKTsg
bV9pbWFnZVNldCA9IGZhbHNlOyB9CisgICAgdm9pZCBjbGVhck1hc2tJbWFnZSgpIHsgbV9tYXNr
SW1hZ2VPcGVyYXRpb24gPSBudWxscHRyOyB9CisgICAgdm9pZCBjbGVhckltYWdlKCkgeyBtX2lt
YWdlID0gbnVsbHB0cjsgbV9pbWFnZVNldCA9IGZhbHNlOyB9CiAgICAgdm9pZCBjbGVhclhQb3Np
dGlvbigpIHsgbV94UG9zU2V0ID0gZmFsc2U7IG1fYmFja2dyb3VuZE9yaWdpblNldCA9IGZhbHNl
OyB9CiAgICAgdm9pZCBjbGVhcllQb3NpdGlvbigpIHsgbV95UG9zU2V0ID0gZmFsc2U7IG1fYmFj
a2dyb3VuZE9yaWdpblNldCA9IGZhbHNlOyB9CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3Jl
L3N2Zy9TVkdUUmVmRWxlbWVudC5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9zdmcvU1ZHVFJlZkVsZW1l
bnQuY3BwCmluZGV4IDIyNWEzMDQuLmUzZmFkOGQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3Jl
L3N2Zy9TVkdUUmVmRWxlbWVudC5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvc3ZnL1NWR1RSZWZF
bGVtZW50LmNwcApAQCAtMTA0LDcgKzEwNCw3IEBAIHZvaWQgU1ZHVFJlZlRhcmdldEV2ZW50TGlz
dGVuZXI6OmRldGFjaCgpCiAKICAgICBtX3RhcmdldC0+cmVtb3ZlRXZlbnRMaXN0ZW5lcihldmVu
dE5hbWVzKCkuRE9NU3VidHJlZU1vZGlmaWVkRXZlbnQsIHRoaXMsIGZhbHNlKTsKICAgICBtX3Rh
cmdldC0+cmVtb3ZlRXZlbnRMaXN0ZW5lcihldmVudE5hbWVzKCkuRE9NTm9kZVJlbW92ZWRGcm9t
RG9jdW1lbnRFdmVudCwgdGhpcywgZmFsc2UpOwotICAgIG1fdGFyZ2V0LmNsZWFyKCk7CisgICAg
bV90YXJnZXQgPSBudWxscHRyOwogfQogCiBib29sIFNWR1RSZWZUYXJnZXRFdmVudExpc3RlbmVy
OjpvcGVyYXRvcj09KGNvbnN0IEV2ZW50TGlzdGVuZXImIGxpc3RlbmVyKQpkaWZmIC0tZ2l0IGEv
U291cmNlL1dlYkNvcmUvdGVzdGluZy9JbnRlcm5hbHMuY3BwIGIvU291cmNlL1dlYkNvcmUvdGVz
dGluZy9JbnRlcm5hbHMuY3BwCmluZGV4IDFhMTA1MTcuLjQ3NmQxZTIgMTAwNjQ0Ci0tLSBhL1Nv
dXJjZS9XZWJDb3JlL3Rlc3RpbmcvSW50ZXJuYWxzLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS90
ZXN0aW5nL0ludGVybmFscy5jcHAKQEAgLTE3MjMsNyArMTcyMyw3IEBAIHZvaWQgSW50ZXJuYWxz
OjpjbG9zZUR1bW15SW5zcGVjdG9yRnJvbnRlbmQoKQogICAgIG1fZnJvbnRlbmRDaGFubmVsID0g
bnVsbHB0cjsKIAogICAgIG1fZnJvbnRlbmRXaW5kb3ctPmNsb3NlKG1fZnJvbnRlbmRXaW5kb3ct
PnNjcmlwdEV4ZWN1dGlvbkNvbnRleHQoKSk7Ci0gICAgbV9mcm9udGVuZFdpbmRvdy5jbGVhcigp
OworICAgIG1fZnJvbnRlbmRXaW5kb3cgPSBudWxscHRyOwogfQogCiB2b2lkIEludGVybmFsczo6
c2V0SmF2YVNjcmlwdFByb2ZpbGluZ0VuYWJsZWQoYm9vbCBlbmFibGVkLCBFeGNlcHRpb25Db2Rl
JiBlYykKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3dvcmtlcnMvV29ya2VyRXZlbnRRdWV1
ZS5jcHAgYi9Tb3VyY2UvV2ViQ29yZS93b3JrZXJzL1dvcmtlckV2ZW50UXVldWUuY3BwCmluZGV4
IGY1MjBjMWQuLjA3MjEwNzYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3dvcmtlcnMvV29y
a2VyRXZlbnRRdWV1ZS5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvd29ya2Vycy9Xb3JrZXJFdmVu
dFF1ZXVlLmNwcApAQCAtNjgsMTMgKzY4LDEzIEBAIHB1YmxpYzoKICAgICAgICAgICAgIHJldHVy
bjsKICAgICAgICAgbV9ldmVudFF1ZXVlLm1fZXZlbnREaXNwYXRjaGVyTWFwLnJlbW92ZShtX2V2
ZW50LmdldCgpKTsKICAgICAgICAgbV9ldmVudC0+dGFyZ2V0KCktPmRpc3BhdGNoRXZlbnQobV9l
dmVudCk7Ci0gICAgICAgIG1fZXZlbnQuY2xlYXIoKTsKKyAgICAgICAgbV9ldmVudCA9IG51bGxw
dHI7CiAgICAgfQogCiAgICAgdm9pZCBjYW5jZWwoKQogICAgIHsKICAgICAgICAgbV9pc0NhbmNl
bGxlZCA9IHRydWU7Ci0gICAgICAgIG1fZXZlbnQuY2xlYXIoKTsKKyAgICAgICAgbV9ldmVudCA9
IG51bGxwdHI7CiAgICAgfQogCiBwcml2YXRlOgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUv
eG1sL1hNTEh0dHBSZXF1ZXN0LmNwcCBiL1NvdXJjZS9XZWJDb3JlL3htbC9YTUxIdHRwUmVxdWVz
dC5jcHAKaW5kZXggYzdlOGMwYi4uNDc1ZDZmYiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUv
eG1sL1hNTEh0dHBSZXF1ZXN0LmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS94bWwvWE1MSHR0cFJl
cXVlc3QuY3BwCkBAIC0yNDUsNyArMjQ1LDcgQEAgQmxvYiogWE1MSHR0cFJlcXVlc3Q6OnJlc3Bv
bnNlQmxvYigpCiAgICAgICAgICAgICBkYXRhLmFwcGVuZChtX2JpbmFyeVJlc3BvbnNlQnVpbGRl
ci0+ZGF0YSgpLCBtX2JpbmFyeVJlc3BvbnNlQnVpbGRlci0+c2l6ZSgpKTsKICAgICAgICAgICAg
IFN0cmluZyBub3JtYWxpemVkQ29udGVudFR5cGUgPSBCbG9iOjpub3JtYWxpemVkQ29udGVudFR5
cGUocmVzcG9uc2VNSU1FVHlwZSgpKTsgLy8gcmVzcG9uc2VNSU1FVHlwZSBkZWZhdWx0cyB0byB0
ZXh0L3htbCB3aGljaCBtYXkgYmUgaW5jb3JyZWN0LgogICAgICAgICAgICAgbV9yZXNwb25zZUJs
b2IgPSBCbG9iOjpjcmVhdGUoV1RGOjptb3ZlKGRhdGEpLCBub3JtYWxpemVkQ29udGVudFR5cGUp
OwotICAgICAgICAgICAgbV9iaW5hcnlSZXNwb25zZUJ1aWxkZXIuY2xlYXIoKTsKKyAgICAgICAg
ICAgIG1fYmluYXJ5UmVzcG9uc2VCdWlsZGVyID0gbnVsbHB0cjsKICAgICAgICAgfSBlbHNlIHsK
ICAgICAgICAgICAgIC8vIElmIHdlIGVycm9yZWQgb3V0IG9yIGdvdCBubyBkYXRhLCB3ZSBzdGls
bCByZXR1cm4gYSBibG9iLCBqdXN0IGFuIGVtcHR5IG9uZS4KICAgICAgICAgICAgIG1fcmVzcG9u
c2VCbG9iID0gQmxvYjo6Y3JlYXRlKCk7CkBAIC0yNjUsNyArMjY1LDcgQEAgQXJyYXlCdWZmZXIq
IFhNTEh0dHBSZXF1ZXN0OjpyZXNwb25zZUFycmF5QnVmZmVyKCkKICAgICAgICAgICAgIG1fcmVz
cG9uc2VBcnJheUJ1ZmZlciA9IG1fYmluYXJ5UmVzcG9uc2VCdWlsZGVyLT5jcmVhdGVBcnJheUJ1
ZmZlcigpOwogICAgICAgICBlbHNlCiAgICAgICAgICAgICBtX3Jlc3BvbnNlQXJyYXlCdWZmZXIg
PSBBcnJheUJ1ZmZlcjo6Y3JlYXRlKG51bGxwdHIsIDApOwotICAgICAgICBtX2JpbmFyeVJlc3Bv
bnNlQnVpbGRlci5jbGVhcigpOworICAgICAgICBtX2JpbmFyeVJlc3BvbnNlQnVpbGRlciA9IG51
bGxwdHI7CiAgICAgfQogCiAgICAgcmV0dXJuIG1fcmVzcG9uc2VBcnJheUJ1ZmZlci5nZXQoKTsK
QEAgLTg2OCw4ICs4NjgsOCBAQCB2b2lkIFhNTEh0dHBSZXF1ZXN0OjpjbGVhclJlc3BvbnNlQnVm
ZmVycygpCiAgICAgbV9jcmVhdGVkRG9jdW1lbnQgPSBmYWxzZTsKICAgICBtX3Jlc3BvbnNlRG9j
dW1lbnQgPSBudWxscHRyOwogICAgIG1fcmVzcG9uc2VCbG9iID0gbnVsbHB0cjsKLSAgICBtX2Jp
bmFyeVJlc3BvbnNlQnVpbGRlci5jbGVhcigpOwotICAgIG1fcmVzcG9uc2VBcnJheUJ1ZmZlci5j
bGVhcigpOworICAgIG1fYmluYXJ5UmVzcG9uc2VCdWlsZGVyID0gbnVsbHB0cjsKKyAgICBtX3Jl
c3BvbnNlQXJyYXlCdWZmZXIgPSBudWxscHRyOwogICAgIG1fcmVzcG9uc2VDYWNoZUlzVmFsaWQg
PSBmYWxzZTsKIH0KIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUveG1sL1hTTFRQcm9jZXNz
b3IuY3BwIGIvU291cmNlL1dlYkNvcmUveG1sL1hTTFRQcm9jZXNzb3IuY3BwCmluZGV4IDA2OWNj
ZWMuLjQ5MWYxMmMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3htbC9YU0xUUHJvY2Vzc29y
LmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS94bWwvWFNMVFByb2Nlc3Nvci5jcHAKQEAgLTE2Miw4
ICsxNjIsOCBAQCB2b2lkIFhTTFRQcm9jZXNzb3I6OnJlbW92ZVBhcmFtZXRlcihjb25zdCBTdHJp
bmcmIC8qbmFtZXNwYWNlVVJJKi8sIGNvbnN0IFN0cmluZwogCiB2b2lkIFhTTFRQcm9jZXNzb3I6
OnJlc2V0KCkKIHsKLSAgICBtX3N0eWxlc2hlZXQuY2xlYXIoKTsKLSAgICBtX3N0eWxlc2hlZXRS
b290Tm9kZS5jbGVhcigpOworICAgIG1fc3R5bGVzaGVldCA9IG51bGxwdHI7CisgICAgbV9zdHls
ZXNoZWV0Um9vdE5vZGUgPSBudWxscHRyOwogICAgIG1fcGFyYW1ldGVycy5jbGVhcigpOwogfQog
CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L21hYy9XZWJDb3JlU3VwcG9ydC9XZWJFZGl0b3JD
bGllbnQubW0gYi9Tb3VyY2UvV2ViS2l0L21hYy9XZWJDb3JlU3VwcG9ydC9XZWJFZGl0b3JDbGll
bnQubW0KaW5kZXggNmNlZDE5NC4uYzE4OGI5ZCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9t
YWMvV2ViQ29yZVN1cHBvcnQvV2ViRWRpdG9yQ2xpZW50Lm1tCisrKyBiL1NvdXJjZS9XZWJLaXQv
bWFjL1dlYkNvcmVTdXBwb3J0L1dlYkVkaXRvckNsaWVudC5tbQpAQCAtMTE0Myw3ICsxMTQzLDcg
QEAgdm9pZCBXZWJFZGl0b3JDbGllbnQ6OmRpZENoZWNrU3VjY2VlZChpbnQgc2VxdWVuY2UsIE5T
QXJyYXkqIHJlc3VsdHMpCiB7CiAgICAgQVNTRVJUX1VOVVNFRChzZXF1ZW5jZSwgc2VxdWVuY2Ug
PT0gbV90ZXh0Q2hlY2tpbmdSZXF1ZXN0LT5kYXRhKCkuc2VxdWVuY2UoKSk7CiAgICAgbV90ZXh0
Q2hlY2tpbmdSZXF1ZXN0LT5kaWRTdWNjZWVkKGNvcmUocmVzdWx0cywgbV90ZXh0Q2hlY2tpbmdS
ZXF1ZXN0LT5kYXRhKCkubWFzaygpKSk7Ci0gICAgbV90ZXh0Q2hlY2tpbmdSZXF1ZXN0LmNsZWFy
KCk7CisgICAgbV90ZXh0Q2hlY2tpbmdSZXF1ZXN0ID0gbnVsbHB0cjsKIH0KICNlbmRpZgogCmRp
ZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L3dpbi9XZWJWaWV3LmNwcCBiL1NvdXJjZS9XZWJLaXQv
d2luL1dlYlZpZXcuY3BwCmluZGV4IDQzNzUyNzEuLmI3OWU2M2MgMTAwNjQ0Ci0tLSBhL1NvdXJj
ZS9XZWJLaXQvd2luL1dlYlZpZXcuY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQvd2luL1dlYlZpZXcu
Y3BwCkBAIC04NTEsOCArODUxLDggQEAgdm9pZCBXZWJWaWV3OjpkZWxldGVCYWNraW5nU3RvcmUo
KQogICAgICAgICBLaWxsVGltZXIobV92aWV3V2luZG93LCBEZWxldGVCYWNraW5nU3RvcmVUaW1l
cik7CiAgICAgICAgIG1fZGVsZXRlQmFja2luZ1N0b3JlVGltZXJBY3RpdmUgPSBmYWxzZTsKICAg
ICB9Ci0gICAgbV9iYWNraW5nU3RvcmVCaXRtYXAuY2xlYXIoKTsKLSAgICBtX2JhY2tpbmdTdG9y
ZURpcnR5UmVnaW9uLmNsZWFyKCk7CisgICAgbV9iYWNraW5nU3RvcmVCaXRtYXAgPSBudWxscHRy
OworICAgIG1fYmFja2luZ1N0b3JlRGlydHlSZWdpb24gPSBudWxscHRyOwogICAgIG1fYmFja2lu
Z1N0b3JlU2l6ZS5jeCA9IG1fYmFja2luZ1N0b3JlU2l6ZS5jeSA9IDA7CiB9CiAKQEAgLTEwNzks
NyArMTA3OSw3IEBAIHZvaWQgV2ViVmlldzo6dXBkYXRlQmFja2luZ1N0b3JlKEZyYW1lVmlldyog
ZnJhbWVWaWV3LCBIREMgZGMsIGJvb2wgYmFja2luZ1N0b3JlCiAgICAgICAgIGlmIChtX3VpRGVs
ZWdhdGVQcml2YXRlKQogICAgICAgICAgICAgbV91aURlbGVnYXRlUHJpdmF0ZS0+d2ViVmlld1Bh
aW50ZWQodGhpcyk7CiAKLSAgICAgICAgbV9iYWNraW5nU3RvcmVEaXJ0eVJlZ2lvbi5jbGVhcigp
OworICAgICAgICBtX2JhY2tpbmdTdG9yZURpcnR5UmVnaW9uID0gbnVsbHB0cjsKICAgICB9CiAK
ICAgICBpZiAoIWRjKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdDIvRGF0YWJhc2VQcm9jZXNz
L0luZGV4ZWREQi9VbmlxdWVJREJEYXRhYmFzZS5jcHAgYi9Tb3VyY2UvV2ViS2l0Mi9EYXRhYmFz
ZVByb2Nlc3MvSW5kZXhlZERCL1VuaXF1ZUlEQkRhdGFiYXNlLmNwcAppbmRleCA2MTk4MDVjLi4z
ZDJjYTViIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0Mi9EYXRhYmFzZVByb2Nlc3MvSW5kZXhl
ZERCL1VuaXF1ZUlEQkRhdGFiYXNlLmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0Mi9EYXRhYmFzZVBy
b2Nlc3MvSW5kZXhlZERCL1VuaXF1ZUlEQkRhdGFiYXNlLmNwcApAQCAtMTQ3LDcgKzE0Nyw3IEBA
IHZvaWQgVW5pcXVlSURCRGF0YWJhc2U6OnNodXRkb3duQmFja2luZ1N0b3JlKFVuaXF1ZUlEQkRh
dGFiYXNlU2h1dGRvd25UeXBlIHR5cGUsCiB7CiAgICAgQVNTRVJUKCFSdW5Mb29wOjppc01haW4o
KSk7CiAKLSAgICBtX2JhY2tpbmdTdG9yZS5jbGVhcigpOworICAgIG1fYmFja2luZ1N0b3JlID0g
bnVsbHB0cjsKIAogICAgIGlmICh0eXBlID09IFVuaXF1ZUlEQkRhdGFiYXNlU2h1dGRvd25UeXBl
OjpEZWxldGVTaHV0ZG93bikgewogICAgICAgICBTdHJpbmcgZGJGaWxlbmFtZSA9IFVuaXF1ZUlE
QkRhdGFiYXNlOjpjYWxjdWxhdGVBYnNvbHV0ZURhdGFiYXNlRmlsZW5hbWUoZGF0YWJhc2VEaXJl
Y3RvcnkpOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdDIvU2hhcmVkL0Nvb3JkaW5hdGVkR3Jh
cGhpY3MvQ29vcmRpbmF0ZWRCYWNraW5nU3RvcmUuY3BwIGIvU291cmNlL1dlYktpdDIvU2hhcmVk
L0Nvb3JkaW5hdGVkR3JhcGhpY3MvQ29vcmRpbmF0ZWRCYWNraW5nU3RvcmUuY3BwCmluZGV4IGI5
YTA1ZjkuLmM2NmQyOGIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQyL1NoYXJlZC9Db29yZGlu
YXRlZEdyYXBoaWNzL0Nvb3JkaW5hdGVkQmFja2luZ1N0b3JlLmNwcAorKysgYi9Tb3VyY2UvV2Vi
S2l0Mi9TaGFyZWQvQ29vcmRpbmF0ZWRHcmFwaGljcy9Db29yZGluYXRlZEJhY2tpbmdTdG9yZS5j
cHAKQEAgLTU1LDcgKzU1LDcgQEAgdm9pZCBDb29yZGluYXRlZEJhY2tpbmdTdG9yZVRpbGU6OnN3
YXBCdWZmZXJzKFRleHR1cmVNYXBwZXIqIHRleHR1cmVNYXBwZXIpCiAgICAgICAgIHRleHR1cmUt
PnJlc2V0KG1fdGlsZVJlY3Quc2l6ZSgpLCBtX3N1cmZhY2UtPnN1cHBvcnRzQWxwaGEoKSk7CiAK
ICAgICBtX3N1cmZhY2UtPmNvcHlUb1RleHR1cmUodGV4dHVyZSwgbV9zb3VyY2VSZWN0LCBtX3N1
cmZhY2VPZmZzZXQpOwotICAgIG1fc3VyZmFjZS5jbGVhcigpOworICAgIG1fc3VyZmFjZSA9IG51
bGxwdHI7CiB9CiAKIHZvaWQgQ29vcmRpbmF0ZWRCYWNraW5nU3RvcmVUaWxlOjpzZXRCYWNrQnVm
ZmVyKGNvbnN0IEludFJlY3QmIHRpbGVSZWN0LCBjb25zdCBJbnRSZWN0JiBzb3VyY2VSZWN0LCBQ
YXNzUmVmUHRyPENvb3JkaW5hdGVkU3VyZmFjZT4gYnVmZmVyLCBjb25zdCBJbnRQb2ludCYgb2Zm
c2V0KQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL0FQSS9lZmwvRXdrVmll
dy5jcHAgYi9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvQVBJL2VmbC9Fd2tWaWV3LmNwcAppbmRl
eCA3N2I1MDFhLi40NTg4NDY0IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3Mv
QVBJL2VmbC9Fd2tWaWV3LmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvQVBJL2Vm
bC9Fd2tWaWV3LmNwcApAQCAtOTQwLDcgKzk0MCw3IEBAIHZvaWQgRXdrVmlldzo6aGlkZUNvbnRl
eHRNZW51KCkKICAgICBpZiAoc2QtPmFwaS0+Y29udGV4dF9tZW51X2hpZGUpCiAgICAgICAgIHNk
LT5hcGktPmNvbnRleHRfbWVudV9oaWRlKHNkKTsKIAotICAgIG1fY29udGV4dE1lbnUuY2xlYXIo
KTsKKyAgICBtX2NvbnRleHRNZW51ID0gbnVsbHB0cjsKIH0KIAogdm9pZCBFd2tWaWV3OjpyZXF1
ZXN0UG9wdXBNZW51KFdLUG9wdXBNZW51TGlzdGVuZXJSZWYgcG9wdXBNZW51TGlzdGVuZXIsIGNv
bnN0IFdLUmVjdCYgcmVjdCwgV0tQb3B1cEl0ZW1UZXh0RGlyZWN0aW9uIHRleHREaXJlY3Rpb24s
IGRvdWJsZSBwYWdlU2NhbGVGYWN0b3IsIFdLQXJyYXlSZWYgaXRlbXMsIGludDMyX3Qgc2VsZWN0
ZWRJbmRleCkKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9JbnNwZWN0b3JT
ZXJ2ZXIvV2ViU29ja2V0U2VydmVyQ29ubmVjdGlvbi5jcHAgYi9Tb3VyY2UvV2ViS2l0Mi9VSVBy
b2Nlc3MvSW5zcGVjdG9yU2VydmVyL1dlYlNvY2tldFNlcnZlckNvbm5lY3Rpb24uY3BwCmluZGV4
IDgwOTdhYzEuLjk0YTI0YzkgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9J
bnNwZWN0b3JTZXJ2ZXIvV2ViU29ja2V0U2VydmVyQ29ubmVjdGlvbi5jcHAKKysrIGIvU291cmNl
L1dlYktpdDIvVUlQcm9jZXNzL0luc3BlY3RvclNlcnZlci9XZWJTb2NrZXRTZXJ2ZXJDb25uZWN0
aW9uLmNwcApAQCAtMTI2LDcgKzEyNiw3IEBAIHZvaWQgV2ViU29ja2V0U2VydmVyQ29ubmVjdGlv
bjo6c2VuZFJhd0RhdGEoY29uc3QgY2hhciogZGF0YSwgc2l6ZV90IGxlbmd0aCkKIHZvaWQgV2Vi
U29ja2V0U2VydmVyQ29ubmVjdGlvbjo6ZGlkQ2xvc2VTb2NrZXRTdHJlYW0oU29ja2V0U3RyZWFt
SGFuZGxlKikKIHsKICAgICAvLyBEZXN0cm95IHRoZSBTb2NrZXRTdHJlYW1IYW5kbGUgbm93IHRv
IHByZXZlbnQgY2xvc2luZyBhbiBhbHJlYWR5IGNsb3NlZCBzb2NrZXQgbGF0ZXIuCi0gICAgbV9z
b2NrZXQuY2xlYXIoKTsKKyAgICBtX3NvY2tldCA9IG51bGxwdHI7CiAKICAgICAvLyBXZWIgU29j
a2V0IE1vZGUuCiAgICAgaWYgKG1fbW9kZSA9PSBXZWJTb2NrZXQpCmRpZmYgLS1naXQgYS9Tb3Vy
Y2UvV2ViS2l0Mi9VSVByb2Nlc3MvTmV0d29yay9DdXN0b21Qcm90b2NvbHMvbWFjL0N1c3RvbVBy
b3RvY29sTWFuYWdlclByb3h5TWFjLm1tIGIvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL05ldHdv
cmsvQ3VzdG9tUHJvdG9jb2xzL21hYy9DdXN0b21Qcm90b2NvbE1hbmFnZXJQcm94eU1hYy5tbQpp
bmRleCA5NDI1Mjk5Li41MTNiMWUwIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nl
c3MvTmV0d29yay9DdXN0b21Qcm90b2NvbHMvbWFjL0N1c3RvbVByb3RvY29sTWFuYWdlclByb3h5
TWFjLm1tCisrKyBiL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9OZXR3b3JrL0N1c3RvbVByb3Rv
Y29scy9tYWMvQ3VzdG9tUHJvdG9jb2xNYW5hZ2VyUHJveHlNYWMubW0KQEAgLTc2LDcgKzc2LDcg
QEAgLSAoaWQpaW5pdFdpdGhDdXN0b21Qcm90b2NvbE1hbmFnZXJQcm94eTooQ3VzdG9tUHJvdG9j
b2xNYW5hZ2VyUHJveHkqKWN1c3RvbVByb3QKIAogLSAodm9pZClkZWFsbG9jCiB7Ci0gICAgX2Nv
bm5lY3Rpb24uY2xlYXIoKTsKKyAgICBfY29ubmVjdGlvbiA9IG51bGxwdHI7CiAgICAgW191cmxD
b25uZWN0aW9uIGNhbmNlbF07CiAgICAgW191cmxDb25uZWN0aW9uIHJlbGVhc2VdOwogICAgIFtz
dXBlciBkZWFsbG9jXTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9pb3Mv
V0tHZW9sb2NhdGlvblByb3ZpZGVySU9TLm1tIGIvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL2lv
cy9XS0dlb2xvY2F0aW9uUHJvdmlkZXJJT1MubW0KaW5kZXggYmI2YmI2MC4uYmRkMTE0YSAxMDA2
NDQKLS0tIGEvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL2lvcy9XS0dlb2xvY2F0aW9uUHJvdmlk
ZXJJT1MubW0KKysrIGIvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL2lvcy9XS0dlb2xvY2F0aW9u
UHJvdmlkZXJJT1MubW0KQEAgLTExOCw3ICsxMTgsNyBAQCAtKHZvaWQpX3N0b3BVcGRhdGluZwog
ewogICAgIF9pc1dlYkNvcmVHZW9sb2NhdGlvbkFjdGl2ZSA9IE5POwogICAgIFtfY29yZUxvY2F0
aW9uUHJvdmlkZXIgc3RvcF07Ci0gICAgX2xhc3RBY3RpdmVQb3NpdGlvbi5jbGVhcigpOworICAg
IF9sYXN0QWN0aXZlUG9zaXRpb24gPSBudWxscHRyOwogfQogCiAtKHZvaWQpX3NldEVuYWJsZUhp
Z2hBY2N1cmFjeTooQk9PTCllbmFibGVIaWdoQWNjdXJhY3kKZGlmZiAtLWdpdCBhL1Rvb2xzL0R1
bXBSZW5kZXJUcmVlL21hYy9EdW1wUmVuZGVyVHJlZS5tbSBiL1Rvb2xzL0R1bXBSZW5kZXJUcmVl
L21hYy9EdW1wUmVuZGVyVHJlZS5tbQppbmRleCBiY2NkNGE5Li4yNzZkZjhiIDEwMDY0NAotLS0g
YS9Ub29scy9EdW1wUmVuZGVyVHJlZS9tYWMvRHVtcFJlbmRlclRyZWUubW0KKysrIGIvVG9vbHMv
RHVtcFJlbmRlclRyZWUvbWFjL0R1bXBSZW5kZXJUcmVlLm1tCkBAIC0yMDY0LDcgKzIwNjQsNyBA
QCBzdGF0aWMgdm9pZCBydW5UZXN0KGNvbnN0IHN0cmluZyYgaW5wdXRMaW5lKQogICAgIEFTU0VS
VChDRkFycmF5R2V0Q291bnQob3BlbldpbmRvd3NSZWYpID09IDEpOwogICAgIEFTU0VSVChDRkFy
cmF5R2V0VmFsdWVBdEluZGV4KG9wZW5XaW5kb3dzUmVmLCAwKSA9PSBbW21haW5GcmFtZSB3ZWJW
aWV3XSB3aW5kb3ddKTsKIAotICAgIGdUZXN0UnVubmVyLmNsZWFyKCk7CisgICAgZ1Rlc3RSdW5u
ZXIgPSBudWxscHRyOwogCiAgICAgaWYgKGlnbm9yZVdlYkNvcmVOb2RlTGVha3MpCiAgICAgICAg
IFtXZWJDb3JlU3RhdGlzdGljcyBzdG9wSWdub3JpbmdXZWJDb3JlTm9kZUxlYWtzXTsKZGlmZiAt
LWdpdCBhL1Rvb2xzL0R1bXBSZW5kZXJUcmVlL3dpbi9EdW1wUmVuZGVyVHJlZS5jcHAgYi9Ub29s
cy9EdW1wUmVuZGVyVHJlZS93aW4vRHVtcFJlbmRlclRyZWUuY3BwCmluZGV4IGQ5ODZjYmYuLmM4
NDM1NDcgMTAwNjQ0Ci0tLSBhL1Rvb2xzL0R1bXBSZW5kZXJUcmVlL3dpbi9EdW1wUmVuZGVyVHJl
ZS5jcHAKKysrIGIvVG9vbHMvRHVtcFJlbmRlclRyZWUvd2luL0R1bXBSZW5kZXJUcmVlLmNwcApA
QCAtMTE4Myw3ICsxMTgzLDcgQEAgc3RhdGljIHZvaWQgcnVuVGVzdChjb25zdCBzdHJpbmcmIGlu
cHV0TGluZSkKIAogZXhpdDoKICAgICByZW1vdmVGb250RmFsbGJhY2tJZlByZXNlbnQoZmFsbGJh
Y2tQYXRoKTsKLSAgICA6OmdUZXN0UnVubmVyLmNsZWFyKCk7CisgICAgOjpnVGVzdFJ1bm5lciA9
IG51bGxwdHI7CiAKICAgICBmcHV0cygiI0VPRlxuIiwgc3RkZXJyKTsKICAgICBmZmx1c2goc3Rk
ZXJyKTsKZGlmZiAtLWdpdCBhL1Rvb2xzL1Rlc3RXZWJLaXRBUEkvVGVzdHMvV1RGL1JlZlB0ci5j
cHAgYi9Ub29scy9UZXN0V2ViS2l0QVBJL1Rlc3RzL1dURi9SZWZQdHIuY3BwCmluZGV4IGZjOTIy
NDYuLmI3MjZkN2QgMTAwNjQ0Ci0tLSBhL1Rvb2xzL1Rlc3RXZWJLaXRBUEkvVGVzdHMvV1RGL1Jl
ZlB0ci5jcHAKKysrIGIvVG9vbHMvVGVzdFdlYktpdEFQSS9UZXN0cy9XVEYvUmVmUHRyLmNwcApA
QCAtMTAyLDcgKzEwMiw3IEBAIFRFU1QoV1RGX1JlZlB0ciwgQmFzaWMpCiAgICAgewogICAgICAg
ICBSZWZQdHI8UmVmTG9nZ2VyPiBwdHIoJmEpOwogICAgICAgICBBU1NFUlRfRVEoJmEsIHB0ci5n
ZXQoKSk7Ci0gICAgICAgIHB0ci5jbGVhcigpOworICAgICAgICBwdHIgPSBudWxscHRyOwogICAg
ICAgICBBU1NFUlRfRVEobnVsbHB0ciwgcHRyLmdldCgpKTsKICAgICB9CiAgICAgQVNTRVJUX1NU
UkVRKCJyZWYoYSkgZGVyZWYoYSkgIiwgdGFrZUxvZ1N0cigpLmNfc3RyKCkpOwo=
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>256031</attachid>
            <date>2015-07-02 13:54:17 -0700</date>
            <delta_ts>2015-07-03 19:09:38 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-146556-20150702135323.patch</filename>
            <type>text/plain</type>
            <size>107549</size>
            <attacher name="Chris Dumez">cdumez</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTg2MjMzCmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlw
dENvcmUvQ2hhbmdlTG9nIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL0NoYW5nZUxvZwppbmRleCAw
ZjM0NmI5YmNmOTcyNTgwYmQ2ZGY4NGY2MjMxMWFjYTBjNTdkMDM0Li40YzliZmY2MjliMzgwM2Yz
NjFmNDIxYmVlMjAwNjJhMTg4MjM5MTAwIDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENv
cmUvQ2hhbmdlTG9nCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9DaGFuZ2VMb2cKQEAgLTEs
MyArMSw0MSBAQAorMjAxNS0wNy0wMiAgQ2hyaXMgRHVtZXogIDxjZHVtZXpAYXBwbGUuY29tPgor
CisgICAgICAgIERyb3AgUmVmUHRyOjpjbGVhcigpIG1ldGhvZAorICAgICAgICBodHRwczovL2J1
Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTQ2NTU2CisKKyAgICAgICAgUmV2aWV3ZWQg
YnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgKiBBUEkvSlNWYWx1ZVJlZi5jcHA6CisgICAg
ICAgIChKU1ZhbHVlVG9TdHJpbmdDb3B5KToKKyAgICAgICAgKiBieXRlY29kZS9DYWxsTGlua0lu
Zm8uY3BwOgorICAgICAgICAoSlNDOjpDYWxsTGlua0luZm86OmNsZWFyU3R1Yik6CisgICAgICAg
ICogYnl0ZWNvZGUvU3RydWN0dXJlU3R1YkluZm8uaDoKKyAgICAgICAgKEpTQzo6U3RydWN0dXJl
U3R1YkluZm86OnJlc2V0KToKKyAgICAgICAgKiBkZmcvREZHR3JhcGguaDoKKyAgICAgICAgKEpT
Qzo6REZHOjpHcmFwaDo6a2lsbEJsb2NrKToKKyAgICAgICAgKiBkZmcvREZHT3BlcmF0aW9ucy5j
cHA6CisgICAgICAgICogaW5zcGVjdG9yL0NvbnNvbGVNZXNzYWdlLmNwcDoKKyAgICAgICAgKElu
c3BlY3Rvcjo6Q29uc29sZU1lc3NhZ2U6OmNsZWFyKToKKyAgICAgICAgKiBpbnNwZWN0b3IvSlNH
bG9iYWxPYmplY3RJbnNwZWN0b3JDb250cm9sbGVyLmNwcDoKKyAgICAgICAgKEluc3BlY3Rvcjo6
SlNHbG9iYWxPYmplY3RJbnNwZWN0b3JDb250cm9sbGVyOjpkaXNjb25uZWN0RnJvbnRlbmQpOgor
ICAgICAgICAqIGluc3BlY3Rvci9hZ2VudHMvSW5zcGVjdG9yQWdlbnQuY3BwOgorICAgICAgICAo
SW5zcGVjdG9yOjpJbnNwZWN0b3JBZ2VudDo6d2lsbERlc3Ryb3lGcm9udGVuZEFuZEJhY2tlbmQp
OgorICAgICAgICAqIGluc3BlY3Rvci9hZ2VudHMvSW5zcGVjdG9yQ29uc29sZUFnZW50LmNwcDoK
KyAgICAgICAgKEluc3BlY3Rvcjo6SW5zcGVjdG9yQ29uc29sZUFnZW50Ojp3aWxsRGVzdHJveUZy
b250ZW5kQW5kQmFja2VuZCk6CisgICAgICAgICogaW5zcGVjdG9yL2FnZW50cy9JbnNwZWN0b3JE
ZWJ1Z2dlckFnZW50LmNwcDoKKyAgICAgICAgKEluc3BlY3Rvcjo6SW5zcGVjdG9yRGVidWdnZXJB
Z2VudDo6d2lsbERlc3Ryb3lGcm9udGVuZEFuZEJhY2tlbmQpOgorICAgICAgICAqIGluc3BlY3Rv
ci9hZ2VudHMvSlNHbG9iYWxPYmplY3RSdW50aW1lQWdlbnQuY3BwOgorICAgICAgICAoSW5zcGVj
dG9yOjpKU0dsb2JhbE9iamVjdFJ1bnRpbWVBZ2VudDo6d2lsbERlc3Ryb3lGcm9udGVuZEFuZEJh
Y2tlbmQpOgorICAgICAgICAqIHJ1bnRpbWUvRXhlY3V0YWJsZS5jcHA6CisgICAgICAgIChKU0M6
OkV4ZWN1dGFibGVCYXNlOjpjbGVhckNvZGUpOgorICAgICAgICAoSlNDOjpFdmFsRXhlY3V0YWJs
ZTo6Y2xlYXJDb2RlKToKKyAgICAgICAgKEpTQzo6UHJvZ3JhbUV4ZWN1dGFibGU6OmNsZWFyQ29k
ZSk6CisgICAgICAgIChKU0M6OkZ1bmN0aW9uRXhlY3V0YWJsZTo6Y2xlYXJDb2RlKToKKyAgICAg
ICAgKiBydW50aW1lL0pTTG9jay5jcHA6CisgICAgICAgIChKU0M6OkpTTG9ja0hvbGRlcjo6fkpT
TG9ja0hvbGRlcik6CisgICAgICAgICogcnVudGltZS9TdHJ1Y3R1cmUuY3BwOgorICAgICAgICAo
SlNDOjpTdHJ1Y3R1cmU6OnBpbik6CisKIDIwMTUtMDctMDIgIE1hcmsgTGFtICA8bWFyay5sYW1A
YXBwbGUuY29tPgogCiAgICAgICAgIEJ1aWxkIGZpeCBmb3IgV2luIEVXUyBib3QuCmRpZmYgLS1n
aXQgYS9Tb3VyY2UvV1RGL0NoYW5nZUxvZyBiL1NvdXJjZS9XVEYvQ2hhbmdlTG9nCmluZGV4IDRi
ZjVjZjdlOGIyYmJlNzVlYzFjM2UyNzUwZWY4Nzg2MzczYTRkZDEuLjRlYmU0ODhlNzA3YmY3NWVk
ZWE1OGIxYjFhYmMyMDFkMTNiNzlhMzEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XVEYvQ2hhbmdlTG9n
CisrKyBiL1NvdXJjZS9XVEYvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMTQgQEAKKzIwMTUtMDctMDIg
IENocmlzIER1bWV6ICA8Y2R1bWV6QGFwcGxlLmNvbT4KKworICAgICAgICBEcm9wIFJlZlB0cjo6
Y2xlYXIoKSBtZXRob2QKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcu
Y2dpP2lkPTE0NjU1NgorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisg
ICAgICAgICogd3RmL1JlZlB0ci5oOgorICAgICAgICAoV1RGOjpSZWZQdHI6OnJlbGVhc2UpOiBE
ZWxldGVkLgorICAgICAgICAoV1RGOjpSZWZQdHI8VD46OmxlYWtSZWYpOiBEZWxldGVkLgorCiAy
MDE1LTA3LTAxICBBbGV4IENocmlzdGVuc2VuICA8YWNocmlzdGVuc2VuQHdlYmtpdC5vcmc+CiAK
ICAgICAgICAgUmUtZW5hYmxlIFdlYkdMIG9uIFdpbkNhaXJvCmRpZmYgLS1naXQgYS9Tb3VyY2Uv
V2ViQ29yZS9DaGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggYTlmNGUz
MmQyMzY0MDg5YmIzMDFhZGIzZjUxYWZiZTYwNTQ3M2YwMy4uYWZlNjZhYWI5Nzc3ZTg4NmQyM2Q2
ODlmNjQzN2M5YTUzNTA3M2I1OSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9n
CisrKyBiL1NvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDIyMyBAQAorMjAxNS0w
Ny0wMiAgQ2hyaXMgRHVtZXogIDxjZHVtZXpAYXBwbGUuY29tPgorCisgICAgICAgIERyb3AgUmVm
UHRyOjpjbGVhcigpIG1ldGhvZAorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93
X2J1Zy5jZ2k/aWQ9MTQ2NTU2CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISku
CisKKyAgICAgICAgKiBNb2R1bGVzL2luZGV4ZWRkYi9JREJDdXJzb3IuY3BwOgorICAgICAgICAo
V2ViQ29yZTo6SURCQ3Vyc29yOjpjbG9zZSk6CisgICAgICAgICogTW9kdWxlcy9pbmRleGVkZGIv
SURCRGF0YWJhc2VCYWNrZW5kLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OklEQkRhdGFiYXNlQmFj
a2VuZDo6dHJhbnNhY3Rpb25GaW5pc2hlZCk6CisgICAgICAgICogTW9kdWxlcy9pbmRleGVkZGIv
SURCT2JqZWN0U3RvcmUuY3BwOgorICAgICAgICAqIE1vZHVsZXMvaW5kZXhlZGRiL0lEQk9wZW5E
QlJlcXVlc3QuY3BwOgorICAgICAgICAoV2ViQ29yZTo6SURCT3BlbkRCUmVxdWVzdDo6ZGlzcGF0
Y2hFdmVudCk6CisgICAgICAgICogTW9kdWxlcy9pbmRleGVkZGIvSURCUmVxdWVzdC5jcHA6Cisg
ICAgICAgIChXZWJDb3JlOjpJREJSZXF1ZXN0OjphYm9ydCk6CisgICAgICAgIChXZWJDb3JlOjpJ
REJSZXF1ZXN0OjpzZXRQZW5kaW5nQ3Vyc29yKToKKyAgICAgICAgKFdlYkNvcmU6OklEQlJlcXVl
c3Q6Om9uRXJyb3IpOgorICAgICAgICAoV2ViQ29yZTo6SURCUmVxdWVzdDo6b25TdWNjZXNzSW50
ZXJuYWwpOgorICAgICAgICAoV2ViQ29yZTo6SURCUmVxdWVzdDo6dHJhbnNhY3Rpb25EaWRGaW5p
c2hBbmREaXNwYXRjaCk6CisgICAgICAgICogTW9kdWxlcy9pbmRleGVkZGIvSURCVHJhbnNhY3Rp
b24uY3BwOgorICAgICAgICAoV2ViQ29yZTo6SURCVHJhbnNhY3Rpb246Ok9wZW5DdXJzb3JOb3Rp
Zmllcjo6Y3Vyc29yRmluaXNoZWQpOgorICAgICAgICAqIE1vZHVsZXMvbWVkaWFzb3VyY2UvTWVk
aWFTb3VyY2UuY3BwOgorICAgICAgICAoV2ViQ29yZTo6TWVkaWFTb3VyY2U6OnNldFJlYWR5U3Rh
dGUpOgorICAgICAgICAoV2ViQ29yZTo6TWVkaWFTb3VyY2U6OnN0b3ApOgorICAgICAgICAqIE1v
ZHVsZXMvbWVkaWFzdHJlYW0vUlRDU2Vzc2lvbkRlc2NyaXB0aW9uUmVxdWVzdEltcGwuY3BwOgor
ICAgICAgICAoV2ViQ29yZTo6UlRDU2Vzc2lvbkRlc2NyaXB0aW9uUmVxdWVzdEltcGw6OmNsZWFy
KToKKyAgICAgICAgKiBNb2R1bGVzL21lZGlhc3RyZWFtL1JUQ1N0YXRzUmVxdWVzdEltcGwuY3Bw
OgorICAgICAgICAoV2ViQ29yZTo6UlRDU3RhdHNSZXF1ZXN0SW1wbDo6Y2xlYXIpOgorICAgICAg
ICAqIE1vZHVsZXMvbWVkaWFzdHJlYW0vUlRDVm9pZFJlcXVlc3RJbXBsLmNwcDoKKyAgICAgICAg
KFdlYkNvcmU6OlJUQ1ZvaWRSZXF1ZXN0SW1wbDo6Y2xlYXIpOgorICAgICAgICAqIE1vZHVsZXMv
d2ViYXVkaW8vQXVkaW9Db250ZXh0LmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OkF1ZGlvQ29udGV4
dDo6Y2xlYXIpOgorICAgICAgICAqIE1vZHVsZXMvd2ViZGF0YWJhc2UvU1FMVHJhbnNhY3Rpb25C
YWNrZW5kLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OlNRTFRyYW5zYWN0aW9uQmFja2VuZDo6cmVs
ZWFzZU9yaWdpbkxvY2tJZk5lZWRlZCk6CisgICAgICAgICogTW9kdWxlcy93ZWJzb2NrZXRzL1dv
cmtlclRocmVhZGFibGVXZWJTb2NrZXRDaGFubmVsLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6Oldv
cmtlclRocmVhZGFibGVXZWJTb2NrZXRDaGFubmVsOjpkaXNjb25uZWN0KToKKyAgICAgICAgKiBi
aW5kaW5ncy9qcy9XZWJDb3JlSlNDbGllbnREYXRhLmg6CisgICAgICAgIChXZWJDb3JlOjpXZWJD
b3JlSlNDbGllbnREYXRhOjp+V2ViQ29yZUpTQ2xpZW50RGF0YSk6CisgICAgICAgICogYmluZGlu
Z3MvanMvV29ya2VyU2NyaXB0Q29udHJvbGxlci5jcHA6CisgICAgICAgIChXZWJDb3JlOjpXb3Jr
ZXJTY3JpcHRDb250cm9sbGVyOjp+V29ya2VyU2NyaXB0Q29udHJvbGxlcik6CisgICAgICAgICog
Y29udGVudGV4dGVuc2lvbnMvQ29udGVudEV4dGVuc2lvblBhcnNlci5jcHA6CisgICAgICAgIChX
ZWJDb3JlOjpDb250ZW50RXh0ZW5zaW9uczo6cGFyc2VSdWxlTGlzdCk6CisgICAgICAgICogY3Nz
L0NTU1BhcnNlci5jcHA6CisgICAgICAgIChXZWJDb3JlOjpDU1NQYXJzZXI6OnBhcnNlRmlsbFBv
c2l0aW9uKToKKyAgICAgICAgKFdlYkNvcmU6OkNTU1BhcnNlcjo6cGFyc2UyVmFsdWVzRmlsbFBv
c2l0aW9uKToKKyAgICAgICAgKFdlYkNvcmU6OkNTU1BhcnNlcjo6cG9wUnVsZURhdGEpOgorICAg
ICAgICAoV2ViQ29yZTo6Q1NTUGFyc2VyOjptYXJrUnVsZUJvZHlTdGFydCk6CisgICAgICAgICog
ZG9tL0RvY3VtZW50LmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OkRvY3VtZW50OjpkZXRhY2hQYXJz
ZXIpOgorICAgICAgICAoV2ViQ29yZTo6RG9jdW1lbnQ6OmNsZWFyU2NyaXB0ZWRBbmltYXRpb25D
b250cm9sbGVyKToKKyAgICAgICAgKFdlYkNvcmU6OkRvY3VtZW50Ojp1cGRhdGVIb3ZlckFjdGl2
ZVN0YXRlKToKKyAgICAgICAgKiBkb20vRG9jdW1lbnRNYXJrZXIuaDoKKyAgICAgICAgKFdlYkNv
cmU6OkRvY3VtZW50TWFya2VyOjpjbGVhckRldGFpbHMpOgorICAgICAgICAqIGRvbS9FbGVtZW50
LmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OkVsZW1lbnQ6OmNsb25lQXR0cmlidXRlc0Zyb21FbGVt
ZW50KToKKyAgICAgICAgKiBkb20vTm9kZUl0ZXJhdG9yLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6
Ok5vZGVJdGVyYXRvcjo6Tm9kZVBvaW50ZXI6OmNsZWFyKToKKyAgICAgICAgKFdlYkNvcmU6Ok5v
ZGVJdGVyYXRvcjo6ZGV0YWNoKToKKyAgICAgICAgKiBkb20vUG9zaXRpb24uaDoKKyAgICAgICAg
KFdlYkNvcmU6OlBvc2l0aW9uOjpjbGVhcik6CisgICAgICAgICogZG9tL1JhbmdlQm91bmRhcnlQ
b2ludC5oOgorICAgICAgICAoV2ViQ29yZTo6UmFuZ2VCb3VuZGFyeVBvaW50OjpjbGVhcik6Cisg
ICAgICAgICogZG9tL1NwYWNlU3BsaXRTdHJpbmcuaDoKKyAgICAgICAgKFdlYkNvcmU6OlNwYWNl
U3BsaXRTdHJpbmc6OmNsZWFyKToKKyAgICAgICAgKiBkb20vU3R5bGVkRWxlbWVudC5jcHA6Cisg
ICAgICAgIChXZWJDb3JlOjpTdHlsZWRFbGVtZW50OjpzZXRJbmxpbmVTdHlsZUZyb21TdHJpbmcp
OgorICAgICAgICAoV2ViQ29yZTo6U3R5bGVkRWxlbWVudDo6c3R5bGVBdHRyaWJ1dGVDaGFuZ2Vk
KToKKyAgICAgICAgKiBlZGl0aW5nL0FsdGVybmF0aXZlVGV4dENvbnRyb2xsZXIuY3BwOgorICAg
ICAgICAoV2ViQ29yZTo6QWx0ZXJuYXRpdmVUZXh0Q29udHJvbGxlcjo6c3RhcnRBbHRlcm5hdGl2
ZVRleHRVSVRpbWVyKToKKyAgICAgICAgKFdlYkNvcmU6OkFsdGVybmF0aXZlVGV4dENvbnRyb2xs
ZXI6OnN0b3BBbHRlcm5hdGl2ZVRleHRVSVRpbWVyKToKKyAgICAgICAgKFdlYkNvcmU6OkFsdGVy
bmF0aXZlVGV4dENvbnRyb2xsZXI6OmFwcGx5UGVuZGluZ0NvcnJlY3Rpb24pOgorICAgICAgICAo
V2ViQ29yZTo6QWx0ZXJuYXRpdmVUZXh0Q29udHJvbGxlcjo6dGltZXJGaXJlZCk6CisgICAgICAg
IChXZWJDb3JlOjpBbHRlcm5hdGl2ZVRleHRDb250cm9sbGVyOjpoYW5kbGVBbHRlcm5hdGl2ZVRl
eHRVSVJlc3VsdCk6CisgICAgICAgICogZWRpdGluZy9FZGl0aW5nU3R5bGUuY3BwOgorICAgICAg
ICAoV2ViQ29yZTo6RWRpdGluZ1N0eWxlOjpjbGVhcik6CisgICAgICAgICogZWRpdGluZy9FZGl0
b3IuY3BwOgorICAgICAgICAoV2ViQ29yZTo6RWRpdG9yOjpjbGVhckxhc3RFZGl0Q29tbWFuZCk6
CisgICAgICAgICogZWRpdGluZy9GcmFtZVNlbGVjdGlvbi5jcHA6CisgICAgICAgIChXZWJDb3Jl
OjpGcmFtZVNlbGVjdGlvbjo6cHJlcGFyZUZvckRlc3RydWN0aW9uKToKKyAgICAgICAgKiBlZGl0
aW5nL0ZyYW1lU2VsZWN0aW9uLmg6CisgICAgICAgIChXZWJDb3JlOjpGcmFtZVNlbGVjdGlvbjo6
Y2xlYXJUeXBpbmdTdHlsZSk6CisgICAgICAgICogZWRpdGluZy9TcGVsbENoZWNrZXIuY3BwOgor
ICAgICAgICAoV2ViQ29yZTo6U3BlbGxDaGVja2VyOjpkaWRDaGVjayk6CisgICAgICAgICogaHRt
bC9CYXNlQ2hvb3Nlck9ubHlEYXRlQW5kVGltZUlucHV0VHlwZS5jcHA6CisgICAgICAgIChXZWJD
b3JlOjpCYXNlQ2hvb3Nlck9ubHlEYXRlQW5kVGltZUlucHV0VHlwZTo6ZGlkRW5kQ2hvb3Nlcik6
CisgICAgICAgICogaHRtbC9GaWxlSW5wdXRUeXBlLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OkZp
bGVJbnB1dFR5cGU6OnNldFZhbHVlKToKKyAgICAgICAgKiBodG1sL0hUTUxDYW52YXNFbGVtZW50
LmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OkhUTUxDYW52YXNFbGVtZW50OjpjbGVhclByZXNlbnRh
dGlvbkNvcHkpOgorICAgICAgICAoV2ViQ29yZTo6SFRNTENhbnZhc0VsZW1lbnQ6OmNsZWFyQ29w
aWVkSW1hZ2UpOgorICAgICAgICAqIGh0bWwvSFRNTFBsdWdJbkVsZW1lbnQuY3BwOgorICAgICAg
ICAoV2ViQ29yZTo6SFRNTFBsdWdJbkVsZW1lbnQ6OndpbGxEZXRhY2hSZW5kZXJlcnMpOgorICAg
ICAgICAoV2ViQ29yZTo6SFRNTFBsdWdJbkVsZW1lbnQ6OnJlc2V0SW5zdGFuY2UpOgorICAgICAg
ICAqIGh0bWwvVGV4dEZpZWxkSW5wdXRUeXBlLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OlRleHRG
aWVsZElucHV0VHlwZTo6dXBkYXRlUGxhY2Vob2xkZXJUZXh0KToKKyAgICAgICAgKiBodG1sL2Nh
bnZhcy9XZWJHTFJlbmRlcmluZ0NvbnRleHRCYXNlLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6Oldl
YkdMUmVuZGVyaW5nQ29udGV4dEJhc2U6OmRlc3Ryb3lHcmFwaGljc0NvbnRleHQzRCk6CisgICAg
ICAgICogaW5zcGVjdG9yL0luc3BlY3RvckFwcGxpY2F0aW9uQ2FjaGVBZ2VudC5jcHA6CisgICAg
ICAgIChXZWJDb3JlOjpJbnNwZWN0b3JBcHBsaWNhdGlvbkNhY2hlQWdlbnQ6OndpbGxEZXN0cm95
RnJvbnRlbmRBbmRCYWNrZW5kKToKKyAgICAgICAgKiBpbnNwZWN0b3IvSW5zcGVjdG9yQ1NTQWdl
bnQuY3BwOgorICAgICAgICAoV2ViQ29yZTo6SW5zcGVjdG9yQ1NTQWdlbnQ6OndpbGxEZXN0cm95
RnJvbnRlbmRBbmRCYWNrZW5kKToKKyAgICAgICAgKiBpbnNwZWN0b3IvSW5zcGVjdG9yQ29udHJv
bGxlci5jcHA6CisgICAgICAgIChXZWJDb3JlOjpJbnNwZWN0b3JDb250cm9sbGVyOjpkaXNjb25u
ZWN0RnJvbnRlbmQpOgorICAgICAgICAqIGluc3BlY3Rvci9JbnNwZWN0b3JET01BZ2VudC5jcHA6
CisgICAgICAgIChXZWJDb3JlOjpJbnNwZWN0b3JET01BZ2VudDo6d2lsbERlc3Ryb3lGcm9udGVu
ZEFuZEJhY2tlbmQpOgorICAgICAgICAqIGluc3BlY3Rvci9JbnNwZWN0b3JET01EZWJ1Z2dlckFn
ZW50LmNwcDoKKyAgICAgICAgKFdlYkNvcmU6Okluc3BlY3RvckRPTURlYnVnZ2VyQWdlbnQ6Ondp
bGxEZXN0cm95RnJvbnRlbmRBbmRCYWNrZW5kKToKKyAgICAgICAgKiBpbnNwZWN0b3IvSW5zcGVj
dG9yRE9NU3RvcmFnZUFnZW50LmNwcDoKKyAgICAgICAgKFdlYkNvcmU6Okluc3BlY3RvckRPTVN0
b3JhZ2VBZ2VudDo6d2lsbERlc3Ryb3lGcm9udGVuZEFuZEJhY2tlbmQpOgorICAgICAgICAqIGlu
c3BlY3Rvci9JbnNwZWN0b3JEYXRhYmFzZUFnZW50LmNwcDoKKyAgICAgICAgKFdlYkNvcmU6Oklu
c3BlY3RvckRhdGFiYXNlQWdlbnQ6OndpbGxEZXN0cm95RnJvbnRlbmRBbmRCYWNrZW5kKToKKyAg
ICAgICAgKiBpbnNwZWN0b3IvSW5zcGVjdG9ySW5kZXhlZERCQWdlbnQuY3BwOgorICAgICAgICAo
V2ViQ29yZTo6SW5zcGVjdG9ySW5kZXhlZERCQWdlbnQ6OndpbGxEZXN0cm95RnJvbnRlbmRBbmRC
YWNrZW5kKToKKyAgICAgICAgKiBpbnNwZWN0b3IvSW5zcGVjdG9yTGF5ZXJUcmVlQWdlbnQuY3Bw
OgorICAgICAgICAoV2ViQ29yZTo6SW5zcGVjdG9yTGF5ZXJUcmVlQWdlbnQ6OndpbGxEZXN0cm95
RnJvbnRlbmRBbmRCYWNrZW5kKToKKyAgICAgICAgKiBpbnNwZWN0b3IvSW5zcGVjdG9yT3Zlcmxh
eS5jcHA6CisgICAgICAgIChXZWJDb3JlOjpJbnNwZWN0b3JPdmVybGF5OjpoaWRlSGlnaGxpZ2h0
KToKKyAgICAgICAgKFdlYkNvcmU6Okluc3BlY3Rvck92ZXJsYXk6OmhpZ2hsaWdodE5vZGVMaXN0
KToKKyAgICAgICAgKFdlYkNvcmU6Okluc3BlY3Rvck92ZXJsYXk6OmhpZ2hsaWdodE5vZGUpOgor
ICAgICAgICAqIGluc3BlY3Rvci9JbnNwZWN0b3JQYWdlQWdlbnQuY3BwOgorICAgICAgICAoV2Vi
Q29yZTo6SW5zcGVjdG9yUGFnZUFnZW50Ojp3aWxsRGVzdHJveUZyb250ZW5kQW5kQmFja2VuZCk6
CisgICAgICAgIChXZWJDb3JlOjpJbnNwZWN0b3JQYWdlQWdlbnQ6OmRpc2FibGUpOgorICAgICAg
ICAqIGluc3BlY3Rvci9JbnNwZWN0b3JSZXBsYXlBZ2VudC5jcHA6CisgICAgICAgIChXZWJDb3Jl
OjpJbnNwZWN0b3JSZXBsYXlBZ2VudDo6d2lsbERlc3Ryb3lGcm9udGVuZEFuZEJhY2tlbmQpOgor
ICAgICAgICAqIGluc3BlY3Rvci9JbnNwZWN0b3JSZXNvdXJjZUFnZW50LmNwcDoKKyAgICAgICAg
KFdlYkNvcmU6Okluc3BlY3RvclJlc291cmNlQWdlbnQ6OndpbGxEZXN0cm95RnJvbnRlbmRBbmRC
YWNrZW5kKToKKyAgICAgICAgKiBpbnNwZWN0b3IvSW5zcGVjdG9yU3R5bGVTaGVldC5jcHA6Cisg
ICAgICAgIChXZWJDb3JlOjpJbnNwZWN0b3JTdHlsZVNoZWV0Rm9ySW5saW5lU3R5bGU6OmRpZE1v
ZGlmeUVsZW1lbnRBdHRyaWJ1dGUpOgorICAgICAgICAoV2ViQ29yZTo6SW5zcGVjdG9yU3R5bGVT
aGVldEZvcklubGluZVN0eWxlOjpzZXRTdHlsZVRleHQpOgorICAgICAgICAoV2ViQ29yZTo6SW5z
cGVjdG9yU3R5bGVTaGVldEZvcklubGluZVN0eWxlOjplbnN1cmVQYXJzZWREYXRhUmVhZHkpOgor
ICAgICAgICAqIGluc3BlY3Rvci9JbnNwZWN0b3JUaW1lbGluZUFnZW50LmNwcDoKKyAgICAgICAg
KFdlYkNvcmU6Okluc3BlY3RvclRpbWVsaW5lQWdlbnQ6OndpbGxEZXN0cm95RnJvbnRlbmRBbmRC
YWNrZW5kKToKKyAgICAgICAgKiBpbnNwZWN0b3IvSW5zcGVjdG9yV29ya2VyQWdlbnQuY3BwOgor
ICAgICAgICAoV2ViQ29yZTo6SW5zcGVjdG9yV29ya2VyQWdlbnQ6OndpbGxEZXN0cm95RnJvbnRl
bmRBbmRCYWNrZW5kKToKKyAgICAgICAgKiBpbnNwZWN0b3IvUGFnZVJ1bnRpbWVBZ2VudC5jcHA6
CisgICAgICAgIChXZWJDb3JlOjpQYWdlUnVudGltZUFnZW50Ojp3aWxsRGVzdHJveUZyb250ZW5k
QW5kQmFja2VuZCk6CisgICAgICAgICogaW5zcGVjdG9yL1dlYkluamVjdGVkU2NyaXB0TWFuYWdl
ci5jcHA6CisgICAgICAgIChXZWJDb3JlOjpXZWJJbmplY3RlZFNjcmlwdE1hbmFnZXI6OmRpc2Nv
bm5lY3QpOgorICAgICAgICAqIGluc3BlY3Rvci9Xb3JrZXJJbnNwZWN0b3JDb250cm9sbGVyLmNw
cDoKKyAgICAgICAgKFdlYkNvcmU6Oldvcmtlckluc3BlY3RvckNvbnRyb2xsZXI6OmRpc2Nvbm5l
Y3RGcm9udGVuZCk6CisgICAgICAgICogaW5zcGVjdG9yL1dvcmtlclJ1bnRpbWVBZ2VudC5jcHA6
CisgICAgICAgIChXZWJDb3JlOjpXb3JrZXJSdW50aW1lQWdlbnQ6OndpbGxEZXN0cm95RnJvbnRl
bmRBbmRCYWNrZW5kKToKKyAgICAgICAgKiBsb2FkZXIvRnJhbWVMb2FkZXIuY3BwOgorICAgICAg
ICAoV2ViQ29yZTo6RnJhbWVMb2FkZXI6OmRpZEJlZ2luRG9jdW1lbnQpOgorICAgICAgICAqIGxv
YWRlci9jYWNoZS9DYWNoZWRDU1NTdHlsZVNoZWV0LmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OkNh
Y2hlZENTU1N0eWxlU2hlZXQ6OmRlc3Ryb3lEZWNvZGVkRGF0YSk6CisgICAgICAgIChXZWJDb3Jl
OjpDYWNoZWRDU1NTdHlsZVNoZWV0OjpyZXN0b3JlUGFyc2VkU3R5bGVTaGVldCk6CisgICAgICAg
ICogbG9hZGVyL2NhY2hlL0NhY2hlZEltYWdlLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OkNhY2hl
ZEltYWdlOjpjbGVhckltYWdlKToKKyAgICAgICAgKiBsb2FkZXIvY2FjaGUvQ2FjaGVkUmF3UmVz
b3VyY2UuY3BwOgorICAgICAgICAoV2ViQ29yZTo6Q2FjaGVkUmF3UmVzb3VyY2U6OmNsZWFyKToK
KyAgICAgICAgKiBsb2FkZXIvY2FjaGUvQ2FjaGVkUmVzb3VyY2UuY3BwOgorICAgICAgICAoV2Vi
Q29yZTo6Q2FjaGVkUmVzb3VyY2U6OmVycm9yKToKKyAgICAgICAgKiBsb2FkZXIvaWNvbi9JY29u
UmVjb3JkLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6Okljb25SZWNvcmQ6OnNldEltYWdlRGF0YSk6
CisgICAgICAgICogcGFnZS9FdmVudEhhbmRsZXIuY3BwOgorICAgICAgICAoV2ViQ29yZTo6RXZl
bnRIYW5kbGVyOjpjbGVhcik6CisgICAgICAgIChXZWJDb3JlOjpFdmVudEhhbmRsZXI6OmhhbmRs
ZVRvdWNoRXZlbnQpOgorICAgICAgICAqIHBhZ2UvUGFnZS5jcHA6CisgICAgICAgIChXZWJDb3Jl
OjpQYWdlOjpyZWZyZXNoUGx1Z2lucyk6CisgICAgICAgICogcGxhdGZvcm0vYXVkaW8vbWFjL0NB
UmluZ0J1ZmZlci5jcHA6CisgICAgICAgIChXZWJDb3JlOjpDQVJpbmdCdWZmZXI6OmRlYWxsb2Nh
dGUpOgorICAgICAgICAqIHBsYXRmb3JtL2dyYXBoaWNzL0ZvbnQuY3BwOgorICAgICAgICAoV2Vi
Q29yZTo6Rm9udDo6bWF0aERhdGEpOgorICAgICAgICAqIHBsYXRmb3JtL2dyYXBoaWNzL0ZvbnRD
YWNoZS5jcHA6CisgICAgICAgIChXZWJDb3JlOjpGb250Q2FjaGU6OmdldFZlcnRpY2FsRGF0YSk6
CisgICAgICAgICogcGxhdGZvcm0vZ3JhcGhpY3MvR3JhcGhpY3NDb250ZXh0LmNwcDoKKyAgICAg
ICAgKFdlYkNvcmU6OkdyYXBoaWNzQ29udGV4dDo6c2V0U3Ryb2tlQ29sb3IpOgorICAgICAgICAo
V2ViQ29yZTo6R3JhcGhpY3NDb250ZXh0OjpzZXRGaWxsQ29sb3IpOgorICAgICAgICAoV2ViQ29y
ZTo6R3JhcGhpY3NDb250ZXh0OjpzZXRTdHJva2VQYXR0ZXJuKToKKyAgICAgICAgKFdlYkNvcmU6
OkdyYXBoaWNzQ29udGV4dDo6c2V0RmlsbFBhdHRlcm4pOgorICAgICAgICAoV2ViQ29yZTo6R3Jh
cGhpY3NDb250ZXh0OjpzZXRTdHJva2VHcmFkaWVudCk6CisgICAgICAgIChXZWJDb3JlOjpHcmFw
aGljc0NvbnRleHQ6OnNldEZpbGxHcmFkaWVudCk6CisgICAgICAgICogcGxhdGZvcm0vZ3JhcGhp
Y3MvY2Fpcm8vQmFja2luZ1N0b3JlQmFja2VuZENhaXJvWDExLmNwcDoKKyAgICAgICAgKFdlYkNv
cmU6OkJhY2tpbmdTdG9yZUJhY2tlbmRDYWlyb1gxMTo6fkJhY2tpbmdTdG9yZUJhY2tlbmRDYWly
b1gxMSk6CisgICAgICAgICogcGxhdGZvcm0vZ3JhcGhpY3MvY2Fpcm8vQml0bWFwSW1hZ2VDYWly
by5jcHA6CisgICAgICAgIChXZWJDb3JlOjpGcmFtZURhdGE6OmNsZWFyKToKKyAgICAgICAgKiBw
bGF0Zm9ybS9ncmFwaGljcy9maWx0ZXJzL0ZpbHRlckVmZmVjdC5jcHA6CisgICAgICAgIChXZWJD
b3JlOjpGaWx0ZXJFZmZlY3Q6OmNsZWFyUmVzdWx0KToKKyAgICAgICAgKFdlYkNvcmU6OkZpbHRl
ckVmZmVjdDo6dHJhbnNmb3JtUmVzdWx0Q29sb3JTcGFjZSk6CisgICAgICAgICogcGxhdGZvcm0v
Z3JhcGhpY3MvZ3N0cmVhbWVyL0ltYWdlR1N0cmVhbWVyQ2Fpcm8uY3BwOgorICAgICAgICAoSW1h
Z2VHU3RyZWFtZXI6On5JbWFnZUdTdHJlYW1lcik6CisgICAgICAgICogcGxhdGZvcm0vZ3JhcGhp
Y3MvdGV4bWFwL0JpdG1hcFRleHR1cmVHTC5jcHA6CisgICAgICAgIChXZWJDb3JlOjpCaXRtYXBU
ZXh0dXJlR0w6OmFwcGx5RmlsdGVycyk6CisgICAgICAgICogcGxhdGZvcm0vZ3JhcGhpY3MvdGV4
bWFwL1RleHR1cmVNYXBwZXJHTC5jcHA6CisgICAgICAgIChXZWJDb3JlOjpUZXh0dXJlTWFwcGVy
R0w6OmJpbmREZWZhdWx0U3VyZmFjZSk6CisgICAgICAgICogcGxhdGZvcm0vZ3JhcGhpY3MvdGV4
bWFwL1RleHR1cmVNYXBwZXJMYXllci5jcHA6CisgICAgICAgIChXZWJDb3JlOjpUZXh0dXJlTWFw
cGVyTGF5ZXI6OnBhaW50V2l0aEludGVybWVkaWF0ZVN1cmZhY2UpOgorICAgICAgICAqIHBsYXRm
b3JtL2dyYXBoaWNzL3RleG1hcC9UZXh0dXJlTWFwcGVyVGlsZWRCYWNraW5nU3RvcmUuY3BwOgor
ICAgICAgICAoV2ViQ29yZTo6VGV4dHVyZU1hcHBlclRpbGVkQmFja2luZ1N0b3JlOjp1cGRhdGVD
b250ZW50c0Zyb21JbWFnZUlmTmVlZGVkKToKKyAgICAgICAgKiBwbGF0Zm9ybS9ncmFwaGljcy90
ZXhtYXAvY29vcmRpbmF0ZWQvQ29vcmRpbmF0ZWRHcmFwaGljc0xheWVyLmNwcDoKKyAgICAgICAg
KFdlYkNvcmU6OkNvb3JkaW5hdGVkR3JhcGhpY3NMYXllcjo6cmVsZWFzZUltYWdlQmFja2luZ0lm
TmVlZGVkKToKKyAgICAgICAgKiBwbGF0Zm9ybS9ncmFwaGljcy90ZXhtYXAvY29vcmRpbmF0ZWQv
Q29vcmRpbmF0ZWRJbWFnZUJhY2tpbmcuY3BwOgorICAgICAgICAoV2ViQ29yZTo6Q29vcmRpbmF0
ZWRJbWFnZUJhY2tpbmc6OnJlbGVhc2VTdXJmYWNlSWZOZWVkZWQpOgorICAgICAgICAqIHBsYXRm
b3JtL2d0ay9HYW1lcGFkc0d0ay5jcHA6CisgICAgICAgIChXZWJDb3JlOjpHYW1lcGFkc0d0azo6
dW5yZWdpc3RlckRldmljZSk6CisgICAgICAgICogcmVuZGVyaW5nL0lubGluZUZsb3dCb3guY3Bw
OgorICAgICAgICAoV2ViQ29yZTo6SW5saW5lRmxvd0JveDo6Y29tcHV0ZU92ZXJmbG93KToKKyAg
ICAgICAgKiByZW5kZXJpbmcvUmVuZGVyQm94LmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OlJlbmRl
ckJveDo6Y2xlYXJPdmVyZmxvdyk6CisgICAgICAgICogcmVuZGVyaW5nL1JlbmRlckJveFJlZ2lv
bkluZm8uaDoKKyAgICAgICAgKFdlYkNvcmU6OlJlbmRlckJveFJlZ2lvbkluZm86OmNsZWFyT3Zl
cmZsb3cpOgorICAgICAgICAqIHJlbmRlcmluZy9zdHlsZS9GaWxsTGF5ZXIuaDoKKyAgICAgICAg
KFdlYkNvcmU6OkZpbGxMYXllcjo6Y2xlYXJNYXNrSW1hZ2UpOgorICAgICAgICAoV2ViQ29yZTo6
RmlsbExheWVyOjpjbGVhckltYWdlKToKKyAgICAgICAgKiBzdmcvU1ZHVFJlZkVsZW1lbnQuY3Bw
OgorICAgICAgICAoV2ViQ29yZTo6U1ZHVFJlZlRhcmdldEV2ZW50TGlzdGVuZXI6OmRldGFjaCk6
CisgICAgICAgICogdGVzdGluZy9JbnRlcm5hbHMuY3BwOgorICAgICAgICAoV2ViQ29yZTo6SW50
ZXJuYWxzOjpjbG9zZUR1bW15SW5zcGVjdG9yRnJvbnRlbmQpOgorICAgICAgICAqIHdvcmtlcnMv
V29ya2VyRXZlbnRRdWV1ZS5jcHA6CisgICAgICAgIChXZWJDb3JlOjpXb3JrZXJFdmVudFF1ZXVl
OjpFdmVudERpc3BhdGNoZXI6OmRpc3BhdGNoKToKKyAgICAgICAgKFdlYkNvcmU6OldvcmtlckV2
ZW50UXVldWU6OkV2ZW50RGlzcGF0Y2hlcjo6Y2FuY2VsKToKKyAgICAgICAgKiB4bWwvWE1MSHR0
cFJlcXVlc3QuY3BwOgorICAgICAgICAoV2ViQ29yZTo6WE1MSHR0cFJlcXVlc3Q6OnJlc3BvbnNl
QmxvYik6CisgICAgICAgIChXZWJDb3JlOjpYTUxIdHRwUmVxdWVzdDo6cmVzcG9uc2VBcnJheUJ1
ZmZlcik6CisgICAgICAgIChXZWJDb3JlOjpYTUxIdHRwUmVxdWVzdDo6Y2xlYXJSZXNwb25zZUJ1
ZmZlcnMpOgorICAgICAgICAqIHhtbC9YU0xUUHJvY2Vzc29yLmNwcDoKKyAgICAgICAgKFdlYkNv
cmU6OlhTTFRQcm9jZXNzb3I6OnJlc2V0KToKKwogMjAxNS0wNy0wMiAgQnJhZHkgRWlkc29uICA8
YmVpZHNvbkBhcHBsZS5jb20+CiAKICAgICAgICAgQWRkIHByZWZlcmVuY2UgdG8gZGlzYWJsZSBh
bGwgaHR0cC1lcXVpdi4KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvbWFjL0NoYW5nZUxvZyBi
L1NvdXJjZS9XZWJLaXQvbWFjL0NoYW5nZUxvZwppbmRleCAzNzljMWZjNmIwNTEzOTMwZmJlMjU0
ZTM3MjgxMTI0ZTk0NWRmN2FhLi44ZmRjYzk3ZDRhNDgxNzAzNTMzNDRiMzc0MTAxZWFiZDI5MTY4
MzFiIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L21hYy9DaGFuZ2VMb2cKKysrIGIvU291cmNl
L1dlYktpdC9tYWMvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMTMgQEAKKzIwMTUtMDctMDIgIENocmlz
IER1bWV6ICA8Y2R1bWV6QGFwcGxlLmNvbT4KKworICAgICAgICBEcm9wIFJlZlB0cjo6Y2xlYXIo
KSBtZXRob2QKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lk
PTE0NjU1NgorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAg
ICogV2ViQ29yZVN1cHBvcnQvV2ViRWRpdG9yQ2xpZW50Lm1tOgorICAgICAgICAoV2ViRWRpdG9y
Q2xpZW50OjpkaWRDaGVja1N1Y2NlZWQpOgorCiAyMDE1LTA3LTAyICBCcmFkeSBFaWRzb24gIDxi
ZWlkc29uQGFwcGxlLmNvbT4KIAogICAgICAgICBBZGQgcHJlZmVyZW5jZSB0byBkaXNhYmxlIGFs
bCBodHRwLWVxdWl2LgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC93aW4vQ2hhbmdlTG9nIGIv
U291cmNlL1dlYktpdC93aW4vQ2hhbmdlTG9nCmluZGV4IDExNDI4NThhYzk0YjU2NmM0YjBmYzM5
YmI4NWNkNGViMDdkOTllZmQuLjA3Y2ExN2E2N2Q1ZGNiMTEzZjU3MzJjNjgwZDE5MTE0MzMwOTM1
YTAgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvd2luL0NoYW5nZUxvZworKysgYi9Tb3VyY2Uv
V2ViS2l0L3dpbi9DaGFuZ2VMb2cKQEAgLTEsMyArMSwxNCBAQAorMjAxNS0wNy0wMiAgQ2hyaXMg
RHVtZXogIDxjZHVtZXpAYXBwbGUuY29tPgorCisgICAgICAgIERyb3AgUmVmUHRyOjpjbGVhcigp
IG1ldGhvZAorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9
MTQ2NTU2CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAg
KiBXZWJWaWV3LmNwcDoKKyAgICAgICAgKFdlYlZpZXc6OmRlbGV0ZUJhY2tpbmdTdG9yZSk6Cisg
ICAgICAgIChXZWJWaWV3Ojp1cGRhdGVCYWNraW5nU3RvcmUpOgorCiAyMDE1LTA2LTMwICBTaW1v
biBGcmFzZXIgIDxzaW1vbi5mcmFzZXJAYXBwbGUuY29tPgogCiAgICAgICAgIEZpeCBNYWMgYW5k
IFdpbmRvd3MgYnVpbGRzLgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdDIvQ2hhbmdlTG9nIGIv
U291cmNlL1dlYktpdDIvQ2hhbmdlTG9nCmluZGV4IDQ5MWZjNGM0NWY0MDA1ZmNjY2ViZmVmNTAy
YzZhOTNmNmRmMWExOWYuLmY0YjkxMTkyYjNhNmYyMjM2YTMyYTA5N2VlMmIzZDVmZDQxMDU2MDgg
MTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQyL0NoYW5nZUxvZworKysgYi9Tb3VyY2UvV2ViS2l0
Mi9DaGFuZ2VMb2cKQEAgLTEsMyArMSwyMyBAQAorMjAxNS0wNy0wMiAgQ2hyaXMgRHVtZXogIDxj
ZHVtZXpAYXBwbGUuY29tPgorCisgICAgICAgIERyb3AgUmVmUHRyOjpjbGVhcigpIG1ldGhvZAor
ICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTQ2NTU2CisK
KyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgKiBEYXRhYmFz
ZVByb2Nlc3MvSW5kZXhlZERCL1VuaXF1ZUlEQkRhdGFiYXNlLmNwcDoKKyAgICAgICAgKFdlYktp
dDo6VW5pcXVlSURCRGF0YWJhc2U6OnNodXRkb3duQmFja2luZ1N0b3JlKToKKyAgICAgICAgKiBT
aGFyZWQvQ29vcmRpbmF0ZWRHcmFwaGljcy9Db29yZGluYXRlZEJhY2tpbmdTdG9yZS5jcHA6Cisg
ICAgICAgIChXZWJLaXQ6OkNvb3JkaW5hdGVkQmFja2luZ1N0b3JlVGlsZTo6c3dhcEJ1ZmZlcnMp
OgorICAgICAgICAqIFVJUHJvY2Vzcy9BUEkvZWZsL0V3a1ZpZXcuY3BwOgorICAgICAgICAoRXdr
Vmlldzo6aGlkZUNvbnRleHRNZW51KToKKyAgICAgICAgKiBVSVByb2Nlc3MvSW5zcGVjdG9yU2Vy
dmVyL1dlYlNvY2tldFNlcnZlckNvbm5lY3Rpb24uY3BwOgorICAgICAgICAoV2ViS2l0OjpXZWJT
b2NrZXRTZXJ2ZXJDb25uZWN0aW9uOjpkaWRDbG9zZVNvY2tldFN0cmVhbSk6CisgICAgICAgICog
VUlQcm9jZXNzL05ldHdvcmsvQ3VzdG9tUHJvdG9jb2xzL21hYy9DdXN0b21Qcm90b2NvbE1hbmFn
ZXJQcm94eU1hYy5tbToKKyAgICAgICAgKC1bV0tDdXN0b21Qcm90b2NvbExvYWRlciBkZWFsbG9j
XSk6CisgICAgICAgICogVUlQcm9jZXNzL2lvcy9XS0dlb2xvY2F0aW9uUHJvdmlkZXJJT1MubW06
CisgICAgICAgICgtW1dLR2VvbG9jYXRpb25Qcm92aWRlcklPUyBfc3RvcFVwZGF0aW5nXSk6CisK
IDIwMTUtMDctMDIgIEFsZXggQ2hyaXN0ZW5zZW4gIDxhY2hyaXN0ZW5zZW5Ad2Via2l0Lm9yZz4K
IAogICAgICAgICBGaXggRVdTIGJ1aWxkIGFmdGVyIHIxODYxODIuCmRpZmYgLS1naXQgYS9Tb3Vy
Y2UvSmF2YVNjcmlwdENvcmUvQVBJL0pTVmFsdWVSZWYuY3BwIGIvU291cmNlL0phdmFTY3JpcHRD
b3JlL0FQSS9KU1ZhbHVlUmVmLmNwcAppbmRleCA3NTlhNjVhOWM3ZGUzYzU2NjE5YWI0NzQ1NDgz
NDg2ODhkY2M0N2MxLi41NDQwNWUyYWY1OTdjMjQ4MjM2ZGVmNzY5ZThiYmM2MDI4OTc5ZDI2IDEw
MDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvQVBJL0pTVmFsdWVSZWYuY3BwCisrKyBi
L1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9BUEkvSlNWYWx1ZVJlZi5jcHAKQEAgLTQyMiw3ICs0MjIs
NyBAQCBKU1N0cmluZ1JlZiBKU1ZhbHVlVG9TdHJpbmdDb3B5KEpTQ29udGV4dFJlZiBjdHgsIEpT
VmFsdWVSZWYgdmFsdWUsIEpTVmFsdWVSZWYqCiAgICAgCiAgICAgUmVmUHRyPE9wYXF1ZUpTU3Ry
aW5nPiBzdHJpbmdSZWYoT3BhcXVlSlNTdHJpbmc6OmNyZWF0ZShqc1ZhbHVlLnRvU3RyaW5nKGV4
ZWMpLT52YWx1ZShleGVjKSkpOwogICAgIGlmIChoYW5kbGVFeGNlcHRpb25JZk5lZWRlZChleGVj
LCBleGNlcHRpb24pID09IEV4Y2VwdGlvblN0YXR1czo6RGlkVGhyb3cpCi0gICAgICAgIHN0cmlu
Z1JlZi5jbGVhcigpOworICAgICAgICBzdHJpbmdSZWYgPSBudWxscHRyOwogICAgIHJldHVybiBz
dHJpbmdSZWYucmVsZWFzZSgpLmxlYWtSZWYoKTsKIH0KIApkaWZmIC0tZ2l0IGEvU291cmNlL0ph
dmFTY3JpcHRDb3JlL2J5dGVjb2RlL0NhbGxMaW5rSW5mby5jcHAgYi9Tb3VyY2UvSmF2YVNjcmlw
dENvcmUvYnl0ZWNvZGUvQ2FsbExpbmtJbmZvLmNwcAppbmRleCA3MmEwYzI0MWRmY2NkMTY1ZDkw
MzBkNWZhODRlZmI2OGY4MWY0YjM4Li5kOTIwMDk4NzRhOTM4NTc3NzJjNDM2NmY0ZDAwOWI1NDZh
MzNiOWFjIDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvYnl0ZWNvZGUvQ2FsbExp
bmtJbmZvLmNwcAorKysgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvYnl0ZWNvZGUvQ2FsbExpbmtJ
bmZvLmNwcApAQCAtNDMsNyArNDMsNyBAQCB2b2lkIENhbGxMaW5rSW5mbzo6Y2xlYXJTdHViKCkK
ICAgICAgICAgcmV0dXJuOwogCiAgICAgbV9zdHViLT5jbGVhckNhbGxOb2Rlc0Zvcih0aGlzKTsK
LSAgICBtX3N0dWIuY2xlYXIoKTsKKyAgICBtX3N0dWIgPSBudWxscHRyOwogfQogCiB2b2lkIENh
bGxMaW5rSW5mbzo6dW5saW5rKFJlcGF0Y2hCdWZmZXImIHJlcGF0Y2hCdWZmZXIpCmRpZmYgLS1n
aXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvYnl0ZWNvZGUvU3RydWN0dXJlU3R1YkluZm8uaCBi
L1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ieXRlY29kZS9TdHJ1Y3R1cmVTdHViSW5mby5oCmluZGV4
IGVjOGI3OWMxZjI4NTI1YmI0ODQ5NWRkMWJlYzZmMTlmMTYyNTc0ZWYuLmQ0MDJhY2VlNTc5M2Ji
NGY3ODY2OTUxNzE2NDE0OGU4YTdhMjcxYzggMTAwNjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0
Q29yZS9ieXRlY29kZS9TdHJ1Y3R1cmVTdHViSW5mby5oCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0
Q29yZS9ieXRlY29kZS9TdHJ1Y3R1cmVTdHViSW5mby5oCkBAIC0xNDksOCArMTQ5LDggQEAgc3Ry
dWN0IFN0cnVjdHVyZVN0dWJJbmZvIHsKICAgICB7CiAgICAgICAgIGRlcmVmKCk7CiAgICAgICAg
IGFjY2Vzc1R5cGUgPSBhY2Nlc3NfdW5zZXQ7Ci0gICAgICAgIHN0dWJSb3V0aW5lLmNsZWFyKCk7
Ci0gICAgICAgIHdhdGNocG9pbnRzLmNsZWFyKCk7CisgICAgICAgIHN0dWJSb3V0aW5lID0gbnVs
bHB0cjsKKyAgICAgICAgd2F0Y2hwb2ludHMgPSBudWxscHRyOwogICAgIH0KIAogICAgIHZvaWQg
ZGVyZWYoKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9kZmcvREZHR3JhcGgu
aCBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9kZmcvREZHR3JhcGguaAppbmRleCBiYWM1MzhmMDI1
ZDNlY2UxMzdiZTMxNzgwNjg4MTVkOTUzN2M5NWE4Li43ZjY3OTQ2ZThkYzc5OGI5ZTc5NmU5ZjI4
NzMyMmVkNWQxYmFmMmUwIDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvZGZnL0RG
R0dyYXBoLmgKKysrIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL2RmZy9ERkdHcmFwaC5oCkBAIC00
NDMsNyArNDQzLDcgQEAgcHVibGljOgogICAgIAogICAgIHZvaWQga2lsbEJsb2NrKEJsb2NrSW5k
ZXggYmxvY2tJbmRleCkKICAgICB7Ci0gICAgICAgIG1fYmxvY2tzW2Jsb2NrSW5kZXhdLmNsZWFy
KCk7CisgICAgICAgIG1fYmxvY2tzW2Jsb2NrSW5kZXhdID0gbnVsbHB0cjsKICAgICB9CiAgICAg
CiAgICAgdm9pZCBraWxsQmxvY2soQmFzaWNCbG9jayogYmFzaWNCbG9jaykKZGlmZiAtLWdpdCBh
L1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9kZmcvREZHT3BlcmF0aW9ucy5jcHAgYi9Tb3VyY2UvSmF2
YVNjcmlwdENvcmUvZGZnL0RGR09wZXJhdGlvbnMuY3BwCmluZGV4IGE5OWEzZmExMDIwMThjYmU4
NGU0ZDEzNzQ1MGQ3MjUwZDQ4N2VlMDguLjZmOTUxMmJhNTM0YzQ5MGQ0YmY5OThhZjVkMDgyNDQx
MmRiYjkxNGUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9kZmcvREZHT3BlcmF0
aW9ucy5jcHAKKysrIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL2RmZy9ERkdPcGVyYXRpb25zLmNw
cApAQCAtMTQ0Nyw3ICsxNDQ3LDcgQEAgY2hhciogSklUX09QRVJBVElPTiB0cmlnZ2VyT1NSRW50
cnlOb3coCiAgICAgICAgIAogICAgICAgICAvLyBPU1IgZW50cnkgZmFpbGVkLiBPaCBubyEgVGhp
cyBpbXBsaWVzIHRoYXQgd2UgbmVlZCB0byByZXRyeS4gV2UgcmV0cnkKICAgICAgICAgLy8gd2l0
aG91dCBleHBvbmVudGlhbCBiYWNrb2ZmIGFuZCB3ZSBvbmx5IGRvIHRoaXMgZm9yIHRoZSBlbnRy
eSBjb2RlIGJsb2NrLgotICAgICAgICBqaXRDb2RlLT5vc3JFbnRyeUJsb2NrLmNsZWFyKCk7Cisg
ICAgICAgIGppdENvZGUtPm9zckVudHJ5QmxvY2sgPSBudWxscHRyOwogICAgICAgICBqaXRDb2Rl
LT5vc3JFbnRyeVJldHJ5ID0gMDsKICAgICAgICAgcmV0dXJuIDA7CiAgICAgfQpkaWZmIC0tZ2l0
IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL2luc3BlY3Rvci9Db25zb2xlTWVzc2FnZS5jcHAgYi9T
b3VyY2UvSmF2YVNjcmlwdENvcmUvaW5zcGVjdG9yL0NvbnNvbGVNZXNzYWdlLmNwcAppbmRleCBh
MDRhOTdkYzNiNDUxNDg1Njc3NjRmNGQyOGQwZjNiMmMzOGQxZTA2Li45YWMwZGRlZTJkYzkwYmFm
ODE4ZmFlM2EyZDQxNmRkNThhYTkxNDQ1IDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENv
cmUvaW5zcGVjdG9yL0NvbnNvbGVNZXNzYWdlLmNwcAorKysgYi9Tb3VyY2UvSmF2YVNjcmlwdENv
cmUvaW5zcGVjdG9yL0NvbnNvbGVNZXNzYWdlLmNwcApAQCAtMjczLDcgKzI3Myw3IEBAIHZvaWQg
Q29uc29sZU1lc3NhZ2U6OmNsZWFyKCkKICAgICAgICAgbV9tZXNzYWdlID0gQVNDSUlMaXRlcmFs
KCI8bWVzc2FnZSBjb2xsZWN0ZWQ+Iik7CiAKICAgICBpZiAobV9hcmd1bWVudHMpCi0gICAgICAg
IG1fYXJndW1lbnRzLmNsZWFyKCk7CisgICAgICAgIG1fYXJndW1lbnRzID0gbnVsbHB0cjsKIH0K
IAogSlNDOjpFeGVjU3RhdGUqIENvbnNvbGVNZXNzYWdlOjpzY3JpcHRTdGF0ZSgpIGNvbnN0CmRp
ZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvaW5zcGVjdG9yL0pTR2xvYmFsT2JqZWN0
SW5zcGVjdG9yQ29udHJvbGxlci5jcHAgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvaW5zcGVjdG9y
L0pTR2xvYmFsT2JqZWN0SW5zcGVjdG9yQ29udHJvbGxlci5jcHAKaW5kZXggNTdmNTJjNTU1NDdh
NjM4ODc5YzgyZjQwYjY4ZWMzZDIyYjMyYTAzOS4uMTFkODZlZDMyOTc1MDMxNzM3MTZhODVkOTM1
ODA4ZmM2NzdiNWQ0OCAxMDA2NDQKLS0tIGEvU291cmNlL0phdmFTY3JpcHRDb3JlL2luc3BlY3Rv
ci9KU0dsb2JhbE9iamVjdEluc3BlY3RvckNvbnRyb2xsZXIuY3BwCisrKyBiL1NvdXJjZS9KYXZh
U2NyaXB0Q29yZS9pbnNwZWN0b3IvSlNHbG9iYWxPYmplY3RJbnNwZWN0b3JDb250cm9sbGVyLmNw
cApAQCAtMTMxLDcgKzEzMSw3IEBAIHZvaWQgSlNHbG9iYWxPYmplY3RJbnNwZWN0b3JDb250cm9s
bGVyOjpkaXNjb25uZWN0RnJvbnRlbmQoRGlzY29ubmVjdFJlYXNvbiByZWFzCiAgICAgbV9hZ2Vu
dHMud2lsbERlc3Ryb3lGcm9udGVuZEFuZEJhY2tlbmQocmVhc29uKTsKIAogICAgIG1fYmFja2Vu
ZERpc3BhdGNoZXItPmNsZWFyRnJvbnRlbmQoKTsKLSAgICBtX2JhY2tlbmREaXNwYXRjaGVyLmNs
ZWFyKCk7CisgICAgbV9iYWNrZW5kRGlzcGF0Y2hlciA9IG51bGxwdHI7CiAgICAgbV9mcm9udGVu
ZENoYW5uZWwgPSBudWxscHRyOwogCiAgICAgbV9pc0F1dG9tYXRpY0luc3BlY3Rpb24gPSBmYWxz
ZTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9pbnNwZWN0b3IvYWdlbnRzL0lu
c3BlY3RvckFnZW50LmNwcCBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9pbnNwZWN0b3IvYWdlbnRz
L0luc3BlY3RvckFnZW50LmNwcAppbmRleCBiZjI0MWJhNzc4MmQ5YzA5Y2E2ZGFkMzYwOTJiODIx
YTcyYTgzOGFhLi4wNTM4NjkwMWU2MWU3ZmJjZGVjZTBiYzE1MjkwZDlmNWJhY2UwMTg4IDEwMDY0
NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvaW5zcGVjdG9yL2FnZW50cy9JbnNwZWN0b3JB
Z2VudC5jcHAKKysrIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL2luc3BlY3Rvci9hZ2VudHMvSW5z
cGVjdG9yQWdlbnQuY3BwCkBAIC01Nyw3ICs1Nyw3IEBAIHZvaWQgSW5zcGVjdG9yQWdlbnQ6OmRp
ZENyZWF0ZUZyb250ZW5kQW5kQmFja2VuZChGcm9udGVuZENoYW5uZWwqIGZyb250ZW5kQ2hhbm5l
CiB2b2lkIEluc3BlY3RvckFnZW50Ojp3aWxsRGVzdHJveUZyb250ZW5kQW5kQmFja2VuZChEaXNj
b25uZWN0UmVhc29uKQogewogICAgIG1fZnJvbnRlbmREaXNwYXRjaGVyID0gbnVsbHB0cjsKLSAg
ICBtX2JhY2tlbmREaXNwYXRjaGVyLmNsZWFyKCk7CisgICAgbV9iYWNrZW5kRGlzcGF0Y2hlciA9
IG51bGxwdHI7CiAKICAgICBtX3BlbmRpbmdFdmFsdWF0ZVRlc3RDb21tYW5kcy5jbGVhcigpOwog
CmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvaW5zcGVjdG9yL2FnZW50cy9JbnNw
ZWN0b3JDb25zb2xlQWdlbnQuY3BwIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL2luc3BlY3Rvci9h
Z2VudHMvSW5zcGVjdG9yQ29uc29sZUFnZW50LmNwcAppbmRleCA4MTRhMGMxMWNmNjA4ZWM2OTg5
OWNlYmYxYmFjMTRlYWJjMTliYWQ2Li45ZmZkMDQ4NGYyODA2MmMyOWJjYWRiNGI5YjlkMzcwYjFm
NzExMzdmIDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvaW5zcGVjdG9yL2FnZW50
cy9JbnNwZWN0b3JDb25zb2xlQWdlbnQuY3BwCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9p
bnNwZWN0b3IvYWdlbnRzL0luc3BlY3RvckNvbnNvbGVBZ2VudC5jcHAKQEAgLTY0LDcgKzY0LDcg
QEAgdm9pZCBJbnNwZWN0b3JDb25zb2xlQWdlbnQ6OmRpZENyZWF0ZUZyb250ZW5kQW5kQmFja2Vu
ZChGcm9udGVuZENoYW5uZWwqIGZyb250ZW4KIHZvaWQgSW5zcGVjdG9yQ29uc29sZUFnZW50Ojp3
aWxsRGVzdHJveUZyb250ZW5kQW5kQmFja2VuZChEaXNjb25uZWN0UmVhc29uKQogewogICAgIG1f
ZnJvbnRlbmREaXNwYXRjaGVyID0gbnVsbHB0cjsKLSAgICBtX2JhY2tlbmREaXNwYXRjaGVyLmNs
ZWFyKCk7CisgICAgbV9iYWNrZW5kRGlzcGF0Y2hlciA9IG51bGxwdHI7CiAKICAgICBTdHJpbmcg
ZXJyb3JTdHJpbmc7CiAgICAgZGlzYWJsZShlcnJvclN0cmluZyk7CmRpZmYgLS1naXQgYS9Tb3Vy
Y2UvSmF2YVNjcmlwdENvcmUvaW5zcGVjdG9yL2FnZW50cy9JbnNwZWN0b3JEZWJ1Z2dlckFnZW50
LmNwcCBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9pbnNwZWN0b3IvYWdlbnRzL0luc3BlY3RvckRl
YnVnZ2VyQWdlbnQuY3BwCmluZGV4IGE3NWUwYjJiNmVjN2U4YzlkZGQ2NzdmZjk0ODVjOWU4ZmU5
ZGJlNGQuLmYwZjBiNDhkZDRkNDdjZGUzYTBmMmE4ODIyYzQ2MzI1ZGU1YWFiNGYgMTAwNjQ0Ci0t
LSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9pbnNwZWN0b3IvYWdlbnRzL0luc3BlY3RvckRlYnVn
Z2VyQWdlbnQuY3BwCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9pbnNwZWN0b3IvYWdlbnRz
L0luc3BlY3RvckRlYnVnZ2VyQWdlbnQuY3BwCkBAIC03Nyw3ICs3Nyw3IEBAIHZvaWQgSW5zcGVj
dG9yRGVidWdnZXJBZ2VudDo6ZGlkQ3JlYXRlRnJvbnRlbmRBbmRCYWNrZW5kKEZyb250ZW5kQ2hh
bm5lbCogZnJvbnRlCiB2b2lkIEluc3BlY3RvckRlYnVnZ2VyQWdlbnQ6OndpbGxEZXN0cm95RnJv
bnRlbmRBbmRCYWNrZW5kKERpc2Nvbm5lY3RSZWFzb24gcmVhc29uKQogewogICAgIG1fZnJvbnRl
bmREaXNwYXRjaGVyID0gbnVsbHB0cjsKLSAgICBtX2JhY2tlbmREaXNwYXRjaGVyLmNsZWFyKCk7
CisgICAgbV9iYWNrZW5kRGlzcGF0Y2hlciA9IG51bGxwdHI7CiAKICAgICBib29sIHNraXBSZWNv
bXBpbGUgPSByZWFzb24gPT0gRGlzY29ubmVjdFJlYXNvbjo6SW5zcGVjdGVkVGFyZ2V0RGVzdHJv
eWVkOwogICAgIGRpc2FibGUoc2tpcFJlY29tcGlsZSk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2
YVNjcmlwdENvcmUvaW5zcGVjdG9yL2FnZW50cy9KU0dsb2JhbE9iamVjdFJ1bnRpbWVBZ2VudC5j
cHAgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvaW5zcGVjdG9yL2FnZW50cy9KU0dsb2JhbE9iamVj
dFJ1bnRpbWVBZ2VudC5jcHAKaW5kZXggNjU4YzY3YWIxNWY4OTUyMDVjNTViYjUyODljMGI5ZDJl
NGU0MGM2MC4uNDYwNDlmNTZjNzVhZDczOThmM2M5ZDA3NTg0NmNlN2ExYzEyODI2OCAxMDA2NDQK
LS0tIGEvU291cmNlL0phdmFTY3JpcHRDb3JlL2luc3BlY3Rvci9hZ2VudHMvSlNHbG9iYWxPYmpl
Y3RSdW50aW1lQWdlbnQuY3BwCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9pbnNwZWN0b3Iv
YWdlbnRzL0pTR2xvYmFsT2JqZWN0UnVudGltZUFnZW50LmNwcApAQCAtNDksNyArNDksNyBAQCB2
b2lkIEpTR2xvYmFsT2JqZWN0UnVudGltZUFnZW50OjpkaWRDcmVhdGVGcm9udGVuZEFuZEJhY2tl
bmQoRnJvbnRlbmRDaGFubmVsKiBmcgogdm9pZCBKU0dsb2JhbE9iamVjdFJ1bnRpbWVBZ2VudDo6
d2lsbERlc3Ryb3lGcm9udGVuZEFuZEJhY2tlbmQoRGlzY29ubmVjdFJlYXNvbiByZWFzb24pCiB7
CiAgICAgbV9mcm9udGVuZERpc3BhdGNoZXIgPSBudWxscHRyOwotICAgIG1fYmFja2VuZERpc3Bh
dGNoZXIuY2xlYXIoKTsKKyAgICBtX2JhY2tlbmREaXNwYXRjaGVyID0gbnVsbHB0cjsKIAogICAg
IEluc3BlY3RvclJ1bnRpbWVBZ2VudDo6d2lsbERlc3Ryb3lGcm9udGVuZEFuZEJhY2tlbmQocmVh
c29uKTsKIH0KZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0V4ZWN1
dGFibGUuY3BwIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvRXhlY3V0YWJsZS5jcHAK
aW5kZXggNmNiMDliMDFiMzgyNWI4NDU2ZTk1YzFhYmM5ZGZmMmI4MDZlNDExOC4uNTUyNDBmZDkx
ZjdiYzc4NDJmMTNlNTkyODFkMTBkMjFkODZjNGY1MCAxMDA2NDQKLS0tIGEvU291cmNlL0phdmFT
Y3JpcHRDb3JlL3J1bnRpbWUvRXhlY3V0YWJsZS5jcHAKKysrIGIvU291cmNlL0phdmFTY3JpcHRD
b3JlL3J1bnRpbWUvRXhlY3V0YWJsZS5jcHAKQEAgLTUyLDggKzUyLDggQEAgdm9pZCBFeGVjdXRh
YmxlQmFzZTo6ZGVzdHJveShKU0NlbGwqIGNlbGwpCiB2b2lkIEV4ZWN1dGFibGVCYXNlOjpjbGVh
ckNvZGUoKQogewogI2lmIEVOQUJMRShKSVQpCi0gICAgbV9qaXRDb2RlRm9yQ2FsbC5jbGVhcigp
OwotICAgIG1faml0Q29kZUZvckNvbnN0cnVjdC5jbGVhcigpOworICAgIG1faml0Q29kZUZvckNh
bGwgPSBudWxscHRyOworICAgIG1faml0Q29kZUZvckNvbnN0cnVjdCA9IG51bGxwdHI7CiAgICAg
bV9qaXRDb2RlRm9yQ2FsbFdpdGhBcml0eUNoZWNrID0gTWFjcm9Bc3NlbWJsZXJDb2RlUHRyKCk7
CiAgICAgbV9qaXRDb2RlRm9yQ29uc3RydWN0V2l0aEFyaXR5Q2hlY2sgPSBNYWNyb0Fzc2VtYmxl
ckNvZGVQdHIoKTsKICAgICBtX2ppdENvZGVGb3JDYWxsV2l0aEFyaXR5Q2hlY2tBbmRQcmVzZXJ2
ZVJlZ3MgPSBNYWNyb0Fzc2VtYmxlckNvZGVQdHIoKTsKQEAgLTQ2NCw3ICs0NjQsNyBAQCB2b2lk
IEV2YWxFeGVjdXRhYmxlOjp1bmxpbmtDYWxscygpCiAKIHZvaWQgRXZhbEV4ZWN1dGFibGU6OmNs
ZWFyQ29kZSgpCiB7Ci0gICAgbV9ldmFsQ29kZUJsb2NrLmNsZWFyKCk7CisgICAgbV9ldmFsQ29k
ZUJsb2NrID0gbnVsbHB0cjsKICAgICBtX3VubGlua2VkRXZhbENvZGVCbG9jay5jbGVhcigpOwog
ICAgIEJhc2U6OmNsZWFyQ29kZSgpOwogfQpAQCAtNTQzLDcgKzU0Myw3IEBAIHZvaWQgUHJvZ3Jh
bUV4ZWN1dGFibGU6OnZpc2l0Q2hpbGRyZW4oSlNDZWxsKiBjZWxsLCBTbG90VmlzaXRvciYgdmlz
aXRvcikKIAogdm9pZCBQcm9ncmFtRXhlY3V0YWJsZTo6Y2xlYXJDb2RlKCkKIHsKLSAgICBtX3By
b2dyYW1Db2RlQmxvY2suY2xlYXIoKTsKKyAgICBtX3Byb2dyYW1Db2RlQmxvY2sgPSBudWxscHRy
OwogICAgIG1fdW5saW5rZWRQcm9ncmFtQ29kZUJsb2NrLmNsZWFyKCk7CiAgICAgQmFzZTo6Y2xl
YXJDb2RlKCk7CiB9CkBAIC01ODcsOCArNTg3LDggQEAgdm9pZCBGdW5jdGlvbkV4ZWN1dGFibGU6
OmNsZWFyVW5saW5rZWRDb2RlRm9yUmVjb21waWxhdGlvbigpCiAKIHZvaWQgRnVuY3Rpb25FeGVj
dXRhYmxlOjpjbGVhckNvZGUoKQogewotICAgIG1fY29kZUJsb2NrRm9yQ2FsbC5jbGVhcigpOwot
ICAgIG1fY29kZUJsb2NrRm9yQ29uc3RydWN0LmNsZWFyKCk7CisgICAgbV9jb2RlQmxvY2tGb3JD
YWxsID0gbnVsbHB0cjsKKyAgICBtX2NvZGVCbG9ja0ZvckNvbnN0cnVjdCA9IG51bGxwdHI7CiAg
ICAgQmFzZTo6Y2xlYXJDb2RlKCk7CiB9CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0
Q29yZS9ydW50aW1lL0pTTG9jay5jcHAgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9K
U0xvY2suY3BwCmluZGV4IDJlNzk5NGNmMjdjM2M1NGQ1ZDU3YzM3MDAwZGQxODBlYzRkZjlmMDUu
LmMyZWUwYTU1MzJjMGI1MTkzNjg3MTA5ZDlhMzJlYzRhMTQ0NWQ4YmQgMTAwNjQ0Ci0tLSBhL1Nv
dXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0pTTG9jay5jcHAKKysrIGIvU291cmNlL0phdmFT
Y3JpcHRDb3JlL3J1bnRpbWUvSlNMb2NrLmNwcApAQCAtNzMsNyArNzMsNyBAQCB2b2lkIEpTTG9j
a0hvbGRlcjo6aW5pdCgpCiBKU0xvY2tIb2xkZXI6On5KU0xvY2tIb2xkZXIoKQogewogICAgIFJl
ZlB0cjxKU0xvY2s+IGFwaUxvY2soJm1fdm0tPmFwaUxvY2soKSk7Ci0gICAgbV92bS5jbGVhcigp
OworICAgIG1fdm0gPSBudWxscHRyOwogICAgIGFwaUxvY2stPnVubG9jaygpOwogfQogCmRpZmYg
LS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9TdHJ1Y3R1cmUuY3BwIGIvU291
cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvU3RydWN0dXJlLmNwcAppbmRleCBmNzcxYjYwYmNi
NjVkZThlNTRjNmE2MTFjN2QyNmY4NjU5OGIwNzRkLi4zOTg1ODA1Y2Y1NWM4M2MxZGE2NTRhMTM1
YzQ1MTBjNzUwMTcwYjE5IDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGlt
ZS9TdHJ1Y3R1cmUuY3BwCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL1N0cnVj
dHVyZS5jcHAKQEAgLTczNyw3ICs3MzcsNyBAQCB2b2lkIFN0cnVjdHVyZTo6cGluKCkKICAgICBB
U1NFUlQocHJvcGVydHlUYWJsZSgpKTsKICAgICBzZXRJc1Bpbm5lZFByb3BlcnR5VGFibGUodHJ1
ZSk7CiAgICAgY2xlYXJQcmV2aW91c0lEKCk7Ci0gICAgbV9uYW1lSW5QcmV2aW91cy5jbGVhcigp
OworICAgIG1fbmFtZUluUHJldmlvdXMgPSBudWxscHRyOwogfQogCiB2b2lkIFN0cnVjdHVyZTo6
YWxsb2NhdGVSYXJlRGF0YShWTSYgdm0pCmRpZmYgLS1naXQgYS9Tb3VyY2UvV1RGL3d0Zi9SZWZQ
dHIuaCBiL1NvdXJjZS9XVEYvd3RmL1JlZlB0ci5oCmluZGV4IDI5MTFmMGRhOTA2MmI3NmNjZDJh
ZDE1NDQwYjljZDI1ODVkNTg4ODYuLjE2Y2ZjY2E5ZTNkN2YwZDgyOWRkYjZhNTAwNTA1N2Q0ZDZj
NTlkNDggMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XVEYvd3RmL1JlZlB0ci5oCisrKyBiL1NvdXJjZS9X
VEYvd3RmL1JlZlB0ci5oCkBAIC02MCw3ICs2MCw2IEBAIHB1YmxpYzoKIAogICAgIFQqIGdldCgp
IGNvbnN0IHsgcmV0dXJuIG1fcHRyOyB9CiAgICAgCi0gICAgdm9pZCBjbGVhcigpOwogICAgIFBh
c3NSZWZQdHI8VD4gcmVsZWFzZSgpIHsgUGFzc1JlZlB0cjxUPiB0bXAgPSBhZG9wdFJlZihtX3B0
cik7IG1fcHRyID0gbnVsbHB0cjsgcmV0dXJuIHRtcDsgfQogICAgIFJlZjxUPiByZWxlYXNlTm9u
TnVsbCgpIHsgQVNTRVJUKG1fcHRyKTsgUmVmPFQ+IHRtcChhZG9wdFJlZigqbV9wdHIpKTsgbV9w
dHIgPSBudWxscHRyOyByZXR1cm4gdG1wOyB9CiAKQEAgLTEwOSwxMSArMTA4LDYgQEAgdGVtcGxh
dGU8dHlwZW5hbWUgVD4gdGVtcGxhdGU8dHlwZW5hbWUgVT4gaW5saW5lIFJlZlB0cjxUPjo6UmVm
UHRyKFJlZjxVPiYmIHJlZmUKIHsKIH0KIAotdGVtcGxhdGU8dHlwZW5hbWUgVD4gaW5saW5lIHZv
aWQgUmVmUHRyPFQ+OjpjbGVhcigpCi17Ci0gICAgZGVyZWZJZk5vdE51bGwoc3RkOjpleGNoYW5n
ZShtX3B0ciwgbnVsbHB0cikpOwotfQotCiB0ZW1wbGF0ZTx0eXBlbmFtZSBUPgogaW5saW5lIFQq
IFJlZlB0cjxUPjo6bGVha1JlZigpCiB7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1
bGVzL2luZGV4ZWRkYi9JREJDdXJzb3IuY3BwIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9pbmRl
eGVkZGIvSURCQ3Vyc29yLmNwcAppbmRleCBhMjBlMWUxYWNlMjQ5OTQ4NGRmNzQ1OTE5OGExMTFl
MTg0MjkwZTZkLi5jNDAxMWRjMjc1NTVmNDhmY2UyZDZkMmUxNjQwOGYxZDdhNzYxMzZmIDEwMDY0
NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL2luZGV4ZWRkYi9JREJDdXJzb3IuY3BwCisr
KyBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvaW5kZXhlZGRiL0lEQkN1cnNvci5jcHAKQEAgLTI1
OSw3ICsyNTksNyBAQCB2b2lkIElEQkN1cnNvcjo6Y2xvc2UoKQogICAgIG1fdHJhbnNhY3Rpb25O
b3RpZmllci5jdXJzb3JGaW5pc2hlZCgpOwogICAgIGlmIChtX3JlcXVlc3QpIHsKICAgICAgICAg
bV9yZXF1ZXN0LT5maW5pc2hDdXJzb3IoKTsKLSAgICAgICAgbV9yZXF1ZXN0LmNsZWFyKCk7Cisg
ICAgICAgIG1fcmVxdWVzdCA9IG51bGxwdHI7CiAgICAgfQogfQogCmRpZmYgLS1naXQgYS9Tb3Vy
Y2UvV2ViQ29yZS9Nb2R1bGVzL2luZGV4ZWRkYi9JREJEYXRhYmFzZUJhY2tlbmQuY3BwIGIvU291
cmNlL1dlYkNvcmUvTW9kdWxlcy9pbmRleGVkZGIvSURCRGF0YWJhc2VCYWNrZW5kLmNwcAppbmRl
eCBmYzIzMTAyZGRhYTlhMzc3MDk0MGVmNGViMDRjMTM4MDM4MzRkYzNmLi4wOWU0ZTI3YjhmOTA5
ZTE3ODA5YjQ5ZDAzNGUzYjhjNGU0NWVmNTM3IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9N
b2R1bGVzL2luZGV4ZWRkYi9JREJEYXRhYmFzZUJhY2tlbmQuY3BwCisrKyBiL1NvdXJjZS9XZWJD
b3JlL01vZHVsZXMvaW5kZXhlZGRiL0lEQkRhdGFiYXNlQmFja2VuZC5jcHAKQEAgLTMzMyw3ICsz
MzMsNyBAQCB2b2lkIElEQkRhdGFiYXNlQmFja2VuZDo6dHJhbnNhY3Rpb25GaW5pc2hlZChJREJU
cmFuc2FjdGlvbkJhY2tlbmQqIHJhd1RyYW5zYWN0aQogICAgIG1fdHJhbnNhY3Rpb25zLnJlbW92
ZSh0cmFuc2FjdGlvbi0+aWQoKSk7CiAgICAgaWYgKHRyYW5zYWN0aW9uLT5tb2RlKCkgPT0gSW5k
ZXhlZERCOjpUcmFuc2FjdGlvbk1vZGU6OlZlcnNpb25DaGFuZ2UpIHsKICAgICAgICAgQVNTRVJU
KHRyYW5zYWN0aW9uLmdldCgpID09IG1fcnVubmluZ1ZlcnNpb25DaGFuZ2VUcmFuc2FjdGlvbi5n
ZXQoKSk7Ci0gICAgICAgIG1fcnVubmluZ1ZlcnNpb25DaGFuZ2VUcmFuc2FjdGlvbi5jbGVhcigp
OworICAgICAgICBtX3J1bm5pbmdWZXJzaW9uQ2hhbmdlVHJhbnNhY3Rpb24gPSBudWxscHRyOwog
ICAgIH0KIH0KIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9pbmRleGVkZGIv
SURCT2JqZWN0U3RvcmUuY3BwIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9pbmRleGVkZGIvSURC
T2JqZWN0U3RvcmUuY3BwCmluZGV4IGU4YmY5ZGRlZmU0OTdiNTYzZDk4ZjA4NTBlYWU4ZDQ4N2Vi
MjI1YjkuLmE2ZDI4MTQyZjYyMjIyMmY5NDNmOGQ0ZTEzNWI0MjQ4MzEyMDMwMTkgMTAwNjQ0Ci0t
LSBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvaW5kZXhlZGRiL0lEQk9iamVjdFN0b3JlLmNwcAor
KysgYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL2luZGV4ZWRkYi9JREJPYmplY3RTdG9yZS5jcHAK
QEAgLTMzNyw3ICszMzcsNyBAQCBwcml2YXRlOgogICAgICAgICAgICAgLy8gTm93IHRoYXQgd2Ug
YXJlIGRvbmUgaW5kZXhpbmcsIHRlbGwgdGhlIGJhY2tlbmQgdG8gZ28KICAgICAgICAgICAgIC8v
IGJhY2sgdG8gcHJvY2Vzc2luZyB0YXNrcyBvZiB0eXBlIE5vcm1hbFRhc2suCiAgICAgICAgICAg
ICBtX2RhdGFiYXNlQmFja2VuZC0+c2V0SW5kZXhlc1JlYWR5KG1fdHJhbnNhY3Rpb25JZCwgbV9v
YmplY3RTdG9yZUlkLCBpbmRleElkcyk7Ci0gICAgICAgICAgICBtX2RhdGFiYXNlQmFja2VuZC5j
bGVhcigpOworICAgICAgICAgICAgbV9kYXRhYmFzZUJhY2tlbmQgPSBudWxscHRyOwogICAgICAg
ICB9CiAKICAgICB9CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL2luZGV4ZWRk
Yi9JREJPcGVuREJSZXF1ZXN0LmNwcCBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvaW5kZXhlZGRi
L0lEQk9wZW5EQlJlcXVlc3QuY3BwCmluZGV4IDYzNzgwN2VhZDk0Y2I3OGM5YzlkOTM1OGRlZDY3
MGZmZjIwMTc3ZGMuLjcxNTc5YjA1OTU1NjI0ZTAzZjJhZTE3MjdmYzUwNDY3OTI1MDQ3YjQgMTAw
NjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvaW5kZXhlZGRiL0lEQk9wZW5EQlJlcXVl
c3QuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvaW5kZXhlZGRiL0lEQk9wZW5EQlJl
cXVlc3QuY3BwCkBAIC0xNDIsNyArMTQyLDcgQEAgYm9vbCBJREJPcGVuREJSZXF1ZXN0OjpkaXNw
YXRjaEV2ZW50KFBhc3NSZWZQdHI8RXZlbnQ+IGV2ZW50KQogICAgIC8vIElmIHRoZSBjb25uZWN0
aW9uIGNsb3NlZCBiZXR3ZWVuIG9uVXBncmFkZU5lZWRlZCBhbmQgdGhlIGRlbGl2ZXJ5IG9mIHRo
ZSAic3VjY2VzcyIgZXZlbnQsCiAgICAgLy8gYW4gImVycm9yIiBldmVudCBzaG91bGQgYmUgZmly
ZWQgaW5zdGVhZC4KICAgICBpZiAoZXZlbnQtPnR5cGUoKSA9PSBldmVudE5hbWVzKCkuc3VjY2Vz
c0V2ZW50ICYmIG1fcmVzdWx0LT50eXBlKCkgPT0gSURCQW55OjpJREJEYXRhYmFzZVR5cGUgJiYg
bV9yZXN1bHQtPmlkYkRhdGFiYXNlKCktPmlzQ2xvc2VQZW5kaW5nKCkpIHsKLSAgICAgICAgbV9y
ZXN1bHQuY2xlYXIoKTsKKyAgICAgICAgbV9yZXN1bHQgPSBudWxscHRyOwogICAgICAgICBvbkVy
cm9yKElEQkRhdGFiYXNlRXJyb3I6OmNyZWF0ZShJREJEYXRhYmFzZUV4Y2VwdGlvbjo6QWJvcnRF
cnJvciwgIlRoZSBjb25uZWN0aW9uIHdhcyBjbG9zZWQuIikpOwogICAgICAgICByZXR1cm4gZmFs
c2U7CiAgICAgfQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9pbmRleGVkZGIv
SURCUmVxdWVzdC5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL2luZGV4ZWRkYi9JREJSZXF1
ZXN0LmNwcAppbmRleCA5ZTUwMWI0Zjg2MjZiMDQwMTZkZWNkOTU4NjE2YTgxNTNmYTY1YWVmLi44
NjRkZTUzNTc1MzExYjA5ZTI4Nzg0YTNkYTY1YzgxZmY4YTg0NWFmIDEwMDY0NAotLS0gYS9Tb3Vy
Y2UvV2ViQ29yZS9Nb2R1bGVzL2luZGV4ZWRkYi9JREJSZXF1ZXN0LmNwcAorKysgYi9Tb3VyY2Uv
V2ViQ29yZS9Nb2R1bGVzL2luZGV4ZWRkYi9JREJSZXF1ZXN0LmNwcApAQCAtMTcwLDkgKzE3MCw5
IEBAIHZvaWQgSURCUmVxdWVzdDo6YWJvcnQoKQogICAgIG1fZW5xdWV1ZWRFdmVudHMuY2xlYXIo
KTsKIAogICAgIG1fZXJyb3JDb2RlID0gMDsKLSAgICBtX2Vycm9yLmNsZWFyKCk7CisgICAgbV9l
cnJvciA9IG51bGxwdHI7CiAgICAgbV9lcnJvck1lc3NhZ2UgPSBTdHJpbmcoKTsKLSAgICBtX3Jl
c3VsdC5jbGVhcigpOworICAgIG1fcmVzdWx0ID0gbnVsbHB0cjsKICAgICBvbkVycm9yKElEQkRh
dGFiYXNlRXJyb3I6OmNyZWF0ZShJREJEYXRhYmFzZUV4Y2VwdGlvbjo6QWJvcnRFcnJvcikpOwog
ICAgIG1fcmVxdWVzdEFib3J0ZWQgPSB0cnVlOwogfQpAQCAtMTk0LDEwICsxOTQsMTAgQEAgdm9p
ZCBJREJSZXF1ZXN0OjpzZXRQZW5kaW5nQ3Vyc29yKFBhc3NSZWZQdHI8SURCQ3Vyc29yPiBjdXJz
b3IpCiAgICAgQVNTRVJUKGN1cnNvciA9PSBnZXRSZXN1bHRDdXJzb3IoKSk7CiAKICAgICBtX3Bl
bmRpbmdDdXJzb3IgPSBjdXJzb3I7Ci0gICAgbV9yZXN1bHQuY2xlYXIoKTsKKyAgICBtX3Jlc3Vs
dCA9IG51bGxwdHI7CiAgICAgbV9yZWFkeVN0YXRlID0gUEVORElORzsKICAgICBtX2Vycm9yQ29k
ZSA9IDA7Ci0gICAgbV9lcnJvci5jbGVhcigpOworICAgIG1fZXJyb3IgPSBudWxscHRyOwogICAg
IG1fZXJyb3JNZXNzYWdlID0gU3RyaW5nKCk7CiAgICAgbV90cmFuc2FjdGlvbi0+cmVnaXN0ZXJS
ZXF1ZXN0KHRoaXMpOwogfQpAQCAtMjU2LDcgKzI1Niw3IEBAIHZvaWQgSURCUmVxdWVzdDo6b25F
cnJvcihQYXNzUmVmUHRyPElEQkRhdGFiYXNlRXJyb3I+IGVycm9yKQogICAgIG1fZXJyb3JDb2Rl
ID0gZXJyb3ItPmNvZGUoKTsKICAgICBtX2Vycm9yTWVzc2FnZSA9IGVycm9yLT5tZXNzYWdlKCk7
CiAgICAgbV9lcnJvciA9IERPTUVycm9yOjpjcmVhdGUoSURCRGF0YWJhc2VFeGNlcHRpb246Omdl
dEVycm9yTmFtZShlcnJvci0+aWRiQ29kZSgpKSk7Ci0gICAgbV9wZW5kaW5nQ3Vyc29yLmNsZWFy
KCk7CisgICAgbV9wZW5kaW5nQ3Vyc29yID0gbnVsbHB0cjsKICAgICBlbnF1ZXVlRXZlbnQoRXZl
bnQ6OmNyZWF0ZShldmVudE5hbWVzKCkuZXJyb3JFdmVudCwgdHJ1ZSwgdHJ1ZSkpOwogfQogCkBA
IC00MDQsNyArNDA0LDcgQEAgdm9pZCBJREJSZXF1ZXN0OjpvblN1Y2Nlc3NJbnRlcm5hbChjb25z
dCBEZXByZWNhdGVkOjpTY3JpcHRWYWx1ZSYgdmFsdWUpCiAgICAgbV9yZXN1bHQgPSBJREJBbnk6
OmNyZWF0ZSh2YWx1ZSk7CiAgICAgaWYgKG1fcGVuZGluZ0N1cnNvcikgewogICAgICAgICBtX3Bl
bmRpbmdDdXJzb3ItPmNsb3NlKCk7Ci0gICAgICAgIG1fcGVuZGluZ0N1cnNvci5jbGVhcigpOwor
ICAgICAgICBtX3BlbmRpbmdDdXJzb3IgPSBudWxscHRyOwogICAgIH0KICAgICBlbnF1ZXVlRXZl
bnQoY3JlYXRlU3VjY2Vzc0V2ZW50KCkpOwogfQpAQCAtNTUzLDcgKzU1Myw3IEBAIHZvaWQgSURC
UmVxdWVzdDo6dHJhbnNhY3Rpb25EaWRGaW5pc2hBbmREaXNwYXRjaCgpCiAgICAgQVNTRVJUKG1f
dHJhbnNhY3Rpb24tPmlzVmVyc2lvbkNoYW5nZSgpKTsKICAgICBBU1NFUlQobV9yZWFkeVN0YXRl
ID09IERPTkUpOwogICAgIEFTU0VSVChzY3JpcHRFeGVjdXRpb25Db250ZXh0KCkpOwotICAgIG1f
dHJhbnNhY3Rpb24uY2xlYXIoKTsKKyAgICBtX3RyYW5zYWN0aW9uID0gbnVsbHB0cjsKICAgICBt
X3JlYWR5U3RhdGUgPSBQRU5ESU5HOwogfQogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9N
b2R1bGVzL2luZGV4ZWRkYi9JREJUcmFuc2FjdGlvbi5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1
bGVzL2luZGV4ZWRkYi9JREJUcmFuc2FjdGlvbi5jcHAKaW5kZXggOTk0OGJjNzJiYjI1MmVhZDgw
NGVkMDM3MTUzZDI0MTRlYThiMWVhNy4uNmVjMjlmYTY3ODRjNzhlN2IwNGJhMzA0ZTI0ODYzMDcz
OTJlZDg5YSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9pbmRleGVkZGIvSURC
VHJhbnNhY3Rpb24uY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvaW5kZXhlZGRiL0lE
QlRyYW5zYWN0aW9uLmNwcApAQCAtMjQwLDcgKzI0MCw3IEBAIHZvaWQgSURCVHJhbnNhY3Rpb246
Ok9wZW5DdXJzb3JOb3RpZmllcjo6Y3Vyc29yRmluaXNoZWQoKQogICAgIGlmIChtX2N1cnNvcikg
ewogICAgICAgICBtX3RyYW5zYWN0aW9uLT51bnJlZ2lzdGVyT3BlbkN1cnNvcihtX2N1cnNvcik7
CiAgICAgICAgIG1fY3Vyc29yID0gbnVsbHB0cjsKLSAgICAgICAgbV90cmFuc2FjdGlvbi5jbGVh
cigpOworICAgICAgICBtX3RyYW5zYWN0aW9uID0gbnVsbHB0cjsKICAgICB9CiB9CiAKZGlmZiAt
LWdpdCBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvbWVkaWFzb3VyY2UvTWVkaWFTb3VyY2UuY3Bw
IGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9tZWRpYXNvdXJjZS9NZWRpYVNvdXJjZS5jcHAKaW5k
ZXggOTExNzBhYTRlODJhMDE3NWZkMmE0MDFkYWU0NTQ5NzllNzBiYTJiNC4uYzQwZDZlMzAzNjll
Mzk5MTNjN2ZhOTc3MmMxZWQ2Y2YzMjQwNGUxOSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUv
TW9kdWxlcy9tZWRpYXNvdXJjZS9NZWRpYVNvdXJjZS5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUv
TW9kdWxlcy9tZWRpYXNvdXJjZS9NZWRpYVNvdXJjZS5jcHAKQEAgLTM5NCw3ICszOTQsNyBAQCB2
b2lkIE1lZGlhU291cmNlOjpzZXRSZWFkeVN0YXRlKGNvbnN0IEF0b21pY1N0cmluZyYgc3RhdGUp
CiAgICAgTE9HKE1lZGlhU291cmNlLCAiTWVkaWFTb3VyY2U6OnNldFJlYWR5U3RhdGUoJXApIDog
JXMgLT4gJXMiLCB0aGlzLCBvbGRTdGF0ZS5zdHJpbmcoKS5hc2NpaSgpLmRhdGEoKSwgc3RhdGUu
c3RyaW5nKCkuYXNjaWkoKS5kYXRhKCkpOwogCiAgICAgaWYgKHN0YXRlID09IGNsb3NlZEtleXdv
cmQoKSkgewotICAgICAgICBtX3ByaXZhdGUuY2xlYXIoKTsKKyAgICAgICAgbV9wcml2YXRlID0g
bnVsbHB0cjsKICAgICAgICAgbV9tZWRpYUVsZW1lbnQgPSBudWxscHRyOwogICAgICAgICBtX2R1
cmF0aW9uID0gTWVkaWFUaW1lOjppbnZhbGlkVGltZSgpOwogICAgIH0KQEAgLTgxMSw3ICs4MTEs
NyBAQCB2b2lkIE1lZGlhU291cmNlOjpzdG9wKCkKICAgICBtX2FzeW5jRXZlbnRRdWV1ZS5jbG9z
ZSgpOwogICAgIGlmICghaXNDbG9zZWQoKSkKICAgICAgICAgc2V0UmVhZHlTdGF0ZShjbG9zZWRL
ZXl3b3JkKCkpOwotICAgIG1fcHJpdmF0ZS5jbGVhcigpOworICAgIG1fcHJpdmF0ZSA9IG51bGxw
dHI7CiB9CiAKIGJvb2wgTWVkaWFTb3VyY2U6OmNhblN1c3BlbmRGb3JQYWdlQ2FjaGUoKSBjb25z
dApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9tZWRpYXN0cmVhbS9SVENTZXNz
aW9uRGVzY3JpcHRpb25SZXF1ZXN0SW1wbC5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL21l
ZGlhc3RyZWFtL1JUQ1Nlc3Npb25EZXNjcmlwdGlvblJlcXVlc3RJbXBsLmNwcAppbmRleCBkNzEw
ZGMxOGY1ZTIzY2I2ZTEzMDhkZjI4ZjY1NmE2ODliY2IwNmQ3Li4zMDEzMzRkY2Q1MTA4NWQzMjVm
NTI0ZjhlZDk5NGFlY2I4ZTY4NDQzIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVz
L21lZGlhc3RyZWFtL1JUQ1Nlc3Npb25EZXNjcmlwdGlvblJlcXVlc3RJbXBsLmNwcAorKysgYi9T
b3VyY2UvV2ViQ29yZS9Nb2R1bGVzL21lZGlhc3RyZWFtL1JUQ1Nlc3Npb25EZXNjcmlwdGlvblJl
cXVlc3RJbXBsLmNwcApAQCAtOTcsOCArOTcsOCBAQCBib29sIFJUQ1Nlc3Npb25EZXNjcmlwdGlv
blJlcXVlc3RJbXBsOjpjYW5TdXNwZW5kRm9yUGFnZUNhY2hlKCkgY29uc3QKIAogdm9pZCBSVENT
ZXNzaW9uRGVzY3JpcHRpb25SZXF1ZXN0SW1wbDo6Y2xlYXIoKQogewotICAgIG1fc3VjY2Vzc0Nh
bGxiYWNrLmNsZWFyKCk7Ci0gICAgbV9lcnJvckNhbGxiYWNrLmNsZWFyKCk7CisgICAgbV9zdWNj
ZXNzQ2FsbGJhY2sgPSBudWxscHRyOworICAgIG1fZXJyb3JDYWxsYmFjayA9IG51bGxwdHI7CiB9
CiAKIH0gLy8gbmFtZXNwYWNlIFdlYkNvcmUKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL01v
ZHVsZXMvbWVkaWFzdHJlYW0vUlRDU3RhdHNSZXF1ZXN0SW1wbC5jcHAgYi9Tb3VyY2UvV2ViQ29y
ZS9Nb2R1bGVzL21lZGlhc3RyZWFtL1JUQ1N0YXRzUmVxdWVzdEltcGwuY3BwCmluZGV4IGRlYjE5
YTlhZjkwZGNmYzQ1NjM3Mzg2OGUxNWY4ODM1ZGZiZTRjOGYuLmQwMDBiMTFkZjE3ZmVmMTAxMGUz
ODk5Yjc3MDIxY2U3OTIwMWY3ZTkgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMv
bWVkaWFzdHJlYW0vUlRDU3RhdHNSZXF1ZXN0SW1wbC5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUv
TW9kdWxlcy9tZWRpYXN0cmVhbS9SVENTdGF0c1JlcXVlc3RJbXBsLmNwcApAQCAtMTA0LDcgKzEw
NCw3IEBAIGJvb2wgUlRDU3RhdHNSZXF1ZXN0SW1wbDo6Y2FuU3VzcGVuZEZvclBhZ2VDYWNoZSgp
IGNvbnN0CiAKIHZvaWQgUlRDU3RhdHNSZXF1ZXN0SW1wbDo6Y2xlYXIoKQogewotICAgIG1fc3Vj
Y2Vzc0NhbGxiYWNrLmNsZWFyKCk7CisgICAgbV9zdWNjZXNzQ2FsbGJhY2sgPSBudWxscHRyOwog
fQogCiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvbWVkaWFzdHJlYW0vUlRD
Vm9pZFJlcXVlc3RJbXBsLmNwcCBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvbWVkaWFzdHJlYW0v
UlRDVm9pZFJlcXVlc3RJbXBsLmNwcAppbmRleCA4MmY4YTEyMmRkMzA5ZTNhZDBlNDM5NGVjOWNj
MzVlZTAwOWRhZDM3Li43MDZmOTA3NThmZGMxNWRjOTdlZmExYTVkMzExMmM0ZTJhYjQ5ZGE2IDEw
MDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL21lZGlhc3RyZWFtL1JUQ1ZvaWRSZXF1
ZXN0SW1wbC5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9tZWRpYXN0cmVhbS9SVENW
b2lkUmVxdWVzdEltcGwuY3BwCkBAIC05NCw4ICs5NCw4IEBAIGJvb2wgUlRDVm9pZFJlcXVlc3RJ
bXBsOjpjYW5TdXNwZW5kRm9yUGFnZUNhY2hlKCkgY29uc3QKIAogdm9pZCBSVENWb2lkUmVxdWVz
dEltcGw6OmNsZWFyKCkKIHsKLSAgICBtX3N1Y2Nlc3NDYWxsYmFjay5jbGVhcigpOwotICAgIG1f
ZXJyb3JDYWxsYmFjay5jbGVhcigpOworICAgIG1fc3VjY2Vzc0NhbGxiYWNrID0gbnVsbHB0cjsK
KyAgICBtX2Vycm9yQ2FsbGJhY2sgPSBudWxscHRyOwogfQogCiB9IC8vIG5hbWVzcGFjZSBXZWJD
b3JlCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL3dlYmF1ZGlvL0F1ZGlvQ29u
dGV4dC5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL3dlYmF1ZGlvL0F1ZGlvQ29udGV4dC5j
cHAKaW5kZXggNWEzZGVhMGE1MDcxZDhkYWZiY2RmZTA1NWE4ZDA1Y2Q4MDM0MGRhZi4uZmFhOTk2
Yjc0Y2Y4YjBmYjJiMDQzMjJkYjE3YmE2Njg2MzYwYzliOSAxMDA2NDQKLS0tIGEvU291cmNlL1dl
YkNvcmUvTW9kdWxlcy93ZWJhdWRpby9BdWRpb0NvbnRleHQuY3BwCisrKyBiL1NvdXJjZS9XZWJD
b3JlL01vZHVsZXMvd2ViYXVkaW8vQXVkaW9Db250ZXh0LmNwcApAQCAtMjMxLDcgKzIzMSw3IEBA
IHZvaWQgQXVkaW9Db250ZXh0OjpjbGVhcigpCiB7CiAgICAgLy8gV2UgaGF2ZSB0byByZWxlYXNl
IG91ciByZWZlcmVuY2UgdG8gdGhlIGRlc3RpbmF0aW9uIG5vZGUgYmVmb3JlIHRoZSBjb250ZXh0
IHdpbGwgZXZlciBiZSBkZWxldGVkIHNpbmNlIHRoZSBkZXN0aW5hdGlvbiBub2RlIGhvbGRzIGEg
cmVmZXJlbmNlIHRvIHRoZSBjb250ZXh0LgogICAgIGlmIChtX2Rlc3RpbmF0aW9uTm9kZSkKLSAg
ICAgICAgbV9kZXN0aW5hdGlvbk5vZGUuY2xlYXIoKTsKKyAgICAgICAgbV9kZXN0aW5hdGlvbk5v
ZGUgPSBudWxscHRyOwogCiAgICAgLy8gQXVkaW8gdGhyZWFkIGlzIGRlYWQuIE5vYm9keSB3aWxs
IHNjaGVkdWxlIG5vZGUgZGVsZXRpb24gYWN0aW9uLiBMZXQncyBkbyBpdCBvdXJzZWx2ZXMuCiAg
ICAgZG8gewpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy93ZWJkYXRhYmFzZS9T
UUxUcmFuc2FjdGlvbkJhY2tlbmQuY3BwIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy93ZWJkYXRh
YmFzZS9TUUxUcmFuc2FjdGlvbkJhY2tlbmQuY3BwCmluZGV4IGRhMjU0YjY1NGYyMzVlNWExODJl
NGQ3Zjg0YzM5YTE1NWU0ZTgwZDYuLmQzMTEzODBlNDQ4NTgxYWQ5ZTQzN2QyNDVlZWEyOWY2YTlm
OWMwOTYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvd2ViZGF0YWJhc2UvU1FM
VHJhbnNhY3Rpb25CYWNrZW5kLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL3dlYmRh
dGFiYXNlL1NRTFRyYW5zYWN0aW9uQmFja2VuZC5jcHAKQEAgLTg0NSw3ICs4NDUsNyBAQCB2b2lk
IFNRTFRyYW5zYWN0aW9uQmFja2VuZDo6cmVsZWFzZU9yaWdpbkxvY2tJZk5lZWRlZCgpCiB7CiAg
ICAgaWYgKG1fb3JpZ2luTG9jaykgewogICAgICAgICBtX29yaWdpbkxvY2stPnVubG9jaygpOwot
ICAgICAgICBtX29yaWdpbkxvY2suY2xlYXIoKTsKKyAgICAgICAgbV9vcmlnaW5Mb2NrID0gbnVs
bHB0cjsKICAgICB9CiB9CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvd2Vi
c29ja2V0cy9Xb3JrZXJUaHJlYWRhYmxlV2ViU29ja2V0Q2hhbm5lbC5jcHAgYi9Tb3VyY2UvV2Vi
Q29yZS9Nb2R1bGVzL3dlYnNvY2tldHMvV29ya2VyVGhyZWFkYWJsZVdlYlNvY2tldENoYW5uZWwu
Y3BwCmluZGV4IGJjYmRhZjk0YzcwMTE3YzNkMTQzOWE4NDNlYTdjYjAzMjhjMmVlODUuLjM0YjY0
ZDc3YTBmNThkOGM1N2ZiYzA4MjYyYTkyMzM1NWE4ZWQxZDYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9X
ZWJDb3JlL01vZHVsZXMvd2Vic29ja2V0cy9Xb3JrZXJUaHJlYWRhYmxlV2ViU29ja2V0Q2hhbm5l
bC5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy93ZWJzb2NrZXRzL1dvcmtlclRocmVh
ZGFibGVXZWJTb2NrZXRDaGFubmVsLmNwcApAQCAtMTI2LDcgKzEyNiw3IEBAIHZvaWQgV29ya2Vy
VGhyZWFkYWJsZVdlYlNvY2tldENoYW5uZWw6OmZhaWwoY29uc3QgU3RyaW5nJiByZWFzb24pCiB2
b2lkIFdvcmtlclRocmVhZGFibGVXZWJTb2NrZXRDaGFubmVsOjpkaXNjb25uZWN0KCkKIHsKICAg
ICBtX2JyaWRnZS0+ZGlzY29ubmVjdCgpOwotICAgIG1fYnJpZGdlLmNsZWFyKCk7CisgICAgbV9i
cmlkZ2UgPSBudWxscHRyOwogfQogCiB2b2lkIFdvcmtlclRocmVhZGFibGVXZWJTb2NrZXRDaGFu
bmVsOjpzdXNwZW5kKCkKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL2pzL1dl
YkNvcmVKU0NsaWVudERhdGEuaCBiL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL2pzL1dlYkNvcmVK
U0NsaWVudERhdGEuaAppbmRleCA2NTQ1MTMzNWQzZDhhOTIxZjU4MTYyMmMyOWU0OTAwMGI5YTYz
NjZjLi40MzAyZDY4ZTVjOGM2ZDc4N2Q0NzI2MjQxNGJjZWI5OGQyMmUwMTllIDEwMDY0NAotLS0g
YS9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9qcy9XZWJDb3JlSlNDbGllbnREYXRhLmgKKysrIGIv
U291cmNlL1dlYkNvcmUvYmluZGluZ3MvanMvV2ViQ29yZUpTQ2xpZW50RGF0YS5oCkBAIC00NCw3
ICs0NCw3IEBAIHB1YmxpYzoKICAgICAgICAgQVNTRVJUKG1fd29ybGRTZXQuY29udGFpbnMobV9u
b3JtYWxXb3JsZC5nZXQoKSkpOwogICAgICAgICBBU1NFUlQobV93b3JsZFNldC5zaXplKCkgPT0g
MSk7CiAgICAgICAgIEFTU0VSVChtX25vcm1hbFdvcmxkLT5oYXNPbmVSZWYoKSk7Ci0gICAgICAg
IG1fbm9ybWFsV29ybGQuY2xlYXIoKTsKKyAgICAgICAgbV9ub3JtYWxXb3JsZCA9IG51bGxwdHI7
CiAgICAgICAgIEFTU0VSVChtX3dvcmxkU2V0LmlzRW1wdHkoKSk7CiAgICAgfQogCmRpZmYgLS1n
aXQgYS9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9qcy9Xb3JrZXJTY3JpcHRDb250cm9sbGVyLmNw
cCBiL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL2pzL1dvcmtlclNjcmlwdENvbnRyb2xsZXIuY3Bw
CmluZGV4IDkwZTBmZjUxMDg4YWE2NTQ5M2RlZWNlNWM5NGY5YTBkYzAwN2NlY2EuLjI4YzllZjBm
MjcwM2YzMjNjNjFjOGYyMjQ1ODljYzY5ZDZkZDZiZTYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJD
b3JlL2JpbmRpbmdzL2pzL1dvcmtlclNjcmlwdENvbnRyb2xsZXIuY3BwCisrKyBiL1NvdXJjZS9X
ZWJDb3JlL2JpbmRpbmdzL2pzL1dvcmtlclNjcmlwdENvbnRyb2xsZXIuY3BwCkBAIC02Miw3ICs2
Miw3IEBAIFdvcmtlclNjcmlwdENvbnRyb2xsZXI6On5Xb3JrZXJTY3JpcHRDb250cm9sbGVyKCkK
IHsKICAgICBKU0xvY2tIb2xkZXIgbG9jayh2bSgpKTsKICAgICBtX3dvcmtlckdsb2JhbFNjb3Bl
V3JhcHBlci5jbGVhcigpOwotICAgIG1fdm0uY2xlYXIoKTsKKyAgICBtX3ZtID0gbnVsbHB0cjsK
IH0KIAogdm9pZCBXb3JrZXJTY3JpcHRDb250cm9sbGVyOjppbml0U2NyaXB0KCkKZGlmZiAtLWdp
dCBhL1NvdXJjZS9XZWJDb3JlL2NvbnRlbnRleHRlbnNpb25zL0NvbnRlbnRFeHRlbnNpb25QYXJz
ZXIuY3BwIGIvU291cmNlL1dlYkNvcmUvY29udGVudGV4dGVuc2lvbnMvQ29udGVudEV4dGVuc2lv
blBhcnNlci5jcHAKaW5kZXggMDIyNjUyYjJkNjlmODkxY2VhNzM5NGExMDlkN2ZiZGY1MDEyYWIy
NS4uN2JmNTZlN2Q0YjJlNjc4NmMzM2Y3ZTg5NTJmYzg1NDcyODhiNWYyYiAxMDA2NDQKLS0tIGEv
U291cmNlL1dlYkNvcmUvY29udGVudGV4dGVuc2lvbnMvQ29udGVudEV4dGVuc2lvblBhcnNlci5j
cHAKKysrIGIvU291cmNlL1dlYkNvcmUvY29udGVudGV4dGVuc2lvbnMvQ29udGVudEV4dGVuc2lv
blBhcnNlci5jcHAKQEAgLTI3Nyw3ICsyNzcsNyBAQCBzdGQ6OmVycm9yX2NvZGUgcGFyc2VSdWxl
TGlzdChjb25zdCBTdHJpbmcmIHJ1bGVzLCBWZWN0b3I8Q29udGVudEV4dGVuc2lvblJ1bGU+Jgog
ICAgIEV4ZWNTdGF0ZSogZXhlYyA9IGdsb2JhbE9iamVjdC0+Z2xvYmFsRXhlYygpOwogICAgIGF1
dG8gZXJyb3IgPSBsb2FkRW5jb2RlZFJ1bGVzKCpleGVjLCBydWxlcywgcnVsZUxpc3QpOwogCi0g
ICAgdm0uY2xlYXIoKTsKKyAgICB2bSA9IG51bGxwdHI7CiAKICAgICBpZiAoZXJyb3IpCiAgICAg
ICAgIHJldHVybiBlcnJvcjsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2Nzcy9DU1NQYXJz
ZXIuY3BwIGIvU291cmNlL1dlYkNvcmUvY3NzL0NTU1BhcnNlci5jcHAKaW5kZXggNWU4ZjA1Y2Uw
ODE2ZTcxNjBlNTNlNDQzYTBiMTNlNDRiODQyZjU2Ny4uZmY1MjI0N2FlYjA1NjYxNDcyZTExN2Ey
ZWI4NTA5NmIwZmZiMGMxNyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvY3NzL0NTU1BhcnNl
ci5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvY3NzL0NTU1BhcnNlci5jcHAKQEAgLTQ1MDIsMTUg
KzQ1MDIsMTUgQEAgdm9pZCBDU1NQYXJzZXI6OnBhcnNlRmlsbFBvc2l0aW9uKENTU1BhcnNlclZh
bHVlTGlzdCYgdmFsdWVMaXN0LCBSZWZQdHI8Q1NTVmFsdWUKICAgICBpZiAodmFsdWUyKQogICAg
ICAgICB2YWx1ZUxpc3QubmV4dCgpOwogICAgIGVsc2UgewotICAgICAgICB2YWx1ZTEuY2xlYXIo
KTsKKyAgICAgICAgdmFsdWUxID0gbnVsbHB0cjsKICAgICAgICAgcmV0dXJuOwogICAgIH0KIAog
ICAgIFJlZlB0cjxDU1NQcmltaXRpdmVWYWx1ZT4gcGFyc2VkVmFsdWUxID0gZG93bmNhc3Q8Q1NT
UHJpbWl0aXZlVmFsdWU+KHZhbHVlMS5nZXQoKSk7CiAgICAgUmVmUHRyPENTU1ByaW1pdGl2ZVZh
bHVlPiBwYXJzZWRWYWx1ZTIgPSBkb3duY2FzdDxDU1NQcmltaXRpdmVWYWx1ZT4odmFsdWUyLmdl
dCgpKTsKIAotICAgIHZhbHVlMS5jbGVhcigpOwotICAgIHZhbHVlMi5jbGVhcigpOworICAgIHZh
bHVlMSA9IG51bGxwdHI7CisgICAgdmFsdWUyID0gbnVsbHB0cjsKIAogICAgIC8vIFBlciBDU1Mz
IHN5bnRheCwgPHBvc2l0aW9uPiBjYW4ndCBoYXZlICdjZW50ZXInIGFzIGl0cyBzZWNvbmQga2V5
d29yZCBhcyB3ZSBoYXZlIG1vcmUgYXJndW1lbnRzIHRvIGZvbGxvdy4KICAgICBpZiAocGFyc2Vk
VmFsdWUyLT5nZXRWYWx1ZUlEKCkgPT0gQ1NTVmFsdWVDZW50ZXIpCkBAIC00NTQ5LDcgKzQ1NDks
NyBAQCB2b2lkIENTU1BhcnNlcjo6cGFyc2UyVmFsdWVzRmlsbFBvc2l0aW9uKENTU1BhcnNlclZh
bHVlTGlzdCYgdmFsdWVMaXN0LCBSZWZQdHI8QwogICAgICAgICAgICAgdmFsdWVMaXN0Lm5leHQo
KTsKICAgICAgICAgZWxzZSB7CiAgICAgICAgICAgICBpZiAoIWluU2hvcnRoYW5kKCkpIHsKLSAg
ICAgICAgICAgICAgICB2YWx1ZTEuY2xlYXIoKTsKKyAgICAgICAgICAgICAgICB2YWx1ZTEgPSBu
dWxscHRyOwogICAgICAgICAgICAgICAgIHJldHVybjsKICAgICAgICAgICAgIH0KICAgICAgICAg
fQpAQCAtMTIxODQsNyArMTIxODQsNyBAQCBQYXNzUmVmUHRyPENTU1J1bGVTb3VyY2VEYXRhPiBD
U1NQYXJzZXI6OnBvcFJ1bGVEYXRhKCkKICAgICAgICAgcmV0dXJuIG51bGxwdHI7CiAKICAgICBB
U1NFUlQoIW1fY3VycmVudFJ1bGVEYXRhU3RhY2stPmlzRW1wdHkoKSk7Ci0gICAgbV9jdXJyZW50
UnVsZURhdGEuY2xlYXIoKTsKKyAgICBtX2N1cnJlbnRSdWxlRGF0YSA9IG51bGxwdHI7CiAgICAg
UmVmUHRyPENTU1J1bGVTb3VyY2VEYXRhPiBkYXRhID0gbV9jdXJyZW50UnVsZURhdGFTdGFjay0+
bGFzdCgpOwogICAgIG1fY3VycmVudFJ1bGVEYXRhU3RhY2stPnJlbW92ZUxhc3QoKTsKICAgICBy
ZXR1cm4gZGF0YS5yZWxlYXNlKCk7CkBAIC0xMjYwNSw3ICsxMjYwNSw3IEBAIHZvaWQgQ1NTUGFy
c2VyOjptYXJrUnVsZUJvZHlTdGFydCgpCiB7CiAgICAgaWYgKCFpc0V4dHJhY3RpbmdTb3VyY2VE
YXRhKCkpCiAgICAgICAgIHJldHVybjsKLSAgICBtX2N1cnJlbnRSdWxlRGF0YS5jbGVhcigpOwor
ICAgIG1fY3VycmVudFJ1bGVEYXRhID0gbnVsbHB0cjsKICAgICB1bnNpZ25lZCBvZmZzZXQgPSB0
b2tlblN0YXJ0T2Zmc2V0KCk7CiAgICAgaWYgKHRva2VuU3RhcnRDaGFyKCkgPT0gJ3snKQogICAg
ICAgICArK29mZnNldDsgLy8gU2tpcCB0aGUgcnVsZSBib2R5IG9wZW5pbmcgYnJhY2UuCmRpZmYg
LS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9kb20vRG9jdW1lbnQuY3BwIGIvU291cmNlL1dlYkNvcmUv
ZG9tL0RvY3VtZW50LmNwcAppbmRleCBlNTAyNjY5NjEyZDdjNGM1ODI4MzRhNGMxYjE5YmIwMzg5
NGVkYWY5Li5mNjQwYjdjZmJkZjE0MTg5YzFlOTg4ZjRlYmFkYjRkYzUyOGFlMWJhIDEwMDY0NAot
LS0gYS9Tb3VyY2UvV2ViQ29yZS9kb20vRG9jdW1lbnQuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3Jl
L2RvbS9Eb2N1bWVudC5jcHAKQEAgLTI0MjQsNyArMjQyNCw3IEBAIHZvaWQgRG9jdW1lbnQ6OmRl
dGFjaFBhcnNlcigpCiAgICAgaWYgKCFtX3BhcnNlcikKICAgICAgICAgcmV0dXJuOwogICAgIG1f
cGFyc2VyLT5kZXRhY2goKTsKLSAgICBtX3BhcnNlci5jbGVhcigpOworICAgIG1fcGFyc2VyID0g
bnVsbHB0cjsKIH0KIAogdm9pZCBEb2N1bWVudDo6Y2FuY2VsUGFyc2luZygpCkBAIC01ODgyLDcg
KzU4ODIsNyBAQCB2b2lkIERvY3VtZW50OjpjbGVhclNjcmlwdGVkQW5pbWF0aW9uQ29udHJvbGxl
cigpCiAgICAgLy8gRklYTUU6IGNvbnNpZGVyIHVzaW5nIEFjdGl2ZURPTU9iamVjdC4KICAgICBp
ZiAobV9zY3JpcHRlZEFuaW1hdGlvbkNvbnRyb2xsZXIpCiAgICAgICAgIG1fc2NyaXB0ZWRBbmlt
YXRpb25Db250cm9sbGVyLT5jbGVhckRvY3VtZW50UG9pbnRlcigpOwotICAgIG1fc2NyaXB0ZWRB
bmltYXRpb25Db250cm9sbGVyLmNsZWFyKCk7CisgICAgbV9zY3JpcHRlZEFuaW1hdGlvbkNvbnRy
b2xsZXIgPSBudWxscHRyOwogfQogI2VuZGlmCiAgICAgCkBAIC02MzAwLDcgKzYzMDAsNyBAQCB2
b2lkIERvY3VtZW50Ojp1cGRhdGVIb3ZlckFjdGl2ZVN0YXRlKGNvbnN0IEhpdFRlc3RSZXF1ZXN0
JiByZXF1ZXN0LCBFbGVtZW50KiBpbgogICAgICAgICAgICAgY3Vyci0+c2V0QWN0aXZlKGZhbHNl
KTsKICAgICAgICAgICAgIG1fdXNlckFjdGlvbkVsZW1lbnRzLnNldEluQWN0aXZlQ2hhaW4oY3Vy
ciwgZmFsc2UpOwogICAgICAgICB9Ci0gICAgICAgIG1fYWN0aXZlRWxlbWVudC5jbGVhcigpOwor
ICAgICAgICBtX2FjdGl2ZUVsZW1lbnQgPSBudWxscHRyOwogICAgIH0gZWxzZSB7CiAgICAgICAg
IEVsZW1lbnQqIG5ld0FjdGl2ZUVsZW1lbnQgPSBpbm5lckVsZW1lbnRJbkRvY3VtZW50OwogICAg
ICAgICBpZiAoIW9sZEFjdGl2ZUVsZW1lbnQgJiYgbmV3QWN0aXZlRWxlbWVudCAmJiByZXF1ZXN0
LmFjdGl2ZSgpICYmICFyZXF1ZXN0LnRvdWNoTW92ZSgpKSB7CmRpZmYgLS1naXQgYS9Tb3VyY2Uv
V2ViQ29yZS9kb20vRG9jdW1lbnRNYXJrZXIuaCBiL1NvdXJjZS9XZWJDb3JlL2RvbS9Eb2N1bWVu
dE1hcmtlci5oCmluZGV4IDQ3OTQ5ZmU4MGJkZDliMTFlNjhkYWU2MjU2ZWEyYjMzMDZmYmI0NjMu
LmVjNTI0ODk0MGMxNjdlZDFjNmNhMDJiMzFkYzRlNDczNzlhNTU0MTkgMTAwNjQ0Ci0tLSBhL1Nv
dXJjZS9XZWJDb3JlL2RvbS9Eb2N1bWVudE1hcmtlci5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL2Rv
bS9Eb2N1bWVudE1hcmtlci5oCkBAIC0xMzEsNyArMTMxLDcgQEAgcHVibGljOgogICAgIERvY3Vt
ZW50TWFya2VyRGV0YWlscyogZGV0YWlscygpIGNvbnN0OwogCiAgICAgdm9pZCBzZXRBY3RpdmVN
YXRjaChib29sKTsKLSAgICB2b2lkIGNsZWFyRGV0YWlscygpIHsgbV9kZXRhaWxzLmNsZWFyKCk7
IH0KKyAgICB2b2lkIGNsZWFyRGV0YWlscygpIHsgbV9kZXRhaWxzID0gbnVsbHB0cjsgfQogCiAg
ICAgLy8gT2Zmc2V0IG1vZGlmaWNhdGlvbnMgYXJlIGRvbmUgYnkgRG9jdW1lbnRNYXJrZXJDb250
cm9sbGVyLgogICAgIC8vIE90aGVyIGNsYXNzZXMgc2hvdWxkIG5vdCBjYWxsIGZvbGxvd2luZyBz
ZXR0ZXJzLgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvZG9tL0VsZW1lbnQuY3BwIGIvU291
cmNlL1dlYkNvcmUvZG9tL0VsZW1lbnQuY3BwCmluZGV4IGNjYzYzOWE1NTU2NjZiNTcwNTA1MDlk
OThhZjY0NDI1MmI0YzM2MDkuLmMwZjQ3YWJhNTAxMGYwMDNhZGU0YmZlOGQ1MjczOTYxMDVjNDBh
MzIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2RvbS9FbGVtZW50LmNwcAorKysgYi9Tb3Vy
Y2UvV2ViQ29yZS9kb20vRWxlbWVudC5jcHAKQEAgLTMyMDcsNyArMzIwNyw3IEBAIHZvaWQgRWxl
bWVudDo6Y2xvbmVBdHRyaWJ1dGVzRnJvbUVsZW1lbnQoY29uc3QgRWxlbWVudCYgb3RoZXIpCiAK
ICAgICBvdGhlci5zeW5jaHJvbml6ZUFsbEF0dHJpYnV0ZXMoKTsKICAgICBpZiAoIW90aGVyLm1f
ZWxlbWVudERhdGEpIHsKLSAgICAgICAgbV9lbGVtZW50RGF0YS5jbGVhcigpOworICAgICAgICBt
X2VsZW1lbnREYXRhID0gbnVsbHB0cjsKICAgICAgICAgcmV0dXJuOwogICAgIH0KIApkaWZmIC0t
Z2l0IGEvU291cmNlL1dlYkNvcmUvZG9tL05vZGVJdGVyYXRvci5jcHAgYi9Tb3VyY2UvV2ViQ29y
ZS9kb20vTm9kZUl0ZXJhdG9yLmNwcAppbmRleCA1OGIyYjlmNjRjNzZlN2VjNjhhNzRmY2U2ZWVj
NDU3NzY4YzVmZmEzLi42MWFlMjhmNmY4ZTk4OTdjNGVhNjAxYjM1M2NkYTA5MWY0MjE0Y2UyIDEw
MDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9kb20vTm9kZUl0ZXJhdG9yLmNwcAorKysgYi9Tb3Vy
Y2UvV2ViQ29yZS9kb20vTm9kZUl0ZXJhdG9yLmNwcApAQCAtNDUsNyArNDUsNyBAQCBOb2RlSXRl
cmF0b3I6Ok5vZGVQb2ludGVyOjpOb2RlUG9pbnRlcihQYXNzUmVmUHRyPE5vZGU+IG4sIGJvb2wg
YikKIAogdm9pZCBOb2RlSXRlcmF0b3I6Ok5vZGVQb2ludGVyOjpjbGVhcigpCiB7Ci0gICAgbm9k
ZS5jbGVhcigpOworICAgIG5vZGUgPSBudWxscHRyOwogfQogCiBib29sIE5vZGVJdGVyYXRvcjo6
Tm9kZVBvaW50ZXI6Om1vdmVUb05leHQoTm9kZSogcm9vdCkKQEAgLTE1MSw3ICsxNTEsNyBAQCB2
b2lkIE5vZGVJdGVyYXRvcjo6ZGV0YWNoKCkKIHsKICAgICByb290KCktPmRvY3VtZW50KCkuZGV0
YWNoTm9kZUl0ZXJhdG9yKHRoaXMpOwogICAgIG1fZGV0YWNoZWQgPSB0cnVlOwotICAgIG1fcmVm
ZXJlbmNlTm9kZS5ub2RlLmNsZWFyKCk7CisgICAgbV9yZWZlcmVuY2VOb2RlLm5vZGUgPSBudWxs
cHRyOwogfQogCiB2b2lkIE5vZGVJdGVyYXRvcjo6bm9kZVdpbGxCZVJlbW92ZWQoTm9kZSYgcmVt
b3ZlZE5vZGUpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9kb20vUG9zaXRpb24uaCBiL1Nv
dXJjZS9XZWJDb3JlL2RvbS9Qb3NpdGlvbi5oCmluZGV4IDBmMzE2ZGE4NTg4YTUxOTI5ZmQ0NzUx
YzlmY2IzM2I5OTE2NzMzZWIuLjYwM2U4OGYzZWMxYjFhYzNhYTkyMjkwNWMwMTM4MTIzODQyMGRk
ZWIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2RvbS9Qb3NpdGlvbi5oCisrKyBiL1NvdXJj
ZS9XZWJDb3JlL2RvbS9Qb3NpdGlvbi5oCkBAIC05Miw3ICs5Miw3IEBAIHB1YmxpYzoKIAogICAg
IEFuY2hvclR5cGUgYW5jaG9yVHlwZSgpIGNvbnN0IHsgcmV0dXJuIHN0YXRpY19jYXN0PEFuY2hv
clR5cGU+KG1fYW5jaG9yVHlwZSk7IH0KIAotICAgIHZvaWQgY2xlYXIoKSB7IG1fYW5jaG9yTm9k
ZS5jbGVhcigpOyBtX29mZnNldCA9IDA7IG1fYW5jaG9yVHlwZSA9IFBvc2l0aW9uSXNPZmZzZXRJ
bkFuY2hvcjsgbV9pc0xlZ2FjeUVkaXRpbmdQb3NpdGlvbiA9IGZhbHNlOyB9CisgICAgdm9pZCBj
bGVhcigpIHsgbV9hbmNob3JOb2RlID0gbnVsbHB0cjsgbV9vZmZzZXQgPSAwOyBtX2FuY2hvclR5
cGUgPSBQb3NpdGlvbklzT2Zmc2V0SW5BbmNob3I7IG1faXNMZWdhY3lFZGl0aW5nUG9zaXRpb24g
PSBmYWxzZTsgfQogCiAgICAgLy8gVGhlc2UgYXJlIGFsd2F5cyBET00gY29tcGxpYW50IHZhbHVl
cy4gIEVkaXRpbmcgcG9zaXRpb25zIGxpa2UgW2ltZywgMF0gKGFrYSBbaW1nLCBiZWZvcmVdKQog
ICAgIC8vIHdpbGwgcmV0dXJuIGltZy0+cGFyZW50Tm9kZSgpIGFuZCBpbWctPmNvbXB1dGVOb2Rl
SW5kZXgoKSBmcm9tIHRoZXNlIGZ1bmN0aW9ucy4KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3Jl
L2RvbS9SYW5nZUJvdW5kYXJ5UG9pbnQuaCBiL1NvdXJjZS9XZWJDb3JlL2RvbS9SYW5nZUJvdW5k
YXJ5UG9pbnQuaAppbmRleCBiMDRkYzA4YjU1YmYwMjFjY2RkZmIyNmFlZTVkMzg0YjExMjZhZTAz
Li44Yzc5OWIzMzljODQwZWVkMDA0YzY2MWMwNTRlNTQwZWYxNTU0YzQ0IDEwMDY0NAotLS0gYS9T
b3VyY2UvV2ViQ29yZS9kb20vUmFuZ2VCb3VuZGFyeVBvaW50LmgKKysrIGIvU291cmNlL1dlYkNv
cmUvZG9tL1JhbmdlQm91bmRhcnlQb2ludC5oCkBAIC0xMTIsOSArMTEyLDkgQEAgaW5saW5lIGlu
dCBSYW5nZUJvdW5kYXJ5UG9pbnQ6Om9mZnNldCgpIGNvbnN0CiAKIGlubGluZSB2b2lkIFJhbmdl
Qm91bmRhcnlQb2ludDo6Y2xlYXIoKQogewotICAgIG1fY29udGFpbmVyTm9kZS5jbGVhcigpOwor
ICAgIG1fY29udGFpbmVyTm9kZSA9IG51bGxwdHI7CiAgICAgbV9vZmZzZXRJbkNvbnRhaW5lciA9
IDA7Ci0gICAgbV9jaGlsZEJlZm9yZUJvdW5kYXJ5ID0gMDsKKyAgICBtX2NoaWxkQmVmb3JlQm91
bmRhcnkgPSBudWxscHRyOwogfQogCiBpbmxpbmUgdm9pZCBSYW5nZUJvdW5kYXJ5UG9pbnQ6OnNl
dChQYXNzUmVmUHRyPE5vZGU+IGNvbnRhaW5lciwgaW50IG9mZnNldCwgTm9kZSogY2hpbGRCZWZv
cmUpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9kb20vU3BhY2VTcGxpdFN0cmluZy5oIGIv
U291cmNlL1dlYkNvcmUvZG9tL1NwYWNlU3BsaXRTdHJpbmcuaAppbmRleCBlZjU2ODAxYTc3MTFk
ZjVhMmNiNTU4MTNiZTU2NzNmMTkwMzI4ZTczLi5mODViOTY0MjEyZDFkYThlODAyZDE2NjA4OTQ2
YzM3N2FlMGI3ODVkIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9kb20vU3BhY2VTcGxpdFN0
cmluZy5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL2RvbS9TcGFjZVNwbGl0U3RyaW5nLmgKQEAgLTEw
NSw3ICsxMDUsNyBAQCBwdWJsaWM6CiAgICAgYm9vbCBvcGVyYXRvciE9KGNvbnN0IFNwYWNlU3Bs
aXRTdHJpbmcmIG90aGVyKSBjb25zdCB7IHJldHVybiBtX2RhdGEgIT0gb3RoZXIubV9kYXRhOyB9
CiAKICAgICB2b2lkIHNldChjb25zdCBBdG9taWNTdHJpbmcmLCBib29sIHNob3VsZEZvbGRDYXNl
KTsKLSAgICB2b2lkIGNsZWFyKCkgeyBtX2RhdGEuY2xlYXIoKTsgfQorICAgIHZvaWQgY2xlYXIo
KSB7IG1fZGF0YSA9IG51bGxwdHI7IH0KIAogICAgIGJvb2wgY29udGFpbnMoY29uc3QgQXRvbWlj
U3RyaW5nJiBzdHJpbmcpIGNvbnN0IHsgcmV0dXJuIG1fZGF0YSAmJiBtX2RhdGEtPmNvbnRhaW5z
KHN0cmluZyk7IH0KICAgICBib29sIGNvbnRhaW5zQWxsKGNvbnN0IFNwYWNlU3BsaXRTdHJpbmcm
IG5hbWVzKSBjb25zdCB7IHJldHVybiAhbmFtZXMubV9kYXRhIHx8IChtX2RhdGEgJiYgbV9kYXRh
LT5jb250YWluc0FsbCgqbmFtZXMubV9kYXRhKSk7IH0KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJD
b3JlL2RvbS9TdHlsZWRFbGVtZW50LmNwcCBiL1NvdXJjZS9XZWJDb3JlL2RvbS9TdHlsZWRFbGVt
ZW50LmNwcAppbmRleCA1YjI2OTY2YjVjMzg3YjljODg3ZjgwMDZlMGQyNTBhNThmNjkzZDA5Li4w
ZWMwZDdmNWEwZWVhOWRjYjFlOGU2NWU1NjlkNjIwZGMyZDJjYzA0IDEwMDY0NAotLS0gYS9Tb3Vy
Y2UvV2ViQ29yZS9kb20vU3R5bGVkRWxlbWVudC5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvZG9t
L1N0eWxlZEVsZW1lbnQuY3BwCkBAIC0xODUsNyArMTg1LDcgQEAgaW5saW5lIHZvaWQgU3R5bGVk
RWxlbWVudDo6c2V0SW5saW5lU3R5bGVGcm9tU3RyaW5nKGNvbnN0IEF0b21pY1N0cmluZyYgbmV3
U3R5bGUKICAgICAvLyBXZSByZWNvbnN0cnVjdCB0aGUgcHJvcGVydHkgc2V0IGluc3RlYWQgb2Yg
bXV0YXRpbmcgaWYgdGhlcmUgaXMgbm8gQ1NTT00gd3JhcHBlci4KICAgICAvLyBUaGlzIG1ha2Vz
IHdyYXBwZXJsZXNzIHByb3BlcnR5IHNldHMgaW1tdXRhYmxlIGFuZCBzbyBjYWNoZWFibGUuCiAg
ICAgaWYgKGlubGluZVN0eWxlICYmICFpczxNdXRhYmxlU3R5bGVQcm9wZXJ0aWVzPigqaW5saW5l
U3R5bGUpKQotICAgICAgICBpbmxpbmVTdHlsZS5jbGVhcigpOworICAgICAgICBpbmxpbmVTdHls
ZSA9IG51bGxwdHI7CiAKICAgICBpZiAoIWlubGluZVN0eWxlKQogICAgICAgICBpbmxpbmVTdHls
ZSA9IENTU1BhcnNlcjo6cGFyc2VJbmxpbmVTdHlsZURlY2xhcmF0aW9uKG5ld1N0eWxlU3RyaW5n
LCB0aGlzKTsKQEAgLTIwMiw3ICsyMDIsNyBAQCB2b2lkIFN0eWxlZEVsZW1lbnQ6OnN0eWxlQXR0
cmlidXRlQ2hhbmdlZChjb25zdCBBdG9taWNTdHJpbmcmIG5ld1N0eWxlU3RyaW5nLCBBdAogICAg
IGlmIChuZXdTdHlsZVN0cmluZy5pc051bGwoKSkgewogICAgICAgICBpZiAoUHJvcGVydHlTZXRD
U1NTdHlsZURlY2xhcmF0aW9uKiBjc3NvbVdyYXBwZXIgPSBpbmxpbmVTdHlsZUNTU09NV3JhcHBl
cigpKQogICAgICAgICAgICAgY3Nzb21XcmFwcGVyLT5jbGVhclBhcmVudEVsZW1lbnQoKTsKLSAg
ICAgICAgZW5zdXJlVW5pcXVlRWxlbWVudERhdGEoKS5tX2lubGluZVN0eWxlLmNsZWFyKCk7Cisg
ICAgICAgIGVuc3VyZVVuaXF1ZUVsZW1lbnREYXRhKCkubV9pbmxpbmVTdHlsZSA9IG51bGxwdHI7
CiAgICAgfSBlbHNlIGlmIChyZWFzb24gPT0gTW9kaWZpZWRCeUNsb25pbmcgfHwgZG9jdW1lbnQo
KS5jb250ZW50U2VjdXJpdHlQb2xpY3koKS0+YWxsb3dJbmxpbmVTdHlsZShkb2N1bWVudCgpLnVy
bCgpLCBzdGFydExpbmVOdW1iZXIpKQogICAgICAgICBzZXRJbmxpbmVTdHlsZUZyb21TdHJpbmco
bmV3U3R5bGVTdHJpbmcpOwogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9lZGl0aW5nL0Fs
dGVybmF0aXZlVGV4dENvbnRyb2xsZXIuY3BwIGIvU291cmNlL1dlYkNvcmUvZWRpdGluZy9BbHRl
cm5hdGl2ZVRleHRDb250cm9sbGVyLmNwcAppbmRleCBmNWJjOTQ4OTFjYWY3ZTcwOTdhMDNlMjcy
OWU3MjhmMjYzNmYwOGJkLi4yNzVlNDMwZWI3M2MxNGNhMmNmZjMzYzY1Nzc2MWU0NjE5ZTVlYWU5
IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9lZGl0aW5nL0FsdGVybmF0aXZlVGV4dENvbnRy
b2xsZXIuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2VkaXRpbmcvQWx0ZXJuYXRpdmVUZXh0Q29u
dHJvbGxlci5jcHAKQEAgLTE0Nyw3ICsxNDcsNyBAQCB2b2lkIEFsdGVybmF0aXZlVGV4dENvbnRy
b2xsZXI6OnN0YXJ0QWx0ZXJuYXRpdmVUZXh0VUlUaW1lcihBbHRlcm5hdGl2ZVRleHRUeXBlCiAK
ICAgICAvLyBJZiB0eXBlIGlzIFBhbmVsVHlwZVJldmVyc2lvbiwgdGhlbiB0aGUgbmV3IHJhbmdl
IGhhcyBiZWVuIHNldC4gU28gd2Ugc2hvdWxkbid0IGNsZWFyIGl0LgogICAgIGlmICh0eXBlID09
IEFsdGVybmF0aXZlVGV4dFR5cGVDb3JyZWN0aW9uKQotICAgICAgICBtX2FsdGVybmF0aXZlVGV4
dEluZm8ucmFuZ2VXaXRoQWx0ZXJuYXRpdmUuY2xlYXIoKTsKKyAgICAgICAgbV9hbHRlcm5hdGl2
ZVRleHRJbmZvLnJhbmdlV2l0aEFsdGVybmF0aXZlID0gbnVsbHB0cjsKICAgICBtX2FsdGVybmF0
aXZlVGV4dEluZm8udHlwZSA9IHR5cGU7CiAgICAgbV90aW1lci5zdGFydE9uZVNob3QoY29ycmVj
dGlvblBhbmVsVGltZXJJbnRlcnZhbCk7CiB9CkBAIC0xNTUsNyArMTU1LDcgQEAgdm9pZCBBbHRl
cm5hdGl2ZVRleHRDb250cm9sbGVyOjpzdGFydEFsdGVybmF0aXZlVGV4dFVJVGltZXIoQWx0ZXJu
YXRpdmVUZXh0VHlwZQogdm9pZCBBbHRlcm5hdGl2ZVRleHRDb250cm9sbGVyOjpzdG9wQWx0ZXJu
YXRpdmVUZXh0VUlUaW1lcigpCiB7CiAgICAgbV90aW1lci5zdG9wKCk7Ci0gICAgbV9hbHRlcm5h
dGl2ZVRleHRJbmZvLnJhbmdlV2l0aEFsdGVybmF0aXZlLmNsZWFyKCk7CisgICAgbV9hbHRlcm5h
dGl2ZVRleHRJbmZvLnJhbmdlV2l0aEFsdGVybmF0aXZlID0gbnVsbHB0cjsKIH0KIAogdm9pZCBB
bHRlcm5hdGl2ZVRleHRDb250cm9sbGVyOjpzdG9wUGVuZGluZ0NvcnJlY3Rpb24oY29uc3QgVmlz
aWJsZVNlbGVjdGlvbiYgb2xkU2VsZWN0aW9uKQpAQCAtMTgzLDcgKzE4Myw3IEBAIHZvaWQgQWx0
ZXJuYXRpdmVUZXh0Q29udHJvbGxlcjo6YXBwbHlQZW5kaW5nQ29ycmVjdGlvbihjb25zdCBWaXNp
YmxlU2VsZWN0aW9uJiBzCiAgICAgaWYgKGRvQXBwbHlDb3JyZWN0aW9uKQogICAgICAgICBoYW5k
bGVBbHRlcm5hdGl2ZVRleHRVSVJlc3VsdChkaXNtaXNzU29vbihSZWFzb25Gb3JEaXNtaXNzaW5n
QWx0ZXJuYXRpdmVUZXh0QWNjZXB0ZWQpKTsgCiAgICAgZWxzZQotICAgICAgICBtX2FsdGVybmF0
aXZlVGV4dEluZm8ucmFuZ2VXaXRoQWx0ZXJuYXRpdmUuY2xlYXIoKTsKKyAgICAgICAgbV9hbHRl
cm5hdGl2ZVRleHRJbmZvLnJhbmdlV2l0aEFsdGVybmF0aXZlID0gbnVsbHB0cjsKIH0KIAogYm9v
bCBBbHRlcm5hdGl2ZVRleHRDb250cm9sbGVyOjpoYXNQZW5kaW5nQ29ycmVjdGlvbigpIGNvbnN0
CkBAIC0zNTksNyArMzU5LDcgQEAgdm9pZCBBbHRlcm5hdGl2ZVRleHRDb250cm9sbGVyOjp0aW1l
ckZpcmVkKCkKICAgICAgICAgVmVjdG9yPFN0cmluZz4gc3VnZ2VzdGlvbnM7CiAgICAgICAgIHRl
eHRDaGVja2VyKCktPmdldEd1ZXNzZXNGb3JXb3JkKG1fYWx0ZXJuYXRpdmVUZXh0SW5mby5vcmln
aW5hbFRleHQsIHBhcmFncmFwaFRleHQsIHN1Z2dlc3Rpb25zKTsKICAgICAgICAgaWYgKHN1Z2dl
c3Rpb25zLmlzRW1wdHkoKSkgewotICAgICAgICAgICAgbV9hbHRlcm5hdGl2ZVRleHRJbmZvLnJh
bmdlV2l0aEFsdGVybmF0aXZlLmNsZWFyKCk7CisgICAgICAgICAgICBtX2FsdGVybmF0aXZlVGV4
dEluZm8ucmFuZ2VXaXRoQWx0ZXJuYXRpdmUgPSBudWxscHRyOwogICAgICAgICAgICAgYnJlYWs7
CiAgICAgICAgIH0KICAgICAgICAgU3RyaW5nIHRvcFN1Z2dlc3Rpb24gPSBzdWdnZXN0aW9ucy5m
aXJzdCgpOwpAQCAtNDIyLDcgKzQyMiw3IEBAIHZvaWQgQWx0ZXJuYXRpdmVUZXh0Q29udHJvbGxl
cjo6aGFuZGxlQWx0ZXJuYXRpdmVUZXh0VUlSZXN1bHQoY29uc3QgU3RyaW5nJiByZXN1CiAgICAg
ICAgIGJyZWFrOwogICAgIH0KIAotICAgIG1fYWx0ZXJuYXRpdmVUZXh0SW5mby5yYW5nZVdpdGhB
bHRlcm5hdGl2ZS5jbGVhcigpOworICAgIG1fYWx0ZXJuYXRpdmVUZXh0SW5mby5yYW5nZVdpdGhB
bHRlcm5hdGl2ZSA9IG51bGxwdHI7CiB9CiAKIGJvb2wgQWx0ZXJuYXRpdmVUZXh0Q29udHJvbGxl
cjo6aXNBdXRvbWF0aWNTcGVsbGluZ0NvcnJlY3Rpb25FbmFibGVkKCkKZGlmZiAtLWdpdCBhL1Nv
dXJjZS9XZWJDb3JlL2VkaXRpbmcvRWRpdGluZ1N0eWxlLmNwcCBiL1NvdXJjZS9XZWJDb3JlL2Vk
aXRpbmcvRWRpdGluZ1N0eWxlLmNwcAppbmRleCA1Y2YxMmNkOWI3MzhhMWRkNzQwZDVlY2Q1NWJk
NTk3MmQ5ZWQyNjYxLi4xN2FhYjI5NWJhNmI5MmRhZTJhNzI0NGRjMTU2OGVmZjJmNTU3NDdhIDEw
MDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9lZGl0aW5nL0VkaXRpbmdTdHlsZS5jcHAKKysrIGIv
U291cmNlL1dlYkNvcmUvZWRpdGluZy9FZGl0aW5nU3R5bGUuY3BwCkBAIC02MzgsNyArNjM4LDcg
QEAgdm9pZCBFZGl0aW5nU3R5bGU6Om92ZXJyaWRlVHlwaW5nU3R5bGVBdChjb25zdCBFZGl0aW5n
U3R5bGUmIHN0eWxlLCBjb25zdCBQb3NpdGkKIAogdm9pZCBFZGl0aW5nU3R5bGU6OmNsZWFyKCkK
IHsKLSAgICBtX211dGFibGVTdHlsZS5jbGVhcigpOworICAgIG1fbXV0YWJsZVN0eWxlID0gbnVs
bHB0cjsKICAgICBtX3Nob3VsZFVzZUZpeGVkRGVmYXVsdEZvbnRTaXplID0gZmFsc2U7CiAgICAg
bV9mb250U2l6ZURlbHRhID0gTm9Gb250RGVsdGE7CiAgICAgc2V0VW5kZXJsaW5lQ2hhbmdlKFRl
eHREZWNvcmF0aW9uQ2hhbmdlOjpOb25lKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2Vk
aXRpbmcvRWRpdG9yLmNwcCBiL1NvdXJjZS9XZWJDb3JlL2VkaXRpbmcvRWRpdG9yLmNwcAppbmRl
eCBhM2MzYzljM2I0MzQ0Mjk3NTFmNzNlZjE5MjhjNDE5Yzk1ZDVhOTdjLi5iMzFjYjMzYmFiNWY0
ZWM2YzY3ZGU5YjRhOGU0ZTNlZTQ2OGMwZGJhIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9l
ZGl0aW5nL0VkaXRvci5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvZWRpdGluZy9FZGl0b3IuY3Bw
CkBAIC04MjgsNyArODI4LDcgQEAgdm9pZCBFZGl0b3I6OnJlbW92ZUZvcm1hdHRpbmdBbmRTdHls
ZSgpCiAKIHZvaWQgRWRpdG9yOjpjbGVhckxhc3RFZGl0Q29tbWFuZCgpIAogewotICAgIG1fbGFz
dEVkaXRDb21tYW5kLmNsZWFyKCk7CisgICAgbV9sYXN0RWRpdENvbW1hbmQgPSBudWxscHRyOwog
fQogI2lmIFBMQVRGT1JNKElPUykKIC8vIElmIHRoZSBzZWxlY3Rpb24gaXMgYWRqdXN0ZWQgZnJv
bSBVSUtpdCB3aXRob3V0IGNsb3NpbmcgdGhlIHR5cGluZywgdGhlIHR5cGluZyBjb21tYW5kIG1h
eQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvZWRpdGluZy9GcmFtZVNlbGVjdGlvbi5jcHAg
Yi9Tb3VyY2UvV2ViQ29yZS9lZGl0aW5nL0ZyYW1lU2VsZWN0aW9uLmNwcAppbmRleCA5ZWUwMGYy
YzQyYTE5M2YwMDljYTU2YWE2N2QwYTM2NGNiNzdjYTUzLi41ZDYxYTU2ZWUzZmEwMDlkZDY1ZjE5
ZDI4OTM0ZmNjZGUxZjZlZjU1IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9lZGl0aW5nL0Zy
YW1lU2VsZWN0aW9uLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9lZGl0aW5nL0ZyYW1lU2VsZWN0
aW9uLmNwcApAQCAtMTM1OSw3ICsxMzU5LDcgQEAgdm9pZCBGcmFtZVNlbGVjdGlvbjo6cHJlcGFy
ZUZvckRlc3RydWN0aW9uKCkKICAgICAgICAgdmlldy0+Y2xlYXJTZWxlY3Rpb24oKTsKIAogICAg
IHNldFNlbGVjdGlvbldpdGhvdXRVcGRhdGluZ0FwcGVhcmFuY2UoVmlzaWJsZVNlbGVjdGlvbigp
LCBkZWZhdWx0U2V0U2VsZWN0aW9uT3B0aW9ucygpLCBBbGlnbkN1cnNvck9uU2Nyb2xsSWZOZWVk
ZWQsIENoYXJhY3RlckdyYW51bGFyaXR5KTsKLSAgICBtX3ByZXZpb3VzQ2FyZXROb2RlLmNsZWFy
KCk7CisgICAgbV9wcmV2aW91c0NhcmV0Tm9kZSA9IG51bGxwdHI7CiB9CiAKIHZvaWQgRnJhbWVT
ZWxlY3Rpb246OnNldFN0YXJ0KGNvbnN0IFZpc2libGVQb3NpdGlvbiAmcG9zLCBFVXNlclRyaWdn
ZXJlZCB0cmlnZ2VyKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvZWRpdGluZy9GcmFtZVNl
bGVjdGlvbi5oIGIvU291cmNlL1dlYkNvcmUvZWRpdGluZy9GcmFtZVNlbGVjdGlvbi5oCmluZGV4
IDc3ODNiNmE3OTQ3NmEwMGUzM2I3YWVhYjUwNWUyMmYwYzQzMGE0ODguLjBjZjA0MDYyMDQ5Mjk4
NDVkOWQ2MmZlOTllMWEzMjQxMDkyY2YzMjQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2Vk
aXRpbmcvRnJhbWVTZWxlY3Rpb24uaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9lZGl0aW5nL0ZyYW1l
U2VsZWN0aW9uLmgKQEAgLTM1OSw3ICszNTksNyBAQCBpbmxpbmUgRWRpdGluZ1N0eWxlKiBGcmFt
ZVNlbGVjdGlvbjo6dHlwaW5nU3R5bGUoKSBjb25zdAogCiBpbmxpbmUgdm9pZCBGcmFtZVNlbGVj
dGlvbjo6Y2xlYXJUeXBpbmdTdHlsZSgpCiB7Ci0gICAgbV90eXBpbmdTdHlsZS5jbGVhcigpOwor
ICAgIG1fdHlwaW5nU3R5bGUgPSBudWxscHRyOwogfQogCiBpbmxpbmUgdm9pZCBGcmFtZVNlbGVj
dGlvbjo6c2V0VHlwaW5nU3R5bGUoUGFzc1JlZlB0cjxFZGl0aW5nU3R5bGU+IHN0eWxlKQpkaWZm
IC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvZWRpdGluZy9TcGVsbENoZWNrZXIuY3BwIGIvU291cmNl
L1dlYkNvcmUvZWRpdGluZy9TcGVsbENoZWNrZXIuY3BwCmluZGV4IDhiNGQ1NDExOWMwMTNjNDg1
ZWY0NGViOTMzNzU3MzkyOGM2NDgwZGIuLjAzZjJlNTEwNDgzNTIxNTIwZDI5Yjc3ZTc2OGRmYzkz
YmFhNDA1OTMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2VkaXRpbmcvU3BlbGxDaGVja2Vy
LmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9lZGl0aW5nL1NwZWxsQ2hlY2tlci5jcHAKQEAgLTIx
NCw3ICsyMTQsNyBAQCB2b2lkIFNwZWxsQ2hlY2tlcjo6ZGlkQ2hlY2soaW50IHNlcXVlbmNlLCBj
b25zdCBWZWN0b3I8VGV4dENoZWNraW5nUmVzdWx0PiYgcmVzdQogICAgIGlmIChtX2xhc3RQcm9j
ZXNzZWRTZXF1ZW5jZSA8IHNlcXVlbmNlKQogICAgICAgICBtX2xhc3RQcm9jZXNzZWRTZXF1ZW5j
ZSA9IHNlcXVlbmNlOwogCi0gICAgbV9wcm9jZXNzaW5nUmVxdWVzdC5jbGVhcigpOworICAgIG1f
cHJvY2Vzc2luZ1JlcXVlc3QgPSBudWxscHRyOwogICAgIGlmICghbV9yZXF1ZXN0UXVldWUuaXNF
bXB0eSgpKQogICAgICAgICBtX3RpbWVyVG9Qcm9jZXNzUXVldWVkUmVxdWVzdC5zdGFydE9uZVNo
b3QoMCk7CiB9CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9odG1sL0Jhc2VDaG9vc2VyT25s
eURhdGVBbmRUaW1lSW5wdXRUeXBlLmNwcCBiL1NvdXJjZS9XZWJDb3JlL2h0bWwvQmFzZUNob29z
ZXJPbmx5RGF0ZUFuZFRpbWVJbnB1dFR5cGUuY3BwCmluZGV4IGU5YTZjYzAzOTNjNTA1NTY4ZDUx
MzQzYzY1N2E2YmRiYWQxYTk1MjMuLmRiZWEwZTk5YmQ5MzRjN2RiZGVhNTJkMjVkMDFjMmY4MTc1
ZGMxZDAgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2h0bWwvQmFzZUNob29zZXJPbmx5RGF0
ZUFuZFRpbWVJbnB1dFR5cGUuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2h0bWwvQmFzZUNob29z
ZXJPbmx5RGF0ZUFuZFRpbWVJbnB1dFR5cGUuY3BwCkBAIC05OCw3ICs5OCw3IEBAIHZvaWQgQmFz
ZUNob29zZXJPbmx5RGF0ZUFuZFRpbWVJbnB1dFR5cGU6OmRpZENob29zZVZhbHVlKGNvbnN0IFN0
cmluZyYgdmFsdWUpCiAKIHZvaWQgQmFzZUNob29zZXJPbmx5RGF0ZUFuZFRpbWVJbnB1dFR5cGU6
OmRpZEVuZENob29zZXIoKQogewotICAgIG1fZGF0ZVRpbWVDaG9vc2VyLmNsZWFyKCk7CisgICAg
bV9kYXRlVGltZUNob29zZXIgPSBudWxscHRyOwogfQogCiB2b2lkIEJhc2VDaG9vc2VyT25seURh
dGVBbmRUaW1lSW5wdXRUeXBlOjpjbG9zZURhdGVUaW1lQ2hvb3NlcigpCmRpZmYgLS1naXQgYS9T
b3VyY2UvV2ViQ29yZS9odG1sL0ZpbGVJbnB1dFR5cGUuY3BwIGIvU291cmNlL1dlYkNvcmUvaHRt
bC9GaWxlSW5wdXRUeXBlLmNwcAppbmRleCBhM2QzYjZiNzExZmZlMWU4YWExYWZkZmZjMTg2ZWJj
MGFmNTJjMTQ3Li40ODlkNzk5MzhmY2ZkMjI2ZmM5OTRjMjYwZTZlNTUzNTNjNTRhZjI5IDEwMDY0
NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9odG1sL0ZpbGVJbnB1dFR5cGUuY3BwCisrKyBiL1NvdXJj
ZS9XZWJDb3JlL2h0bWwvRmlsZUlucHV0VHlwZS5jcHAKQEAgLTI1MCw3ICsyNTAsNyBAQCB2b2lk
IEZpbGVJbnB1dFR5cGU6OnNldFZhbHVlKGNvbnN0IFN0cmluZyYsIGJvb2wsIFRleHRGaWVsZEV2
ZW50QmVoYXZpb3IpCiB7CiAgICAgLy8gRklYTUU6IFNob3VsZCB3ZSBjbGVhciB0aGUgZmlsZSBs
aXN0LCBvciByZXBsYWNlIGl0IHdpdGggYSBuZXcgZW1wdHkgb25lIGhlcmU/IFRoaXMgaXMgb2Jz
ZXJ2YWJsZSBmcm9tIEphdmFTY3JpcHQgdGhyb3VnaCBjdXN0b20gcHJvcGVydGllcy4KICAgICBt
X2ZpbGVMaXN0LT5jbGVhcigpOwotICAgIG1faWNvbi5jbGVhcigpOworICAgIG1faWNvbiA9IG51
bGxwdHI7CiAgICAgZWxlbWVudCgpLnNldE5lZWRzU3R5bGVSZWNhbGMoKTsKIH0KIApkaWZmIC0t
Z2l0IGEvU291cmNlL1dlYkNvcmUvaHRtbC9IVE1MQ2FudmFzRWxlbWVudC5jcHAgYi9Tb3VyY2Uv
V2ViQ29yZS9odG1sL0hUTUxDYW52YXNFbGVtZW50LmNwcAppbmRleCA4NmQ0NWE0OGEwYzc2MmRh
YjcyNmZkOTk2YWY3MjQ2YzgxODc4NjYzLi5jZTVkN2IyYTVmMjdmNGM3NmY1MTBkNmVmNTk1ZTMw
YWEyNTRhMzJhIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxDYW52YXNFbGVt
ZW50LmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxDYW52YXNFbGVtZW50LmNwcApA
QCAtNDIzLDcgKzQyMyw3IEBAIHZvaWQgSFRNTENhbnZhc0VsZW1lbnQ6Om1ha2VQcmVzZW50YXRp
b25Db3B5KCkKIAogdm9pZCBIVE1MQ2FudmFzRWxlbWVudDo6Y2xlYXJQcmVzZW50YXRpb25Db3B5
KCkKIHsKLSAgICBtX3ByZXNlbnRlZEltYWdlLmNsZWFyKCk7CisgICAgbV9wcmVzZW50ZWRJbWFn
ZSA9IG51bGxwdHI7CiB9CiAKIHZvaWQgSFRNTENhbnZhc0VsZW1lbnQ6OnNldFN1cmZhY2VTaXpl
KGNvbnN0IEludFNpemUmIHNpemUpCkBAIC02NDQsNyArNjQ0LDcgQEAgdm9pZCBIVE1MQ2FudmFz
RWxlbWVudDo6Y2xlYXJJbWFnZUJ1ZmZlcigpIGNvbnN0CiAKIHZvaWQgSFRNTENhbnZhc0VsZW1l
bnQ6OmNsZWFyQ29waWVkSW1hZ2UoKQogewotICAgIG1fY29waWVkSW1hZ2UuY2xlYXIoKTsKKyAg
ICBtX2NvcGllZEltYWdlID0gbnVsbHB0cjsKICAgICBtX2RpZENsZWFySW1hZ2VCdWZmZXIgPSBm
YWxzZTsKIH0KIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvaHRtbC9IVE1MUGx1Z0luRWxl
bWVudC5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxQbHVnSW5FbGVtZW50LmNwcAppbmRl
eCAyMjA0NmVhODQzNTU2YzQ4MGYxM2I3OTU2MzJlNzkzY2ZhNzQzYTk5Li5kNzg2ZGY0ZmU4NzEw
M2Y1MjAxM2FiN2Q3Nzk5NzEwNDVkYTJjOTYxIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9o
dG1sL0hUTUxQbHVnSW5FbGVtZW50LmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxQ
bHVnSW5FbGVtZW50LmNwcApAQCAtMTA0LDcgKzEwNCw3IEBAIGJvb2wgSFRNTFBsdWdJbkVsZW1l
bnQ6OndpbGxSZXNwb25kVG9Nb3VzZUNsaWNrRXZlbnRzKCkKIAogdm9pZCBIVE1MUGx1Z0luRWxl
bWVudDo6d2lsbERldGFjaFJlbmRlcmVycygpCiB7Ci0gICAgbV9pbnN0YW5jZS5jbGVhcigpOwor
ICAgIG1faW5zdGFuY2UgPSBudWxscHRyOwogCiAgICAgaWYgKG1faXNDYXB0dXJpbmdNb3VzZUV2
ZW50cykgewogICAgICAgICBpZiAoRnJhbWUqIGZyYW1lID0gZG9jdW1lbnQoKS5mcmFtZSgpKQpA
QCAtMTIyLDcgKzEyMiw3IEBAIHZvaWQgSFRNTFBsdWdJbkVsZW1lbnQ6OndpbGxEZXRhY2hSZW5k
ZXJlcnMoKQogCiB2b2lkIEhUTUxQbHVnSW5FbGVtZW50OjpyZXNldEluc3RhbmNlKCkKIHsKLSAg
ICBtX2luc3RhbmNlLmNsZWFyKCk7CisgICAgbV9pbnN0YW5jZSA9IG51bGxwdHI7CiB9CiAKIFBh
c3NSZWZQdHI8SlNDOjpCaW5kaW5nczo6SW5zdGFuY2U+IEhUTUxQbHVnSW5FbGVtZW50OjpnZXRJ
bnN0YW5jZSgpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9odG1sL1RleHRGaWVsZElucHV0
VHlwZS5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9odG1sL1RleHRGaWVsZElucHV0VHlwZS5jcHAKaW5k
ZXggNGIyOGFhOGRhMmQxYTU1ZGQ5ZWE0MjBlNDE0MmUxNGU3MzFiNzljNS4uZWFlM2RiMjllZWUz
YzJkZTk1ZmU3MTgwYzU0NmZmOGU3ZTJhNzY3ZSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUv
aHRtbC9UZXh0RmllbGRJbnB1dFR5cGUuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2h0bWwvVGV4
dEZpZWxkSW5wdXRUeXBlLmNwcApAQCAtNDYyLDcgKzQ2Miw3IEBAIHZvaWQgVGV4dEZpZWxkSW5w
dXRUeXBlOjp1cGRhdGVQbGFjZWhvbGRlclRleHQoKQogICAgIGlmIChwbGFjZWhvbGRlclRleHQu
aXNFbXB0eSgpKSB7CiAgICAgICAgIGlmIChtX3BsYWNlaG9sZGVyKSB7CiAgICAgICAgICAgICBt
X3BsYWNlaG9sZGVyLT5wYXJlbnROb2RlKCktPnJlbW92ZUNoaWxkKG1fcGxhY2Vob2xkZXIuZ2V0
KCksIEFTU0VSVF9OT19FWENFUFRJT04pOwotICAgICAgICAgICAgbV9wbGFjZWhvbGRlci5jbGVh
cigpOworICAgICAgICAgICAgbV9wbGFjZWhvbGRlciA9IG51bGxwdHI7CiAgICAgICAgIH0KICAg
ICAgICAgcmV0dXJuOwogICAgIH0KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2h0bWwvY2Fu
dmFzL1dlYkdMUmVuZGVyaW5nQ29udGV4dEJhc2UuY3BwIGIvU291cmNlL1dlYkNvcmUvaHRtbC9j
YW52YXMvV2ViR0xSZW5kZXJpbmdDb250ZXh0QmFzZS5jcHAKaW5kZXggYjY2YjY2OTA0YjE0ZmZk
ZTJmMzM5YWQ2ZGEyNzZmNmQ3NmMxYjRhMy4uNzc1ZGZjNmFlODkwZmE5MWM3MzJlOTk1NDBlODVl
OTU2MDE5NWIyOCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvaHRtbC9jYW52YXMvV2ViR0xS
ZW5kZXJpbmdDb250ZXh0QmFzZS5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvaHRtbC9jYW52YXMv
V2ViR0xSZW5kZXJpbmdDb250ZXh0QmFzZS5jcHAKQEAgLTYyMyw3ICs2MjMsNyBAQCB2b2lkIFdl
YkdMUmVuZGVyaW5nQ29udGV4dEJhc2U6OmRlc3Ryb3lHcmFwaGljc0NvbnRleHQzRCgpCiAgICAg
aWYgKG1fY29udGV4dCkgewogICAgICAgICBtX2NvbnRleHQtPnNldENvbnRleHRMb3N0Q2FsbGJh
Y2sobnVsbHB0cik7CiAgICAgICAgIG1fY29udGV4dC0+c2V0RXJyb3JNZXNzYWdlQ2FsbGJhY2so
bnVsbHB0cik7Ci0gICAgICAgIG1fY29udGV4dC5jbGVhcigpOworICAgICAgICBtX2NvbnRleHQg
PSBudWxscHRyOwogICAgIH0KIH0KIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvaW5zcGVj
dG9yL0luc3BlY3RvckFwcGxpY2F0aW9uQ2FjaGVBZ2VudC5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9p
bnNwZWN0b3IvSW5zcGVjdG9yQXBwbGljYXRpb25DYWNoZUFnZW50LmNwcAppbmRleCBmZDRjYWY2
MjE0MTE5YTg0NDdjMDI5NDU3NDA0ZjFmNTJiYzhlMzdhLi4yZGNkMjZlOTliZjNhMDdhNjc2MDhh
YWUxMmQ1NzQ0MzkwNWE2MjY1IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3Iv
SW5zcGVjdG9yQXBwbGljYXRpb25DYWNoZUFnZW50LmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9p
bnNwZWN0b3IvSW5zcGVjdG9yQXBwbGljYXRpb25DYWNoZUFnZW50LmNwcApAQCAtNTgsNyArNTgs
NyBAQCB2b2lkIEluc3BlY3RvckFwcGxpY2F0aW9uQ2FjaGVBZ2VudDo6ZGlkQ3JlYXRlRnJvbnRl
bmRBbmRCYWNrZW5kKEZyb250ZW5kQ2hhbm5lbAogdm9pZCBJbnNwZWN0b3JBcHBsaWNhdGlvbkNh
Y2hlQWdlbnQ6OndpbGxEZXN0cm95RnJvbnRlbmRBbmRCYWNrZW5kKEluc3BlY3Rvcjo6RGlzY29u
bmVjdFJlYXNvbikKIHsKICAgICBtX2Zyb250ZW5kRGlzcGF0Y2hlciA9IG51bGxwdHI7Ci0gICAg
bV9iYWNrZW5kRGlzcGF0Y2hlci5jbGVhcigpOworICAgIG1fYmFja2VuZERpc3BhdGNoZXIgPSBu
dWxscHRyOwogCiAgICAgbV9pbnN0cnVtZW50aW5nQWdlbnRzLT5zZXRJbnNwZWN0b3JBcHBsaWNh
dGlvbkNhY2hlQWdlbnQobnVsbHB0cik7CiB9CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9p
bnNwZWN0b3IvSW5zcGVjdG9yQ1NTQWdlbnQuY3BwIGIvU291cmNlL1dlYkNvcmUvaW5zcGVjdG9y
L0luc3BlY3RvckNTU0FnZW50LmNwcAppbmRleCBhOTA4M2QwODE0MjdiOWMwMTkxODllNmM0OWI4
MTQ2MmVmMzYzNTllLi4zZDA2MjA4MzRlYjI4Y2RmZDA2YjU4Y2Q2NjI2YmEzYzE0OGU3MTkxIDEw
MDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvSW5zcGVjdG9yQ1NTQWdlbnQuY3Bw
CisrKyBiL1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9JbnNwZWN0b3JDU1NBZ2VudC5jcHAKQEAg
LTM2MCw3ICszNjAsNyBAQCB2b2lkIEluc3BlY3RvckNTU0FnZW50OjpkaWRDcmVhdGVGcm9udGVu
ZEFuZEJhY2tlbmQoSW5zcGVjdG9yOjpGcm9udGVuZENoYW5uZWwqCiB2b2lkIEluc3BlY3RvckNT
U0FnZW50Ojp3aWxsRGVzdHJveUZyb250ZW5kQW5kQmFja2VuZChJbnNwZWN0b3I6OkRpc2Nvbm5l
Y3RSZWFzb24pCiB7CiAgICAgbV9mcm9udGVuZERpc3BhdGNoZXIgPSBudWxscHRyOwotICAgIG1f
YmFja2VuZERpc3BhdGNoZXIuY2xlYXIoKTsKKyAgICBtX2JhY2tlbmREaXNwYXRjaGVyID0gbnVs
bHB0cjsKIAogICAgIHJlc2V0Tm9uUGVyc2lzdGVudERhdGEoKTsKIH0KZGlmZiAtLWdpdCBhL1Nv
dXJjZS9XZWJDb3JlL2luc3BlY3Rvci9JbnNwZWN0b3JDb250cm9sbGVyLmNwcCBiL1NvdXJjZS9X
ZWJDb3JlL2luc3BlY3Rvci9JbnNwZWN0b3JDb250cm9sbGVyLmNwcAppbmRleCBmMjNhNWVhMGVl
NTZkMDVlMTQ0NTEwNmE3MjVhYzFjOTZhNDY4ZTk5Li5iYzgwYmNhMjljOTUxNDc3N2RhMDRkYzFj
YWUxYjc1MWNmOWZmOGFmIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvSW5z
cGVjdG9yQ29udHJvbGxlci5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL0luc3Bl
Y3RvckNvbnRyb2xsZXIuY3BwCkBAIC0yNjMsNyArMjYzLDcgQEAgdm9pZCBJbnNwZWN0b3JDb250
cm9sbGVyOjpkaXNjb25uZWN0RnJvbnRlbmQoRGlzY29ubmVjdFJlYXNvbiByZWFzb24pCiAgICAg
bV9hZ2VudHMud2lsbERlc3Ryb3lGcm9udGVuZEFuZEJhY2tlbmQocmVhc29uKTsKIAogICAgIG1f
YmFja2VuZERpc3BhdGNoZXItPmNsZWFyRnJvbnRlbmQoKTsKLSAgICBtX2JhY2tlbmREaXNwYXRj
aGVyLmNsZWFyKCk7CisgICAgbV9iYWNrZW5kRGlzcGF0Y2hlciA9IG51bGxwdHI7CiAgICAgbV9m
cm9udGVuZENoYW5uZWwgPSBudWxscHRyOwogCiAgICAgbV9pc0F1dG9tYXRpY0luc3BlY3Rpb24g
PSBmYWxzZTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9JbnNwZWN0b3JE
T01BZ2VudC5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvSW5zcGVjdG9yRE9NQWdlbnQu
Y3BwCmluZGV4IDBlZDJjNWMwNGZhYTNiMWNjOGJiMDVkNDlhZDk2YTZkMTk3MTJjYTEuLmJhNzdk
ZTlhY2I3YzM0ZjBlOTc3ZWJiYjNjMzZhZjZjOWE4OGU4OGEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9X
ZWJDb3JlL2luc3BlY3Rvci9JbnNwZWN0b3JET01BZ2VudC5jcHAKKysrIGIvU291cmNlL1dlYkNv
cmUvaW5zcGVjdG9yL0luc3BlY3RvckRPTUFnZW50LmNwcApAQCAtMjM4LDcgKzIzOCw3IEBAIHZv
aWQgSW5zcGVjdG9yRE9NQWdlbnQ6OmRpZENyZWF0ZUZyb250ZW5kQW5kQmFja2VuZChJbnNwZWN0
b3I6OkZyb250ZW5kQ2hhbm5lbCoKIHZvaWQgSW5zcGVjdG9yRE9NQWdlbnQ6OndpbGxEZXN0cm95
RnJvbnRlbmRBbmRCYWNrZW5kKEluc3BlY3Rvcjo6RGlzY29ubmVjdFJlYXNvbikKIHsKICAgICBt
X2Zyb250ZW5kRGlzcGF0Y2hlciA9IG51bGxwdHI7Ci0gICAgbV9iYWNrZW5kRGlzcGF0Y2hlci5j
bGVhcigpOworICAgIG1fYmFja2VuZERpc3BhdGNoZXIgPSBudWxscHRyOwogCiAgICAgbV9oaXN0
b3J5LnJlc2V0KCk7CiAgICAgbV9kb21FZGl0b3IucmVzZXQoKTsKZGlmZiAtLWdpdCBhL1NvdXJj
ZS9XZWJDb3JlL2luc3BlY3Rvci9JbnNwZWN0b3JET01EZWJ1Z2dlckFnZW50LmNwcCBiL1NvdXJj
ZS9XZWJDb3JlL2luc3BlY3Rvci9JbnNwZWN0b3JET01EZWJ1Z2dlckFnZW50LmNwcAppbmRleCBm
Nzc4ZGQ5NjJjYjJkZGMxNjA2MzE3NDZhOTk1YmRkYTBhOWIyNzhiLi5kNTFkNGJlYWU5MTIyMzUw
N2I2YzQ0Njc3OTQ0Y2IyN2JhMzZjNDY0IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9pbnNw
ZWN0b3IvSW5zcGVjdG9yRE9NRGVidWdnZXJBZ2VudC5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUv
aW5zcGVjdG9yL0luc3BlY3RvckRPTURlYnVnZ2VyQWdlbnQuY3BwCkBAIC0xMDksNyArMTA5LDcg
QEAgdm9pZCBJbnNwZWN0b3JET01EZWJ1Z2dlckFnZW50OjpkaWRDcmVhdGVGcm9udGVuZEFuZEJh
Y2tlbmQoSW5zcGVjdG9yOjpGcm9udGVuZEMKIAogdm9pZCBJbnNwZWN0b3JET01EZWJ1Z2dlckFn
ZW50Ojp3aWxsRGVzdHJveUZyb250ZW5kQW5kQmFja2VuZChJbnNwZWN0b3I6OkRpc2Nvbm5lY3RS
ZWFzb24pCiB7Ci0gICAgbV9iYWNrZW5kRGlzcGF0Y2hlci5jbGVhcigpOworICAgIG1fYmFja2Vu
ZERpc3BhdGNoZXIgPSBudWxscHRyOwogCiAgICAgZGlzYWJsZSgpOwogfQpkaWZmIC0tZ2l0IGEv
U291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL0luc3BlY3RvckRPTVN0b3JhZ2VBZ2VudC5jcHAgYi9T
b3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvSW5zcGVjdG9yRE9NU3RvcmFnZUFnZW50LmNwcAppbmRl
eCBiMTY4N2NmNTQ4NTNmNjIyZjUyYTY3NjhjOTJjY2Y0MjU4ZTdhNWYxLi4wNGFmODhiY2UzZGMw
MDUxNDg1YjNlMmE1MGQ5NzE2MDE3YzJmNjlmIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9p
bnNwZWN0b3IvSW5zcGVjdG9yRE9NU3RvcmFnZUFnZW50LmNwcAorKysgYi9Tb3VyY2UvV2ViQ29y
ZS9pbnNwZWN0b3IvSW5zcGVjdG9yRE9NU3RvcmFnZUFnZW50LmNwcApAQCAtNzYsNyArNzYsNyBA
QCB2b2lkIEluc3BlY3RvckRPTVN0b3JhZ2VBZ2VudDo6ZGlkQ3JlYXRlRnJvbnRlbmRBbmRCYWNr
ZW5kKEluc3BlY3Rvcjo6RnJvbnRlbmRDaAogdm9pZCBJbnNwZWN0b3JET01TdG9yYWdlQWdlbnQ6
OndpbGxEZXN0cm95RnJvbnRlbmRBbmRCYWNrZW5kKEluc3BlY3Rvcjo6RGlzY29ubmVjdFJlYXNv
bikKIHsKICAgICBtX2Zyb250ZW5kRGlzcGF0Y2hlciA9IG51bGxwdHI7Ci0gICAgbV9iYWNrZW5k
RGlzcGF0Y2hlci5jbGVhcigpOworICAgIG1fYmFja2VuZERpc3BhdGNoZXIgPSBudWxscHRyOwog
CiAgICAgRXJyb3JTdHJpbmcgdW51c2VkOwogICAgIGRpc2FibGUodW51c2VkKTsKZGlmZiAtLWdp
dCBhL1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9JbnNwZWN0b3JEYXRhYmFzZUFnZW50LmNwcCBi
L1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9JbnNwZWN0b3JEYXRhYmFzZUFnZW50LmNwcAppbmRl
eCA5MTM0ZGZlNDdjNzljNmM2ZWY0NDEzNDQ1MjBiNzA0NmUxZDVkYzEzLi5iZTI3Zjk1NjE0NDU5
ZmJmZmQxYjAyZDQ4NWNmMWQ3N2RlZDk2NmVkIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9p
bnNwZWN0b3IvSW5zcGVjdG9yRGF0YWJhc2VBZ2VudC5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUv
aW5zcGVjdG9yL0luc3BlY3RvckRhdGFiYXNlQWdlbnQuY3BwCkBAIC0yMzEsNyArMjMxLDcgQEAg
dm9pZCBJbnNwZWN0b3JEYXRhYmFzZUFnZW50OjpkaWRDcmVhdGVGcm9udGVuZEFuZEJhY2tlbmQo
SW5zcGVjdG9yOjpGcm9udGVuZENoYW4KIHZvaWQgSW5zcGVjdG9yRGF0YWJhc2VBZ2VudDo6d2ls
bERlc3Ryb3lGcm9udGVuZEFuZEJhY2tlbmQoSW5zcGVjdG9yOjpEaXNjb25uZWN0UmVhc29uKQog
ewogICAgIG1fZnJvbnRlbmREaXNwYXRjaGVyID0gbnVsbHB0cjsKLSAgICBtX2JhY2tlbmREaXNw
YXRjaGVyLmNsZWFyKCk7CisgICAgbV9iYWNrZW5kRGlzcGF0Y2hlciA9IG51bGxwdHI7CiAKICAg
ICBFcnJvclN0cmluZyB1bnVzZWQ7CiAgICAgZGlzYWJsZSh1bnVzZWQpOwpkaWZmIC0tZ2l0IGEv
U291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL0luc3BlY3RvckluZGV4ZWREQkFnZW50LmNwcCBiL1Nv
dXJjZS9XZWJDb3JlL2luc3BlY3Rvci9JbnNwZWN0b3JJbmRleGVkREJBZ2VudC5jcHAKaW5kZXgg
OWJmMTI5MTE2YzRkYzgwYTA4NjMxYzA0ZDcwN2IxODNhYjhiY2FjZi4uMTcyZmI1ODEyODAyMGEz
YWU1NWQ2NWQ0ZjA4ZjU3YWUxNmEwZWNmNyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvaW5z
cGVjdG9yL0luc3BlY3RvckluZGV4ZWREQkFnZW50LmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9p
bnNwZWN0b3IvSW5zcGVjdG9ySW5kZXhlZERCQWdlbnQuY3BwCkBAIC01ODIsNyArNTgyLDcgQEAg
dm9pZCBJbnNwZWN0b3JJbmRleGVkREJBZ2VudDo6ZGlkQ3JlYXRlRnJvbnRlbmRBbmRCYWNrZW5k
KEluc3BlY3Rvcjo6RnJvbnRlbmRDaGEKIAogdm9pZCBJbnNwZWN0b3JJbmRleGVkREJBZ2VudDo6
d2lsbERlc3Ryb3lGcm9udGVuZEFuZEJhY2tlbmQoSW5zcGVjdG9yOjpEaXNjb25uZWN0UmVhc29u
KQogewotICAgIG1fYmFja2VuZERpc3BhdGNoZXIuY2xlYXIoKTsKKyAgICBtX2JhY2tlbmREaXNw
YXRjaGVyID0gbnVsbHB0cjsKIAogICAgIEVycm9yU3RyaW5nIHVudXNlZDsKICAgICBkaXNhYmxl
KHVudXNlZCk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvSW5zcGVjdG9y
TGF5ZXJUcmVlQWdlbnQuY3BwIGIvU291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL0luc3BlY3Rvckxh
eWVyVHJlZUFnZW50LmNwcAppbmRleCBiZTY0NDk2ZTQ2MzhkMDBjM2VjMjg5MDg2NTZhZTY3N2E3
Mzg5NzU4Li5mNmU0MWZhYzgyOGFjNmM0Zjc3NjA2NWFkZjdhM2RiZjhkNzhiZTA0IDEwMDY0NAot
LS0gYS9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvSW5zcGVjdG9yTGF5ZXJUcmVlQWdlbnQuY3Bw
CisrKyBiL1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9JbnNwZWN0b3JMYXllclRyZWVBZ2VudC5j
cHAKQEAgLTY1LDcgKzY1LDcgQEAgdm9pZCBJbnNwZWN0b3JMYXllclRyZWVBZ2VudDo6ZGlkQ3Jl
YXRlRnJvbnRlbmRBbmRCYWNrZW5kKEluc3BlY3Rvcjo6RnJvbnRlbmRDaGEKIHZvaWQgSW5zcGVj
dG9yTGF5ZXJUcmVlQWdlbnQ6OndpbGxEZXN0cm95RnJvbnRlbmRBbmRCYWNrZW5kKEluc3BlY3Rv
cjo6RGlzY29ubmVjdFJlYXNvbikKIHsKICAgICBtX2Zyb250ZW5kRGlzcGF0Y2hlciA9IG51bGxw
dHI7Ci0gICAgbV9iYWNrZW5kRGlzcGF0Y2hlci5jbGVhcigpOworICAgIG1fYmFja2VuZERpc3Bh
dGNoZXIgPSBudWxscHRyOwogCiAgICAgRXJyb3JTdHJpbmcgdW51c2VkOwogICAgIGRpc2FibGUo
dW51c2VkKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9JbnNwZWN0b3JP
dmVybGF5LmNwcCBiL1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9JbnNwZWN0b3JPdmVybGF5LmNw
cAppbmRleCA2ZDNhMGYzY2E3MjY1YTFhZmY4YzMyOGE1ZjNmNmI3OWMzMzFkOGQ0Li5mYWVhN2Nl
ZjJjNjMyZWU1MTAyY2RmMmI2NTQ0OTdhYjgwN2JlMTc3IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2Vi
Q29yZS9pbnNwZWN0b3IvSW5zcGVjdG9yT3ZlcmxheS5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUv
aW5zcGVjdG9yL0luc3BlY3Rvck92ZXJsYXkuY3BwCkBAIC0yNDMsOSArMjQzLDkgQEAgdm9pZCBJ
bnNwZWN0b3JPdmVybGF5OjpzZXRQYXVzZWRJbkRlYnVnZ2VyTWVzc2FnZShjb25zdCBTdHJpbmcq
IG1lc3NhZ2UpCiAKIHZvaWQgSW5zcGVjdG9yT3ZlcmxheTo6aGlkZUhpZ2hsaWdodCgpCiB7Ci0g
ICAgbV9oaWdobGlnaHROb2RlLmNsZWFyKCk7Ci0gICAgbV9oaWdobGlnaHROb2RlTGlzdC5jbGVh
cigpOwotICAgIG1faGlnaGxpZ2h0UXVhZC5yZXNldCgpOworICAgIG1faGlnaGxpZ2h0Tm9kZSA9
IG51bGxwdHI7CisgICAgbV9oaWdobGlnaHROb2RlTGlzdCA9IG51bGxwdHI7CisgICAgbV9oaWdo
bGlnaHRRdWFkID0gbnVsbHB0cjsKICAgICB1cGRhdGUoKTsKIH0KIApAQCAtMjUzLDcgKzI1Myw3
IEBAIHZvaWQgSW5zcGVjdG9yT3ZlcmxheTo6aGlnaGxpZ2h0Tm9kZUxpc3QoUGFzc1JlZlB0cjxO
b2RlTGlzdD4gbm9kZXMsIGNvbnN0IEhpZ2hsCiB7CiAgICAgbV9ub2RlSGlnaGxpZ2h0Q29uZmln
ID0gaGlnaGxpZ2h0Q29uZmlnOwogICAgIG1faGlnaGxpZ2h0Tm9kZUxpc3QgPSBub2RlczsKLSAg
ICBtX2hpZ2hsaWdodE5vZGUuY2xlYXIoKTsKKyAgICBtX2hpZ2hsaWdodE5vZGUgPSBudWxscHRy
OwogICAgIHVwZGF0ZSgpOwogfQogCkBAIC0yNjEsNyArMjYxLDcgQEAgdm9pZCBJbnNwZWN0b3JP
dmVybGF5OjpoaWdobGlnaHROb2RlKE5vZGUqIG5vZGUsIGNvbnN0IEhpZ2hsaWdodENvbmZpZyYg
aGlnaGxpZ2gKIHsKICAgICBtX25vZGVIaWdobGlnaHRDb25maWcgPSBoaWdobGlnaHRDb25maWc7
CiAgICAgbV9oaWdobGlnaHROb2RlID0gbm9kZTsKLSAgICBtX2hpZ2hsaWdodE5vZGVMaXN0LmNs
ZWFyKCk7CisgICAgbV9oaWdobGlnaHROb2RlTGlzdCA9IG51bGxwdHI7CiAgICAgdXBkYXRlKCk7
CiB9CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9JbnNwZWN0b3JQYWdl
QWdlbnQuY3BwIGIvU291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL0luc3BlY3RvclBhZ2VBZ2VudC5j
cHAKaW5kZXggNmY1MmJmYWUwYjUyM2M5NmYxNGU1NzQxNzIyNjk1YTE3NTUxY2E4YS4uM2U5ZmVi
ZWZiNTRmZTQ0OGFjODgwNzZkOTk2ZjlhOGFkMDdhNWI5YSAxMDA2NDQKLS0tIGEvU291cmNlL1dl
YkNvcmUvaW5zcGVjdG9yL0luc3BlY3RvclBhZ2VBZ2VudC5jcHAKKysrIGIvU291cmNlL1dlYkNv
cmUvaW5zcGVjdG9yL0luc3BlY3RvclBhZ2VBZ2VudC5jcHAKQEAgLTM0OCw3ICszNDgsNyBAQCB2
b2lkIEluc3BlY3RvclBhZ2VBZ2VudDo6ZGlkQ3JlYXRlRnJvbnRlbmRBbmRCYWNrZW5kKEluc3Bl
Y3Rvcjo6RnJvbnRlbmRDaGFubmVsKgogdm9pZCBJbnNwZWN0b3JQYWdlQWdlbnQ6OndpbGxEZXN0
cm95RnJvbnRlbmRBbmRCYWNrZW5kKEluc3BlY3Rvcjo6RGlzY29ubmVjdFJlYXNvbikKIHsKICAg
ICBtX2Zyb250ZW5kRGlzcGF0Y2hlciA9IG51bGxwdHI7Ci0gICAgbV9iYWNrZW5kRGlzcGF0Y2hl
ci5jbGVhcigpOworICAgIG1fYmFja2VuZERpc3BhdGNoZXIgPSBudWxscHRyOwogCiAgICAgRXJy
b3JTdHJpbmcgdW51c2VkOwogICAgIGRpc2FibGUodW51c2VkKTsKQEAgLTM3NCw3ICszNzQsNyBA
QCB2b2lkIEluc3BlY3RvclBhZ2VBZ2VudDo6ZW5hYmxlKEVycm9yU3RyaW5nJikKIHZvaWQgSW5z
cGVjdG9yUGFnZUFnZW50OjpkaXNhYmxlKEVycm9yU3RyaW5nJikKIHsKICAgICBtX2VuYWJsZWQg
PSBmYWxzZTsKLSAgICBtX3NjcmlwdHNUb0V2YWx1YXRlT25Mb2FkLmNsZWFyKCk7CisgICAgbV9z
Y3JpcHRzVG9FdmFsdWF0ZU9uTG9hZCA9IG51bGxwdHI7CiAgICAgbV9pbnN0cnVtZW50aW5nQWdl
bnRzLT5zZXRJbnNwZWN0b3JQYWdlQWdlbnQobnVsbHB0cik7CiAKICAgICBFcnJvclN0cmluZyB1
bnVzZWQ7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvSW5zcGVjdG9yUmVw
bGF5QWdlbnQuY3BwIGIvU291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL0luc3BlY3RvclJlcGxheUFn
ZW50LmNwcAppbmRleCA2NGNiODExN2M3OTgxZGFjNDM0ZjQzY2JmM2JmZDllMzMxMjg0N2ExLi4x
ODFhNjA5ODJhZjcyNmMyNDRhNGMxYjMzZDZiYzg3YzI5YjUwNTg1IDEwMDY0NAotLS0gYS9Tb3Vy
Y2UvV2ViQ29yZS9pbnNwZWN0b3IvSW5zcGVjdG9yUmVwbGF5QWdlbnQuY3BwCisrKyBiL1NvdXJj
ZS9XZWJDb3JlL2luc3BlY3Rvci9JbnNwZWN0b3JSZXBsYXlBZ2VudC5jcHAKQEAgLTE5Myw3ICsx
OTMsNyBAQCB2b2lkIEluc3BlY3RvclJlcGxheUFnZW50OjpkaWRDcmVhdGVGcm9udGVuZEFuZEJh
Y2tlbmQoSW5zcGVjdG9yOjpGcm9udGVuZENoYW5uZQogdm9pZCBJbnNwZWN0b3JSZXBsYXlBZ2Vu
dDo6d2lsbERlc3Ryb3lGcm9udGVuZEFuZEJhY2tlbmQoSW5zcGVjdG9yOjpEaXNjb25uZWN0UmVh
c29uKQogewogICAgIG1fZnJvbnRlbmREaXNwYXRjaGVyID0gbnVsbHB0cjsKLSAgICBtX2JhY2tl
bmREaXNwYXRjaGVyLmNsZWFyKCk7CisgICAgbV9iYWNrZW5kRGlzcGF0Y2hlciA9IG51bGxwdHI7
CiAKICAgICBtX2luc3RydW1lbnRpbmdBZ2VudHMtPnNldEluc3BlY3RvclJlcGxheUFnZW50KG51
bGxwdHIpOwogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvSW5zcGVjdG9y
UmVzb3VyY2VBZ2VudC5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvSW5zcGVjdG9yUmVz
b3VyY2VBZ2VudC5jcHAKaW5kZXggODU0NDg5YzA0Zjk3NGQ5N2NkMzY2NGFlYWFkNDVmZTAxYmIx
ZWYwMS4uN2I1NmEwZmY5ZDE1OGY2YmE4YjEzNTNhMGJhYjJlNGQwZTg5YTFkNyAxMDA2NDQKLS0t
IGEvU291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL0luc3BlY3RvclJlc291cmNlQWdlbnQuY3BwCisr
KyBiL1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9JbnNwZWN0b3JSZXNvdXJjZUFnZW50LmNwcApA
QCAtMTgxLDcgKzE4MSw3IEBAIHZvaWQgSW5zcGVjdG9yUmVzb3VyY2VBZ2VudDo6ZGlkQ3JlYXRl
RnJvbnRlbmRBbmRCYWNrZW5kKEluc3BlY3Rvcjo6RnJvbnRlbmRDaGFuCiB2b2lkIEluc3BlY3Rv
clJlc291cmNlQWdlbnQ6OndpbGxEZXN0cm95RnJvbnRlbmRBbmRCYWNrZW5kKEluc3BlY3Rvcjo6
RGlzY29ubmVjdFJlYXNvbikKIHsKICAgICBtX2Zyb250ZW5kRGlzcGF0Y2hlciA9IG51bGxwdHI7
Ci0gICAgbV9iYWNrZW5kRGlzcGF0Y2hlci5jbGVhcigpOworICAgIG1fYmFja2VuZERpc3BhdGNo
ZXIgPSBudWxscHRyOwogCiAgICAgRXJyb3JTdHJpbmcgdW51c2VkOwogICAgIGRpc2FibGUodW51
c2VkKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9JbnNwZWN0b3JTdHls
ZVNoZWV0LmNwcCBiL1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9JbnNwZWN0b3JTdHlsZVNoZWV0
LmNwcAppbmRleCBiNDdjNjU0ZDNkNzYyY2U0NWRjZmU0ZjE0NGI0Yzk2NTdlY2M5ZmM0Li4wNmVj
MWI2ZjJmNjQ0YzJjMWQwNmQzZmVlOWFiZTEyOGZjMGE1ZjhjIDEwMDY0NAotLS0gYS9Tb3VyY2Uv
V2ViQ29yZS9pbnNwZWN0b3IvSW5zcGVjdG9yU3R5bGVTaGVldC5jcHAKKysrIGIvU291cmNlL1dl
YkNvcmUvaW5zcGVjdG9yL0luc3BlY3RvclN0eWxlU2hlZXQuY3BwCkBAIC0xMjYxLDcgKzEyNjEs
NyBAQCB2b2lkIEluc3BlY3RvclN0eWxlU2hlZXRGb3JJbmxpbmVTdHlsZTo6ZGlkTW9kaWZ5RWxl
bWVudEF0dHJpYnV0ZSgpCiAgICAgbV9pc1N0eWxlVGV4dFZhbGlkID0gZmFsc2U7CiAgICAgaWYg
KG1fZWxlbWVudC0+aXNTdHlsZWRFbGVtZW50KCkgJiYgbV9lbGVtZW50LT5zdHlsZSgpICE9IG1f
aW5zcGVjdG9yU3R5bGUtPmNzc1N0eWxlKCkpCiAgICAgICAgIG1faW5zcGVjdG9yU3R5bGUgPSBJ
bnNwZWN0b3JTdHlsZTo6Y3JlYXRlKEluc3BlY3RvckNTU0lkKGlkKCksIDApLCBpbmxpbmVTdHls
ZSgpLCB0aGlzKTsKLSAgICBtX3J1bGVTb3VyY2VEYXRhLmNsZWFyKCk7CisgICAgbV9ydWxlU291
cmNlRGF0YSA9IG51bGxwdHI7CiB9CiAKIGJvb2wgSW5zcGVjdG9yU3R5bGVTaGVldEZvcklubGlu
ZVN0eWxlOjpnZXRUZXh0KFN0cmluZyogcmVzdWx0KSBjb25zdApAQCAtMTI4NSw3ICsxMjg1LDcg
QEAgYm9vbCBJbnNwZWN0b3JTdHlsZVNoZWV0Rm9ySW5saW5lU3R5bGU6OnNldFN0eWxlVGV4dChD
U1NTdHlsZURlY2xhcmF0aW9uKiBzdHlsZSwKIAogICAgIG1fc3R5bGVUZXh0ID0gdGV4dDsKICAg
ICBtX2lzU3R5bGVUZXh0VmFsaWQgPSB0cnVlOwotICAgIG1fcnVsZVNvdXJjZURhdGEuY2xlYXIo
KTsKKyAgICBtX3J1bGVTb3VyY2VEYXRhID0gbnVsbHB0cjsKICAgICByZXR1cm4gIWVjOwogfQog
CkBAIC0xMzA0LDcgKzEzMDQsNyBAQCBib29sIEluc3BlY3RvclN0eWxlU2hlZXRGb3JJbmxpbmVT
dHlsZTo6ZW5zdXJlUGFyc2VkRGF0YVJlYWR5KCkKICAgICAvLyBUaGUgInN0eWxlIiBwcm9wZXJ0
eSB2YWx1ZSBjYW4gZ2V0IGNoYW5nZWQgaW5kaXJlY3RseSwgZS5nLiB2aWEgZWxlbWVudC5zdHls
ZS5ib3JkZXJXaWR0aCA9ICIycHgiLgogICAgIGNvbnN0IFN0cmluZyYgY3VycmVudFN0eWxlVGV4
dCA9IGVsZW1lbnRTdHlsZVRleHQoKTsKICAgICBpZiAobV9zdHlsZVRleHQgIT0gY3VycmVudFN0
eWxlVGV4dCkgewotICAgICAgICBtX3J1bGVTb3VyY2VEYXRhLmNsZWFyKCk7CisgICAgICAgIG1f
cnVsZVNvdXJjZURhdGEgPSBudWxscHRyOwogICAgICAgICBtX3N0eWxlVGV4dCA9IGN1cnJlbnRT
dHlsZVRleHQ7CiAgICAgICAgIG1faXNTdHlsZVRleHRWYWxpZCA9IHRydWU7CiAgICAgfQpkaWZm
IC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL0luc3BlY3RvclRpbWVsaW5lQWdlbnQu
Y3BwIGIvU291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL0luc3BlY3RvclRpbWVsaW5lQWdlbnQuY3Bw
CmluZGV4IDBlMzJiYzVlNjM4OThhZmY4ZWQyYjA2YWJiMGY3YTFiYTk4MDA4YTQuLmY1NzU2YTJk
MWVhODM4NzExNTBkNTIxZjhlZmYxNDlhMjNhYzc4Y2IgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJD
b3JlL2luc3BlY3Rvci9JbnNwZWN0b3JUaW1lbGluZUFnZW50LmNwcAorKysgYi9Tb3VyY2UvV2Vi
Q29yZS9pbnNwZWN0b3IvSW5zcGVjdG9yVGltZWxpbmVBZ2VudC5jcHAKQEAgLTEwMyw3ICsxMDMs
NyBAQCB2b2lkIEluc3BlY3RvclRpbWVsaW5lQWdlbnQ6OmRpZENyZWF0ZUZyb250ZW5kQW5kQmFj
a2VuZChJbnNwZWN0b3I6OkZyb250ZW5kQ2hhbgogdm9pZCBJbnNwZWN0b3JUaW1lbGluZUFnZW50
Ojp3aWxsRGVzdHJveUZyb250ZW5kQW5kQmFja2VuZChJbnNwZWN0b3I6OkRpc2Nvbm5lY3RSZWFz
b24gcmVhc29uKQogewogICAgIG1fZnJvbnRlbmREaXNwYXRjaGVyID0gbnVsbHB0cjsKLSAgICBt
X2JhY2tlbmREaXNwYXRjaGVyLmNsZWFyKCk7CisgICAgbV9iYWNrZW5kRGlzcGF0Y2hlciA9IG51
bGxwdHI7CiAKICAgICBtX2luc3RydW1lbnRpbmdBZ2VudHMtPnNldFBlcnNpc3RlbnRJbnNwZWN0
b3JUaW1lbGluZUFnZW50KG51bGxwdHIpOwogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9p
bnNwZWN0b3IvSW5zcGVjdG9yV29ya2VyQWdlbnQuY3BwIGIvU291cmNlL1dlYkNvcmUvaW5zcGVj
dG9yL0luc3BlY3RvcldvcmtlckFnZW50LmNwcAppbmRleCBkZWJjNjk4Nzk1ZDk4YzQyYjhlYjE4
YzEwZmRhMmEyNWY4NWYyZTliLi41ZTIxZjM1YmI0ODAzYmViMWVhMmQ1OTg0YjQyZDA4NjY0NWQ5
MTgxIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvSW5zcGVjdG9yV29ya2Vy
QWdlbnQuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9JbnNwZWN0b3JXb3JrZXJB
Z2VudC5jcHAKQEAgLTEyNyw3ICsxMjcsNyBAQCB2b2lkIEluc3BlY3RvcldvcmtlckFnZW50Ojp3
aWxsRGVzdHJveUZyb250ZW5kQW5kQmFja2VuZChJbnNwZWN0b3I6OkRpc2Nvbm5lY3RSZQogICAg
IGRpc2FibGUodW51c2VkKTsKIAogICAgIG1fZnJvbnRlbmREaXNwYXRjaGVyID0gbnVsbHB0cjsK
LSAgICBtX2JhY2tlbmREaXNwYXRjaGVyLmNsZWFyKCk7CisgICAgbV9iYWNrZW5kRGlzcGF0Y2hl
ciA9IG51bGxwdHI7CiB9CiAKIHZvaWQgSW5zcGVjdG9yV29ya2VyQWdlbnQ6OmVuYWJsZShFcnJv
clN0cmluZyYpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvUGFnZVJ1bnRp
bWVBZ2VudC5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvUGFnZVJ1bnRpbWVBZ2VudC5j
cHAKaW5kZXggOTNkYjU3MmE3ZjA0NTUwNWI5ZTUxNWU1MDkwYzRmYzBiNTAyMWUyZC4uZTI0NDVh
YmY0NDNkMDhmNDM4NGEwMzliYzllNTVkOGQ1ZjNmNzEyYiAxMDA2NDQKLS0tIGEvU291cmNlL1dl
YkNvcmUvaW5zcGVjdG9yL1BhZ2VSdW50aW1lQWdlbnQuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3Jl
L2luc3BlY3Rvci9QYWdlUnVudGltZUFnZW50LmNwcApAQCAtNjksNyArNjksNyBAQCB2b2lkIFBh
Z2VSdW50aW1lQWdlbnQ6OmRpZENyZWF0ZUZyb250ZW5kQW5kQmFja2VuZChJbnNwZWN0b3I6OkZy
b250ZW5kQ2hhbm5lbCogZgogdm9pZCBQYWdlUnVudGltZUFnZW50Ojp3aWxsRGVzdHJveUZyb250
ZW5kQW5kQmFja2VuZChJbnNwZWN0b3I6OkRpc2Nvbm5lY3RSZWFzb24gcmVhc29uKQogewogICAg
IG1fZnJvbnRlbmREaXNwYXRjaGVyID0gbnVsbHB0cjsKLSAgICBtX2JhY2tlbmREaXNwYXRjaGVy
LmNsZWFyKCk7CisgICAgbV9iYWNrZW5kRGlzcGF0Y2hlciA9IG51bGxwdHI7CiAKICAgICBTdHJp
bmcgdW51c2VkOwogICAgIGRpc2FibGUodW51c2VkKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJD
b3JlL2luc3BlY3Rvci9XZWJJbmplY3RlZFNjcmlwdE1hbmFnZXIuY3BwIGIvU291cmNlL1dlYkNv
cmUvaW5zcGVjdG9yL1dlYkluamVjdGVkU2NyaXB0TWFuYWdlci5jcHAKaW5kZXggOWY0YWY0MjY5
M2VjNTc1OTUzMTMzOTQ0NjBiMTkwNWRmZTBhZDU4Ny4uNTYxOTZmMGFlMzcxZWY0NDNjMDUyM2Vi
MzFiYjZmYzVlYWYzZTViMSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL1dl
YkluamVjdGVkU2NyaXB0TWFuYWdlci5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvaW5zcGVjdG9y
L1dlYkluamVjdGVkU2NyaXB0TWFuYWdlci5jcHAKQEAgLTQ0LDcgKzQ0LDcgQEAgdm9pZCBXZWJJ
bmplY3RlZFNjcmlwdE1hbmFnZXI6OmRpc2Nvbm5lY3QoKQogICAgIEluamVjdGVkU2NyaXB0TWFu
YWdlcjo6ZGlzY29ubmVjdCgpOwogCiAgICAgbV9jb21tYW5kTGluZUFQSUhvc3QtPmRpc2Nvbm5l
Y3QoKTsKLSAgICBtX2NvbW1hbmRMaW5lQVBJSG9zdC5jbGVhcigpOworICAgIG1fY29tbWFuZExp
bmVBUElIb3N0ID0gbnVsbHB0cjsKIH0KIAogdm9pZCBXZWJJbmplY3RlZFNjcmlwdE1hbmFnZXI6
OmRpZENyZWF0ZUluamVjdGVkU2NyaXB0KEluamVjdGVkU2NyaXB0IGluamVjdGVkU2NyaXB0KQpk
aWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL1dvcmtlckluc3BlY3RvckNvbnRy
b2xsZXIuY3BwIGIvU291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL1dvcmtlckluc3BlY3RvckNvbnRy
b2xsZXIuY3BwCmluZGV4IGYxZmU0MTAwNWFkZmVhNGJjMDFlMGFkNWI3N2Y1OGYwYjk2YzI3MGQu
LmQ4MzRlMGVhOWY1YTMwMGE4MzI0ZjRhZjFkNjY2ZDNiOTA2YWM2NTIgMTAwNjQ0Ci0tLSBhL1Nv
dXJjZS9XZWJDb3JlL2luc3BlY3Rvci9Xb3JrZXJJbnNwZWN0b3JDb250cm9sbGVyLmNwcAorKysg
Yi9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvV29ya2VySW5zcGVjdG9yQ29udHJvbGxlci5jcHAK
QEAgLTEyNiw3ICsxMjYsNyBAQCB2b2lkIFdvcmtlckluc3BlY3RvckNvbnRyb2xsZXI6OmRpc2Nv
bm5lY3RGcm9udGVuZChJbnNwZWN0b3I6OkRpc2Nvbm5lY3RSZWFzb24gcgogCiAgICAgbV9hZ2Vu
dHMud2lsbERlc3Ryb3lGcm9udGVuZEFuZEJhY2tlbmQocmVhc29uKTsKICAgICBtX2JhY2tlbmRE
aXNwYXRjaGVyLT5jbGVhckZyb250ZW5kKCk7Ci0gICAgbV9iYWNrZW5kRGlzcGF0Y2hlci5jbGVh
cigpOworICAgIG1fYmFja2VuZERpc3BhdGNoZXIgPSBudWxscHRyOwogICAgIG1fZnJvbnRlbmRD
aGFubmVsID0gbnVsbHB0cjsKIH0KIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvaW5zcGVj
dG9yL1dvcmtlclJ1bnRpbWVBZ2VudC5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvV29y
a2VyUnVudGltZUFnZW50LmNwcAppbmRleCAyMDZhNDFmNWZiNDJjZDE1YTMzNmNjYjM5NGIyZWFj
NTFkZTU0ZmZhLi4xMjIyZTU1Mjc5OGJiNjM3Mzk5ZjhhZTc1N2I0ZmY0ZmRiZDJlNTBkIDEwMDY0
NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvV29ya2VyUnVudGltZUFnZW50LmNwcAor
KysgYi9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvV29ya2VyUnVudGltZUFnZW50LmNwcApAQCAt
NjAsNyArNjAsNyBAQCB2b2lkIFdvcmtlclJ1bnRpbWVBZ2VudDo6ZGlkQ3JlYXRlRnJvbnRlbmRB
bmRCYWNrZW5kKEluc3BlY3Rvcjo6RnJvbnRlbmRDaGFubmVsKgogCiB2b2lkIFdvcmtlclJ1bnRp
bWVBZ2VudDo6d2lsbERlc3Ryb3lGcm9udGVuZEFuZEJhY2tlbmQoSW5zcGVjdG9yOjpEaXNjb25u
ZWN0UmVhc29uIHJlYXNvbikKIHsKLSAgICBtX2JhY2tlbmREaXNwYXRjaGVyLmNsZWFyKCk7Cisg
ICAgbV9iYWNrZW5kRGlzcGF0Y2hlciA9IG51bGxwdHI7CiAKICAgICBJbnNwZWN0b3JSdW50aW1l
QWdlbnQ6OndpbGxEZXN0cm95RnJvbnRlbmRBbmRCYWNrZW5kKHJlYXNvbik7CiB9CmRpZmYgLS1n
aXQgYS9Tb3VyY2UvV2ViQ29yZS9sb2FkZXIvRnJhbWVMb2FkZXIuY3BwIGIvU291cmNlL1dlYkNv
cmUvbG9hZGVyL0ZyYW1lTG9hZGVyLmNwcAppbmRleCA1MjJiMTU3ZGJjYmVjMGI1MDExZjk1ZTg2
NjY2YTllMjBjNjliZmNkLi4xNTNkZDZlMDEwNDM1MjQ1OTNmOTk4YjJlMWFlNTMwZTRlYWY2YzNl
IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9sb2FkZXIvRnJhbWVMb2FkZXIuY3BwCisrKyBi
L1NvdXJjZS9XZWJDb3JlL2xvYWRlci9GcmFtZUxvYWRlci5jcHAKQEAgLTY5Miw3ICs2OTIsNyBA
QCB2b2lkIEZyYW1lTG9hZGVyOjpkaWRCZWdpbkRvY3VtZW50KGJvb2wgZGlzcGF0Y2gpCiAKICAg
ICBpZiAobV9wZW5kaW5nU3RhdGVPYmplY3QpIHsKICAgICAgICAgbV9mcmFtZS5kb2N1bWVudCgp
LT5zdGF0ZVBvcHBlZChtX3BlbmRpbmdTdGF0ZU9iamVjdC5nZXQoKSk7Ci0gICAgICAgIG1fcGVu
ZGluZ1N0YXRlT2JqZWN0LmNsZWFyKCk7CisgICAgICAgIG1fcGVuZGluZ1N0YXRlT2JqZWN0ID0g
bnVsbHB0cjsKICAgICB9CiAKICAgICBpZiAoZGlzcGF0Y2gpCmRpZmYgLS1naXQgYS9Tb3VyY2Uv
V2ViQ29yZS9sb2FkZXIvY2FjaGUvQ2FjaGVkQ1NTU3R5bGVTaGVldC5jcHAgYi9Tb3VyY2UvV2Vi
Q29yZS9sb2FkZXIvY2FjaGUvQ2FjaGVkQ1NTU3R5bGVTaGVldC5jcHAKaW5kZXggN2MyZmU3ZDg5
MjRmNGY5MGVjZGQ1ODIwNjZhZmUyN2MwOWYzMDhjMS4uNmQxMTg4MDFhZjgyNjg0NWZiNjE5OTI3
MDQ0YWY5YjJiMmQyMzZjNCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvbG9hZGVyL2NhY2hl
L0NhY2hlZENTU1N0eWxlU2hlZXQuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2xvYWRlci9jYWNo
ZS9DYWNoZWRDU1NTdHlsZVNoZWV0LmNwcApAQCAtMTM4LDcgKzEzOCw3IEBAIHZvaWQgQ2FjaGVk
Q1NTU3R5bGVTaGVldDo6ZGVzdHJveURlY29kZWREYXRhKCkKICAgICAgICAgcmV0dXJuOwogCiAg
ICAgbV9wYXJzZWRTdHlsZVNoZWV0Q2FjaGUtPnJlbW92ZWRGcm9tTWVtb3J5Q2FjaGUoKTsKLSAg
ICBtX3BhcnNlZFN0eWxlU2hlZXRDYWNoZS5jbGVhcigpOworICAgIG1fcGFyc2VkU3R5bGVTaGVl
dENhY2hlID0gbnVsbHB0cjsKIAogICAgIHNldERlY29kZWRTaXplKDApOwogfQpAQCAtMTQ2LDEx
ICsxNDYsMTEgQEAgdm9pZCBDYWNoZWRDU1NTdHlsZVNoZWV0OjpkZXN0cm95RGVjb2RlZERhdGEo
KQogUGFzc1JlZlB0cjxTdHlsZVNoZWV0Q29udGVudHM+IENhY2hlZENTU1N0eWxlU2hlZXQ6OnJl
c3RvcmVQYXJzZWRTdHlsZVNoZWV0KGNvbnN0IENTU1BhcnNlckNvbnRleHQmIGNvbnRleHQsIENh
Y2hlUG9saWN5IGNhY2hlUG9saWN5KQogewogICAgIGlmICghbV9wYXJzZWRTdHlsZVNoZWV0Q2Fj
aGUpCi0gICAgICAgIHJldHVybiAwOworICAgICAgICByZXR1cm4gbnVsbHB0cjsKICAgICBpZiAo
IW1fcGFyc2VkU3R5bGVTaGVldENhY2hlLT5zdWJyZXNvdXJjZXNBbGxvd1JldXNlKGNhY2hlUG9s
aWN5KSkgewogICAgICAgICBtX3BhcnNlZFN0eWxlU2hlZXRDYWNoZS0+cmVtb3ZlZEZyb21NZW1v
cnlDYWNoZSgpOwotICAgICAgICBtX3BhcnNlZFN0eWxlU2hlZXRDYWNoZS5jbGVhcigpOwotICAg
ICAgICByZXR1cm4gMDsKKyAgICAgICAgbV9wYXJzZWRTdHlsZVNoZWV0Q2FjaGUgPSBudWxscHRy
OworICAgICAgICByZXR1cm4gbnVsbHB0cjsKICAgICB9CiAKICAgICBBU1NFUlQobV9wYXJzZWRT
dHlsZVNoZWV0Q2FjaGUtPmlzQ2FjaGVhYmxlKCkpOwpAQCAtMTU4LDcgKzE1OCw3IEBAIFBhc3NS
ZWZQdHI8U3R5bGVTaGVldENvbnRlbnRzPiBDYWNoZWRDU1NTdHlsZVNoZWV0OjpyZXN0b3JlUGFy
c2VkU3R5bGVTaGVldChjb25zCiAKICAgICAvLyBDb250ZXh0cyBtdXN0IGJlIGlkZW50aWNhbCBz
byB3ZSBrbm93IHdlIHdvdWxkIGdldCB0aGUgc2FtZSBleGFjdCByZXN1bHQgaWYgd2UgcGFyc2Vk
IGFnYWluLgogICAgIGlmIChtX3BhcnNlZFN0eWxlU2hlZXRDYWNoZS0+cGFyc2VyQ29udGV4dCgp
ICE9IGNvbnRleHQpCi0gICAgICAgIHJldHVybiAwOworICAgICAgICByZXR1cm4gbnVsbHB0cjsK
IAogICAgIGRpZEFjY2Vzc0RlY29kZWREYXRhKG1vbm90b25pY2FsbHlJbmNyZWFzaW5nVGltZSgp
KTsKIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvbG9hZGVyL2NhY2hlL0NhY2hlZEltYWdl
LmNwcCBiL1NvdXJjZS9XZWJDb3JlL2xvYWRlci9jYWNoZS9DYWNoZWRJbWFnZS5jcHAKaW5kZXgg
NTI3NjlkYjk2Y2UxN2RlYWQ3MjA0MWE3NjgxYmE2ZjJhMGFkNTk4OS4uODFkNWQ3Yzc2YzhhMjYy
OWZmZjc2ZjQ5YzM4YTYwNjcyY2M4OGMxNSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvbG9h
ZGVyL2NhY2hlL0NhY2hlZEltYWdlLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9sb2FkZXIvY2Fj
aGUvQ2FjaGVkSW1hZ2UuY3BwCkBAIC0zNjUsOCArMzY1LDggQEAgaW5saW5lIHZvaWQgQ2FjaGVk
SW1hZ2U6OmNsZWFySW1hZ2UoKQogICAgIC8vIElmIG91ciBJbWFnZSBoYXMgYW4gb2JzZXJ2ZXIs
IGl0J3MgYWx3YXlzIHVzIHNvIHdlIG5lZWQgdG8gY2xlYXIgdGhlIGJhY2sgcG9pbnRlcgogICAg
IC8vIGJlZm9yZSBkcm9wcGluZyBvdXIgcmVmZXJlbmNlLgogICAgIGlmIChtX2ltYWdlKQotICAg
ICAgICBtX2ltYWdlLT5zZXRJbWFnZU9ic2VydmVyKDApOwotICAgIG1faW1hZ2UuY2xlYXIoKTsK
KyAgICAgICAgbV9pbWFnZS0+c2V0SW1hZ2VPYnNlcnZlcihudWxscHRyKTsKKyAgICBtX2ltYWdl
ID0gbnVsbHB0cjsKIH0KIAogdm9pZCBDYWNoZWRJbWFnZTo6YWRkSW5jcmVtZW50YWxEYXRhQnVm
ZmVyKFNoYXJlZEJ1ZmZlciYgZGF0YSkKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2xvYWRl
ci9jYWNoZS9DYWNoZWRSYXdSZXNvdXJjZS5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9sb2FkZXIvY2Fj
aGUvQ2FjaGVkUmF3UmVzb3VyY2UuY3BwCmluZGV4IDNjMWIyOTU1NGIxOWMwNWUyZmU5MWViMDdl
MGU1NTJjMmY5OGE4ZjQuLjU0YmJkZTFhYzhlYzg3MTQ4YTk1M2QzZGQ3NzgyYTdiM2UzMjQ1NjUg
MTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2xvYWRlci9jYWNoZS9DYWNoZWRSYXdSZXNvdXJj
ZS5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvbG9hZGVyL2NhY2hlL0NhY2hlZFJhd1Jlc291cmNl
LmNwcApAQCAtMjY4LDcgKzI2OCw3IEBAIGJvb2wgQ2FjaGVkUmF3UmVzb3VyY2U6OmNhblJldXNl
KGNvbnN0IFJlc291cmNlUmVxdWVzdCYgbmV3UmVxdWVzdCkgY29uc3QKIAogdm9pZCBDYWNoZWRS
YXdSZXNvdXJjZTo6Y2xlYXIoKQogewotICAgIG1fZGF0YS5jbGVhcigpOworICAgIG1fZGF0YSA9
IG51bGxwdHI7CiAgICAgc2V0RW5jb2RlZFNpemUoMCk7CiAgICAgaWYgKG1fbG9hZGVyKQogICAg
ICAgICBtX2xvYWRlci0+Y2xlYXJSZXNvdXJjZURhdGEoKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9X
ZWJDb3JlL2xvYWRlci9jYWNoZS9DYWNoZWRSZXNvdXJjZS5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9s
b2FkZXIvY2FjaGUvQ2FjaGVkUmVzb3VyY2UuY3BwCmluZGV4IGY0NDMxYmYzZGRhZmNkMmZiNzAz
ODM3YzZmN2NjZDAxMzA3NTExZjAuLjNiZWYyMWU4ZDk4OTg4YTAzOGRlYjdlMTBlMGVmNGUzY2Vm
NDNhNmIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2xvYWRlci9jYWNoZS9DYWNoZWRSZXNv
dXJjZS5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvbG9hZGVyL2NhY2hlL0NhY2hlZFJlc291cmNl
LmNwcApAQCAtMzE3LDcgKzMxNyw3IEBAIHZvaWQgQ2FjaGVkUmVzb3VyY2U6OmVycm9yKENhY2hl
ZFJlc291cmNlOjpTdGF0dXMgc3RhdHVzKQogewogICAgIHNldFN0YXR1cyhzdGF0dXMpOwogICAg
IEFTU0VSVChlcnJvck9jY3VycmVkKCkpOwotICAgIG1fZGF0YS5jbGVhcigpOworICAgIG1fZGF0
YSA9IG51bGxwdHI7CiAKICAgICBzZXRMb2FkaW5nKGZhbHNlKTsKICAgICBjaGVja05vdGlmeSgp
OwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvbG9hZGVyL2ljb24vSWNvblJlY29yZC5jcHAg
Yi9Tb3VyY2UvV2ViQ29yZS9sb2FkZXIvaWNvbi9JY29uUmVjb3JkLmNwcAppbmRleCBkNGJjMGQx
YTE5ZjM3MDYyYmY3Y2E1OGVkYzY0MmJmZWU2MjA1YTg4Li5lN2YxZDRiMjMzNDYxMDY5NGRkMzFl
ZTdlYzQ0MDQ3ZjgzNzNiNzY1IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9sb2FkZXIvaWNv
bi9JY29uUmVjb3JkLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9sb2FkZXIvaWNvbi9JY29uUmVj
b3JkLmNwcApAQCAtNzEsNyArNzEsNyBAQCB2b2lkIEljb25SZWNvcmQ6OnNldEltYWdlRGF0YShQ
YXNzUmVmUHRyPFNoYXJlZEJ1ZmZlcj4gZGF0YSkKICAgICAvLyBDb3B5IHRoZSBwcm92aWRlZCBk
YXRhIGludG8gdGhlIGJ1ZmZlciBvZiB0aGUgbmV3IEltYWdlIG9iamVjdC4KICAgICBpZiAoIW1f
aW1hZ2UtPnNldERhdGEoZGF0YSwgdHJ1ZSkpIHsKICAgICAgICAgTE9HKEljb25EYXRhYmFzZSwg
Ik1hbnVhbCBpbWFnZSBkYXRhIGZvciBpY29uVVJMICclcycgRkFJTEVEIC0gaXQgd2FzIHByb2Jh
Ymx5IGludmFsaWQgaW1hZ2UgZGF0YSIsIG1faWNvblVSTC5hc2NpaSgpLmRhdGEoKSk7Ci0gICAg
ICAgIG1faW1hZ2UuY2xlYXIoKTsKKyAgICAgICAgbV9pbWFnZSA9IG51bGxwdHI7CiAgICAgfQog
ICAgIAogICAgIG1fZGF0YVNldCA9IHRydWU7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9w
YWdlL0V2ZW50SGFuZGxlci5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9wYWdlL0V2ZW50SGFuZGxlci5j
cHAKaW5kZXggMjE2YWJjNzlkOWI4YzBhNzIyYTA4YTlkOWMyZGRiODk0NDExZmY5Ny4uNTdkYWEx
NTFiYmZjMWU1OWVmMWNjYTY2ODVkNGY4MGIzZDgxYTI0MCAxMDA2NDQKLS0tIGEvU291cmNlL1dl
YkNvcmUvcGFnZS9FdmVudEhhbmRsZXIuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BhZ2UvRXZl
bnRIYW5kbGVyLmNwcApAQCAtNDk0LDcgKzQ5NCw3IEBAIHZvaWQgRXZlbnRIYW5kbGVyOjpjbGVh
cigpCiAjZW5kaWYKICNpZiBFTkFCTEUoVE9VQ0hfRVZFTlRTKSAmJiAhRU5BQkxFKElPU19UT1VD
SF9FVkVOVFMpCiAgICAgbV9vcmlnaW5hdGluZ1RvdWNoUG9pbnRUYXJnZXRzLmNsZWFyKCk7Ci0g
ICAgbV9vcmlnaW5hdGluZ1RvdWNoUG9pbnREb2N1bWVudC5jbGVhcigpOworICAgIG1fb3JpZ2lu
YXRpbmdUb3VjaFBvaW50RG9jdW1lbnQgPSBudWxscHRyOwogICAgIG1fb3JpZ2luYXRpbmdUb3Vj
aFBvaW50VGFyZ2V0S2V5ID0gMDsKICNlbmRpZgogICAgIG1fbWF4TW91c2VNb3ZlZER1cmF0aW9u
ID0gMDsKQEAgLTM5OTQsNyArMzk5NCw3IEBAIGJvb2wgRXZlbnRIYW5kbGVyOjpoYW5kbGVUb3Vj
aEV2ZW50KGNvbnN0IFBsYXRmb3JtVG91Y2hFdmVudCYgZXZlbnQpCiAgICAgfQogICAgIG1fdG91
Y2hQcmVzc2VkID0gdG91Y2hlcy0+bGVuZ3RoKCkgPiAwOwogICAgIGlmIChhbGxUb3VjaFJlbGVh
c2VkKQotICAgICAgICBtX29yaWdpbmF0aW5nVG91Y2hQb2ludERvY3VtZW50LmNsZWFyKCk7Cisg
ICAgICAgIG1fb3JpZ2luYXRpbmdUb3VjaFBvaW50RG9jdW1lbnQgPSBudWxscHRyOwogCiAgICAg
Ly8gTm93IGl0ZXJhdGUgdGhlIGNoYW5nZWRUb3VjaGVzIGxpc3QgYW5kIG1fdGFyZ2V0cyB3aXRo
aW4gaXQsIHNlbmRpbmcgZXZlbnRzIHRvIHRoZSB0YXJnZXRzIGFzIHJlcXVpcmVkLgogICAgIGJv
b2wgc3dhbGxvd2VkRXZlbnQgPSBmYWxzZTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3Bh
Z2UvUGFnZS5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9wYWdlL1BhZ2UuY3BwCmluZGV4IDFkM2RjYzJi
NTYzOTYyMTRlOWY4MGY3MmM4ZTMzZWExODliOTNhZDIuLmY4NmQ4MWZkMDUzMGEwM2M2MjYyMjEx
NmM5MGJmZTkwNTY3MTY3YjAgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BhZ2UvUGFnZS5j
cHAKKysrIGIvU291cmNlL1dlYkNvcmUvcGFnZS9QYWdlLmNwcApAQCAtNTE2LDcgKzUxNiw3IEBA
IHZvaWQgUGFnZTo6cmVmcmVzaFBsdWdpbnMoYm9vbCByZWxvYWQpCiAgICAgVmVjdG9yPFJlZjxG
cmFtZT4+IGZyYW1lc05lZWRpbmdSZWxvYWQ7CiAKICAgICBmb3IgKGF1dG8mIHBhZ2UgOiAqYWxs
UGFnZXMpIHsKLSAgICAgICAgcGFnZS0+bV9wbHVnaW5EYXRhLmNsZWFyKCk7CisgICAgICAgIHBh
Z2UtPm1fcGx1Z2luRGF0YSA9IG51bGxwdHI7CiAKICAgICAgICAgaWYgKCFyZWxvYWQpCiAgICAg
ICAgICAgICBjb250aW51ZTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2F1
ZGlvL21hYy9DQVJpbmdCdWZmZXIuY3BwIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vYXVkaW8v
bWFjL0NBUmluZ0J1ZmZlci5jcHAKaW5kZXggZjc2ZThkZjkwNmI1YTYxZTU3Yzc3NWM0Y2U2ZDJj
YzQ0YmM4YWE1Mi4uMDU0NDJhZGM0NWU5Nzc4OTkzMTUyMDVjMzcyZTYxOTYwMTI3OWQzNyAxMDA2
NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vYXVkaW8vbWFjL0NBUmluZ0J1ZmZlci5j
cHAKKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vYXVkaW8vbWFjL0NBUmluZ0J1ZmZlci5j
cHAKQEAgLTg2LDcgKzg2LDcgQEAgdm9pZCBDQVJpbmdCdWZmZXI6OmFsbG9jYXRlKHVpbnQzMl90
IGNoYW5uZWxDb3VudCwgc2l6ZV90IGJ5dGVzUGVyRnJhbWUsIHNpemVfdAogdm9pZCBDQVJpbmdC
dWZmZXI6OmRlYWxsb2NhdGUoKQogewogICAgIGlmIChtX2J1ZmZlcnMpCi0gICAgICAgIG1fYnVm
ZmVycy5jbGVhcigpOworICAgICAgICBtX2J1ZmZlcnMgPSBudWxscHRyOwogCiAgICAgbV9jaGFu
bmVsQ291bnQgPSAwOwogICAgIG1fY2FwYWNpdHlCeXRlcyA9IDA7CmRpZmYgLS1naXQgYS9Tb3Vy
Y2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9Gb250LmNwcCBiL1NvdXJjZS9XZWJDb3JlL3Bs
YXRmb3JtL2dyYXBoaWNzL0ZvbnQuY3BwCmluZGV4IDYwM2ViYTgxZjAxMGZlZjBiMDllYTk0N2Fl
ODg2YTUxOTk4YjVhY2MuLmQ5MjY1YjU4ZDJiZTI0YWQ3MTQ3M2FiYTViMjNiNTI2ZDA5MTM3MmUg
MTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL0ZvbnQuY3BwCisr
KyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL0ZvbnQuY3BwCkBAIC0zNjMsNyAr
MzYzLDcgQEAgY29uc3QgT3BlblR5cGVNYXRoRGF0YSogRm9udDo6bWF0aERhdGEoKSBjb25zdAog
ICAgIGlmICghbV9tYXRoRGF0YSkgewogICAgICAgICBtX21hdGhEYXRhID0gT3BlblR5cGVNYXRo
RGF0YTo6Y3JlYXRlKG1fcGxhdGZvcm1EYXRhKTsKICAgICAgICAgaWYgKCFtX21hdGhEYXRhLT5o
YXNNYXRoRGF0YSgpKQotICAgICAgICAgICAgbV9tYXRoRGF0YS5jbGVhcigpOworICAgICAgICAg
ICAgbV9tYXRoRGF0YSA9IG51bGxwdHI7CiAgICAgfQogICAgIHJldHVybiBtX21hdGhEYXRhLmdl
dCgpOwogfQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvRm9u
dENhY2hlLmNwcCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL0ZvbnRDYWNoZS5j
cHAKaW5kZXggYTZjNDA0OTk0OGNmMzYzMjFiNzNkZDUxMWI5MThhMmE4YWFlMDQ1Yy4uOGQxYTgz
NTlkNjljYjcwZTRjMjBiNWVhODMyODc2NWE2YmNkNDYzNCAxMDA2NDQKLS0tIGEvU291cmNlL1dl
YkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvRm9udENhY2hlLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29y
ZS9wbGF0Zm9ybS9ncmFwaGljcy9Gb250Q2FjaGUuY3BwCkBAIC0zMjAsNyArMzIwLDcgQEAgUGFz
c1JlZlB0cjxPcGVuVHlwZVZlcnRpY2FsRGF0YT4gRm9udENhY2hlOjpnZXRWZXJ0aWNhbERhdGEo
Y29uc3QgRm9udEZpbGVLZXkmIGsKIAogICAgIFJlZlB0cjxPcGVuVHlwZVZlcnRpY2FsRGF0YT4g
dmVydGljYWxEYXRhID0gT3BlblR5cGVWZXJ0aWNhbERhdGE6OmNyZWF0ZShwbGF0Zm9ybURhdGEp
OwogICAgIGlmICghdmVydGljYWxEYXRhLT5pc09wZW5UeXBlKCkpCi0gICAgICAgIHZlcnRpY2Fs
RGF0YS5jbGVhcigpOworICAgICAgICB2ZXJ0aWNhbERhdGEgPSBudWxscHRyOwogICAgIGZvbnRW
ZXJ0aWNhbERhdGFDYWNoZS5zZXQoa2V5LCB2ZXJ0aWNhbERhdGEpOwogICAgIHJldHVybiB2ZXJ0
aWNhbERhdGE7CiB9CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGlj
cy9HcmFwaGljc0NvbnRleHQuY3BwIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3Mv
R3JhcGhpY3NDb250ZXh0LmNwcAppbmRleCBkMzhjMWZhZjc3NTI1ODMzZjM3ZTNjYjYxNzhiYjRj
NmY2N2NjMzk5Li5lNmIzN2ZkZTVmOTVlYzAyYzJmN2Q2OGE2MWY0MGY0N2E3N2YyNzMxIDEwMDY0
NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9HcmFwaGljc0NvbnRleHQu
Y3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL0dyYXBoaWNzQ29udGV4
dC5jcHAKQEAgLTE3OCw4ICsxNzgsOCBAQCB2b2lkIEdyYXBoaWNzQ29udGV4dDo6c2V0U3Ryb2tl
Q29sb3IoY29uc3QgQ29sb3ImIGNvbG9yLCBDb2xvclNwYWNlIGNvbG9yU3BhY2UpCiB7CiAgICAg
bV9zdGF0ZS5zdHJva2VDb2xvciA9IGNvbG9yOwogICAgIG1fc3RhdGUuc3Ryb2tlQ29sb3JTcGFj
ZSA9IGNvbG9yU3BhY2U7Ci0gICAgbV9zdGF0ZS5zdHJva2VHcmFkaWVudC5jbGVhcigpOwotICAg
IG1fc3RhdGUuc3Ryb2tlUGF0dGVybi5jbGVhcigpOworICAgIG1fc3RhdGUuc3Ryb2tlR3JhZGll
bnQgPSBudWxscHRyOworICAgIG1fc3RhdGUuc3Ryb2tlUGF0dGVybiA9IG51bGxwdHI7CiAgICAg
c2V0UGxhdGZvcm1TdHJva2VDb2xvcihjb2xvciwgY29sb3JTcGFjZSk7CiB9CiAKQEAgLTI0NSw4
ICsyNDUsOCBAQCB2b2lkIEdyYXBoaWNzQ29udGV4dDo6c2V0RmlsbENvbG9yKGNvbnN0IENvbG9y
JiBjb2xvciwgQ29sb3JTcGFjZSBjb2xvclNwYWNlKQogewogICAgIG1fc3RhdGUuZmlsbENvbG9y
ID0gY29sb3I7CiAgICAgbV9zdGF0ZS5maWxsQ29sb3JTcGFjZSA9IGNvbG9yU3BhY2U7Ci0gICAg
bV9zdGF0ZS5maWxsR3JhZGllbnQuY2xlYXIoKTsKLSAgICBtX3N0YXRlLmZpbGxQYXR0ZXJuLmNs
ZWFyKCk7CisgICAgbV9zdGF0ZS5maWxsR3JhZGllbnQgPSBudWxscHRyOworICAgIG1fc3RhdGUu
ZmlsbFBhdHRlcm4gPSBudWxscHRyOwogICAgIHNldFBsYXRmb3JtRmlsbENvbG9yKGNvbG9yLCBj
b2xvclNwYWNlKTsKIH0KIApAQCAtMjY5LDI2ICsyNjksMjYgQEAgdm9pZCBHcmFwaGljc0NvbnRl
eHQ6OnNldEFudGlhbGlhc2VkRm9udERpbGF0aW9uRW5hYmxlZChib29sIGFudGlhbGlhc2VkRm9u
dERpbGEKIAogdm9pZCBHcmFwaGljc0NvbnRleHQ6OnNldFN0cm9rZVBhdHRlcm4oUmVmPFBhdHRl
cm4+JiYgcGF0dGVybikKIHsKLSAgICBtX3N0YXRlLnN0cm9rZUdyYWRpZW50LmNsZWFyKCk7Cisg
ICAgbV9zdGF0ZS5zdHJva2VHcmFkaWVudCA9IG51bGxwdHI7CiAgICAgbV9zdGF0ZS5zdHJva2VQ
YXR0ZXJuID0gV1RGOjptb3ZlKHBhdHRlcm4pOwogfQogCiB2b2lkIEdyYXBoaWNzQ29udGV4dDo6
c2V0RmlsbFBhdHRlcm4oUmVmPFBhdHRlcm4+JiYgcGF0dGVybikKIHsKLSAgICBtX3N0YXRlLmZp
bGxHcmFkaWVudC5jbGVhcigpOworICAgIG1fc3RhdGUuZmlsbEdyYWRpZW50ID0gbnVsbHB0cjsK
ICAgICBtX3N0YXRlLmZpbGxQYXR0ZXJuID0gV1RGOjptb3ZlKHBhdHRlcm4pOwogfQogCiB2b2lk
IEdyYXBoaWNzQ29udGV4dDo6c2V0U3Ryb2tlR3JhZGllbnQoUmVmPEdyYWRpZW50PiYmIGdyYWRp
ZW50KQogewogICAgIG1fc3RhdGUuc3Ryb2tlR3JhZGllbnQgPSBXVEY6Om1vdmUoZ3JhZGllbnQp
OwotICAgIG1fc3RhdGUuc3Ryb2tlUGF0dGVybi5jbGVhcigpOworICAgIG1fc3RhdGUuc3Ryb2tl
UGF0dGVybiA9IG51bGxwdHI7CiB9CiAKIHZvaWQgR3JhcGhpY3NDb250ZXh0OjpzZXRGaWxsR3Jh
ZGllbnQoUmVmPEdyYWRpZW50PiYmIGdyYWRpZW50KQogewogICAgIG1fc3RhdGUuZmlsbEdyYWRp
ZW50ID0gV1RGOjptb3ZlKGdyYWRpZW50KTsKLSAgICBtX3N0YXRlLmZpbGxQYXR0ZXJuLmNsZWFy
KCk7CisgICAgbV9zdGF0ZS5maWxsUGF0dGVybiA9IG51bGxwdHI7CiB9CiAKIHZvaWQgR3JhcGhp
Y3NDb250ZXh0OjpiZWdpblRyYW5zcGFyZW5jeUxheWVyKGZsb2F0IG9wYWNpdHkpCmRpZmYgLS1n
aXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9jYWlyby9CYWNraW5nU3RvcmVC
YWNrZW5kQ2Fpcm9YMTEuY3BwIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvY2Fp
cm8vQmFja2luZ1N0b3JlQmFja2VuZENhaXJvWDExLmNwcAppbmRleCA3Yjg2MzFhZjBhOWQ4ZjRh
ZTkwNjNiMjc5ZTQwY2VlMzQ1NDljZmE0Li40MzdkYWZjODJmZDIyZWNiZjA2MDQ3YTNjMjg2ODll
YmUwMjIzNmQyIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9j
YWlyby9CYWNraW5nU3RvcmVCYWNrZW5kQ2Fpcm9YMTEuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3Jl
L3BsYXRmb3JtL2dyYXBoaWNzL2NhaXJvL0JhY2tpbmdTdG9yZUJhY2tlbmRDYWlyb1gxMS5jcHAK
QEAgLTQzLDcgKzQzLDcgQEAgQmFja2luZ1N0b3JlQmFja2VuZENhaXJvWDExOjpCYWNraW5nU3Rv
cmVCYWNrZW5kQ2Fpcm9YMTEodW5zaWduZWQgbG9uZyByb290V2luZG8KIEJhY2tpbmdTdG9yZUJh
Y2tlbmRDYWlyb1gxMTo6fkJhY2tpbmdTdG9yZUJhY2tlbmRDYWlyb1gxMSgpCiB7CiAgICAgLy8g
VGhlIHBpeG1hcCBuZWVkcyB0byBleGlzdCB3aGVuIHRoZSBzdXJmYWNlIGlzIGRlc3Ryb3llZCwg
c28gYmVnaW4gYnkgY2xlYXJpbmcgaXQuCi0gICAgbV9zdXJmYWNlLmNsZWFyKCk7CisgICAgbV9z
dXJmYWNlID0gbnVsbHB0cjsKIH0KIAogdm9pZCBCYWNraW5nU3RvcmVCYWNrZW5kQ2Fpcm9YMTE6
OnNjcm9sbChjb25zdCBJbnRSZWN0JiBzY3JvbGxSZWN0LCBjb25zdCBJbnRTaXplJiBzY3JvbGxP
ZmZzZXQpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9jYWly
by9CaXRtYXBJbWFnZUNhaXJvLmNwcCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNz
L2NhaXJvL0JpdG1hcEltYWdlQ2Fpcm8uY3BwCmluZGV4IDI2ZGY1ZGYzYWJhNDkwNzYwMTI3ODlj
MjY2ZmE5NjAyNzc1YmUyZGUuLmYwZDNhN2E3MmRiOTJmZGUxZDFiNWY5OTM4YjNjMGMxZTdhZDYx
ZjEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2NhaXJvL0Jp
dG1hcEltYWdlQ2Fpcm8uY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNz
L2NhaXJvL0JpdG1hcEltYWdlQ2Fpcm8uY3BwCkBAIC0xNTksNyArMTU5LDcgQEAgYm9vbCBGcmFt
ZURhdGE6OmNsZWFyKGJvb2wgY2xlYXJNZXRhZGF0YSkKICAgICAgICAgbV9oYXZlTWV0YWRhdGEg
PSBmYWxzZTsKIAogICAgIGlmIChtX2ZyYW1lKSB7Ci0gICAgICAgIG1fZnJhbWUuY2xlYXIoKTsK
KyAgICAgICAgbV9mcmFtZSA9IG51bGxwdHI7CiAgICAgICAgIHJldHVybiB0cnVlOwogICAgIH0K
ICAgICByZXR1cm4gZmFsc2U7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9n
cmFwaGljcy9maWx0ZXJzL0ZpbHRlckVmZmVjdC5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9y
bS9ncmFwaGljcy9maWx0ZXJzL0ZpbHRlckVmZmVjdC5jcHAKaW5kZXggNzYyNzAwODAzMGQ3ZWZh
ZTZlMDgwZTY4NzU4ZGMxNjBlYWMyYzBiOS4uYzk4ZDViOTg1YWYzYmIxZTViMGMwYzIyNmJiNDVm
YzYwNTRmNDMzYyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3Mv
ZmlsdGVycy9GaWx0ZXJFZmZlY3QuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dy
YXBoaWNzL2ZpbHRlcnMvRmlsdGVyRWZmZWN0LmNwcApAQCAtMjQ1LDEyICsyNDUsMTIgQEAgdm9p
ZCBGaWx0ZXJFZmZlY3Q6OmNsZWFyUmVzdWx0KCkKICAgICBpZiAobV9pbWFnZUJ1ZmZlclJlc3Vs
dCkKICAgICAgICAgbV9pbWFnZUJ1ZmZlclJlc3VsdC5yZXNldCgpOwogICAgIGlmIChtX3VubXVs
dGlwbGllZEltYWdlUmVzdWx0KQotICAgICAgICBtX3VubXVsdGlwbGllZEltYWdlUmVzdWx0LmNs
ZWFyKCk7CisgICAgICAgIG1fdW5tdWx0aXBsaWVkSW1hZ2VSZXN1bHQgPSBudWxscHRyOwogICAg
IGlmIChtX3ByZW11bHRpcGxpZWRJbWFnZVJlc3VsdCkKLSAgICAgICAgbV9wcmVtdWx0aXBsaWVk
SW1hZ2VSZXN1bHQuY2xlYXIoKTsKKyAgICAgICAgbV9wcmVtdWx0aXBsaWVkSW1hZ2VSZXN1bHQg
PSBudWxscHRyOwogI2lmIEVOQUJMRShPUEVOQ0wpCiAgICAgaWYgKG1fb3BlbkNMSW1hZ2VSZXN1
bHQpCi0gICAgICAgIG1fb3BlbkNMSW1hZ2VSZXN1bHQuY2xlYXIoKTsKKyAgICAgICAgbV9vcGVu
Q0xJbWFnZVJlc3VsdCA9IG51bGxwdHI7CiAjZW5kaWYKIH0KIApAQCAtNTQwLDcgKzU0MCw3IEBA
IHZvaWQgRmlsdGVyRWZmZWN0Ojp0cmFuc2Zvcm1SZXN1bHRDb2xvclNwYWNlKENvbG9yU3BhY2Ug
ZHN0Q29sb3JTcGFjZSkKICNpZiBFTkFCTEUoT1BFTkNMKQogICAgIGlmIChvcGVuQ0xJbWFnZSgp
KSB7CiAgICAgICAgIGlmIChtX2ltYWdlQnVmZmVyUmVzdWx0KQotICAgICAgICAgICAgbV9pbWFn
ZUJ1ZmZlclJlc3VsdC5jbGVhcigpOworICAgICAgICAgICAgbV9pbWFnZUJ1ZmZlclJlc3VsdCA9
IG51bGxwdHI7CiAgICAgICAgIEZpbHRlckNvbnRleHRPcGVuQ0wqIGNvbnRleHQgPSBGaWx0ZXJD
b250ZXh0T3BlbkNMOjpjb250ZXh0KCk7CiAgICAgICAgIEFTU0VSVChjb250ZXh0KTsKICAgICAg
ICAgY29udGV4dC0+b3BlbkNMVHJhbnNmb3JtQ29sb3JTcGFjZShtX29wZW5DTEltYWdlUmVzdWx0
LCBhYnNvbHV0ZVBhaW50UmVjdCgpLCBtX3Jlc3VsdENvbG9yU3BhY2UsIGRzdENvbG9yU3BhY2Up
OwpAQCAtNTU4LDkgKzU1OCw5IEBAIHZvaWQgRmlsdGVyRWZmZWN0Ojp0cmFuc2Zvcm1SZXN1bHRD
b2xvclNwYWNlKENvbG9yU3BhY2UgZHN0Q29sb3JTcGFjZSkKICAgICBtX3Jlc3VsdENvbG9yU3Bh
Y2UgPSBkc3RDb2xvclNwYWNlOwogCiAgICAgaWYgKG1fdW5tdWx0aXBsaWVkSW1hZ2VSZXN1bHQp
Ci0gICAgICAgIG1fdW5tdWx0aXBsaWVkSW1hZ2VSZXN1bHQuY2xlYXIoKTsKKyAgICAgICAgbV91
bm11bHRpcGxpZWRJbWFnZVJlc3VsdCA9IG51bGxwdHI7CiAgICAgaWYgKG1fcHJlbXVsdGlwbGll
ZEltYWdlUmVzdWx0KQotICAgICAgICBtX3ByZW11bHRpcGxpZWRJbWFnZVJlc3VsdC5jbGVhcigp
OworICAgICAgICBtX3ByZW11bHRpcGxpZWRJbWFnZVJlc3VsdCA9IG51bGxwdHI7CiAjZW5kaWYK
IH0KIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvZ3N0cmVh
bWVyL0ltYWdlR1N0cmVhbWVyQ2Fpcm8uY3BwIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3Jh
cGhpY3MvZ3N0cmVhbWVyL0ltYWdlR1N0cmVhbWVyQ2Fpcm8uY3BwCmluZGV4IDA2ZmFlY2ExOWJh
MjUzZWE3ODM3MGY1ODU0NGFiZjFhY2IyZTUyNWUuLmVlMjcyNzdmZjBiN2U5MDMzZjRiOTMzNjAy
OGFjZjQyMThiMjBhNWYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBo
aWNzL2dzdHJlYW1lci9JbWFnZUdTdHJlYW1lckNhaXJvLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29y
ZS9wbGF0Zm9ybS9ncmFwaGljcy9nc3RyZWFtZXIvSW1hZ2VHU3RyZWFtZXJDYWlyby5jcHAKQEAg
LTcxLDkgKzcxLDcgQEAgSW1hZ2VHU3RyZWFtZXI6OkltYWdlR1N0cmVhbWVyKEdzdFNhbXBsZSog
c2FtcGxlKQogSW1hZ2VHU3RyZWFtZXI6On5JbWFnZUdTdHJlYW1lcigpCiB7CiAgICAgaWYgKG1f
aW1hZ2UpCi0gICAgICAgIG1faW1hZ2UuY2xlYXIoKTsKLQotICAgIG1faW1hZ2UgPSAwOworICAg
ICAgICBtX2ltYWdlID0gbnVsbHB0cjsKIAogICAgIC8vIFdlIGtlZXAgdGhlIGJ1ZmZlciBtZW1v
cnkgbWFwcGVkIHVudGlsIHRoZSBpbWFnZSBpcyBkZXN0cm95ZWQgYmVjYXVzZSB0aGUgaW50ZXJu
YWwKICAgICAvLyBjYWlyb19zdXJmYWNlX3Qgd2FzIGNyZWF0ZWQgdXNpbmcgY2Fpcm9faW1hZ2Vf
c3VyZmFjZV9jcmVhdGVfZm9yX2RhdGEoKS4KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3Bs
YXRmb3JtL2dyYXBoaWNzL3RleG1hcC9CaXRtYXBUZXh0dXJlR0wuY3BwIGIvU291cmNlL1dlYkNv
cmUvcGxhdGZvcm0vZ3JhcGhpY3MvdGV4bWFwL0JpdG1hcFRleHR1cmVHTC5jcHAKaW5kZXggOTc1
YzM4ZjJmZjRiMTkxODI4ZDdkMWVjZTE2ZTRkNjA5YjA5MGJmNi4uMGU1MmQ3YjRiMjU4NDVhNjAz
OGRiNDVlZDhmOGE5YWJkNGFlZjk5NCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZv
cm0vZ3JhcGhpY3MvdGV4bWFwL0JpdG1hcFRleHR1cmVHTC5jcHAKKysrIGIvU291cmNlL1dlYkNv
cmUvcGxhdGZvcm0vZ3JhcGhpY3MvdGV4bWFwL0JpdG1hcFRleHR1cmVHTC5jcHAKQEAgLTI3OCw3
ICsyNzgsNyBAQCBQYXNzUmVmUHRyPEJpdG1hcFRleHR1cmU+IEJpdG1hcFRleHR1cmVHTDo6YXBw
bHlGaWx0ZXJzKFRleHR1cmVNYXBwZXIqIHRleHR1cmVNYQogICAgICAgICAgICAgdGV4bWFwR0wt
PmRyYXdGaWx0ZXJlZCgqcmVzdWx0U3VyZmFjZS5nZXQoKSwgc3BhcmVTdXJmYWNlLmdldCgpLCAq
ZmlsdGVyLCBqKTsKICAgICAgICAgICAgIGlmICghaiAmJiBmaWx0ZXItPnR5cGUoKSA9PSBGaWx0
ZXJPcGVyYXRpb246OkRST1BfU0hBRE9XKSB7CiAgICAgICAgICAgICAgICAgc3BhcmVTdXJmYWNl
ID0gcmVzdWx0U3VyZmFjZTsKLSAgICAgICAgICAgICAgICByZXN1bHRTdXJmYWNlLmNsZWFyKCk7
CisgICAgICAgICAgICAgICAgcmVzdWx0U3VyZmFjZSA9IG51bGxwdHI7CiAgICAgICAgICAgICB9
CiAgICAgICAgICAgICBzdGQ6OnN3YXAocmVzdWx0U3VyZmFjZSwgaW50ZXJtZWRpYXRlU3VyZmFj
ZSk7CiAgICAgICAgIH0KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBo
aWNzL3RleG1hcC9UZXh0dXJlTWFwcGVyR0wuY3BwIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0v
Z3JhcGhpY3MvdGV4bWFwL1RleHR1cmVNYXBwZXJHTC5jcHAKaW5kZXggMGJjZThjNzQyMGQ3ZDBh
NDRiMzA5ZTI2ZjU2NmE5MjE5M2U0ODYwYS4uNGM1NDgwNTYyMzVlMzk4ZmFjOTgzNjBmZTljYmY2
MjVjNzVhMWQwNSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3Mv
dGV4bWFwL1RleHR1cmVNYXBwZXJHTC5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0v
Z3JhcGhpY3MvdGV4bWFwL1RleHR1cmVNYXBwZXJHTC5jcHAKQEAgLTY5MSw3ICs2OTEsNyBAQCB2
b2lkIFRleHR1cmVNYXBwZXJHTDo6YmluZERlZmF1bHRTdXJmYWNlKCkKICAgICBkYXRhKCkucHJv
amVjdGlvbk1hdHJpeCA9IGNyZWF0ZVByb2plY3Rpb25NYXRyaXgodmlld3BvcnRTaXplLCBkYXRh
KCkuUGFpbnRGbGFncyAmIFBhaW50aW5nTWlycm9yZWQpOwogICAgIG1fY29udGV4dDNELT52aWV3
cG9ydChkYXRhKCkudmlld3BvcnRbMF0sIGRhdGEoKS52aWV3cG9ydFsxXSwgdmlld3BvcnRTaXpl
LndpZHRoKCksIHZpZXdwb3J0U2l6ZS5oZWlnaHQoKSk7CiAgICAgbV9jbGlwU3RhY2suYXBwbHko
bV9jb250ZXh0M0QuZ2V0KCkpOwotICAgIGRhdGEoKS5jdXJyZW50U3VyZmFjZS5jbGVhcigpOwor
ICAgIGRhdGEoKS5jdXJyZW50U3VyZmFjZSA9IG51bGxwdHI7CiB9CiAKIHZvaWQgVGV4dHVyZU1h
cHBlckdMOjpiaW5kU3VyZmFjZShCaXRtYXBUZXh0dXJlICpzdXJmYWNlKQpkaWZmIC0tZ2l0IGEv
U291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvdGV4bWFwL1RleHR1cmVNYXBwZXJMYXll
ci5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy90ZXhtYXAvVGV4dHVyZU1h
cHBlckxheWVyLmNwcAppbmRleCBjODY0MjAyMmEzYWMxNDY1NzcwODgxZjEyNDg3ZmY3ZGRiYjU0
NGQ4Li4zNDU1Mzk4NzAyNGE2ZTc1ZmQ5ZDFlMzkwNjgxNzhiOWVkNzIzYTJiIDEwMDY0NAotLS0g
YS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy90ZXhtYXAvVGV4dHVyZU1hcHBlckxh
eWVyLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy90ZXhtYXAvVGV4
dHVyZU1hcHBlckxheWVyLmNwcApAQCAtNDA4LDcgKzQwOCw3IEBAIHZvaWQgVGV4dHVyZU1hcHBl
ckxheWVyOjpwYWludFdpdGhJbnRlcm1lZGlhdGVTdXJmYWNlKGNvbnN0IFRleHR1cmVNYXBwZXJQ
YWludE9wCiAKICAgICBpZiAocmVwbGljYVN1cmZhY2UgJiYgb3B0aW9ucy5vcGFjaXR5ID09IDEp
IHsKICAgICAgICAgY29tbWl0U3VyZmFjZShvcHRpb25zLCByZXBsaWNhU3VyZmFjZSwgcmVjdCwg
MSk7Ci0gICAgICAgIHJlcGxpY2FTdXJmYWNlLmNsZWFyKCk7CisgICAgICAgIHJlcGxpY2FTdXJm
YWNlID0gbnVsbHB0cjsKICAgICB9CiAKICAgICBtYWluU3VyZmFjZSA9IHBhaW50SW50b1N1cmZh
Y2UocGFpbnRPcHRpb25zLCByZWN0LnNpemUoKSk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29y
ZS9wbGF0Zm9ybS9ncmFwaGljcy90ZXhtYXAvVGV4dHVyZU1hcHBlclRpbGVkQmFja2luZ1N0b3Jl
LmNwcCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL3RleG1hcC9UZXh0dXJlTWFw
cGVyVGlsZWRCYWNraW5nU3RvcmUuY3BwCmluZGV4IDIwODA0NjIzOTNiZGJiOWNiMDE0ODIyODM5
NGU4YjJmNjVmMGM2ZDcuLmQzNTcxMGE2OTI4MWE4MjA2MTZkZTMxMjEzM2M0ZDNjN2ZmOTE3ZTgg
MTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL3RleG1hcC9UZXh0
dXJlTWFwcGVyVGlsZWRCYWNraW5nU3RvcmUuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRm
b3JtL2dyYXBoaWNzL3RleG1hcC9UZXh0dXJlTWFwcGVyVGlsZWRCYWNraW5nU3RvcmUuY3BwCkBA
IC0zOSw3ICszOSw3IEBAIHZvaWQgVGV4dHVyZU1hcHBlclRpbGVkQmFja2luZ1N0b3JlOjp1cGRh
dGVDb250ZW50c0Zyb21JbWFnZUlmTmVlZGVkKFRleHR1cmVNYXBwCiAgICAgICAgIHJldHVybjsK
IAogICAgIHVwZGF0ZUNvbnRlbnRzKHRleHR1cmVNYXBwZXIsIG1faW1hZ2UuZ2V0KCksIG1faW1h
Z2UtPnNpemUoKSwgZW5jbG9zaW5nSW50UmVjdChtX2ltYWdlLT5yZWN0KCkpLCBCaXRtYXBUZXh0
dXJlOjpVcGRhdGVDYW5ub3RNb2RpZnlPcmlnaW5hbEltYWdlRGF0YSk7Ci0gICAgbV9pbWFnZS5j
bGVhcigpOworICAgIG1faW1hZ2UgPSBudWxscHRyOwogfQogCiBUcmFuc2Zvcm1hdGlvbk1hdHJp
eCBUZXh0dXJlTWFwcGVyVGlsZWRCYWNraW5nU3RvcmU6OmFkanVzdGVkVHJhbnNmb3JtRm9yUmVj
dChjb25zdCBGbG9hdFJlY3QmIHRhcmdldFJlY3QpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29y
ZS9wbGF0Zm9ybS9ncmFwaGljcy90ZXhtYXAvY29vcmRpbmF0ZWQvQ29vcmRpbmF0ZWRHcmFwaGlj
c0xheWVyLmNwcCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL3RleG1hcC9jb29y
ZGluYXRlZC9Db29yZGluYXRlZEdyYXBoaWNzTGF5ZXIuY3BwCmluZGV4IGUyZTFmNGFiOGZhMTk5
NjRmZjZkZmNkNTJjN2I3ZDdlZDkxOGNhYjAuLmE3MGU3YTA3N2Q3ZGUwNzczM2UwOGYyMDYyYWI2
OWZmMGU0YzFmNzggMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNz
L3RleG1hcC9jb29yZGluYXRlZC9Db29yZGluYXRlZEdyYXBoaWNzTGF5ZXIuY3BwCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL3RleG1hcC9jb29yZGluYXRlZC9Db29yZGlu
YXRlZEdyYXBoaWNzTGF5ZXIuY3BwCkBAIC04MjAsNyArODIwLDcgQEAgdm9pZCBDb29yZGluYXRl
ZEdyYXBoaWNzTGF5ZXI6OnJlbGVhc2VJbWFnZUJhY2tpbmdJZk5lZWRlZCgpCiAKICAgICBBU1NF
UlQobV9jb29yZGluYXRvcik7CiAgICAgbV9jb29yZGluYXRlZEltYWdlQmFja2luZy0+cmVtb3Zl
SG9zdCh0aGlzKTsKLSAgICBtX2Nvb3JkaW5hdGVkSW1hZ2VCYWNraW5nLmNsZWFyKCk7CisgICAg
bV9jb29yZGluYXRlZEltYWdlQmFja2luZyA9IG51bGxwdHI7CiAgICAgbV9sYXllclN0YXRlLmlt
YWdlSUQgPSBJbnZhbGlkQ29vcmRpbmF0ZWRJbWFnZUJhY2tpbmdJRDsKICAgICBtX2xheWVyU3Rh
dGUuaW1hZ2VDaGFuZ2VkID0gdHJ1ZTsKIH0KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3Bs
YXRmb3JtL2dyYXBoaWNzL3RleG1hcC9jb29yZGluYXRlZC9Db29yZGluYXRlZEltYWdlQmFja2lu
Zy5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy90ZXhtYXAvY29vcmRpbmF0
ZWQvQ29vcmRpbmF0ZWRJbWFnZUJhY2tpbmcuY3BwCmluZGV4IGQyMmIxNWVkZDMwYWY5ZWEwOWMy
NDY4NTYyMmIwMzkzYjViNTUyOTMuLmUyNjE1MGZlZWU5ZTI3OWJhMzMyMDcwZGU4NGJmNDI0OWZm
MjMxZTcgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL3RleG1h
cC9jb29yZGluYXRlZC9Db29yZGluYXRlZEltYWdlQmFja2luZy5jcHAKKysrIGIvU291cmNlL1dl
YkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvdGV4bWFwL2Nvb3JkaW5hdGVkL0Nvb3JkaW5hdGVkSW1h
Z2VCYWNraW5nLmNwcApAQCAtMTQxLDcgKzE0MSw3IEBAIHZvaWQgQ29vcmRpbmF0ZWRJbWFnZUJh
Y2tpbmc6OnJlbGVhc2VTdXJmYWNlSWZOZWVkZWQoKQogewogICAgIC8vIFdlIG11c3Qga2VlcCBt
X3N1cmZhY2UgdW50aWwgVUkgUHJvY2VzcyByZWFkcyBtX3N1cmZhY2UuCiAgICAgLy8gSWYgbV9z
dXJmYWNlIGV4aXN0cywgaXQgd2FzIGNyZWF0ZWQgaW4gdGhlIHByZXZpb3VzIHVwZGF0ZS4KLSAg
ICBtX3N1cmZhY2UuY2xlYXIoKTsKKyAgICBtX3N1cmZhY2UgPSBudWxscHRyOwogfQogCiBzdGF0
aWMgY29uc3QgZG91YmxlIGNsZWFyQ29udGVudHNUaW1lckludGVydmFsID0gMzsKZGlmZiAtLWdp
dCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2d0ay9HYW1lcGFkc0d0ay5jcHAgYi9Tb3VyY2Uv
V2ViQ29yZS9wbGF0Zm9ybS9ndGsvR2FtZXBhZHNHdGsuY3BwCmluZGV4IDI2ZjliZTYyYzc2NDYz
YzZlMDgxZmNlZmU3OTZiMmVhZjE3NTk1OGQuLjlmYjI5ZjJiOTU0NmZjMTgzOWM0ZWE4ZWI1Nzg0
YThhNTYyMzIzNDkgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2d0ay9HYW1l
cGFkc0d0ay5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3RrL0dhbWVwYWRzR3Rr
LmNwcApAQCAtMTU1LDcgKzE1NSw3IEBAIHZvaWQgR2FtZXBhZHNHdGs6OnVucmVnaXN0ZXJEZXZp
Y2UoU3RyaW5nIGRldmljZUZpbGUpCiAgICAgc2l6ZV90IGluZGV4ID0gbV9zbG90cy5maW5kKGdh
bWVwYWREZXZpY2UpOwogICAgIEFTU0VSVChpbmRleCAhPSBub3RGb3VuZCk7CiAKLSAgICBtX3Ns
b3RzW2luZGV4XS5jbGVhcigpOworICAgIG1fc2xvdHNbaW5kZXhdID0gbnVsbHB0cjsKIH0KIAog
dm9pZCBHYW1lcGFkc0d0azo6dXBkYXRlR2FtZXBhZExpc3QoR2FtZXBhZExpc3QqIGludG8pCmRp
ZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvSW5saW5lRmxvd0JveC5jcHAgYi9T
b3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvSW5saW5lRmxvd0JveC5jcHAKaW5kZXggNDE2ODJjOGUy
YjYwY2I5MjhlNDYxYjRlZmZhYTNiZjc5YzM2MWMyOC4uMmQ2ZmI2OTQ0OGY4ZjFiYjU5NDRjMTBi
YTU0OTAxMTU2N2Q2NzczNyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL0lu
bGluZUZsb3dCb3guY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9JbmxpbmVGbG93
Qm94LmNwcApAQCAtOTU0LDcgKzk1NCw3IEBAIHZvaWQgSW5saW5lRmxvd0JveDo6Y29tcHV0ZU92
ZXJmbG93KExheW91dFVuaXQgbGluZVRvcCwgTGF5b3V0VW5pdCBsaW5lQm90dG9tLCBHCiAgICAg
ICAgIHJldHVybjsKIAogICAgIGlmIChtX292ZXJmbG93KQotICAgICAgICBtX292ZXJmbG93LmNs
ZWFyKCk7CisgICAgICAgIG1fb3ZlcmZsb3cgPSBudWxscHRyOwogCiAgICAgLy8gVmlzdWFsIG92
ZXJmbG93IGp1c3QgaW5jbHVkZXMgb3ZlcmZsb3cgZm9yIHN0dWZmIHdlIG5lZWQgdG8gcmVwYWlu
dCBvdXJzZWx2ZXMuICBTZWxmLXBhaW50aW5nIGxheWVycyBhcmUgaWdub3JlZC4KICAgICAvLyBM
YXlvdXQgb3ZlcmZsb3cgaXMgdXNlZCB0byBkZXRlcm1pbmUgc2Nyb2xsaW5nIGV4dGVudCwgc28g
aXQgc3RpbGwgaW5jbHVkZXMgY2hpbGQgbGF5ZXJzIGFuZCBhbHNvIGZhY3RvcnMgaW4KZGlmZiAt
LWdpdCBhL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJCb3guY3BwIGIvU291cmNlL1dl
YkNvcmUvcmVuZGVyaW5nL1JlbmRlckJveC5jcHAKaW5kZXggNTAyZGY2NmMwZDBkZTk4YTlhNDJj
ZDk0ZjcwYjIwYjRlMGIyYWNiYy4uNjE3MWRiNWUwYThhOTIyNTdjYmUyZDMwN2Q2Zjc2ZGEzNjlh
ZGIyNCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlckJveC5jcHAK
KysrIGIvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlckJveC5jcHAKQEAgLTQ0OTcsNyAr
NDQ5Nyw3IEBAIHZvaWQgUmVuZGVyQm94OjphZGRWaXN1YWxPdmVyZmxvdyhjb25zdCBMYXlvdXRS
ZWN0JiByZWN0KQogCiB2b2lkIFJlbmRlckJveDo6Y2xlYXJPdmVyZmxvdygpCiB7Ci0gICAgbV9v
dmVyZmxvdy5jbGVhcigpOworICAgIG1fb3ZlcmZsb3cgPSBudWxscHRyOwogICAgIFJlbmRlckZs
b3dUaHJlYWQqIGZsb3dUaHJlYWQgPSBmbG93VGhyZWFkQ29udGFpbmluZ0Jsb2NrKCk7CiAgICAg
aWYgKGZsb3dUaHJlYWQpCiAgICAgICAgIGZsb3dUaHJlYWQtPmNsZWFyUmVnaW9uc092ZXJmbG93
KHRoaXMpOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlckJveFJl
Z2lvbkluZm8uaCBiL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJCb3hSZWdpb25JbmZv
LmgKaW5kZXggNjIzNjA4ZDY3NWRjYzY5MTFlMjdkYWYyNGFjYjg0MDlkNDZlMThhZi4uZWEyM2Mx
ZWM4ZWUzNzVlN2E2MTFjMTRlYzA0MTlmNjU2ZGExOTdiMiAxMDA2NDQKLS0tIGEvU291cmNlL1dl
YkNvcmUvcmVuZGVyaW5nL1JlbmRlckJveFJlZ2lvbkluZm8uaAorKysgYi9Tb3VyY2UvV2ViQ29y
ZS9yZW5kZXJpbmcvUmVuZGVyQm94UmVnaW9uSW5mby5oCkBAIC01Myw3ICs1Myw3IEBAIHB1Ymxp
YzoKICAgICB2b2lkIGNsZWFyT3ZlcmZsb3coKQogICAgIHsKICAgICAgICAgaWYgKG1fb3ZlcmZs
b3cpCi0gICAgICAgICAgICBtX292ZXJmbG93LmNsZWFyKCk7CisgICAgICAgICAgICBtX292ZXJm
bG93ID0gbnVsbHB0cjsKICAgICB9CiAKIHByaXZhdGU6CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2Vi
Q29yZS9yZW5kZXJpbmcvc3R5bGUvRmlsbExheWVyLmggYi9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJp
bmcvc3R5bGUvRmlsbExheWVyLmgKaW5kZXggOGIwNmNlM2I3ZTg3N2UyNTU2ZjY3Njg4YTM0M2Fh
ZmMyZDEzMThmOS4uMDMwOTg2M2RhZTYwZTc4ZTc2OTRiMTY5ZTY2YmJjZTVmMTljYzgwNCAxMDA2
NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL3N0eWxlL0ZpbGxMYXllci5oCisrKyBi
L1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9zdHlsZS9GaWxsTGF5ZXIuaApAQCAtMTIxLDggKzEy
MSw4IEBAIHB1YmxpYzoKICAgICB2b2lkIHNldFNpemUoRmlsbFNpemUgZikgeyBtX3NpemVUeXBl
ID0gZi50eXBlOyBtX3NpemVMZW5ndGggPSBmLnNpemU7IH0KICAgICB2b2lkIHNldE1hc2tTb3Vy
Y2VUeXBlKEVNYXNrU291cmNlVHlwZSBtKSB7IG1fbWFza1NvdXJjZVR5cGUgPSBtOyBtX21hc2tT
b3VyY2VUeXBlU2V0ID0gdHJ1ZTsgfQogCi0gICAgdm9pZCBjbGVhck1hc2tJbWFnZSgpIHsgbV9t
YXNrSW1hZ2VPcGVyYXRpb24uY2xlYXIoKTsgfQotICAgIHZvaWQgY2xlYXJJbWFnZSgpIHsgbV9p
bWFnZS5jbGVhcigpOyBtX2ltYWdlU2V0ID0gZmFsc2U7IH0KKyAgICB2b2lkIGNsZWFyTWFza0lt
YWdlKCkgeyBtX21hc2tJbWFnZU9wZXJhdGlvbiA9IG51bGxwdHI7IH0KKyAgICB2b2lkIGNsZWFy
SW1hZ2UoKSB7IG1faW1hZ2UgPSBudWxscHRyOyBtX2ltYWdlU2V0ID0gZmFsc2U7IH0KICAgICB2
b2lkIGNsZWFyWFBvc2l0aW9uKCkgeyBtX3hQb3NTZXQgPSBmYWxzZTsgbV9iYWNrZ3JvdW5kT3Jp
Z2luU2V0ID0gZmFsc2U7IH0KICAgICB2b2lkIGNsZWFyWVBvc2l0aW9uKCkgeyBtX3lQb3NTZXQg
PSBmYWxzZTsgbV9iYWNrZ3JvdW5kT3JpZ2luU2V0ID0gZmFsc2U7IH0KIApkaWZmIC0tZ2l0IGEv
U291cmNlL1dlYkNvcmUvc3ZnL1NWR1RSZWZFbGVtZW50LmNwcCBiL1NvdXJjZS9XZWJDb3JlL3N2
Zy9TVkdUUmVmRWxlbWVudC5jcHAKaW5kZXggMjI1YTMwNDZhNDk5MmM5NzA1YmE3OTUwOTk1NjFi
M2I5ZWJhZmZiZC4uZTNmYWQ4ZDU5MGM1NGRlNmJlOTQ2NzljOTU3MTdiOTg1YWM3NGEyMSAxMDA2
NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvc3ZnL1NWR1RSZWZFbGVtZW50LmNwcAorKysgYi9Tb3Vy
Y2UvV2ViQ29yZS9zdmcvU1ZHVFJlZkVsZW1lbnQuY3BwCkBAIC0xMDQsNyArMTA0LDcgQEAgdm9p
ZCBTVkdUUmVmVGFyZ2V0RXZlbnRMaXN0ZW5lcjo6ZGV0YWNoKCkKIAogICAgIG1fdGFyZ2V0LT5y
ZW1vdmVFdmVudExpc3RlbmVyKGV2ZW50TmFtZXMoKS5ET01TdWJ0cmVlTW9kaWZpZWRFdmVudCwg
dGhpcywgZmFsc2UpOwogICAgIG1fdGFyZ2V0LT5yZW1vdmVFdmVudExpc3RlbmVyKGV2ZW50TmFt
ZXMoKS5ET01Ob2RlUmVtb3ZlZEZyb21Eb2N1bWVudEV2ZW50LCB0aGlzLCBmYWxzZSk7Ci0gICAg
bV90YXJnZXQuY2xlYXIoKTsKKyAgICBtX3RhcmdldCA9IG51bGxwdHI7CiB9CiAKIGJvb2wgU1ZH
VFJlZlRhcmdldEV2ZW50TGlzdGVuZXI6Om9wZXJhdG9yPT0oY29uc3QgRXZlbnRMaXN0ZW5lciYg
bGlzdGVuZXIpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS90ZXN0aW5nL0ludGVybmFscy5j
cHAgYi9Tb3VyY2UvV2ViQ29yZS90ZXN0aW5nL0ludGVybmFscy5jcHAKaW5kZXggMWExMDUxNzQ3
OWU4ZThlOTgxYTc0NTNhYmRhNmZkYzI0NzU3NTFiNy4uNDc2ZDFlMjc1OWU2MDZmMjA3NjQ1ODIx
MGRiNDkzM2M4MjMwNmU4MiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvdGVzdGluZy9JbnRl
cm5hbHMuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3Rlc3RpbmcvSW50ZXJuYWxzLmNwcApAQCAt
MTcyMyw3ICsxNzIzLDcgQEAgdm9pZCBJbnRlcm5hbHM6OmNsb3NlRHVtbXlJbnNwZWN0b3JGcm9u
dGVuZCgpCiAgICAgbV9mcm9udGVuZENoYW5uZWwgPSBudWxscHRyOwogCiAgICAgbV9mcm9udGVu
ZFdpbmRvdy0+Y2xvc2UobV9mcm9udGVuZFdpbmRvdy0+c2NyaXB0RXhlY3V0aW9uQ29udGV4dCgp
KTsKLSAgICBtX2Zyb250ZW5kV2luZG93LmNsZWFyKCk7CisgICAgbV9mcm9udGVuZFdpbmRvdyA9
IG51bGxwdHI7CiB9CiAKIHZvaWQgSW50ZXJuYWxzOjpzZXRKYXZhU2NyaXB0UHJvZmlsaW5nRW5h
YmxlZChib29sIGVuYWJsZWQsIEV4Y2VwdGlvbkNvZGUmIGVjKQpkaWZmIC0tZ2l0IGEvU291cmNl
L1dlYkNvcmUvd29ya2Vycy9Xb3JrZXJFdmVudFF1ZXVlLmNwcCBiL1NvdXJjZS9XZWJDb3JlL3dv
cmtlcnMvV29ya2VyRXZlbnRRdWV1ZS5jcHAKaW5kZXggZjUyMGMxZGVlZmFiMWViMTRmMWI3ZmQ5
MjQwZmU4NjQ3YWMyNGE4OS4uMDcyMTA3NjlmZDA2YmE5Y2U4N2FjNDY1MmM5OWUyYzE3OGQyODRm
MSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvd29ya2Vycy9Xb3JrZXJFdmVudFF1ZXVlLmNw
cAorKysgYi9Tb3VyY2UvV2ViQ29yZS93b3JrZXJzL1dvcmtlckV2ZW50UXVldWUuY3BwCkBAIC02
OCwxMyArNjgsMTMgQEAgcHVibGljOgogICAgICAgICAgICAgcmV0dXJuOwogICAgICAgICBtX2V2
ZW50UXVldWUubV9ldmVudERpc3BhdGNoZXJNYXAucmVtb3ZlKG1fZXZlbnQuZ2V0KCkpOwogICAg
ICAgICBtX2V2ZW50LT50YXJnZXQoKS0+ZGlzcGF0Y2hFdmVudChtX2V2ZW50KTsKLSAgICAgICAg
bV9ldmVudC5jbGVhcigpOworICAgICAgICBtX2V2ZW50ID0gbnVsbHB0cjsKICAgICB9CiAKICAg
ICB2b2lkIGNhbmNlbCgpCiAgICAgewogICAgICAgICBtX2lzQ2FuY2VsbGVkID0gdHJ1ZTsKLSAg
ICAgICAgbV9ldmVudC5jbGVhcigpOworICAgICAgICBtX2V2ZW50ID0gbnVsbHB0cjsKICAgICB9
CiAKIHByaXZhdGU6CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS94bWwvWE1MSHR0cFJlcXVl
c3QuY3BwIGIvU291cmNlL1dlYkNvcmUveG1sL1hNTEh0dHBSZXF1ZXN0LmNwcAppbmRleCBjN2U4
YzBiMmIwZmRkM2E3OWJhMDlkMmZkOTE1ZjMyMTVmZTZjNzI5Li40NzVkNmZiNGQ1NmJmNjU3NWVm
NTBjMWM1NDRkNTg4MzUwNWI5NDc1IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS94bWwvWE1M
SHR0cFJlcXVlc3QuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3htbC9YTUxIdHRwUmVxdWVzdC5j
cHAKQEAgLTI0NSw3ICsyNDUsNyBAQCBCbG9iKiBYTUxIdHRwUmVxdWVzdDo6cmVzcG9uc2VCbG9i
KCkKICAgICAgICAgICAgIGRhdGEuYXBwZW5kKG1fYmluYXJ5UmVzcG9uc2VCdWlsZGVyLT5kYXRh
KCksIG1fYmluYXJ5UmVzcG9uc2VCdWlsZGVyLT5zaXplKCkpOwogICAgICAgICAgICAgU3RyaW5n
IG5vcm1hbGl6ZWRDb250ZW50VHlwZSA9IEJsb2I6Om5vcm1hbGl6ZWRDb250ZW50VHlwZShyZXNw
b25zZU1JTUVUeXBlKCkpOyAvLyByZXNwb25zZU1JTUVUeXBlIGRlZmF1bHRzIHRvIHRleHQveG1s
IHdoaWNoIG1heSBiZSBpbmNvcnJlY3QuCiAgICAgICAgICAgICBtX3Jlc3BvbnNlQmxvYiA9IEJs
b2I6OmNyZWF0ZShXVEY6Om1vdmUoZGF0YSksIG5vcm1hbGl6ZWRDb250ZW50VHlwZSk7Ci0gICAg
ICAgICAgICBtX2JpbmFyeVJlc3BvbnNlQnVpbGRlci5jbGVhcigpOworICAgICAgICAgICAgbV9i
aW5hcnlSZXNwb25zZUJ1aWxkZXIgPSBudWxscHRyOwogICAgICAgICB9IGVsc2UgewogICAgICAg
ICAgICAgLy8gSWYgd2UgZXJyb3JlZCBvdXQgb3IgZ290IG5vIGRhdGEsIHdlIHN0aWxsIHJldHVy
biBhIGJsb2IsIGp1c3QgYW4gZW1wdHkgb25lLgogICAgICAgICAgICAgbV9yZXNwb25zZUJsb2Ig
PSBCbG9iOjpjcmVhdGUoKTsKQEAgLTI2NSw3ICsyNjUsNyBAQCBBcnJheUJ1ZmZlciogWE1MSHR0
cFJlcXVlc3Q6OnJlc3BvbnNlQXJyYXlCdWZmZXIoKQogICAgICAgICAgICAgbV9yZXNwb25zZUFy
cmF5QnVmZmVyID0gbV9iaW5hcnlSZXNwb25zZUJ1aWxkZXItPmNyZWF0ZUFycmF5QnVmZmVyKCk7
CiAgICAgICAgIGVsc2UKICAgICAgICAgICAgIG1fcmVzcG9uc2VBcnJheUJ1ZmZlciA9IEFycmF5
QnVmZmVyOjpjcmVhdGUobnVsbHB0ciwgMCk7Ci0gICAgICAgIG1fYmluYXJ5UmVzcG9uc2VCdWls
ZGVyLmNsZWFyKCk7CisgICAgICAgIG1fYmluYXJ5UmVzcG9uc2VCdWlsZGVyID0gbnVsbHB0cjsK
ICAgICB9CiAKICAgICByZXR1cm4gbV9yZXNwb25zZUFycmF5QnVmZmVyLmdldCgpOwpAQCAtODY4
LDggKzg2OCw4IEBAIHZvaWQgWE1MSHR0cFJlcXVlc3Q6OmNsZWFyUmVzcG9uc2VCdWZmZXJzKCkK
ICAgICBtX2NyZWF0ZWREb2N1bWVudCA9IGZhbHNlOwogICAgIG1fcmVzcG9uc2VEb2N1bWVudCA9
IG51bGxwdHI7CiAgICAgbV9yZXNwb25zZUJsb2IgPSBudWxscHRyOwotICAgIG1fYmluYXJ5UmVz
cG9uc2VCdWlsZGVyLmNsZWFyKCk7Ci0gICAgbV9yZXNwb25zZUFycmF5QnVmZmVyLmNsZWFyKCk7
CisgICAgbV9iaW5hcnlSZXNwb25zZUJ1aWxkZXIgPSBudWxscHRyOworICAgIG1fcmVzcG9uc2VB
cnJheUJ1ZmZlciA9IG51bGxwdHI7CiAgICAgbV9yZXNwb25zZUNhY2hlSXNWYWxpZCA9IGZhbHNl
OwogfQogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS94bWwvWFNMVFByb2Nlc3Nvci5jcHAg
Yi9Tb3VyY2UvV2ViQ29yZS94bWwvWFNMVFByb2Nlc3Nvci5jcHAKaW5kZXggMDY5Y2NlY2I3YmYy
Yzk0MDA2ZGU5NDg1ZDE2MzI4NGU4NDA3OTFmYi4uNDkxZjEyYzk5ZDhhNWI0MjBhZmZjMjkwNzdj
NGIzZGUyMTNkNTQwOCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUveG1sL1hTTFRQcm9jZXNz
b3IuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3htbC9YU0xUUHJvY2Vzc29yLmNwcApAQCAtMTYy
LDggKzE2Miw4IEBAIHZvaWQgWFNMVFByb2Nlc3Nvcjo6cmVtb3ZlUGFyYW1ldGVyKGNvbnN0IFN0
cmluZyYgLypuYW1lc3BhY2VVUkkqLywgY29uc3QgU3RyaW5nCiAKIHZvaWQgWFNMVFByb2Nlc3Nv
cjo6cmVzZXQoKQogewotICAgIG1fc3R5bGVzaGVldC5jbGVhcigpOwotICAgIG1fc3R5bGVzaGVl
dFJvb3ROb2RlLmNsZWFyKCk7CisgICAgbV9zdHlsZXNoZWV0ID0gbnVsbHB0cjsKKyAgICBtX3N0
eWxlc2hlZXRSb290Tm9kZSA9IG51bGxwdHI7CiAgICAgbV9wYXJhbWV0ZXJzLmNsZWFyKCk7CiB9
CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvbWFjL1dlYkNvcmVTdXBwb3J0L1dlYkVkaXRv
ckNsaWVudC5tbSBiL1NvdXJjZS9XZWJLaXQvbWFjL1dlYkNvcmVTdXBwb3J0L1dlYkVkaXRvckNs
aWVudC5tbQppbmRleCA2Y2VkMTk0MTM4NmIwYzY5MTA2MjY3ZjFjZDc0ZDhlYzNhMTlkOTU2Li5j
MTg4YjlkNzM5NTdhNGEyMzAzZDg3MDIxODMxMzA2Y2Q2MDEzYjI5IDEwMDY0NAotLS0gYS9Tb3Vy
Y2UvV2ViS2l0L21hYy9XZWJDb3JlU3VwcG9ydC9XZWJFZGl0b3JDbGllbnQubW0KKysrIGIvU291
cmNlL1dlYktpdC9tYWMvV2ViQ29yZVN1cHBvcnQvV2ViRWRpdG9yQ2xpZW50Lm1tCkBAIC0xMTQz
LDcgKzExNDMsNyBAQCB2b2lkIFdlYkVkaXRvckNsaWVudDo6ZGlkQ2hlY2tTdWNjZWVkKGludCBz
ZXF1ZW5jZSwgTlNBcnJheSogcmVzdWx0cykKIHsKICAgICBBU1NFUlRfVU5VU0VEKHNlcXVlbmNl
LCBzZXF1ZW5jZSA9PSBtX3RleHRDaGVja2luZ1JlcXVlc3QtPmRhdGEoKS5zZXF1ZW5jZSgpKTsK
ICAgICBtX3RleHRDaGVja2luZ1JlcXVlc3QtPmRpZFN1Y2NlZWQoY29yZShyZXN1bHRzLCBtX3Rl
eHRDaGVja2luZ1JlcXVlc3QtPmRhdGEoKS5tYXNrKCkpKTsKLSAgICBtX3RleHRDaGVja2luZ1Jl
cXVlc3QuY2xlYXIoKTsKKyAgICBtX3RleHRDaGVja2luZ1JlcXVlc3QgPSBudWxscHRyOwogfQog
I2VuZGlmCiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvd2luL1dlYlZpZXcuY3BwIGIvU291
cmNlL1dlYktpdC93aW4vV2ViVmlldy5jcHAKaW5kZXggNDM3NTI3MTI4ZDE1NDFmYzY5ZTg3ZDA1
OGNiOWU5MDYyYjYzNjIzZC4uYjc5ZTYzYzU0NjU1YjE3MzBmMDRlNmQ2YThlMDc0NzRkNmRhYmIw
MSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC93aW4vV2ViVmlldy5jcHAKKysrIGIvU291cmNl
L1dlYktpdC93aW4vV2ViVmlldy5jcHAKQEAgLTg1MSw4ICs4NTEsOCBAQCB2b2lkIFdlYlZpZXc6
OmRlbGV0ZUJhY2tpbmdTdG9yZSgpCiAgICAgICAgIEtpbGxUaW1lcihtX3ZpZXdXaW5kb3csIERl
bGV0ZUJhY2tpbmdTdG9yZVRpbWVyKTsKICAgICAgICAgbV9kZWxldGVCYWNraW5nU3RvcmVUaW1l
ckFjdGl2ZSA9IGZhbHNlOwogICAgIH0KLSAgICBtX2JhY2tpbmdTdG9yZUJpdG1hcC5jbGVhcigp
OwotICAgIG1fYmFja2luZ1N0b3JlRGlydHlSZWdpb24uY2xlYXIoKTsKKyAgICBtX2JhY2tpbmdT
dG9yZUJpdG1hcCA9IG51bGxwdHI7CisgICAgbV9iYWNraW5nU3RvcmVEaXJ0eVJlZ2lvbiA9IG51
bGxwdHI7CiAgICAgbV9iYWNraW5nU3RvcmVTaXplLmN4ID0gbV9iYWNraW5nU3RvcmVTaXplLmN5
ID0gMDsKIH0KIApAQCAtMTA3OSw3ICsxMDc5LDcgQEAgdm9pZCBXZWJWaWV3Ojp1cGRhdGVCYWNr
aW5nU3RvcmUoRnJhbWVWaWV3KiBmcmFtZVZpZXcsIEhEQyBkYywgYm9vbCBiYWNraW5nU3RvcmUK
ICAgICAgICAgaWYgKG1fdWlEZWxlZ2F0ZVByaXZhdGUpCiAgICAgICAgICAgICBtX3VpRGVsZWdh
dGVQcml2YXRlLT53ZWJWaWV3UGFpbnRlZCh0aGlzKTsKIAotICAgICAgICBtX2JhY2tpbmdTdG9y
ZURpcnR5UmVnaW9uLmNsZWFyKCk7CisgICAgICAgIG1fYmFja2luZ1N0b3JlRGlydHlSZWdpb24g
PSBudWxscHRyOwogICAgIH0KIAogICAgIGlmICghZGMpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2Vi
S2l0Mi9EYXRhYmFzZVByb2Nlc3MvSW5kZXhlZERCL1VuaXF1ZUlEQkRhdGFiYXNlLmNwcCBiL1Nv
dXJjZS9XZWJLaXQyL0RhdGFiYXNlUHJvY2Vzcy9JbmRleGVkREIvVW5pcXVlSURCRGF0YWJhc2Uu
Y3BwCmluZGV4IDYxOTgwNWNkOWEyNjFlNzE1YjI3ODg4YzFiMWJlZjExOTMyZTNlY2QuLjNkMmNh
NWJiYmZhYzY0YWViODE2ODBiYTg3NWY2MDdjODRlNGJkMWQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9X
ZWJLaXQyL0RhdGFiYXNlUHJvY2Vzcy9JbmRleGVkREIvVW5pcXVlSURCRGF0YWJhc2UuY3BwCisr
KyBiL1NvdXJjZS9XZWJLaXQyL0RhdGFiYXNlUHJvY2Vzcy9JbmRleGVkREIvVW5pcXVlSURCRGF0
YWJhc2UuY3BwCkBAIC0xNDcsNyArMTQ3LDcgQEAgdm9pZCBVbmlxdWVJREJEYXRhYmFzZTo6c2h1
dGRvd25CYWNraW5nU3RvcmUoVW5pcXVlSURCRGF0YWJhc2VTaHV0ZG93blR5cGUgdHlwZSwKIHsK
ICAgICBBU1NFUlQoIVJ1bkxvb3A6OmlzTWFpbigpKTsKIAotICAgIG1fYmFja2luZ1N0b3JlLmNs
ZWFyKCk7CisgICAgbV9iYWNraW5nU3RvcmUgPSBudWxscHRyOwogCiAgICAgaWYgKHR5cGUgPT0g
VW5pcXVlSURCRGF0YWJhc2VTaHV0ZG93blR5cGU6OkRlbGV0ZVNodXRkb3duKSB7CiAgICAgICAg
IFN0cmluZyBkYkZpbGVuYW1lID0gVW5pcXVlSURCRGF0YWJhc2U6OmNhbGN1bGF0ZUFic29sdXRl
RGF0YWJhc2VGaWxlbmFtZShkYXRhYmFzZURpcmVjdG9yeSk7CmRpZmYgLS1naXQgYS9Tb3VyY2Uv
V2ViS2l0Mi9TaGFyZWQvQ29vcmRpbmF0ZWRHcmFwaGljcy9Db29yZGluYXRlZEJhY2tpbmdTdG9y
ZS5jcHAgYi9Tb3VyY2UvV2ViS2l0Mi9TaGFyZWQvQ29vcmRpbmF0ZWRHcmFwaGljcy9Db29yZGlu
YXRlZEJhY2tpbmdTdG9yZS5jcHAKaW5kZXggYjlhMDVmOTA2ZTljMTFmMDI3ZWExYTE1MjVlZTQz
ZWNmZDVjNTNkNy4uYzY2ZDI4Yjc1Mzk3NGEwNTc0MGNiNmFmNjhlMmM0ODQ4MWQ5M2MzMiAxMDA2
NDQKLS0tIGEvU291cmNlL1dlYktpdDIvU2hhcmVkL0Nvb3JkaW5hdGVkR3JhcGhpY3MvQ29vcmRp
bmF0ZWRCYWNraW5nU3RvcmUuY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQyL1NoYXJlZC9Db29yZGlu
YXRlZEdyYXBoaWNzL0Nvb3JkaW5hdGVkQmFja2luZ1N0b3JlLmNwcApAQCAtNTUsNyArNTUsNyBA
QCB2b2lkIENvb3JkaW5hdGVkQmFja2luZ1N0b3JlVGlsZTo6c3dhcEJ1ZmZlcnMoVGV4dHVyZU1h
cHBlciogdGV4dHVyZU1hcHBlcikKICAgICAgICAgdGV4dHVyZS0+cmVzZXQobV90aWxlUmVjdC5z
aXplKCksIG1fc3VyZmFjZS0+c3VwcG9ydHNBbHBoYSgpKTsKIAogICAgIG1fc3VyZmFjZS0+Y29w
eVRvVGV4dHVyZSh0ZXh0dXJlLCBtX3NvdXJjZVJlY3QsIG1fc3VyZmFjZU9mZnNldCk7Ci0gICAg
bV9zdXJmYWNlLmNsZWFyKCk7CisgICAgbV9zdXJmYWNlID0gbnVsbHB0cjsKIH0KIAogdm9pZCBD
b29yZGluYXRlZEJhY2tpbmdTdG9yZVRpbGU6OnNldEJhY2tCdWZmZXIoY29uc3QgSW50UmVjdCYg
dGlsZVJlY3QsIGNvbnN0IEludFJlY3QmIHNvdXJjZVJlY3QsIFBhc3NSZWZQdHI8Q29vcmRpbmF0
ZWRTdXJmYWNlPiBidWZmZXIsIGNvbnN0IEludFBvaW50JiBvZmZzZXQpCmRpZmYgLS1naXQgYS9T
b3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvQVBJL2VmbC9Fd2tWaWV3LmNwcCBiL1NvdXJjZS9XZWJL
aXQyL1VJUHJvY2Vzcy9BUEkvZWZsL0V3a1ZpZXcuY3BwCmluZGV4IDc3YjUwMWE4NGRmNjQzZTFi
ZGVlN2U1NzQ1ZmYxOTQ0MTQyNWFmNTkuLjQ1ODg0NjQ1Nzg3Mzc0NzM3ZDgzYmJjNDA1ZWU4Yzdi
ZmU3NDVmYzkgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9BUEkvZWZsL0V3
a1ZpZXcuY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9BUEkvZWZsL0V3a1ZpZXcu
Y3BwCkBAIC05NDAsNyArOTQwLDcgQEAgdm9pZCBFd2tWaWV3OjpoaWRlQ29udGV4dE1lbnUoKQog
ICAgIGlmIChzZC0+YXBpLT5jb250ZXh0X21lbnVfaGlkZSkKICAgICAgICAgc2QtPmFwaS0+Y29u
dGV4dF9tZW51X2hpZGUoc2QpOwogCi0gICAgbV9jb250ZXh0TWVudS5jbGVhcigpOworICAgIG1f
Y29udGV4dE1lbnUgPSBudWxscHRyOwogfQogCiB2b2lkIEV3a1ZpZXc6OnJlcXVlc3RQb3B1cE1l
bnUoV0tQb3B1cE1lbnVMaXN0ZW5lclJlZiBwb3B1cE1lbnVMaXN0ZW5lciwgY29uc3QgV0tSZWN0
JiByZWN0LCBXS1BvcHVwSXRlbVRleHREaXJlY3Rpb24gdGV4dERpcmVjdGlvbiwgZG91YmxlIHBh
Z2VTY2FsZUZhY3RvciwgV0tBcnJheVJlZiBpdGVtcywgaW50MzJfdCBzZWxlY3RlZEluZGV4KQpk
aWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL0luc3BlY3RvclNlcnZlci9XZWJT
b2NrZXRTZXJ2ZXJDb25uZWN0aW9uLmNwcCBiL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9JbnNw
ZWN0b3JTZXJ2ZXIvV2ViU29ja2V0U2VydmVyQ29ubmVjdGlvbi5jcHAKaW5kZXggODA5N2FjMWE0
Y2MxZTBkZGJmYWRmZjk5MGMzZTRlNTI3N2JmZTQwNi4uOTRhMjRjOTBjMzg2NmFmNTk3ZWIwZDU5
MWYzNjlmNzEwZGY2MDdjOCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL0lu
c3BlY3RvclNlcnZlci9XZWJTb2NrZXRTZXJ2ZXJDb25uZWN0aW9uLmNwcAorKysgYi9Tb3VyY2Uv
V2ViS2l0Mi9VSVByb2Nlc3MvSW5zcGVjdG9yU2VydmVyL1dlYlNvY2tldFNlcnZlckNvbm5lY3Rp
b24uY3BwCkBAIC0xMjYsNyArMTI2LDcgQEAgdm9pZCBXZWJTb2NrZXRTZXJ2ZXJDb25uZWN0aW9u
OjpzZW5kUmF3RGF0YShjb25zdCBjaGFyKiBkYXRhLCBzaXplX3QgbGVuZ3RoKQogdm9pZCBXZWJT
b2NrZXRTZXJ2ZXJDb25uZWN0aW9uOjpkaWRDbG9zZVNvY2tldFN0cmVhbShTb2NrZXRTdHJlYW1I
YW5kbGUqKQogewogICAgIC8vIERlc3Ryb3kgdGhlIFNvY2tldFN0cmVhbUhhbmRsZSBub3cgdG8g
cHJldmVudCBjbG9zaW5nIGFuIGFscmVhZHkgY2xvc2VkIHNvY2tldCBsYXRlci4KLSAgICBtX3Nv
Y2tldC5jbGVhcigpOworICAgIG1fc29ja2V0ID0gbnVsbHB0cjsKIAogICAgIC8vIFdlYiBTb2Nr
ZXQgTW9kZS4KICAgICBpZiAobV9tb2RlID09IFdlYlNvY2tldCkKZGlmZiAtLWdpdCBhL1NvdXJj
ZS9XZWJLaXQyL1VJUHJvY2Vzcy9OZXR3b3JrL0N1c3RvbVByb3RvY29scy9tYWMvQ3VzdG9tUHJv
dG9jb2xNYW5hZ2VyUHJveHlNYWMubW0gYi9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvTmV0d29y
ay9DdXN0b21Qcm90b2NvbHMvbWFjL0N1c3RvbVByb3RvY29sTWFuYWdlclByb3h5TWFjLm1tCmlu
ZGV4IDk0MjUyOTlhMmVjNzNmOGJlMGQxOTlhMTEzYTJkNmJiYThiNjE5NzQuLjUxM2IxZTBjZmY5
N2ZiMTZmZTRhYmU5MWVhOGJmYTRkZGVjMTJiYTQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQy
L1VJUHJvY2Vzcy9OZXR3b3JrL0N1c3RvbVByb3RvY29scy9tYWMvQ3VzdG9tUHJvdG9jb2xNYW5h
Z2VyUHJveHlNYWMubW0KKysrIGIvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL05ldHdvcmsvQ3Vz
dG9tUHJvdG9jb2xzL21hYy9DdXN0b21Qcm90b2NvbE1hbmFnZXJQcm94eU1hYy5tbQpAQCAtNzYs
NyArNzYsNyBAQCAtIChpZClpbml0V2l0aEN1c3RvbVByb3RvY29sTWFuYWdlclByb3h5OihDdXN0
b21Qcm90b2NvbE1hbmFnZXJQcm94eSopY3VzdG9tUHJvdAogCiAtICh2b2lkKWRlYWxsb2MKIHsK
LSAgICBfY29ubmVjdGlvbi5jbGVhcigpOworICAgIF9jb25uZWN0aW9uID0gbnVsbHB0cjsKICAg
ICBbX3VybENvbm5lY3Rpb24gY2FuY2VsXTsKICAgICBbX3VybENvbm5lY3Rpb24gcmVsZWFzZV07
CiAgICAgW3N1cGVyIGRlYWxsb2NdOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdDIvVUlQcm9j
ZXNzL2lvcy9XS0dlb2xvY2F0aW9uUHJvdmlkZXJJT1MubW0gYi9Tb3VyY2UvV2ViS2l0Mi9VSVBy
b2Nlc3MvaW9zL1dLR2VvbG9jYXRpb25Qcm92aWRlcklPUy5tbQppbmRleCBiYjZiYjYwNTRmN2Y4
NmI5YzYzZDY4NWU2NWVmNzlmOTIxYTNhYjFlLi5iZGQxMTRhMjQ0OGRmYWFhOTcxOTFhNjI1ZDdj
YTFiYjI2Nzc2MDI5IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvaW9zL1dL
R2VvbG9jYXRpb25Qcm92aWRlcklPUy5tbQorKysgYi9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3Mv
aW9zL1dLR2VvbG9jYXRpb25Qcm92aWRlcklPUy5tbQpAQCAtMTE4LDcgKzExOCw3IEBAIC0odm9p
ZClfc3RvcFVwZGF0aW5nCiB7CiAgICAgX2lzV2ViQ29yZUdlb2xvY2F0aW9uQWN0aXZlID0gTk87
CiAgICAgW19jb3JlTG9jYXRpb25Qcm92aWRlciBzdG9wXTsKLSAgICBfbGFzdEFjdGl2ZVBvc2l0
aW9uLmNsZWFyKCk7CisgICAgX2xhc3RBY3RpdmVQb3NpdGlvbiA9IG51bGxwdHI7CiB9CiAKIC0o
dm9pZClfc2V0RW5hYmxlSGlnaEFjY3VyYWN5OihCT09MKWVuYWJsZUhpZ2hBY2N1cmFjeQpkaWZm
IC0tZ2l0IGEvVG9vbHMvQ2hhbmdlTG9nIGIvVG9vbHMvQ2hhbmdlTG9nCmluZGV4IDI1ZWQ2OTVi
ZWViYjI2Nzg4MWZhNmU3MmRjNTY2NzgxZDAzMjJkODQuLjQ2MmViMzc0MTI4ZTUxNDQwMWI5NGU3
YjZiYTk3YWU5MGQ0ZjdlNzcgMTAwNjQ0Ci0tLSBhL1Rvb2xzL0NoYW5nZUxvZworKysgYi9Ub29s
cy9DaGFuZ2VMb2cKQEAgLTEsMyArMSwxNyBAQAorMjAxNS0wNy0wMiAgQ2hyaXMgRHVtZXogIDxj
ZHVtZXpAYXBwbGUuY29tPgorCisgICAgICAgIERyb3AgUmVmUHRyOjpjbGVhcigpIG1ldGhvZAor
ICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTQ2NTU2CisK
KyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgKiBEdW1wUmVu
ZGVyVHJlZS9tYWMvRHVtcFJlbmRlclRyZWUubW06CisgICAgICAgIChydW5UZXN0KToKKyAgICAg
ICAgKiBEdW1wUmVuZGVyVHJlZS93aW4vRHVtcFJlbmRlclRyZWUuY3BwOgorICAgICAgICAocnVu
VGVzdCk6CisgICAgICAgICogVGVzdFdlYktpdEFQSS9UZXN0cy9XVEYvUmVmUHRyLmNwcDoKKyAg
ICAgICAgKFRlc3RXZWJLaXRBUEk6OlRFU1QpOgorCiAyMDE1LTA3LTAyICBDYXJsb3MgR2FyY2lh
IENhbXBvcyAgPGNnYXJjaWFAaWdhbGlhLmNvbT4KIAogICAgICAgICBbR1RLXSBXZWJTUUwgZG9l
c24ndCB3b3JrIGJlY2F1c2Ugb3BlbkRhdGFiYXNlIGFsd2F5cyBmYWlscyB3aXRoIERPTSBFeGNl
cHRpb24gMTgKZGlmZiAtLWdpdCBhL1Rvb2xzL0R1bXBSZW5kZXJUcmVlL21hYy9EdW1wUmVuZGVy
VHJlZS5tbSBiL1Rvb2xzL0R1bXBSZW5kZXJUcmVlL21hYy9EdW1wUmVuZGVyVHJlZS5tbQppbmRl
eCBiY2NkNGE5MTEyZTY3MmMxY2MyYjJkOTMwZmYwYTNlZTAzYjAzZTA2Li4yNzZkZjhiODkyZWM1
MjdhNzQ2YmYzZmE2ZGRjNjRlYWQzNzc3YzE1IDEwMDY0NAotLS0gYS9Ub29scy9EdW1wUmVuZGVy
VHJlZS9tYWMvRHVtcFJlbmRlclRyZWUubW0KKysrIGIvVG9vbHMvRHVtcFJlbmRlclRyZWUvbWFj
L0R1bXBSZW5kZXJUcmVlLm1tCkBAIC0yMDY0LDcgKzIwNjQsNyBAQCBzdGF0aWMgdm9pZCBydW5U
ZXN0KGNvbnN0IHN0cmluZyYgaW5wdXRMaW5lKQogICAgIEFTU0VSVChDRkFycmF5R2V0Q291bnQo
b3BlbldpbmRvd3NSZWYpID09IDEpOwogICAgIEFTU0VSVChDRkFycmF5R2V0VmFsdWVBdEluZGV4
KG9wZW5XaW5kb3dzUmVmLCAwKSA9PSBbW21haW5GcmFtZSB3ZWJWaWV3XSB3aW5kb3ddKTsKIAot
ICAgIGdUZXN0UnVubmVyLmNsZWFyKCk7CisgICAgZ1Rlc3RSdW5uZXIgPSBudWxscHRyOwogCiAg
ICAgaWYgKGlnbm9yZVdlYkNvcmVOb2RlTGVha3MpCiAgICAgICAgIFtXZWJDb3JlU3RhdGlzdGlj
cyBzdG9wSWdub3JpbmdXZWJDb3JlTm9kZUxlYWtzXTsKZGlmZiAtLWdpdCBhL1Rvb2xzL0R1bXBS
ZW5kZXJUcmVlL3dpbi9EdW1wUmVuZGVyVHJlZS5jcHAgYi9Ub29scy9EdW1wUmVuZGVyVHJlZS93
aW4vRHVtcFJlbmRlclRyZWUuY3BwCmluZGV4IGQ5ODZjYmZkMzczNDAyNDY2ZjQwYjhlNjVhNDA0
NjliZWNlMGE4ZGMuLmM4NDM1NDcyM2NiYTk1ZjRhMTVhNDE2MDc2MzI5M2JkNjc2NjhmMjkgMTAw
NjQ0Ci0tLSBhL1Rvb2xzL0R1bXBSZW5kZXJUcmVlL3dpbi9EdW1wUmVuZGVyVHJlZS5jcHAKKysr
IGIvVG9vbHMvRHVtcFJlbmRlclRyZWUvd2luL0R1bXBSZW5kZXJUcmVlLmNwcApAQCAtMTE4Myw3
ICsxMTgzLDcgQEAgc3RhdGljIHZvaWQgcnVuVGVzdChjb25zdCBzdHJpbmcmIGlucHV0TGluZSkK
IAogZXhpdDoKICAgICByZW1vdmVGb250RmFsbGJhY2tJZlByZXNlbnQoZmFsbGJhY2tQYXRoKTsK
LSAgICA6OmdUZXN0UnVubmVyLmNsZWFyKCk7CisgICAgOjpnVGVzdFJ1bm5lciA9IG51bGxwdHI7
CiAKICAgICBmcHV0cygiI0VPRlxuIiwgc3RkZXJyKTsKICAgICBmZmx1c2goc3RkZXJyKTsKZGlm
ZiAtLWdpdCBhL1Rvb2xzL1Rlc3RXZWJLaXRBUEkvVGVzdHMvV1RGL1JlZlB0ci5jcHAgYi9Ub29s
cy9UZXN0V2ViS2l0QVBJL1Rlc3RzL1dURi9SZWZQdHIuY3BwCmluZGV4IGZjOTIyNDY3Mjc4NDY0
MWQxZDM3NDljMjA3OWUxNWJiZDNlODcyNmMuLmI3MjZkN2RkZjAzY2MyZmQ2YTIwZTE0ZDliNDAy
M2NmMjZhN2Q0MzggMTAwNjQ0Ci0tLSBhL1Rvb2xzL1Rlc3RXZWJLaXRBUEkvVGVzdHMvV1RGL1Jl
ZlB0ci5jcHAKKysrIGIvVG9vbHMvVGVzdFdlYktpdEFQSS9UZXN0cy9XVEYvUmVmUHRyLmNwcApA
QCAtMTAyLDcgKzEwMiw3IEBAIFRFU1QoV1RGX1JlZlB0ciwgQmFzaWMpCiAgICAgewogICAgICAg
ICBSZWZQdHI8UmVmTG9nZ2VyPiBwdHIoJmEpOwogICAgICAgICBBU1NFUlRfRVEoJmEsIHB0ci5n
ZXQoKSk7Ci0gICAgICAgIHB0ci5jbGVhcigpOworICAgICAgICBwdHIgPSBudWxscHRyOwogICAg
ICAgICBBU1NFUlRfRVEobnVsbHB0ciwgcHRyLmdldCgpKTsKICAgICB9CiAgICAgQVNTRVJUX1NU
UkVRKCJyZWYoYSkgZGVyZWYoYSkgIiwgdGFrZUxvZ1N0cigpLmNfc3RyKCkpOwo=
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>256126</attachid>
            <date>2015-07-03 19:09:38 -0700</date>
            <delta_ts>2015-07-03 19:36:30 -0700</delta_ts>
            <desc>WIP Patch</desc>
            <filename>RefPtr_drop_clear_wip.patch</filename>
            <type>text/plain</type>
            <size>167168</size>
            <attacher name="Chris Dumez">cdumez</attacher>
            
              <data encoding="base64">ZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9BUEkvSlNWYWx1ZVJlZi5jcHAgYi9T
b3VyY2UvSmF2YVNjcmlwdENvcmUvQVBJL0pTVmFsdWVSZWYuY3BwCmluZGV4IDc1OWE2NWEuLjU0
NDA1ZTIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9BUEkvSlNWYWx1ZVJlZi5j
cHAKKysrIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL0FQSS9KU1ZhbHVlUmVmLmNwcApAQCAtNDIy
LDcgKzQyMiw3IEBAIEpTU3RyaW5nUmVmIEpTVmFsdWVUb1N0cmluZ0NvcHkoSlNDb250ZXh0UmVm
IGN0eCwgSlNWYWx1ZVJlZiB2YWx1ZSwgSlNWYWx1ZVJlZioKICAgICAKICAgICBSZWZQdHI8T3Bh
cXVlSlNTdHJpbmc+IHN0cmluZ1JlZihPcGFxdWVKU1N0cmluZzo6Y3JlYXRlKGpzVmFsdWUudG9T
dHJpbmcoZXhlYyktPnZhbHVlKGV4ZWMpKSk7CiAgICAgaWYgKGhhbmRsZUV4Y2VwdGlvbklmTmVl
ZGVkKGV4ZWMsIGV4Y2VwdGlvbikgPT0gRXhjZXB0aW9uU3RhdHVzOjpEaWRUaHJvdykKLSAgICAg
ICAgc3RyaW5nUmVmLmNsZWFyKCk7CisgICAgICAgIHN0cmluZ1JlZiA9IG51bGxwdHI7CiAgICAg
cmV0dXJuIHN0cmluZ1JlZi5yZWxlYXNlKCkubGVha1JlZigpOwogfQogCmRpZmYgLS1naXQgYS9T
b3VyY2UvSmF2YVNjcmlwdENvcmUvQ2hhbmdlTG9nIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL0No
YW5nZUxvZwppbmRleCA3ZGQ4NDU2Li42ZGQyNGNiIDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNj
cmlwdENvcmUvQ2hhbmdlTG9nCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9DaGFuZ2VMb2cK
QEAgLTEsMyArMSw0MSBAQAorMjAxNS0wNy0wMiAgQ2hyaXMgRHVtZXogIDxjZHVtZXpAYXBwbGUu
Y29tPgorCisgICAgICAgIERyb3AgUmVmUHRyOjpjbGVhcigpIG1ldGhvZAorICAgICAgICBodHRw
czovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTQ2NTU2CisKKyAgICAgICAgUmV2
aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgKiBBUEkvSlNWYWx1ZVJlZi5jcHA6
CisgICAgICAgIChKU1ZhbHVlVG9TdHJpbmdDb3B5KToKKyAgICAgICAgKiBieXRlY29kZS9DYWxs
TGlua0luZm8uY3BwOgorICAgICAgICAoSlNDOjpDYWxsTGlua0luZm86OmNsZWFyU3R1Yik6Cisg
ICAgICAgICogYnl0ZWNvZGUvU3RydWN0dXJlU3R1YkluZm8uaDoKKyAgICAgICAgKEpTQzo6U3Ry
dWN0dXJlU3R1YkluZm86OnJlc2V0KToKKyAgICAgICAgKiBkZmcvREZHR3JhcGguaDoKKyAgICAg
ICAgKEpTQzo6REZHOjpHcmFwaDo6a2lsbEJsb2NrKToKKyAgICAgICAgKiBkZmcvREZHT3BlcmF0
aW9ucy5jcHA6CisgICAgICAgICogaW5zcGVjdG9yL0NvbnNvbGVNZXNzYWdlLmNwcDoKKyAgICAg
ICAgKEluc3BlY3Rvcjo6Q29uc29sZU1lc3NhZ2U6OmNsZWFyKToKKyAgICAgICAgKiBpbnNwZWN0
b3IvSlNHbG9iYWxPYmplY3RJbnNwZWN0b3JDb250cm9sbGVyLmNwcDoKKyAgICAgICAgKEluc3Bl
Y3Rvcjo6SlNHbG9iYWxPYmplY3RJbnNwZWN0b3JDb250cm9sbGVyOjpkaXNjb25uZWN0RnJvbnRl
bmQpOgorICAgICAgICAqIGluc3BlY3Rvci9hZ2VudHMvSW5zcGVjdG9yQWdlbnQuY3BwOgorICAg
ICAgICAoSW5zcGVjdG9yOjpJbnNwZWN0b3JBZ2VudDo6d2lsbERlc3Ryb3lGcm9udGVuZEFuZEJh
Y2tlbmQpOgorICAgICAgICAqIGluc3BlY3Rvci9hZ2VudHMvSW5zcGVjdG9yQ29uc29sZUFnZW50
LmNwcDoKKyAgICAgICAgKEluc3BlY3Rvcjo6SW5zcGVjdG9yQ29uc29sZUFnZW50Ojp3aWxsRGVz
dHJveUZyb250ZW5kQW5kQmFja2VuZCk6CisgICAgICAgICogaW5zcGVjdG9yL2FnZW50cy9JbnNw
ZWN0b3JEZWJ1Z2dlckFnZW50LmNwcDoKKyAgICAgICAgKEluc3BlY3Rvcjo6SW5zcGVjdG9yRGVi
dWdnZXJBZ2VudDo6d2lsbERlc3Ryb3lGcm9udGVuZEFuZEJhY2tlbmQpOgorICAgICAgICAqIGlu
c3BlY3Rvci9hZ2VudHMvSlNHbG9iYWxPYmplY3RSdW50aW1lQWdlbnQuY3BwOgorICAgICAgICAo
SW5zcGVjdG9yOjpKU0dsb2JhbE9iamVjdFJ1bnRpbWVBZ2VudDo6d2lsbERlc3Ryb3lGcm9udGVu
ZEFuZEJhY2tlbmQpOgorICAgICAgICAqIHJ1bnRpbWUvRXhlY3V0YWJsZS5jcHA6CisgICAgICAg
IChKU0M6OkV4ZWN1dGFibGVCYXNlOjpjbGVhckNvZGUpOgorICAgICAgICAoSlNDOjpFdmFsRXhl
Y3V0YWJsZTo6Y2xlYXJDb2RlKToKKyAgICAgICAgKEpTQzo6UHJvZ3JhbUV4ZWN1dGFibGU6OmNs
ZWFyQ29kZSk6CisgICAgICAgIChKU0M6OkZ1bmN0aW9uRXhlY3V0YWJsZTo6Y2xlYXJDb2RlKToK
KyAgICAgICAgKiBydW50aW1lL0pTTG9jay5jcHA6CisgICAgICAgIChKU0M6OkpTTG9ja0hvbGRl
cjo6fkpTTG9ja0hvbGRlcik6CisgICAgICAgICogcnVudGltZS9TdHJ1Y3R1cmUuY3BwOgorICAg
ICAgICAoSlNDOjpTdHJ1Y3R1cmU6OnBpbik6CisKIDIwMTUtMDctMDMgIFl1c3VrZSBTdXp1a2kg
IDx1dGF0YW5lLnRlYUBnbWFpbC5jb20+CiAKICAgICAgICAgUmVsYXggYnVpbHRpbiBKUyByZXN0
cmljdGlvbiBhYm91dCB0cnktY2F0Y2gKZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29y
ZS9ieXRlY29kZS9DYWxsTGlua0luZm8uY3BwIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL2J5dGVj
b2RlL0NhbGxMaW5rSW5mby5jcHAKaW5kZXggNzJhMGMyNC4uZDkyMDA5OCAxMDA2NDQKLS0tIGEv
U291cmNlL0phdmFTY3JpcHRDb3JlL2J5dGVjb2RlL0NhbGxMaW5rSW5mby5jcHAKKysrIGIvU291
cmNlL0phdmFTY3JpcHRDb3JlL2J5dGVjb2RlL0NhbGxMaW5rSW5mby5jcHAKQEAgLTQzLDcgKzQz
LDcgQEAgdm9pZCBDYWxsTGlua0luZm86OmNsZWFyU3R1YigpCiAgICAgICAgIHJldHVybjsKIAog
ICAgIG1fc3R1Yi0+Y2xlYXJDYWxsTm9kZXNGb3IodGhpcyk7Ci0gICAgbV9zdHViLmNsZWFyKCk7
CisgICAgbV9zdHViID0gbnVsbHB0cjsKIH0KIAogdm9pZCBDYWxsTGlua0luZm86OnVubGluayhS
ZXBhdGNoQnVmZmVyJiByZXBhdGNoQnVmZmVyKQpkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3Jp
cHRDb3JlL2J5dGVjb2RlL1N0cnVjdHVyZVN0dWJJbmZvLmggYi9Tb3VyY2UvSmF2YVNjcmlwdENv
cmUvYnl0ZWNvZGUvU3RydWN0dXJlU3R1YkluZm8uaAppbmRleCBlYzhiNzljLi5kNDAyYWNlIDEw
MDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvYnl0ZWNvZGUvU3RydWN0dXJlU3R1Yklu
Zm8uaAorKysgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvYnl0ZWNvZGUvU3RydWN0dXJlU3R1Yklu
Zm8uaApAQCAtMTQ5LDggKzE0OSw4IEBAIHN0cnVjdCBTdHJ1Y3R1cmVTdHViSW5mbyB7CiAgICAg
ewogICAgICAgICBkZXJlZigpOwogICAgICAgICBhY2Nlc3NUeXBlID0gYWNjZXNzX3Vuc2V0Owot
ICAgICAgICBzdHViUm91dGluZS5jbGVhcigpOwotICAgICAgICB3YXRjaHBvaW50cy5jbGVhcigp
OworICAgICAgICBzdHViUm91dGluZSA9IG51bGxwdHI7CisgICAgICAgIHdhdGNocG9pbnRzID0g
bnVsbHB0cjsKICAgICB9CiAKICAgICB2b2lkIGRlcmVmKCk7CmRpZmYgLS1naXQgYS9Tb3VyY2Uv
SmF2YVNjcmlwdENvcmUvZGVidWdnZXIvRGVidWdnZXIuY3BwIGIvU291cmNlL0phdmFTY3JpcHRD
b3JlL2RlYnVnZ2VyL0RlYnVnZ2VyLmNwcAppbmRleCA1NzQxMDY5Li5iYzFiNTdlIDEwMDY0NAot
LS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvZGVidWdnZXIvRGVidWdnZXIuY3BwCisrKyBiL1Nv
dXJjZS9KYXZhU2NyaXB0Q29yZS9kZWJ1Z2dlci9EZWJ1Z2dlci5jcHAKQEAgLTExNyw3ICsxMTcs
NyBAQCBwdWJsaWM6CiAgICAgewogICAgICAgICBpZiAobV9kZWJ1Z2dlci5tX2N1cnJlbnREZWJ1
Z2dlckNhbGxGcmFtZSkgewogICAgICAgICAgICAgbV9kZWJ1Z2dlci5tX2N1cnJlbnREZWJ1Z2dl
ckNhbGxGcmFtZS0+aW52YWxpZGF0ZSgpOwotICAgICAgICAgICAgbV9kZWJ1Z2dlci5tX2N1cnJl
bnREZWJ1Z2dlckNhbGxGcmFtZSA9IDA7CisgICAgICAgICAgICBtX2RlYnVnZ2VyLm1fY3VycmVu
dERlYnVnZ2VyQ2FsbEZyYW1lID0gbnVsbHB0cjsKICAgICAgICAgfQogICAgIH0KIApkaWZmIC0t
Z2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL2RmZy9ERkdHcmFwaC5oIGIvU291cmNlL0phdmFT
Y3JpcHRDb3JlL2RmZy9ERkdHcmFwaC5oCmluZGV4IGJhYzUzOGYuLjdmNjc5NDYgMTAwNjQ0Ci0t
LSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9kZmcvREZHR3JhcGguaAorKysgYi9Tb3VyY2UvSmF2
YVNjcmlwdENvcmUvZGZnL0RGR0dyYXBoLmgKQEAgLTQ0Myw3ICs0NDMsNyBAQCBwdWJsaWM6CiAg
ICAgCiAgICAgdm9pZCBraWxsQmxvY2soQmxvY2tJbmRleCBibG9ja0luZGV4KQogICAgIHsKLSAg
ICAgICAgbV9ibG9ja3NbYmxvY2tJbmRleF0uY2xlYXIoKTsKKyAgICAgICAgbV9ibG9ja3NbYmxv
Y2tJbmRleF0gPSBudWxscHRyOwogICAgIH0KICAgICAKICAgICB2b2lkIGtpbGxCbG9jayhCYXNp
Y0Jsb2NrKiBiYXNpY0Jsb2NrKQpkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL2Rm
Zy9ERkdPcGVyYXRpb25zLmNwcCBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9kZmcvREZHT3BlcmF0
aW9ucy5jcHAKaW5kZXggYTk5YTNmYS4uNmY5NTEyYiAxMDA2NDQKLS0tIGEvU291cmNlL0phdmFT
Y3JpcHRDb3JlL2RmZy9ERkdPcGVyYXRpb25zLmNwcAorKysgYi9Tb3VyY2UvSmF2YVNjcmlwdENv
cmUvZGZnL0RGR09wZXJhdGlvbnMuY3BwCkBAIC0xNDQ3LDcgKzE0NDcsNyBAQCBjaGFyKiBKSVRf
T1BFUkFUSU9OIHRyaWdnZXJPU1JFbnRyeU5vdygKICAgICAgICAgCiAgICAgICAgIC8vIE9TUiBl
bnRyeSBmYWlsZWQuIE9oIG5vISBUaGlzIGltcGxpZXMgdGhhdCB3ZSBuZWVkIHRvIHJldHJ5LiBX
ZSByZXRyeQogICAgICAgICAvLyB3aXRob3V0IGV4cG9uZW50aWFsIGJhY2tvZmYgYW5kIHdlIG9u
bHkgZG8gdGhpcyBmb3IgdGhlIGVudHJ5IGNvZGUgYmxvY2suCi0gICAgICAgIGppdENvZGUtPm9z
ckVudHJ5QmxvY2suY2xlYXIoKTsKKyAgICAgICAgaml0Q29kZS0+b3NyRW50cnlCbG9jayA9IG51
bGxwdHI7CiAgICAgICAgIGppdENvZGUtPm9zckVudHJ5UmV0cnkgPSAwOwogICAgICAgICByZXR1
cm4gMDsKICAgICB9CmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvaW5zcGVjdG9y
L0NvbnNvbGVNZXNzYWdlLmNwcCBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9pbnNwZWN0b3IvQ29u
c29sZU1lc3NhZ2UuY3BwCmluZGV4IGEwNGE5N2QuLjlhYzBkZGVlIDEwMDY0NAotLS0gYS9Tb3Vy
Y2UvSmF2YVNjcmlwdENvcmUvaW5zcGVjdG9yL0NvbnNvbGVNZXNzYWdlLmNwcAorKysgYi9Tb3Vy
Y2UvSmF2YVNjcmlwdENvcmUvaW5zcGVjdG9yL0NvbnNvbGVNZXNzYWdlLmNwcApAQCAtMjczLDcg
KzI3Myw3IEBAIHZvaWQgQ29uc29sZU1lc3NhZ2U6OmNsZWFyKCkKICAgICAgICAgbV9tZXNzYWdl
ID0gQVNDSUlMaXRlcmFsKCI8bWVzc2FnZSBjb2xsZWN0ZWQ+Iik7CiAKICAgICBpZiAobV9hcmd1
bWVudHMpCi0gICAgICAgIG1fYXJndW1lbnRzLmNsZWFyKCk7CisgICAgICAgIG1fYXJndW1lbnRz
ID0gbnVsbHB0cjsKIH0KIAogSlNDOjpFeGVjU3RhdGUqIENvbnNvbGVNZXNzYWdlOjpzY3JpcHRT
dGF0ZSgpIGNvbnN0CmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvaW5zcGVjdG9y
L0pTR2xvYmFsT2JqZWN0SW5zcGVjdG9yQ29udHJvbGxlci5jcHAgYi9Tb3VyY2UvSmF2YVNjcmlw
dENvcmUvaW5zcGVjdG9yL0pTR2xvYmFsT2JqZWN0SW5zcGVjdG9yQ29udHJvbGxlci5jcHAKaW5k
ZXggNTdmNTJjNS4uMTFkODZlZCAxMDA2NDQKLS0tIGEvU291cmNlL0phdmFTY3JpcHRDb3JlL2lu
c3BlY3Rvci9KU0dsb2JhbE9iamVjdEluc3BlY3RvckNvbnRyb2xsZXIuY3BwCisrKyBiL1NvdXJj
ZS9KYXZhU2NyaXB0Q29yZS9pbnNwZWN0b3IvSlNHbG9iYWxPYmplY3RJbnNwZWN0b3JDb250cm9s
bGVyLmNwcApAQCAtMTMxLDcgKzEzMSw3IEBAIHZvaWQgSlNHbG9iYWxPYmplY3RJbnNwZWN0b3JD
b250cm9sbGVyOjpkaXNjb25uZWN0RnJvbnRlbmQoRGlzY29ubmVjdFJlYXNvbiByZWFzCiAgICAg
bV9hZ2VudHMud2lsbERlc3Ryb3lGcm9udGVuZEFuZEJhY2tlbmQocmVhc29uKTsKIAogICAgIG1f
YmFja2VuZERpc3BhdGNoZXItPmNsZWFyRnJvbnRlbmQoKTsKLSAgICBtX2JhY2tlbmREaXNwYXRj
aGVyLmNsZWFyKCk7CisgICAgbV9iYWNrZW5kRGlzcGF0Y2hlciA9IG51bGxwdHI7CiAgICAgbV9m
cm9udGVuZENoYW5uZWwgPSBudWxscHRyOwogCiAgICAgbV9pc0F1dG9tYXRpY0luc3BlY3Rpb24g
PSBmYWxzZTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9pbnNwZWN0b3IvYWdl
bnRzL0luc3BlY3RvckFnZW50LmNwcCBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9pbnNwZWN0b3Iv
YWdlbnRzL0luc3BlY3RvckFnZW50LmNwcAppbmRleCBiZjI0MWJhLi4wNTM4NjkwIDEwMDY0NAot
LS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvaW5zcGVjdG9yL2FnZW50cy9JbnNwZWN0b3JBZ2Vu
dC5jcHAKKysrIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL2luc3BlY3Rvci9hZ2VudHMvSW5zcGVj
dG9yQWdlbnQuY3BwCkBAIC01Nyw3ICs1Nyw3IEBAIHZvaWQgSW5zcGVjdG9yQWdlbnQ6OmRpZENy
ZWF0ZUZyb250ZW5kQW5kQmFja2VuZChGcm9udGVuZENoYW5uZWwqIGZyb250ZW5kQ2hhbm5lCiB2
b2lkIEluc3BlY3RvckFnZW50Ojp3aWxsRGVzdHJveUZyb250ZW5kQW5kQmFja2VuZChEaXNjb25u
ZWN0UmVhc29uKQogewogICAgIG1fZnJvbnRlbmREaXNwYXRjaGVyID0gbnVsbHB0cjsKLSAgICBt
X2JhY2tlbmREaXNwYXRjaGVyLmNsZWFyKCk7CisgICAgbV9iYWNrZW5kRGlzcGF0Y2hlciA9IG51
bGxwdHI7CiAKICAgICBtX3BlbmRpbmdFdmFsdWF0ZVRlc3RDb21tYW5kcy5jbGVhcigpOwogCmRp
ZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvaW5zcGVjdG9yL2FnZW50cy9JbnNwZWN0
b3JDb25zb2xlQWdlbnQuY3BwIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL2luc3BlY3Rvci9hZ2Vu
dHMvSW5zcGVjdG9yQ29uc29sZUFnZW50LmNwcAppbmRleCA4MTRhMGMxLi45ZmZkMDQ4IDEwMDY0
NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvaW5zcGVjdG9yL2FnZW50cy9JbnNwZWN0b3JD
b25zb2xlQWdlbnQuY3BwCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9pbnNwZWN0b3IvYWdl
bnRzL0luc3BlY3RvckNvbnNvbGVBZ2VudC5jcHAKQEAgLTY0LDcgKzY0LDcgQEAgdm9pZCBJbnNw
ZWN0b3JDb25zb2xlQWdlbnQ6OmRpZENyZWF0ZUZyb250ZW5kQW5kQmFja2VuZChGcm9udGVuZENo
YW5uZWwqIGZyb250ZW4KIHZvaWQgSW5zcGVjdG9yQ29uc29sZUFnZW50Ojp3aWxsRGVzdHJveUZy
b250ZW5kQW5kQmFja2VuZChEaXNjb25uZWN0UmVhc29uKQogewogICAgIG1fZnJvbnRlbmREaXNw
YXRjaGVyID0gbnVsbHB0cjsKLSAgICBtX2JhY2tlbmREaXNwYXRjaGVyLmNsZWFyKCk7CisgICAg
bV9iYWNrZW5kRGlzcGF0Y2hlciA9IG51bGxwdHI7CiAKICAgICBTdHJpbmcgZXJyb3JTdHJpbmc7
CiAgICAgZGlzYWJsZShlcnJvclN0cmluZyk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlw
dENvcmUvaW5zcGVjdG9yL2FnZW50cy9JbnNwZWN0b3JEZWJ1Z2dlckFnZW50LmNwcCBiL1NvdXJj
ZS9KYXZhU2NyaXB0Q29yZS9pbnNwZWN0b3IvYWdlbnRzL0luc3BlY3RvckRlYnVnZ2VyQWdlbnQu
Y3BwCmluZGV4IGE3NWUwYjIuLmYwZjBiNDggMTAwNjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0
Q29yZS9pbnNwZWN0b3IvYWdlbnRzL0luc3BlY3RvckRlYnVnZ2VyQWdlbnQuY3BwCisrKyBiL1Nv
dXJjZS9KYXZhU2NyaXB0Q29yZS9pbnNwZWN0b3IvYWdlbnRzL0luc3BlY3RvckRlYnVnZ2VyQWdl
bnQuY3BwCkBAIC03Nyw3ICs3Nyw3IEBAIHZvaWQgSW5zcGVjdG9yRGVidWdnZXJBZ2VudDo6ZGlk
Q3JlYXRlRnJvbnRlbmRBbmRCYWNrZW5kKEZyb250ZW5kQ2hhbm5lbCogZnJvbnRlCiB2b2lkIElu
c3BlY3RvckRlYnVnZ2VyQWdlbnQ6OndpbGxEZXN0cm95RnJvbnRlbmRBbmRCYWNrZW5kKERpc2Nv
bm5lY3RSZWFzb24gcmVhc29uKQogewogICAgIG1fZnJvbnRlbmREaXNwYXRjaGVyID0gbnVsbHB0
cjsKLSAgICBtX2JhY2tlbmREaXNwYXRjaGVyLmNsZWFyKCk7CisgICAgbV9iYWNrZW5kRGlzcGF0
Y2hlciA9IG51bGxwdHI7CiAKICAgICBib29sIHNraXBSZWNvbXBpbGUgPSByZWFzb24gPT0gRGlz
Y29ubmVjdFJlYXNvbjo6SW5zcGVjdGVkVGFyZ2V0RGVzdHJveWVkOwogICAgIGRpc2FibGUoc2tp
cFJlY29tcGlsZSk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvaW5zcGVjdG9y
L2FnZW50cy9KU0dsb2JhbE9iamVjdFJ1bnRpbWVBZ2VudC5jcHAgYi9Tb3VyY2UvSmF2YVNjcmlw
dENvcmUvaW5zcGVjdG9yL2FnZW50cy9KU0dsb2JhbE9iamVjdFJ1bnRpbWVBZ2VudC5jcHAKaW5k
ZXggNjU4YzY3YS4uNDYwNDlmNSAxMDA2NDQKLS0tIGEvU291cmNlL0phdmFTY3JpcHRDb3JlL2lu
c3BlY3Rvci9hZ2VudHMvSlNHbG9iYWxPYmplY3RSdW50aW1lQWdlbnQuY3BwCisrKyBiL1NvdXJj
ZS9KYXZhU2NyaXB0Q29yZS9pbnNwZWN0b3IvYWdlbnRzL0pTR2xvYmFsT2JqZWN0UnVudGltZUFn
ZW50LmNwcApAQCAtNDksNyArNDksNyBAQCB2b2lkIEpTR2xvYmFsT2JqZWN0UnVudGltZUFnZW50
OjpkaWRDcmVhdGVGcm9udGVuZEFuZEJhY2tlbmQoRnJvbnRlbmRDaGFubmVsKiBmcgogdm9pZCBK
U0dsb2JhbE9iamVjdFJ1bnRpbWVBZ2VudDo6d2lsbERlc3Ryb3lGcm9udGVuZEFuZEJhY2tlbmQo
RGlzY29ubmVjdFJlYXNvbiByZWFzb24pCiB7CiAgICAgbV9mcm9udGVuZERpc3BhdGNoZXIgPSBu
dWxscHRyOwotICAgIG1fYmFja2VuZERpc3BhdGNoZXIuY2xlYXIoKTsKKyAgICBtX2JhY2tlbmRE
aXNwYXRjaGVyID0gbnVsbHB0cjsKIAogICAgIEluc3BlY3RvclJ1bnRpbWVBZ2VudDo6d2lsbERl
c3Ryb3lGcm9udGVuZEFuZEJhY2tlbmQocmVhc29uKTsKIH0KZGlmZiAtLWdpdCBhL1NvdXJjZS9K
YXZhU2NyaXB0Q29yZS9wYXJzZXIvUGFyc2VyLmNwcCBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9w
YXJzZXIvUGFyc2VyLmNwcAppbmRleCBkYzBmNTVmLi5hM2M1ZTMxIDEwMDY0NAotLS0gYS9Tb3Vy
Y2UvSmF2YVNjcmlwdENvcmUvcGFyc2VyL1BhcnNlci5jcHAKKysrIGIvU291cmNlL0phdmFTY3Jp
cHRDb3JlL3BhcnNlci9QYXJzZXIuY3BwCkBAIC00OTEsNyArNDkxLDcgQEAgdGVtcGxhdGUgPGNs
YXNzIFRyZWVCdWlsZGVyPiBUcmVlRXhwcmVzc2lvbiBQYXJzZXI8TGV4ZXJUeXBlPjo6cGFyc2VW
YXJEZWNsYXJhdGkKICAgICBKU1Rva2VuIGxhc3RJZGVudFRva2VuOyAKICAgICBkbyB7CiAgICAg
ICAgIGxhc3RJZGVudCA9IDA7Ci0gICAgICAgIGxhc3RQYXR0ZXJuID0gMDsKKyAgICAgICAgbGFz
dFBhdHRlcm4gPSBUcmVlRGVzdHJ1Y3R1cmluZ1BhdHRlcm4oMCk7CiAgICAgICAgIEpTVG9rZW5M
b2NhdGlvbiBsb2NhdGlvbih0b2tlbkxvY2F0aW9uKCkpOwogICAgICAgICBuZXh0KCk7CiAgICAg
ICAgIFRyZWVFeHByZXNzaW9uIG5vZGUgPSAwOwpAQCAtODk0LDcgKzg5NCw3IEBAIHRlbXBsYXRl
IDxjbGFzcyBUcmVlQnVpbGRlcj4gVHJlZVN0YXRlbWVudCBQYXJzZXI8TGV4ZXJUeXBlPjo6cGFy
c2VGb3JTdGF0ZW1lbnQoCiAgICAgICAgICAgICBkZWNsc0VuZCA9IGxhc3RUb2tlbkVuZFBvc2l0
aW9uKCk7CiAgICAgICAgICAgICBpZiAocGF0dGVybiAmJiAobWF0Y2goSU5UT0tFTikgfHwgKG1h
dGNoKElERU5UKSAmJiAqbV90b2tlbi5tX2RhdGEuaWRlbnQgPT0gbV92bS0+cHJvcGVydHlOYW1l
cy0+b2YpKSkKICAgICAgICAgICAgICAgICBnb3RvIGVudW1lcmF0aW9uTG9vcDsKLSAgICAgICAg
ICAgIHBhdHRlcm4gPSAwOworICAgICAgICAgICAgcGF0dGVybiA9IFRyZWVEZXN0cnVjdHVyaW5n
UGF0dGVybigwKTsKICAgICAgICAgICAgIHJlc3RvcmVTYXZlUG9pbnQoc2F2ZVBvaW50KTsKICAg
ICAgICAgfQogICAgICAgICBtX2FsbG93c0luID0gZmFsc2U7CmRpZmYgLS1naXQgYS9Tb3VyY2Uv
SmF2YVNjcmlwdENvcmUvcnVudGltZS9FeGVjdXRhYmxlLmNwcCBiL1NvdXJjZS9KYXZhU2NyaXB0
Q29yZS9ydW50aW1lL0V4ZWN1dGFibGUuY3BwCmluZGV4IDZjYjA5YjAuLjU1MjQwZmQgMTAwNjQ0
Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0V4ZWN1dGFibGUuY3BwCisrKyBi
L1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0V4ZWN1dGFibGUuY3BwCkBAIC01Miw4ICs1
Miw4IEBAIHZvaWQgRXhlY3V0YWJsZUJhc2U6OmRlc3Ryb3koSlNDZWxsKiBjZWxsKQogdm9pZCBF
eGVjdXRhYmxlQmFzZTo6Y2xlYXJDb2RlKCkKIHsKICNpZiBFTkFCTEUoSklUKQotICAgIG1faml0
Q29kZUZvckNhbGwuY2xlYXIoKTsKLSAgICBtX2ppdENvZGVGb3JDb25zdHJ1Y3QuY2xlYXIoKTsK
KyAgICBtX2ppdENvZGVGb3JDYWxsID0gbnVsbHB0cjsKKyAgICBtX2ppdENvZGVGb3JDb25zdHJ1
Y3QgPSBudWxscHRyOwogICAgIG1faml0Q29kZUZvckNhbGxXaXRoQXJpdHlDaGVjayA9IE1hY3Jv
QXNzZW1ibGVyQ29kZVB0cigpOwogICAgIG1faml0Q29kZUZvckNvbnN0cnVjdFdpdGhBcml0eUNo
ZWNrID0gTWFjcm9Bc3NlbWJsZXJDb2RlUHRyKCk7CiAgICAgbV9qaXRDb2RlRm9yQ2FsbFdpdGhB
cml0eUNoZWNrQW5kUHJlc2VydmVSZWdzID0gTWFjcm9Bc3NlbWJsZXJDb2RlUHRyKCk7CkBAIC00
NjQsNyArNDY0LDcgQEAgdm9pZCBFdmFsRXhlY3V0YWJsZTo6dW5saW5rQ2FsbHMoKQogCiB2b2lk
IEV2YWxFeGVjdXRhYmxlOjpjbGVhckNvZGUoKQogewotICAgIG1fZXZhbENvZGVCbG9jay5jbGVh
cigpOworICAgIG1fZXZhbENvZGVCbG9jayA9IG51bGxwdHI7CiAgICAgbV91bmxpbmtlZEV2YWxD
b2RlQmxvY2suY2xlYXIoKTsKICAgICBCYXNlOjpjbGVhckNvZGUoKTsKIH0KQEAgLTU0Myw3ICs1
NDMsNyBAQCB2b2lkIFByb2dyYW1FeGVjdXRhYmxlOjp2aXNpdENoaWxkcmVuKEpTQ2VsbCogY2Vs
bCwgU2xvdFZpc2l0b3ImIHZpc2l0b3IpCiAKIHZvaWQgUHJvZ3JhbUV4ZWN1dGFibGU6OmNsZWFy
Q29kZSgpCiB7Ci0gICAgbV9wcm9ncmFtQ29kZUJsb2NrLmNsZWFyKCk7CisgICAgbV9wcm9ncmFt
Q29kZUJsb2NrID0gbnVsbHB0cjsKICAgICBtX3VubGlua2VkUHJvZ3JhbUNvZGVCbG9jay5jbGVh
cigpOwogICAgIEJhc2U6OmNsZWFyQ29kZSgpOwogfQpAQCAtNTg3LDggKzU4Nyw4IEBAIHZvaWQg
RnVuY3Rpb25FeGVjdXRhYmxlOjpjbGVhclVubGlua2VkQ29kZUZvclJlY29tcGlsYXRpb24oKQog
CiB2b2lkIEZ1bmN0aW9uRXhlY3V0YWJsZTo6Y2xlYXJDb2RlKCkKIHsKLSAgICBtX2NvZGVCbG9j
a0ZvckNhbGwuY2xlYXIoKTsKLSAgICBtX2NvZGVCbG9ja0ZvckNvbnN0cnVjdC5jbGVhcigpOwor
ICAgIG1fY29kZUJsb2NrRm9yQ2FsbCA9IG51bGxwdHI7CisgICAgbV9jb2RlQmxvY2tGb3JDb25z
dHJ1Y3QgPSBudWxscHRyOwogICAgIEJhc2U6OmNsZWFyQ29kZSgpOwogfQogCmRpZmYgLS1naXQg
YS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9KU0xvY2suY3BwIGIvU291cmNlL0phdmFT
Y3JpcHRDb3JlL3J1bnRpbWUvSlNMb2NrLmNwcAppbmRleCAyZTc5OTRjLi5jMmVlMGE1IDEwMDY0
NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9KU0xvY2suY3BwCisrKyBiL1Nv
dXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0pTTG9jay5jcHAKQEAgLTczLDcgKzczLDcgQEAg
dm9pZCBKU0xvY2tIb2xkZXI6OmluaXQoKQogSlNMb2NrSG9sZGVyOjp+SlNMb2NrSG9sZGVyKCkK
IHsKICAgICBSZWZQdHI8SlNMb2NrPiBhcGlMb2NrKCZtX3ZtLT5hcGlMb2NrKCkpOwotICAgIG1f
dm0uY2xlYXIoKTsKKyAgICBtX3ZtID0gbnVsbHB0cjsKICAgICBhcGlMb2NrLT51bmxvY2soKTsK
IH0KIApkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvU3RydWN0dXJl
LmNwcCBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL1N0cnVjdHVyZS5jcHAKaW5kZXgg
Zjc3MWI2MC4uMzk4NTgwNSAxMDA2NDQKLS0tIGEvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRp
bWUvU3RydWN0dXJlLmNwcAorKysgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9TdHJ1
Y3R1cmUuY3BwCkBAIC03MzcsNyArNzM3LDcgQEAgdm9pZCBTdHJ1Y3R1cmU6OnBpbigpCiAgICAg
QVNTRVJUKHByb3BlcnR5VGFibGUoKSk7CiAgICAgc2V0SXNQaW5uZWRQcm9wZXJ0eVRhYmxlKHRy
dWUpOwogICAgIGNsZWFyUHJldmlvdXNJRCgpOwotICAgIG1fbmFtZUluUHJldmlvdXMuY2xlYXIo
KTsKKyAgICBtX25hbWVJblByZXZpb3VzID0gbnVsbHB0cjsKIH0KIAogdm9pZCBTdHJ1Y3R1cmU6
OmFsbG9jYXRlUmFyZURhdGEoVk0mIHZtKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dURi9DaGFuZ2VM
b2cgYi9Tb3VyY2UvV1RGL0NoYW5nZUxvZwppbmRleCA0YmY1Y2Y3Li40ZWJlNDg4IDEwMDY0NAot
LS0gYS9Tb3VyY2UvV1RGL0NoYW5nZUxvZworKysgYi9Tb3VyY2UvV1RGL0NoYW5nZUxvZwpAQCAt
MSwzICsxLDE0IEBACisyMDE1LTA3LTAyICBDaHJpcyBEdW1leiAgPGNkdW1lekBhcHBsZS5jb20+
CisKKyAgICAgICAgRHJvcCBSZWZQdHI6OmNsZWFyKCkgbWV0aG9kCisgICAgICAgIGh0dHBzOi8v
YnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0xNDY1NTYKKworICAgICAgICBSZXZpZXdl
ZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICAqIHd0Zi9SZWZQdHIuaDoKKyAgICAgICAg
KFdURjo6UmVmUHRyOjpyZWxlYXNlKTogRGVsZXRlZC4KKyAgICAgICAgKFdURjo6UmVmUHRyPFQ+
OjpsZWFrUmVmKTogRGVsZXRlZC4KKwogMjAxNS0wNy0wMSAgQWxleCBDaHJpc3RlbnNlbiAgPGFj
aHJpc3RlbnNlbkB3ZWJraXQub3JnPgogCiAgICAgICAgIFJlLWVuYWJsZSBXZWJHTCBvbiBXaW5D
YWlybwpkaWZmIC0tZ2l0IGEvU291cmNlL1dURi93dGYvUmVmUHRyLmggYi9Tb3VyY2UvV1RGL3d0
Zi9SZWZQdHIuaAppbmRleCAyOTExZjBkYS4uYzE0Y2E4OCAxMDA2NDQKLS0tIGEvU291cmNlL1dU
Ri93dGYvUmVmUHRyLmgKKysrIGIvU291cmNlL1dURi93dGYvUmVmUHRyLmgKQEAgLTc3LDYgKzc3
LDcgQEAgcHVibGljOgogICAgIAogICAgIFJlZlB0ciYgb3BlcmF0b3I9KGNvbnN0IFJlZlB0ciYp
OwogICAgIFJlZlB0ciYgb3BlcmF0b3I9KFQqKTsKKyAgICBSZWZQdHImIG9wZXJhdG9yPShzdGQ6
Om51bGxwdHJfdCk7CiAgICAgUmVmUHRyJiBvcGVyYXRvcj0oY29uc3QgUGFzc1JlZlB0cjxUPiYp
OwogICAgIHRlbXBsYXRlPHR5cGVuYW1lIFU+IFJlZlB0ciYgb3BlcmF0b3I9KGNvbnN0IFJlZlB0
cjxVPiYpOwogICAgIHRlbXBsYXRlPHR5cGVuYW1lIFU+IFJlZlB0ciYgb3BlcmF0b3I9KGNvbnN0
IFBhc3NSZWZQdHI8VT4mKTsKQEAgLTE0MSw2ICsxNDIsMTIgQEAgdGVtcGxhdGU8dHlwZW5hbWUg
VD4gaW5saW5lIFJlZlB0cjxUPiYgUmVmUHRyPFQ+OjpvcGVyYXRvcj0oVCogb3B0cikKICAgICBy
ZXR1cm4gKnRoaXM7CiB9CiAKK3RlbXBsYXRlPHR5cGVuYW1lIFQ+IGlubGluZSBSZWZQdHI8VD4m
IFJlZlB0cjxUPjo6b3BlcmF0b3I9KHN0ZDo6bnVsbHB0cl90KQoreworICAgIGRlcmVmSWZOb3RO
dWxsKHN0ZDo6ZXhjaGFuZ2UobV9wdHIsIG51bGxwdHIpKTsKKyAgICByZXR1cm4gKnRoaXM7Cit9
CisKIHRlbXBsYXRlPHR5cGVuYW1lIFQ+IGlubGluZSBSZWZQdHI8VD4mIFJlZlB0cjxUPjo6b3Bl
cmF0b3I9KGNvbnN0IFBhc3NSZWZQdHI8VD4mIG8pCiB7CiAgICAgUmVmUHRyIHB0ciA9IG87CmRp
ZmYgLS1naXQgYS9Tb3VyY2UvV1RGL3d0Zi90ZXh0L1N0cmluZ0J1aWxkZXIuaCBiL1NvdXJjZS9X
VEYvd3RmL3RleHQvU3RyaW5nQnVpbGRlci5oCmluZGV4IGJlNWMxMTcuLjFkYzRhYzYgMTAwNjQ0
Ci0tLSBhL1NvdXJjZS9XVEYvd3RmL3RleHQvU3RyaW5nQnVpbGRlci5oCisrKyBiL1NvdXJjZS9X
VEYvd3RmL3RleHQvU3RyaW5nQnVpbGRlci5oCkBAIC0yNjQsNyArMjY0LDcgQEAgcHVibGljOgog
ICAgIHsKICAgICAgICAgbV9sZW5ndGggPSAwOwogICAgICAgICBtX3N0cmluZyA9IFN0cmluZygp
OwotICAgICAgICBtX2J1ZmZlciA9IDA7CisgICAgICAgIG1fYnVmZmVyID0gbnVsbHB0cjsKICAg
ICAgICAgbV9idWZmZXJDaGFyYWN0ZXJzOCA9IDA7CiAgICAgICAgIG1faXM4Qml0ID0gdHJ1ZTsK
ICAgICB9CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cgYi9Tb3VyY2UvV2Vi
Q29yZS9DaGFuZ2VMb2cKaW5kZXggMzNmMmM0Yi4uMDk3N2FlYyAxMDA2NDQKLS0tIGEvU291cmNl
L1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1NvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwz
ICsxLDIyMyBAQAorMjAxNS0wNy0wMiAgQ2hyaXMgRHVtZXogIDxjZHVtZXpAYXBwbGUuY29tPgor
CisgICAgICAgIERyb3AgUmVmUHRyOjpjbGVhcigpIG1ldGhvZAorICAgICAgICBodHRwczovL2J1
Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTQ2NTU2CisKKyAgICAgICAgUmV2aWV3ZWQg
YnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgKiBNb2R1bGVzL2luZGV4ZWRkYi9JREJDdXJz
b3IuY3BwOgorICAgICAgICAoV2ViQ29yZTo6SURCQ3Vyc29yOjpjbG9zZSk6CisgICAgICAgICog
TW9kdWxlcy9pbmRleGVkZGIvSURCRGF0YWJhc2VCYWNrZW5kLmNwcDoKKyAgICAgICAgKFdlYkNv
cmU6OklEQkRhdGFiYXNlQmFja2VuZDo6dHJhbnNhY3Rpb25GaW5pc2hlZCk6CisgICAgICAgICog
TW9kdWxlcy9pbmRleGVkZGIvSURCT2JqZWN0U3RvcmUuY3BwOgorICAgICAgICAqIE1vZHVsZXMv
aW5kZXhlZGRiL0lEQk9wZW5EQlJlcXVlc3QuY3BwOgorICAgICAgICAoV2ViQ29yZTo6SURCT3Bl
bkRCUmVxdWVzdDo6ZGlzcGF0Y2hFdmVudCk6CisgICAgICAgICogTW9kdWxlcy9pbmRleGVkZGIv
SURCUmVxdWVzdC5jcHA6CisgICAgICAgIChXZWJDb3JlOjpJREJSZXF1ZXN0OjphYm9ydCk6Cisg
ICAgICAgIChXZWJDb3JlOjpJREJSZXF1ZXN0OjpzZXRQZW5kaW5nQ3Vyc29yKToKKyAgICAgICAg
KFdlYkNvcmU6OklEQlJlcXVlc3Q6Om9uRXJyb3IpOgorICAgICAgICAoV2ViQ29yZTo6SURCUmVx
dWVzdDo6b25TdWNjZXNzSW50ZXJuYWwpOgorICAgICAgICAoV2ViQ29yZTo6SURCUmVxdWVzdDo6
dHJhbnNhY3Rpb25EaWRGaW5pc2hBbmREaXNwYXRjaCk6CisgICAgICAgICogTW9kdWxlcy9pbmRl
eGVkZGIvSURCVHJhbnNhY3Rpb24uY3BwOgorICAgICAgICAoV2ViQ29yZTo6SURCVHJhbnNhY3Rp
b246Ok9wZW5DdXJzb3JOb3RpZmllcjo6Y3Vyc29yRmluaXNoZWQpOgorICAgICAgICAqIE1vZHVs
ZXMvbWVkaWFzb3VyY2UvTWVkaWFTb3VyY2UuY3BwOgorICAgICAgICAoV2ViQ29yZTo6TWVkaWFT
b3VyY2U6OnNldFJlYWR5U3RhdGUpOgorICAgICAgICAoV2ViQ29yZTo6TWVkaWFTb3VyY2U6OnN0
b3ApOgorICAgICAgICAqIE1vZHVsZXMvbWVkaWFzdHJlYW0vUlRDU2Vzc2lvbkRlc2NyaXB0aW9u
UmVxdWVzdEltcGwuY3BwOgorICAgICAgICAoV2ViQ29yZTo6UlRDU2Vzc2lvbkRlc2NyaXB0aW9u
UmVxdWVzdEltcGw6OmNsZWFyKToKKyAgICAgICAgKiBNb2R1bGVzL21lZGlhc3RyZWFtL1JUQ1N0
YXRzUmVxdWVzdEltcGwuY3BwOgorICAgICAgICAoV2ViQ29yZTo6UlRDU3RhdHNSZXF1ZXN0SW1w
bDo6Y2xlYXIpOgorICAgICAgICAqIE1vZHVsZXMvbWVkaWFzdHJlYW0vUlRDVm9pZFJlcXVlc3RJ
bXBsLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OlJUQ1ZvaWRSZXF1ZXN0SW1wbDo6Y2xlYXIpOgor
ICAgICAgICAqIE1vZHVsZXMvd2ViYXVkaW8vQXVkaW9Db250ZXh0LmNwcDoKKyAgICAgICAgKFdl
YkNvcmU6OkF1ZGlvQ29udGV4dDo6Y2xlYXIpOgorICAgICAgICAqIE1vZHVsZXMvd2ViZGF0YWJh
c2UvU1FMVHJhbnNhY3Rpb25CYWNrZW5kLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OlNRTFRyYW5z
YWN0aW9uQmFja2VuZDo6cmVsZWFzZU9yaWdpbkxvY2tJZk5lZWRlZCk6CisgICAgICAgICogTW9k
dWxlcy93ZWJzb2NrZXRzL1dvcmtlclRocmVhZGFibGVXZWJTb2NrZXRDaGFubmVsLmNwcDoKKyAg
ICAgICAgKFdlYkNvcmU6OldvcmtlclRocmVhZGFibGVXZWJTb2NrZXRDaGFubmVsOjpkaXNjb25u
ZWN0KToKKyAgICAgICAgKiBiaW5kaW5ncy9qcy9XZWJDb3JlSlNDbGllbnREYXRhLmg6CisgICAg
ICAgIChXZWJDb3JlOjpXZWJDb3JlSlNDbGllbnREYXRhOjp+V2ViQ29yZUpTQ2xpZW50RGF0YSk6
CisgICAgICAgICogYmluZGluZ3MvanMvV29ya2VyU2NyaXB0Q29udHJvbGxlci5jcHA6CisgICAg
ICAgIChXZWJDb3JlOjpXb3JrZXJTY3JpcHRDb250cm9sbGVyOjp+V29ya2VyU2NyaXB0Q29udHJv
bGxlcik6CisgICAgICAgICogY29udGVudGV4dGVuc2lvbnMvQ29udGVudEV4dGVuc2lvblBhcnNl
ci5jcHA6CisgICAgICAgIChXZWJDb3JlOjpDb250ZW50RXh0ZW5zaW9uczo6cGFyc2VSdWxlTGlz
dCk6CisgICAgICAgICogY3NzL0NTU1BhcnNlci5jcHA6CisgICAgICAgIChXZWJDb3JlOjpDU1NQ
YXJzZXI6OnBhcnNlRmlsbFBvc2l0aW9uKToKKyAgICAgICAgKFdlYkNvcmU6OkNTU1BhcnNlcjo6
cGFyc2UyVmFsdWVzRmlsbFBvc2l0aW9uKToKKyAgICAgICAgKFdlYkNvcmU6OkNTU1BhcnNlcjo6
cG9wUnVsZURhdGEpOgorICAgICAgICAoV2ViQ29yZTo6Q1NTUGFyc2VyOjptYXJrUnVsZUJvZHlT
dGFydCk6CisgICAgICAgICogZG9tL0RvY3VtZW50LmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OkRv
Y3VtZW50OjpkZXRhY2hQYXJzZXIpOgorICAgICAgICAoV2ViQ29yZTo6RG9jdW1lbnQ6OmNsZWFy
U2NyaXB0ZWRBbmltYXRpb25Db250cm9sbGVyKToKKyAgICAgICAgKFdlYkNvcmU6OkRvY3VtZW50
Ojp1cGRhdGVIb3ZlckFjdGl2ZVN0YXRlKToKKyAgICAgICAgKiBkb20vRG9jdW1lbnRNYXJrZXIu
aDoKKyAgICAgICAgKFdlYkNvcmU6OkRvY3VtZW50TWFya2VyOjpjbGVhckRldGFpbHMpOgorICAg
ICAgICAqIGRvbS9FbGVtZW50LmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OkVsZW1lbnQ6OmNsb25l
QXR0cmlidXRlc0Zyb21FbGVtZW50KToKKyAgICAgICAgKiBkb20vTm9kZUl0ZXJhdG9yLmNwcDoK
KyAgICAgICAgKFdlYkNvcmU6Ok5vZGVJdGVyYXRvcjo6Tm9kZVBvaW50ZXI6OmNsZWFyKToKKyAg
ICAgICAgKFdlYkNvcmU6Ok5vZGVJdGVyYXRvcjo6ZGV0YWNoKToKKyAgICAgICAgKiBkb20vUG9z
aXRpb24uaDoKKyAgICAgICAgKFdlYkNvcmU6OlBvc2l0aW9uOjpjbGVhcik6CisgICAgICAgICog
ZG9tL1JhbmdlQm91bmRhcnlQb2ludC5oOgorICAgICAgICAoV2ViQ29yZTo6UmFuZ2VCb3VuZGFy
eVBvaW50OjpjbGVhcik6CisgICAgICAgICogZG9tL1NwYWNlU3BsaXRTdHJpbmcuaDoKKyAgICAg
ICAgKFdlYkNvcmU6OlNwYWNlU3BsaXRTdHJpbmc6OmNsZWFyKToKKyAgICAgICAgKiBkb20vU3R5
bGVkRWxlbWVudC5jcHA6CisgICAgICAgIChXZWJDb3JlOjpTdHlsZWRFbGVtZW50OjpzZXRJbmxp
bmVTdHlsZUZyb21TdHJpbmcpOgorICAgICAgICAoV2ViQ29yZTo6U3R5bGVkRWxlbWVudDo6c3R5
bGVBdHRyaWJ1dGVDaGFuZ2VkKToKKyAgICAgICAgKiBlZGl0aW5nL0FsdGVybmF0aXZlVGV4dENv
bnRyb2xsZXIuY3BwOgorICAgICAgICAoV2ViQ29yZTo6QWx0ZXJuYXRpdmVUZXh0Q29udHJvbGxl
cjo6c3RhcnRBbHRlcm5hdGl2ZVRleHRVSVRpbWVyKToKKyAgICAgICAgKFdlYkNvcmU6OkFsdGVy
bmF0aXZlVGV4dENvbnRyb2xsZXI6OnN0b3BBbHRlcm5hdGl2ZVRleHRVSVRpbWVyKToKKyAgICAg
ICAgKFdlYkNvcmU6OkFsdGVybmF0aXZlVGV4dENvbnRyb2xsZXI6OmFwcGx5UGVuZGluZ0NvcnJl
Y3Rpb24pOgorICAgICAgICAoV2ViQ29yZTo6QWx0ZXJuYXRpdmVUZXh0Q29udHJvbGxlcjo6dGlt
ZXJGaXJlZCk6CisgICAgICAgIChXZWJDb3JlOjpBbHRlcm5hdGl2ZVRleHRDb250cm9sbGVyOjpo
YW5kbGVBbHRlcm5hdGl2ZVRleHRVSVJlc3VsdCk6CisgICAgICAgICogZWRpdGluZy9FZGl0aW5n
U3R5bGUuY3BwOgorICAgICAgICAoV2ViQ29yZTo6RWRpdGluZ1N0eWxlOjpjbGVhcik6CisgICAg
ICAgICogZWRpdGluZy9FZGl0b3IuY3BwOgorICAgICAgICAoV2ViQ29yZTo6RWRpdG9yOjpjbGVh
ckxhc3RFZGl0Q29tbWFuZCk6CisgICAgICAgICogZWRpdGluZy9GcmFtZVNlbGVjdGlvbi5jcHA6
CisgICAgICAgIChXZWJDb3JlOjpGcmFtZVNlbGVjdGlvbjo6cHJlcGFyZUZvckRlc3RydWN0aW9u
KToKKyAgICAgICAgKiBlZGl0aW5nL0ZyYW1lU2VsZWN0aW9uLmg6CisgICAgICAgIChXZWJDb3Jl
OjpGcmFtZVNlbGVjdGlvbjo6Y2xlYXJUeXBpbmdTdHlsZSk6CisgICAgICAgICogZWRpdGluZy9T
cGVsbENoZWNrZXIuY3BwOgorICAgICAgICAoV2ViQ29yZTo6U3BlbGxDaGVja2VyOjpkaWRDaGVj
ayk6CisgICAgICAgICogaHRtbC9CYXNlQ2hvb3Nlck9ubHlEYXRlQW5kVGltZUlucHV0VHlwZS5j
cHA6CisgICAgICAgIChXZWJDb3JlOjpCYXNlQ2hvb3Nlck9ubHlEYXRlQW5kVGltZUlucHV0VHlw
ZTo6ZGlkRW5kQ2hvb3Nlcik6CisgICAgICAgICogaHRtbC9GaWxlSW5wdXRUeXBlLmNwcDoKKyAg
ICAgICAgKFdlYkNvcmU6OkZpbGVJbnB1dFR5cGU6OnNldFZhbHVlKToKKyAgICAgICAgKiBodG1s
L0hUTUxDYW52YXNFbGVtZW50LmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OkhUTUxDYW52YXNFbGVt
ZW50OjpjbGVhclByZXNlbnRhdGlvbkNvcHkpOgorICAgICAgICAoV2ViQ29yZTo6SFRNTENhbnZh
c0VsZW1lbnQ6OmNsZWFyQ29waWVkSW1hZ2UpOgorICAgICAgICAqIGh0bWwvSFRNTFBsdWdJbkVs
ZW1lbnQuY3BwOgorICAgICAgICAoV2ViQ29yZTo6SFRNTFBsdWdJbkVsZW1lbnQ6OndpbGxEZXRh
Y2hSZW5kZXJlcnMpOgorICAgICAgICAoV2ViQ29yZTo6SFRNTFBsdWdJbkVsZW1lbnQ6OnJlc2V0
SW5zdGFuY2UpOgorICAgICAgICAqIGh0bWwvVGV4dEZpZWxkSW5wdXRUeXBlLmNwcDoKKyAgICAg
ICAgKFdlYkNvcmU6OlRleHRGaWVsZElucHV0VHlwZTo6dXBkYXRlUGxhY2Vob2xkZXJUZXh0KToK
KyAgICAgICAgKiBodG1sL2NhbnZhcy9XZWJHTFJlbmRlcmluZ0NvbnRleHRCYXNlLmNwcDoKKyAg
ICAgICAgKFdlYkNvcmU6OldlYkdMUmVuZGVyaW5nQ29udGV4dEJhc2U6OmRlc3Ryb3lHcmFwaGlj
c0NvbnRleHQzRCk6CisgICAgICAgICogaW5zcGVjdG9yL0luc3BlY3RvckFwcGxpY2F0aW9uQ2Fj
aGVBZ2VudC5jcHA6CisgICAgICAgIChXZWJDb3JlOjpJbnNwZWN0b3JBcHBsaWNhdGlvbkNhY2hl
QWdlbnQ6OndpbGxEZXN0cm95RnJvbnRlbmRBbmRCYWNrZW5kKToKKyAgICAgICAgKiBpbnNwZWN0
b3IvSW5zcGVjdG9yQ1NTQWdlbnQuY3BwOgorICAgICAgICAoV2ViQ29yZTo6SW5zcGVjdG9yQ1NT
QWdlbnQ6OndpbGxEZXN0cm95RnJvbnRlbmRBbmRCYWNrZW5kKToKKyAgICAgICAgKiBpbnNwZWN0
b3IvSW5zcGVjdG9yQ29udHJvbGxlci5jcHA6CisgICAgICAgIChXZWJDb3JlOjpJbnNwZWN0b3JD
b250cm9sbGVyOjpkaXNjb25uZWN0RnJvbnRlbmQpOgorICAgICAgICAqIGluc3BlY3Rvci9JbnNw
ZWN0b3JET01BZ2VudC5jcHA6CisgICAgICAgIChXZWJDb3JlOjpJbnNwZWN0b3JET01BZ2VudDo6
d2lsbERlc3Ryb3lGcm9udGVuZEFuZEJhY2tlbmQpOgorICAgICAgICAqIGluc3BlY3Rvci9JbnNw
ZWN0b3JET01EZWJ1Z2dlckFnZW50LmNwcDoKKyAgICAgICAgKFdlYkNvcmU6Okluc3BlY3RvckRP
TURlYnVnZ2VyQWdlbnQ6OndpbGxEZXN0cm95RnJvbnRlbmRBbmRCYWNrZW5kKToKKyAgICAgICAg
KiBpbnNwZWN0b3IvSW5zcGVjdG9yRE9NU3RvcmFnZUFnZW50LmNwcDoKKyAgICAgICAgKFdlYkNv
cmU6Okluc3BlY3RvckRPTVN0b3JhZ2VBZ2VudDo6d2lsbERlc3Ryb3lGcm9udGVuZEFuZEJhY2tl
bmQpOgorICAgICAgICAqIGluc3BlY3Rvci9JbnNwZWN0b3JEYXRhYmFzZUFnZW50LmNwcDoKKyAg
ICAgICAgKFdlYkNvcmU6Okluc3BlY3RvckRhdGFiYXNlQWdlbnQ6OndpbGxEZXN0cm95RnJvbnRl
bmRBbmRCYWNrZW5kKToKKyAgICAgICAgKiBpbnNwZWN0b3IvSW5zcGVjdG9ySW5kZXhlZERCQWdl
bnQuY3BwOgorICAgICAgICAoV2ViQ29yZTo6SW5zcGVjdG9ySW5kZXhlZERCQWdlbnQ6OndpbGxE
ZXN0cm95RnJvbnRlbmRBbmRCYWNrZW5kKToKKyAgICAgICAgKiBpbnNwZWN0b3IvSW5zcGVjdG9y
TGF5ZXJUcmVlQWdlbnQuY3BwOgorICAgICAgICAoV2ViQ29yZTo6SW5zcGVjdG9yTGF5ZXJUcmVl
QWdlbnQ6OndpbGxEZXN0cm95RnJvbnRlbmRBbmRCYWNrZW5kKToKKyAgICAgICAgKiBpbnNwZWN0
b3IvSW5zcGVjdG9yT3ZlcmxheS5jcHA6CisgICAgICAgIChXZWJDb3JlOjpJbnNwZWN0b3JPdmVy
bGF5OjpoaWRlSGlnaGxpZ2h0KToKKyAgICAgICAgKFdlYkNvcmU6Okluc3BlY3Rvck92ZXJsYXk6
OmhpZ2hsaWdodE5vZGVMaXN0KToKKyAgICAgICAgKFdlYkNvcmU6Okluc3BlY3Rvck92ZXJsYXk6
OmhpZ2hsaWdodE5vZGUpOgorICAgICAgICAqIGluc3BlY3Rvci9JbnNwZWN0b3JQYWdlQWdlbnQu
Y3BwOgorICAgICAgICAoV2ViQ29yZTo6SW5zcGVjdG9yUGFnZUFnZW50Ojp3aWxsRGVzdHJveUZy
b250ZW5kQW5kQmFja2VuZCk6CisgICAgICAgIChXZWJDb3JlOjpJbnNwZWN0b3JQYWdlQWdlbnQ6
OmRpc2FibGUpOgorICAgICAgICAqIGluc3BlY3Rvci9JbnNwZWN0b3JSZXBsYXlBZ2VudC5jcHA6
CisgICAgICAgIChXZWJDb3JlOjpJbnNwZWN0b3JSZXBsYXlBZ2VudDo6d2lsbERlc3Ryb3lGcm9u
dGVuZEFuZEJhY2tlbmQpOgorICAgICAgICAqIGluc3BlY3Rvci9JbnNwZWN0b3JSZXNvdXJjZUFn
ZW50LmNwcDoKKyAgICAgICAgKFdlYkNvcmU6Okluc3BlY3RvclJlc291cmNlQWdlbnQ6OndpbGxE
ZXN0cm95RnJvbnRlbmRBbmRCYWNrZW5kKToKKyAgICAgICAgKiBpbnNwZWN0b3IvSW5zcGVjdG9y
U3R5bGVTaGVldC5jcHA6CisgICAgICAgIChXZWJDb3JlOjpJbnNwZWN0b3JTdHlsZVNoZWV0Rm9y
SW5saW5lU3R5bGU6OmRpZE1vZGlmeUVsZW1lbnRBdHRyaWJ1dGUpOgorICAgICAgICAoV2ViQ29y
ZTo6SW5zcGVjdG9yU3R5bGVTaGVldEZvcklubGluZVN0eWxlOjpzZXRTdHlsZVRleHQpOgorICAg
ICAgICAoV2ViQ29yZTo6SW5zcGVjdG9yU3R5bGVTaGVldEZvcklubGluZVN0eWxlOjplbnN1cmVQ
YXJzZWREYXRhUmVhZHkpOgorICAgICAgICAqIGluc3BlY3Rvci9JbnNwZWN0b3JUaW1lbGluZUFn
ZW50LmNwcDoKKyAgICAgICAgKFdlYkNvcmU6Okluc3BlY3RvclRpbWVsaW5lQWdlbnQ6OndpbGxE
ZXN0cm95RnJvbnRlbmRBbmRCYWNrZW5kKToKKyAgICAgICAgKiBpbnNwZWN0b3IvSW5zcGVjdG9y
V29ya2VyQWdlbnQuY3BwOgorICAgICAgICAoV2ViQ29yZTo6SW5zcGVjdG9yV29ya2VyQWdlbnQ6
OndpbGxEZXN0cm95RnJvbnRlbmRBbmRCYWNrZW5kKToKKyAgICAgICAgKiBpbnNwZWN0b3IvUGFn
ZVJ1bnRpbWVBZ2VudC5jcHA6CisgICAgICAgIChXZWJDb3JlOjpQYWdlUnVudGltZUFnZW50Ojp3
aWxsRGVzdHJveUZyb250ZW5kQW5kQmFja2VuZCk6CisgICAgICAgICogaW5zcGVjdG9yL1dlYklu
amVjdGVkU2NyaXB0TWFuYWdlci5jcHA6CisgICAgICAgIChXZWJDb3JlOjpXZWJJbmplY3RlZFNj
cmlwdE1hbmFnZXI6OmRpc2Nvbm5lY3QpOgorICAgICAgICAqIGluc3BlY3Rvci9Xb3JrZXJJbnNw
ZWN0b3JDb250cm9sbGVyLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6Oldvcmtlckluc3BlY3RvckNv
bnRyb2xsZXI6OmRpc2Nvbm5lY3RGcm9udGVuZCk6CisgICAgICAgICogaW5zcGVjdG9yL1dvcmtl
clJ1bnRpbWVBZ2VudC5jcHA6CisgICAgICAgIChXZWJDb3JlOjpXb3JrZXJSdW50aW1lQWdlbnQ6
OndpbGxEZXN0cm95RnJvbnRlbmRBbmRCYWNrZW5kKToKKyAgICAgICAgKiBsb2FkZXIvRnJhbWVM
b2FkZXIuY3BwOgorICAgICAgICAoV2ViQ29yZTo6RnJhbWVMb2FkZXI6OmRpZEJlZ2luRG9jdW1l
bnQpOgorICAgICAgICAqIGxvYWRlci9jYWNoZS9DYWNoZWRDU1NTdHlsZVNoZWV0LmNwcDoKKyAg
ICAgICAgKFdlYkNvcmU6OkNhY2hlZENTU1N0eWxlU2hlZXQ6OmRlc3Ryb3lEZWNvZGVkRGF0YSk6
CisgICAgICAgIChXZWJDb3JlOjpDYWNoZWRDU1NTdHlsZVNoZWV0OjpyZXN0b3JlUGFyc2VkU3R5
bGVTaGVldCk6CisgICAgICAgICogbG9hZGVyL2NhY2hlL0NhY2hlZEltYWdlLmNwcDoKKyAgICAg
ICAgKFdlYkNvcmU6OkNhY2hlZEltYWdlOjpjbGVhckltYWdlKToKKyAgICAgICAgKiBsb2FkZXIv
Y2FjaGUvQ2FjaGVkUmF3UmVzb3VyY2UuY3BwOgorICAgICAgICAoV2ViQ29yZTo6Q2FjaGVkUmF3
UmVzb3VyY2U6OmNsZWFyKToKKyAgICAgICAgKiBsb2FkZXIvY2FjaGUvQ2FjaGVkUmVzb3VyY2Uu
Y3BwOgorICAgICAgICAoV2ViQ29yZTo6Q2FjaGVkUmVzb3VyY2U6OmVycm9yKToKKyAgICAgICAg
KiBsb2FkZXIvaWNvbi9JY29uUmVjb3JkLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6Okljb25SZWNv
cmQ6OnNldEltYWdlRGF0YSk6CisgICAgICAgICogcGFnZS9FdmVudEhhbmRsZXIuY3BwOgorICAg
ICAgICAoV2ViQ29yZTo6RXZlbnRIYW5kbGVyOjpjbGVhcik6CisgICAgICAgIChXZWJDb3JlOjpF
dmVudEhhbmRsZXI6OmhhbmRsZVRvdWNoRXZlbnQpOgorICAgICAgICAqIHBhZ2UvUGFnZS5jcHA6
CisgICAgICAgIChXZWJDb3JlOjpQYWdlOjpyZWZyZXNoUGx1Z2lucyk6CisgICAgICAgICogcGxh
dGZvcm0vYXVkaW8vbWFjL0NBUmluZ0J1ZmZlci5jcHA6CisgICAgICAgIChXZWJDb3JlOjpDQVJp
bmdCdWZmZXI6OmRlYWxsb2NhdGUpOgorICAgICAgICAqIHBsYXRmb3JtL2dyYXBoaWNzL0ZvbnQu
Y3BwOgorICAgICAgICAoV2ViQ29yZTo6Rm9udDo6bWF0aERhdGEpOgorICAgICAgICAqIHBsYXRm
b3JtL2dyYXBoaWNzL0ZvbnRDYWNoZS5jcHA6CisgICAgICAgIChXZWJDb3JlOjpGb250Q2FjaGU6
OmdldFZlcnRpY2FsRGF0YSk6CisgICAgICAgICogcGxhdGZvcm0vZ3JhcGhpY3MvR3JhcGhpY3ND
b250ZXh0LmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OkdyYXBoaWNzQ29udGV4dDo6c2V0U3Ryb2tl
Q29sb3IpOgorICAgICAgICAoV2ViQ29yZTo6R3JhcGhpY3NDb250ZXh0OjpzZXRGaWxsQ29sb3Ip
OgorICAgICAgICAoV2ViQ29yZTo6R3JhcGhpY3NDb250ZXh0OjpzZXRTdHJva2VQYXR0ZXJuKToK
KyAgICAgICAgKFdlYkNvcmU6OkdyYXBoaWNzQ29udGV4dDo6c2V0RmlsbFBhdHRlcm4pOgorICAg
ICAgICAoV2ViQ29yZTo6R3JhcGhpY3NDb250ZXh0OjpzZXRTdHJva2VHcmFkaWVudCk6CisgICAg
ICAgIChXZWJDb3JlOjpHcmFwaGljc0NvbnRleHQ6OnNldEZpbGxHcmFkaWVudCk6CisgICAgICAg
ICogcGxhdGZvcm0vZ3JhcGhpY3MvY2Fpcm8vQmFja2luZ1N0b3JlQmFja2VuZENhaXJvWDExLmNw
cDoKKyAgICAgICAgKFdlYkNvcmU6OkJhY2tpbmdTdG9yZUJhY2tlbmRDYWlyb1gxMTo6fkJhY2tp
bmdTdG9yZUJhY2tlbmRDYWlyb1gxMSk6CisgICAgICAgICogcGxhdGZvcm0vZ3JhcGhpY3MvY2Fp
cm8vQml0bWFwSW1hZ2VDYWlyby5jcHA6CisgICAgICAgIChXZWJDb3JlOjpGcmFtZURhdGE6OmNs
ZWFyKToKKyAgICAgICAgKiBwbGF0Zm9ybS9ncmFwaGljcy9maWx0ZXJzL0ZpbHRlckVmZmVjdC5j
cHA6CisgICAgICAgIChXZWJDb3JlOjpGaWx0ZXJFZmZlY3Q6OmNsZWFyUmVzdWx0KToKKyAgICAg
ICAgKFdlYkNvcmU6OkZpbHRlckVmZmVjdDo6dHJhbnNmb3JtUmVzdWx0Q29sb3JTcGFjZSk6Cisg
ICAgICAgICogcGxhdGZvcm0vZ3JhcGhpY3MvZ3N0cmVhbWVyL0ltYWdlR1N0cmVhbWVyQ2Fpcm8u
Y3BwOgorICAgICAgICAoSW1hZ2VHU3RyZWFtZXI6On5JbWFnZUdTdHJlYW1lcik6CisgICAgICAg
ICogcGxhdGZvcm0vZ3JhcGhpY3MvdGV4bWFwL0JpdG1hcFRleHR1cmVHTC5jcHA6CisgICAgICAg
IChXZWJDb3JlOjpCaXRtYXBUZXh0dXJlR0w6OmFwcGx5RmlsdGVycyk6CisgICAgICAgICogcGxh
dGZvcm0vZ3JhcGhpY3MvdGV4bWFwL1RleHR1cmVNYXBwZXJHTC5jcHA6CisgICAgICAgIChXZWJD
b3JlOjpUZXh0dXJlTWFwcGVyR0w6OmJpbmREZWZhdWx0U3VyZmFjZSk6CisgICAgICAgICogcGxh
dGZvcm0vZ3JhcGhpY3MvdGV4bWFwL1RleHR1cmVNYXBwZXJMYXllci5jcHA6CisgICAgICAgIChX
ZWJDb3JlOjpUZXh0dXJlTWFwcGVyTGF5ZXI6OnBhaW50V2l0aEludGVybWVkaWF0ZVN1cmZhY2Up
OgorICAgICAgICAqIHBsYXRmb3JtL2dyYXBoaWNzL3RleG1hcC9UZXh0dXJlTWFwcGVyVGlsZWRC
YWNraW5nU3RvcmUuY3BwOgorICAgICAgICAoV2ViQ29yZTo6VGV4dHVyZU1hcHBlclRpbGVkQmFj
a2luZ1N0b3JlOjp1cGRhdGVDb250ZW50c0Zyb21JbWFnZUlmTmVlZGVkKToKKyAgICAgICAgKiBw
bGF0Zm9ybS9ncmFwaGljcy90ZXhtYXAvY29vcmRpbmF0ZWQvQ29vcmRpbmF0ZWRHcmFwaGljc0xh
eWVyLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OkNvb3JkaW5hdGVkR3JhcGhpY3NMYXllcjo6cmVs
ZWFzZUltYWdlQmFja2luZ0lmTmVlZGVkKToKKyAgICAgICAgKiBwbGF0Zm9ybS9ncmFwaGljcy90
ZXhtYXAvY29vcmRpbmF0ZWQvQ29vcmRpbmF0ZWRJbWFnZUJhY2tpbmcuY3BwOgorICAgICAgICAo
V2ViQ29yZTo6Q29vcmRpbmF0ZWRJbWFnZUJhY2tpbmc6OnJlbGVhc2VTdXJmYWNlSWZOZWVkZWQp
OgorICAgICAgICAqIHBsYXRmb3JtL2d0ay9HYW1lcGFkc0d0ay5jcHA6CisgICAgICAgIChXZWJD
b3JlOjpHYW1lcGFkc0d0azo6dW5yZWdpc3RlckRldmljZSk6CisgICAgICAgICogcmVuZGVyaW5n
L0lubGluZUZsb3dCb3guY3BwOgorICAgICAgICAoV2ViQ29yZTo6SW5saW5lRmxvd0JveDo6Y29t
cHV0ZU92ZXJmbG93KToKKyAgICAgICAgKiByZW5kZXJpbmcvUmVuZGVyQm94LmNwcDoKKyAgICAg
ICAgKFdlYkNvcmU6OlJlbmRlckJveDo6Y2xlYXJPdmVyZmxvdyk6CisgICAgICAgICogcmVuZGVy
aW5nL1JlbmRlckJveFJlZ2lvbkluZm8uaDoKKyAgICAgICAgKFdlYkNvcmU6OlJlbmRlckJveFJl
Z2lvbkluZm86OmNsZWFyT3ZlcmZsb3cpOgorICAgICAgICAqIHJlbmRlcmluZy9zdHlsZS9GaWxs
TGF5ZXIuaDoKKyAgICAgICAgKFdlYkNvcmU6OkZpbGxMYXllcjo6Y2xlYXJNYXNrSW1hZ2UpOgor
ICAgICAgICAoV2ViQ29yZTo6RmlsbExheWVyOjpjbGVhckltYWdlKToKKyAgICAgICAgKiBzdmcv
U1ZHVFJlZkVsZW1lbnQuY3BwOgorICAgICAgICAoV2ViQ29yZTo6U1ZHVFJlZlRhcmdldEV2ZW50
TGlzdGVuZXI6OmRldGFjaCk6CisgICAgICAgICogdGVzdGluZy9JbnRlcm5hbHMuY3BwOgorICAg
ICAgICAoV2ViQ29yZTo6SW50ZXJuYWxzOjpjbG9zZUR1bW15SW5zcGVjdG9yRnJvbnRlbmQpOgor
ICAgICAgICAqIHdvcmtlcnMvV29ya2VyRXZlbnRRdWV1ZS5jcHA6CisgICAgICAgIChXZWJDb3Jl
OjpXb3JrZXJFdmVudFF1ZXVlOjpFdmVudERpc3BhdGNoZXI6OmRpc3BhdGNoKToKKyAgICAgICAg
KFdlYkNvcmU6OldvcmtlckV2ZW50UXVldWU6OkV2ZW50RGlzcGF0Y2hlcjo6Y2FuY2VsKToKKyAg
ICAgICAgKiB4bWwvWE1MSHR0cFJlcXVlc3QuY3BwOgorICAgICAgICAoV2ViQ29yZTo6WE1MSHR0
cFJlcXVlc3Q6OnJlc3BvbnNlQmxvYik6CisgICAgICAgIChXZWJDb3JlOjpYTUxIdHRwUmVxdWVz
dDo6cmVzcG9uc2VBcnJheUJ1ZmZlcik6CisgICAgICAgIChXZWJDb3JlOjpYTUxIdHRwUmVxdWVz
dDo6Y2xlYXJSZXNwb25zZUJ1ZmZlcnMpOgorICAgICAgICAqIHhtbC9YU0xUUHJvY2Vzc29yLmNw
cDoKKyAgICAgICAgKFdlYkNvcmU6OlhTTFRQcm9jZXNzb3I6OnJlc2V0KToKKwogMjAxNS0wNy0w
MyAgS3lvdW5nYSBSYSAgPGt5b3VuZ2FAYWx0aWNhc3QuY29tPgogCiAgICAgICAgIE1lbW9yeSBs
ZWFrIGZvciBhIHByb3RlY3RlZCBFbGVtZW50IGhhdmluZyBwZW5kaW5nIGV2ZW50cyBpbiBJbWFn
ZUxvYWRlci4gCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL2luZGV4ZWRkYi9J
REJDdXJzb3IuY3BwIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9pbmRleGVkZGIvSURCQ3Vyc29y
LmNwcAppbmRleCBhMjBlMWUxLi5jNDAxMWRjIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9N
b2R1bGVzL2luZGV4ZWRkYi9JREJDdXJzb3IuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL01vZHVs
ZXMvaW5kZXhlZGRiL0lEQkN1cnNvci5jcHAKQEAgLTI1OSw3ICsyNTksNyBAQCB2b2lkIElEQkN1
cnNvcjo6Y2xvc2UoKQogICAgIG1fdHJhbnNhY3Rpb25Ob3RpZmllci5jdXJzb3JGaW5pc2hlZCgp
OwogICAgIGlmIChtX3JlcXVlc3QpIHsKICAgICAgICAgbV9yZXF1ZXN0LT5maW5pc2hDdXJzb3Io
KTsKLSAgICAgICAgbV9yZXF1ZXN0LmNsZWFyKCk7CisgICAgICAgIG1fcmVxdWVzdCA9IG51bGxw
dHI7CiAgICAgfQogfQogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL2luZGV4
ZWRkYi9JREJEYXRhYmFzZUJhY2tlbmQuY3BwIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9pbmRl
eGVkZGIvSURCRGF0YWJhc2VCYWNrZW5kLmNwcAppbmRleCBmYzIzMTAyLi4wOWU0ZTI3IDEwMDY0
NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL2luZGV4ZWRkYi9JREJEYXRhYmFzZUJhY2tl
bmQuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvaW5kZXhlZGRiL0lEQkRhdGFiYXNl
QmFja2VuZC5jcHAKQEAgLTMzMyw3ICszMzMsNyBAQCB2b2lkIElEQkRhdGFiYXNlQmFja2VuZDo6
dHJhbnNhY3Rpb25GaW5pc2hlZChJREJUcmFuc2FjdGlvbkJhY2tlbmQqIHJhd1RyYW5zYWN0aQog
ICAgIG1fdHJhbnNhY3Rpb25zLnJlbW92ZSh0cmFuc2FjdGlvbi0+aWQoKSk7CiAgICAgaWYgKHRy
YW5zYWN0aW9uLT5tb2RlKCkgPT0gSW5kZXhlZERCOjpUcmFuc2FjdGlvbk1vZGU6OlZlcnNpb25D
aGFuZ2UpIHsKICAgICAgICAgQVNTRVJUKHRyYW5zYWN0aW9uLmdldCgpID09IG1fcnVubmluZ1Zl
cnNpb25DaGFuZ2VUcmFuc2FjdGlvbi5nZXQoKSk7Ci0gICAgICAgIG1fcnVubmluZ1ZlcnNpb25D
aGFuZ2VUcmFuc2FjdGlvbi5jbGVhcigpOworICAgICAgICBtX3J1bm5pbmdWZXJzaW9uQ2hhbmdl
VHJhbnNhY3Rpb24gPSBudWxscHRyOwogICAgIH0KIH0KIApkaWZmIC0tZ2l0IGEvU291cmNlL1dl
YkNvcmUvTW9kdWxlcy9pbmRleGVkZGIvSURCT2JqZWN0U3RvcmUuY3BwIGIvU291cmNlL1dlYkNv
cmUvTW9kdWxlcy9pbmRleGVkZGIvSURCT2JqZWN0U3RvcmUuY3BwCmluZGV4IGU4YmY5ZGQuLmE2
ZDI4MTQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvaW5kZXhlZGRiL0lEQk9i
amVjdFN0b3JlLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL2luZGV4ZWRkYi9JREJP
YmplY3RTdG9yZS5jcHAKQEAgLTMzNyw3ICszMzcsNyBAQCBwcml2YXRlOgogICAgICAgICAgICAg
Ly8gTm93IHRoYXQgd2UgYXJlIGRvbmUgaW5kZXhpbmcsIHRlbGwgdGhlIGJhY2tlbmQgdG8gZ28K
ICAgICAgICAgICAgIC8vIGJhY2sgdG8gcHJvY2Vzc2luZyB0YXNrcyBvZiB0eXBlIE5vcm1hbFRh
c2suCiAgICAgICAgICAgICBtX2RhdGFiYXNlQmFja2VuZC0+c2V0SW5kZXhlc1JlYWR5KG1fdHJh
bnNhY3Rpb25JZCwgbV9vYmplY3RTdG9yZUlkLCBpbmRleElkcyk7Ci0gICAgICAgICAgICBtX2Rh
dGFiYXNlQmFja2VuZC5jbGVhcigpOworICAgICAgICAgICAgbV9kYXRhYmFzZUJhY2tlbmQgPSBu
dWxscHRyOwogICAgICAgICB9CiAKICAgICB9CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9N
b2R1bGVzL2luZGV4ZWRkYi9JREJPcGVuREJSZXF1ZXN0LmNwcCBiL1NvdXJjZS9XZWJDb3JlL01v
ZHVsZXMvaW5kZXhlZGRiL0lEQk9wZW5EQlJlcXVlc3QuY3BwCmluZGV4IDYzNzgwN2UuLjcxNTc5
YjAgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvaW5kZXhlZGRiL0lEQk9wZW5E
QlJlcXVlc3QuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvaW5kZXhlZGRiL0lEQk9w
ZW5EQlJlcXVlc3QuY3BwCkBAIC0xNDIsNyArMTQyLDcgQEAgYm9vbCBJREJPcGVuREJSZXF1ZXN0
OjpkaXNwYXRjaEV2ZW50KFBhc3NSZWZQdHI8RXZlbnQ+IGV2ZW50KQogICAgIC8vIElmIHRoZSBj
b25uZWN0aW9uIGNsb3NlZCBiZXR3ZWVuIG9uVXBncmFkZU5lZWRlZCBhbmQgdGhlIGRlbGl2ZXJ5
IG9mIHRoZSAic3VjY2VzcyIgZXZlbnQsCiAgICAgLy8gYW4gImVycm9yIiBldmVudCBzaG91bGQg
YmUgZmlyZWQgaW5zdGVhZC4KICAgICBpZiAoZXZlbnQtPnR5cGUoKSA9PSBldmVudE5hbWVzKCku
c3VjY2Vzc0V2ZW50ICYmIG1fcmVzdWx0LT50eXBlKCkgPT0gSURCQW55OjpJREJEYXRhYmFzZVR5
cGUgJiYgbV9yZXN1bHQtPmlkYkRhdGFiYXNlKCktPmlzQ2xvc2VQZW5kaW5nKCkpIHsKLSAgICAg
ICAgbV9yZXN1bHQuY2xlYXIoKTsKKyAgICAgICAgbV9yZXN1bHQgPSBudWxscHRyOwogICAgICAg
ICBvbkVycm9yKElEQkRhdGFiYXNlRXJyb3I6OmNyZWF0ZShJREJEYXRhYmFzZUV4Y2VwdGlvbjo6
QWJvcnRFcnJvciwgIlRoZSBjb25uZWN0aW9uIHdhcyBjbG9zZWQuIikpOwogICAgICAgICByZXR1
cm4gZmFsc2U7CiAgICAgfQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9pbmRl
eGVkZGIvSURCUmVxdWVzdC5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL2luZGV4ZWRkYi9J
REJSZXF1ZXN0LmNwcAppbmRleCA5ZTUwMWI0Li44NjRkZTUzIDEwMDY0NAotLS0gYS9Tb3VyY2Uv
V2ViQ29yZS9Nb2R1bGVzL2luZGV4ZWRkYi9JREJSZXF1ZXN0LmNwcAorKysgYi9Tb3VyY2UvV2Vi
Q29yZS9Nb2R1bGVzL2luZGV4ZWRkYi9JREJSZXF1ZXN0LmNwcApAQCAtMTcwLDkgKzE3MCw5IEBA
IHZvaWQgSURCUmVxdWVzdDo6YWJvcnQoKQogICAgIG1fZW5xdWV1ZWRFdmVudHMuY2xlYXIoKTsK
IAogICAgIG1fZXJyb3JDb2RlID0gMDsKLSAgICBtX2Vycm9yLmNsZWFyKCk7CisgICAgbV9lcnJv
ciA9IG51bGxwdHI7CiAgICAgbV9lcnJvck1lc3NhZ2UgPSBTdHJpbmcoKTsKLSAgICBtX3Jlc3Vs
dC5jbGVhcigpOworICAgIG1fcmVzdWx0ID0gbnVsbHB0cjsKICAgICBvbkVycm9yKElEQkRhdGFi
YXNlRXJyb3I6OmNyZWF0ZShJREJEYXRhYmFzZUV4Y2VwdGlvbjo6QWJvcnRFcnJvcikpOwogICAg
IG1fcmVxdWVzdEFib3J0ZWQgPSB0cnVlOwogfQpAQCAtMTk0LDEwICsxOTQsMTAgQEAgdm9pZCBJ
REJSZXF1ZXN0OjpzZXRQZW5kaW5nQ3Vyc29yKFBhc3NSZWZQdHI8SURCQ3Vyc29yPiBjdXJzb3Ip
CiAgICAgQVNTRVJUKGN1cnNvciA9PSBnZXRSZXN1bHRDdXJzb3IoKSk7CiAKICAgICBtX3BlbmRp
bmdDdXJzb3IgPSBjdXJzb3I7Ci0gICAgbV9yZXN1bHQuY2xlYXIoKTsKKyAgICBtX3Jlc3VsdCA9
IG51bGxwdHI7CiAgICAgbV9yZWFkeVN0YXRlID0gUEVORElORzsKICAgICBtX2Vycm9yQ29kZSA9
IDA7Ci0gICAgbV9lcnJvci5jbGVhcigpOworICAgIG1fZXJyb3IgPSBudWxscHRyOwogICAgIG1f
ZXJyb3JNZXNzYWdlID0gU3RyaW5nKCk7CiAgICAgbV90cmFuc2FjdGlvbi0+cmVnaXN0ZXJSZXF1
ZXN0KHRoaXMpOwogfQpAQCAtMjU2LDcgKzI1Niw3IEBAIHZvaWQgSURCUmVxdWVzdDo6b25FcnJv
cihQYXNzUmVmUHRyPElEQkRhdGFiYXNlRXJyb3I+IGVycm9yKQogICAgIG1fZXJyb3JDb2RlID0g
ZXJyb3ItPmNvZGUoKTsKICAgICBtX2Vycm9yTWVzc2FnZSA9IGVycm9yLT5tZXNzYWdlKCk7CiAg
ICAgbV9lcnJvciA9IERPTUVycm9yOjpjcmVhdGUoSURCRGF0YWJhc2VFeGNlcHRpb246OmdldEVy
cm9yTmFtZShlcnJvci0+aWRiQ29kZSgpKSk7Ci0gICAgbV9wZW5kaW5nQ3Vyc29yLmNsZWFyKCk7
CisgICAgbV9wZW5kaW5nQ3Vyc29yID0gbnVsbHB0cjsKICAgICBlbnF1ZXVlRXZlbnQoRXZlbnQ6
OmNyZWF0ZShldmVudE5hbWVzKCkuZXJyb3JFdmVudCwgdHJ1ZSwgdHJ1ZSkpOwogfQogCkBAIC00
MDQsNyArNDA0LDcgQEAgdm9pZCBJREJSZXF1ZXN0OjpvblN1Y2Nlc3NJbnRlcm5hbChjb25zdCBE
ZXByZWNhdGVkOjpTY3JpcHRWYWx1ZSYgdmFsdWUpCiAgICAgbV9yZXN1bHQgPSBJREJBbnk6OmNy
ZWF0ZSh2YWx1ZSk7CiAgICAgaWYgKG1fcGVuZGluZ0N1cnNvcikgewogICAgICAgICBtX3BlbmRp
bmdDdXJzb3ItPmNsb3NlKCk7Ci0gICAgICAgIG1fcGVuZGluZ0N1cnNvci5jbGVhcigpOworICAg
ICAgICBtX3BlbmRpbmdDdXJzb3IgPSBudWxscHRyOwogICAgIH0KICAgICBlbnF1ZXVlRXZlbnQo
Y3JlYXRlU3VjY2Vzc0V2ZW50KCkpOwogfQpAQCAtNTUzLDcgKzU1Myw3IEBAIHZvaWQgSURCUmVx
dWVzdDo6dHJhbnNhY3Rpb25EaWRGaW5pc2hBbmREaXNwYXRjaCgpCiAgICAgQVNTRVJUKG1fdHJh
bnNhY3Rpb24tPmlzVmVyc2lvbkNoYW5nZSgpKTsKICAgICBBU1NFUlQobV9yZWFkeVN0YXRlID09
IERPTkUpOwogICAgIEFTU0VSVChzY3JpcHRFeGVjdXRpb25Db250ZXh0KCkpOwotICAgIG1fdHJh
bnNhY3Rpb24uY2xlYXIoKTsKKyAgICBtX3RyYW5zYWN0aW9uID0gbnVsbHB0cjsKICAgICBtX3Jl
YWR5U3RhdGUgPSBQRU5ESU5HOwogfQogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1
bGVzL2luZGV4ZWRkYi9JREJUcmFuc2FjdGlvbi5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVz
L2luZGV4ZWRkYi9JREJUcmFuc2FjdGlvbi5jcHAKaW5kZXggOTk0OGJjNy4uNmVjMjlmYSAxMDA2
NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9pbmRleGVkZGIvSURCVHJhbnNhY3Rpb24u
Y3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvaW5kZXhlZGRiL0lEQlRyYW5zYWN0aW9u
LmNwcApAQCAtMjQwLDcgKzI0MCw3IEBAIHZvaWQgSURCVHJhbnNhY3Rpb246Ok9wZW5DdXJzb3JO
b3RpZmllcjo6Y3Vyc29yRmluaXNoZWQoKQogICAgIGlmIChtX2N1cnNvcikgewogICAgICAgICBt
X3RyYW5zYWN0aW9uLT51bnJlZ2lzdGVyT3BlbkN1cnNvcihtX2N1cnNvcik7CiAgICAgICAgIG1f
Y3Vyc29yID0gbnVsbHB0cjsKLSAgICAgICAgbV90cmFuc2FjdGlvbi5jbGVhcigpOworICAgICAg
ICBtX3RyYW5zYWN0aW9uID0gbnVsbHB0cjsKICAgICB9CiB9CiAKZGlmZiAtLWdpdCBhL1NvdXJj
ZS9XZWJDb3JlL01vZHVsZXMvbWVkaWFzb3VyY2UvTWVkaWFTb3VyY2UuY3BwIGIvU291cmNlL1dl
YkNvcmUvTW9kdWxlcy9tZWRpYXNvdXJjZS9NZWRpYVNvdXJjZS5jcHAKaW5kZXggOTExNzBhYS4u
YzQwZDZlMyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9tZWRpYXNvdXJjZS9N
ZWRpYVNvdXJjZS5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9tZWRpYXNvdXJjZS9N
ZWRpYVNvdXJjZS5jcHAKQEAgLTM5NCw3ICszOTQsNyBAQCB2b2lkIE1lZGlhU291cmNlOjpzZXRS
ZWFkeVN0YXRlKGNvbnN0IEF0b21pY1N0cmluZyYgc3RhdGUpCiAgICAgTE9HKE1lZGlhU291cmNl
LCAiTWVkaWFTb3VyY2U6OnNldFJlYWR5U3RhdGUoJXApIDogJXMgLT4gJXMiLCB0aGlzLCBvbGRT
dGF0ZS5zdHJpbmcoKS5hc2NpaSgpLmRhdGEoKSwgc3RhdGUuc3RyaW5nKCkuYXNjaWkoKS5kYXRh
KCkpOwogCiAgICAgaWYgKHN0YXRlID09IGNsb3NlZEtleXdvcmQoKSkgewotICAgICAgICBtX3By
aXZhdGUuY2xlYXIoKTsKKyAgICAgICAgbV9wcml2YXRlID0gbnVsbHB0cjsKICAgICAgICAgbV9t
ZWRpYUVsZW1lbnQgPSBudWxscHRyOwogICAgICAgICBtX2R1cmF0aW9uID0gTWVkaWFUaW1lOjpp
bnZhbGlkVGltZSgpOwogICAgIH0KQEAgLTgxMSw3ICs4MTEsNyBAQCB2b2lkIE1lZGlhU291cmNl
OjpzdG9wKCkKICAgICBtX2FzeW5jRXZlbnRRdWV1ZS5jbG9zZSgpOwogICAgIGlmICghaXNDbG9z
ZWQoKSkKICAgICAgICAgc2V0UmVhZHlTdGF0ZShjbG9zZWRLZXl3b3JkKCkpOwotICAgIG1fcHJp
dmF0ZS5jbGVhcigpOworICAgIG1fcHJpdmF0ZSA9IG51bGxwdHI7CiB9CiAKIGJvb2wgTWVkaWFT
b3VyY2U6OmNhblN1c3BlbmRGb3JQYWdlQ2FjaGUoKSBjb25zdApkaWZmIC0tZ2l0IGEvU291cmNl
L1dlYkNvcmUvTW9kdWxlcy9tZWRpYXN0cmVhbS9SVENTZXNzaW9uRGVzY3JpcHRpb25SZXF1ZXN0
SW1wbC5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL21lZGlhc3RyZWFtL1JUQ1Nlc3Npb25E
ZXNjcmlwdGlvblJlcXVlc3RJbXBsLmNwcAppbmRleCBkNzEwZGMxLi4zMDEzMzRkIDEwMDY0NAot
LS0gYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL21lZGlhc3RyZWFtL1JUQ1Nlc3Npb25EZXNjcmlw
dGlvblJlcXVlc3RJbXBsLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL21lZGlhc3Ry
ZWFtL1JUQ1Nlc3Npb25EZXNjcmlwdGlvblJlcXVlc3RJbXBsLmNwcApAQCAtOTcsOCArOTcsOCBA
QCBib29sIFJUQ1Nlc3Npb25EZXNjcmlwdGlvblJlcXVlc3RJbXBsOjpjYW5TdXNwZW5kRm9yUGFn
ZUNhY2hlKCkgY29uc3QKIAogdm9pZCBSVENTZXNzaW9uRGVzY3JpcHRpb25SZXF1ZXN0SW1wbDo6
Y2xlYXIoKQogewotICAgIG1fc3VjY2Vzc0NhbGxiYWNrLmNsZWFyKCk7Ci0gICAgbV9lcnJvckNh
bGxiYWNrLmNsZWFyKCk7CisgICAgbV9zdWNjZXNzQ2FsbGJhY2sgPSBudWxscHRyOworICAgIG1f
ZXJyb3JDYWxsYmFjayA9IG51bGxwdHI7CiB9CiAKIH0gLy8gbmFtZXNwYWNlIFdlYkNvcmUKZGlm
ZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvbWVkaWFzdHJlYW0vUlRDU3RhdHNSZXF1
ZXN0SW1wbC5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL21lZGlhc3RyZWFtL1JUQ1N0YXRz
UmVxdWVzdEltcGwuY3BwCmluZGV4IGRlYjE5YTkuLmQwMDBiMTEgMTAwNjQ0Ci0tLSBhL1NvdXJj
ZS9XZWJDb3JlL01vZHVsZXMvbWVkaWFzdHJlYW0vUlRDU3RhdHNSZXF1ZXN0SW1wbC5jcHAKKysr
IGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9tZWRpYXN0cmVhbS9SVENTdGF0c1JlcXVlc3RJbXBs
LmNwcApAQCAtMTA0LDcgKzEwNCw3IEBAIGJvb2wgUlRDU3RhdHNSZXF1ZXN0SW1wbDo6Y2FuU3Vz
cGVuZEZvclBhZ2VDYWNoZSgpIGNvbnN0CiAKIHZvaWQgUlRDU3RhdHNSZXF1ZXN0SW1wbDo6Y2xl
YXIoKQogewotICAgIG1fc3VjY2Vzc0NhbGxiYWNrLmNsZWFyKCk7CisgICAgbV9zdWNjZXNzQ2Fs
bGJhY2sgPSBudWxscHRyOwogfQogCiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL01vZHVs
ZXMvbWVkaWFzdHJlYW0vUlRDVm9pZFJlcXVlc3RJbXBsLmNwcCBiL1NvdXJjZS9XZWJDb3JlL01v
ZHVsZXMvbWVkaWFzdHJlYW0vUlRDVm9pZFJlcXVlc3RJbXBsLmNwcAppbmRleCA4MmY4YTEyLi43
MDZmOTA3IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL21lZGlhc3RyZWFtL1JU
Q1ZvaWRSZXF1ZXN0SW1wbC5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9tZWRpYXN0
cmVhbS9SVENWb2lkUmVxdWVzdEltcGwuY3BwCkBAIC05NCw4ICs5NCw4IEBAIGJvb2wgUlRDVm9p
ZFJlcXVlc3RJbXBsOjpjYW5TdXNwZW5kRm9yUGFnZUNhY2hlKCkgY29uc3QKIAogdm9pZCBSVENW
b2lkUmVxdWVzdEltcGw6OmNsZWFyKCkKIHsKLSAgICBtX3N1Y2Nlc3NDYWxsYmFjay5jbGVhcigp
OwotICAgIG1fZXJyb3JDYWxsYmFjay5jbGVhcigpOworICAgIG1fc3VjY2Vzc0NhbGxiYWNrID0g
bnVsbHB0cjsKKyAgICBtX2Vycm9yQ2FsbGJhY2sgPSBudWxscHRyOwogfQogCiB9IC8vIG5hbWVz
cGFjZSBXZWJDb3JlCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL3dlYmF1ZGlv
L0F1ZGlvQ29udGV4dC5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL3dlYmF1ZGlvL0F1ZGlv
Q29udGV4dC5jcHAKaW5kZXggNWEzZGVhMC4uZmFhOTk2YiAxMDA2NDQKLS0tIGEvU291cmNlL1dl
YkNvcmUvTW9kdWxlcy93ZWJhdWRpby9BdWRpb0NvbnRleHQuY3BwCisrKyBiL1NvdXJjZS9XZWJD
b3JlL01vZHVsZXMvd2ViYXVkaW8vQXVkaW9Db250ZXh0LmNwcApAQCAtMjMxLDcgKzIzMSw3IEBA
IHZvaWQgQXVkaW9Db250ZXh0OjpjbGVhcigpCiB7CiAgICAgLy8gV2UgaGF2ZSB0byByZWxlYXNl
IG91ciByZWZlcmVuY2UgdG8gdGhlIGRlc3RpbmF0aW9uIG5vZGUgYmVmb3JlIHRoZSBjb250ZXh0
IHdpbGwgZXZlciBiZSBkZWxldGVkIHNpbmNlIHRoZSBkZXN0aW5hdGlvbiBub2RlIGhvbGRzIGEg
cmVmZXJlbmNlIHRvIHRoZSBjb250ZXh0LgogICAgIGlmIChtX2Rlc3RpbmF0aW9uTm9kZSkKLSAg
ICAgICAgbV9kZXN0aW5hdGlvbk5vZGUuY2xlYXIoKTsKKyAgICAgICAgbV9kZXN0aW5hdGlvbk5v
ZGUgPSBudWxscHRyOwogCiAgICAgLy8gQXVkaW8gdGhyZWFkIGlzIGRlYWQuIE5vYm9keSB3aWxs
IHNjaGVkdWxlIG5vZGUgZGVsZXRpb24gYWN0aW9uLiBMZXQncyBkbyBpdCBvdXJzZWx2ZXMuCiAg
ICAgZG8gewpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy93ZWJkYXRhYmFzZS9T
UUxUcmFuc2FjdGlvbkJhY2tlbmQuY3BwIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy93ZWJkYXRh
YmFzZS9TUUxUcmFuc2FjdGlvbkJhY2tlbmQuY3BwCmluZGV4IGRhMjU0YjYuLmQzMTEzODAgMTAw
NjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvd2ViZGF0YWJhc2UvU1FMVHJhbnNhY3Rp
b25CYWNrZW5kLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL3dlYmRhdGFiYXNlL1NR
TFRyYW5zYWN0aW9uQmFja2VuZC5jcHAKQEAgLTg0NSw3ICs4NDUsNyBAQCB2b2lkIFNRTFRyYW5z
YWN0aW9uQmFja2VuZDo6cmVsZWFzZU9yaWdpbkxvY2tJZk5lZWRlZCgpCiB7CiAgICAgaWYgKG1f
b3JpZ2luTG9jaykgewogICAgICAgICBtX29yaWdpbkxvY2stPnVubG9jaygpOwotICAgICAgICBt
X29yaWdpbkxvY2suY2xlYXIoKTsKKyAgICAgICAgbV9vcmlnaW5Mb2NrID0gbnVsbHB0cjsKICAg
ICB9CiB9CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvd2Vic29ja2V0cy9X
b3JrZXJUaHJlYWRhYmxlV2ViU29ja2V0Q2hhbm5lbC5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1
bGVzL3dlYnNvY2tldHMvV29ya2VyVGhyZWFkYWJsZVdlYlNvY2tldENoYW5uZWwuY3BwCmluZGV4
IGJjYmRhZjkuLjM0YjY0ZDcgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvd2Vi
c29ja2V0cy9Xb3JrZXJUaHJlYWRhYmxlV2ViU29ja2V0Q2hhbm5lbC5jcHAKKysrIGIvU291cmNl
L1dlYkNvcmUvTW9kdWxlcy93ZWJzb2NrZXRzL1dvcmtlclRocmVhZGFibGVXZWJTb2NrZXRDaGFu
bmVsLmNwcApAQCAtMTI2LDcgKzEyNiw3IEBAIHZvaWQgV29ya2VyVGhyZWFkYWJsZVdlYlNvY2tl
dENoYW5uZWw6OmZhaWwoY29uc3QgU3RyaW5nJiByZWFzb24pCiB2b2lkIFdvcmtlclRocmVhZGFi
bGVXZWJTb2NrZXRDaGFubmVsOjpkaXNjb25uZWN0KCkKIHsKICAgICBtX2JyaWRnZS0+ZGlzY29u
bmVjdCgpOwotICAgIG1fYnJpZGdlLmNsZWFyKCk7CisgICAgbV9icmlkZ2UgPSBudWxscHRyOwog
fQogCiB2b2lkIFdvcmtlclRocmVhZGFibGVXZWJTb2NrZXRDaGFubmVsOjpzdXNwZW5kKCkKZGlm
ZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL2pzL1NjcmlwdENvbnRyb2xsZXIuY3Bw
IGIvU291cmNlL1dlYkNvcmUvYmluZGluZ3MvanMvU2NyaXB0Q29udHJvbGxlci5jcHAKaW5kZXgg
M2FiZGQyYi4uYzUxOTljZiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvYmluZGluZ3MvanMv
U2NyaXB0Q29udHJvbGxlci5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvYmluZGluZ3MvanMvU2Ny
aXB0Q29udHJvbGxlci5jcHAKQEAgLTEwMiw3ICsxMDIsNyBAQCBTY3JpcHRDb250cm9sbGVyOjp+
U2NyaXB0Q29udHJvbGxlcigpCiAgICAgaWYgKG1fY2FjaGVhYmxlQmluZGluZ1Jvb3RPYmplY3Qp
IHsKICAgICAgICAgSlNMb2NrSG9sZGVyIGxvY2soSlNET01XaW5kb3dCYXNlOjpjb21tb25WTSgp
KTsKICAgICAgICAgbV9jYWNoZWFibGVCaW5kaW5nUm9vdE9iamVjdC0+aW52YWxpZGF0ZSgpOwot
ICAgICAgICBtX2NhY2hlYWJsZUJpbmRpbmdSb290T2JqZWN0ID0gMDsKKyAgICAgICAgbV9jYWNo
ZWFibGVCaW5kaW5nUm9vdE9iamVjdCA9IG51bGxwdHI7CiAgICAgfQogCiAgICAgLy8gSXQncyBs
aWtlbHkgdGhhdCBkZXN0cm95aW5nIG1fd2luZG93U2hlbGxzIHdpbGwgY3JlYXRlIGEgbG90IG9m
IGdhcmJhZ2UuCkBAIC00ODksNyArNDg5LDcgQEAgdm9pZCBTY3JpcHRDb250cm9sbGVyOjpjbGVh
clNjcmlwdE9iamVjdHMoKQogCiAgICAgaWYgKG1fYmluZGluZ1Jvb3RPYmplY3QpIHsKICAgICAg
ICAgbV9iaW5kaW5nUm9vdE9iamVjdC0+aW52YWxpZGF0ZSgpOwotICAgICAgICBtX2JpbmRpbmdS
b290T2JqZWN0ID0gMDsKKyAgICAgICAgbV9iaW5kaW5nUm9vdE9iamVjdCA9IG51bGxwdHI7CiAg
ICAgfQogCiAjaWYgRU5BQkxFKE5FVFNDQVBFX1BMVUdJTl9BUEkpCkBAIC00OTgsNyArNDk4LDcg
QEAgdm9pZCBTY3JpcHRDb250cm9sbGVyOjpjbGVhclNjcmlwdE9iamVjdHMoKQogICAgICAgICAv
LyBzY3JpcHQgb2JqZWN0IHByb3Blcmx5LgogICAgICAgICAvLyBUaGlzIHNob3VsZG4ndCBjYXVz
ZSBhbnkgcHJvYmxlbXMgZm9yIHBsdWdpbnMgc2luY2UgdGhleSBzaG91bGQgaGF2ZSBhbHJlYWR5
IGJlZW4gc3RvcHBlZCBhbmQgZGVzdHJveWVkIGF0IHRoaXMgcG9pbnQuCiAgICAgICAgIF9OUE5f
RGVhbGxvY2F0ZU9iamVjdChtX3dpbmRvd1NjcmlwdE5QT2JqZWN0KTsKLSAgICAgICAgbV93aW5k
b3dTY3JpcHROUE9iamVjdCA9IDA7CisgICAgICAgIG1fd2luZG93U2NyaXB0TlBPYmplY3QgPSBu
dWxscHRyOwogICAgIH0KICNlbmRpZgogfQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvYmlu
ZGluZ3MvanMvV2ViQ29yZUpTQ2xpZW50RGF0YS5oIGIvU291cmNlL1dlYkNvcmUvYmluZGluZ3Mv
anMvV2ViQ29yZUpTQ2xpZW50RGF0YS5oCmluZGV4IDY1NDUxMzMuLjQzMDJkNjggMTAwNjQ0Ci0t
LSBhL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL2pzL1dlYkNvcmVKU0NsaWVudERhdGEuaAorKysg
Yi9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9qcy9XZWJDb3JlSlNDbGllbnREYXRhLmgKQEAgLTQ0
LDcgKzQ0LDcgQEAgcHVibGljOgogICAgICAgICBBU1NFUlQobV93b3JsZFNldC5jb250YWlucyht
X25vcm1hbFdvcmxkLmdldCgpKSk7CiAgICAgICAgIEFTU0VSVChtX3dvcmxkU2V0LnNpemUoKSA9
PSAxKTsKICAgICAgICAgQVNTRVJUKG1fbm9ybWFsV29ybGQtPmhhc09uZVJlZigpKTsKLSAgICAg
ICAgbV9ub3JtYWxXb3JsZC5jbGVhcigpOworICAgICAgICBtX25vcm1hbFdvcmxkID0gbnVsbHB0
cjsKICAgICAgICAgQVNTRVJUKG1fd29ybGRTZXQuaXNFbXB0eSgpKTsKICAgICB9CiAKZGlmZiAt
LWdpdCBhL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL2pzL1dvcmtlclNjcmlwdENvbnRyb2xsZXIu
Y3BwIGIvU291cmNlL1dlYkNvcmUvYmluZGluZ3MvanMvV29ya2VyU2NyaXB0Q29udHJvbGxlci5j
cHAKaW5kZXggOTBlMGZmNS4uMjhjOWVmMCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvYmlu
ZGluZ3MvanMvV29ya2VyU2NyaXB0Q29udHJvbGxlci5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUv
YmluZGluZ3MvanMvV29ya2VyU2NyaXB0Q29udHJvbGxlci5jcHAKQEAgLTYyLDcgKzYyLDcgQEAg
V29ya2VyU2NyaXB0Q29udHJvbGxlcjo6fldvcmtlclNjcmlwdENvbnRyb2xsZXIoKQogewogICAg
IEpTTG9ja0hvbGRlciBsb2NrKHZtKCkpOwogICAgIG1fd29ya2VyR2xvYmFsU2NvcGVXcmFwcGVy
LmNsZWFyKCk7Ci0gICAgbV92bS5jbGVhcigpOworICAgIG1fdm0gPSBudWxscHRyOwogfQogCiB2
b2lkIFdvcmtlclNjcmlwdENvbnRyb2xsZXI6OmluaXRTY3JpcHQoKQpkaWZmIC0tZ2l0IGEvU291
cmNlL1dlYkNvcmUvYnJpZGdlL3J1bnRpbWVfb2JqZWN0LmNwcCBiL1NvdXJjZS9XZWJDb3JlL2Jy
aWRnZS9ydW50aW1lX29iamVjdC5jcHAKaW5kZXggOTFmMDdiYy4uNWQwZmE0ZiAxMDA2NDQKLS0t
IGEvU291cmNlL1dlYkNvcmUvYnJpZGdlL3J1bnRpbWVfb2JqZWN0LmNwcAorKysgYi9Tb3VyY2Uv
V2ViQ29yZS9icmlkZ2UvcnVudGltZV9vYmplY3QuY3BwCkBAIC01OSw3ICs1OSw3IEBAIHZvaWQg
UnVudGltZU9iamVjdDo6aW52YWxpZGF0ZSgpCiAgICAgQVNTRVJUKG1faW5zdGFuY2UpOwogICAg
IGlmIChtX2luc3RhbmNlKQogICAgICAgICBtX2luc3RhbmNlLT53aWxsSW52YWxpZGF0ZVJ1bnRp
bWVPYmplY3QoKTsKLSAgICBtX2luc3RhbmNlID0gMDsKKyAgICBtX2luc3RhbmNlID0gbnVsbHB0
cjsKIH0KIAogRW5jb2RlZEpTVmFsdWUgUnVudGltZU9iamVjdDo6ZmFsbGJhY2tPYmplY3RHZXR0
ZXIoRXhlY1N0YXRlKiBleGVjLCBKU09iamVjdCogc2xvdEJhc2UsIEVuY29kZWRKU1ZhbHVlLCBQ
cm9wZXJ0eU5hbWUgcHJvcGVydHlOYW1lKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvY29u
dGVudGV4dGVuc2lvbnMvQ29udGVudEV4dGVuc2lvblBhcnNlci5jcHAgYi9Tb3VyY2UvV2ViQ29y
ZS9jb250ZW50ZXh0ZW5zaW9ucy9Db250ZW50RXh0ZW5zaW9uUGFyc2VyLmNwcAppbmRleCAwMjI2
NTJiLi43YmY1NmU3IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9jb250ZW50ZXh0ZW5zaW9u
cy9Db250ZW50RXh0ZW5zaW9uUGFyc2VyLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9jb250ZW50
ZXh0ZW5zaW9ucy9Db250ZW50RXh0ZW5zaW9uUGFyc2VyLmNwcApAQCAtMjc3LDcgKzI3Nyw3IEBA
IHN0ZDo6ZXJyb3JfY29kZSBwYXJzZVJ1bGVMaXN0KGNvbnN0IFN0cmluZyYgcnVsZXMsIFZlY3Rv
cjxDb250ZW50RXh0ZW5zaW9uUnVsZT4mCiAgICAgRXhlY1N0YXRlKiBleGVjID0gZ2xvYmFsT2Jq
ZWN0LT5nbG9iYWxFeGVjKCk7CiAgICAgYXV0byBlcnJvciA9IGxvYWRFbmNvZGVkUnVsZXMoKmV4
ZWMsIHJ1bGVzLCBydWxlTGlzdCk7CiAKLSAgICB2bS5jbGVhcigpOworICAgIHZtID0gbnVsbHB0
cjsKIAogICAgIGlmIChlcnJvcikKICAgICAgICAgcmV0dXJuIGVycm9yOwpkaWZmIC0tZ2l0IGEv
U291cmNlL1dlYkNvcmUvY3NzL0NTU1BhcnNlci5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9jc3MvQ1NT
UGFyc2VyLmNwcAppbmRleCA1ZThmMDVjLi45Y2MzMDhiIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2Vi
Q29yZS9jc3MvQ1NTUGFyc2VyLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9jc3MvQ1NTUGFyc2Vy
LmNwcApAQCAtNDUwMiwxNSArNDUwMiwxNSBAQCB2b2lkIENTU1BhcnNlcjo6cGFyc2VGaWxsUG9z
aXRpb24oQ1NTUGFyc2VyVmFsdWVMaXN0JiB2YWx1ZUxpc3QsIFJlZlB0cjxDU1NWYWx1ZQogICAg
IGlmICh2YWx1ZTIpCiAgICAgICAgIHZhbHVlTGlzdC5uZXh0KCk7CiAgICAgZWxzZSB7Ci0gICAg
ICAgIHZhbHVlMS5jbGVhcigpOworICAgICAgICB2YWx1ZTEgPSBudWxscHRyOwogICAgICAgICBy
ZXR1cm47CiAgICAgfQogCiAgICAgUmVmUHRyPENTU1ByaW1pdGl2ZVZhbHVlPiBwYXJzZWRWYWx1
ZTEgPSBkb3duY2FzdDxDU1NQcmltaXRpdmVWYWx1ZT4odmFsdWUxLmdldCgpKTsKICAgICBSZWZQ
dHI8Q1NTUHJpbWl0aXZlVmFsdWU+IHBhcnNlZFZhbHVlMiA9IGRvd25jYXN0PENTU1ByaW1pdGl2
ZVZhbHVlPih2YWx1ZTIuZ2V0KCkpOwogCi0gICAgdmFsdWUxLmNsZWFyKCk7Ci0gICAgdmFsdWUy
LmNsZWFyKCk7CisgICAgdmFsdWUxID0gbnVsbHB0cjsKKyAgICB2YWx1ZTIgPSBudWxscHRyOwog
CiAgICAgLy8gUGVyIENTUzMgc3ludGF4LCA8cG9zaXRpb24+IGNhbid0IGhhdmUgJ2NlbnRlcicg
YXMgaXRzIHNlY29uZCBrZXl3b3JkIGFzIHdlIGhhdmUgbW9yZSBhcmd1bWVudHMgdG8gZm9sbG93
LgogICAgIGlmIChwYXJzZWRWYWx1ZTItPmdldFZhbHVlSUQoKSA9PSBDU1NWYWx1ZUNlbnRlcikK
QEAgLTQ1NDksNyArNDU0OSw3IEBAIHZvaWQgQ1NTUGFyc2VyOjpwYXJzZTJWYWx1ZXNGaWxsUG9z
aXRpb24oQ1NTUGFyc2VyVmFsdWVMaXN0JiB2YWx1ZUxpc3QsIFJlZlB0cjxDCiAgICAgICAgICAg
ICB2YWx1ZUxpc3QubmV4dCgpOwogICAgICAgICBlbHNlIHsKICAgICAgICAgICAgIGlmICghaW5T
aG9ydGhhbmQoKSkgewotICAgICAgICAgICAgICAgIHZhbHVlMS5jbGVhcigpOworICAgICAgICAg
ICAgICAgIHZhbHVlMSA9IG51bGxwdHI7CiAgICAgICAgICAgICAgICAgcmV0dXJuOwogICAgICAg
ICAgICAgfQogICAgICAgICB9CkBAIC03NTg3LDggKzc1ODcsOCBAQCBzdHJ1Y3QgU2hhZG93UGFy
c2VDb250ZXh0IHsKICAgICAgICAgfQogCiAgICAgICAgIC8vIE5vdyByZXNldCBmb3IgdGhlIG5l
eHQgc2hhZG93IHZhbHVlLgotICAgICAgICB4ID0gMDsKLSAgICAgICAgeSA9IDA7CisgICAgICAg
IHggPSBudWxscHRyOworICAgICAgICB5ID0gbnVsbHB0cjsKICAgICAgICAgYmx1ciA9IG51bGxw
dHI7CiAgICAgICAgIHNwcmVhZCA9IG51bGxwdHI7CiAgICAgICAgIHN0eWxlID0gbnVsbHB0cjsK
QEAgLTEyMTg0LDcgKzEyMTg0LDcgQEAgUGFzc1JlZlB0cjxDU1NSdWxlU291cmNlRGF0YT4gQ1NT
UGFyc2VyOjpwb3BSdWxlRGF0YSgpCiAgICAgICAgIHJldHVybiBudWxscHRyOwogCiAgICAgQVNT
RVJUKCFtX2N1cnJlbnRSdWxlRGF0YVN0YWNrLT5pc0VtcHR5KCkpOwotICAgIG1fY3VycmVudFJ1
bGVEYXRhLmNsZWFyKCk7CisgICAgbV9jdXJyZW50UnVsZURhdGEgPSBudWxscHRyOwogICAgIFJl
ZlB0cjxDU1NSdWxlU291cmNlRGF0YT4gZGF0YSA9IG1fY3VycmVudFJ1bGVEYXRhU3RhY2stPmxh
c3QoKTsKICAgICBtX2N1cnJlbnRSdWxlRGF0YVN0YWNrLT5yZW1vdmVMYXN0KCk7CiAgICAgcmV0
dXJuIGRhdGEucmVsZWFzZSgpOwpAQCAtMTI2MDUsNyArMTI2MDUsNyBAQCB2b2lkIENTU1BhcnNl
cjo6bWFya1J1bGVCb2R5U3RhcnQoKQogewogICAgIGlmICghaXNFeHRyYWN0aW5nU291cmNlRGF0
YSgpKQogICAgICAgICByZXR1cm47Ci0gICAgbV9jdXJyZW50UnVsZURhdGEuY2xlYXIoKTsKKyAg
ICBtX2N1cnJlbnRSdWxlRGF0YSA9IG51bGxwdHI7CiAgICAgdW5zaWduZWQgb2Zmc2V0ID0gdG9r
ZW5TdGFydE9mZnNldCgpOwogICAgIGlmICh0b2tlblN0YXJ0Q2hhcigpID09ICd7JykKICAgICAg
ICAgKytvZmZzZXQ7IC8vIFNraXAgdGhlIHJ1bGUgYm9keSBvcGVuaW5nIGJyYWNlLgpkaWZmIC0t
Z2l0IGEvU291cmNlL1dlYkNvcmUvY3NzL0NTU1ZhbHVlUG9vbC5jcHAgYi9Tb3VyY2UvV2ViQ29y
ZS9jc3MvQ1NTVmFsdWVQb29sLmNwcAppbmRleCAxZjQxMzExLi5hZTNlMGZkIDEwMDY0NAotLS0g
YS9Tb3VyY2UvV2ViQ29yZS9jc3MvQ1NTVmFsdWVQb29sLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29y
ZS9jc3MvQ1NTVmFsdWVQb29sLmNwcApAQCAtMTUzLDEyICsxNTMsMTIgQEAgdm9pZCBDU1NWYWx1
ZVBvb2w6OmRyYWluKCkKICAgICBtX2ZvbnRGYW1pbHlWYWx1ZUNhY2hlLmNsZWFyKCk7CiAKICAg
ICBmb3IgKGludCBpID0gMDsgaSA8IG51bUNTU1ZhbHVlS2V5d29yZHM7ICsraSkKLSAgICAgICAg
bV9pZGVudGlmaWVyVmFsdWVDYWNoZVtpXSA9IDA7CisgICAgICAgIG1faWRlbnRpZmllclZhbHVl
Q2FjaGVbaV0gPSBudWxscHRyOwogCiAgICAgZm9yIChpbnQgaSA9IDA7IGkgPCBtYXhpbXVtQ2Fj
aGVhYmxlSW50ZWdlclZhbHVlOyArK2kpIHsKLSAgICAgICAgbV9waXhlbFZhbHVlQ2FjaGVbaV0g
PSAwOwotICAgICAgICBtX3BlcmNlbnRWYWx1ZUNhY2hlW2ldID0gMDsKLSAgICAgICAgbV9udW1i
ZXJWYWx1ZUNhY2hlW2ldID0gMDsKKyAgICAgICAgbV9waXhlbFZhbHVlQ2FjaGVbaV0gPSBudWxs
cHRyOworICAgICAgICBtX3BlcmNlbnRWYWx1ZUNhY2hlW2ldID0gbnVsbHB0cjsKKyAgICAgICAg
bV9udW1iZXJWYWx1ZUNhY2hlW2ldID0gbnVsbHB0cjsKICAgICB9CiB9CiAKZGlmZiAtLWdpdCBh
L1NvdXJjZS9XZWJDb3JlL2Nzcy9TdHlsZVByb3BlcnRpZXMuY3BwIGIvU291cmNlL1dlYkNvcmUv
Y3NzL1N0eWxlUHJvcGVydGllcy5jcHAKaW5kZXggYjkwOTA4ZC4uZGVkZDA3MCAxMDA2NDQKLS0t
IGEvU291cmNlL1dlYkNvcmUvY3NzL1N0eWxlUHJvcGVydGllcy5jcHAKKysrIGIvU291cmNlL1dl
YkNvcmUvY3NzL1N0eWxlUHJvcGVydGllcy5jcHAKQEAgLTM5Nyw5ICszOTcsOSBAQCBTdHJpbmcg
U3R5bGVQcm9wZXJ0aWVzOjpnZXRMYXllcmVkU2hvcnRoYW5kVmFsdWUoY29uc3QgU3R5bGVQcm9w
ZXJ0eVNob3J0aGFuZCYgcwogICAgICAgICAgICAgICAgICAgICAvLyBDb2xvciBvbmx5IGJlbG9u
Z3MgaW4gdGhlIGxhc3QgbGF5ZXIuCiAgICAgICAgICAgICAgICAgICAgIGlmIChzaG9ydGhhbmQu
cHJvcGVydGllcygpW2pdID09IENTU1Byb3BlcnR5QmFja2dyb3VuZENvbG9yKSB7CiAgICAgICAg
ICAgICAgICAgICAgICAgICBpZiAoaSAhPSBudW1MYXllcnMgLSAxKQotICAgICAgICAgICAgICAg
ICAgICAgICAgICAgIHZhbHVlID0gMDsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICB2YWx1
ZSA9IG51bGxwdHI7CiAgICAgICAgICAgICAgICAgICAgIH0gZWxzZSBpZiAoaSkgLy8gT3RoZXIg
c2luZ2xldG9ucyBvbmx5IGJlbG9uZyBpbiB0aGUgZmlyc3QgbGF5ZXIuCi0gICAgICAgICAgICAg
ICAgICAgICAgICB2YWx1ZSA9IDA7CisgICAgICAgICAgICAgICAgICAgICAgICB2YWx1ZSA9IG51
bGxwdHI7CiAgICAgICAgICAgICAgICAgfQogICAgICAgICAgICAgfQogCmRpZmYgLS1naXQgYS9T
b3VyY2UvV2ViQ29yZS9kb20vRG9jdW1lbnQuY3BwIGIvU291cmNlL1dlYkNvcmUvZG9tL0RvY3Vt
ZW50LmNwcAppbmRleCBlNTAyNjY5Li5mNjQwYjdjIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29y
ZS9kb20vRG9jdW1lbnQuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2RvbS9Eb2N1bWVudC5jcHAK
QEAgLTI0MjQsNyArMjQyNCw3IEBAIHZvaWQgRG9jdW1lbnQ6OmRldGFjaFBhcnNlcigpCiAgICAg
aWYgKCFtX3BhcnNlcikKICAgICAgICAgcmV0dXJuOwogICAgIG1fcGFyc2VyLT5kZXRhY2goKTsK
LSAgICBtX3BhcnNlci5jbGVhcigpOworICAgIG1fcGFyc2VyID0gbnVsbHB0cjsKIH0KIAogdm9p
ZCBEb2N1bWVudDo6Y2FuY2VsUGFyc2luZygpCkBAIC01ODgyLDcgKzU4ODIsNyBAQCB2b2lkIERv
Y3VtZW50OjpjbGVhclNjcmlwdGVkQW5pbWF0aW9uQ29udHJvbGxlcigpCiAgICAgLy8gRklYTUU6
IGNvbnNpZGVyIHVzaW5nIEFjdGl2ZURPTU9iamVjdC4KICAgICBpZiAobV9zY3JpcHRlZEFuaW1h
dGlvbkNvbnRyb2xsZXIpCiAgICAgICAgIG1fc2NyaXB0ZWRBbmltYXRpb25Db250cm9sbGVyLT5j
bGVhckRvY3VtZW50UG9pbnRlcigpOwotICAgIG1fc2NyaXB0ZWRBbmltYXRpb25Db250cm9sbGVy
LmNsZWFyKCk7CisgICAgbV9zY3JpcHRlZEFuaW1hdGlvbkNvbnRyb2xsZXIgPSBudWxscHRyOwog
fQogI2VuZGlmCiAgICAgCkBAIC02MzAwLDcgKzYzMDAsNyBAQCB2b2lkIERvY3VtZW50Ojp1cGRh
dGVIb3ZlckFjdGl2ZVN0YXRlKGNvbnN0IEhpdFRlc3RSZXF1ZXN0JiByZXF1ZXN0LCBFbGVtZW50
KiBpbgogICAgICAgICAgICAgY3Vyci0+c2V0QWN0aXZlKGZhbHNlKTsKICAgICAgICAgICAgIG1f
dXNlckFjdGlvbkVsZW1lbnRzLnNldEluQWN0aXZlQ2hhaW4oY3VyciwgZmFsc2UpOwogICAgICAg
ICB9Ci0gICAgICAgIG1fYWN0aXZlRWxlbWVudC5jbGVhcigpOworICAgICAgICBtX2FjdGl2ZUVs
ZW1lbnQgPSBudWxscHRyOwogICAgIH0gZWxzZSB7CiAgICAgICAgIEVsZW1lbnQqIG5ld0FjdGl2
ZUVsZW1lbnQgPSBpbm5lckVsZW1lbnRJbkRvY3VtZW50OwogICAgICAgICBpZiAoIW9sZEFjdGl2
ZUVsZW1lbnQgJiYgbmV3QWN0aXZlRWxlbWVudCAmJiByZXF1ZXN0LmFjdGl2ZSgpICYmICFyZXF1
ZXN0LnRvdWNoTW92ZSgpKSB7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9kb20vRG9jdW1l
bnRNYXJrZXIuaCBiL1NvdXJjZS9XZWJDb3JlL2RvbS9Eb2N1bWVudE1hcmtlci5oCmluZGV4IDQ3
OTQ5ZmUuLmVjNTI0ODkgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2RvbS9Eb2N1bWVudE1h
cmtlci5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL2RvbS9Eb2N1bWVudE1hcmtlci5oCkBAIC0xMzEs
NyArMTMxLDcgQEAgcHVibGljOgogICAgIERvY3VtZW50TWFya2VyRGV0YWlscyogZGV0YWlscygp
IGNvbnN0OwogCiAgICAgdm9pZCBzZXRBY3RpdmVNYXRjaChib29sKTsKLSAgICB2b2lkIGNsZWFy
RGV0YWlscygpIHsgbV9kZXRhaWxzLmNsZWFyKCk7IH0KKyAgICB2b2lkIGNsZWFyRGV0YWlscygp
IHsgbV9kZXRhaWxzID0gbnVsbHB0cjsgfQogCiAgICAgLy8gT2Zmc2V0IG1vZGlmaWNhdGlvbnMg
YXJlIGRvbmUgYnkgRG9jdW1lbnRNYXJrZXJDb250cm9sbGVyLgogICAgIC8vIE90aGVyIGNsYXNz
ZXMgc2hvdWxkIG5vdCBjYWxsIGZvbGxvd2luZyBzZXR0ZXJzLgpkaWZmIC0tZ2l0IGEvU291cmNl
L1dlYkNvcmUvZG9tL0RvY3VtZW50U3R5bGVTaGVldENvbGxlY3Rpb24uY3BwIGIvU291cmNlL1dl
YkNvcmUvZG9tL0RvY3VtZW50U3R5bGVTaGVldENvbGxlY3Rpb24uY3BwCmluZGV4IDFjYmJlODUu
LjMyMmFjODQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2RvbS9Eb2N1bWVudFN0eWxlU2hl
ZXRDb2xsZWN0aW9uLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9kb20vRG9jdW1lbnRTdHlsZVNo
ZWV0Q29sbGVjdGlvbi5jcHAKQEAgLTEwNCw3ICsxMDQsNyBAQCBDU1NTdHlsZVNoZWV0KiBEb2N1
bWVudFN0eWxlU2hlZXRDb2xsZWN0aW9uOjpwYWdlVXNlclNoZWV0KCkKIHZvaWQgRG9jdW1lbnRT
dHlsZVNoZWV0Q29sbGVjdGlvbjo6Y2xlYXJQYWdlVXNlclNoZWV0KCkKIHsKICAgICBpZiAobV9w
YWdlVXNlclNoZWV0KSB7Ci0gICAgICAgIG1fcGFnZVVzZXJTaGVldCA9IDA7CisgICAgICAgIG1f
cGFnZVVzZXJTaGVldCA9IG51bGxwdHI7CiAgICAgICAgIG1fZG9jdW1lbnQuc3R5bGVSZXNvbHZl
ckNoYW5nZWQoRGVmZXJSZWNhbGNTdHlsZSk7CiAgICAgfQogfQpkaWZmIC0tZ2l0IGEvU291cmNl
L1dlYkNvcmUvZG9tL0VsZW1lbnQuY3BwIGIvU291cmNlL1dlYkNvcmUvZG9tL0VsZW1lbnQuY3Bw
CmluZGV4IGJlODg0ZWIuLjZjOGM5ZTEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2RvbS9F
bGVtZW50LmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9kb20vRWxlbWVudC5jcHAKQEAgLTMyMDcs
NyArMzIwNyw3IEBAIHZvaWQgRWxlbWVudDo6Y2xvbmVBdHRyaWJ1dGVzRnJvbUVsZW1lbnQoY29u
c3QgRWxlbWVudCYgb3RoZXIpCiAKICAgICBvdGhlci5zeW5jaHJvbml6ZUFsbEF0dHJpYnV0ZXMo
KTsKICAgICBpZiAoIW90aGVyLm1fZWxlbWVudERhdGEpIHsKLSAgICAgICAgbV9lbGVtZW50RGF0
YS5jbGVhcigpOworICAgICAgICBtX2VsZW1lbnREYXRhID0gbnVsbHB0cjsKICAgICAgICAgcmV0
dXJuOwogICAgIH0KIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvZG9tL011dGF0aW9uT2Jz
ZXJ2ZXJSZWdpc3RyYXRpb24uY3BwIGIvU291cmNlL1dlYkNvcmUvZG9tL011dGF0aW9uT2JzZXJ2
ZXJSZWdpc3RyYXRpb24uY3BwCmluZGV4IDQ0ZThmNzAuLjcwYTMxZGUgMTAwNjQ0Ci0tLSBhL1Nv
dXJjZS9XZWJDb3JlL2RvbS9NdXRhdGlvbk9ic2VydmVyUmVnaXN0cmF0aW9uLmNwcAorKysgYi9T
b3VyY2UvV2ViQ29yZS9kb20vTXV0YXRpb25PYnNlcnZlclJlZ2lzdHJhdGlvbi5jcHAKQEAgLTg5
LDcgKzg5LDcgQEAgdm9pZCBNdXRhdGlvbk9ic2VydmVyUmVnaXN0cmF0aW9uOjpjbGVhclRyYW5z
aWVudFJlZ2lzdHJhdGlvbnMoKQogICAgIG1fdHJhbnNpZW50UmVnaXN0cmF0aW9uTm9kZXMgPSBu
dWxscHRyOwogCiAgICAgQVNTRVJUKG1fcmVnaXN0cmF0aW9uTm9kZUtlZXBBbGl2ZSk7Ci0gICAg
bV9yZWdpc3RyYXRpb25Ob2RlS2VlcEFsaXZlID0gMDsgLy8gQmFsYW5jZWQgaW4gb2JzZXJ2ZVN1
YnRyZWVOb2RlV2lsbERldGFjaC4KKyAgICBtX3JlZ2lzdHJhdGlvbk5vZGVLZWVwQWxpdmUgPSBu
dWxscHRyOyAvLyBCYWxhbmNlZCBpbiBvYnNlcnZlU3VidHJlZU5vZGVXaWxsRGV0YWNoLgogfQog
CiB2b2lkIE11dGF0aW9uT2JzZXJ2ZXJSZWdpc3RyYXRpb246OnVucmVnaXN0ZXJBbmREZWxldGUo
TXV0YXRpb25PYnNlcnZlclJlZ2lzdHJhdGlvbiogcmVnaXN0cnkpCmRpZmYgLS1naXQgYS9Tb3Vy
Y2UvV2ViQ29yZS9kb20vTm9kZUl0ZXJhdG9yLmNwcCBiL1NvdXJjZS9XZWJDb3JlL2RvbS9Ob2Rl
SXRlcmF0b3IuY3BwCmluZGV4IDU4YjJiOWYuLjYxYWUyOGYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9X
ZWJDb3JlL2RvbS9Ob2RlSXRlcmF0b3IuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2RvbS9Ob2Rl
SXRlcmF0b3IuY3BwCkBAIC00NSw3ICs0NSw3IEBAIE5vZGVJdGVyYXRvcjo6Tm9kZVBvaW50ZXI6
Ok5vZGVQb2ludGVyKFBhc3NSZWZQdHI8Tm9kZT4gbiwgYm9vbCBiKQogCiB2b2lkIE5vZGVJdGVy
YXRvcjo6Tm9kZVBvaW50ZXI6OmNsZWFyKCkKIHsKLSAgICBub2RlLmNsZWFyKCk7CisgICAgbm9k
ZSA9IG51bGxwdHI7CiB9CiAKIGJvb2wgTm9kZUl0ZXJhdG9yOjpOb2RlUG9pbnRlcjo6bW92ZVRv
TmV4dChOb2RlKiByb290KQpAQCAtMTUxLDcgKzE1MSw3IEBAIHZvaWQgTm9kZUl0ZXJhdG9yOjpk
ZXRhY2goKQogewogICAgIHJvb3QoKS0+ZG9jdW1lbnQoKS5kZXRhY2hOb2RlSXRlcmF0b3IodGhp
cyk7CiAgICAgbV9kZXRhY2hlZCA9IHRydWU7Ci0gICAgbV9yZWZlcmVuY2VOb2RlLm5vZGUuY2xl
YXIoKTsKKyAgICBtX3JlZmVyZW5jZU5vZGUubm9kZSA9IG51bGxwdHI7CiB9CiAKIHZvaWQgTm9k
ZUl0ZXJhdG9yOjpub2RlV2lsbEJlUmVtb3ZlZChOb2RlJiByZW1vdmVkTm9kZSkKZGlmZiAtLWdp
dCBhL1NvdXJjZS9XZWJDb3JlL2RvbS9Qb3NpdGlvbi5oIGIvU291cmNlL1dlYkNvcmUvZG9tL1Bv
c2l0aW9uLmgKaW5kZXggMGYzMTZkYS4uNjAzZTg4ZiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNv
cmUvZG9tL1Bvc2l0aW9uLmgKKysrIGIvU291cmNlL1dlYkNvcmUvZG9tL1Bvc2l0aW9uLmgKQEAg
LTkyLDcgKzkyLDcgQEAgcHVibGljOgogCiAgICAgQW5jaG9yVHlwZSBhbmNob3JUeXBlKCkgY29u
c3QgeyByZXR1cm4gc3RhdGljX2Nhc3Q8QW5jaG9yVHlwZT4obV9hbmNob3JUeXBlKTsgfQogCi0g
ICAgdm9pZCBjbGVhcigpIHsgbV9hbmNob3JOb2RlLmNsZWFyKCk7IG1fb2Zmc2V0ID0gMDsgbV9h
bmNob3JUeXBlID0gUG9zaXRpb25Jc09mZnNldEluQW5jaG9yOyBtX2lzTGVnYWN5RWRpdGluZ1Bv
c2l0aW9uID0gZmFsc2U7IH0KKyAgICB2b2lkIGNsZWFyKCkgeyBtX2FuY2hvck5vZGUgPSBudWxs
cHRyOyBtX29mZnNldCA9IDA7IG1fYW5jaG9yVHlwZSA9IFBvc2l0aW9uSXNPZmZzZXRJbkFuY2hv
cjsgbV9pc0xlZ2FjeUVkaXRpbmdQb3NpdGlvbiA9IGZhbHNlOyB9CiAKICAgICAvLyBUaGVzZSBh
cmUgYWx3YXlzIERPTSBjb21wbGlhbnQgdmFsdWVzLiAgRWRpdGluZyBwb3NpdGlvbnMgbGlrZSBb
aW1nLCAwXSAoYWthIFtpbWcsIGJlZm9yZV0pCiAgICAgLy8gd2lsbCByZXR1cm4gaW1nLT5wYXJl
bnROb2RlKCkgYW5kIGltZy0+Y29tcHV0ZU5vZGVJbmRleCgpIGZyb20gdGhlc2UgZnVuY3Rpb25z
LgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvZG9tL1Byb2Nlc3NpbmdJbnN0cnVjdGlvbi5j
cHAgYi9Tb3VyY2UvV2ViQ29yZS9kb20vUHJvY2Vzc2luZ0luc3RydWN0aW9uLmNwcAppbmRleCAz
ZWNiNjQ2Li5iMzQzY2EzIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9kb20vUHJvY2Vzc2lu
Z0luc3RydWN0aW9uLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9kb20vUHJvY2Vzc2luZ0luc3Ry
dWN0aW9uLmNwcApAQCAtMjgxLDcgKzI4MSw3IEBAIHZvaWQgUHJvY2Vzc2luZ0luc3RydWN0aW9u
OjpyZW1vdmVkRnJvbShDb250YWluZXJOb2RlJiBpbnNlcnRpb25Qb2ludCkKICAgICBpZiAobV9z
aGVldCkgewogICAgICAgICBBU1NFUlQobV9zaGVldC0+b3duZXJOb2RlKCkgPT0gdGhpcyk7CiAg
ICAgICAgIG1fc2hlZXQtPmNsZWFyT3duZXJOb2RlKCk7Ci0gICAgICAgIG1fc2hlZXQgPSAwOwor
ICAgICAgICBtX3NoZWV0ID0gbnVsbHB0cjsKICAgICB9CiAKICAgICAvLyBJZiB3ZSdyZSBpbiBk
b2N1bWVudCB0ZWFyZG93biwgdGhlbiB3ZSBkb24ndCBuZWVkIHRvIGRvIGFueSBub3RpZmljYXRp
b24gb2Ygb3VyIHNoZWV0J3MgcmVtb3ZhbC4KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2Rv
bS9SYW5nZUJvdW5kYXJ5UG9pbnQuaCBiL1NvdXJjZS9XZWJDb3JlL2RvbS9SYW5nZUJvdW5kYXJ5
UG9pbnQuaAppbmRleCBiMDRkYzA4Li41YjE0YTNkIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29y
ZS9kb20vUmFuZ2VCb3VuZGFyeVBvaW50LmgKKysrIGIvU291cmNlL1dlYkNvcmUvZG9tL1Jhbmdl
Qm91bmRhcnlQb2ludC5oCkBAIC0xMTIsOSArMTEyLDkgQEAgaW5saW5lIGludCBSYW5nZUJvdW5k
YXJ5UG9pbnQ6Om9mZnNldCgpIGNvbnN0CiAKIGlubGluZSB2b2lkIFJhbmdlQm91bmRhcnlQb2lu
dDo6Y2xlYXIoKQogewotICAgIG1fY29udGFpbmVyTm9kZS5jbGVhcigpOworICAgIG1fY29udGFp
bmVyTm9kZSA9IG51bGxwdHI7CiAgICAgbV9vZmZzZXRJbkNvbnRhaW5lciA9IDA7Ci0gICAgbV9j
aGlsZEJlZm9yZUJvdW5kYXJ5ID0gMDsKKyAgICBtX2NoaWxkQmVmb3JlQm91bmRhcnkgPSBudWxs
cHRyOwogfQogCiBpbmxpbmUgdm9pZCBSYW5nZUJvdW5kYXJ5UG9pbnQ6OnNldChQYXNzUmVmUHRy
PE5vZGU+IGNvbnRhaW5lciwgaW50IG9mZnNldCwgTm9kZSogY2hpbGRCZWZvcmUpCkBAIC0xNDks
NyArMTQ5LDcgQEAgaW5saW5lIHZvaWQgUmFuZ2VCb3VuZGFyeVBvaW50OjpzZXRUb1N0YXJ0T2ZO
b2RlKFBhc3NSZWZQdHI8Tm9kZT4gY29udGFpbmVyKQogICAgIEFTU0VSVChjb250YWluZXIpOwog
ICAgIG1fY29udGFpbmVyTm9kZSA9IGNvbnRhaW5lcjsKICAgICBtX29mZnNldEluQ29udGFpbmVy
ID0gMDsKLSAgICBtX2NoaWxkQmVmb3JlQm91bmRhcnkgPSAwOworICAgIG1fY2hpbGRCZWZvcmVC
b3VuZGFyeSA9IG51bGxwdHI7CiB9CiAKIGlubGluZSB2b2lkIFJhbmdlQm91bmRhcnlQb2ludDo6
c2V0VG9FbmRPZk5vZGUoUGFzc1JlZlB0cjxOb2RlPiBjb250YWluZXIpCkBAIC0xNTgsNyArMTU4
LDcgQEAgaW5saW5lIHZvaWQgUmFuZ2VCb3VuZGFyeVBvaW50OjpzZXRUb0VuZE9mTm9kZShQYXNz
UmVmUHRyPE5vZGU+IGNvbnRhaW5lcikKICAgICBtX2NvbnRhaW5lck5vZGUgPSBjb250YWluZXI7
CiAgICAgaWYgKG1fY29udGFpbmVyTm9kZS0+b2Zmc2V0SW5DaGFyYWN0ZXJzKCkpIHsKICAgICAg
ICAgbV9vZmZzZXRJbkNvbnRhaW5lciA9IG1fY29udGFpbmVyTm9kZS0+bWF4Q2hhcmFjdGVyT2Zm
c2V0KCk7Ci0gICAgICAgIG1fY2hpbGRCZWZvcmVCb3VuZGFyeSA9IDA7CisgICAgICAgIG1fY2hp
bGRCZWZvcmVCb3VuZGFyeSA9IG51bGxwdHI7CiAgICAgfSBlbHNlIHsKICAgICAgICAgbV9jaGls
ZEJlZm9yZUJvdW5kYXJ5ID0gbV9jb250YWluZXJOb2RlLT5sYXN0Q2hpbGQoKTsKICAgICAgICAg
bV9vZmZzZXRJbkNvbnRhaW5lciA9IG1fY2hpbGRCZWZvcmVCb3VuZGFyeSA/IGludmFsaWRPZmZz
ZXQgOiAwOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvZG9tL1NwYWNlU3BsaXRTdHJpbmcu
aCBiL1NvdXJjZS9XZWJDb3JlL2RvbS9TcGFjZVNwbGl0U3RyaW5nLmgKaW5kZXggZWY1NjgwMS4u
Zjg1Yjk2NCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvZG9tL1NwYWNlU3BsaXRTdHJpbmcu
aAorKysgYi9Tb3VyY2UvV2ViQ29yZS9kb20vU3BhY2VTcGxpdFN0cmluZy5oCkBAIC0xMDUsNyAr
MTA1LDcgQEAgcHVibGljOgogICAgIGJvb2wgb3BlcmF0b3IhPShjb25zdCBTcGFjZVNwbGl0U3Ry
aW5nJiBvdGhlcikgY29uc3QgeyByZXR1cm4gbV9kYXRhICE9IG90aGVyLm1fZGF0YTsgfQogCiAg
ICAgdm9pZCBzZXQoY29uc3QgQXRvbWljU3RyaW5nJiwgYm9vbCBzaG91bGRGb2xkQ2FzZSk7Ci0g
ICAgdm9pZCBjbGVhcigpIHsgbV9kYXRhLmNsZWFyKCk7IH0KKyAgICB2b2lkIGNsZWFyKCkgeyBt
X2RhdGEgPSBudWxscHRyOyB9CiAKICAgICBib29sIGNvbnRhaW5zKGNvbnN0IEF0b21pY1N0cmlu
ZyYgc3RyaW5nKSBjb25zdCB7IHJldHVybiBtX2RhdGEgJiYgbV9kYXRhLT5jb250YWlucyhzdHJp
bmcpOyB9CiAgICAgYm9vbCBjb250YWluc0FsbChjb25zdCBTcGFjZVNwbGl0U3RyaW5nJiBuYW1l
cykgY29uc3QgeyByZXR1cm4gIW5hbWVzLm1fZGF0YSB8fCAobV9kYXRhICYmIG1fZGF0YS0+Y29u
dGFpbnNBbGwoKm5hbWVzLm1fZGF0YSkpOyB9CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9k
b20vU3R5bGVkRWxlbWVudC5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9kb20vU3R5bGVkRWxlbWVudC5j
cHAKaW5kZXggNWIyNjk2NmIuLjBlYzBkN2YgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2Rv
bS9TdHlsZWRFbGVtZW50LmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9kb20vU3R5bGVkRWxlbWVu
dC5jcHAKQEAgLTE4NSw3ICsxODUsNyBAQCBpbmxpbmUgdm9pZCBTdHlsZWRFbGVtZW50OjpzZXRJ
bmxpbmVTdHlsZUZyb21TdHJpbmcoY29uc3QgQXRvbWljU3RyaW5nJiBuZXdTdHlsZQogICAgIC8v
IFdlIHJlY29uc3RydWN0IHRoZSBwcm9wZXJ0eSBzZXQgaW5zdGVhZCBvZiBtdXRhdGluZyBpZiB0
aGVyZSBpcyBubyBDU1NPTSB3cmFwcGVyLgogICAgIC8vIFRoaXMgbWFrZXMgd3JhcHBlcmxlc3Mg
cHJvcGVydHkgc2V0cyBpbW11dGFibGUgYW5kIHNvIGNhY2hlYWJsZS4KICAgICBpZiAoaW5saW5l
U3R5bGUgJiYgIWlzPE11dGFibGVTdHlsZVByb3BlcnRpZXM+KCppbmxpbmVTdHlsZSkpCi0gICAg
ICAgIGlubGluZVN0eWxlLmNsZWFyKCk7CisgICAgICAgIGlubGluZVN0eWxlID0gbnVsbHB0cjsK
IAogICAgIGlmICghaW5saW5lU3R5bGUpCiAgICAgICAgIGlubGluZVN0eWxlID0gQ1NTUGFyc2Vy
OjpwYXJzZUlubGluZVN0eWxlRGVjbGFyYXRpb24obmV3U3R5bGVTdHJpbmcsIHRoaXMpOwpAQCAt
MjAyLDcgKzIwMiw3IEBAIHZvaWQgU3R5bGVkRWxlbWVudDo6c3R5bGVBdHRyaWJ1dGVDaGFuZ2Vk
KGNvbnN0IEF0b21pY1N0cmluZyYgbmV3U3R5bGVTdHJpbmcsIEF0CiAgICAgaWYgKG5ld1N0eWxl
U3RyaW5nLmlzTnVsbCgpKSB7CiAgICAgICAgIGlmIChQcm9wZXJ0eVNldENTU1N0eWxlRGVjbGFy
YXRpb24qIGNzc29tV3JhcHBlciA9IGlubGluZVN0eWxlQ1NTT01XcmFwcGVyKCkpCiAgICAgICAg
ICAgICBjc3NvbVdyYXBwZXItPmNsZWFyUGFyZW50RWxlbWVudCgpOwotICAgICAgICBlbnN1cmVV
bmlxdWVFbGVtZW50RGF0YSgpLm1faW5saW5lU3R5bGUuY2xlYXIoKTsKKyAgICAgICAgZW5zdXJl
VW5pcXVlRWxlbWVudERhdGEoKS5tX2lubGluZVN0eWxlID0gbnVsbHB0cjsKICAgICB9IGVsc2Ug
aWYgKHJlYXNvbiA9PSBNb2RpZmllZEJ5Q2xvbmluZyB8fCBkb2N1bWVudCgpLmNvbnRlbnRTZWN1
cml0eVBvbGljeSgpLT5hbGxvd0lubGluZVN0eWxlKGRvY3VtZW50KCkudXJsKCksIHN0YXJ0TGlu
ZU51bWJlcikpCiAgICAgICAgIHNldElubGluZVN0eWxlRnJvbVN0cmluZyhuZXdTdHlsZVN0cmlu
Zyk7CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2RvbS9kZWZhdWx0L1BsYXRmb3JtTWVz
c2FnZVBvcnRDaGFubmVsLmNwcCBiL1NvdXJjZS9XZWJDb3JlL2RvbS9kZWZhdWx0L1BsYXRmb3Jt
TWVzc2FnZVBvcnRDaGFubmVsLmNwcAppbmRleCBjNjg2MTFmLi5jNDE3NDg2IDEwMDY0NAotLS0g
YS9Tb3VyY2UvV2ViQ29yZS9kb20vZGVmYXVsdC9QbGF0Zm9ybU1lc3NhZ2VQb3J0Q2hhbm5lbC5j
cHAKKysrIGIvU291cmNlL1dlYkNvcmUvZG9tL2RlZmF1bHQvUGxhdGZvcm1NZXNzYWdlUG9ydENo
YW5uZWwuY3BwCkBAIC0xODMsOSArMTgzLDkgQEAgdm9pZCBQbGF0Zm9ybU1lc3NhZ2VQb3J0Q2hh
bm5lbDo6Y2xvc2VJbnRlcm5hbCgpCiB7CiAgICAgTXV0ZXhMb2NrZXIgbG9jayhtX211dGV4KTsK
ICAgICAvLyBEaXNlbnRhbmdsZSBvdXJzZWx2ZXMgZnJvbSB0aGUgb3RoZXIgZW5kLiBXZSBzdGls
bCBtYWludGFpbiBhIHJlZmVyZW5jZSB0byBvdXIgaW5jb21pbmcgcXVldWUsIHNpbmNlIHByZXZp
b3VzbHktZXhpc3RpbmcgbWVzc2FnZXMgc2hvdWxkIHN0aWxsIGJlIGRlbGl2ZXJlZC4KLSAgICBt
X3JlbW90ZVBvcnQgPSAwOwotICAgIG1fZW50YW5nbGVkQ2hhbm5lbCA9IDA7Ci0gICAgbV9vdXRn
b2luZ1F1ZXVlID0gMDsKKyAgICBtX3JlbW90ZVBvcnQgPSBudWxscHRyOworICAgIG1fZW50YW5n
bGVkQ2hhbm5lbCA9IG51bGxwdHI7CisgICAgbV9vdXRnb2luZ1F1ZXVlID0gbnVsbHB0cjsKIH0K
IAogfSAvLyBuYW1lc3BhY2UgV2ViQ29yZQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvZWRp
dGluZy9BbHRlcm5hdGl2ZVRleHRDb250cm9sbGVyLmNwcCBiL1NvdXJjZS9XZWJDb3JlL2VkaXRp
bmcvQWx0ZXJuYXRpdmVUZXh0Q29udHJvbGxlci5jcHAKaW5kZXggZjViYzk0OC4uMjc1ZTQzMCAx
MDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvZWRpdGluZy9BbHRlcm5hdGl2ZVRleHRDb250cm9s
bGVyLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9lZGl0aW5nL0FsdGVybmF0aXZlVGV4dENvbnRy
b2xsZXIuY3BwCkBAIC0xNDcsNyArMTQ3LDcgQEAgdm9pZCBBbHRlcm5hdGl2ZVRleHRDb250cm9s
bGVyOjpzdGFydEFsdGVybmF0aXZlVGV4dFVJVGltZXIoQWx0ZXJuYXRpdmVUZXh0VHlwZQogCiAg
ICAgLy8gSWYgdHlwZSBpcyBQYW5lbFR5cGVSZXZlcnNpb24sIHRoZW4gdGhlIG5ldyByYW5nZSBo
YXMgYmVlbiBzZXQuIFNvIHdlIHNob3VsZG4ndCBjbGVhciBpdC4KICAgICBpZiAodHlwZSA9PSBB
bHRlcm5hdGl2ZVRleHRUeXBlQ29ycmVjdGlvbikKLSAgICAgICAgbV9hbHRlcm5hdGl2ZVRleHRJ
bmZvLnJhbmdlV2l0aEFsdGVybmF0aXZlLmNsZWFyKCk7CisgICAgICAgIG1fYWx0ZXJuYXRpdmVU
ZXh0SW5mby5yYW5nZVdpdGhBbHRlcm5hdGl2ZSA9IG51bGxwdHI7CiAgICAgbV9hbHRlcm5hdGl2
ZVRleHRJbmZvLnR5cGUgPSB0eXBlOwogICAgIG1fdGltZXIuc3RhcnRPbmVTaG90KGNvcnJlY3Rp
b25QYW5lbFRpbWVySW50ZXJ2YWwpOwogfQpAQCAtMTU1LDcgKzE1NSw3IEBAIHZvaWQgQWx0ZXJu
YXRpdmVUZXh0Q29udHJvbGxlcjo6c3RhcnRBbHRlcm5hdGl2ZVRleHRVSVRpbWVyKEFsdGVybmF0
aXZlVGV4dFR5cGUKIHZvaWQgQWx0ZXJuYXRpdmVUZXh0Q29udHJvbGxlcjo6c3RvcEFsdGVybmF0
aXZlVGV4dFVJVGltZXIoKQogewogICAgIG1fdGltZXIuc3RvcCgpOwotICAgIG1fYWx0ZXJuYXRp
dmVUZXh0SW5mby5yYW5nZVdpdGhBbHRlcm5hdGl2ZS5jbGVhcigpOworICAgIG1fYWx0ZXJuYXRp
dmVUZXh0SW5mby5yYW5nZVdpdGhBbHRlcm5hdGl2ZSA9IG51bGxwdHI7CiB9CiAKIHZvaWQgQWx0
ZXJuYXRpdmVUZXh0Q29udHJvbGxlcjo6c3RvcFBlbmRpbmdDb3JyZWN0aW9uKGNvbnN0IFZpc2li
bGVTZWxlY3Rpb24mIG9sZFNlbGVjdGlvbikKQEAgLTE4Myw3ICsxODMsNyBAQCB2b2lkIEFsdGVy
bmF0aXZlVGV4dENvbnRyb2xsZXI6OmFwcGx5UGVuZGluZ0NvcnJlY3Rpb24oY29uc3QgVmlzaWJs
ZVNlbGVjdGlvbiYgcwogICAgIGlmIChkb0FwcGx5Q29ycmVjdGlvbikKICAgICAgICAgaGFuZGxl
QWx0ZXJuYXRpdmVUZXh0VUlSZXN1bHQoZGlzbWlzc1Nvb24oUmVhc29uRm9yRGlzbWlzc2luZ0Fs
dGVybmF0aXZlVGV4dEFjY2VwdGVkKSk7IAogICAgIGVsc2UKLSAgICAgICAgbV9hbHRlcm5hdGl2
ZVRleHRJbmZvLnJhbmdlV2l0aEFsdGVybmF0aXZlLmNsZWFyKCk7CisgICAgICAgIG1fYWx0ZXJu
YXRpdmVUZXh0SW5mby5yYW5nZVdpdGhBbHRlcm5hdGl2ZSA9IG51bGxwdHI7CiB9CiAKIGJvb2wg
QWx0ZXJuYXRpdmVUZXh0Q29udHJvbGxlcjo6aGFzUGVuZGluZ0NvcnJlY3Rpb24oKSBjb25zdApA
QCAtMzU5LDcgKzM1OSw3IEBAIHZvaWQgQWx0ZXJuYXRpdmVUZXh0Q29udHJvbGxlcjo6dGltZXJG
aXJlZCgpCiAgICAgICAgIFZlY3RvcjxTdHJpbmc+IHN1Z2dlc3Rpb25zOwogICAgICAgICB0ZXh0
Q2hlY2tlcigpLT5nZXRHdWVzc2VzRm9yV29yZChtX2FsdGVybmF0aXZlVGV4dEluZm8ub3JpZ2lu
YWxUZXh0LCBwYXJhZ3JhcGhUZXh0LCBzdWdnZXN0aW9ucyk7CiAgICAgICAgIGlmIChzdWdnZXN0
aW9ucy5pc0VtcHR5KCkpIHsKLSAgICAgICAgICAgIG1fYWx0ZXJuYXRpdmVUZXh0SW5mby5yYW5n
ZVdpdGhBbHRlcm5hdGl2ZS5jbGVhcigpOworICAgICAgICAgICAgbV9hbHRlcm5hdGl2ZVRleHRJ
bmZvLnJhbmdlV2l0aEFsdGVybmF0aXZlID0gbnVsbHB0cjsKICAgICAgICAgICAgIGJyZWFrOwog
ICAgICAgICB9CiAgICAgICAgIFN0cmluZyB0b3BTdWdnZXN0aW9uID0gc3VnZ2VzdGlvbnMuZmly
c3QoKTsKQEAgLTQyMiw3ICs0MjIsNyBAQCB2b2lkIEFsdGVybmF0aXZlVGV4dENvbnRyb2xsZXI6
OmhhbmRsZUFsdGVybmF0aXZlVGV4dFVJUmVzdWx0KGNvbnN0IFN0cmluZyYgcmVzdQogICAgICAg
ICBicmVhazsKICAgICB9CiAKLSAgICBtX2FsdGVybmF0aXZlVGV4dEluZm8ucmFuZ2VXaXRoQWx0
ZXJuYXRpdmUuY2xlYXIoKTsKKyAgICBtX2FsdGVybmF0aXZlVGV4dEluZm8ucmFuZ2VXaXRoQWx0
ZXJuYXRpdmUgPSBudWxscHRyOwogfQogCiBib29sIEFsdGVybmF0aXZlVGV4dENvbnRyb2xsZXI6
OmlzQXV0b21hdGljU3BlbGxpbmdDb3JyZWN0aW9uRW5hYmxlZCgpCmRpZmYgLS1naXQgYS9Tb3Vy
Y2UvV2ViQ29yZS9lZGl0aW5nL0FwcGx5QmxvY2tFbGVtZW50Q29tbWFuZC5jcHAgYi9Tb3VyY2Uv
V2ViQ29yZS9lZGl0aW5nL0FwcGx5QmxvY2tFbGVtZW50Q29tbWFuZC5jcHAKaW5kZXggNDMzZTk1
My4uMjFhYmU3MSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvZWRpdGluZy9BcHBseUJsb2Nr
RWxlbWVudENvbW1hbmQuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2VkaXRpbmcvQXBwbHlCbG9j
a0VsZW1lbnRDb21tYW5kLmNwcApAQCAtMTQzLDcgKzE0Myw3IEBAIHZvaWQgQXBwbHlCbG9ja0Vs
ZW1lbnRDb21tYW5kOjpmb3JtYXRTZWxlY3Rpb24oY29uc3QgVmlzaWJsZVBvc2l0aW9uJiBzdGFy
dE9mU2VsCiAgICAgICAgIC8vIERvbid0IHB1dCB0aGUgbmV4dCBwYXJhZ3JhcGggaW4gdGhlIGJs
b2NrcXVvdGUgd2UganVzdCBjcmVhdGVkIGZvciB0aGlzIHBhcmFncmFwaCB1bmxlc3MgCiAgICAg
ICAgIC8vIHRoZSBuZXh0IHBhcmFncmFwaCBpcyBpbiB0aGUgc2FtZSBjZWxsLgogICAgICAgICBp
ZiAoZW5jbG9zaW5nQ2VsbCAmJiBlbmNsb3NpbmdDZWxsICE9IGVuY2xvc2luZ05vZGVPZlR5cGUo
ZW5kT2ZOZXh0UGFyYWdyYXBoLmRlZXBFcXVpdmFsZW50KCksICZpc1RhYmxlQ2VsbCkpCi0gICAg
ICAgICAgICBibG9ja3F1b3RlRm9yTmV4dEluZGVudCA9IDA7CisgICAgICAgICAgICBibG9ja3F1
b3RlRm9yTmV4dEluZGVudCA9IG51bGxwdHI7CiAKICAgICAgICAgLy8gaW5kZW50SW50b0Jsb2Nr
cXVvdGUgY291bGQgbW92ZSBtb3JlIHRoYW4gb25lIHBhcmFncmFwaCBpZiB0aGUgcGFyYWdyYXBo
CiAgICAgICAgIC8vIGlzIGluIGEgbGlzdCBpdGVtIG9yIGEgdGFibGUuIEFzIGEgcmVzdWx0LCBl
bmRBZnRlclNlbGVjdGlvbiBjb3VsZCByZWZlciB0byBhIHBvc2l0aW9uCmRpZmYgLS1naXQgYS9T
b3VyY2UvV2ViQ29yZS9lZGl0aW5nL0RlbGV0ZVNlbGVjdGlvbkNvbW1hbmQuY3BwIGIvU291cmNl
L1dlYkNvcmUvZWRpdGluZy9EZWxldGVTZWxlY3Rpb25Db21tYW5kLmNwcAppbmRleCBlYjNhNWYz
Li5jNjQ5MWQyIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9lZGl0aW5nL0RlbGV0ZVNlbGVj
dGlvbkNvbW1hbmQuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2VkaXRpbmcvRGVsZXRlU2VsZWN0
aW9uQ29tbWFuZC5jcHAKQEAgLTMwMiw3ICszMDIsNyBAQCB2b2lkIERlbGV0ZVNlbGVjdGlvbkNv
bW1hbmQ6OnNhdmVUeXBpbmdTdHlsZVN0YXRlKCkKICAgICBpZiAoZW5jbG9zaW5nTm9kZU9mVHlw
ZShtX3NlbGVjdGlvblRvRGVsZXRlLnN0YXJ0KCksIGlzTWFpbEJsb2NrcXVvdGUpKQogICAgICAg
ICBtX2RlbGV0ZUludG9CbG9ja3F1b3RlU3R5bGUgPSBFZGl0aW5nU3R5bGU6OmNyZWF0ZShtX3Nl
bGVjdGlvblRvRGVsZXRlLmVuZCgpKTsKICAgICBlbHNlCi0gICAgICAgIG1fZGVsZXRlSW50b0Js
b2NrcXVvdGVTdHlsZSA9IDA7CisgICAgICAgIG1fZGVsZXRlSW50b0Jsb2NrcXVvdGVTdHlsZSA9
IG51bGxwdHI7CiB9CiAKIGJvb2wgRGVsZXRlU2VsZWN0aW9uQ29tbWFuZDo6aGFuZGxlU3BlY2lh
bENhc2VCUkRlbGV0ZSgpCkBAIC03MjgsMTEgKzcyOCwxMSBAQCB2b2lkIERlbGV0ZVNlbGVjdGlv
bkNvbW1hbmQ6OmNhbGN1bGF0ZVR5cGluZ1N0eWxlQWZ0ZXJEZWxldGUoKQogICAgIC8vIElmIHdl
IGRlbGV0ZWQgaW50byBhIGJsb2NrcXVvdGUsIGJ1dCBhcmUgbm93IG5vIGxvbmdlciBpbiBhIGJs
b2NrcXVvdGUsIHVzZSB0aGUgYWx0ZXJuYXRlIHR5cGluZyBzdHlsZQogICAgIGlmIChtX2RlbGV0
ZUludG9CbG9ja3F1b3RlU3R5bGUgJiYgIWVuY2xvc2luZ05vZGVPZlR5cGUobV9lbmRpbmdQb3Np
dGlvbiwgaXNNYWlsQmxvY2txdW90ZSwgQ2FuQ3Jvc3NFZGl0aW5nQm91bmRhcnkpKQogICAgICAg
ICBtX3R5cGluZ1N0eWxlID0gbV9kZWxldGVJbnRvQmxvY2txdW90ZVN0eWxlOwotICAgIG1fZGVs
ZXRlSW50b0Jsb2NrcXVvdGVTdHlsZSA9IDA7CisgICAgbV9kZWxldGVJbnRvQmxvY2txdW90ZVN0
eWxlID0gbnVsbHB0cjsKIAogICAgIG1fdHlwaW5nU3R5bGUtPnByZXBhcmVUb0FwcGx5QXQobV9l
bmRpbmdQb3NpdGlvbik7CiAgICAgaWYgKG1fdHlwaW5nU3R5bGUtPmlzRW1wdHkoKSkKLSAgICAg
ICAgbV90eXBpbmdTdHlsZSA9IDA7CisgICAgICAgIG1fdHlwaW5nU3R5bGUgPSBudWxscHRyOwog
ICAgIC8vIFRoaXMgaXMgd2hlcmUgd2UndmUgZGVsZXRlZCBhbGwgdHJhY2VzIG9mIGEgc3R5bGUg
YnV0IG5vdCBhIHdob2xlIHBhcmFncmFwaCAodGhhdCdzIGhhbmRsZWQgYWJvdmUpLgogICAgIC8v
IEluIHRoaXMgY2FzZSBpZiB3ZSBzdGFydCB0eXBpbmcsIHRoZSBuZXcgY2hhcmFjdGVycyBzaG91
bGQgaGF2ZSB0aGUgc2FtZSBzdHlsZSBhcyB0aGUganVzdCBkZWxldGVkIG9uZXMsCiAgICAgLy8g
YnV0LCBpZiB3ZSBjaGFuZ2UgdGhlIHNlbGVjdGlvbiwgY29tZSBiYWNrIGFuZCBzdGFydCB0eXBp
bmcgdGhhdCBzdHlsZSBzaG91bGQgYmUgbG9zdC4gIEFsc28gc2VlIApkaWZmIC0tZ2l0IGEvU291
cmNlL1dlYkNvcmUvZWRpdGluZy9FZGl0aW5nU3R5bGUuY3BwIGIvU291cmNlL1dlYkNvcmUvZWRp
dGluZy9FZGl0aW5nU3R5bGUuY3BwCmluZGV4IDVjZjEyY2QuLjE3YWFiMjkgMTAwNjQ0Ci0tLSBh
L1NvdXJjZS9XZWJDb3JlL2VkaXRpbmcvRWRpdGluZ1N0eWxlLmNwcAorKysgYi9Tb3VyY2UvV2Vi
Q29yZS9lZGl0aW5nL0VkaXRpbmdTdHlsZS5jcHAKQEAgLTYzOCw3ICs2MzgsNyBAQCB2b2lkIEVk
aXRpbmdTdHlsZTo6b3ZlcnJpZGVUeXBpbmdTdHlsZUF0KGNvbnN0IEVkaXRpbmdTdHlsZSYgc3R5
bGUsIGNvbnN0IFBvc2l0aQogCiB2b2lkIEVkaXRpbmdTdHlsZTo6Y2xlYXIoKQogewotICAgIG1f
bXV0YWJsZVN0eWxlLmNsZWFyKCk7CisgICAgbV9tdXRhYmxlU3R5bGUgPSBudWxscHRyOwogICAg
IG1fc2hvdWxkVXNlRml4ZWREZWZhdWx0Rm9udFNpemUgPSBmYWxzZTsKICAgICBtX2ZvbnRTaXpl
RGVsdGEgPSBOb0ZvbnREZWx0YTsKICAgICBzZXRVbmRlcmxpbmVDaGFuZ2UoVGV4dERlY29yYXRp
b25DaGFuZ2U6Ok5vbmUpOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvZWRpdGluZy9FZGl0
b3IuY3BwIGIvU291cmNlL1dlYkNvcmUvZWRpdGluZy9FZGl0b3IuY3BwCmluZGV4IGEzYzNjOWMu
LmU3Njg3ZWMyIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9lZGl0aW5nL0VkaXRvci5jcHAK
KysrIGIvU291cmNlL1dlYkNvcmUvZWRpdGluZy9FZGl0b3IuY3BwCkBAIC04MjgsNyArODI4LDcg
QEAgdm9pZCBFZGl0b3I6OnJlbW92ZUZvcm1hdHRpbmdBbmRTdHlsZSgpCiAKIHZvaWQgRWRpdG9y
OjpjbGVhckxhc3RFZGl0Q29tbWFuZCgpIAogewotICAgIG1fbGFzdEVkaXRDb21tYW5kLmNsZWFy
KCk7CisgICAgbV9sYXN0RWRpdENvbW1hbmQgPSBudWxscHRyOwogfQogI2lmIFBMQVRGT1JNKElP
UykKIC8vIElmIHRoZSBzZWxlY3Rpb24gaXMgYWRqdXN0ZWQgZnJvbSBVSUtpdCB3aXRob3V0IGNs
b3NpbmcgdGhlIHR5cGluZywgdGhlIHR5cGluZyBjb21tYW5kIG1heQpAQCAtMTA2Niw3ICsxMDY2
LDcgQEAgdm9pZCBFZGl0b3I6OnVuYXBwbGllZEVkaXRpbmcoUGFzc1JlZlB0cjxFZGl0Q29tbWFu
ZENvbXBvc2l0aW9uPiBjbWQpCiAKICAgICBtX2FsdGVybmF0aXZlVGV4dENvbnRyb2xsZXItPnJl
c3BvbmRUb1VuYXBwbGllZEVkaXRpbmcoY21kLmdldCgpKTsKIAotICAgIG1fbGFzdEVkaXRDb21t
YW5kID0gMDsKKyAgICBtX2xhc3RFZGl0Q29tbWFuZCA9IG51bGxwdHI7CiAgICAgaWYgKGNsaWVu
dCgpKQogICAgICAgICBjbGllbnQoKS0+cmVnaXN0ZXJSZWRvU3RlcChjbWQpOwogICAgIHJlc3Bv
bmRUb0NoYW5nZWRDb250ZW50cyhuZXdTZWxlY3Rpb24pOwpAQCAtMTA4NCw3ICsxMDg0LDcgQEAg
dm9pZCBFZGl0b3I6OnJlYXBwbGllZEVkaXRpbmcoUGFzc1JlZlB0cjxFZGl0Q29tbWFuZENvbXBv
c2l0aW9uPiBjbWQpCiAgICAgCiAgICAgdXBkYXRlRWRpdG9yVUlOb3dJZlNjaGVkdWxlZCgpOwog
Ci0gICAgbV9sYXN0RWRpdENvbW1hbmQgPSAwOworICAgIG1fbGFzdEVkaXRDb21tYW5kID0gbnVs
bHB0cjsKICAgICBpZiAoY2xpZW50KCkpCiAgICAgICAgIGNsaWVudCgpLT5yZWdpc3RlclVuZG9T
dGVwKGNtZCk7CiAgICAgcmVzcG9uZFRvQ2hhbmdlZENvbnRlbnRzKG5ld1NlbGVjdGlvbik7CkBA
IC0xNzI3LDcgKzE3MjcsNyBAQCB2b2lkIEVkaXRvcjo6c2V0Q29tcG9zaXRpb24oY29uc3QgU3Ry
aW5nJiB0ZXh0LCBTZXRDb21wb3NpdGlvbk1vZGUgbW9kZSkKICAgICBpZiAodGV4dC5pc0VtcHR5
KCkgJiYgbW9kZSAhPSBDYW5jZWxDb21wb3NpdGlvbikKICAgICAgICAgVHlwaW5nQ29tbWFuZDo6
ZGVsZXRlU2VsZWN0aW9uKGRvY3VtZW50KCksIDApOwogCi0gICAgbV9jb21wb3NpdGlvbk5vZGUg
PSAwOworICAgIG1fY29tcG9zaXRpb25Ob2RlID0gbnVsbHB0cjsKICAgICBtX2N1c3RvbUNvbXBv
c2l0aW9uVW5kZXJsaW5lcy5jbGVhcigpOwogCiAgICAgaW5zZXJ0VGV4dEZvckNvbmZpcm1lZENv
bXBvc2l0aW9uKHRleHQpOwpAQCAtMTgwMiw3ICsxODAyLDcgQEAgdm9pZCBFZGl0b3I6OnNldENv
bXBvc2l0aW9uKGNvbnN0IFN0cmluZyYgdGV4dCwgY29uc3QgVmVjdG9yPENvbXBvc2l0aW9uVW5k
ZXJsaW4KICAgICBpZiAodGV4dC5pc0VtcHR5KCkpCiAgICAgICAgIFR5cGluZ0NvbW1hbmQ6OmRl
bGV0ZVNlbGVjdGlvbihkb2N1bWVudCgpLCBUeXBpbmdDb21tYW5kOjpQcmV2ZW50U3BlbGxDaGVj
a2luZyk7CiAKLSAgICBtX2NvbXBvc2l0aW9uTm9kZSA9IDA7CisgICAgbV9jb21wb3NpdGlvbk5v
ZGUgPSBudWxscHRyOwogICAgIG1fY3VzdG9tQ29tcG9zaXRpb25VbmRlcmxpbmVzLmNsZWFyKCk7
CiAKICAgICBpZiAoIXRleHQuaXNFbXB0eSgpKSB7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29y
ZS9lZGl0aW5nL0ZyYW1lU2VsZWN0aW9uLmNwcCBiL1NvdXJjZS9XZWJDb3JlL2VkaXRpbmcvRnJh
bWVTZWxlY3Rpb24uY3BwCmluZGV4IGIwZTI1MzUuLmZhMDg4MzcgMTAwNjQ0Ci0tLSBhL1NvdXJj
ZS9XZWJDb3JlL2VkaXRpbmcvRnJhbWVTZWxlY3Rpb24uY3BwCisrKyBiL1NvdXJjZS9XZWJDb3Jl
L2VkaXRpbmcvRnJhbWVTZWxlY3Rpb24uY3BwCkBAIC0xMzU5LDcgKzEzNTksNyBAQCB2b2lkIEZy
YW1lU2VsZWN0aW9uOjpwcmVwYXJlRm9yRGVzdHJ1Y3Rpb24oKQogICAgICAgICB2aWV3LT5jbGVh
clNlbGVjdGlvbigpOwogCiAgICAgc2V0U2VsZWN0aW9uV2l0aG91dFVwZGF0aW5nQXBwZWFyYW5j
ZShWaXNpYmxlU2VsZWN0aW9uKCksIGRlZmF1bHRTZXRTZWxlY3Rpb25PcHRpb25zKCksIEFsaWdu
Q3Vyc29yT25TY3JvbGxJZk5lZWRlZCwgQ2hhcmFjdGVyR3JhbnVsYXJpdHkpOwotICAgIG1fcHJl
dmlvdXNDYXJldE5vZGUuY2xlYXIoKTsKKyAgICBtX3ByZXZpb3VzQ2FyZXROb2RlID0gbnVsbHB0
cjsKIH0KIAogdm9pZCBGcmFtZVNlbGVjdGlvbjo6c2V0U3RhcnQoY29uc3QgVmlzaWJsZVBvc2l0
aW9uICZwb3MsIEVVc2VyVHJpZ2dlcmVkIHRyaWdnZXIpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2Vi
Q29yZS9lZGl0aW5nL0ZyYW1lU2VsZWN0aW9uLmggYi9Tb3VyY2UvV2ViQ29yZS9lZGl0aW5nL0Zy
YW1lU2VsZWN0aW9uLmgKaW5kZXggZWQ4Nzk2ZS4uMzEwYTc0YSAxMDA2NDQKLS0tIGEvU291cmNl
L1dlYkNvcmUvZWRpdGluZy9GcmFtZVNlbGVjdGlvbi5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL2Vk
aXRpbmcvRnJhbWVTZWxlY3Rpb24uaApAQCAtMzU5LDcgKzM1OSw3IEBAIGlubGluZSBFZGl0aW5n
U3R5bGUqIEZyYW1lU2VsZWN0aW9uOjp0eXBpbmdTdHlsZSgpIGNvbnN0CiAKIGlubGluZSB2b2lk
IEZyYW1lU2VsZWN0aW9uOjpjbGVhclR5cGluZ1N0eWxlKCkKIHsKLSAgICBtX3R5cGluZ1N0eWxl
LmNsZWFyKCk7CisgICAgbV90eXBpbmdTdHlsZSA9IG51bGxwdHI7CiB9CiAKIGlubGluZSB2b2lk
IEZyYW1lU2VsZWN0aW9uOjpzZXRUeXBpbmdTdHlsZShQYXNzUmVmUHRyPEVkaXRpbmdTdHlsZT4g
c3R5bGUpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9lZGl0aW5nL0luZGVudE91dGRlbnRD
b21tYW5kLmNwcCBiL1NvdXJjZS9XZWJDb3JlL2VkaXRpbmcvSW5kZW50T3V0ZGVudENvbW1hbmQu
Y3BwCmluZGV4IGIyMzhmODcuLmVjNGQyNzIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2Vk
aXRpbmcvSW5kZW50T3V0ZGVudENvbW1hbmQuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2VkaXRp
bmcvSW5kZW50T3V0ZGVudENvbW1hbmQuY3BwCkBAIC0yMzIsNyArMjMyLDcgQEAgdm9pZCBJbmRl
bnRPdXRkZW50Q29tbWFuZDo6Zm9ybWF0U2VsZWN0aW9uKGNvbnN0IFZpc2libGVQb3NpdGlvbiYg
c3RhcnRPZlNlbGVjdGkKIHZvaWQgSW5kZW50T3V0ZGVudENvbW1hbmQ6OmZvcm1hdFJhbmdlKGNv
bnN0IFBvc2l0aW9uJiBzdGFydCwgY29uc3QgUG9zaXRpb24mIGVuZCwgY29uc3QgUG9zaXRpb24m
LCBSZWZQdHI8RWxlbWVudD4mIGJsb2NrcXVvdGVGb3JOZXh0SW5kZW50KQogewogICAgIGlmICh0
cnlJbmRlbnRpbmdBc0xpc3RJdGVtKHN0YXJ0LCBlbmQpKQotICAgICAgICBibG9ja3F1b3RlRm9y
TmV4dEluZGVudCA9IDA7CisgICAgICAgIGJsb2NrcXVvdGVGb3JOZXh0SW5kZW50ID0gbnVsbHB0
cjsKICAgICBlbHNlCiAgICAgICAgIGluZGVudEludG9CbG9ja3F1b3RlKHN0YXJ0LCBlbmQsIGJs
b2NrcXVvdGVGb3JOZXh0SW5kZW50KTsKIH0KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2Vk
aXRpbmcvUmVwbGFjZVNlbGVjdGlvbkNvbW1hbmQuY3BwIGIvU291cmNlL1dlYkNvcmUvZWRpdGlu
Zy9SZXBsYWNlU2VsZWN0aW9uQ29tbWFuZC5jcHAKaW5kZXggMmUyNWVlZi4uZWVlMjIwYyAxMDA2
NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvZWRpdGluZy9SZXBsYWNlU2VsZWN0aW9uQ29tbWFuZC5j
cHAKKysrIGIvU291cmNlL1dlYkNvcmUvZWRpdGluZy9SZXBsYWNlU2VsZWN0aW9uQ29tbWFuZC5j
cHAKQEAgLTM1NCw4ICszNTQsOCBAQCBpbmxpbmUgdm9pZCBSZXBsYWNlU2VsZWN0aW9uQ29tbWFu
ZDo6SW5zZXJ0ZWROb2Rlczo6d2lsbFJlbW92ZU5vZGVQcmVzZXJ2aW5nQ2hpbAogaW5saW5lIHZv
aWQgUmVwbGFjZVNlbGVjdGlvbkNvbW1hbmQ6Okluc2VydGVkTm9kZXM6OndpbGxSZW1vdmVOb2Rl
KE5vZGUqIG5vZGUpCiB7CiAgICAgaWYgKG1fZmlyc3ROb2RlSW5zZXJ0ZWQgPT0gbm9kZSAmJiBt
X2xhc3ROb2RlSW5zZXJ0ZWQgPT0gbm9kZSkgewotICAgICAgICBtX2ZpcnN0Tm9kZUluc2VydGVk
ID0gMDsKLSAgICAgICAgbV9sYXN0Tm9kZUluc2VydGVkID0gMDsKKyAgICAgICAgbV9maXJzdE5v
ZGVJbnNlcnRlZCA9IG51bGxwdHI7CisgICAgICAgIG1fbGFzdE5vZGVJbnNlcnRlZCA9IG51bGxw
dHI7CiAgICAgfSBlbHNlIGlmIChtX2ZpcnN0Tm9kZUluc2VydGVkID09IG5vZGUpCiAgICAgICAg
IG1fZmlyc3ROb2RlSW5zZXJ0ZWQgPSBOb2RlVHJhdmVyc2FsOjpuZXh0U2tpcHBpbmdDaGlsZHJl
bigqbV9maXJzdE5vZGVJbnNlcnRlZCk7CiAgICAgZWxzZSBpZiAobV9sYXN0Tm9kZUluc2VydGVk
ID09IG5vZGUpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9lZGl0aW5nL1NwZWxsQ2hlY2tl
ci5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9lZGl0aW5nL1NwZWxsQ2hlY2tlci5jcHAKaW5kZXggOGI0
ZDU0MS4uMDNmMmU1MSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvZWRpdGluZy9TcGVsbENo
ZWNrZXIuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2VkaXRpbmcvU3BlbGxDaGVja2VyLmNwcApA
QCAtMjE0LDcgKzIxNCw3IEBAIHZvaWQgU3BlbGxDaGVja2VyOjpkaWRDaGVjayhpbnQgc2VxdWVu
Y2UsIGNvbnN0IFZlY3RvcjxUZXh0Q2hlY2tpbmdSZXN1bHQ+JiByZXN1CiAgICAgaWYgKG1fbGFz
dFByb2Nlc3NlZFNlcXVlbmNlIDwgc2VxdWVuY2UpCiAgICAgICAgIG1fbGFzdFByb2Nlc3NlZFNl
cXVlbmNlID0gc2VxdWVuY2U7CiAKLSAgICBtX3Byb2Nlc3NpbmdSZXF1ZXN0LmNsZWFyKCk7Cisg
ICAgbV9wcm9jZXNzaW5nUmVxdWVzdCA9IG51bGxwdHI7CiAgICAgaWYgKCFtX3JlcXVlc3RRdWV1
ZS5pc0VtcHR5KCkpCiAgICAgICAgIG1fdGltZXJUb1Byb2Nlc3NRdWV1ZWRSZXF1ZXN0LnN0YXJ0
T25lU2hvdCgwKTsKIH0KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2VkaXRpbmcvVGV4dENo
ZWNraW5nSGVscGVyLmNwcCBiL1NvdXJjZS9XZWJDb3JlL2VkaXRpbmcvVGV4dENoZWNraW5nSGVs
cGVyLmNwcAppbmRleCAwMjRkMmFkLi5lOTYxMzRkIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29y
ZS9lZGl0aW5nL1RleHRDaGVja2luZ0hlbHBlci5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvZWRp
dGluZy9UZXh0Q2hlY2tpbmdIZWxwZXIuY3BwCkBAIC0xNDYsNyArMTQ2LDcgQEAgdm9pZCBUZXh0
Q2hlY2tpbmdQYXJhZ3JhcGg6OmV4cGFuZFJhbmdlVG9OZXh0RW5kKCkKIHZvaWQgVGV4dENoZWNr
aW5nUGFyYWdyYXBoOjppbnZhbGlkYXRlUGFyYWdyYXBoUmFuZ2VWYWx1ZXMoKQogewogICAgIG1f
Y2hlY2tpbmdTdGFydCA9IG1fY2hlY2tpbmdFbmQgPSAtMTsKLSAgICBtX29mZnNldEFzUmFuZ2Ug
PSAwOworICAgIG1fb2Zmc2V0QXNSYW5nZSA9IG51bGxwdHI7CiAgICAgbV90ZXh0ID0gU3RyaW5n
KCk7CiB9CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2ZpbGVhcGkvRmlsZVJlYWRlci5j
cHAgYi9Tb3VyY2UvV2ViQ29yZS9maWxlYXBpL0ZpbGVSZWFkZXIuY3BwCmluZGV4IDdmNGMwNWQu
LjYxZmMyZGUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2ZpbGVhcGkvRmlsZVJlYWRlci5j
cHAKKysrIGIvU291cmNlL1dlYkNvcmUvZmlsZWFwaS9GaWxlUmVhZGVyLmNwcApAQCAtMTQwLDcg
KzE0MCw3IEBAIHZvaWQgRmlsZVJlYWRlcjo6cmVhZEludGVybmFsKEJsb2IqIGJsb2IsIEZpbGVS
ZWFkZXJMb2FkZXI6OlJlYWRUeXBlIHR5cGUsIEV4Y2VwCiAgICAgbV9ibG9iID0gYmxvYjsKICAg
ICBtX3JlYWRUeXBlID0gdHlwZTsKICAgICBtX3N0YXRlID0gTE9BRElORzsKLSAgICBtX2Vycm9y
ID0gMDsKKyAgICBtX2Vycm9yID0gbnVsbHB0cjsKIAogICAgIG1fbG9hZGVyID0gc3RkOjptYWtl
X3VuaXF1ZTxGaWxlUmVhZGVyTG9hZGVyPihtX3JlYWRUeXBlLCB0aGlzKTsKICAgICBtX2xvYWRl
ci0+c2V0RW5jb2RpbmcobV9lbmNvZGluZyk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9m
aWxlYXBpL0ZpbGVSZWFkZXJMb2FkZXIuY3BwIGIvU291cmNlL1dlYkNvcmUvZmlsZWFwaS9GaWxl
UmVhZGVyTG9hZGVyLmNwcAppbmRleCA5NGUwYTRhLi5kOGZmYzEwIDEwMDY0NAotLS0gYS9Tb3Vy
Y2UvV2ViQ29yZS9maWxlYXBpL0ZpbGVSZWFkZXJMb2FkZXIuY3BwCisrKyBiL1NvdXJjZS9XZWJD
b3JlL2ZpbGVhcGkvRmlsZVJlYWRlckxvYWRlci5jcHAKQEAgLTEyMSwxMSArMTIxLDExIEBAIHZv
aWQgRmlsZVJlYWRlckxvYWRlcjo6dGVybWluYXRlKCkKIAogdm9pZCBGaWxlUmVhZGVyTG9hZGVy
OjpjbGVhbnVwKCkKIHsKLSAgICBtX2xvYWRlciA9IDA7CisgICAgbV9sb2FkZXIgPSBudWxscHRy
OwogCiAgICAgLy8gSWYgd2UgZ2V0IGFueSBlcnJvciwgd2UgZG8gbm90IG5lZWQgdG8ga2VlcCBh
IGJ1ZmZlciBhcm91bmQuCiAgICAgaWYgKG1fZXJyb3JDb2RlKSB7Ci0gICAgICAgIG1fcmF3RGF0
YSA9IDA7CisgICAgICAgIG1fcmF3RGF0YSA9IG51bGxwdHI7CiAgICAgICAgIG1fc3RyaW5nUmVz
dWx0ID0gIiI7CiAgICAgfQogfQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvaGlzdG9yeS9I
aXN0b3J5SXRlbS5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9oaXN0b3J5L0hpc3RvcnlJdGVtLmNwcApp
bmRleCAyMjliYWI4Li44Mjk1NzNmIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9oaXN0b3J5
L0hpc3RvcnlJdGVtLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9oaXN0b3J5L0hpc3RvcnlJdGVt
LmNwcApAQCAtMTk2LDEwICsxOTYsMTAgQEAgdm9pZCBIaXN0b3J5SXRlbTo6cmVzZXQoKQogCiAg
ICAgbV9pdGVtU2VxdWVuY2VOdW1iZXIgPSBnZW5lcmF0ZVNlcXVlbmNlTnVtYmVyKCk7CiAKLSAg
ICBtX3N0YXRlT2JqZWN0ID0gMDsKKyAgICBtX3N0YXRlT2JqZWN0ID0gbnVsbHB0cjsKICAgICBt
X2RvY3VtZW50U2VxdWVuY2VOdW1iZXIgPSBnZW5lcmF0ZVNlcXVlbmNlTnVtYmVyKCk7CiAKLSAg
ICBtX2Zvcm1EYXRhID0gMDsKKyAgICBtX2Zvcm1EYXRhID0gbnVsbHB0cjsKICAgICBtX2Zvcm1D
b250ZW50VHlwZSA9IFN0cmluZygpOwogCiAgICAgY2xlYXJDaGlsZHJlbigpOwpAQCAtNTI0LDcg
KzUyNCw3IEBAIHZvaWQgSGlzdG9yeUl0ZW06OnNldEZvcm1JbmZvRnJvbVJlcXVlc3QoY29uc3Qg
UmVzb3VyY2VSZXF1ZXN0JiByZXF1ZXN0KQogICAgICAgICBtX2Zvcm1EYXRhID0gcmVxdWVzdC5o
dHRwQm9keSgpOwogICAgICAgICBtX2Zvcm1Db250ZW50VHlwZSA9IHJlcXVlc3QuaHR0cENvbnRl
bnRUeXBlKCk7CiAgICAgfSBlbHNlIHsKLSAgICAgICAgbV9mb3JtRGF0YSA9IDA7CisgICAgICAg
IG1fZm9ybURhdGEgPSBudWxscHRyOwogICAgICAgICBtX2Zvcm1Db250ZW50VHlwZSA9IFN0cmlu
ZygpOwogICAgIH0KIH0KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2h0bWwvQmFzZUNob29z
ZXJPbmx5RGF0ZUFuZFRpbWVJbnB1dFR5cGUuY3BwIGIvU291cmNlL1dlYkNvcmUvaHRtbC9CYXNl
Q2hvb3Nlck9ubHlEYXRlQW5kVGltZUlucHV0VHlwZS5jcHAKaW5kZXggZTlhNmNjMC4uZGJlYTBl
OSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvaHRtbC9CYXNlQ2hvb3Nlck9ubHlEYXRlQW5k
VGltZUlucHV0VHlwZS5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvaHRtbC9CYXNlQ2hvb3Nlck9u
bHlEYXRlQW5kVGltZUlucHV0VHlwZS5jcHAKQEAgLTk4LDcgKzk4LDcgQEAgdm9pZCBCYXNlQ2hv
b3Nlck9ubHlEYXRlQW5kVGltZUlucHV0VHlwZTo6ZGlkQ2hvb3NlVmFsdWUoY29uc3QgU3RyaW5n
JiB2YWx1ZSkKIAogdm9pZCBCYXNlQ2hvb3Nlck9ubHlEYXRlQW5kVGltZUlucHV0VHlwZTo6ZGlk
RW5kQ2hvb3NlcigpCiB7Ci0gICAgbV9kYXRlVGltZUNob29zZXIuY2xlYXIoKTsKKyAgICBtX2Rh
dGVUaW1lQ2hvb3NlciA9IG51bGxwdHI7CiB9CiAKIHZvaWQgQmFzZUNob29zZXJPbmx5RGF0ZUFu
ZFRpbWVJbnB1dFR5cGU6OmNsb3NlRGF0ZVRpbWVDaG9vc2VyKCkKZGlmZiAtLWdpdCBhL1NvdXJj
ZS9XZWJDb3JlL2h0bWwvRlRQRGlyZWN0b3J5RG9jdW1lbnQuY3BwIGIvU291cmNlL1dlYkNvcmUv
aHRtbC9GVFBEaXJlY3RvcnlEb2N1bWVudC5jcHAKaW5kZXggZTc1NTNkNy4uMDBkZTlmZiAxMDA2
NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvaHRtbC9GVFBEaXJlY3RvcnlEb2N1bWVudC5jcHAKKysr
IGIvU291cmNlL1dlYkNvcmUvaHRtbC9GVFBEaXJlY3RvcnlEb2N1bWVudC5jcHAKQEAgLTQxMSw3
ICs0MTEsNyBAQCB2b2lkIEZUUERpcmVjdG9yeURvY3VtZW50UGFyc2VyOjpmaW5pc2goKQogICAg
ICAgICBtX2NhcnJ5T3ZlciA9IFN0cmluZygpOwogICAgIH0KIAotICAgIG1fdGFibGVFbGVtZW50
ID0gMDsKKyAgICBtX3RhYmxlRWxlbWVudCA9IG51bGxwdHI7CiAgICAgZmFzdEZyZWUobV9idWZm
ZXIpOwogCiAgICAgSFRNTERvY3VtZW50UGFyc2VyOjpmaW5pc2goKTsKZGlmZiAtLWdpdCBhL1Nv
dXJjZS9XZWJDb3JlL2h0bWwvRmlsZUlucHV0VHlwZS5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9odG1s
L0ZpbGVJbnB1dFR5cGUuY3BwCmluZGV4IGEzZDNiNmIuLjQ4OWQ3OTkgMTAwNjQ0Ci0tLSBhL1Nv
dXJjZS9XZWJDb3JlL2h0bWwvRmlsZUlucHV0VHlwZS5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUv
aHRtbC9GaWxlSW5wdXRUeXBlLmNwcApAQCAtMjUwLDcgKzI1MCw3IEBAIHZvaWQgRmlsZUlucHV0
VHlwZTo6c2V0VmFsdWUoY29uc3QgU3RyaW5nJiwgYm9vbCwgVGV4dEZpZWxkRXZlbnRCZWhhdmlv
cikKIHsKICAgICAvLyBGSVhNRTogU2hvdWxkIHdlIGNsZWFyIHRoZSBmaWxlIGxpc3QsIG9yIHJl
cGxhY2UgaXQgd2l0aCBhIG5ldyBlbXB0eSBvbmUgaGVyZT8gVGhpcyBpcyBvYnNlcnZhYmxlIGZy
b20gSmF2YVNjcmlwdCB0aHJvdWdoIGN1c3RvbSBwcm9wZXJ0aWVzLgogICAgIG1fZmlsZUxpc3Qt
PmNsZWFyKCk7Ci0gICAgbV9pY29uLmNsZWFyKCk7CisgICAgbV9pY29uID0gbnVsbHB0cjsKICAg
ICBlbGVtZW50KCkuc2V0TmVlZHNTdHlsZVJlY2FsYygpOwogfQogCmRpZmYgLS1naXQgYS9Tb3Vy
Y2UvV2ViQ29yZS9odG1sL0hUTUxDYW52YXNFbGVtZW50LmNwcCBiL1NvdXJjZS9XZWJDb3JlL2h0
bWwvSFRNTENhbnZhc0VsZW1lbnQuY3BwCmluZGV4IDg2ZDQ1YTQuLmNlNWQ3YjIgMTAwNjQ0Ci0t
LSBhL1NvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTENhbnZhc0VsZW1lbnQuY3BwCisrKyBiL1NvdXJj
ZS9XZWJDb3JlL2h0bWwvSFRNTENhbnZhc0VsZW1lbnQuY3BwCkBAIC00MjMsNyArNDIzLDcgQEAg
dm9pZCBIVE1MQ2FudmFzRWxlbWVudDo6bWFrZVByZXNlbnRhdGlvbkNvcHkoKQogCiB2b2lkIEhU
TUxDYW52YXNFbGVtZW50OjpjbGVhclByZXNlbnRhdGlvbkNvcHkoKQogewotICAgIG1fcHJlc2Vu
dGVkSW1hZ2UuY2xlYXIoKTsKKyAgICBtX3ByZXNlbnRlZEltYWdlID0gbnVsbHB0cjsKIH0KIAog
dm9pZCBIVE1MQ2FudmFzRWxlbWVudDo6c2V0U3VyZmFjZVNpemUoY29uc3QgSW50U2l6ZSYgc2l6
ZSkKQEAgLTY0NCw3ICs2NDQsNyBAQCB2b2lkIEhUTUxDYW52YXNFbGVtZW50OjpjbGVhckltYWdl
QnVmZmVyKCkgY29uc3QKIAogdm9pZCBIVE1MQ2FudmFzRWxlbWVudDo6Y2xlYXJDb3BpZWRJbWFn
ZSgpCiB7Ci0gICAgbV9jb3BpZWRJbWFnZS5jbGVhcigpOworICAgIG1fY29waWVkSW1hZ2UgPSBu
dWxscHRyOwogICAgIG1fZGlkQ2xlYXJJbWFnZUJ1ZmZlciA9IGZhbHNlOwogfQogCmRpZmYgLS1n
aXQgYS9Tb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxMaW5rRWxlbWVudC5jcHAgYi9Tb3VyY2UvV2Vi
Q29yZS9odG1sL0hUTUxMaW5rRWxlbWVudC5jcHAKaW5kZXggYzIzZWRmZi4uZTRlMTI4MSAxMDA2
NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvaHRtbC9IVE1MTGlua0VsZW1lbnQuY3BwCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL2h0bWwvSFRNTExpbmtFbGVtZW50LmNwcApAQCAtMjY0LDcgKzI2NCw3IEBA
IHZvaWQgSFRNTExpbmtFbGVtZW50OjpjbGVhclNoZWV0KCkKICAgICBBU1NFUlQobV9zaGVldCk7
CiAgICAgQVNTRVJUKG1fc2hlZXQtPm93bmVyTm9kZSgpID09IHRoaXMpOwogICAgIG1fc2hlZXQt
PmNsZWFyT3duZXJOb2RlKCk7Ci0gICAgbV9zaGVldCA9IDA7CisgICAgbV9zaGVldCA9IG51bGxw
dHI7CiB9CiAKIE5vZGU6Okluc2VydGlvbk5vdGlmaWNhdGlvblJlcXVlc3QgSFRNTExpbmtFbGVt
ZW50OjppbnNlcnRlZEludG8oQ29udGFpbmVyTm9kZSYgaW5zZXJ0aW9uUG9pbnQpCmRpZmYgLS1n
aXQgYS9Tb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxNZWRpYUVsZW1lbnQuY3BwIGIvU291cmNlL1dl
YkNvcmUvaHRtbC9IVE1MTWVkaWFFbGVtZW50LmNwcAppbmRleCA0ZmVhZWI5Li5kZDg4OTJmIDEw
MDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxNZWRpYUVsZW1lbnQuY3BwCisrKyBi
L1NvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTE1lZGlhRWxlbWVudC5jcHAKQEAgLTQ1Nyw3ICs0NTcs
NyBAQCBIVE1MTWVkaWFFbGVtZW50Ojp+SFRNTE1lZGlhRWxlbWVudCgpCiAKICAgICBpZiAobV9t
ZWRpYUNvbnRyb2xsZXIpIHsKICAgICAgICAgbV9tZWRpYUNvbnRyb2xsZXItPnJlbW92ZU1lZGlh
RWxlbWVudCh0aGlzKTsKLSAgICAgICAgbV9tZWRpYUNvbnRyb2xsZXIgPSAwOworICAgICAgICBt
X21lZGlhQ29udHJvbGxlciA9IG51bGxwdHI7CiAgICAgfQogCiAjaWYgRU5BQkxFKE1FRElBX1NP
VVJDRSkKQEAgLTk0Miw3ICs5NDIsNyBAQCB2b2lkIEhUTUxNZWRpYUVsZW1lbnQ6OnByZXBhcmVG
b3JMb2FkKCkKIAogICAgIC8vIDEgLSBBYm9ydCBhbnkgYWxyZWFkeS1ydW5uaW5nIGluc3RhbmNl
IG9mIHRoZSByZXNvdXJjZSBzZWxlY3Rpb24gYWxnb3JpdGhtIGZvciB0aGlzIGVsZW1lbnQuCiAg
ICAgbV9sb2FkU3RhdGUgPSBXYWl0aW5nRm9yU291cmNlOwotICAgIG1fY3VycmVudFNvdXJjZU5v
ZGUgPSAwOworICAgIG1fY3VycmVudFNvdXJjZU5vZGUgPSBudWxscHRyOwogCiAgICAgLy8gMiAt
IElmIHRoZXJlIGFyZSBhbnkgdGFza3MgZnJvbSB0aGUgbWVkaWEgZWxlbWVudCdzIG1lZGlhIGVs
ZW1lbnQgZXZlbnQgdGFzayBzb3VyY2UgaW4gCiAgICAgLy8gb25lIG9mIHRoZSB0YXNrIHF1ZXVl
cywgdGhlbiByZW1vdmUgdGhvc2UgdGFza3MuCkBAIC0xMDA2LDcgKzEwMDYsNyBAQCB2b2lkIEhU
TUxNZWRpYUVsZW1lbnQ6OnByZXBhcmVGb3JMb2FkKCkKICAgICBzZXRQbGF5YmFja1JhdGUoZGVm
YXVsdFBsYXliYWNrUmF0ZSgpKTsKIAogICAgIC8vIDYgLSBTZXQgdGhlIGVycm9yIGF0dHJpYnV0
ZSB0byBudWxsIGFuZCB0aGUgYXV0b3BsYXlpbmcgZmxhZyB0byB0cnVlLgotICAgIG1fZXJyb3Ig
PSAwOworICAgIG1fZXJyb3IgPSBudWxscHRyOwogICAgIG1fYXV0b3BsYXlpbmcgPSB0cnVlOwog
CiAgICAgLy8gNyAtIEludm9rZSB0aGUgbWVkaWEgZWxlbWVudCdzIHJlc291cmNlIHNlbGVjdGlv
biBhbGdvcml0aG0uCkBAIC0xMTAxLDcgKzExMDEsNyBAQCB2b2lkIEhUTUxNZWRpYUVsZW1lbnQ6
OnNlbGVjdE1lZGlhUmVzb3VyY2UoKQogICAgICAgICBpZiAoYXV0byBmaXJzdFNvdXJjZSA9IGNo
aWxkcmVuT2ZUeXBlPEhUTUxTb3VyY2VFbGVtZW50PigqdGhpcykuZmlyc3QoKSkgewogICAgICAg
ICAgICAgbW9kZSA9IGNoaWxkcmVuOwogICAgICAgICAgICAgbV9uZXh0Q2hpbGROb2RlVG9Db25z
aWRlciA9IGZpcnN0U291cmNlOwotICAgICAgICAgICAgbV9jdXJyZW50U291cmNlTm9kZSA9IDA7
CisgICAgICAgICAgICBtX2N1cnJlbnRTb3VyY2VOb2RlID0gbnVsbHB0cjsKICAgICAgICAgfSBl
bHNlIHsKICAgICAgICAgICAgIC8vIE90aGVyd2lzZSB0aGUgbWVkaWEgZWxlbWVudCBoYXMgbmVp
dGhlciBhIHNyYyBhdHRyaWJ1dGUgbm9yIGEgc291cmNlIGVsZW1lbnQgCiAgICAgICAgICAgICAv
LyBjaGlsZDogc2V0IHRoZSBuZXR3b3JrU3RhdGUgdG8gTkVUV09SS19FTVBUWSwgYW5kIGFib3J0
IHRoZXNlIHN0ZXBzOyB0aGUgCkBAIC0xMjc3LDcgKzEyNzcsNyBAQCB2b2lkIEhUTUxNZWRpYUVs
ZW1lbnQ6OmxvYWRSZXNvdXJjZShjb25zdCBVUkwmIGluaXRpYWxVUkwsIENvbnRlbnRUeXBlJiBj
b250ZW50VAogICAgICAgICBlbHNlIHsKICAgICAgICAgICAgIC8vIEZvcmdldCBvdXIgcmVmZXJl
bmNlIHRvIHRoZSBNZWRpYVNvdXJjZSwgc28gd2UgbGVhdmUgaXQgYWxvbmUKICAgICAgICAgICAg
IC8vIHdoaWxlIHByb2Nlc3NpbmcgcmVtYWluZGVyIG9mIGxvYWQgZmFpbHVyZS4KLSAgICAgICAg
ICAgIG1fbWVkaWFTb3VyY2UgPSAwOworICAgICAgICAgICAgbV9tZWRpYVNvdXJjZSA9IG51bGxw
dHI7CiAgICAgICAgICAgICBtZWRpYUxvYWRpbmdGYWlsZWQoTWVkaWFQbGF5ZXI6OkZvcm1hdEVy
cm9yKTsKICAgICAgICAgfQogICAgIH0gZWxzZQpAQCAtMTgwMCw3ICsxODAwLDcgQEAgdm9pZCBI
VE1MTWVkaWFFbGVtZW50Ojpub25lU3VwcG9ydGVkKCkKIAogICAgIHN0b3BQZXJpb2RpY1RpbWVy
cygpOwogICAgIG1fbG9hZFN0YXRlID0gV2FpdGluZ0ZvclNvdXJjZTsKLSAgICBtX2N1cnJlbnRT
b3VyY2VOb2RlID0gMDsKKyAgICBtX2N1cnJlbnRTb3VyY2VOb2RlID0gbnVsbHB0cjsKIAogICAg
IC8vIDQuOC4xMC41IAogICAgIC8vIDYgLSBSZWFjaGluZyB0aGlzIHN0ZXAgaW5kaWNhdGVzIHRo
YXQgdGhlIG1lZGlhIHJlc291cmNlIGZhaWxlZCB0byBsb2FkIG9yIHRoYXQgdGhlIGdpdmVuIApA
QCAtMjkzOSw3ICsyOTM5LDcgQEAgdm9pZCBIVE1MTWVkaWFFbGVtZW50OjpjbG9zZU1lZGlhU291
cmNlKCkKICAgICAgICAgcmV0dXJuOwogCiAgICAgbV9tZWRpYVNvdXJjZS0+Y2xvc2UoKTsKLSAg
ICBtX21lZGlhU291cmNlID0gMDsKKyAgICBtX21lZGlhU291cmNlID0gbnVsbHB0cjsKIH0KICNl
bmRpZgogCkBAIC00MTEyLDggKzQxMTIsOCBAQCBjaGVja19hZ2FpbjoKICAgICAgICAgbV9jdXJy
ZW50U291cmNlTm9kZSA9IHNvdXJjZTsKICAgICAgICAgbV9uZXh0Q2hpbGROb2RlVG9Db25zaWRl
ciA9IHNvdXJjZS0+bmV4dFNpYmxpbmcoKTsKICAgICB9IGVsc2UgewotICAgICAgICBtX2N1cnJl
bnRTb3VyY2VOb2RlID0gMDsKLSAgICAgICAgbV9uZXh0Q2hpbGROb2RlVG9Db25zaWRlciA9IDA7
CisgICAgICAgIG1fY3VycmVudFNvdXJjZU5vZGUgPSBudWxscHRyOworICAgICAgICBtX25leHRD
aGlsZE5vZGVUb0NvbnNpZGVyID0gbnVsbHB0cjsKICAgICB9CiAKICNpZiAhTE9HX0RJU0FCTEVE
CkBAIC00MTkzLDcgKzQxOTMsNyBAQCB2b2lkIEhUTUxNZWRpYUVsZW1lbnQ6OnNvdXJjZVdhc1Jl
bW92ZWQoSFRNTFNvdXJjZUVsZW1lbnQqIHNvdXJjZSkKICAgICAgICAgLy8gQ2xlYXIgdGhlIGN1
cnJlbnQgc291cmNlIG5vZGUgcG9pbnRlciwgYnV0IGRvbid0IGNoYW5nZSB0aGUgbW92aWUgYXMg
dGhlIHNwZWMgc2F5czoKICAgICAgICAgLy8gNC44LjggLSBEeW5hbWljYWxseSBtb2RpZnlpbmcg
YSBzb3VyY2UgZWxlbWVudCBhbmQgaXRzIGF0dHJpYnV0ZSB3aGVuIHRoZSBlbGVtZW50IGlzIGFs
cmVhZHkgCiAgICAgICAgIC8vIGluc2VydGVkIGluIGEgdmlkZW8gb3IgYXVkaW8gZWxlbWVudCB3
aWxsIGhhdmUgbm8gZWZmZWN0LgotICAgICAgICBtX2N1cnJlbnRTb3VyY2VOb2RlID0gMDsKKyAg
ICAgICAgbV9jdXJyZW50U291cmNlTm9kZSA9IG51bGxwdHI7CiAgICAgICAgIExPRyhNZWRpYSwg
IkhUTUxNZWRpYUVsZW1lbnQ6OnNvdXJjZVJlbW92ZWQoJXApIC0gbV9jdXJyZW50U291cmNlTm9k
ZSBzZXQgdG8gMCIsIHRoaXMpOwogICAgIH0KIH0KQEAgLTQ3OTUsNyArNDc5NSw3IEBAIHZvaWQg
SFRNTE1lZGlhRWxlbWVudDo6dXNlckNhbmNlbGxlZExvYWQoKQogICAgIHNldFNob3VsZERlbGF5
TG9hZEV2ZW50KGZhbHNlKTsKIAogICAgIC8vIDYgLSBBYm9ydCB0aGUgb3ZlcmFsbCByZXNvdXJj
ZSBzZWxlY3Rpb24gYWxnb3JpdGhtLgotICAgIG1fY3VycmVudFNvdXJjZU5vZGUgPSAwOworICAg
IG1fY3VycmVudFNvdXJjZU5vZGUgPSBudWxscHRyOwogCiAgICAgLy8gUmVzZXQgbV9yZWFkeVN0
YXRlIHNpbmNlIG1fcGxheWVyIGlzIGdvbmUuCiAgICAgbV9yZWFkeVN0YXRlID0gSEFWRV9OT1RI
SU5HOwpAQCAtNDgxMiw4ICs0ODEyLDggQEAgdm9pZCBIVE1MTWVkaWFFbGVtZW50OjpjbGVhck1l
ZGlhUGxheWVyKGludCBmbGFncykKIAogI2lmIFVTRShQTEFURk9STV9URVhUX1RSQUNLX01FTlUp
CiAgICAgaWYgKHBsYXRmb3JtVGV4dFRyYWNrTWVudSgpKSB7Ci0gICAgICAgIG1fcGxhdGZvcm1N
ZW51LT5zZXRDbGllbnQoMCk7Ci0gICAgICAgIG1fcGxhdGZvcm1NZW51ID0gMDsKKyAgICAgICAg
bV9wbGF0Zm9ybU1lbnUtPnNldENsaWVudChudWxscHRyKTsKKyAgICAgICAgbV9wbGF0Zm9ybU1l
bnUgPSBudWxscHRyOwogICAgIH0KICNlbmRpZgogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29y
ZS9odG1sL0hUTUxQbHVnSW5FbGVtZW50LmNwcCBiL1NvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTFBs
dWdJbkVsZW1lbnQuY3BwCmluZGV4IDIyMDQ2ZWEuLmQ3ODZkZjQgMTAwNjQ0Ci0tLSBhL1NvdXJj
ZS9XZWJDb3JlL2h0bWwvSFRNTFBsdWdJbkVsZW1lbnQuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3Jl
L2h0bWwvSFRNTFBsdWdJbkVsZW1lbnQuY3BwCkBAIC0xMDQsNyArMTA0LDcgQEAgYm9vbCBIVE1M
UGx1Z0luRWxlbWVudDo6d2lsbFJlc3BvbmRUb01vdXNlQ2xpY2tFdmVudHMoKQogCiB2b2lkIEhU
TUxQbHVnSW5FbGVtZW50Ojp3aWxsRGV0YWNoUmVuZGVyZXJzKCkKIHsKLSAgICBtX2luc3RhbmNl
LmNsZWFyKCk7CisgICAgbV9pbnN0YW5jZSA9IG51bGxwdHI7CiAKICAgICBpZiAobV9pc0NhcHR1
cmluZ01vdXNlRXZlbnRzKSB7CiAgICAgICAgIGlmIChGcmFtZSogZnJhbWUgPSBkb2N1bWVudCgp
LmZyYW1lKCkpCkBAIC0xMjIsNyArMTIyLDcgQEAgdm9pZCBIVE1MUGx1Z0luRWxlbWVudDo6d2ls
bERldGFjaFJlbmRlcmVycygpCiAKIHZvaWQgSFRNTFBsdWdJbkVsZW1lbnQ6OnJlc2V0SW5zdGFu
Y2UoKQogewotICAgIG1faW5zdGFuY2UuY2xlYXIoKTsKKyAgICBtX2luc3RhbmNlID0gbnVsbHB0
cjsKIH0KIAogUGFzc1JlZlB0cjxKU0M6OkJpbmRpbmdzOjpJbnN0YW5jZT4gSFRNTFBsdWdJbkVs
ZW1lbnQ6OmdldEluc3RhbmNlKCkKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2h0bWwvSFRN
TFRhYmxlRWxlbWVudC5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxUYWJsZUVsZW1lbnQu
Y3BwCmluZGV4IDRmYjY1NjkuLjc0NTczNjEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2h0
bWwvSFRNTFRhYmxlRWxlbWVudC5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvaHRtbC9IVE1MVGFi
bGVFbGVtZW50LmNwcApAQCAtNDAyLDcgKzQwMiw3IEBAIHZvaWQgSFRNTFRhYmxlRWxlbWVudDo6
cGFyc2VBdHRyaWJ1dGUoY29uc3QgUXVhbGlmaWVkTmFtZSYgbmFtZSwgY29uc3QgQXRvbWljU3Ry
CiAgICAgICAgIEhUTUxFbGVtZW50OjpwYXJzZUF0dHJpYnV0ZShuYW1lLCB2YWx1ZSk7CiAKICAg
ICBpZiAoYm9yZGVyc0JlZm9yZSAhPSBjZWxsQm9yZGVycygpIHx8IG9sZFBhZGRpbmcgIT0gbV9w
YWRkaW5nKSB7Ci0gICAgICAgIG1fc2hhcmVkQ2VsbFN0eWxlID0gMDsKKyAgICAgICAgbV9zaGFy
ZWRDZWxsU3R5bGUgPSBudWxscHRyOwogICAgICAgICBib29sIGNlbGxDaGFuZ2VkID0gZmFsc2U7
CiAgICAgICAgIGZvciAoTm9kZSogY2hpbGQgPSBmaXJzdENoaWxkKCk7IGNoaWxkOyBjaGlsZCA9
IGNoaWxkLT5uZXh0U2libGluZygpKQogICAgICAgICAgICAgY2VsbENoYW5nZWQgfD0gc2V0VGFi
bGVDZWxsc0NoYW5nZWQoY2hpbGQpOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvaHRtbC9Q
bHVnaW5Eb2N1bWVudC5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9odG1sL1BsdWdpbkRvY3VtZW50LmNw
cAppbmRleCA3Nzk2YzI3Li5lOTY3NzA5IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9odG1s
L1BsdWdpbkRvY3VtZW50LmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9odG1sL1BsdWdpbkRvY3Vt
ZW50LmNwcApAQCAtMTY4LDggKzE2OCw4IEBAIHZvaWQgUGx1Z2luRG9jdW1lbnQ6OnNldFBsdWdp
bkVsZW1lbnQoUGFzc1JlZlB0cjxIVE1MUGx1Z0luRWxlbWVudD4gZWxlbWVudCkKIHZvaWQgUGx1
Z2luRG9jdW1lbnQ6OmRldGFjaEZyb21QbHVnaW5FbGVtZW50KCkKIHsKICAgICAvLyBSZWxlYXNl
IHRoZSBwbHVnaW4gRWxlbWVudCBzbyB0aGF0IHdlIGRvbid0IGhhdmUgYSBjaXJjdWxhciByZWZl
cmVuY2UuCi0gICAgbV9wbHVnaW5FbGVtZW50ID0gMDsKLSAgICBmcmFtZSgpLT5sb2FkZXIoKS5j
bGllbnQoKS5yZWRpcmVjdERhdGFUb1BsdWdpbigwKTsKKyAgICBtX3BsdWdpbkVsZW1lbnQgPSBu
dWxscHRyOworICAgIGZyYW1lKCktPmxvYWRlcigpLmNsaWVudCgpLnJlZGlyZWN0RGF0YVRvUGx1
Z2luKG51bGxwdHIpOwogfQogCiB2b2lkIFBsdWdpbkRvY3VtZW50OjpjYW5jZWxNYW51YWxQbHVn
aW5Mb2FkKCkKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2h0bWwvVGV4dEZpZWxkSW5wdXRU
eXBlLmNwcCBiL1NvdXJjZS9XZWJDb3JlL2h0bWwvVGV4dEZpZWxkSW5wdXRUeXBlLmNwcAppbmRl
eCA0YjI4YWE4Li5lYWUzZGIyIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9odG1sL1RleHRG
aWVsZElucHV0VHlwZS5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvaHRtbC9UZXh0RmllbGRJbnB1
dFR5cGUuY3BwCkBAIC00NjIsNyArNDYyLDcgQEAgdm9pZCBUZXh0RmllbGRJbnB1dFR5cGU6OnVw
ZGF0ZVBsYWNlaG9sZGVyVGV4dCgpCiAgICAgaWYgKHBsYWNlaG9sZGVyVGV4dC5pc0VtcHR5KCkp
IHsKICAgICAgICAgaWYgKG1fcGxhY2Vob2xkZXIpIHsKICAgICAgICAgICAgIG1fcGxhY2Vob2xk
ZXItPnBhcmVudE5vZGUoKS0+cmVtb3ZlQ2hpbGQobV9wbGFjZWhvbGRlci5nZXQoKSwgQVNTRVJU
X05PX0VYQ0VQVElPTik7Ci0gICAgICAgICAgICBtX3BsYWNlaG9sZGVyLmNsZWFyKCk7CisgICAg
ICAgICAgICBtX3BsYWNlaG9sZGVyID0gbnVsbHB0cjsKICAgICAgICAgfQogICAgICAgICByZXR1
cm47CiAgICAgfQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvaHRtbC9WYWxpZGF0aW9uTWVz
c2FnZS5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9odG1sL1ZhbGlkYXRpb25NZXNzYWdlLmNwcAppbmRl
eCA1M2I2NzViLi5mNjFlMWI1IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9odG1sL1ZhbGlk
YXRpb25NZXNzYWdlLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9odG1sL1ZhbGlkYXRpb25NZXNz
YWdlLmNwcApAQCAtMjM1LDEwICsyMzUsMTAgQEAgdm9pZCBWYWxpZGF0aW9uTWVzc2FnZTo6ZGVs
ZXRlQnViYmxlVHJlZSgpCiB7CiAgICAgQVNTRVJUKCF2YWxpZGF0aW9uTWVzc2FnZUNsaWVudCgp
KTsKICAgICBpZiAobV9idWJibGUpIHsKLSAgICAgICAgbV9tZXNzYWdlSGVhZGluZyA9IDA7Ci0g
ICAgICAgIG1fbWVzc2FnZUJvZHkgPSAwOworICAgICAgICBtX21lc3NhZ2VIZWFkaW5nID0gbnVs
bHB0cjsKKyAgICAgICAgbV9tZXNzYWdlQm9keSA9IG51bGxwdHI7CiAgICAgICAgIG1fZWxlbWVu
dC0+dXNlckFnZW50U2hhZG93Um9vdCgpLT5yZW1vdmVDaGlsZChtX2J1YmJsZS5nZXQoKSwgQVNT
RVJUX05PX0VYQ0VQVElPTik7Ci0gICAgICAgIG1fYnViYmxlID0gMDsKKyAgICAgICAgbV9idWJi
bGUgPSBudWxscHRyOwogICAgIH0KICAgICBtX21lc3NhZ2UgPSBTdHJpbmcoKTsKIH0KZGlmZiAt
LWdpdCBhL1NvdXJjZS9XZWJDb3JlL2h0bWwvY2FudmFzL1dlYkdMUHJvZ3JhbS5jcHAgYi9Tb3Vy
Y2UvV2ViQ29yZS9odG1sL2NhbnZhcy9XZWJHTFByb2dyYW0uY3BwCmluZGV4IDkyYzA1MTEuLjFi
NzUyZTYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2h0bWwvY2FudmFzL1dlYkdMUHJvZ3Jh
bS5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvaHRtbC9jYW52YXMvV2ViR0xQcm9ncmFtLmNwcApA
QCAtNTgsMTEgKzU4LDExIEBAIHZvaWQgV2ViR0xQcm9ncmFtOjpkZWxldGVPYmplY3RJbXBsKEdy
YXBoaWNzQ29udGV4dDNEKiBjb250ZXh0M2QsIFBsYXRmb3JtM0RPYmplCiAgICAgY29udGV4dDNk
LT5kZWxldGVQcm9ncmFtKG9iaik7CiAgICAgaWYgKG1fdmVydGV4U2hhZGVyKSB7CiAgICAgICAg
IG1fdmVydGV4U2hhZGVyLT5vbkRldGFjaGVkKGNvbnRleHQzZCk7Ci0gICAgICAgIG1fdmVydGV4
U2hhZGVyID0gMDsKKyAgICAgICAgbV92ZXJ0ZXhTaGFkZXIgPSBudWxscHRyOwogICAgIH0KICAg
ICBpZiAobV9mcmFnbWVudFNoYWRlcikgewogICAgICAgICBtX2ZyYWdtZW50U2hhZGVyLT5vbkRl
dGFjaGVkKGNvbnRleHQzZCk7Ci0gICAgICAgIG1fZnJhZ21lbnRTaGFkZXIgPSAwOworICAgICAg
ICBtX2ZyYWdtZW50U2hhZGVyID0gbnVsbHB0cjsKICAgICB9CiB9CiAKQEAgLTE0OCwxMiArMTQ4
LDEyIEBAIGJvb2wgV2ViR0xQcm9ncmFtOjpkZXRhY2hTaGFkZXIoV2ViR0xTaGFkZXIqIHNoYWRl
cikKICAgICBjYXNlIEdyYXBoaWNzQ29udGV4dDNEOjpWRVJURVhfU0hBREVSOgogICAgICAgICBp
ZiAobV92ZXJ0ZXhTaGFkZXIgIT0gc2hhZGVyKQogICAgICAgICAgICAgcmV0dXJuIGZhbHNlOwot
ICAgICAgICBtX3ZlcnRleFNoYWRlciA9IDA7CisgICAgICAgIG1fdmVydGV4U2hhZGVyID0gbnVs
bHB0cjsKICAgICAgICAgcmV0dXJuIHRydWU7CiAgICAgY2FzZSBHcmFwaGljc0NvbnRleHQzRDo6
RlJBR01FTlRfU0hBREVSOgogICAgICAgICBpZiAobV9mcmFnbWVudFNoYWRlciAhPSBzaGFkZXIp
CiAgICAgICAgICAgICByZXR1cm4gZmFsc2U7Ci0gICAgICAgIG1fZnJhZ21lbnRTaGFkZXIgPSAw
OworICAgICAgICBtX2ZyYWdtZW50U2hhZGVyID0gbnVsbHB0cjsKICAgICAgICAgcmV0dXJuIHRy
dWU7CiAgICAgZGVmYXVsdDoKICAgICAgICAgcmV0dXJuIGZhbHNlOwpkaWZmIC0tZ2l0IGEvU291
cmNlL1dlYkNvcmUvaHRtbC9jYW52YXMvV2ViR0xSZW5kZXJpbmdDb250ZXh0QmFzZS5jcHAgYi9T
b3VyY2UvV2ViQ29yZS9odG1sL2NhbnZhcy9XZWJHTFJlbmRlcmluZ0NvbnRleHRCYXNlLmNwcApp
bmRleCBiNjZiNjY5Li43YTFjZmYzIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9odG1sL2Nh
bnZhcy9XZWJHTFJlbmRlcmluZ0NvbnRleHRCYXNlLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9o
dG1sL2NhbnZhcy9XZWJHTFJlbmRlcmluZ0NvbnRleHRCYXNlLmNwcApAQCAtNDk0LDEwICs0OTQs
MTAgQEAgdm9pZCBXZWJHTFJlbmRlcmluZ0NvbnRleHRCYXNlOjppbml0aWFsaXplTmV3Q29udGV4
dCgpCiAgICAgbV91bnBhY2tGbGlwWSA9IGZhbHNlOwogICAgIG1fdW5wYWNrUHJlbXVsdGlwbHlB
bHBoYSA9IGZhbHNlOwogICAgIG1fdW5wYWNrQ29sb3JzcGFjZUNvbnZlcnNpb24gPSBHcmFwaGlj
c0NvbnRleHQzRDo6QlJPV1NFUl9ERUZBVUxUX1dFQkdMOwotICAgIG1fYm91bmRBcnJheUJ1ZmZl
ciA9IDA7Ci0gICAgbV9jdXJyZW50UHJvZ3JhbSA9IDA7Ci0gICAgbV9mcmFtZWJ1ZmZlckJpbmRp
bmcgPSAwOwotICAgIG1fcmVuZGVyYnVmZmVyQmluZGluZyA9IDA7CisgICAgbV9ib3VuZEFycmF5
QnVmZmVyID0gbnVsbHB0cjsKKyAgICBtX2N1cnJlbnRQcm9ncmFtID0gbnVsbHB0cjsKKyAgICBt
X2ZyYW1lYnVmZmVyQmluZGluZyA9IG51bGxwdHI7CisgICAgbV9yZW5kZXJidWZmZXJCaW5kaW5n
ID0gbnVsbHB0cjsKICAgICBtX2RlcHRoTWFzayA9IHRydWU7CiAgICAgbV9zdGVuY2lsRW5hYmxl
ZCA9IGZhbHNlOwogICAgIG1fc3RlbmNpbE1hc2sgPSAweEZGRkZGRkZGOwpAQCAtNjIzLDcgKzYy
Myw3IEBAIHZvaWQgV2ViR0xSZW5kZXJpbmdDb250ZXh0QmFzZTo6ZGVzdHJveUdyYXBoaWNzQ29u
dGV4dDNEKCkKICAgICBpZiAobV9jb250ZXh0KSB7CiAgICAgICAgIG1fY29udGV4dC0+c2V0Q29u
dGV4dExvc3RDYWxsYmFjayhudWxscHRyKTsKICAgICAgICAgbV9jb250ZXh0LT5zZXRFcnJvck1l
c3NhZ2VDYWxsYmFjayhudWxscHRyKTsKLSAgICAgICAgbV9jb250ZXh0LmNsZWFyKCk7CisgICAg
ICAgIG1fY29udGV4dCA9IG51bGxwdHI7CiAgICAgfQogfQogCkBAIC0xNDc5LDcgKzE0NzksNyBA
QCB2b2lkIFdlYkdMUmVuZGVyaW5nQ29udGV4dEJhc2U6OmRlbGV0ZUJ1ZmZlcihXZWJHTEJ1ZmZl
ciogYnVmZmVyKQogICAgIGlmICghZGVsZXRlT2JqZWN0KGJ1ZmZlcikpCiAgICAgICAgIHJldHVy
bjsKICAgICBpZiAobV9ib3VuZEFycmF5QnVmZmVyID09IGJ1ZmZlcikKLSAgICAgICAgbV9ib3Vu
ZEFycmF5QnVmZmVyID0gMDsKKyAgICAgICAgbV9ib3VuZEFycmF5QnVmZmVyID0gbnVsbHB0cjsK
IAogICAgIG1fYm91bmRWZXJ0ZXhBcnJheU9iamVjdC0+dW5iaW5kQnVmZmVyKGJ1ZmZlcik7CiB9
CkBAIC0xNDg5LDcgKzE0ODksNyBAQCB2b2lkIFdlYkdMUmVuZGVyaW5nQ29udGV4dEJhc2U6OmRl
bGV0ZUZyYW1lYnVmZmVyKFdlYkdMRnJhbWVidWZmZXIqIGZyYW1lYnVmZmVyKQogICAgIGlmICgh
ZGVsZXRlT2JqZWN0KGZyYW1lYnVmZmVyKSkKICAgICAgICAgcmV0dXJuOwogICAgIGlmIChmcmFt
ZWJ1ZmZlciA9PSBtX2ZyYW1lYnVmZmVyQmluZGluZykgewotICAgICAgICBtX2ZyYW1lYnVmZmVy
QmluZGluZyA9IDA7CisgICAgICAgIG1fZnJhbWVidWZmZXJCaW5kaW5nID0gbnVsbHB0cjsKICAg
ICAgICAgbV9jb250ZXh0LT5iaW5kRnJhbWVidWZmZXIoR3JhcGhpY3NDb250ZXh0M0Q6OkZSQU1F
QlVGRkVSLCAwKTsKICAgICB9CiB9CkBAIC0xNTA2LDcgKzE1MDYsNyBAQCB2b2lkIFdlYkdMUmVu
ZGVyaW5nQ29udGV4dEJhc2U6OmRlbGV0ZVJlbmRlcmJ1ZmZlcihXZWJHTFJlbmRlcmJ1ZmZlciog
cmVuZGVyYnVmZgogICAgIGlmICghZGVsZXRlT2JqZWN0KHJlbmRlcmJ1ZmZlcikpCiAgICAgICAg
IHJldHVybjsKICAgICBpZiAocmVuZGVyYnVmZmVyID09IG1fcmVuZGVyYnVmZmVyQmluZGluZykK
LSAgICAgICAgbV9yZW5kZXJidWZmZXJCaW5kaW5nID0gMDsKKyAgICAgICAgbV9yZW5kZXJidWZm
ZXJCaW5kaW5nID0gbnVsbHB0cjsKICAgICBpZiAobV9mcmFtZWJ1ZmZlckJpbmRpbmcpCiAgICAg
ICAgIG1fZnJhbWVidWZmZXJCaW5kaW5nLT5yZW1vdmVBdHRhY2htZW50RnJvbUJvdW5kRnJhbWVi
dWZmZXIocmVuZGVyYnVmZmVyKTsKIH0KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2h0bWwv
Y2FudmFzL1dlYkdMVmVydGV4QXJyYXlPYmplY3RCYXNlLmNwcCBiL1NvdXJjZS9XZWJDb3JlL2h0
bWwvY2FudmFzL1dlYkdMVmVydGV4QXJyYXlPYmplY3RCYXNlLmNwcAppbmRleCBmNmQ4ZGE2Li5m
MzljMGRkIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9odG1sL2NhbnZhcy9XZWJHTFZlcnRl
eEFycmF5T2JqZWN0QmFzZS5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvaHRtbC9jYW52YXMvV2Vi
R0xWZXJ0ZXhBcnJheU9iamVjdEJhc2UuY3BwCkBAIC03Niw3ICs3Niw3IEBAIHZvaWQgV2ViR0xW
ZXJ0ZXhBcnJheU9iamVjdEJhc2U6OnVuYmluZEJ1ZmZlcihQYXNzUmVmUHRyPFdlYkdMQnVmZmVy
PiBidWZmZXIpCiB7CiAgICAgaWYgKG1fYm91bmRFbGVtZW50QXJyYXlCdWZmZXIgPT0gYnVmZmVy
KSB7CiAgICAgICAgIG1fYm91bmRFbGVtZW50QXJyYXlCdWZmZXItPm9uRGV0YWNoZWQoY29udGV4
dCgpLT5ncmFwaGljc0NvbnRleHQzRCgpKTsKLSAgICAgICAgbV9ib3VuZEVsZW1lbnRBcnJheUJ1
ZmZlciA9IDA7CisgICAgICAgIG1fYm91bmRFbGVtZW50QXJyYXlCdWZmZXIgPSBudWxscHRyOwog
ICAgIH0KICAgICAKICAgICBmb3IgKHNpemVfdCBpID0gMDsgaSA8IG1fdmVydGV4QXR0cmliU3Rh
dGUuc2l6ZSgpOyArK2kpIHsKQEAgLTk1LDcgKzk1LDcgQEAgdm9pZCBXZWJHTFZlcnRleEFycmF5
T2JqZWN0QmFzZTo6dW5iaW5kQnVmZmVyKFBhc3NSZWZQdHI8V2ViR0xCdWZmZXI+IGJ1ZmZlcikK
ICAgICAgICAgICAgICAgICBzdGF0ZS5vcmlnaW5hbFN0cmlkZSA9IDA7CiAgICAgICAgICAgICAg
ICAgc3RhdGUub2Zmc2V0ID0gMDsKICAgICAgICAgICAgIH0gZWxzZQotICAgICAgICAgICAgICAg
IHN0YXRlLmJ1ZmZlckJpbmRpbmcgPSAwOworICAgICAgICAgICAgICAgIHN0YXRlLmJ1ZmZlckJp
bmRpbmcgPSBudWxscHRyOwogICAgICAgICB9CiAgICAgfQogfQpkaWZmIC0tZ2l0IGEvU291cmNl
L1dlYkNvcmUvaHRtbC90cmFjay9UZXh0VHJhY2suY3BwIGIvU291cmNlL1dlYkNvcmUvaHRtbC90
cmFjay9UZXh0VHJhY2suY3BwCmluZGV4IDc0ZWNmMTYuLjJhMTMzYTUgMTAwNjQ0Ci0tLSBhL1Nv
dXJjZS9XZWJDb3JlL2h0bWwvdHJhY2svVGV4dFRyYWNrLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29y
ZS9odG1sL3RyYWNrL1RleHRUcmFjay5jcHAKQEAgLTI0NSw3ICsyNDUsNyBAQCBUZXh0VHJhY2tD
dWVMaXN0KiBUZXh0VHJhY2s6OmN1ZXMoKQogICAgIC8vIGh0dHA6Ly93d3cud2hhdHdnLm9yZy9z
cGVjcy93ZWItYXBwcy9jdXJyZW50LXdvcmsvI2RvbS10ZXh0dHJhY2stY3VlcwogICAgIGlmICht
X21vZGUgIT0gZGlzYWJsZWRLZXl3b3JkKCkpCiAgICAgICAgIHJldHVybiBlbnN1cmVUZXh0VHJh
Y2tDdWVMaXN0KCk7Ci0gICAgcmV0dXJuIDA7CisgICAgcmV0dXJuIG51bGxwdHI7CiB9CiAKIHZv
aWQgVGV4dFRyYWNrOjpyZW1vdmVBbGxDdWVzKCkKQEAgLTI1Nyw5ICsyNTcsOSBAQCB2b2lkIFRl
eHRUcmFjazo6cmVtb3ZlQWxsQ3VlcygpCiAgICAgICAgIG1fY2xpZW50LT50ZXh0VHJhY2tSZW1v
dmVDdWVzKHRoaXMsIG1fY3Vlcy5nZXQoKSk7CiAgICAgCiAgICAgZm9yIChzaXplX3QgaSA9IDA7
IGkgPCBtX2N1ZXMtPmxlbmd0aCgpOyArK2kpCi0gICAgICAgIG1fY3Vlcy0+aXRlbShpKS0+c2V0
VHJhY2soMCk7CisgICAgICAgIG1fY3Vlcy0+aXRlbShpKS0+c2V0VHJhY2sobnVsbHB0cik7CiAg
ICAgCi0gICAgbV9jdWVzID0gMDsKKyAgICBtX2N1ZXMgPSBudWxscHRyOwogfQogCiBUZXh0VHJh
Y2tDdWVMaXN0KiBUZXh0VHJhY2s6OmFjdGl2ZUN1ZXMoKSBjb25zdApAQCAtMjcyLDcgKzI3Miw3
IEBAIFRleHRUcmFja0N1ZUxpc3QqIFRleHRUcmFjazo6YWN0aXZlQ3VlcygpIGNvbnN0CiAgICAg
Ly8gaHR0cDovL3d3dy53aGF0d2cub3JnL3NwZWNzL3dlYi1hcHBzL2N1cnJlbnQtd29yay8jZG9t
LXRleHR0cmFjay1hY3RpdmVjdWVzCiAgICAgaWYgKG1fY3VlcyAmJiBtX21vZGUgIT0gZGlzYWJs
ZWRLZXl3b3JkKCkpCiAgICAgICAgIHJldHVybiBtX2N1ZXMtPmFjdGl2ZUN1ZXMoKTsKLSAgICBy
ZXR1cm4gMDsKKyAgICByZXR1cm4gbnVsbHB0cjsKIH0KIAogdm9pZCBUZXh0VHJhY2s6OmFkZEN1
ZShQYXNzUmVmUHRyPFRleHRUcmFja0N1ZT4gcHJwQ3VlLCBFeGNlcHRpb25Db2RlJiBlYykKZGlm
ZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2h0bWwvdHJhY2svVlRUQ3VlLmNwcCBiL1NvdXJjZS9X
ZWJDb3JlL2h0bWwvdHJhY2svVlRUQ3VlLmNwcAppbmRleCAzNGEyZWU3Li4wYjljNzE3IDEwMDY0
NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9odG1sL3RyYWNrL1ZUVEN1ZS5jcHAKKysrIGIvU291cmNl
L1dlYkNvcmUvaHRtbC90cmFjay9WVFRDdWUuY3BwCkBAIC00ODIsNyArNDgyLDcgQEAgdm9pZCBW
VFRDdWU6OnNldFRleHQoY29uc3QgU3RyaW5nJiB0ZXh0KQogICAgIHdpbGxDaGFuZ2UoKTsKICAg
ICAvLyBDbGVhciB0aGUgZG9jdW1lbnQgZnJhZ21lbnQgYnV0IGRvbid0IGJvdGhlciB0byBjcmVh
dGUgaXQgYWdhaW4ganVzdCB5ZXQgYXMgd2UgY2FuIGRvIHRoYXQKICAgICAvLyB3aGVuIGl0IGlz
IHJlcXVlc3RlZC4KLSAgICBtX3dlYlZUVE5vZGVUcmVlID0gMDsKKyAgICBtX3dlYlZUVE5vZGVU
cmVlID0gbnVsbHB0cjsKICAgICBtX2NvbnRlbnQgPSB0ZXh0OwogICAgIGRpZENoYW5nZSgpOwog
fQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL0luc3BlY3RvckFwcGxpY2F0
aW9uQ2FjaGVBZ2VudC5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvSW5zcGVjdG9yQXBw
bGljYXRpb25DYWNoZUFnZW50LmNwcAppbmRleCBmZDRjYWY2Li4yZGNkMjZlIDEwMDY0NAotLS0g
YS9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvSW5zcGVjdG9yQXBwbGljYXRpb25DYWNoZUFnZW50
LmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvSW5zcGVjdG9yQXBwbGljYXRpb25D
YWNoZUFnZW50LmNwcApAQCAtNTgsNyArNTgsNyBAQCB2b2lkIEluc3BlY3RvckFwcGxpY2F0aW9u
Q2FjaGVBZ2VudDo6ZGlkQ3JlYXRlRnJvbnRlbmRBbmRCYWNrZW5kKEZyb250ZW5kQ2hhbm5lbAog
dm9pZCBJbnNwZWN0b3JBcHBsaWNhdGlvbkNhY2hlQWdlbnQ6OndpbGxEZXN0cm95RnJvbnRlbmRB
bmRCYWNrZW5kKEluc3BlY3Rvcjo6RGlzY29ubmVjdFJlYXNvbikKIHsKICAgICBtX2Zyb250ZW5k
RGlzcGF0Y2hlciA9IG51bGxwdHI7Ci0gICAgbV9iYWNrZW5kRGlzcGF0Y2hlci5jbGVhcigpOwor
ICAgIG1fYmFja2VuZERpc3BhdGNoZXIgPSBudWxscHRyOwogCiAgICAgbV9pbnN0cnVtZW50aW5n
QWdlbnRzLT5zZXRJbnNwZWN0b3JBcHBsaWNhdGlvbkNhY2hlQWdlbnQobnVsbHB0cik7CiB9CmRp
ZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvSW5zcGVjdG9yQ1NTQWdlbnQuY3Bw
IGIvU291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL0luc3BlY3RvckNTU0FnZW50LmNwcAppbmRleCBh
OTA4M2QwLi4zZDA2MjA4IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvSW5z
cGVjdG9yQ1NTQWdlbnQuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9JbnNwZWN0
b3JDU1NBZ2VudC5jcHAKQEAgLTM2MCw3ICszNjAsNyBAQCB2b2lkIEluc3BlY3RvckNTU0FnZW50
OjpkaWRDcmVhdGVGcm9udGVuZEFuZEJhY2tlbmQoSW5zcGVjdG9yOjpGcm9udGVuZENoYW5uZWwq
CiB2b2lkIEluc3BlY3RvckNTU0FnZW50Ojp3aWxsRGVzdHJveUZyb250ZW5kQW5kQmFja2VuZChJ
bnNwZWN0b3I6OkRpc2Nvbm5lY3RSZWFzb24pCiB7CiAgICAgbV9mcm9udGVuZERpc3BhdGNoZXIg
PSBudWxscHRyOwotICAgIG1fYmFja2VuZERpc3BhdGNoZXIuY2xlYXIoKTsKKyAgICBtX2JhY2tl
bmREaXNwYXRjaGVyID0gbnVsbHB0cjsKIAogICAgIHJlc2V0Tm9uUGVyc2lzdGVudERhdGEoKTsK
IH0KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9JbnNwZWN0b3JDb250cm9s
bGVyLmNwcCBiL1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9JbnNwZWN0b3JDb250cm9sbGVyLmNw
cAppbmRleCBmMjNhNWVhLi5iYzgwYmNhIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9pbnNw
ZWN0b3IvSW5zcGVjdG9yQ29udHJvbGxlci5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvaW5zcGVj
dG9yL0luc3BlY3RvckNvbnRyb2xsZXIuY3BwCkBAIC0yNjMsNyArMjYzLDcgQEAgdm9pZCBJbnNw
ZWN0b3JDb250cm9sbGVyOjpkaXNjb25uZWN0RnJvbnRlbmQoRGlzY29ubmVjdFJlYXNvbiByZWFz
b24pCiAgICAgbV9hZ2VudHMud2lsbERlc3Ryb3lGcm9udGVuZEFuZEJhY2tlbmQocmVhc29uKTsK
IAogICAgIG1fYmFja2VuZERpc3BhdGNoZXItPmNsZWFyRnJvbnRlbmQoKTsKLSAgICBtX2JhY2tl
bmREaXNwYXRjaGVyLmNsZWFyKCk7CisgICAgbV9iYWNrZW5kRGlzcGF0Y2hlciA9IG51bGxwdHI7
CiAgICAgbV9mcm9udGVuZENoYW5uZWwgPSBudWxscHRyOwogCiAgICAgbV9pc0F1dG9tYXRpY0lu
c3BlY3Rpb24gPSBmYWxzZTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9J
bnNwZWN0b3JET01BZ2VudC5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvSW5zcGVjdG9y
RE9NQWdlbnQuY3BwCmluZGV4IDBlZDJjNWMuLjcxOWY3NjEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9X
ZWJDb3JlL2luc3BlY3Rvci9JbnNwZWN0b3JET01BZ2VudC5jcHAKKysrIGIvU291cmNlL1dlYkNv
cmUvaW5zcGVjdG9yL0luc3BlY3RvckRPTUFnZW50LmNwcApAQCAtMjM4LDcgKzIzOCw3IEBAIHZv
aWQgSW5zcGVjdG9yRE9NQWdlbnQ6OmRpZENyZWF0ZUZyb250ZW5kQW5kQmFja2VuZChJbnNwZWN0
b3I6OkZyb250ZW5kQ2hhbm5lbCoKIHZvaWQgSW5zcGVjdG9yRE9NQWdlbnQ6OndpbGxEZXN0cm95
RnJvbnRlbmRBbmRCYWNrZW5kKEluc3BlY3Rvcjo6RGlzY29ubmVjdFJlYXNvbikKIHsKICAgICBt
X2Zyb250ZW5kRGlzcGF0Y2hlciA9IG51bGxwdHI7Ci0gICAgbV9iYWNrZW5kRGlzcGF0Y2hlci5j
bGVhcigpOworICAgIG1fYmFja2VuZERpc3BhdGNoZXIgPSBudWxscHRyOwogCiAgICAgbV9oaXN0
b3J5LnJlc2V0KCk7CiAgICAgbV9kb21FZGl0b3IucmVzZXQoKTsKQEAgLTI3Miw3ICsyNzIsNyBA
QCB2b2lkIEluc3BlY3RvckRPTUFnZW50OjpyZXNldCgpCiAgICAgZGlzY2FyZEJpbmRpbmdzKCk7
CiAgICAgaWYgKG1fcmV2YWxpZGF0ZVN0eWxlQXR0clRhc2spCiAgICAgICAgIG1fcmV2YWxpZGF0
ZVN0eWxlQXR0clRhc2stPnJlc2V0KCk7Ci0gICAgbV9kb2N1bWVudCA9IDA7CisgICAgbV9kb2N1
bWVudCA9IG51bGxwdHI7CiB9CiAKIHZvaWQgSW5zcGVjdG9yRE9NQWdlbnQ6OnNldERPTUxpc3Rl
bmVyKERPTUxpc3RlbmVyKiBsaXN0ZW5lcikKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2lu
c3BlY3Rvci9JbnNwZWN0b3JET01EZWJ1Z2dlckFnZW50LmNwcCBiL1NvdXJjZS9XZWJDb3JlL2lu
c3BlY3Rvci9JbnNwZWN0b3JET01EZWJ1Z2dlckFnZW50LmNwcAppbmRleCBmNzc4ZGQ5Li5kNTFk
NGJlIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvSW5zcGVjdG9yRE9NRGVi
dWdnZXJBZ2VudC5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL0luc3BlY3RvckRP
TURlYnVnZ2VyQWdlbnQuY3BwCkBAIC0xMDksNyArMTA5LDcgQEAgdm9pZCBJbnNwZWN0b3JET01E
ZWJ1Z2dlckFnZW50OjpkaWRDcmVhdGVGcm9udGVuZEFuZEJhY2tlbmQoSW5zcGVjdG9yOjpGcm9u
dGVuZEMKIAogdm9pZCBJbnNwZWN0b3JET01EZWJ1Z2dlckFnZW50Ojp3aWxsRGVzdHJveUZyb250
ZW5kQW5kQmFja2VuZChJbnNwZWN0b3I6OkRpc2Nvbm5lY3RSZWFzb24pCiB7Ci0gICAgbV9iYWNr
ZW5kRGlzcGF0Y2hlci5jbGVhcigpOworICAgIG1fYmFja2VuZERpc3BhdGNoZXIgPSBudWxscHRy
OwogCiAgICAgZGlzYWJsZSgpOwogfQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvaW5zcGVj
dG9yL0luc3BlY3RvckRPTVN0b3JhZ2VBZ2VudC5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0
b3IvSW5zcGVjdG9yRE9NU3RvcmFnZUFnZW50LmNwcAppbmRleCBiMTY4N2NmNS4uMDRhZjg4YiAx
MDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL0luc3BlY3RvckRPTVN0b3JhZ2VB
Z2VudC5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL0luc3BlY3RvckRPTVN0b3Jh
Z2VBZ2VudC5jcHAKQEAgLTc2LDcgKzc2LDcgQEAgdm9pZCBJbnNwZWN0b3JET01TdG9yYWdlQWdl
bnQ6OmRpZENyZWF0ZUZyb250ZW5kQW5kQmFja2VuZChJbnNwZWN0b3I6OkZyb250ZW5kQ2gKIHZv
aWQgSW5zcGVjdG9yRE9NU3RvcmFnZUFnZW50Ojp3aWxsRGVzdHJveUZyb250ZW5kQW5kQmFja2Vu
ZChJbnNwZWN0b3I6OkRpc2Nvbm5lY3RSZWFzb24pCiB7CiAgICAgbV9mcm9udGVuZERpc3BhdGNo
ZXIgPSBudWxscHRyOwotICAgIG1fYmFja2VuZERpc3BhdGNoZXIuY2xlYXIoKTsKKyAgICBtX2Jh
Y2tlbmREaXNwYXRjaGVyID0gbnVsbHB0cjsKIAogICAgIEVycm9yU3RyaW5nIHVudXNlZDsKICAg
ICBkaXNhYmxlKHVudXNlZCk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3Iv
SW5zcGVjdG9yRGF0YWJhc2VBZ2VudC5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvSW5z
cGVjdG9yRGF0YWJhc2VBZ2VudC5jcHAKaW5kZXggOTEzNGRmZS4uYmUyN2Y5NSAxMDA2NDQKLS0t
IGEvU291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL0luc3BlY3RvckRhdGFiYXNlQWdlbnQuY3BwCisr
KyBiL1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9JbnNwZWN0b3JEYXRhYmFzZUFnZW50LmNwcApA
QCAtMjMxLDcgKzIzMSw3IEBAIHZvaWQgSW5zcGVjdG9yRGF0YWJhc2VBZ2VudDo6ZGlkQ3JlYXRl
RnJvbnRlbmRBbmRCYWNrZW5kKEluc3BlY3Rvcjo6RnJvbnRlbmRDaGFuCiB2b2lkIEluc3BlY3Rv
ckRhdGFiYXNlQWdlbnQ6OndpbGxEZXN0cm95RnJvbnRlbmRBbmRCYWNrZW5kKEluc3BlY3Rvcjo6
RGlzY29ubmVjdFJlYXNvbikKIHsKICAgICBtX2Zyb250ZW5kRGlzcGF0Y2hlciA9IG51bGxwdHI7
Ci0gICAgbV9iYWNrZW5kRGlzcGF0Y2hlci5jbGVhcigpOworICAgIG1fYmFja2VuZERpc3BhdGNo
ZXIgPSBudWxscHRyOwogCiAgICAgRXJyb3JTdHJpbmcgdW51c2VkOwogICAgIGRpc2FibGUodW51
c2VkKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9JbnNwZWN0b3JJbmRl
eGVkREJBZ2VudC5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvSW5zcGVjdG9ySW5kZXhl
ZERCQWdlbnQuY3BwCmluZGV4IDliZjEyOTEuLjE3MmZiNTggMTAwNjQ0Ci0tLSBhL1NvdXJjZS9X
ZWJDb3JlL2luc3BlY3Rvci9JbnNwZWN0b3JJbmRleGVkREJBZ2VudC5jcHAKKysrIGIvU291cmNl
L1dlYkNvcmUvaW5zcGVjdG9yL0luc3BlY3RvckluZGV4ZWREQkFnZW50LmNwcApAQCAtNTgyLDcg
KzU4Miw3IEBAIHZvaWQgSW5zcGVjdG9ySW5kZXhlZERCQWdlbnQ6OmRpZENyZWF0ZUZyb250ZW5k
QW5kQmFja2VuZChJbnNwZWN0b3I6OkZyb250ZW5kQ2hhCiAKIHZvaWQgSW5zcGVjdG9ySW5kZXhl
ZERCQWdlbnQ6OndpbGxEZXN0cm95RnJvbnRlbmRBbmRCYWNrZW5kKEluc3BlY3Rvcjo6RGlzY29u
bmVjdFJlYXNvbikKIHsKLSAgICBtX2JhY2tlbmREaXNwYXRjaGVyLmNsZWFyKCk7CisgICAgbV9i
YWNrZW5kRGlzcGF0Y2hlciA9IG51bGxwdHI7CiAKICAgICBFcnJvclN0cmluZyB1bnVzZWQ7CiAg
ICAgZGlzYWJsZSh1bnVzZWQpOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvaW5zcGVjdG9y
L0luc3BlY3RvckxheWVyVHJlZUFnZW50LmNwcCBiL1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9J
bnNwZWN0b3JMYXllclRyZWVBZ2VudC5jcHAKaW5kZXggYmU2NDQ5Ni4uZjZlNDFmYSAxMDA2NDQK
LS0tIGEvU291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL0luc3BlY3RvckxheWVyVHJlZUFnZW50LmNw
cAorKysgYi9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvSW5zcGVjdG9yTGF5ZXJUcmVlQWdlbnQu
Y3BwCkBAIC02NSw3ICs2NSw3IEBAIHZvaWQgSW5zcGVjdG9yTGF5ZXJUcmVlQWdlbnQ6OmRpZENy
ZWF0ZUZyb250ZW5kQW5kQmFja2VuZChJbnNwZWN0b3I6OkZyb250ZW5kQ2hhCiB2b2lkIEluc3Bl
Y3RvckxheWVyVHJlZUFnZW50Ojp3aWxsRGVzdHJveUZyb250ZW5kQW5kQmFja2VuZChJbnNwZWN0
b3I6OkRpc2Nvbm5lY3RSZWFzb24pCiB7CiAgICAgbV9mcm9udGVuZERpc3BhdGNoZXIgPSBudWxs
cHRyOwotICAgIG1fYmFja2VuZERpc3BhdGNoZXIuY2xlYXIoKTsKKyAgICBtX2JhY2tlbmREaXNw
YXRjaGVyID0gbnVsbHB0cjsKIAogICAgIEVycm9yU3RyaW5nIHVudXNlZDsKICAgICBkaXNhYmxl
KHVudXNlZCk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvSW5zcGVjdG9y
T3ZlcmxheS5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvSW5zcGVjdG9yT3ZlcmxheS5j
cHAKaW5kZXggNmQzYTBmMy4uZmFlYTdjZSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvaW5z
cGVjdG9yL0luc3BlY3Rvck92ZXJsYXkuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rv
ci9JbnNwZWN0b3JPdmVybGF5LmNwcApAQCAtMjQzLDkgKzI0Myw5IEBAIHZvaWQgSW5zcGVjdG9y
T3ZlcmxheTo6c2V0UGF1c2VkSW5EZWJ1Z2dlck1lc3NhZ2UoY29uc3QgU3RyaW5nKiBtZXNzYWdl
KQogCiB2b2lkIEluc3BlY3Rvck92ZXJsYXk6OmhpZGVIaWdobGlnaHQoKQogewotICAgIG1faGln
aGxpZ2h0Tm9kZS5jbGVhcigpOwotICAgIG1faGlnaGxpZ2h0Tm9kZUxpc3QuY2xlYXIoKTsKLSAg
ICBtX2hpZ2hsaWdodFF1YWQucmVzZXQoKTsKKyAgICBtX2hpZ2hsaWdodE5vZGUgPSBudWxscHRy
OworICAgIG1faGlnaGxpZ2h0Tm9kZUxpc3QgPSBudWxscHRyOworICAgIG1faGlnaGxpZ2h0UXVh
ZCA9IG51bGxwdHI7CiAgICAgdXBkYXRlKCk7CiB9CiAKQEAgLTI1Myw3ICsyNTMsNyBAQCB2b2lk
IEluc3BlY3Rvck92ZXJsYXk6OmhpZ2hsaWdodE5vZGVMaXN0KFBhc3NSZWZQdHI8Tm9kZUxpc3Q+
IG5vZGVzLCBjb25zdCBIaWdobAogewogICAgIG1fbm9kZUhpZ2hsaWdodENvbmZpZyA9IGhpZ2hs
aWdodENvbmZpZzsKICAgICBtX2hpZ2hsaWdodE5vZGVMaXN0ID0gbm9kZXM7Ci0gICAgbV9oaWdo
bGlnaHROb2RlLmNsZWFyKCk7CisgICAgbV9oaWdobGlnaHROb2RlID0gbnVsbHB0cjsKICAgICB1
cGRhdGUoKTsKIH0KIApAQCAtMjYxLDcgKzI2MSw3IEBAIHZvaWQgSW5zcGVjdG9yT3ZlcmxheTo6
aGlnaGxpZ2h0Tm9kZShOb2RlKiBub2RlLCBjb25zdCBIaWdobGlnaHRDb25maWcmIGhpZ2hsaWdo
CiB7CiAgICAgbV9ub2RlSGlnaGxpZ2h0Q29uZmlnID0gaGlnaGxpZ2h0Q29uZmlnOwogICAgIG1f
aGlnaGxpZ2h0Tm9kZSA9IG5vZGU7Ci0gICAgbV9oaWdobGlnaHROb2RlTGlzdC5jbGVhcigpOwor
ICAgIG1faGlnaGxpZ2h0Tm9kZUxpc3QgPSBudWxscHRyOwogICAgIHVwZGF0ZSgpOwogfQogCmRp
ZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvSW5zcGVjdG9yUGFnZUFnZW50LmNw
cCBiL1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9JbnNwZWN0b3JQYWdlQWdlbnQuY3BwCmluZGV4
IDZmNTJiZmEuLjNlOWZlYmUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9J
bnNwZWN0b3JQYWdlQWdlbnQuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9JbnNw
ZWN0b3JQYWdlQWdlbnQuY3BwCkBAIC0zNDgsNyArMzQ4LDcgQEAgdm9pZCBJbnNwZWN0b3JQYWdl
QWdlbnQ6OmRpZENyZWF0ZUZyb250ZW5kQW5kQmFja2VuZChJbnNwZWN0b3I6OkZyb250ZW5kQ2hh
bm5lbCoKIHZvaWQgSW5zcGVjdG9yUGFnZUFnZW50Ojp3aWxsRGVzdHJveUZyb250ZW5kQW5kQmFj
a2VuZChJbnNwZWN0b3I6OkRpc2Nvbm5lY3RSZWFzb24pCiB7CiAgICAgbV9mcm9udGVuZERpc3Bh
dGNoZXIgPSBudWxscHRyOwotICAgIG1fYmFja2VuZERpc3BhdGNoZXIuY2xlYXIoKTsKKyAgICBt
X2JhY2tlbmREaXNwYXRjaGVyID0gbnVsbHB0cjsKIAogICAgIEVycm9yU3RyaW5nIHVudXNlZDsK
ICAgICBkaXNhYmxlKHVudXNlZCk7CkBAIC0zNzQsNyArMzc0LDcgQEAgdm9pZCBJbnNwZWN0b3JQ
YWdlQWdlbnQ6OmVuYWJsZShFcnJvclN0cmluZyYpCiB2b2lkIEluc3BlY3RvclBhZ2VBZ2VudDo6
ZGlzYWJsZShFcnJvclN0cmluZyYpCiB7CiAgICAgbV9lbmFibGVkID0gZmFsc2U7Ci0gICAgbV9z
Y3JpcHRzVG9FdmFsdWF0ZU9uTG9hZC5jbGVhcigpOworICAgIG1fc2NyaXB0c1RvRXZhbHVhdGVP
bkxvYWQgPSBudWxscHRyOwogICAgIG1faW5zdHJ1bWVudGluZ0FnZW50cy0+c2V0SW5zcGVjdG9y
UGFnZUFnZW50KG51bGxwdHIpOwogCiAgICAgRXJyb3JTdHJpbmcgdW51c2VkOwpkaWZmIC0tZ2l0
IGEvU291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL0luc3BlY3RvclJlcGxheUFnZW50LmNwcCBiL1Nv
dXJjZS9XZWJDb3JlL2luc3BlY3Rvci9JbnNwZWN0b3JSZXBsYXlBZ2VudC5jcHAKaW5kZXggNjRj
YjgxMS4uMTgxYTYwOSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL0luc3Bl
Y3RvclJlcGxheUFnZW50LmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvSW5zcGVj
dG9yUmVwbGF5QWdlbnQuY3BwCkBAIC0xOTMsNyArMTkzLDcgQEAgdm9pZCBJbnNwZWN0b3JSZXBs
YXlBZ2VudDo6ZGlkQ3JlYXRlRnJvbnRlbmRBbmRCYWNrZW5kKEluc3BlY3Rvcjo6RnJvbnRlbmRD
aGFubmUKIHZvaWQgSW5zcGVjdG9yUmVwbGF5QWdlbnQ6OndpbGxEZXN0cm95RnJvbnRlbmRBbmRC
YWNrZW5kKEluc3BlY3Rvcjo6RGlzY29ubmVjdFJlYXNvbikKIHsKICAgICBtX2Zyb250ZW5kRGlz
cGF0Y2hlciA9IG51bGxwdHI7Ci0gICAgbV9iYWNrZW5kRGlzcGF0Y2hlci5jbGVhcigpOworICAg
IG1fYmFja2VuZERpc3BhdGNoZXIgPSBudWxscHRyOwogCiAgICAgbV9pbnN0cnVtZW50aW5nQWdl
bnRzLT5zZXRJbnNwZWN0b3JSZXBsYXlBZ2VudChudWxscHRyKTsKIApkaWZmIC0tZ2l0IGEvU291
cmNlL1dlYkNvcmUvaW5zcGVjdG9yL0luc3BlY3RvclJlc291cmNlQWdlbnQuY3BwIGIvU291cmNl
L1dlYkNvcmUvaW5zcGVjdG9yL0luc3BlY3RvclJlc291cmNlQWdlbnQuY3BwCmluZGV4IDg1NDQ4
OWMuLjdiNTZhMGYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9JbnNwZWN0
b3JSZXNvdXJjZUFnZW50LmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvSW5zcGVj
dG9yUmVzb3VyY2VBZ2VudC5jcHAKQEAgLTE4MSw3ICsxODEsNyBAQCB2b2lkIEluc3BlY3RvclJl
c291cmNlQWdlbnQ6OmRpZENyZWF0ZUZyb250ZW5kQW5kQmFja2VuZChJbnNwZWN0b3I6OkZyb250
ZW5kQ2hhbgogdm9pZCBJbnNwZWN0b3JSZXNvdXJjZUFnZW50Ojp3aWxsRGVzdHJveUZyb250ZW5k
QW5kQmFja2VuZChJbnNwZWN0b3I6OkRpc2Nvbm5lY3RSZWFzb24pCiB7CiAgICAgbV9mcm9udGVu
ZERpc3BhdGNoZXIgPSBudWxscHRyOwotICAgIG1fYmFja2VuZERpc3BhdGNoZXIuY2xlYXIoKTsK
KyAgICBtX2JhY2tlbmREaXNwYXRjaGVyID0gbnVsbHB0cjsKIAogICAgIEVycm9yU3RyaW5nIHVu
dXNlZDsKICAgICBkaXNhYmxlKHVudXNlZCk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9p
bnNwZWN0b3IvSW5zcGVjdG9yU3R5bGVTaGVldC5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0
b3IvSW5zcGVjdG9yU3R5bGVTaGVldC5jcHAKaW5kZXggYjQ3YzY1NC4uMDZlYzFiNiAxMDA2NDQK
LS0tIGEvU291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL0luc3BlY3RvclN0eWxlU2hlZXQuY3BwCisr
KyBiL1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9JbnNwZWN0b3JTdHlsZVNoZWV0LmNwcApAQCAt
MTI2MSw3ICsxMjYxLDcgQEAgdm9pZCBJbnNwZWN0b3JTdHlsZVNoZWV0Rm9ySW5saW5lU3R5bGU6
OmRpZE1vZGlmeUVsZW1lbnRBdHRyaWJ1dGUoKQogICAgIG1faXNTdHlsZVRleHRWYWxpZCA9IGZh
bHNlOwogICAgIGlmIChtX2VsZW1lbnQtPmlzU3R5bGVkRWxlbWVudCgpICYmIG1fZWxlbWVudC0+
c3R5bGUoKSAhPSBtX2luc3BlY3RvclN0eWxlLT5jc3NTdHlsZSgpKQogICAgICAgICBtX2luc3Bl
Y3RvclN0eWxlID0gSW5zcGVjdG9yU3R5bGU6OmNyZWF0ZShJbnNwZWN0b3JDU1NJZChpZCgpLCAw
KSwgaW5saW5lU3R5bGUoKSwgdGhpcyk7Ci0gICAgbV9ydWxlU291cmNlRGF0YS5jbGVhcigpOwor
ICAgIG1fcnVsZVNvdXJjZURhdGEgPSBudWxscHRyOwogfQogCiBib29sIEluc3BlY3RvclN0eWxl
U2hlZXRGb3JJbmxpbmVTdHlsZTo6Z2V0VGV4dChTdHJpbmcqIHJlc3VsdCkgY29uc3QKQEAgLTEy
ODUsNyArMTI4NSw3IEBAIGJvb2wgSW5zcGVjdG9yU3R5bGVTaGVldEZvcklubGluZVN0eWxlOjpz
ZXRTdHlsZVRleHQoQ1NTU3R5bGVEZWNsYXJhdGlvbiogc3R5bGUsCiAKICAgICBtX3N0eWxlVGV4
dCA9IHRleHQ7CiAgICAgbV9pc1N0eWxlVGV4dFZhbGlkID0gdHJ1ZTsKLSAgICBtX3J1bGVTb3Vy
Y2VEYXRhLmNsZWFyKCk7CisgICAgbV9ydWxlU291cmNlRGF0YSA9IG51bGxwdHI7CiAgICAgcmV0
dXJuICFlYzsKIH0KIApAQCAtMTMwNCw3ICsxMzA0LDcgQEAgYm9vbCBJbnNwZWN0b3JTdHlsZVNo
ZWV0Rm9ySW5saW5lU3R5bGU6OmVuc3VyZVBhcnNlZERhdGFSZWFkeSgpCiAgICAgLy8gVGhlICJz
dHlsZSIgcHJvcGVydHkgdmFsdWUgY2FuIGdldCBjaGFuZ2VkIGluZGlyZWN0bHksIGUuZy4gdmlh
IGVsZW1lbnQuc3R5bGUuYm9yZGVyV2lkdGggPSAiMnB4Ii4KICAgICBjb25zdCBTdHJpbmcmIGN1
cnJlbnRTdHlsZVRleHQgPSBlbGVtZW50U3R5bGVUZXh0KCk7CiAgICAgaWYgKG1fc3R5bGVUZXh0
ICE9IGN1cnJlbnRTdHlsZVRleHQpIHsKLSAgICAgICAgbV9ydWxlU291cmNlRGF0YS5jbGVhcigp
OworICAgICAgICBtX3J1bGVTb3VyY2VEYXRhID0gbnVsbHB0cjsKICAgICAgICAgbV9zdHlsZVRl
eHQgPSBjdXJyZW50U3R5bGVUZXh0OwogICAgICAgICBtX2lzU3R5bGVUZXh0VmFsaWQgPSB0cnVl
OwogICAgIH0KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9JbnNwZWN0b3JU
aW1lbGluZUFnZW50LmNwcCBiL1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9JbnNwZWN0b3JUaW1l
bGluZUFnZW50LmNwcAppbmRleCAwZTMyYmM1Li5mNTc1NmEyIDEwMDY0NAotLS0gYS9Tb3VyY2Uv
V2ViQ29yZS9pbnNwZWN0b3IvSW5zcGVjdG9yVGltZWxpbmVBZ2VudC5jcHAKKysrIGIvU291cmNl
L1dlYkNvcmUvaW5zcGVjdG9yL0luc3BlY3RvclRpbWVsaW5lQWdlbnQuY3BwCkBAIC0xMDMsNyAr
MTAzLDcgQEAgdm9pZCBJbnNwZWN0b3JUaW1lbGluZUFnZW50OjpkaWRDcmVhdGVGcm9udGVuZEFu
ZEJhY2tlbmQoSW5zcGVjdG9yOjpGcm9udGVuZENoYW4KIHZvaWQgSW5zcGVjdG9yVGltZWxpbmVB
Z2VudDo6d2lsbERlc3Ryb3lGcm9udGVuZEFuZEJhY2tlbmQoSW5zcGVjdG9yOjpEaXNjb25uZWN0
UmVhc29uIHJlYXNvbikKIHsKICAgICBtX2Zyb250ZW5kRGlzcGF0Y2hlciA9IG51bGxwdHI7Ci0g
ICAgbV9iYWNrZW5kRGlzcGF0Y2hlci5jbGVhcigpOworICAgIG1fYmFja2VuZERpc3BhdGNoZXIg
PSBudWxscHRyOwogCiAgICAgbV9pbnN0cnVtZW50aW5nQWdlbnRzLT5zZXRQZXJzaXN0ZW50SW5z
cGVjdG9yVGltZWxpbmVBZ2VudChudWxscHRyKTsKIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNv
cmUvaW5zcGVjdG9yL0luc3BlY3RvcldvcmtlckFnZW50LmNwcCBiL1NvdXJjZS9XZWJDb3JlL2lu
c3BlY3Rvci9JbnNwZWN0b3JXb3JrZXJBZ2VudC5jcHAKaW5kZXggZGViYzY5OC4uNWUyMWYzNSAx
MDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL0luc3BlY3RvcldvcmtlckFnZW50
LmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvSW5zcGVjdG9yV29ya2VyQWdlbnQu
Y3BwCkBAIC0xMjcsNyArMTI3LDcgQEAgdm9pZCBJbnNwZWN0b3JXb3JrZXJBZ2VudDo6d2lsbERl
c3Ryb3lGcm9udGVuZEFuZEJhY2tlbmQoSW5zcGVjdG9yOjpEaXNjb25uZWN0UmUKICAgICBkaXNh
YmxlKHVudXNlZCk7CiAKICAgICBtX2Zyb250ZW5kRGlzcGF0Y2hlciA9IG51bGxwdHI7Ci0gICAg
bV9iYWNrZW5kRGlzcGF0Y2hlci5jbGVhcigpOworICAgIG1fYmFja2VuZERpc3BhdGNoZXIgPSBu
dWxscHRyOwogfQogCiB2b2lkIEluc3BlY3RvcldvcmtlckFnZW50OjplbmFibGUoRXJyb3JTdHJp
bmcmKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL1BhZ2VSdW50aW1lQWdl
bnQuY3BwIGIvU291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL1BhZ2VSdW50aW1lQWdlbnQuY3BwCmlu
ZGV4IDkzZGI1NzIuLmUyNDQ1YWIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rv
ci9QYWdlUnVudGltZUFnZW50LmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvUGFn
ZVJ1bnRpbWVBZ2VudC5jcHAKQEAgLTY5LDcgKzY5LDcgQEAgdm9pZCBQYWdlUnVudGltZUFnZW50
OjpkaWRDcmVhdGVGcm9udGVuZEFuZEJhY2tlbmQoSW5zcGVjdG9yOjpGcm9udGVuZENoYW5uZWwq
IGYKIHZvaWQgUGFnZVJ1bnRpbWVBZ2VudDo6d2lsbERlc3Ryb3lGcm9udGVuZEFuZEJhY2tlbmQo
SW5zcGVjdG9yOjpEaXNjb25uZWN0UmVhc29uIHJlYXNvbikKIHsKICAgICBtX2Zyb250ZW5kRGlz
cGF0Y2hlciA9IG51bGxwdHI7Ci0gICAgbV9iYWNrZW5kRGlzcGF0Y2hlci5jbGVhcigpOworICAg
IG1fYmFja2VuZERpc3BhdGNoZXIgPSBudWxscHRyOwogCiAgICAgU3RyaW5nIHVudXNlZDsKICAg
ICBkaXNhYmxlKHVudXNlZCk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3Iv
V2ViSW5qZWN0ZWRTY3JpcHRNYW5hZ2VyLmNwcCBiL1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9X
ZWJJbmplY3RlZFNjcmlwdE1hbmFnZXIuY3BwCmluZGV4IDlmNGFmNDIuLjU2MTk2ZjAgMTAwNjQ0
Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9XZWJJbmplY3RlZFNjcmlwdE1hbmFnZXIu
Y3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9XZWJJbmplY3RlZFNjcmlwdE1hbmFn
ZXIuY3BwCkBAIC00NCw3ICs0NCw3IEBAIHZvaWQgV2ViSW5qZWN0ZWRTY3JpcHRNYW5hZ2VyOjpk
aXNjb25uZWN0KCkKICAgICBJbmplY3RlZFNjcmlwdE1hbmFnZXI6OmRpc2Nvbm5lY3QoKTsKIAog
ICAgIG1fY29tbWFuZExpbmVBUElIb3N0LT5kaXNjb25uZWN0KCk7Ci0gICAgbV9jb21tYW5kTGlu
ZUFQSUhvc3QuY2xlYXIoKTsKKyAgICBtX2NvbW1hbmRMaW5lQVBJSG9zdCA9IG51bGxwdHI7CiB9
CiAKIHZvaWQgV2ViSW5qZWN0ZWRTY3JpcHRNYW5hZ2VyOjpkaWRDcmVhdGVJbmplY3RlZFNjcmlw
dChJbmplY3RlZFNjcmlwdCBpbmplY3RlZFNjcmlwdCkKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJD
b3JlL2luc3BlY3Rvci9Xb3JrZXJJbnNwZWN0b3JDb250cm9sbGVyLmNwcCBiL1NvdXJjZS9XZWJD
b3JlL2luc3BlY3Rvci9Xb3JrZXJJbnNwZWN0b3JDb250cm9sbGVyLmNwcAppbmRleCBmMWZlNDEw
Li5kODM0ZTBlIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvV29ya2VySW5z
cGVjdG9yQ29udHJvbGxlci5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL1dvcmtl
ckluc3BlY3RvckNvbnRyb2xsZXIuY3BwCkBAIC0xMjYsNyArMTI2LDcgQEAgdm9pZCBXb3JrZXJJ
bnNwZWN0b3JDb250cm9sbGVyOjpkaXNjb25uZWN0RnJvbnRlbmQoSW5zcGVjdG9yOjpEaXNjb25u
ZWN0UmVhc29uIHIKIAogICAgIG1fYWdlbnRzLndpbGxEZXN0cm95RnJvbnRlbmRBbmRCYWNrZW5k
KHJlYXNvbik7CiAgICAgbV9iYWNrZW5kRGlzcGF0Y2hlci0+Y2xlYXJGcm9udGVuZCgpOwotICAg
IG1fYmFja2VuZERpc3BhdGNoZXIuY2xlYXIoKTsKKyAgICBtX2JhY2tlbmREaXNwYXRjaGVyID0g
bnVsbHB0cjsKICAgICBtX2Zyb250ZW5kQ2hhbm5lbCA9IG51bGxwdHI7CiB9CiAKZGlmZiAtLWdp
dCBhL1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9Xb3JrZXJSdW50aW1lQWdlbnQuY3BwIGIvU291
cmNlL1dlYkNvcmUvaW5zcGVjdG9yL1dvcmtlclJ1bnRpbWVBZ2VudC5jcHAKaW5kZXggMjA2YTQx
Zi4uMTIyMmU1NSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL1dvcmtlclJ1
bnRpbWVBZ2VudC5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL1dvcmtlclJ1bnRp
bWVBZ2VudC5jcHAKQEAgLTYwLDcgKzYwLDcgQEAgdm9pZCBXb3JrZXJSdW50aW1lQWdlbnQ6OmRp
ZENyZWF0ZUZyb250ZW5kQW5kQmFja2VuZChJbnNwZWN0b3I6OkZyb250ZW5kQ2hhbm5lbCoKIAog
dm9pZCBXb3JrZXJSdW50aW1lQWdlbnQ6OndpbGxEZXN0cm95RnJvbnRlbmRBbmRCYWNrZW5kKElu
c3BlY3Rvcjo6RGlzY29ubmVjdFJlYXNvbiByZWFzb24pCiB7Ci0gICAgbV9iYWNrZW5kRGlzcGF0
Y2hlci5jbGVhcigpOworICAgIG1fYmFja2VuZERpc3BhdGNoZXIgPSBudWxscHRyOwogCiAgICAg
SW5zcGVjdG9yUnVudGltZUFnZW50Ojp3aWxsRGVzdHJveUZyb250ZW5kQW5kQmFja2VuZChyZWFz
b24pOwogfQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvbG9hZGVyL0RvY3VtZW50TG9hZGVy
LmNwcCBiL1NvdXJjZS9XZWJDb3JlL2xvYWRlci9Eb2N1bWVudExvYWRlci5jcHAKaW5kZXggNWVj
NDdhYy4uN2NhMWYyMyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvbG9hZGVyL0RvY3VtZW50
TG9hZGVyLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9sb2FkZXIvRG9jdW1lbnRMb2FkZXIuY3Bw
CkBAIC0xNTI0LDcgKzE1MjQsNyBAQCB2b2lkIERvY3VtZW50TG9hZGVyOjpnZXRJY29uTG9hZERl
Y2lzaW9uRm9ySWNvblVSTChjb25zdCBTdHJpbmcmIHVybFN0cmluZykKIHZvaWQgRG9jdW1lbnRM
b2FkZXI6OmNvbnRpbnVlSWNvbkxvYWRXaXRoRGVjaXNpb24oSWNvbkxvYWREZWNpc2lvbiBkZWNp
c2lvbikKIHsKICAgICBBU1NFUlQobV9pY29uTG9hZERlY2lzaW9uQ2FsbGJhY2spOwotICAgIG1f
aWNvbkxvYWREZWNpc2lvbkNhbGxiYWNrID0gMDsKKyAgICBtX2ljb25Mb2FkRGVjaXNpb25DYWxs
YmFjayA9IG51bGxwdHI7CiAgICAgaWYgKG1fZnJhbWUpCiAgICAgICAgIG1fZnJhbWUtPmxvYWRl
cigpLmljb24oKS5jb250aW51ZUxvYWRXaXRoRGVjaXNpb24oZGVjaXNpb24pOwogfQpkaWZmIC0t
Z2l0IGEvU291cmNlL1dlYkNvcmUvbG9hZGVyL0RvY3VtZW50VGhyZWFkYWJsZUxvYWRlci5jcHAg
Yi9Tb3VyY2UvV2ViQ29yZS9sb2FkZXIvRG9jdW1lbnRUaHJlYWRhYmxlTG9hZGVyLmNwcAppbmRl
eCAxZTg2ZmFjLi5iMGU1ODk4IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9sb2FkZXIvRG9j
dW1lbnRUaHJlYWRhYmxlTG9hZGVyLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9sb2FkZXIvRG9j
dW1lbnRUaHJlYWRhYmxlTG9hZGVyLmNwcApAQCAtNjQsNyArNjQsNyBAQCBQYXNzUmVmUHRyPERv
Y3VtZW50VGhyZWFkYWJsZUxvYWRlcj4gRG9jdW1lbnRUaHJlYWRhYmxlTG9hZGVyOjpjcmVhdGUo
RG9jdW1lbnQmCiB7CiAgICAgUmVmUHRyPERvY3VtZW50VGhyZWFkYWJsZUxvYWRlcj4gbG9hZGVy
ID0gYWRvcHRSZWYobmV3IERvY3VtZW50VGhyZWFkYWJsZUxvYWRlcihkb2N1bWVudCwgY2xpZW50
LCBMb2FkQXN5bmNocm9ub3VzbHksIHJlcXVlc3QsIG9wdGlvbnMpKTsKICAgICBpZiAoIWxvYWRl
ci0+bV9yZXNvdXJjZSkKLSAgICAgICAgbG9hZGVyID0gMDsKKyAgICAgICAgbG9hZGVyID0gbnVs
bHB0cjsKICAgICByZXR1cm4gbG9hZGVyLnJlbGVhc2UoKTsKIH0KIApkaWZmIC0tZ2l0IGEvU291
cmNlL1dlYkNvcmUvbG9hZGVyL0RvY3VtZW50V3JpdGVyLmNwcCBiL1NvdXJjZS9XZWJDb3JlL2xv
YWRlci9Eb2N1bWVudFdyaXRlci5jcHAKaW5kZXggY2M1MTM5My4uYTFjMzc3ZiAxMDA2NDQKLS0t
IGEvU291cmNlL1dlYkNvcmUvbG9hZGVyL0RvY3VtZW50V3JpdGVyLmNwcAorKysgYi9Tb3VyY2Uv
V2ViQ29yZS9sb2FkZXIvRG9jdW1lbnRXcml0ZXIuY3BwCkBAIC05MCw3ICs5MCw3IEBAIHZvaWQg
RG9jdW1lbnRXcml0ZXI6OnJlcGxhY2VEb2N1bWVudChjb25zdCBTdHJpbmcmIHNvdXJjZSwgRG9j
dW1lbnQqIG93bmVyRG9jdW1lCiAKIHZvaWQgRG9jdW1lbnRXcml0ZXI6OmNsZWFyKCkKIHsKLSAg
ICBtX2RlY29kZXIgPSAwOworICAgIG1fZGVjb2RlciA9IG51bGxwdHI7CiAgICAgbV9oYXNSZWNl
aXZlZFNvbWVEYXRhID0gZmFsc2U7CiAgICAgaWYgKCFtX2VuY29kaW5nV2FzQ2hvc2VuQnlVc2Vy
KQogICAgICAgICBtX2VuY29kaW5nID0gU3RyaW5nKCk7CkBAIC0yNDUsNyArMjQ1LDcgQEAgdm9p
ZCBEb2N1bWVudFdyaXRlcjo6ZW5kKCkKICAgICBpZiAoIW1fcGFyc2VyKQogICAgICAgICByZXR1
cm47CiAgICAgbV9wYXJzZXItPmZpbmlzaCgpOwotICAgIG1fcGFyc2VyID0gMDsKKyAgICBtX3Bh
cnNlciA9IG51bGxwdHI7CiB9CiAKIHZvaWQgRG9jdW1lbnRXcml0ZXI6OnNldEVuY29kaW5nKGNv
bnN0IFN0cmluZyYgbmFtZSwgYm9vbCB1c2VyQ2hvc2VuKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dl
YkNvcmUvbG9hZGVyL0ZyYW1lTG9hZGVyLmNwcCBiL1NvdXJjZS9XZWJDb3JlL2xvYWRlci9GcmFt
ZUxvYWRlci5jcHAKaW5kZXggNTIyYjE1Ny4uM2JkYjYyMSAxMDA2NDQKLS0tIGEvU291cmNlL1dl
YkNvcmUvbG9hZGVyL0ZyYW1lTG9hZGVyLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9sb2FkZXIv
RnJhbWVMb2FkZXIuY3BwCkBAIC02OTIsNyArNjkyLDcgQEAgdm9pZCBGcmFtZUxvYWRlcjo6ZGlk
QmVnaW5Eb2N1bWVudChib29sIGRpc3BhdGNoKQogCiAgICAgaWYgKG1fcGVuZGluZ1N0YXRlT2Jq
ZWN0KSB7CiAgICAgICAgIG1fZnJhbWUuZG9jdW1lbnQoKS0+c3RhdGVQb3BwZWQobV9wZW5kaW5n
U3RhdGVPYmplY3QuZ2V0KCkpOwotICAgICAgICBtX3BlbmRpbmdTdGF0ZU9iamVjdC5jbGVhcigp
OworICAgICAgICBtX3BlbmRpbmdTdGF0ZU9iamVjdCA9IG51bGxwdHI7CiAgICAgfQogCiAgICAg
aWYgKGRpc3BhdGNoKQpAQCAtODE4LDcgKzgxOCw3IEBAIHZvaWQgRnJhbWVMb2FkZXI6OmNoZWNr
Q29tcGxldGVkKCkKIAogICAgIC8vIE9LLCBjb21wbGV0ZWQuCiAgICAgbV9pc0NvbXBsZXRlID0g
dHJ1ZTsKLSAgICBtX3JlcXVlc3RlZEhpc3RvcnlJdGVtID0gMDsKKyAgICBtX3JlcXVlc3RlZEhp
c3RvcnlJdGVtID0gbnVsbHB0cjsKICAgICBtX2ZyYW1lLmRvY3VtZW50KCktPnNldFJlYWR5U3Rh
dGUoRG9jdW1lbnQ6OkNvbXBsZXRlKTsKIAogI2lmIFBMQVRGT1JNKElPUykKQEAgLTExMzcsNyAr
MTEzNyw3IEBAIHZvaWQgRnJhbWVMb2FkZXI6OnNldHVwRm9yUmVwbGFjZSgpCiAgICAgbV9jbGll
bnQucmV2ZXJ0VG9Qcm92aXNpb25hbFN0YXRlKG1fZG9jdW1lbnRMb2FkZXIuZ2V0KCkpOwogICAg
IHNldFN0YXRlKEZyYW1lU3RhdGVQcm92aXNpb25hbCk7CiAgICAgbV9wcm92aXNpb25hbERvY3Vt
ZW50TG9hZGVyID0gbV9kb2N1bWVudExvYWRlcjsKLSAgICBtX2RvY3VtZW50TG9hZGVyID0gMDsK
KyAgICBtX2RvY3VtZW50TG9hZGVyID0gbnVsbHB0cjsKICAgICBkZXRhY2hDaGlsZHJlbigpOwog
fQogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9sb2FkZXIvUHJvZ3Jlc3NUcmFja2VyLmNw
cCBiL1NvdXJjZS9XZWJDb3JlL2xvYWRlci9Qcm9ncmVzc1RyYWNrZXIuY3BwCmluZGV4IDA0MDU0
ZGUuLmQ1NmNhMDUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2xvYWRlci9Qcm9ncmVzc1Ry
YWNrZXIuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2xvYWRlci9Qcm9ncmVzc1RyYWNrZXIuY3Bw
CkBAIC0xMTMsNyArMTEzLDcgQEAgdm9pZCBQcm9ncmVzc1RyYWNrZXI6OnJlc2V0KCkKICAgICBt
X2xhc3ROb3RpZmllZFByb2dyZXNzVGltZSA9IHN0ZDo6Y2hyb25vOjpzdGVhZHlfY2xvY2s6OnRp
bWVfcG9pbnQoKTsKICAgICBtX2ZpbmFsUHJvZ3Jlc3NDaGFuZ2VkU2VudCA9IGZhbHNlOwogICAg
IG1fbnVtUHJvZ3Jlc3NUcmFja2VkRnJhbWVzID0gMDsKLSAgICBtX29yaWdpbmF0aW5nUHJvZ3Jl
c3NGcmFtZSA9IDA7CisgICAgbV9vcmlnaW5hdGluZ1Byb2dyZXNzRnJhbWUgPSBudWxscHRyOwog
CiAgICAgbV9oZWFydGJlYXRzV2l0aE5vUHJvZ3Jlc3MgPSAwOwogICAgIG1fdG90YWxCeXRlc1Jl
Y2VpdmVkQmVmb3JlUHJldmlvdXNIZWFydGJlYXQgPSAwOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dl
YkNvcmUvbG9hZGVyL1Jlc291cmNlTG9hZGVyLmNwcCBiL1NvdXJjZS9XZWJDb3JlL2xvYWRlci9S
ZXNvdXJjZUxvYWRlci5jcHAKaW5kZXggNDMxYTBjYi4uMTY2YTQ1NCAxMDA2NDQKLS0tIGEvU291
cmNlL1dlYkNvcmUvbG9hZGVyL1Jlc291cmNlTG9hZGVyLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29y
ZS9sb2FkZXIvUmVzb3VyY2VMb2FkZXIuY3BwCkBAIC05MCw4ICs5MCw4IEBAIHZvaWQgUmVzb3Vy
Y2VMb2FkZXI6OnJlbGVhc2VSZXNvdXJjZXMoKQogICAgIC8vIGhhcyBiZWVuIGRlYWxsb2NhdGVk
IGFuZCBhbHNvIHRvIGF2b2lkIHJlZW50ZXJpbmcgdGhpcyBtZXRob2QuCiAgICAgUmVmPFJlc291
cmNlTG9hZGVyPiBwcm90ZWN0KCp0aGlzKTsKIAotICAgIG1fZnJhbWUgPSAwOwotICAgIG1fZG9j
dW1lbnRMb2FkZXIgPSAwOworICAgIG1fZnJhbWUgPSBudWxscHRyOworICAgIG1fZG9jdW1lbnRM
b2FkZXIgPSBudWxscHRyOwogICAgIAogICAgIC8vIFdlIG5lZWQgdG8gc2V0IHJlYWNoZWRUZXJt
aW5hbFN0YXRlIHRvIHRydWUgYmVmb3JlIHdlIHJlbGVhc2UKICAgICAvLyB0aGUgcmVzb3VyY2Vz
IHRvIHByZXZlbnQgYSBkb3VibGUgZGVhbGxvYyBvZiBXZWJWaWV3IDxyZGFyOi8vcHJvYmxlbS80
MzcyNjI4PgpAQCAtMTA0LDExICsxMDQsMTEgQEAgdm9pZCBSZXNvdXJjZUxvYWRlcjo6cmVsZWFz
ZVJlc291cmNlcygpCiAgICAgICAgIC8vIENsZWFyIG91dCB0aGUgUmVzb3VyY2VIYW5kbGUncyBj
bGllbnQgc28gdGhhdCBpdCBkb2Vzbid0IHRyeSB0byBjYWxsCiAgICAgICAgIC8vIHVzIGJhY2sg
YWZ0ZXIgd2UgcmVsZWFzZSBpdCwgdW5sZXNzIGl0IGhhcyBiZWVuIHJlcGxhY2VkIGJ5IHNvbWVv
bmUgZWxzZS4KICAgICAgICAgaWYgKG1faGFuZGxlLT5jbGllbnQoKSA9PSB0aGlzKQotICAgICAg
ICAgICAgbV9oYW5kbGUtPnNldENsaWVudCgwKTsKLSAgICAgICAgbV9oYW5kbGUgPSAwOworICAg
ICAgICAgICAgbV9oYW5kbGUtPnNldENsaWVudChudWxscHRyKTsKKyAgICAgICAgbV9oYW5kbGUg
PSBudWxscHRyOwogICAgIH0KIAotICAgIG1fcmVzb3VyY2VEYXRhID0gMDsKKyAgICBtX3Jlc291
cmNlRGF0YSA9IG51bGxwdHI7CiAgICAgbV9kZWZlcnJlZFJlcXVlc3QgPSBSZXNvdXJjZVJlcXVl
c3QoKTsKIH0KIApAQCAtMjI1LDcgKzIyNSw3IEBAIHZvaWQgUmVzb3VyY2VMb2FkZXI6OnNldERl
ZmVyc0xvYWRpbmcoYm9vbCBkZWZlcnMpCiBGcmFtZUxvYWRlciogUmVzb3VyY2VMb2FkZXI6OmZy
YW1lTG9hZGVyKCkgY29uc3QKIHsKICAgICBpZiAoIW1fZnJhbWUpCi0gICAgICAgIHJldHVybiAw
OworICAgICAgICByZXR1cm4gbnVsbHB0cjsKICAgICByZXR1cm4gJm1fZnJhbWUtPmxvYWRlcigp
OwogfQogCkBAIC0yNDQsNyArMjQ0LDcgQEAgdm9pZCBSZXNvdXJjZUxvYWRlcjo6c2V0RGF0YUJ1
ZmZlcmluZ1BvbGljeShEYXRhQnVmZmVyaW5nUG9saWN5IGRhdGFCdWZmZXJpbmdQb2wKIAogICAg
IC8vIFJlc2V0IGFueSBhbHJlYWR5IGJ1ZmZlcmVkIGRhdGEKICAgICBpZiAoZGF0YUJ1ZmZlcmlu
Z1BvbGljeSA9PSBEb05vdEJ1ZmZlckRhdGEpCi0gICAgICAgIG1fcmVzb3VyY2VEYXRhID0gMDsK
KyAgICAgICAgbV9yZXNvdXJjZURhdGEgPSBudWxscHRyOwogfQogICAgIAogdm9pZCBSZXNvdXJj
ZUxvYWRlcjo6d2lsbFN3aXRjaFRvU3Vic3RpdHV0ZVJlc291cmNlKCkKQEAgLTUzMCw3ICs1MzAs
NyBAQCB2b2lkIFJlc291cmNlTG9hZGVyOjpjYW5jZWwoY29uc3QgUmVzb3VyY2VFcnJvciYgZXJy
b3IpCiAgICAgICAgIG1fZG9jdW1lbnRMb2FkZXItPmNhbmNlbFBlbmRpbmdTdWJzdGl0dXRlTG9h
ZCh0aGlzKTsKICAgICAgICAgaWYgKG1faGFuZGxlKSB7CiAgICAgICAgICAgICBtX2hhbmRsZS0+
Y2FuY2VsKCk7Ci0gICAgICAgICAgICBtX2hhbmRsZSA9IDA7CisgICAgICAgICAgICBtX2hhbmRs
ZSA9IG51bGxwdHI7CiAgICAgICAgIH0KICAgICAgICAgY2xlYW51cEZvckVycm9yKG5vbk51bGxF
cnJvcik7CiAgICAgfQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvbG9hZGVyL2FwcGNhY2hl
L0FwcGxpY2F0aW9uQ2FjaGVHcm91cC5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9sb2FkZXIvYXBwY2Fj
aGUvQXBwbGljYXRpb25DYWNoZUdyb3VwLmNwcAppbmRleCA2MjdjMGZlLi41OWJjYWM5IDEwMDY0
NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9sb2FkZXIvYXBwY2FjaGUvQXBwbGljYXRpb25DYWNoZUdy
b3VwLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9sb2FkZXIvYXBwY2FjaGUvQXBwbGljYXRpb25D
YWNoZUdyb3VwLmNwcApAQCAtMzI3LDcgKzMyNyw3IEBAIHZvaWQgQXBwbGljYXRpb25DYWNoZUdy
b3VwOjpzdG9wTG9hZGluZygpCiAgICAgICAgIG1fbWFuaWZlc3RIYW5kbGUtPnNldENsaWVudCgw
KTsKIAogICAgICAgICBtX21hbmlmZXN0SGFuZGxlLT5jYW5jZWwoKTsKLSAgICAgICAgbV9tYW5p
ZmVzdEhhbmRsZSA9IDA7CisgICAgICAgIG1fbWFuaWZlc3RIYW5kbGUgPSBudWxscHRyOwogICAg
IH0KICAgICAKICAgICBpZiAobV9jdXJyZW50SGFuZGxlKSB7CkBAIC0zMzgsMTEgKzMzOCwxMSBA
QCB2b2lkIEFwcGxpY2F0aW9uQ2FjaGVHcm91cDo6c3RvcExvYWRpbmcoKQogICAgICAgICBtX2N1
cnJlbnRIYW5kbGUtPnNldENsaWVudCgwKTsKIAogICAgICAgICBtX2N1cnJlbnRIYW5kbGUtPmNh
bmNlbCgpOwotICAgICAgICBtX2N1cnJlbnRIYW5kbGUgPSAwOworICAgICAgICBtX2N1cnJlbnRI
YW5kbGUgPSBudWxscHRyOwogICAgIH0gICAgCiAKICAgICAvLyBGSVhNRTogUmVzZXR0aW5nIGp1
c3QgYSB0aW55IHBhcnQgb2YgdGhlIHN0YXRlIGluIHRoaXMgZnVuY3Rpb24gaXMgY29uZnVzaW5n
LiBDYWxsZXJzIGhhdmUgdG8gdGFrZSBjYXJlIG9mIGEgbG90IG1vcmUuCi0gICAgbV9jYWNoZUJl
aW5nVXBkYXRlZCA9IDA7CisgICAgbV9jYWNoZUJlaW5nVXBkYXRlZCA9IG51bGxwdHI7CiAgICAg
bV9wZW5kaW5nRW50cmllcy5jbGVhcigpOwogfSAgICAKIApAQCAtNTIxLDcgKzUyMSw3IEBAIHZv
aWQgQXBwbGljYXRpb25DYWNoZUdyb3VwOjpkaWRSZWNlaXZlUmVzcG9uc2UoUmVzb3VyY2VIYW5k
bGUqIGhhbmRsZSwgY29uc3QgUmVzCiAgICAgICAgICAgICBtX2NhY2hlQmVpbmdVcGRhdGVkLT5h
ZGRSZXNvdXJjZShBcHBsaWNhdGlvbkNhY2hlUmVzb3VyY2U6OmNyZWF0ZSh1cmwsIG5ld2VzdENh
Y2hlZFJlc291cmNlLT5yZXNwb25zZSgpLCB0eXBlLCBuZXdlc3RDYWNoZWRSZXNvdXJjZS0+ZGF0
YSgpLCBuZXdlc3RDYWNoZWRSZXNvdXJjZS0+cGF0aCgpKSk7CiAgICAgICAgICAgICBtX3BlbmRp
bmdFbnRyaWVzLnJlbW92ZShtX2N1cnJlbnRIYW5kbGUtPmZpcnN0UmVxdWVzdCgpLnVybCgpKTsK
ICAgICAgICAgICAgIG1fY3VycmVudEhhbmRsZS0+Y2FuY2VsKCk7Ci0gICAgICAgICAgICBtX2N1
cnJlbnRIYW5kbGUgPSAwOworICAgICAgICAgICAgbV9jdXJyZW50SGFuZGxlID0gbnVsbHB0cjsK
ICAgICAgICAgICAgIC8vIExvYWQgdGhlIG5leHQgcmVzb3VyY2UsIGlmIGFueS4KICAgICAgICAg
ICAgIHN0YXJ0TG9hZGluZ0VudHJ5KCk7CiAgICAgICAgICAgICByZXR1cm47CkBAIC01MzgsNyAr
NTM4LDcgQEAgdm9pZCBBcHBsaWNhdGlvbkNhY2hlR3JvdXA6OmRpZFJlY2VpdmVSZXNwb25zZShS
ZXNvdXJjZUhhbmRsZSogaGFuZGxlLCBjb25zdCBSZXMKICAgICAgICAgfSBlbHNlIGlmIChyZXNw
b25zZS5odHRwU3RhdHVzQ29kZSgpID09IDQwNCB8fCByZXNwb25zZS5odHRwU3RhdHVzQ29kZSgp
ID09IDQxMCkgewogICAgICAgICAgICAgLy8gU2tpcCB0aGlzIHJlc291cmNlLiBJdCBpcyBkcm9w
cGVkIGZyb20gdGhlIGNhY2hlLgogICAgICAgICAgICAgbV9jdXJyZW50SGFuZGxlLT5jYW5jZWwo
KTsKLSAgICAgICAgICAgIG1fY3VycmVudEhhbmRsZSA9IDA7CisgICAgICAgICAgICBtX2N1cnJl
bnRIYW5kbGUgPSBudWxscHRyOwogICAgICAgICAgICAgbV9wZW5kaW5nRW50cmllcy5yZW1vdmUo
dXJsKTsKICAgICAgICAgICAgIC8vIExvYWQgdGhlIG5leHQgcmVzb3VyY2UsIGlmIGFueS4KICAg
ICAgICAgICAgIHN0YXJ0TG9hZGluZ0VudHJ5KCk7CkBAIC01NTEsNyArNTUxLDcgQEAgdm9pZCBB
cHBsaWNhdGlvbkNhY2hlR3JvdXA6OmRpZFJlY2VpdmVSZXNwb25zZShSZXNvdXJjZUhhbmRsZSog
aGFuZGxlLCBjb25zdCBSZXMKICAgICAgICAgICAgIG1fY2FjaGVCZWluZ1VwZGF0ZWQtPmFkZFJl
c291cmNlKEFwcGxpY2F0aW9uQ2FjaGVSZXNvdXJjZTo6Y3JlYXRlKHVybCwgbmV3ZXN0Q2FjaGVk
UmVzb3VyY2UtPnJlc3BvbnNlKCksIHR5cGUsIG5ld2VzdENhY2hlZFJlc291cmNlLT5kYXRhKCks
IG5ld2VzdENhY2hlZFJlc291cmNlLT5wYXRoKCkpKTsKICAgICAgICAgICAgIG1fcGVuZGluZ0Vu
dHJpZXMucmVtb3ZlKG1fY3VycmVudEhhbmRsZS0+Zmlyc3RSZXF1ZXN0KCkudXJsKCkpOwogICAg
ICAgICAgICAgbV9jdXJyZW50SGFuZGxlLT5jYW5jZWwoKTsKLSAgICAgICAgICAgIG1fY3VycmVu
dEhhbmRsZSA9IDA7CisgICAgICAgICAgICBtX2N1cnJlbnRIYW5kbGUgPSBudWxscHRyOwogICAg
ICAgICAgICAgLy8gTG9hZCB0aGUgbmV4dCByZXNvdXJjZSwgaWYgYW55LgogICAgICAgICAgICAg
c3RhcnRMb2FkaW5nRW50cnkoKTsKICAgICAgICAgfQpAQCAtNTk1LDcgKzU5NSw3IEBAIHZvaWQg
QXBwbGljYXRpb25DYWNoZUdyb3VwOjpkaWRGaW5pc2hMb2FkaW5nKFJlc291cmNlSGFuZGxlKiBo
YW5kbGUsIGRvdWJsZSBmaW5pCiAgICAgQVNTRVJUKG1fY2FjaGVCZWluZ1VwZGF0ZWQpOwogCiAg
ICAgbV9jYWNoZUJlaW5nVXBkYXRlZC0+YWRkUmVzb3VyY2UobV9jdXJyZW50UmVzb3VyY2UucmVs
ZWFzZSgpKTsKLSAgICBtX2N1cnJlbnRIYW5kbGUgPSAwOworICAgIG1fY3VycmVudEhhbmRsZSA9
IG51bGxwdHI7CiAKICAgICAvLyBXaGlsZSBkb3dubG9hZGluZyBjaGVjayB0byBzZWUgaWYgd2Ug
aGF2ZSBleGNlZWRlZCB0aGUgYXZhaWxhYmxlIHF1b3RhLgogICAgIC8vIFdlIGNhbiBzdG9wIGlt
bWVkaWF0ZWx5IGlmIHdlIGhhdmUgYWxyZWFkeSBwcmV2aW91c2x5IGZhaWxlZApAQCAtNjAzLDcg
KzYwMyw3IEBAIHZvaWQgQXBwbGljYXRpb25DYWNoZUdyb3VwOjpkaWRGaW5pc2hMb2FkaW5nKFJl
c291cmNlSGFuZGxlKiBoYW5kbGUsIGRvdWJsZSBmaW5pCiAgICAgLy8gb2YgdGhlIHF1b3RhIGJl
aW5nIHJlYWNoZWQgYW5kIGRlY2lkZWQgbm90IHRvIGluY3JlYXNlIGl0IHRoZW4uCiAgICAgLy8g
RklYTUU6IFNob3VsZCB3ZSBicmVhayBlYXJsaWVyIGFuZCBwcmV2ZW50IHJlZG93bmxvYWRpbmcg
b24gbGF0ZXIgcGFnZSBsb2Fkcz8KICAgICBpZiAobV9vcmlnaW5RdW90YUV4Y2VlZGVkUHJldmlv
dXNseSAmJiBtX2F2YWlsYWJsZVNwYWNlSW5RdW90YSA8IG1fY2FjaGVCZWluZ1VwZGF0ZWQtPmVz
dGltYXRlZFNpemVJblN0b3JhZ2UoKSkgewotICAgICAgICBtX2N1cnJlbnRSZXNvdXJjZSA9IDA7
CisgICAgICAgIG1fY3VycmVudFJlc291cmNlID0gbnVsbHB0cjsKICAgICAgICAgbV9mcmFtZS0+
ZG9jdW1lbnQoKS0+YWRkQ29uc29sZU1lc3NhZ2UoTWVzc2FnZVNvdXJjZTo6QXBwQ2FjaGUsIE1l
c3NhZ2VMZXZlbDo6RXJyb3IsIEFTQ0lJTGl0ZXJhbCgiQXBwbGljYXRpb24gQ2FjaGUgdXBkYXRl
IGZhaWxlZCwgYmVjYXVzZSBzaXplIHF1b3RhIHdhcyBleGNlZWRlZC4iKSk7CiAgICAgICAgIGNh
Y2hlVXBkYXRlRmFpbGVkKCk7CiAgICAgICAgIHJldHVybjsKQEAgLTYzMSw3ICs2MzEsNyBAQCB2
b2lkIEFwcGxpY2F0aW9uQ2FjaGVHcm91cDo6ZGlkRmFpbChSZXNvdXJjZUhhbmRsZSogaGFuZGxl
LCBjb25zdCBSZXNvdXJjZUVycm9yJgogICAgICAgICB1cmwucmVtb3ZlRnJhZ21lbnRJZGVudGlm
aWVyKCk7CiAKICAgICBBU1NFUlQoIW1fY3VycmVudFJlc291cmNlIHx8ICFtX3BlbmRpbmdFbnRy
aWVzLmNvbnRhaW5zKHVybCkpOwotICAgIG1fY3VycmVudFJlc291cmNlID0gMDsKKyAgICBtX2N1
cnJlbnRSZXNvdXJjZSA9IG51bGxwdHI7CiAgICAgbV9wZW5kaW5nRW50cmllcy5yZW1vdmUodXJs
KTsKIAogICAgIGlmICgodHlwZSAmIEFwcGxpY2F0aW9uQ2FjaGVSZXNvdXJjZTo6RXhwbGljaXQp
IHx8ICh0eXBlICYgQXBwbGljYXRpb25DYWNoZVJlc291cmNlOjpGYWxsYmFjaykpIHsKQEAgLTY5
NSw3ICs2OTUsNyBAQCB2b2lkIEFwcGxpY2F0aW9uQ2FjaGVHcm91cDo6ZGlkRmluaXNoTG9hZGlu
Z01hbmlmZXN0KCkKICAgICAgICAgcmV0dXJuOwogICAgIH0KIAotICAgIG1fbWFuaWZlc3RIYW5k
bGUgPSAwOworICAgIG1fbWFuaWZlc3RIYW5kbGUgPSBudWxscHRyOwogCiAgICAgLy8gQ2hlY2sg
aWYgdGhlIG1hbmlmZXN0IHdhcyBub3QgbW9kaWZpZWQuCiAgICAgaWYgKGlzVXBncmFkZUF0dGVt
cHQpIHsKQEAgLTcwNiw3ICs3MDYsNyBAQCB2b2lkIEFwcGxpY2F0aW9uQ2FjaGVHcm91cDo6ZGlk
RmluaXNoTG9hZGluZ01hbmlmZXN0KCkKICAgICAgICAgICAgIChuZXdlc3RNYW5pZmVzdC0+ZGF0
YSgpLT5zaXplKCkgPT0gbV9tYW5pZmVzdFJlc291cmNlLT5kYXRhKCktPnNpemUoKSAmJiAhbWVt
Y21wKG5ld2VzdE1hbmlmZXN0LT5kYXRhKCktPmRhdGEoKSwgbV9tYW5pZmVzdFJlc291cmNlLT5k
YXRhKCktPmRhdGEoKSwgbmV3ZXN0TWFuaWZlc3QtPmRhdGEoKS0+c2l6ZSgpKSkpIHsKIAogICAg
ICAgICAgICAgbV9jb21wbGV0aW9uVHlwZSA9IE5vVXBkYXRlOwotICAgICAgICAgICAgbV9tYW5p
ZmVzdFJlc291cmNlID0gMDsKKyAgICAgICAgICAgIG1fbWFuaWZlc3RSZXNvdXJjZSA9IG51bGxw
dHI7CiAgICAgICAgICAgICBkZWxpdmVyRGVsYXllZE1haW5SZXNvdXJjZXMoKTsKIAogICAgICAg
ICAgICAgcmV0dXJuOwpAQCAtNzgyLDcgKzc4Miw3IEBAIHZvaWQgQXBwbGljYXRpb25DYWNoZUdy
b3VwOjpkaWRSZWFjaE9yaWdpblF1b3RhKGludDY0X3QgdG90YWxTcGFjZU5lZWRlZCkKIHZvaWQg
QXBwbGljYXRpb25DYWNoZUdyb3VwOjpjYWNoZVVwZGF0ZUZhaWxlZCgpCiB7CiAgICAgc3RvcExv
YWRpbmcoKTsKLSAgICBtX21hbmlmZXN0UmVzb3VyY2UgPSAwOworICAgIG1fbWFuaWZlc3RSZXNv
dXJjZSA9IG51bGxwdHI7CiAKICAgICAvLyBXYWl0IGZvciBtYXN0ZXIgcmVzb3VyY2UgbG9hZHMg
dG8gZmluaXNoLgogICAgIG1fY29tcGxldGlvblR5cGUgPSBGYWlsdXJlOwpAQCAtODA3LDcgKzgw
Nyw3IEBAIHZvaWQgQXBwbGljYXRpb25DYWNoZUdyb3VwOjptYW5pZmVzdE5vdEZvdW5kKCkKICAg
ICBzdG9wTG9hZGluZygpOwogCiAgICAgQVNTRVJUKG1fcGVuZGluZ0VudHJpZXMuaXNFbXB0eSgp
KTsKLSAgICBtX21hbmlmZXN0UmVzb3VyY2UgPSAwOworICAgIG1fbWFuaWZlc3RSZXNvdXJjZSA9
IG51bGxwdHI7CiAKICAgICB3aGlsZSAoIW1fcGVuZGluZ01hc3RlclJlc291cmNlTG9hZGVycy5p
c0VtcHR5KCkpIHsKICAgICAgICAgSGFzaFNldDxEb2N1bWVudExvYWRlcio+OjppdGVyYXRvciBp
dCA9IG1fcGVuZGluZ01hc3RlclJlc291cmNlTG9hZGVycy5iZWdpbigpOwpkaWZmIC0tZ2l0IGEv
U291cmNlL1dlYkNvcmUvbG9hZGVyL2NhY2hlL0NhY2hlZENTU1N0eWxlU2hlZXQuY3BwIGIvU291
cmNlL1dlYkNvcmUvbG9hZGVyL2NhY2hlL0NhY2hlZENTU1N0eWxlU2hlZXQuY3BwCmluZGV4IDdj
MmZlN2QuLjZkMTE4ODAgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2xvYWRlci9jYWNoZS9D
YWNoZWRDU1NTdHlsZVNoZWV0LmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9sb2FkZXIvY2FjaGUv
Q2FjaGVkQ1NTU3R5bGVTaGVldC5jcHAKQEAgLTEzOCw3ICsxMzgsNyBAQCB2b2lkIENhY2hlZENT
U1N0eWxlU2hlZXQ6OmRlc3Ryb3lEZWNvZGVkRGF0YSgpCiAgICAgICAgIHJldHVybjsKIAogICAg
IG1fcGFyc2VkU3R5bGVTaGVldENhY2hlLT5yZW1vdmVkRnJvbU1lbW9yeUNhY2hlKCk7Ci0gICAg
bV9wYXJzZWRTdHlsZVNoZWV0Q2FjaGUuY2xlYXIoKTsKKyAgICBtX3BhcnNlZFN0eWxlU2hlZXRD
YWNoZSA9IG51bGxwdHI7CiAKICAgICBzZXREZWNvZGVkU2l6ZSgwKTsKIH0KQEAgLTE0NiwxMSAr
MTQ2LDExIEBAIHZvaWQgQ2FjaGVkQ1NTU3R5bGVTaGVldDo6ZGVzdHJveURlY29kZWREYXRhKCkK
IFBhc3NSZWZQdHI8U3R5bGVTaGVldENvbnRlbnRzPiBDYWNoZWRDU1NTdHlsZVNoZWV0OjpyZXN0
b3JlUGFyc2VkU3R5bGVTaGVldChjb25zdCBDU1NQYXJzZXJDb250ZXh0JiBjb250ZXh0LCBDYWNo
ZVBvbGljeSBjYWNoZVBvbGljeSkKIHsKICAgICBpZiAoIW1fcGFyc2VkU3R5bGVTaGVldENhY2hl
KQotICAgICAgICByZXR1cm4gMDsKKyAgICAgICAgcmV0dXJuIG51bGxwdHI7CiAgICAgaWYgKCFt
X3BhcnNlZFN0eWxlU2hlZXRDYWNoZS0+c3VicmVzb3VyY2VzQWxsb3dSZXVzZShjYWNoZVBvbGlj
eSkpIHsKICAgICAgICAgbV9wYXJzZWRTdHlsZVNoZWV0Q2FjaGUtPnJlbW92ZWRGcm9tTWVtb3J5
Q2FjaGUoKTsKLSAgICAgICAgbV9wYXJzZWRTdHlsZVNoZWV0Q2FjaGUuY2xlYXIoKTsKLSAgICAg
ICAgcmV0dXJuIDA7CisgICAgICAgIG1fcGFyc2VkU3R5bGVTaGVldENhY2hlID0gbnVsbHB0cjsK
KyAgICAgICAgcmV0dXJuIG51bGxwdHI7CiAgICAgfQogCiAgICAgQVNTRVJUKG1fcGFyc2VkU3R5
bGVTaGVldENhY2hlLT5pc0NhY2hlYWJsZSgpKTsKQEAgLTE1OCw3ICsxNTgsNyBAQCBQYXNzUmVm
UHRyPFN0eWxlU2hlZXRDb250ZW50cz4gQ2FjaGVkQ1NTU3R5bGVTaGVldDo6cmVzdG9yZVBhcnNl
ZFN0eWxlU2hlZXQoY29ucwogCiAgICAgLy8gQ29udGV4dHMgbXVzdCBiZSBpZGVudGljYWwgc28g
d2Uga25vdyB3ZSB3b3VsZCBnZXQgdGhlIHNhbWUgZXhhY3QgcmVzdWx0IGlmIHdlIHBhcnNlZCBh
Z2Fpbi4KICAgICBpZiAobV9wYXJzZWRTdHlsZVNoZWV0Q2FjaGUtPnBhcnNlckNvbnRleHQoKSAh
PSBjb250ZXh0KQotICAgICAgICByZXR1cm4gMDsKKyAgICAgICAgcmV0dXJuIG51bGxwdHI7CiAK
ICAgICBkaWRBY2Nlc3NEZWNvZGVkRGF0YShtb25vdG9uaWNhbGx5SW5jcmVhc2luZ1RpbWUoKSk7
CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2xvYWRlci9jYWNoZS9DYWNoZWRJbWFnZS5j
cHAgYi9Tb3VyY2UvV2ViQ29yZS9sb2FkZXIvY2FjaGUvQ2FjaGVkSW1hZ2UuY3BwCmluZGV4IDUy
NzY5ZGIuLmRmMzM2NzUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2xvYWRlci9jYWNoZS9D
YWNoZWRJbWFnZS5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvbG9hZGVyL2NhY2hlL0NhY2hlZElt
YWdlLmNwcApAQCAtMzY1LDggKzM2NSw4IEBAIGlubGluZSB2b2lkIENhY2hlZEltYWdlOjpjbGVh
ckltYWdlKCkKICAgICAvLyBJZiBvdXIgSW1hZ2UgaGFzIGFuIG9ic2VydmVyLCBpdCdzIGFsd2F5
cyB1cyBzbyB3ZSBuZWVkIHRvIGNsZWFyIHRoZSBiYWNrIHBvaW50ZXIKICAgICAvLyBiZWZvcmUg
ZHJvcHBpbmcgb3VyIHJlZmVyZW5jZS4KICAgICBpZiAobV9pbWFnZSkKLSAgICAgICAgbV9pbWFn
ZS0+c2V0SW1hZ2VPYnNlcnZlcigwKTsKLSAgICBtX2ltYWdlLmNsZWFyKCk7CisgICAgICAgIG1f
aW1hZ2UtPnNldEltYWdlT2JzZXJ2ZXIobnVsbHB0cik7CisgICAgbV9pbWFnZSA9IG51bGxwdHI7
CiB9CiAKIHZvaWQgQ2FjaGVkSW1hZ2U6OmFkZEluY3JlbWVudGFsRGF0YUJ1ZmZlcihTaGFyZWRC
dWZmZXImIGRhdGEpCkBAIC00NTgsNyArNDU4LDcgQEAgdm9pZCBDYWNoZWRJbWFnZTo6ZGVzdHJv
eURlY29kZWREYXRhKCkKIHsKICAgICBib29sIGNhbkRlbGV0ZUltYWdlID0gIW1faW1hZ2UgfHwg
KG1faW1hZ2UtPmhhc09uZVJlZigpICYmIG1faW1hZ2UtPmlzQml0bWFwSW1hZ2UoKSk7CiAgICAg
aWYgKGNhbkRlbGV0ZUltYWdlICYmICFpc0xvYWRpbmcoKSAmJiAhaGFzQ2xpZW50cygpKSB7Ci0g
ICAgICAgIG1faW1hZ2UgPSAwOworICAgICAgICBtX2ltYWdlID0gbnVsbHB0cjsKICAgICAgICAg
c2V0RGVjb2RlZFNpemUoMCk7CiAgICAgfSBlbHNlIGlmIChtX2ltYWdlICYmICFlcnJvck9jY3Vy
cmVkKCkpCiAgICAgICAgIG1faW1hZ2UtPmRlc3Ryb3lEZWNvZGVkRGF0YSgpOwpkaWZmIC0tZ2l0
IGEvU291cmNlL1dlYkNvcmUvbG9hZGVyL2NhY2hlL0NhY2hlZFJhd1Jlc291cmNlLmNwcCBiL1Nv
dXJjZS9XZWJDb3JlL2xvYWRlci9jYWNoZS9DYWNoZWRSYXdSZXNvdXJjZS5jcHAKaW5kZXggM2Mx
YjI5NS4uNTRiYmRlMSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvbG9hZGVyL2NhY2hlL0Nh
Y2hlZFJhd1Jlc291cmNlLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9sb2FkZXIvY2FjaGUvQ2Fj
aGVkUmF3UmVzb3VyY2UuY3BwCkBAIC0yNjgsNyArMjY4LDcgQEAgYm9vbCBDYWNoZWRSYXdSZXNv
dXJjZTo6Y2FuUmV1c2UoY29uc3QgUmVzb3VyY2VSZXF1ZXN0JiBuZXdSZXF1ZXN0KSBjb25zdAog
CiB2b2lkIENhY2hlZFJhd1Jlc291cmNlOjpjbGVhcigpCiB7Ci0gICAgbV9kYXRhLmNsZWFyKCk7
CisgICAgbV9kYXRhID0gbnVsbHB0cjsKICAgICBzZXRFbmNvZGVkU2l6ZSgwKTsKICAgICBpZiAo
bV9sb2FkZXIpCiAgICAgICAgIG1fbG9hZGVyLT5jbGVhclJlc291cmNlRGF0YSgpOwpkaWZmIC0t
Z2l0IGEvU291cmNlL1dlYkNvcmUvbG9hZGVyL2NhY2hlL0NhY2hlZFJlc291cmNlLmNwcCBiL1Nv
dXJjZS9XZWJDb3JlL2xvYWRlci9jYWNoZS9DYWNoZWRSZXNvdXJjZS5jcHAKaW5kZXggZjQ0MzFi
Zi4uM2JlZjIxZSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvbG9hZGVyL2NhY2hlL0NhY2hl
ZFJlc291cmNlLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9sb2FkZXIvY2FjaGUvQ2FjaGVkUmVz
b3VyY2UuY3BwCkBAIC0zMTcsNyArMzE3LDcgQEAgdm9pZCBDYWNoZWRSZXNvdXJjZTo6ZXJyb3Io
Q2FjaGVkUmVzb3VyY2U6OlN0YXR1cyBzdGF0dXMpCiB7CiAgICAgc2V0U3RhdHVzKHN0YXR1cyk7
CiAgICAgQVNTRVJUKGVycm9yT2NjdXJyZWQoKSk7Ci0gICAgbV9kYXRhLmNsZWFyKCk7CisgICAg
bV9kYXRhID0gbnVsbHB0cjsKIAogICAgIHNldExvYWRpbmcoZmFsc2UpOwogICAgIGNoZWNrTm90
aWZ5KCk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9sb2FkZXIvaWNvbi9JY29uUmVjb3Jk
LmNwcCBiL1NvdXJjZS9XZWJDb3JlL2xvYWRlci9pY29uL0ljb25SZWNvcmQuY3BwCmluZGV4IGQ0
YmMwZDEuLmU3ZjFkNGIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2xvYWRlci9pY29uL0lj
b25SZWNvcmQuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2xvYWRlci9pY29uL0ljb25SZWNvcmQu
Y3BwCkBAIC03MSw3ICs3MSw3IEBAIHZvaWQgSWNvblJlY29yZDo6c2V0SW1hZ2VEYXRhKFBhc3NS
ZWZQdHI8U2hhcmVkQnVmZmVyPiBkYXRhKQogICAgIC8vIENvcHkgdGhlIHByb3ZpZGVkIGRhdGEg
aW50byB0aGUgYnVmZmVyIG9mIHRoZSBuZXcgSW1hZ2Ugb2JqZWN0LgogICAgIGlmICghbV9pbWFn
ZS0+c2V0RGF0YShkYXRhLCB0cnVlKSkgewogICAgICAgICBMT0coSWNvbkRhdGFiYXNlLCAiTWFu
dWFsIGltYWdlIGRhdGEgZm9yIGljb25VUkwgJyVzJyBGQUlMRUQgLSBpdCB3YXMgcHJvYmFibHkg
aW52YWxpZCBpbWFnZSBkYXRhIiwgbV9pY29uVVJMLmFzY2lpKCkuZGF0YSgpKTsKLSAgICAgICAg
bV9pbWFnZS5jbGVhcigpOworICAgICAgICBtX2ltYWdlID0gbnVsbHB0cjsKICAgICB9CiAgICAg
CiAgICAgbV9kYXRhU2V0ID0gdHJ1ZTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BhZ2Uv
RXZlbnRIYW5kbGVyLmNwcCBiL1NvdXJjZS9XZWJDb3JlL3BhZ2UvRXZlbnRIYW5kbGVyLmNwcApp
bmRleCA2NTRhNGZlLi4zYWE2NmQ5IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wYWdlL0V2
ZW50SGFuZGxlci5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvcGFnZS9FdmVudEhhbmRsZXIuY3Bw
CkBAIC00ODUsNyArNDg1LDcgQEAgdm9pZCBFdmVudEhhbmRsZXI6OmNsZWFyKCkKICAgICBtX21v
dXNlUG9zaXRpb25Jc1Vua25vd24gPSB0cnVlOwogICAgIG1fbGFzdEtub3duTW91c2VQb3NpdGlv
biA9IEludFBvaW50KCk7CiAgICAgbV9sYXN0S25vd25Nb3VzZUdsb2JhbFBvc2l0aW9uID0gSW50
UG9pbnQoKTsKLSAgICBtX21vdXNlUHJlc3NOb2RlID0gMDsKKyAgICBtX21vdXNlUHJlc3NOb2Rl
ID0gbnVsbHB0cjsKICAgICBtX21vdXNlUHJlc3NlZCA9IGZhbHNlOwogICAgIG1fY2FwdHVyZXNE
cmFnZ2luZyA9IGZhbHNlOwogICAgIG1fY2FwdHVyaW5nTW91c2VFdmVudHNFbGVtZW50ID0gbnVs
bHB0cjsKQEAgLTQ5NCw3ICs0OTQsNyBAQCB2b2lkIEV2ZW50SGFuZGxlcjo6Y2xlYXIoKQogI2Vu
ZGlmCiAjaWYgRU5BQkxFKFRPVUNIX0VWRU5UUykgJiYgIUVOQUJMRShJT1NfVE9VQ0hfRVZFTlRT
KQogICAgIG1fb3JpZ2luYXRpbmdUb3VjaFBvaW50VGFyZ2V0cy5jbGVhcigpOwotICAgIG1fb3Jp
Z2luYXRpbmdUb3VjaFBvaW50RG9jdW1lbnQuY2xlYXIoKTsKKyAgICBtX29yaWdpbmF0aW5nVG91
Y2hQb2ludERvY3VtZW50ID0gbnVsbHB0cjsKICAgICBtX29yaWdpbmF0aW5nVG91Y2hQb2ludFRh
cmdldEtleSA9IDA7CiAjZW5kaWYKICAgICBtX21heE1vdXNlTW92ZWREdXJhdGlvbiA9IDA7CkBA
IC0zOTk0LDcgKzM5OTQsNyBAQCBib29sIEV2ZW50SGFuZGxlcjo6aGFuZGxlVG91Y2hFdmVudChj
b25zdCBQbGF0Zm9ybVRvdWNoRXZlbnQmIGV2ZW50KQogICAgIH0KICAgICBtX3RvdWNoUHJlc3Nl
ZCA9IHRvdWNoZXMtPmxlbmd0aCgpID4gMDsKICAgICBpZiAoYWxsVG91Y2hSZWxlYXNlZCkKLSAg
ICAgICAgbV9vcmlnaW5hdGluZ1RvdWNoUG9pbnREb2N1bWVudC5jbGVhcigpOworICAgICAgICBt
X29yaWdpbmF0aW5nVG91Y2hQb2ludERvY3VtZW50ID0gbnVsbHB0cjsKIAogICAgIC8vIE5vdyBp
dGVyYXRlIHRoZSBjaGFuZ2VkVG91Y2hlcyBsaXN0IGFuZCBtX3RhcmdldHMgd2l0aGluIGl0LCBz
ZW5kaW5nIGV2ZW50cyB0byB0aGUgdGFyZ2V0cyBhcyByZXF1aXJlZC4KICAgICBib29sIHN3YWxs
b3dlZEV2ZW50ID0gZmFsc2U7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wYWdlL1BhZ2Uu
Y3BwIGIvU291cmNlL1dlYkNvcmUvcGFnZS9QYWdlLmNwcAppbmRleCAxZDNkY2MyLi5mODZkODFm
IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wYWdlL1BhZ2UuY3BwCisrKyBiL1NvdXJjZS9X
ZWJDb3JlL3BhZ2UvUGFnZS5jcHAKQEAgLTUxNiw3ICs1MTYsNyBAQCB2b2lkIFBhZ2U6OnJlZnJl
c2hQbHVnaW5zKGJvb2wgcmVsb2FkKQogICAgIFZlY3RvcjxSZWY8RnJhbWU+PiBmcmFtZXNOZWVk
aW5nUmVsb2FkOwogCiAgICAgZm9yIChhdXRvJiBwYWdlIDogKmFsbFBhZ2VzKSB7Ci0gICAgICAg
IHBhZ2UtPm1fcGx1Z2luRGF0YS5jbGVhcigpOworICAgICAgICBwYWdlLT5tX3BsdWdpbkRhdGEg
PSBudWxscHRyOwogCiAgICAgICAgIGlmICghcmVsb2FkKQogICAgICAgICAgICAgY29udGludWU7
CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9hdWRpby9tYWMvQ0FSaW5nQnVm
ZmVyLmNwcCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2F1ZGlvL21hYy9DQVJpbmdCdWZmZXIu
Y3BwCmluZGV4IGY3NmU4ZGYuLjA1NDQyYWQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3Bs
YXRmb3JtL2F1ZGlvL21hYy9DQVJpbmdCdWZmZXIuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3Bs
YXRmb3JtL2F1ZGlvL21hYy9DQVJpbmdCdWZmZXIuY3BwCkBAIC04Niw3ICs4Niw3IEBAIHZvaWQg
Q0FSaW5nQnVmZmVyOjphbGxvY2F0ZSh1aW50MzJfdCBjaGFubmVsQ291bnQsIHNpemVfdCBieXRl
c1BlckZyYW1lLCBzaXplX3QKIHZvaWQgQ0FSaW5nQnVmZmVyOjpkZWFsbG9jYXRlKCkKIHsKICAg
ICBpZiAobV9idWZmZXJzKQotICAgICAgICBtX2J1ZmZlcnMuY2xlYXIoKTsKKyAgICAgICAgbV9i
dWZmZXJzID0gbnVsbHB0cjsKIAogICAgIG1fY2hhbm5lbENvdW50ID0gMDsKICAgICBtX2NhcGFj
aXR5Qnl0ZXMgPSAwOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhp
Y3MvRm9udC5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9Gb250LmNwcApp
bmRleCA2MDNlYmE4Li5kOTI2NWI1IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9y
bS9ncmFwaGljcy9Gb250LmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGlj
cy9Gb250LmNwcApAQCAtMzYzLDcgKzM2Myw3IEBAIGNvbnN0IE9wZW5UeXBlTWF0aERhdGEqIEZv
bnQ6Om1hdGhEYXRhKCkgY29uc3QKICAgICBpZiAoIW1fbWF0aERhdGEpIHsKICAgICAgICAgbV9t
YXRoRGF0YSA9IE9wZW5UeXBlTWF0aERhdGE6OmNyZWF0ZShtX3BsYXRmb3JtRGF0YSk7CiAgICAg
ICAgIGlmICghbV9tYXRoRGF0YS0+aGFzTWF0aERhdGEoKSkKLSAgICAgICAgICAgIG1fbWF0aERh
dGEuY2xlYXIoKTsKKyAgICAgICAgICAgIG1fbWF0aERhdGEgPSBudWxscHRyOwogICAgIH0KICAg
ICByZXR1cm4gbV9tYXRoRGF0YS5nZXQoKTsKIH0KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3Jl
L3BsYXRmb3JtL2dyYXBoaWNzL0ZvbnRDYWNoZS5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9y
bS9ncmFwaGljcy9Gb250Q2FjaGUuY3BwCmluZGV4IGE2YzQwNDkuLjhkMWE4MzUgMTAwNjQ0Ci0t
LSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL0ZvbnRDYWNoZS5jcHAKKysrIGIv
U291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvRm9udENhY2hlLmNwcApAQCAtMzIwLDcg
KzMyMCw3IEBAIFBhc3NSZWZQdHI8T3BlblR5cGVWZXJ0aWNhbERhdGE+IEZvbnRDYWNoZTo6Z2V0
VmVydGljYWxEYXRhKGNvbnN0IEZvbnRGaWxlS2V5JiBrCiAKICAgICBSZWZQdHI8T3BlblR5cGVW
ZXJ0aWNhbERhdGE+IHZlcnRpY2FsRGF0YSA9IE9wZW5UeXBlVmVydGljYWxEYXRhOjpjcmVhdGUo
cGxhdGZvcm1EYXRhKTsKICAgICBpZiAoIXZlcnRpY2FsRGF0YS0+aXNPcGVuVHlwZSgpKQotICAg
ICAgICB2ZXJ0aWNhbERhdGEuY2xlYXIoKTsKKyAgICAgICAgdmVydGljYWxEYXRhID0gbnVsbHB0
cjsKICAgICBmb250VmVydGljYWxEYXRhQ2FjaGUuc2V0KGtleSwgdmVydGljYWxEYXRhKTsKICAg
ICByZXR1cm4gdmVydGljYWxEYXRhOwogfQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxh
dGZvcm0vZ3JhcGhpY3MvR3JhcGhpY3NDb250ZXh0LmNwcCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRm
b3JtL2dyYXBoaWNzL0dyYXBoaWNzQ29udGV4dC5jcHAKaW5kZXggZDM4YzFmYS4uZTZiMzdmZCAx
MDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvR3JhcGhpY3NDb250
ZXh0LmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9HcmFwaGljc0Nv
bnRleHQuY3BwCkBAIC0xNzgsOCArMTc4LDggQEAgdm9pZCBHcmFwaGljc0NvbnRleHQ6OnNldFN0
cm9rZUNvbG9yKGNvbnN0IENvbG9yJiBjb2xvciwgQ29sb3JTcGFjZSBjb2xvclNwYWNlKQogewog
ICAgIG1fc3RhdGUuc3Ryb2tlQ29sb3IgPSBjb2xvcjsKICAgICBtX3N0YXRlLnN0cm9rZUNvbG9y
U3BhY2UgPSBjb2xvclNwYWNlOwotICAgIG1fc3RhdGUuc3Ryb2tlR3JhZGllbnQuY2xlYXIoKTsK
LSAgICBtX3N0YXRlLnN0cm9rZVBhdHRlcm4uY2xlYXIoKTsKKyAgICBtX3N0YXRlLnN0cm9rZUdy
YWRpZW50ID0gbnVsbHB0cjsKKyAgICBtX3N0YXRlLnN0cm9rZVBhdHRlcm4gPSBudWxscHRyOwog
ICAgIHNldFBsYXRmb3JtU3Ryb2tlQ29sb3IoY29sb3IsIGNvbG9yU3BhY2UpOwogfQogCkBAIC0y
NDUsOCArMjQ1LDggQEAgdm9pZCBHcmFwaGljc0NvbnRleHQ6OnNldEZpbGxDb2xvcihjb25zdCBD
b2xvciYgY29sb3IsIENvbG9yU3BhY2UgY29sb3JTcGFjZSkKIHsKICAgICBtX3N0YXRlLmZpbGxD
b2xvciA9IGNvbG9yOwogICAgIG1fc3RhdGUuZmlsbENvbG9yU3BhY2UgPSBjb2xvclNwYWNlOwot
ICAgIG1fc3RhdGUuZmlsbEdyYWRpZW50LmNsZWFyKCk7Ci0gICAgbV9zdGF0ZS5maWxsUGF0dGVy
bi5jbGVhcigpOworICAgIG1fc3RhdGUuZmlsbEdyYWRpZW50ID0gbnVsbHB0cjsKKyAgICBtX3N0
YXRlLmZpbGxQYXR0ZXJuID0gbnVsbHB0cjsKICAgICBzZXRQbGF0Zm9ybUZpbGxDb2xvcihjb2xv
ciwgY29sb3JTcGFjZSk7CiB9CiAKQEAgLTI2OSwyNiArMjY5LDI2IEBAIHZvaWQgR3JhcGhpY3ND
b250ZXh0OjpzZXRBbnRpYWxpYXNlZEZvbnREaWxhdGlvbkVuYWJsZWQoYm9vbCBhbnRpYWxpYXNl
ZEZvbnREaWxhCiAKIHZvaWQgR3JhcGhpY3NDb250ZXh0OjpzZXRTdHJva2VQYXR0ZXJuKFJlZjxQ
YXR0ZXJuPiYmIHBhdHRlcm4pCiB7Ci0gICAgbV9zdGF0ZS5zdHJva2VHcmFkaWVudC5jbGVhcigp
OworICAgIG1fc3RhdGUuc3Ryb2tlR3JhZGllbnQgPSBudWxscHRyOwogICAgIG1fc3RhdGUuc3Ry
b2tlUGF0dGVybiA9IFdURjo6bW92ZShwYXR0ZXJuKTsKIH0KIAogdm9pZCBHcmFwaGljc0NvbnRl
eHQ6OnNldEZpbGxQYXR0ZXJuKFJlZjxQYXR0ZXJuPiYmIHBhdHRlcm4pCiB7Ci0gICAgbV9zdGF0
ZS5maWxsR3JhZGllbnQuY2xlYXIoKTsKKyAgICBtX3N0YXRlLmZpbGxHcmFkaWVudCA9IG51bGxw
dHI7CiAgICAgbV9zdGF0ZS5maWxsUGF0dGVybiA9IFdURjo6bW92ZShwYXR0ZXJuKTsKIH0KIAog
dm9pZCBHcmFwaGljc0NvbnRleHQ6OnNldFN0cm9rZUdyYWRpZW50KFJlZjxHcmFkaWVudD4mJiBn
cmFkaWVudCkKIHsKICAgICBtX3N0YXRlLnN0cm9rZUdyYWRpZW50ID0gV1RGOjptb3ZlKGdyYWRp
ZW50KTsKLSAgICBtX3N0YXRlLnN0cm9rZVBhdHRlcm4uY2xlYXIoKTsKKyAgICBtX3N0YXRlLnN0
cm9rZVBhdHRlcm4gPSBudWxscHRyOwogfQogCiB2b2lkIEdyYXBoaWNzQ29udGV4dDo6c2V0Rmls
bEdyYWRpZW50KFJlZjxHcmFkaWVudD4mJiBncmFkaWVudCkKIHsKICAgICBtX3N0YXRlLmZpbGxH
cmFkaWVudCA9IFdURjo6bW92ZShncmFkaWVudCk7Ci0gICAgbV9zdGF0ZS5maWxsUGF0dGVybi5j
bGVhcigpOworICAgIG1fc3RhdGUuZmlsbFBhdHRlcm4gPSBudWxscHRyOwogfQogCiB2b2lkIEdy
YXBoaWNzQ29udGV4dDo6YmVnaW5UcmFuc3BhcmVuY3lMYXllcihmbG9hdCBvcGFjaXR5KQpkaWZm
IC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvTWVkaWFQbGF5ZXIuY3Bw
IGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvTWVkaWFQbGF5ZXIuY3BwCmluZGV4
IDI5NGE3NmQuLjAxMjc5NWUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dy
YXBoaWNzL01lZGlhUGxheWVyLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFw
aGljcy9NZWRpYVBsYXllci5jcHAKQEAgLTMxNCwxMCArMzE0LDEwIEBAIGJvb2wgTWVkaWFQbGF5
ZXI6OmxvYWQoY29uc3QgVVJMJiB1cmwsIGNvbnN0IENvbnRlbnRUeXBlJiBjb250ZW50VHlwZSwg
Y29uc3QgU3RyCiAgICAgbV9jb250ZW50TUlNRVR5cGVXYXNJbmZlcnJlZEZyb21FeHRlbnNpb24g
PSBmYWxzZTsKIAogI2lmIEVOQUJMRShNRURJQV9TT1VSQ0UpCi0gICAgbV9tZWRpYVNvdXJjZSA9
IDA7CisgICAgbV9tZWRpYVNvdXJjZSA9IG51bGxwdHI7CiAjZW5kaWYKICNpZiBFTkFCTEUoTUVE
SUFfU1RSRUFNKQotICAgIG1fbWVkaWFTdHJlYW0gPSAwOworICAgIG1fbWVkaWFTdHJlYW0gPSBu
dWxscHRyOwogI2VuZGlmCiAKICAgICAvLyBJZiB0aGUgTUlNRSB0eXBlIGlzIG1pc3Npbmcgb3Ig
aXMgbm90IG1lYW5pbmdmdWwsIHRyeSB0byBmaWd1cmUgaXQgb3V0IGZyb20gdGhlIFVSTC4KZGlm
ZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2NhL0dyYXBoaWNzTGF5
ZXJDQS5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9jYS9HcmFwaGljc0xh
eWVyQ0EuY3BwCmluZGV4IDgyYzA3NjkuLjM0ZjRjZTEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJD
b3JlL3BsYXRmb3JtL2dyYXBoaWNzL2NhL0dyYXBoaWNzTGF5ZXJDQS5jcHAKKysrIGIvU291cmNl
L1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvY2EvR3JhcGhpY3NMYXllckNBLmNwcApAQCAtMjIw
OCw3ICsyMjA4LDcgQEAgdm9pZCBHcmFwaGljc0xheWVyQ0E6OnVwZGF0ZUNvbnRlbnRzSW1hZ2Uo
KQogICAgIH0gZWxzZSB7CiAgICAgICAgIC8vIE5vIGltYWdlLgogICAgICAgICAvLyBtX2NvbnRl
bnRzTGF5ZXIgd2lsbCBiZSByZW1vdmVkIHZpYSB1cGRhdGVTdWJsYXllckxpc3QuCi0gICAgICAg
IG1fY29udGVudHNMYXllciA9IDA7CisgICAgICAgIG1fY29udGVudHNMYXllciA9IG51bGxwdHI7
CiAgICAgfQogfQogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGlj
cy9jYWlyby9CYWNraW5nU3RvcmVCYWNrZW5kQ2Fpcm9YMTEuY3BwIGIvU291cmNlL1dlYkNvcmUv
cGxhdGZvcm0vZ3JhcGhpY3MvY2Fpcm8vQmFja2luZ1N0b3JlQmFja2VuZENhaXJvWDExLmNwcApp
bmRleCA3Yjg2MzFhLi40MzdkYWZjIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9y
bS9ncmFwaGljcy9jYWlyby9CYWNraW5nU3RvcmVCYWNrZW5kQ2Fpcm9YMTEuY3BwCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2NhaXJvL0JhY2tpbmdTdG9yZUJhY2tlbmRD
YWlyb1gxMS5jcHAKQEAgLTQzLDcgKzQzLDcgQEAgQmFja2luZ1N0b3JlQmFja2VuZENhaXJvWDEx
OjpCYWNraW5nU3RvcmVCYWNrZW5kQ2Fpcm9YMTEodW5zaWduZWQgbG9uZyByb290V2luZG8KIEJh
Y2tpbmdTdG9yZUJhY2tlbmRDYWlyb1gxMTo6fkJhY2tpbmdTdG9yZUJhY2tlbmRDYWlyb1gxMSgp
CiB7CiAgICAgLy8gVGhlIHBpeG1hcCBuZWVkcyB0byBleGlzdCB3aGVuIHRoZSBzdXJmYWNlIGlz
IGRlc3Ryb3llZCwgc28gYmVnaW4gYnkgY2xlYXJpbmcgaXQuCi0gICAgbV9zdXJmYWNlLmNsZWFy
KCk7CisgICAgbV9zdXJmYWNlID0gbnVsbHB0cjsKIH0KIAogdm9pZCBCYWNraW5nU3RvcmVCYWNr
ZW5kQ2Fpcm9YMTE6OnNjcm9sbChjb25zdCBJbnRSZWN0JiBzY3JvbGxSZWN0LCBjb25zdCBJbnRT
aXplJiBzY3JvbGxPZmZzZXQpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9n
cmFwaGljcy9jYWlyby9CaXRtYXBJbWFnZUNhaXJvLmNwcCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRm
b3JtL2dyYXBoaWNzL2NhaXJvL0JpdG1hcEltYWdlQ2Fpcm8uY3BwCmluZGV4IDI2ZGY1ZGYuLmYw
ZDNhN2EgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2NhaXJv
L0JpdG1hcEltYWdlQ2Fpcm8uY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBo
aWNzL2NhaXJvL0JpdG1hcEltYWdlQ2Fpcm8uY3BwCkBAIC0xNTksNyArMTU5LDcgQEAgYm9vbCBG
cmFtZURhdGE6OmNsZWFyKGJvb2wgY2xlYXJNZXRhZGF0YSkKICAgICAgICAgbV9oYXZlTWV0YWRh
dGEgPSBmYWxzZTsKIAogICAgIGlmIChtX2ZyYW1lKSB7Ci0gICAgICAgIG1fZnJhbWUuY2xlYXIo
KTsKKyAgICAgICAgbV9mcmFtZSA9IG51bGxwdHI7CiAgICAgICAgIHJldHVybiB0cnVlOwogICAg
IH0KICAgICByZXR1cm4gZmFsc2U7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9y
bS9ncmFwaGljcy9maWx0ZXJzL0ZpbHRlckVmZmVjdC5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0
Zm9ybS9ncmFwaGljcy9maWx0ZXJzL0ZpbHRlckVmZmVjdC5jcHAKaW5kZXggNzYyNzAwOC4uYzk4
ZDViOSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvZmlsdGVy
cy9GaWx0ZXJFZmZlY3QuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNz
L2ZpbHRlcnMvRmlsdGVyRWZmZWN0LmNwcApAQCAtMjQ1LDEyICsyNDUsMTIgQEAgdm9pZCBGaWx0
ZXJFZmZlY3Q6OmNsZWFyUmVzdWx0KCkKICAgICBpZiAobV9pbWFnZUJ1ZmZlclJlc3VsdCkKICAg
ICAgICAgbV9pbWFnZUJ1ZmZlclJlc3VsdC5yZXNldCgpOwogICAgIGlmIChtX3VubXVsdGlwbGll
ZEltYWdlUmVzdWx0KQotICAgICAgICBtX3VubXVsdGlwbGllZEltYWdlUmVzdWx0LmNsZWFyKCk7
CisgICAgICAgIG1fdW5tdWx0aXBsaWVkSW1hZ2VSZXN1bHQgPSBudWxscHRyOwogICAgIGlmICht
X3ByZW11bHRpcGxpZWRJbWFnZVJlc3VsdCkKLSAgICAgICAgbV9wcmVtdWx0aXBsaWVkSW1hZ2VS
ZXN1bHQuY2xlYXIoKTsKKyAgICAgICAgbV9wcmVtdWx0aXBsaWVkSW1hZ2VSZXN1bHQgPSBudWxs
cHRyOwogI2lmIEVOQUJMRShPUEVOQ0wpCiAgICAgaWYgKG1fb3BlbkNMSW1hZ2VSZXN1bHQpCi0g
ICAgICAgIG1fb3BlbkNMSW1hZ2VSZXN1bHQuY2xlYXIoKTsKKyAgICAgICAgbV9vcGVuQ0xJbWFn
ZVJlc3VsdCA9IG51bGxwdHI7CiAjZW5kaWYKIH0KIApAQCAtNTQwLDcgKzU0MCw3IEBAIHZvaWQg
RmlsdGVyRWZmZWN0Ojp0cmFuc2Zvcm1SZXN1bHRDb2xvclNwYWNlKENvbG9yU3BhY2UgZHN0Q29s
b3JTcGFjZSkKICNpZiBFTkFCTEUoT1BFTkNMKQogICAgIGlmIChvcGVuQ0xJbWFnZSgpKSB7CiAg
ICAgICAgIGlmIChtX2ltYWdlQnVmZmVyUmVzdWx0KQotICAgICAgICAgICAgbV9pbWFnZUJ1ZmZl
clJlc3VsdC5jbGVhcigpOworICAgICAgICAgICAgbV9pbWFnZUJ1ZmZlclJlc3VsdCA9IG51bGxw
dHI7CiAgICAgICAgIEZpbHRlckNvbnRleHRPcGVuQ0wqIGNvbnRleHQgPSBGaWx0ZXJDb250ZXh0
T3BlbkNMOjpjb250ZXh0KCk7CiAgICAgICAgIEFTU0VSVChjb250ZXh0KTsKICAgICAgICAgY29u
dGV4dC0+b3BlbkNMVHJhbnNmb3JtQ29sb3JTcGFjZShtX29wZW5DTEltYWdlUmVzdWx0LCBhYnNv
bHV0ZVBhaW50UmVjdCgpLCBtX3Jlc3VsdENvbG9yU3BhY2UsIGRzdENvbG9yU3BhY2UpOwpAQCAt
NTU4LDkgKzU1OCw5IEBAIHZvaWQgRmlsdGVyRWZmZWN0Ojp0cmFuc2Zvcm1SZXN1bHRDb2xvclNw
YWNlKENvbG9yU3BhY2UgZHN0Q29sb3JTcGFjZSkKICAgICBtX3Jlc3VsdENvbG9yU3BhY2UgPSBk
c3RDb2xvclNwYWNlOwogCiAgICAgaWYgKG1fdW5tdWx0aXBsaWVkSW1hZ2VSZXN1bHQpCi0gICAg
ICAgIG1fdW5tdWx0aXBsaWVkSW1hZ2VSZXN1bHQuY2xlYXIoKTsKKyAgICAgICAgbV91bm11bHRp
cGxpZWRJbWFnZVJlc3VsdCA9IG51bGxwdHI7CiAgICAgaWYgKG1fcHJlbXVsdGlwbGllZEltYWdl
UmVzdWx0KQotICAgICAgICBtX3ByZW11bHRpcGxpZWRJbWFnZVJlc3VsdC5jbGVhcigpOworICAg
ICAgICBtX3ByZW11bHRpcGxpZWRJbWFnZVJlc3VsdCA9IG51bGxwdHI7CiAjZW5kaWYKIH0KIApk
aWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvZ3N0cmVhbWVyL0lt
YWdlR1N0cmVhbWVyQ2Fpcm8uY3BwIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3Mv
Z3N0cmVhbWVyL0ltYWdlR1N0cmVhbWVyQ2Fpcm8uY3BwCmluZGV4IDA2ZmFlY2EuLmVlMjcyNzcg
MTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2dzdHJlYW1lci9J
bWFnZUdTdHJlYW1lckNhaXJvLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFw
aGljcy9nc3RyZWFtZXIvSW1hZ2VHU3RyZWFtZXJDYWlyby5jcHAKQEAgLTcxLDkgKzcxLDcgQEAg
SW1hZ2VHU3RyZWFtZXI6OkltYWdlR1N0cmVhbWVyKEdzdFNhbXBsZSogc2FtcGxlKQogSW1hZ2VH
U3RyZWFtZXI6On5JbWFnZUdTdHJlYW1lcigpCiB7CiAgICAgaWYgKG1faW1hZ2UpCi0gICAgICAg
IG1faW1hZ2UuY2xlYXIoKTsKLQotICAgIG1faW1hZ2UgPSAwOworICAgICAgICBtX2ltYWdlID0g
bnVsbHB0cjsKIAogICAgIC8vIFdlIGtlZXAgdGhlIGJ1ZmZlciBtZW1vcnkgbWFwcGVkIHVudGls
IHRoZSBpbWFnZSBpcyBkZXN0cm95ZWQgYmVjYXVzZSB0aGUgaW50ZXJuYWwKICAgICAvLyBjYWly
b19zdXJmYWNlX3Qgd2FzIGNyZWF0ZWQgdXNpbmcgY2Fpcm9faW1hZ2Vfc3VyZmFjZV9jcmVhdGVf
Zm9yX2RhdGEoKS4KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNz
L3RleG1hcC9CaXRtYXBUZXh0dXJlR0wuY3BwIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3Jh
cGhpY3MvdGV4bWFwL0JpdG1hcFRleHR1cmVHTC5jcHAKaW5kZXggOTc1YzM4Zi4uMGU1MmQ3YiAx
MDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvdGV4bWFwL0JpdG1h
cFRleHR1cmVHTC5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvdGV4
bWFwL0JpdG1hcFRleHR1cmVHTC5jcHAKQEAgLTI3OCw3ICsyNzgsNyBAQCBQYXNzUmVmUHRyPEJp
dG1hcFRleHR1cmU+IEJpdG1hcFRleHR1cmVHTDo6YXBwbHlGaWx0ZXJzKFRleHR1cmVNYXBwZXIq
IHRleHR1cmVNYQogICAgICAgICAgICAgdGV4bWFwR0wtPmRyYXdGaWx0ZXJlZCgqcmVzdWx0U3Vy
ZmFjZS5nZXQoKSwgc3BhcmVTdXJmYWNlLmdldCgpLCAqZmlsdGVyLCBqKTsKICAgICAgICAgICAg
IGlmICghaiAmJiBmaWx0ZXItPnR5cGUoKSA9PSBGaWx0ZXJPcGVyYXRpb246OkRST1BfU0hBRE9X
KSB7CiAgICAgICAgICAgICAgICAgc3BhcmVTdXJmYWNlID0gcmVzdWx0U3VyZmFjZTsKLSAgICAg
ICAgICAgICAgICByZXN1bHRTdXJmYWNlLmNsZWFyKCk7CisgICAgICAgICAgICAgICAgcmVzdWx0
U3VyZmFjZSA9IG51bGxwdHI7CiAgICAgICAgICAgICB9CiAgICAgICAgICAgICBzdGQ6OnN3YXAo
cmVzdWx0U3VyZmFjZSwgaW50ZXJtZWRpYXRlU3VyZmFjZSk7CiAgICAgICAgIH0KZGlmZiAtLWdp
dCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL3RleG1hcC9UZXh0dXJlTWFwcGVy
R0wuY3BwIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvdGV4bWFwL1RleHR1cmVN
YXBwZXJHTC5jcHAKaW5kZXggMGJjZThjNy4uNGM1NDgwNSAxMDA2NDQKLS0tIGEvU291cmNlL1dl
YkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvdGV4bWFwL1RleHR1cmVNYXBwZXJHTC5jcHAKKysrIGIv
U291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvdGV4bWFwL1RleHR1cmVNYXBwZXJHTC5j
cHAKQEAgLTY5MSw3ICs2OTEsNyBAQCB2b2lkIFRleHR1cmVNYXBwZXJHTDo6YmluZERlZmF1bHRT
dXJmYWNlKCkKICAgICBkYXRhKCkucHJvamVjdGlvbk1hdHJpeCA9IGNyZWF0ZVByb2plY3Rpb25N
YXRyaXgodmlld3BvcnRTaXplLCBkYXRhKCkuUGFpbnRGbGFncyAmIFBhaW50aW5nTWlycm9yZWQp
OwogICAgIG1fY29udGV4dDNELT52aWV3cG9ydChkYXRhKCkudmlld3BvcnRbMF0sIGRhdGEoKS52
aWV3cG9ydFsxXSwgdmlld3BvcnRTaXplLndpZHRoKCksIHZpZXdwb3J0U2l6ZS5oZWlnaHQoKSk7
CiAgICAgbV9jbGlwU3RhY2suYXBwbHkobV9jb250ZXh0M0QuZ2V0KCkpOwotICAgIGRhdGEoKS5j
dXJyZW50U3VyZmFjZS5jbGVhcigpOworICAgIGRhdGEoKS5jdXJyZW50U3VyZmFjZSA9IG51bGxw
dHI7CiB9CiAKIHZvaWQgVGV4dHVyZU1hcHBlckdMOjpiaW5kU3VyZmFjZShCaXRtYXBUZXh0dXJl
ICpzdXJmYWNlKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3Mv
dGV4bWFwL1RleHR1cmVNYXBwZXJMYXllci5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9n
cmFwaGljcy90ZXhtYXAvVGV4dHVyZU1hcHBlckxheWVyLmNwcAppbmRleCBjODY0MjAyLi4zNDU1
Mzk4IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy90ZXhtYXAv
VGV4dHVyZU1hcHBlckxheWVyLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFw
aGljcy90ZXhtYXAvVGV4dHVyZU1hcHBlckxheWVyLmNwcApAQCAtNDA4LDcgKzQwOCw3IEBAIHZv
aWQgVGV4dHVyZU1hcHBlckxheWVyOjpwYWludFdpdGhJbnRlcm1lZGlhdGVTdXJmYWNlKGNvbnN0
IFRleHR1cmVNYXBwZXJQYWludE9wCiAKICAgICBpZiAocmVwbGljYVN1cmZhY2UgJiYgb3B0aW9u
cy5vcGFjaXR5ID09IDEpIHsKICAgICAgICAgY29tbWl0U3VyZmFjZShvcHRpb25zLCByZXBsaWNh
U3VyZmFjZSwgcmVjdCwgMSk7Ci0gICAgICAgIHJlcGxpY2FTdXJmYWNlLmNsZWFyKCk7CisgICAg
ICAgIHJlcGxpY2FTdXJmYWNlID0gbnVsbHB0cjsKICAgICB9CiAKICAgICBtYWluU3VyZmFjZSA9
IHBhaW50SW50b1N1cmZhY2UocGFpbnRPcHRpb25zLCByZWN0LnNpemUoKSk7CmRpZmYgLS1naXQg
YS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy90ZXhtYXAvVGV4dHVyZU1hcHBlclRp
bGVkQmFja2luZ1N0b3JlLmNwcCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL3Rl
eG1hcC9UZXh0dXJlTWFwcGVyVGlsZWRCYWNraW5nU3RvcmUuY3BwCmluZGV4IDIwODA0NjIuLmQz
NTcxMGEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL3RleG1h
cC9UZXh0dXJlTWFwcGVyVGlsZWRCYWNraW5nU3RvcmUuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3Jl
L3BsYXRmb3JtL2dyYXBoaWNzL3RleG1hcC9UZXh0dXJlTWFwcGVyVGlsZWRCYWNraW5nU3RvcmUu
Y3BwCkBAIC0zOSw3ICszOSw3IEBAIHZvaWQgVGV4dHVyZU1hcHBlclRpbGVkQmFja2luZ1N0b3Jl
Ojp1cGRhdGVDb250ZW50c0Zyb21JbWFnZUlmTmVlZGVkKFRleHR1cmVNYXBwCiAgICAgICAgIHJl
dHVybjsKIAogICAgIHVwZGF0ZUNvbnRlbnRzKHRleHR1cmVNYXBwZXIsIG1faW1hZ2UuZ2V0KCks
IG1faW1hZ2UtPnNpemUoKSwgZW5jbG9zaW5nSW50UmVjdChtX2ltYWdlLT5yZWN0KCkpLCBCaXRt
YXBUZXh0dXJlOjpVcGRhdGVDYW5ub3RNb2RpZnlPcmlnaW5hbEltYWdlRGF0YSk7Ci0gICAgbV9p
bWFnZS5jbGVhcigpOworICAgIG1faW1hZ2UgPSBudWxscHRyOwogfQogCiBUcmFuc2Zvcm1hdGlv
bk1hdHJpeCBUZXh0dXJlTWFwcGVyVGlsZWRCYWNraW5nU3RvcmU6OmFkanVzdGVkVHJhbnNmb3Jt
Rm9yUmVjdChjb25zdCBGbG9hdFJlY3QmIHRhcmdldFJlY3QpCmRpZmYgLS1naXQgYS9Tb3VyY2Uv
V2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy90ZXhtYXAvY29vcmRpbmF0ZWQvQ29vcmRpbmF0ZWRH
cmFwaGljc0xheWVyLmNwcCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL3RleG1h
cC9jb29yZGluYXRlZC9Db29yZGluYXRlZEdyYXBoaWNzTGF5ZXIuY3BwCmluZGV4IGUyZTFmNGEu
LmE3MGU3YTAgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL3Rl
eG1hcC9jb29yZGluYXRlZC9Db29yZGluYXRlZEdyYXBoaWNzTGF5ZXIuY3BwCisrKyBiL1NvdXJj
ZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL3RleG1hcC9jb29yZGluYXRlZC9Db29yZGluYXRl
ZEdyYXBoaWNzTGF5ZXIuY3BwCkBAIC04MjAsNyArODIwLDcgQEAgdm9pZCBDb29yZGluYXRlZEdy
YXBoaWNzTGF5ZXI6OnJlbGVhc2VJbWFnZUJhY2tpbmdJZk5lZWRlZCgpCiAKICAgICBBU1NFUlQo
bV9jb29yZGluYXRvcik7CiAgICAgbV9jb29yZGluYXRlZEltYWdlQmFja2luZy0+cmVtb3ZlSG9z
dCh0aGlzKTsKLSAgICBtX2Nvb3JkaW5hdGVkSW1hZ2VCYWNraW5nLmNsZWFyKCk7CisgICAgbV9j
b29yZGluYXRlZEltYWdlQmFja2luZyA9IG51bGxwdHI7CiAgICAgbV9sYXllclN0YXRlLmltYWdl
SUQgPSBJbnZhbGlkQ29vcmRpbmF0ZWRJbWFnZUJhY2tpbmdJRDsKICAgICBtX2xheWVyU3RhdGUu
aW1hZ2VDaGFuZ2VkID0gdHJ1ZTsKIH0KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRm
b3JtL2dyYXBoaWNzL3RleG1hcC9jb29yZGluYXRlZC9Db29yZGluYXRlZEltYWdlQmFja2luZy5j
cHAgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy90ZXhtYXAvY29vcmRpbmF0ZWQv
Q29vcmRpbmF0ZWRJbWFnZUJhY2tpbmcuY3BwCmluZGV4IGQyMmIxNWUuLmUyNjE1MGYgMTAwNjQ0
Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL3RleG1hcC9jb29yZGluYXRl
ZC9Db29yZGluYXRlZEltYWdlQmFja2luZy5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZv
cm0vZ3JhcGhpY3MvdGV4bWFwL2Nvb3JkaW5hdGVkL0Nvb3JkaW5hdGVkSW1hZ2VCYWNraW5nLmNw
cApAQCAtMTQxLDcgKzE0MSw3IEBAIHZvaWQgQ29vcmRpbmF0ZWRJbWFnZUJhY2tpbmc6OnJlbGVh
c2VTdXJmYWNlSWZOZWVkZWQoKQogewogICAgIC8vIFdlIG11c3Qga2VlcCBtX3N1cmZhY2UgdW50
aWwgVUkgUHJvY2VzcyByZWFkcyBtX3N1cmZhY2UuCiAgICAgLy8gSWYgbV9zdXJmYWNlIGV4aXN0
cywgaXQgd2FzIGNyZWF0ZWQgaW4gdGhlIHByZXZpb3VzIHVwZGF0ZS4KLSAgICBtX3N1cmZhY2Uu
Y2xlYXIoKTsKKyAgICBtX3N1cmZhY2UgPSBudWxscHRyOwogfQogCiBzdGF0aWMgY29uc3QgZG91
YmxlIGNsZWFyQ29udGVudHNUaW1lckludGVydmFsID0gMzsKZGlmZiAtLWdpdCBhL1NvdXJjZS9X
ZWJDb3JlL3BsYXRmb3JtL2d0ay9HYW1lcGFkc0d0ay5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0
Zm9ybS9ndGsvR2FtZXBhZHNHdGsuY3BwCmluZGV4IDI2ZjliZTYuLjlmYjI5ZjIgMTAwNjQ0Ci0t
LSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2d0ay9HYW1lcGFkc0d0ay5jcHAKKysrIGIvU291
cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3RrL0dhbWVwYWRzR3RrLmNwcApAQCAtMTU1LDcgKzE1NSw3
IEBAIHZvaWQgR2FtZXBhZHNHdGs6OnVucmVnaXN0ZXJEZXZpY2UoU3RyaW5nIGRldmljZUZpbGUp
CiAgICAgc2l6ZV90IGluZGV4ID0gbV9zbG90cy5maW5kKGdhbWVwYWREZXZpY2UpOwogICAgIEFT
U0VSVChpbmRleCAhPSBub3RGb3VuZCk7CiAKLSAgICBtX3Nsb3RzW2luZGV4XS5jbGVhcigpOwor
ICAgIG1fc2xvdHNbaW5kZXhdID0gbnVsbHB0cjsKIH0KIAogdm9pZCBHYW1lcGFkc0d0azo6dXBk
YXRlR2FtZXBhZExpc3QoR2FtZXBhZExpc3QqIGludG8pCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2Vi
Q29yZS9wbGF0Zm9ybS9pb3MvUGxhdGZvcm1TcGVlY2hTeW50aGVzaXplcklPUy5tbSBiL1NvdXJj
ZS9XZWJDb3JlL3BsYXRmb3JtL2lvcy9QbGF0Zm9ybVNwZWVjaFN5bnRoZXNpemVySU9TLm1tCmlu
ZGV4IGFiMTRjNzAuLmRjMGNhYTggMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3Jt
L2lvcy9QbGF0Zm9ybVNwZWVjaFN5bnRoZXNpemVySU9TLm1tCisrKyBiL1NvdXJjZS9XZWJDb3Jl
L3BsYXRmb3JtL2lvcy9QbGF0Zm9ybVNwZWVjaFN5bnRoZXNpemVySU9TLm1tCkBAIC0xNzksNyAr
MTc5LDcgQEAgLSAodm9pZClzcGVlY2hTeW50aGVzaXplcjooQVZTcGVlY2hTeW50aGVzaXplciAq
KXN5bnRoZXNpemVyIGRpZEZpbmlzaFNwZWVjaFV0dGUKICAgICAKICAgICAvLyBDbGVhciB0aGUg
bV91dHRlcmFuY2UgdmFyaWFibGUgaW4gY2FzZSBmaW5pc2ggc3BlYWtpbmcga2lja3Mgb2ZmIGEg
bmV3IHNwZWFraW5nIGpvYiBpbW1lZGlhdGVseS4KICAgICBSZWZQdHI8V2ViQ29yZTo6UGxhdGZv
cm1TcGVlY2hTeW50aGVzaXNVdHRlcmFuY2U+IHBsYXRmb3JtVXR0ZXJhbmNlID0gbV91dHRlcmFu
Y2U7Ci0gICAgbV91dHRlcmFuY2UgPSAwOworICAgIG1fdXR0ZXJhbmNlID0gbnVsbHB0cjsKICAg
ICAKICAgICBtX3N5bnRoZXNpemVyT2JqZWN0LT5jbGllbnQoKS0+ZGlkRmluaXNoU3BlYWtpbmco
cGxhdGZvcm1VdHRlcmFuY2UpOwogfQpAQCAtMjEzLDcgKzIxMyw3IEBAIC0gKHZvaWQpc3BlZWNo
U3ludGhlc2l6ZXI6KEFWU3BlZWNoU3ludGhlc2l6ZXIgKilzeW50aGVzaXplciBkaWRDYW5jZWxT
cGVlY2hVdHRlCiAgICAgCiAgICAgLy8gQ2xlYXIgdGhlIG1fdXR0ZXJhbmNlIHZhcmlhYmxlIGlu
IGNhc2UgZmluaXNoIHNwZWFraW5nIGtpY2tzIG9mZiBhIG5ldyBzcGVha2luZyBqb2IgaW1tZWRp
YXRlbHkuCiAgICAgUmVmUHRyPFdlYkNvcmU6OlBsYXRmb3JtU3BlZWNoU3ludGhlc2lzVXR0ZXJh
bmNlPiBwbGF0Zm9ybVV0dGVyYW5jZSA9IG1fdXR0ZXJhbmNlOwotICAgIG1fdXR0ZXJhbmNlID0g
MDsKKyAgICBtX3V0dGVyYW5jZSA9IG51bGxwdHI7CiAgICAgCiAgICAgbV9zeW50aGVzaXplck9i
amVjdC0+Y2xpZW50KCktPmRpZEZpbmlzaFNwZWFraW5nKHBsYXRmb3JtVXR0ZXJhbmNlKTsKIH0K
ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL21vY2svUGxhdGZvcm1TcGVlY2hT
eW50aGVzaXplck1vY2suY3BwIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbW9jay9QbGF0Zm9y
bVNwZWVjaFN5bnRoZXNpemVyTW9jay5jcHAKaW5kZXggMzgzODM3Mi4uYzBiNGRmYSAxMDA2NDQK
LS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbW9jay9QbGF0Zm9ybVNwZWVjaFN5bnRoZXNp
emVyTW9jay5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbW9jay9QbGF0Zm9ybVNw
ZWVjaFN5bnRoZXNpemVyTW9jay5jcHAKQEAgLTQ1LDcgKzQ1LDcgQEAgdm9pZCBQbGF0Zm9ybVNw
ZWVjaFN5bnRoZXNpemVyTW9jazo6c3BlYWtpbmdGaW5pc2hlZCgpCiB7CiAgICAgQVNTRVJUKG1f
dXR0ZXJhbmNlLmdldCgpKTsKICAgICBSZWZQdHI8UGxhdGZvcm1TcGVlY2hTeW50aGVzaXNVdHRl
cmFuY2U+IHByb3RlY3QobV91dHRlcmFuY2UpOwotICAgIG1fdXR0ZXJhbmNlID0gMDsKKyAgICBt
X3V0dGVyYW5jZSA9IG51bGxwdHI7CiAgICAgCiAgICAgY2xpZW50KCktPmRpZEZpbmlzaFNwZWFr
aW5nKHByb3RlY3QpOwogfQpAQCAtNzgsNyArNzgsNyBAQCB2b2lkIFBsYXRmb3JtU3BlZWNoU3lu
dGhlc2l6ZXJNb2NrOjpjYW5jZWwoKQogICAgIAogICAgIG1fc3BlYWtpbmdGaW5pc2hlZFRpbWVy
LnN0b3AoKTsKICAgICBjbGllbnQoKS0+c3BlYWtpbmdFcnJvck9jY3VycmVkKG1fdXR0ZXJhbmNl
KTsKLSAgICBtX3V0dGVyYW5jZSA9IDA7CisgICAgbV91dHRlcmFuY2UgPSBudWxscHRyOwogfQog
CiB2b2lkIFBsYXRmb3JtU3BlZWNoU3ludGhlc2l6ZXJNb2NrOjpwYXVzZSgpCmRpZmYgLS1naXQg
YS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9uZXR3b3JrL2NmL1Jlc291cmNlUmVxdWVzdENGTmV0
LmNwcCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL25ldHdvcmsvY2YvUmVzb3VyY2VSZXF1ZXN0
Q0ZOZXQuY3BwCmluZGV4IGNkYzdkNzMuLmE0ZDQzZGYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJD
b3JlL3BsYXRmb3JtL25ldHdvcmsvY2YvUmVzb3VyY2VSZXF1ZXN0Q0ZOZXQuY3BwCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL3BsYXRmb3JtL25ldHdvcmsvY2YvUmVzb3VyY2VSZXF1ZXN0Q0ZOZXQuY3Bw
CkBAIC0yOTUsNyArMjk1LDcgQEAgdm9pZCBSZXNvdXJjZVJlcXVlc3Q6OmRvVXBkYXRlUmVzb3Vy
Y2VSZXF1ZXN0KCkKIHZvaWQgUmVzb3VyY2VSZXF1ZXN0Ojpkb1VwZGF0ZVJlc291cmNlSFRUUEJv
ZHkoKQogewogICAgIGlmICghbV9jZlJlcXVlc3QpIHsKLSAgICAgICAgbV9odHRwQm9keSA9IDA7
CisgICAgICAgIG1faHR0cEJvZHkgPSBudWxscHRyOwogICAgICAgICByZXR1cm47CiAgICAgfQog
CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvSW5saW5lRmxvd0JveC5jcHAg
Yi9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvSW5saW5lRmxvd0JveC5jcHAKaW5kZXggNDE2ODJj
OC4uMmQ2ZmI2OSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL0lubGluZUZs
b3dCb3guY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9JbmxpbmVGbG93Qm94LmNw
cApAQCAtOTU0LDcgKzk1NCw3IEBAIHZvaWQgSW5saW5lRmxvd0JveDo6Y29tcHV0ZU92ZXJmbG93
KExheW91dFVuaXQgbGluZVRvcCwgTGF5b3V0VW5pdCBsaW5lQm90dG9tLCBHCiAgICAgICAgIHJl
dHVybjsKIAogICAgIGlmIChtX292ZXJmbG93KQotICAgICAgICBtX292ZXJmbG93LmNsZWFyKCk7
CisgICAgICAgIG1fb3ZlcmZsb3cgPSBudWxscHRyOwogCiAgICAgLy8gVmlzdWFsIG92ZXJmbG93
IGp1c3QgaW5jbHVkZXMgb3ZlcmZsb3cgZm9yIHN0dWZmIHdlIG5lZWQgdG8gcmVwYWludCBvdXJz
ZWx2ZXMuICBTZWxmLXBhaW50aW5nIGxheWVycyBhcmUgaWdub3JlZC4KICAgICAvLyBMYXlvdXQg
b3ZlcmZsb3cgaXMgdXNlZCB0byBkZXRlcm1pbmUgc2Nyb2xsaW5nIGV4dGVudCwgc28gaXQgc3Rp
bGwgaW5jbHVkZXMgY2hpbGQgbGF5ZXJzIGFuZCBhbHNvIGZhY3RvcnMgaW4KZGlmZiAtLWdpdCBh
L1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJCb3guY3BwIGIvU291cmNlL1dlYkNvcmUv
cmVuZGVyaW5nL1JlbmRlckJveC5jcHAKaW5kZXggNTAyZGY2Ni4uNjE3MWRiNSAxMDA2NDQKLS0t
IGEvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlckJveC5jcHAKKysrIGIvU291cmNlL1dl
YkNvcmUvcmVuZGVyaW5nL1JlbmRlckJveC5jcHAKQEAgLTQ0OTcsNyArNDQ5Nyw3IEBAIHZvaWQg
UmVuZGVyQm94OjphZGRWaXN1YWxPdmVyZmxvdyhjb25zdCBMYXlvdXRSZWN0JiByZWN0KQogCiB2
b2lkIFJlbmRlckJveDo6Y2xlYXJPdmVyZmxvdygpCiB7Ci0gICAgbV9vdmVyZmxvdy5jbGVhcigp
OworICAgIG1fb3ZlcmZsb3cgPSBudWxscHRyOwogICAgIFJlbmRlckZsb3dUaHJlYWQqIGZsb3dU
aHJlYWQgPSBmbG93VGhyZWFkQ29udGFpbmluZ0Jsb2NrKCk7CiAgICAgaWYgKGZsb3dUaHJlYWQp
CiAgICAgICAgIGZsb3dUaHJlYWQtPmNsZWFyUmVnaW9uc092ZXJmbG93KHRoaXMpOwpkaWZmIC0t
Z2l0IGEvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlckJveFJlZ2lvbkluZm8uaCBiL1Nv
dXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJCb3hSZWdpb25JbmZvLmgKaW5kZXggNjIzNjA4
ZC4uZWEyM2MxZWMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJC
b3hSZWdpb25JbmZvLmgKKysrIGIvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlckJveFJl
Z2lvbkluZm8uaApAQCAtNTMsNyArNTMsNyBAQCBwdWJsaWM6CiAgICAgdm9pZCBjbGVhck92ZXJm
bG93KCkKICAgICB7CiAgICAgICAgIGlmIChtX292ZXJmbG93KQotICAgICAgICAgICAgbV9vdmVy
Zmxvdy5jbGVhcigpOworICAgICAgICAgICAgbV9vdmVyZmxvdyA9IG51bGxwdHI7CiAgICAgfQog
CiBwcml2YXRlOgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlckNv
dW50ZXIuY3BwIGIvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlckNvdW50ZXIuY3BwCmlu
ZGV4IDkxOGE0ZjguLmM3NDU2MzkgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmlu
Zy9SZW5kZXJDb3VudGVyLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVy
Q291bnRlci5jcHAKQEAgLTE4Niw4ICsxODYsOCBAQCBzdGF0aWMgYm9vbCBmaW5kUGxhY2VGb3JD
b3VudGVyKFJlbmRlckVsZW1lbnQmIGNvdW50ZXJPd25lciwgY29uc3QgQXRvbWljU3RyaW5nJgog
ICAgIC8vIHRvd2FyZHMgdGhlIGJlZ2luaW5nIG9mIHRoZSBkb2N1bWVudCBmb3IgY291bnRlcnMg
d2l0aCB0aGUgc2FtZSBpZGVudGlmaWVyIGFzIHRoZSBvbmUKICAgICAvLyB3ZSBhcmUgdHJ5aW5n
IHRvIGZpbmQgYSBwbGFjZSBmb3IuIFRoaXMgaXMgdGhlIG5leHQgcmVuZGVyZXIgdG8gYmUgY2hl
Y2tlZC4KICAgICBSZW5kZXJFbGVtZW50KiBjdXJyZW50UmVuZGVyZXIgPSBwcmV2aW91c0luUHJl
T3JkZXIoY291bnRlck93bmVyKTsKLSAgICBwcmV2aW91c1NpYmxpbmcgPSAwOwotICAgIFJlZlB0
cjxDb3VudGVyTm9kZT4gcHJldmlvdXNTaWJsaW5nUHJvdGVjdG9yID0gMDsKKyAgICBwcmV2aW91
c1NpYmxpbmcgPSBudWxscHRyOworICAgIFJlZlB0cjxDb3VudGVyTm9kZT4gcHJldmlvdXNTaWJs
aW5nUHJvdGVjdG9yOwogCiAgICAgd2hpbGUgKGN1cnJlbnRSZW5kZXJlcikgewogICAgICAgICBD
b3VudGVyTm9kZSogY3VycmVudENvdW50ZXIgPSBtYWtlQ291bnRlck5vZGUoKmN1cnJlbnRSZW5k
ZXJlciwgaWRlbnRpZmllciwgZmFsc2UpOwpAQCAtMjAzLDcgKzIwMyw3IEBAIHN0YXRpYyBib29s
IGZpbmRQbGFjZUZvckNvdW50ZXIoUmVuZGVyRWxlbWVudCYgY291bnRlck93bmVyLCBjb25zdCBB
dG9taWNTdHJpbmcmCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLy8gaGVuY2Ugd2UgYXJl
IHRoZSBuZXh0IHNpYmxpbmcgb2YgdGhhdCBjb3VudGVyIGlmIHRoYXQgcmVzZXQgaXMgbm90IGEg
cm9vdCBvcgogICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8vIHdlIGFyZSBhIHJvb3Qgbm9k
ZSBpZiB0aGF0IHJlc2V0IGlzIGEgcm9vdC4KICAgICAgICAgICAgICAgICAgICAgICAgICAgICBw
YXJlbnQgPSBjdXJyZW50Q291bnRlci0+cGFyZW50KCk7Ci0gICAgICAgICAgICAgICAgICAgICAg
ICAgICAgcHJldmlvdXNTaWJsaW5nID0gcGFyZW50ID8gY3VycmVudENvdW50ZXIgOiAwOworICAg
ICAgICAgICAgICAgICAgICAgICAgICAgIHByZXZpb3VzU2libGluZyA9IHBhcmVudCA/IGN1cnJl
bnRDb3VudGVyIDogbnVsbHB0cjsKICAgICAgICAgICAgICAgICAgICAgICAgICAgICByZXR1cm4g
cGFyZW50OwogICAgICAgICAgICAgICAgICAgICAgICAgfQogICAgICAgICAgICAgICAgICAgICAg
ICAgLy8gV2UgYXJlIG5vdCBhIHJlc2V0IG5vZGUgb3IgdGhlIHByZXZpb3VzIHJlc2V0IG11c3Qg
YmUgb24gYW4gYW5jZXN0b3Igb2Ygb3VyIG93bmVyIHJlbmRlcmVyCkBAIC0yMTMsNyArMjEzLDcg
QEAgc3RhdGljIGJvb2wgZmluZFBsYWNlRm9yQ291bnRlcihSZW5kZXJFbGVtZW50JiBjb3VudGVy
T3duZXIsIGNvbnN0IEF0b21pY1N0cmluZyYKICAgICAgICAgICAgICAgICAgICAgICAgIC8vIElu
IHRoZXNlIGNhc2VzIHRoZSBpZGVudGlmaWVkIHByZXZpb3VzU2libGluZyB3aWxsIGJlIGludmFs
aWQgYXMgaXRzIHBhcmVudCBpcyBkaWZmZXJlbnQgZnJvbQogICAgICAgICAgICAgICAgICAgICAg
ICAgLy8gb3VyIGlkZW50aWZpZWQgcGFyZW50LgogICAgICAgICAgICAgICAgICAgICAgICAgaWYg
KHByZXZpb3VzU2libGluZ1Byb3RlY3Rvci0+cGFyZW50KCkgIT0gY3VycmVudENvdW50ZXIpCi0g
ICAgICAgICAgICAgICAgICAgICAgICAgICAgcHJldmlvdXNTaWJsaW5nUHJvdGVjdG9yID0gMDsK
KyAgICAgICAgICAgICAgICAgICAgICAgICAgICBwcmV2aW91c1NpYmxpbmdQcm90ZWN0b3IgPSBu
dWxscHRyOwogCiAgICAgICAgICAgICAgICAgICAgICAgICBwcmV2aW91c1NpYmxpbmcgPSBwcmV2
aW91c1NpYmxpbmdQcm90ZWN0b3IuZ2V0KCk7CiAgICAgICAgICAgICAgICAgICAgICAgICByZXR1
cm4gdHJ1ZTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJNZW51
TGlzdC5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyTWVudUxpc3QuY3BwCmlu
ZGV4IGZmOWEyYzUuLmRiOTk0OTkgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmlu
Zy9SZW5kZXJNZW51TGlzdC5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRl
ck1lbnVMaXN0LmNwcApAQCAtODgsNyArODgsNyBAQCBSZW5kZXJNZW51TGlzdDo6flJlbmRlck1l
bnVMaXN0KCkKICNpZiAhUExBVEZPUk0oSU9TKQogICAgIGlmIChtX3BvcHVwKQogICAgICAgICBt
X3BvcHVwLT5kaXNjb25uZWN0Q2xpZW50KCk7Ci0gICAgbV9wb3B1cCA9IDA7CisgICAgbV9wb3B1
cCA9IG51bGxwdHI7CiAjZW5kaWYKIH0KIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcmVu
ZGVyaW5nL1JlbmRlclNlYXJjaEZpZWxkLmNwcCBiL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9S
ZW5kZXJTZWFyY2hGaWVsZC5jcHAKaW5kZXggZmE2ZTM5Ni4uODlkYzM0YyAxMDA2NDQKLS0tIGEv
U291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlclNlYXJjaEZpZWxkLmNwcAorKysgYi9Tb3Vy
Y2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyU2VhcmNoRmllbGQuY3BwCkBAIC02Miw3ICs2Miw3
IEBAIFJlbmRlclNlYXJjaEZpZWxkOjp+UmVuZGVyU2VhcmNoRmllbGQoKQogewogICAgIGlmICht
X3NlYXJjaFBvcHVwKSB7CiAgICAgICAgIG1fc2VhcmNoUG9wdXAtPnBvcHVwTWVudSgpLT5kaXNj
b25uZWN0Q2xpZW50KCk7Ci0gICAgICAgIG1fc2VhcmNoUG9wdXAgPSAwOworICAgICAgICBtX3Nl
YXJjaFBvcHVwID0gbnVsbHB0cjsKICAgICB9CiB9CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJD
b3JlL3JlbmRlcmluZy9zdHlsZS9GaWxsTGF5ZXIuaCBiL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmlu
Zy9zdHlsZS9GaWxsTGF5ZXIuaAppbmRleCA4YjA2Y2UzLi4wMzA5ODYzIDEwMDY0NAotLS0gYS9T
b3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvc3R5bGUvRmlsbExheWVyLmgKKysrIGIvU291cmNlL1dl
YkNvcmUvcmVuZGVyaW5nL3N0eWxlL0ZpbGxMYXllci5oCkBAIC0xMjEsOCArMTIxLDggQEAgcHVi
bGljOgogICAgIHZvaWQgc2V0U2l6ZShGaWxsU2l6ZSBmKSB7IG1fc2l6ZVR5cGUgPSBmLnR5cGU7
IG1fc2l6ZUxlbmd0aCA9IGYuc2l6ZTsgfQogICAgIHZvaWQgc2V0TWFza1NvdXJjZVR5cGUoRU1h
c2tTb3VyY2VUeXBlIG0pIHsgbV9tYXNrU291cmNlVHlwZSA9IG07IG1fbWFza1NvdXJjZVR5cGVT
ZXQgPSB0cnVlOyB9CiAKLSAgICB2b2lkIGNsZWFyTWFza0ltYWdlKCkgeyBtX21hc2tJbWFnZU9w
ZXJhdGlvbi5jbGVhcigpOyB9Ci0gICAgdm9pZCBjbGVhckltYWdlKCkgeyBtX2ltYWdlLmNsZWFy
KCk7IG1faW1hZ2VTZXQgPSBmYWxzZTsgfQorICAgIHZvaWQgY2xlYXJNYXNrSW1hZ2UoKSB7IG1f
bWFza0ltYWdlT3BlcmF0aW9uID0gbnVsbHB0cjsgfQorICAgIHZvaWQgY2xlYXJJbWFnZSgpIHsg
bV9pbWFnZSA9IG51bGxwdHI7IG1faW1hZ2VTZXQgPSBmYWxzZTsgfQogICAgIHZvaWQgY2xlYXJY
UG9zaXRpb24oKSB7IG1feFBvc1NldCA9IGZhbHNlOyBtX2JhY2tncm91bmRPcmlnaW5TZXQgPSBm
YWxzZTsgfQogICAgIHZvaWQgY2xlYXJZUG9zaXRpb24oKSB7IG1feVBvc1NldCA9IGZhbHNlOyBt
X2JhY2tncm91bmRPcmlnaW5TZXQgPSBmYWxzZTsgfQogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2Vi
Q29yZS9yZW5kZXJpbmcvc3R5bGUvUmVuZGVyU3R5bGUuY3BwIGIvU291cmNlL1dlYkNvcmUvcmVu
ZGVyaW5nL3N0eWxlL1JlbmRlclN0eWxlLmNwcAppbmRleCA4N2M1OGU5Li40N2ZlZTg5IDEwMDY0
NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvc3R5bGUvUmVuZGVyU3R5bGUuY3BwCisr
KyBiL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9zdHlsZS9SZW5kZXJTdHlsZS5jcHAKQEAgLTk1
MCw3ICs5NTAsNyBAQCB2b2lkIFJlbmRlclN0eWxlOjpzZXRRdW90ZXMoUGFzc1JlZlB0cjxRdW90
ZXNEYXRhPiBxKQogdm9pZCBSZW5kZXJTdHlsZTo6Y2xlYXJDdXJzb3JMaXN0KCkKIHsKICAgICBp
ZiAocmFyZUluaGVyaXRlZERhdGEtPmN1cnNvckRhdGEpCi0gICAgICAgIHJhcmVJbmhlcml0ZWRE
YXRhLmFjY2VzcygpLT5jdXJzb3JEYXRhID0gMDsKKyAgICAgICAgcmFyZUluaGVyaXRlZERhdGEu
YWNjZXNzKCktPmN1cnNvckRhdGEgPSBudWxscHRyOwogfQogCiB2b2lkIFJlbmRlclN0eWxlOjpj
bGVhckNvbnRlbnQoKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvc3ZnL1NWR1RSZWZFbGVt
ZW50LmNwcCBiL1NvdXJjZS9XZWJDb3JlL3N2Zy9TVkdUUmVmRWxlbWVudC5jcHAKaW5kZXggMjI1
YTMwNC4uZTNmYWQ4ZCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvc3ZnL1NWR1RSZWZFbGVt
ZW50LmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9zdmcvU1ZHVFJlZkVsZW1lbnQuY3BwCkBAIC0x
MDQsNyArMTA0LDcgQEAgdm9pZCBTVkdUUmVmVGFyZ2V0RXZlbnRMaXN0ZW5lcjo6ZGV0YWNoKCkK
IAogICAgIG1fdGFyZ2V0LT5yZW1vdmVFdmVudExpc3RlbmVyKGV2ZW50TmFtZXMoKS5ET01TdWJ0
cmVlTW9kaWZpZWRFdmVudCwgdGhpcywgZmFsc2UpOwogICAgIG1fdGFyZ2V0LT5yZW1vdmVFdmVu
dExpc3RlbmVyKGV2ZW50TmFtZXMoKS5ET01Ob2RlUmVtb3ZlZEZyb21Eb2N1bWVudEV2ZW50LCB0
aGlzLCBmYWxzZSk7Ci0gICAgbV90YXJnZXQuY2xlYXIoKTsKKyAgICBtX3RhcmdldCA9IG51bGxw
dHI7CiB9CiAKIGJvb2wgU1ZHVFJlZlRhcmdldEV2ZW50TGlzdGVuZXI6Om9wZXJhdG9yPT0oY29u
c3QgRXZlbnRMaXN0ZW5lciYgbGlzdGVuZXIpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS90
ZXN0aW5nL0ludGVybmFscy5jcHAgYi9Tb3VyY2UvV2ViQ29yZS90ZXN0aW5nL0ludGVybmFscy5j
cHAKaW5kZXggMWExMDUxNy4uNDc2ZDFlMiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvdGVz
dGluZy9JbnRlcm5hbHMuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3Rlc3RpbmcvSW50ZXJuYWxz
LmNwcApAQCAtMTcyMyw3ICsxNzIzLDcgQEAgdm9pZCBJbnRlcm5hbHM6OmNsb3NlRHVtbXlJbnNw
ZWN0b3JGcm9udGVuZCgpCiAgICAgbV9mcm9udGVuZENoYW5uZWwgPSBudWxscHRyOwogCiAgICAg
bV9mcm9udGVuZFdpbmRvdy0+Y2xvc2UobV9mcm9udGVuZFdpbmRvdy0+c2NyaXB0RXhlY3V0aW9u
Q29udGV4dCgpKTsKLSAgICBtX2Zyb250ZW5kV2luZG93LmNsZWFyKCk7CisgICAgbV9mcm9udGVu
ZFdpbmRvdyA9IG51bGxwdHI7CiB9CiAKIHZvaWQgSW50ZXJuYWxzOjpzZXRKYXZhU2NyaXB0UHJv
ZmlsaW5nRW5hYmxlZChib29sIGVuYWJsZWQsIEV4Y2VwdGlvbkNvZGUmIGVjKQpkaWZmIC0tZ2l0
IGEvU291cmNlL1dlYkNvcmUvd29ya2Vycy9Xb3JrZXJFdmVudFF1ZXVlLmNwcCBiL1NvdXJjZS9X
ZWJDb3JlL3dvcmtlcnMvV29ya2VyRXZlbnRRdWV1ZS5jcHAKaW5kZXggZjUyMGMxZC4uMDcyMTA3
NiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvd29ya2Vycy9Xb3JrZXJFdmVudFF1ZXVlLmNw
cAorKysgYi9Tb3VyY2UvV2ViQ29yZS93b3JrZXJzL1dvcmtlckV2ZW50UXVldWUuY3BwCkBAIC02
OCwxMyArNjgsMTMgQEAgcHVibGljOgogICAgICAgICAgICAgcmV0dXJuOwogICAgICAgICBtX2V2
ZW50UXVldWUubV9ldmVudERpc3BhdGNoZXJNYXAucmVtb3ZlKG1fZXZlbnQuZ2V0KCkpOwogICAg
ICAgICBtX2V2ZW50LT50YXJnZXQoKS0+ZGlzcGF0Y2hFdmVudChtX2V2ZW50KTsKLSAgICAgICAg
bV9ldmVudC5jbGVhcigpOworICAgICAgICBtX2V2ZW50ID0gbnVsbHB0cjsKICAgICB9CiAKICAg
ICB2b2lkIGNhbmNlbCgpCiAgICAgewogICAgICAgICBtX2lzQ2FuY2VsbGVkID0gdHJ1ZTsKLSAg
ICAgICAgbV9ldmVudC5jbGVhcigpOworICAgICAgICBtX2V2ZW50ID0gbnVsbHB0cjsKICAgICB9
CiAKIHByaXZhdGU6CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS93b3JrZXJzL1dvcmtlck1l
c3NhZ2luZ1Byb3h5LmNwcCBiL1NvdXJjZS9XZWJDb3JlL3dvcmtlcnMvV29ya2VyTWVzc2FnaW5n
UHJveHkuY3BwCmluZGV4IDc4NDViNjEuLmJkNzRlYWMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJD
b3JlL3dvcmtlcnMvV29ya2VyTWVzc2FnaW5nUHJveHkuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3Jl
L3dvcmtlcnMvV29ya2VyTWVzc2FnaW5nUHJveHkuY3BwCkBAIC0yNjQsNyArMjY0LDcgQEAgdm9p
ZCBXb3JrZXJNZXNzYWdpbmdQcm94eTo6d29ya2VyR2xvYmFsU2NvcGVEZXN0cm95ZWRJbnRlcm5h
bCgpCiAgICAgLy8gV29ya2VyR2xvYmFsU2NvcGVEZXN0cm95ZWRUYXNrIGlzIGFsd2F5cyB0aGUg
bGFzdCB0byBiZSBwZXJmb3JtZWQsIHNvIHRoZSBwcm94eSBpcyBub3QgbmVlZGVkIGZvciBjb21t
dW5pY2F0aW9uCiAgICAgLy8gaW4gZWl0aGVyIHNpZGUgYW55IG1vcmUuIEhvd2V2ZXIsIHRoZSBX
b3JrZXIgb2JqZWN0IG1heSBzdGlsbCBleGlzdCwgYW5kIGl0IGFzc3VtZXMgdGhhdCB0aGUgcHJv
eHkgZXhpc3RzLCB0b28uCiAgICAgbV9hc2tlZFRvVGVybWluYXRlID0gdHJ1ZTsKLSAgICBtX3dv
cmtlclRocmVhZCA9IDA7CisgICAgbV93b3JrZXJUaHJlYWQgPSBudWxscHRyOwogCiAgICAgSW5z
cGVjdG9ySW5zdHJ1bWVudGF0aW9uOjp3b3JrZXJHbG9iYWxTY29wZVRlcm1pbmF0ZWQobV9zY3Jp
cHRFeGVjdXRpb25Db250ZXh0LmdldCgpLCB0aGlzKTsKIApkaWZmIC0tZ2l0IGEvU291cmNlL1dl
YkNvcmUvd29ya2Vycy9Xb3JrZXJUaHJlYWQuY3BwIGIvU291cmNlL1dlYkNvcmUvd29ya2Vycy9X
b3JrZXJUaHJlYWQuY3BwCmluZGV4IDg3M2M4MjkuLmU1MTU1NTIgMTAwNjQ0Ci0tLSBhL1NvdXJj
ZS9XZWJDb3JlL3dvcmtlcnMvV29ya2VyVGhyZWFkLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS93
b3JrZXJzL1dvcmtlclRocmVhZC5jcHAKQEAgLTE3MSw3ICsxNzEsNyBAQCB2b2lkIFdvcmtlclRo
cmVhZDo6d29ya2VyVGhyZWFkKCkKIAogICAgIC8vIFRoZSBiZWxvdyBhc3NpZ25tZW50IHdpbGwg
ZGVzdHJveSB0aGUgY29udGV4dCwgd2hpY2ggd2lsbCBpbiB0dXJuIG5vdGlmeSBtZXNzYWdpbmcg
cHJveHkuCiAgICAgLy8gV2UgY2Fubm90IGxldCBhbnkgb2JqZWN0cyBzdXJ2aXZlIHBhc3QgdGhy
ZWFkIGV4aXQsIGJlY2F1c2Ugbm8gb3RoZXIgdGhyZWFkIHdpbGwgcnVuIEdDIG9yIG90aGVyd2lz
ZSBkZXN0cm95IHRoZW0uCi0gICAgbV93b3JrZXJHbG9iYWxTY29wZSA9IDA7CisgICAgbV93b3Jr
ZXJHbG9iYWxTY29wZSA9IG51bGxwdHI7CiAKICAgICAvLyBDbGVhbiB1cCBXZWJDb3JlOjpUaHJl
YWRHbG9iYWxEYXRhIGJlZm9yZSBXVEY6OldURlRocmVhZERhdGEgZ29lcyBhd2F5IQogICAgIHRo
cmVhZEdsb2JhbERhdGEoKS5kZXN0cm95KCk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS94
bWwvWE1MSHR0cFJlcXVlc3QuY3BwIGIvU291cmNlL1dlYkNvcmUveG1sL1hNTEh0dHBSZXF1ZXN0
LmNwcAppbmRleCBjN2U4YzBiLi40NzVkNmZiIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS94
bWwvWE1MSHR0cFJlcXVlc3QuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3htbC9YTUxIdHRwUmVx
dWVzdC5jcHAKQEAgLTI0NSw3ICsyNDUsNyBAQCBCbG9iKiBYTUxIdHRwUmVxdWVzdDo6cmVzcG9u
c2VCbG9iKCkKICAgICAgICAgICAgIGRhdGEuYXBwZW5kKG1fYmluYXJ5UmVzcG9uc2VCdWlsZGVy
LT5kYXRhKCksIG1fYmluYXJ5UmVzcG9uc2VCdWlsZGVyLT5zaXplKCkpOwogICAgICAgICAgICAg
U3RyaW5nIG5vcm1hbGl6ZWRDb250ZW50VHlwZSA9IEJsb2I6Om5vcm1hbGl6ZWRDb250ZW50VHlw
ZShyZXNwb25zZU1JTUVUeXBlKCkpOyAvLyByZXNwb25zZU1JTUVUeXBlIGRlZmF1bHRzIHRvIHRl
eHQveG1sIHdoaWNoIG1heSBiZSBpbmNvcnJlY3QuCiAgICAgICAgICAgICBtX3Jlc3BvbnNlQmxv
YiA9IEJsb2I6OmNyZWF0ZShXVEY6Om1vdmUoZGF0YSksIG5vcm1hbGl6ZWRDb250ZW50VHlwZSk7
Ci0gICAgICAgICAgICBtX2JpbmFyeVJlc3BvbnNlQnVpbGRlci5jbGVhcigpOworICAgICAgICAg
ICAgbV9iaW5hcnlSZXNwb25zZUJ1aWxkZXIgPSBudWxscHRyOwogICAgICAgICB9IGVsc2Ugewog
ICAgICAgICAgICAgLy8gSWYgd2UgZXJyb3JlZCBvdXQgb3IgZ290IG5vIGRhdGEsIHdlIHN0aWxs
IHJldHVybiBhIGJsb2IsIGp1c3QgYW4gZW1wdHkgb25lLgogICAgICAgICAgICAgbV9yZXNwb25z
ZUJsb2IgPSBCbG9iOjpjcmVhdGUoKTsKQEAgLTI2NSw3ICsyNjUsNyBAQCBBcnJheUJ1ZmZlciog
WE1MSHR0cFJlcXVlc3Q6OnJlc3BvbnNlQXJyYXlCdWZmZXIoKQogICAgICAgICAgICAgbV9yZXNw
b25zZUFycmF5QnVmZmVyID0gbV9iaW5hcnlSZXNwb25zZUJ1aWxkZXItPmNyZWF0ZUFycmF5QnVm
ZmVyKCk7CiAgICAgICAgIGVsc2UKICAgICAgICAgICAgIG1fcmVzcG9uc2VBcnJheUJ1ZmZlciA9
IEFycmF5QnVmZmVyOjpjcmVhdGUobnVsbHB0ciwgMCk7Ci0gICAgICAgIG1fYmluYXJ5UmVzcG9u
c2VCdWlsZGVyLmNsZWFyKCk7CisgICAgICAgIG1fYmluYXJ5UmVzcG9uc2VCdWlsZGVyID0gbnVs
bHB0cjsKICAgICB9CiAKICAgICByZXR1cm4gbV9yZXNwb25zZUFycmF5QnVmZmVyLmdldCgpOwpA
QCAtODY4LDggKzg2OCw4IEBAIHZvaWQgWE1MSHR0cFJlcXVlc3Q6OmNsZWFyUmVzcG9uc2VCdWZm
ZXJzKCkKICAgICBtX2NyZWF0ZWREb2N1bWVudCA9IGZhbHNlOwogICAgIG1fcmVzcG9uc2VEb2N1
bWVudCA9IG51bGxwdHI7CiAgICAgbV9yZXNwb25zZUJsb2IgPSBudWxscHRyOwotICAgIG1fYmlu
YXJ5UmVzcG9uc2VCdWlsZGVyLmNsZWFyKCk7Ci0gICAgbV9yZXNwb25zZUFycmF5QnVmZmVyLmNs
ZWFyKCk7CisgICAgbV9iaW5hcnlSZXNwb25zZUJ1aWxkZXIgPSBudWxscHRyOworICAgIG1fcmVz
cG9uc2VBcnJheUJ1ZmZlciA9IG51bGxwdHI7CiAgICAgbV9yZXNwb25zZUNhY2hlSXNWYWxpZCA9
IGZhbHNlOwogfQogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS94bWwvWFNMVFByb2Nlc3Nv
ci5jcHAgYi9Tb3VyY2UvV2ViQ29yZS94bWwvWFNMVFByb2Nlc3Nvci5jcHAKaW5kZXggMDY5Y2Nl
Yy4uNDkxZjEyYyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUveG1sL1hTTFRQcm9jZXNzb3Iu
Y3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3htbC9YU0xUUHJvY2Vzc29yLmNwcApAQCAtMTYyLDgg
KzE2Miw4IEBAIHZvaWQgWFNMVFByb2Nlc3Nvcjo6cmVtb3ZlUGFyYW1ldGVyKGNvbnN0IFN0cmlu
ZyYgLypuYW1lc3BhY2VVUkkqLywgY29uc3QgU3RyaW5nCiAKIHZvaWQgWFNMVFByb2Nlc3Nvcjo6
cmVzZXQoKQogewotICAgIG1fc3R5bGVzaGVldC5jbGVhcigpOwotICAgIG1fc3R5bGVzaGVldFJv
b3ROb2RlLmNsZWFyKCk7CisgICAgbV9zdHlsZXNoZWV0ID0gbnVsbHB0cjsKKyAgICBtX3N0eWxl
c2hlZXRSb290Tm9kZSA9IG51bGxwdHI7CiAgICAgbV9wYXJhbWV0ZXJzLmNsZWFyKCk7CiB9CiAK
ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvU3RvcmFnZS9TdG9yYWdlQXJlYVN5bmMuY3BwIGIv
U291cmNlL1dlYktpdC9TdG9yYWdlL1N0b3JhZ2VBcmVhU3luYy5jcHAKaW5kZXggZDFlYjMyYS4u
OWQ3ODQzYiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9TdG9yYWdlL1N0b3JhZ2VBcmVhU3lu
Yy5jcHAKKysrIGIvU291cmNlL1dlYktpdC9TdG9yYWdlL1N0b3JhZ2VBcmVhU3luYy5jcHAKQEAg
LTg4LDcgKzg4LDcgQEAgdm9pZCBTdG9yYWdlQXJlYVN5bmM6OnNjaGVkdWxlRmluYWxTeW5jKCkK
ICAgICBBU1NFUlQoaXNNYWluVGhyZWFkKCkpOwogICAgIC8vIEZJWE1FOiBXZSBkbyB0aGlzIHRv
IGF2b2lkIHJhY2VzLCBidXQgaXQnZCBiZSBiZXR0ZXIgdG8gbWFrZSB0aGluZ3Mgc2FmZSB3aXRo
b3V0IGJsb2NraW5nLgogICAgIGJsb2NrVW50aWxJbXBvcnRDb21wbGV0ZSgpOwotICAgIG1fc3Rv
cmFnZUFyZWEgPSAwOyAgLy8gVGhpcyBpcyBkb25lIGluIGJsb2NrVW50aWxJbXBvcnRDb21wbGV0
ZSgpIGJ1dCB0aGlzIGlzIGhlcmUgYXMgYSBmb3JtIG9mIGRvY3VtZW50YXRpb24gdGhhdCB3ZSBt
dXN0IGJlIGFic29sdXRlbHkgc3VyZSB0aGUgcmVmIGNvdW50IGN5Y2xlIGlzIGJyb2tlbi4KKyAg
ICBtX3N0b3JhZ2VBcmVhID0gbnVsbHB0cjsgIC8vIFRoaXMgaXMgZG9uZSBpbiBibG9ja1VudGls
SW1wb3J0Q29tcGxldGUoKSBidXQgdGhpcyBpcyBoZXJlIGFzIGEgZm9ybSBvZiBkb2N1bWVudGF0
aW9uIHRoYXQgd2UgbXVzdCBiZSBhYnNvbHV0ZWx5IHN1cmUgdGhlIHJlZiBjb3VudCBjeWNsZSBp
cyBicm9rZW4uCiAKICAgICBpZiAobV9zeW5jVGltZXIuaXNBY3RpdmUoKSkKICAgICAgICAgbV9z
eW5jVGltZXIuc3RvcCgpOwpAQCAtMzc1LDcgKzM3NSw3IEBAIHZvaWQgU3RvcmFnZUFyZWFTeW5j
OjpibG9ja1VudGlsSW1wb3J0Q29tcGxldGUoKQogICAgIE11dGV4TG9ja2VyIGxvY2tlcihtX2lt
cG9ydExvY2spOwogICAgIHdoaWxlICghbV9pbXBvcnRDb21wbGV0ZSkKICAgICAgICAgbV9pbXBv
cnRDb25kaXRpb24ud2FpdChtX2ltcG9ydExvY2spOwotICAgIG1fc3RvcmFnZUFyZWEgPSAwOwor
ICAgIG1fc3RvcmFnZUFyZWEgPSBudWxscHRyOwogfQogCiB2b2lkIFN0b3JhZ2VBcmVhU3luYzo6
c3luYyhib29sIGNsZWFySXRlbXMsIGNvbnN0IEhhc2hNYXA8U3RyaW5nLCBTdHJpbmc+JiBpdGVt
cykKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvbWFjL0NoYW5nZUxvZyBiL1NvdXJjZS9XZWJL
aXQvbWFjL0NoYW5nZUxvZwppbmRleCAwMGE0ZTdhLi42OTI3NGRlIDEwMDY0NAotLS0gYS9Tb3Vy
Y2UvV2ViS2l0L21hYy9DaGFuZ2VMb2cKKysrIGIvU291cmNlL1dlYktpdC9tYWMvQ2hhbmdlTG9n
CkBAIC0xLDMgKzEsMTMgQEAKKzIwMTUtMDctMDIgIENocmlzIER1bWV6ICA8Y2R1bWV6QGFwcGxl
LmNvbT4KKworICAgICAgICBEcm9wIFJlZlB0cjo6Y2xlYXIoKSBtZXRob2QKKyAgICAgICAgaHR0
cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTE0NjU1NgorCisgICAgICAgIFJl
dmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgICogV2ViQ29yZVN1cHBvcnQvV2Vi
RWRpdG9yQ2xpZW50Lm1tOgorICAgICAgICAoV2ViRWRpdG9yQ2xpZW50OjpkaWRDaGVja1N1Y2Nl
ZWQpOgorCiAyMDE1LTA3LTAyICBUaW1vdGh5IEhvcnRvbiAgPHRpbW90aHlfaG9ydG9uQGFwcGxl
LmNvbT4KIAogICAgICAgICBGaXggdGhlIGJ1aWxkLgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktp
dC9tYWMvUGx1Z2lucy9Ib3N0ZWQvV2ViSG9zdGVkTmV0c2NhcGVQbHVnaW5WaWV3Lm1tIGIvU291
cmNlL1dlYktpdC9tYWMvUGx1Z2lucy9Ib3N0ZWQvV2ViSG9zdGVkTmV0c2NhcGVQbHVnaW5WaWV3
Lm1tCmluZGV4IDc2MDA1ODM2Li5hYzQzNGVjIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L21h
Yy9QbHVnaW5zL0hvc3RlZC9XZWJIb3N0ZWROZXRzY2FwZVBsdWdpblZpZXcubW0KKysrIGIvU291
cmNlL1dlYktpdC9tYWMvUGx1Z2lucy9Ib3N0ZWQvV2ViSG9zdGVkTmV0c2NhcGVQbHVnaW5WaWV3
Lm1tCkBAIC0yODEsNyArMjgxLDcgQEAgLSAodm9pZClkZXN0cm95UGx1Z2luCiAgICAgICAgIH0K
ICAgICAgICAgCiAgICAgICAgIF9wcm94eS0+ZGVzdHJveSgpOwotICAgICAgICBfcHJveHkgPSAw
OworICAgICAgICBfcHJveHkgPSBudWxscHRyOwogICAgIH0KICAgICAKICAgICBfcGx1Z2luTGF5
ZXIgPSAwOwpAQCAtNDMyLDcgKzQzMiw3IEBAIC0gKHZvaWQpcGx1Z2luSG9zdERpZWQKICAgICAg
ICAgZG93bmNhc3Q8UmVuZGVyRW1iZWRkZWRPYmplY3Q+KCpfZWxlbWVudC0+cmVuZGVyZXIoKSku
c2V0UGx1Z2luVW5hdmFpbGFiaWxpdHlSZWFzb24oUmVuZGVyRW1iZWRkZWRPYmplY3Q6OlBsdWdp
bkNyYXNoZWQpOwogCiAgICAgX3BsdWdpbkxheWVyID0gbmlsOwotICAgIF9wcm94eSA9IDA7Cisg
ICAgX3Byb3h5ID0gbnVsbHB0cjsKICAgICAKICAgICAvLyBObyBuZWVkIGZvciB1cyB0byBiZSBs
YXllciBiYWNrZWQgYW55bW9yZQogICAgIHNlbGYud2FudHNMYXllciA9IE5POwpkaWZmIC0tZ2l0
IGEvU291cmNlL1dlYktpdC9tYWMvV2ViQ29yZVN1cHBvcnQvV2ViRWRpdG9yQ2xpZW50Lm1tIGIv
U291cmNlL1dlYktpdC9tYWMvV2ViQ29yZVN1cHBvcnQvV2ViRWRpdG9yQ2xpZW50Lm1tCmluZGV4
IDZjZWQxOTQuLmMxODhiOWQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvbWFjL1dlYkNvcmVT
dXBwb3J0L1dlYkVkaXRvckNsaWVudC5tbQorKysgYi9Tb3VyY2UvV2ViS2l0L21hYy9XZWJDb3Jl
U3VwcG9ydC9XZWJFZGl0b3JDbGllbnQubW0KQEAgLTExNDMsNyArMTE0Myw3IEBAIHZvaWQgV2Vi
RWRpdG9yQ2xpZW50OjpkaWRDaGVja1N1Y2NlZWQoaW50IHNlcXVlbmNlLCBOU0FycmF5KiByZXN1
bHRzKQogewogICAgIEFTU0VSVF9VTlVTRUQoc2VxdWVuY2UsIHNlcXVlbmNlID09IG1fdGV4dENo
ZWNraW5nUmVxdWVzdC0+ZGF0YSgpLnNlcXVlbmNlKCkpOwogICAgIG1fdGV4dENoZWNraW5nUmVx
dWVzdC0+ZGlkU3VjY2VlZChjb3JlKHJlc3VsdHMsIG1fdGV4dENoZWNraW5nUmVxdWVzdC0+ZGF0
YSgpLm1hc2soKSkpOwotICAgIG1fdGV4dENoZWNraW5nUmVxdWVzdC5jbGVhcigpOworICAgIG1f
dGV4dENoZWNraW5nUmVxdWVzdCA9IG51bGxwdHI7CiB9CiAjZW5kaWYKIApkaWZmIC0tZ2l0IGEv
U291cmNlL1dlYktpdC9tYWMvV2ViQ29yZVN1cHBvcnQvV2ViVXNlck1lZGlhQ2xpZW50Lm1tIGIv
U291cmNlL1dlYktpdC9tYWMvV2ViQ29yZVN1cHBvcnQvV2ViVXNlck1lZGlhQ2xpZW50Lm1tCmlu
ZGV4IDYyMmJkOWQuLjE3ZjE2NDcgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvbWFjL1dlYkNv
cmVTdXBwb3J0L1dlYlVzZXJNZWRpYUNsaWVudC5tbQorKysgYi9Tb3VyY2UvV2ViS2l0L21hYy9X
ZWJDb3JlU3VwcG9ydC9XZWJVc2VyTWVkaWFDbGllbnQubW0KQEAgLTE0Miw3ICsxNDIsNyBAQCAt
ICh2b2lkKWNhbmNlbFJlcXVlc3QKICAgICBpZiAoIV9yZXF1ZXN0KQogICAgICAgICByZXR1cm47
CiAKLSAgICBfcmVxdWVzdCA9IDA7CisgICAgX3JlcXVlc3QgPSBudWxscHRyOwogI2VuZGlmCiAg
ICAgCiB9CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L3dpbi9DaGFuZ2VMb2cgYi9Tb3VyY2Uv
V2ViS2l0L3dpbi9DaGFuZ2VMb2cKaW5kZXggMTE0Mjg1OC4uMDdjYTE3YSAxMDA2NDQKLS0tIGEv
U291cmNlL1dlYktpdC93aW4vQ2hhbmdlTG9nCisrKyBiL1NvdXJjZS9XZWJLaXQvd2luL0NoYW5n
ZUxvZwpAQCAtMSwzICsxLDE0IEBACisyMDE1LTA3LTAyICBDaHJpcyBEdW1leiAgPGNkdW1lekBh
cHBsZS5jb20+CisKKyAgICAgICAgRHJvcCBSZWZQdHI6OmNsZWFyKCkgbWV0aG9kCisgICAgICAg
IGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0xNDY1NTYKKworICAgICAg
ICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICAqIFdlYlZpZXcuY3BwOgor
ICAgICAgICAoV2ViVmlldzo6ZGVsZXRlQmFja2luZ1N0b3JlKToKKyAgICAgICAgKFdlYlZpZXc6
OnVwZGF0ZUJhY2tpbmdTdG9yZSk6CisKIDIwMTUtMDYtMzAgIFNpbW9uIEZyYXNlciAgPHNpbW9u
LmZyYXNlckBhcHBsZS5jb20+CiAKICAgICAgICAgRml4IE1hYyBhbmQgV2luZG93cyBidWlsZHMu
CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L3dpbi9XZWJWaWV3LmNwcCBiL1NvdXJjZS9XZWJL
aXQvd2luL1dlYlZpZXcuY3BwCmluZGV4IDQzNzUyNzEuLmI3OWU2M2MgMTAwNjQ0Ci0tLSBhL1Nv
dXJjZS9XZWJLaXQvd2luL1dlYlZpZXcuY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQvd2luL1dlYlZp
ZXcuY3BwCkBAIC04NTEsOCArODUxLDggQEAgdm9pZCBXZWJWaWV3OjpkZWxldGVCYWNraW5nU3Rv
cmUoKQogICAgICAgICBLaWxsVGltZXIobV92aWV3V2luZG93LCBEZWxldGVCYWNraW5nU3RvcmVU
aW1lcik7CiAgICAgICAgIG1fZGVsZXRlQmFja2luZ1N0b3JlVGltZXJBY3RpdmUgPSBmYWxzZTsK
ICAgICB9Ci0gICAgbV9iYWNraW5nU3RvcmVCaXRtYXAuY2xlYXIoKTsKLSAgICBtX2JhY2tpbmdT
dG9yZURpcnR5UmVnaW9uLmNsZWFyKCk7CisgICAgbV9iYWNraW5nU3RvcmVCaXRtYXAgPSBudWxs
cHRyOworICAgIG1fYmFja2luZ1N0b3JlRGlydHlSZWdpb24gPSBudWxscHRyOwogICAgIG1fYmFj
a2luZ1N0b3JlU2l6ZS5jeCA9IG1fYmFja2luZ1N0b3JlU2l6ZS5jeSA9IDA7CiB9CiAKQEAgLTEw
NzksNyArMTA3OSw3IEBAIHZvaWQgV2ViVmlldzo6dXBkYXRlQmFja2luZ1N0b3JlKEZyYW1lVmll
dyogZnJhbWVWaWV3LCBIREMgZGMsIGJvb2wgYmFja2luZ1N0b3JlCiAgICAgICAgIGlmIChtX3Vp
RGVsZWdhdGVQcml2YXRlKQogICAgICAgICAgICAgbV91aURlbGVnYXRlUHJpdmF0ZS0+d2ViVmll
d1BhaW50ZWQodGhpcyk7CiAKLSAgICAgICAgbV9iYWNraW5nU3RvcmVEaXJ0eVJlZ2lvbi5jbGVh
cigpOworICAgICAgICBtX2JhY2tpbmdTdG9yZURpcnR5UmVnaW9uID0gbnVsbHB0cjsKICAgICB9
CiAKICAgICBpZiAoIWRjKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdDIvQ2hhbmdlTG9nIGIv
U291cmNlL1dlYktpdDIvQ2hhbmdlTG9nCmluZGV4IGNjZjdiOGUuLmQxY2Q2ZWEgMTAwNjQ0Ci0t
LSBhL1NvdXJjZS9XZWJLaXQyL0NoYW5nZUxvZworKysgYi9Tb3VyY2UvV2ViS2l0Mi9DaGFuZ2VM
b2cKQEAgLTEsMyArMSwyMyBAQAorMjAxNS0wNy0wMiAgQ2hyaXMgRHVtZXogIDxjZHVtZXpAYXBw
bGUuY29tPgorCisgICAgICAgIERyb3AgUmVmUHRyOjpjbGVhcigpIG1ldGhvZAorICAgICAgICBo
dHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTQ2NTU2CisKKyAgICAgICAg
UmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgKiBEYXRhYmFzZVByb2Nlc3Mv
SW5kZXhlZERCL1VuaXF1ZUlEQkRhdGFiYXNlLmNwcDoKKyAgICAgICAgKFdlYktpdDo6VW5pcXVl
SURCRGF0YWJhc2U6OnNodXRkb3duQmFja2luZ1N0b3JlKToKKyAgICAgICAgKiBTaGFyZWQvQ29v
cmRpbmF0ZWRHcmFwaGljcy9Db29yZGluYXRlZEJhY2tpbmdTdG9yZS5jcHA6CisgICAgICAgIChX
ZWJLaXQ6OkNvb3JkaW5hdGVkQmFja2luZ1N0b3JlVGlsZTo6c3dhcEJ1ZmZlcnMpOgorICAgICAg
ICAqIFVJUHJvY2Vzcy9BUEkvZWZsL0V3a1ZpZXcuY3BwOgorICAgICAgICAoRXdrVmlldzo6aGlk
ZUNvbnRleHRNZW51KToKKyAgICAgICAgKiBVSVByb2Nlc3MvSW5zcGVjdG9yU2VydmVyL1dlYlNv
Y2tldFNlcnZlckNvbm5lY3Rpb24uY3BwOgorICAgICAgICAoV2ViS2l0OjpXZWJTb2NrZXRTZXJ2
ZXJDb25uZWN0aW9uOjpkaWRDbG9zZVNvY2tldFN0cmVhbSk6CisgICAgICAgICogVUlQcm9jZXNz
L05ldHdvcmsvQ3VzdG9tUHJvdG9jb2xzL21hYy9DdXN0b21Qcm90b2NvbE1hbmFnZXJQcm94eU1h
Yy5tbToKKyAgICAgICAgKC1bV0tDdXN0b21Qcm90b2NvbExvYWRlciBkZWFsbG9jXSk6CisgICAg
ICAgICogVUlQcm9jZXNzL2lvcy9XS0dlb2xvY2F0aW9uUHJvdmlkZXJJT1MubW06CisgICAgICAg
ICgtW1dLR2VvbG9jYXRpb25Qcm92aWRlcklPUyBfc3RvcFVwZGF0aW5nXSk6CisKIDIwMTUtMDct
MDMgIENhcmxvcyBHYXJjaWEgQ2FtcG9zICA8Y2dhcmNpYUBpZ2FsaWEuY29tPgogCiAgICAgICAg
IFJFR1JFU1NJT04ocjE4NjAyNSk6IFtTT1VQXSBOZXR3b3JrQ2FjaGUgZ2V0cyBibG9ja2VkIGlu
IHRyYXZlcnNlIHNpbmNlIHIxODYwMjUKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL0RhdGFi
YXNlUHJvY2Vzcy9JbmRleGVkREIvVW5pcXVlSURCRGF0YWJhc2UuY3BwIGIvU291cmNlL1dlYktp
dDIvRGF0YWJhc2VQcm9jZXNzL0luZGV4ZWREQi9VbmlxdWVJREJEYXRhYmFzZS5jcHAKaW5kZXgg
NjE5ODA1Yy4uM2QyY2E1YiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdDIvRGF0YWJhc2VQcm9j
ZXNzL0luZGV4ZWREQi9VbmlxdWVJREJEYXRhYmFzZS5jcHAKKysrIGIvU291cmNlL1dlYktpdDIv
RGF0YWJhc2VQcm9jZXNzL0luZGV4ZWREQi9VbmlxdWVJREJEYXRhYmFzZS5jcHAKQEAgLTE0Nyw3
ICsxNDcsNyBAQCB2b2lkIFVuaXF1ZUlEQkRhdGFiYXNlOjpzaHV0ZG93bkJhY2tpbmdTdG9yZShV
bmlxdWVJREJEYXRhYmFzZVNodXRkb3duVHlwZSB0eXBlLAogewogICAgIEFTU0VSVCghUnVuTG9v
cDo6aXNNYWluKCkpOwogCi0gICAgbV9iYWNraW5nU3RvcmUuY2xlYXIoKTsKKyAgICBtX2JhY2tp
bmdTdG9yZSA9IG51bGxwdHI7CiAKICAgICBpZiAodHlwZSA9PSBVbmlxdWVJREJEYXRhYmFzZVNo
dXRkb3duVHlwZTo6RGVsZXRlU2h1dGRvd24pIHsKICAgICAgICAgU3RyaW5nIGRiRmlsZW5hbWUg
PSBVbmlxdWVJREJEYXRhYmFzZTo6Y2FsY3VsYXRlQWJzb2x1dGVEYXRhYmFzZUZpbGVuYW1lKGRh
dGFiYXNlRGlyZWN0b3J5KTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL1BsdWdpblByb2Nl
c3MvUGx1Z2luQ29udHJvbGxlclByb3h5LmNwcCBiL1NvdXJjZS9XZWJLaXQyL1BsdWdpblByb2Nl
c3MvUGx1Z2luQ29udHJvbGxlclByb3h5LmNwcAppbmRleCA4OGQ2ZDE3Li40YTlmNDY3IDEwMDY0
NAotLS0gYS9Tb3VyY2UvV2ViS2l0Mi9QbHVnaW5Qcm9jZXNzL1BsdWdpbkNvbnRyb2xsZXJQcm94
eS5jcHAKKysrIGIvU291cmNlL1dlYktpdDIvUGx1Z2luUHJvY2Vzcy9QbHVnaW5Db250cm9sbGVy
UHJveHkuY3BwCkBAIC0xMjYsNyArMTI2LDcgQEAgYm9vbCBQbHVnaW5Db250cm9sbGVyUHJveHk6
OmluaXRpYWxpemUoY29uc3QgUGx1Z2luQ3JlYXRpb25QYXJhbWV0ZXJzJiBjcmVhdGlvblAKICAg
ICAgICAgLy8gdXNlZCBhcyBhbiBpZGVudGlmaWVyIHNvIGl0J3MgT0sgdG8ganVzdCBnZXQgYSB3
ZWFrIHJlZmVyZW5jZS4KICAgICAgICAgUGx1Z2luKiBwbHVnaW4gPSBtX3BsdWdpbi5nZXQoKTsK
ICAgICAgICAgCi0gICAgICAgIG1fcGx1Z2luID0gMDsKKyAgICAgICAgbV9wbHVnaW4gPSBudWxs
cHRyOwogCiAgICAgICAgIC8vIFRoaXMgd2lsbCBkZWxldGUgdGhlIHBsdWctaW4gY29udHJvbGxl
ciBwcm94eSBvYmplY3QuCiAgICAgICAgIG1fY29ubmVjdGlvbi0+cmVtb3ZlUGx1Z2luQ29udHJv
bGxlclByb3h5KHRoaXMsIHBsdWdpbik7CkBAIC0xNTYsNyArMTU2LDcgQEAgdm9pZCBQbHVnaW5D
b250cm9sbGVyUHJveHk6OmRlc3Ryb3koKQogICAgIFBsdWdpbiogcGx1Z2luID0gbV9wbHVnaW4u
Z2V0KCk7CiAKICAgICBtX3BsdWdpbi0+ZGVzdHJveVBsdWdpbigpOwotICAgIG1fcGx1Z2luID0g
MDsKKyAgICBtX3BsdWdpbiA9IG51bGxwdHI7CiAKICAgICBwbGF0Zm9ybURlc3Ryb3koKTsKIApk
aWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdDIvU2hhcmVkL0NoaWxkUHJvY2Vzc1Byb3h5LmNwcCBi
L1NvdXJjZS9XZWJLaXQyL1NoYXJlZC9DaGlsZFByb2Nlc3NQcm94eS5jcHAKaW5kZXggMzkzMDk4
OS4uZDllMDdlZiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdDIvU2hhcmVkL0NoaWxkUHJvY2Vz
c1Byb3h5LmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0Mi9TaGFyZWQvQ2hpbGRQcm9jZXNzUHJveHku
Y3BwCkBAIC00Miw3ICs0Miw3IEBAIENoaWxkUHJvY2Vzc1Byb3h5Ojp+Q2hpbGRQcm9jZXNzUHJv
eHkoKQogCiAgICAgaWYgKG1fcHJvY2Vzc0xhdW5jaGVyKSB7CiAgICAgICAgIG1fcHJvY2Vzc0xh
dW5jaGVyLT5pbnZhbGlkYXRlKCk7Ci0gICAgICAgIG1fcHJvY2Vzc0xhdW5jaGVyID0gMDsKKyAg
ICAgICAgbV9wcm9jZXNzTGF1bmNoZXIgPSBudWxscHRyOwogICAgIH0KIH0KIApkaWZmIC0tZ2l0
IGEvU291cmNlL1dlYktpdDIvU2hhcmVkL0Nvb3JkaW5hdGVkR3JhcGhpY3MvQ29vcmRpbmF0ZWRC
YWNraW5nU3RvcmUuY3BwIGIvU291cmNlL1dlYktpdDIvU2hhcmVkL0Nvb3JkaW5hdGVkR3JhcGhp
Y3MvQ29vcmRpbmF0ZWRCYWNraW5nU3RvcmUuY3BwCmluZGV4IGI5YTA1ZjkuLmM2NmQyOGIgMTAw
NjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQyL1NoYXJlZC9Db29yZGluYXRlZEdyYXBoaWNzL0Nvb3Jk
aW5hdGVkQmFja2luZ1N0b3JlLmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0Mi9TaGFyZWQvQ29vcmRp
bmF0ZWRHcmFwaGljcy9Db29yZGluYXRlZEJhY2tpbmdTdG9yZS5jcHAKQEAgLTU1LDcgKzU1LDcg
QEAgdm9pZCBDb29yZGluYXRlZEJhY2tpbmdTdG9yZVRpbGU6OnN3YXBCdWZmZXJzKFRleHR1cmVN
YXBwZXIqIHRleHR1cmVNYXBwZXIpCiAgICAgICAgIHRleHR1cmUtPnJlc2V0KG1fdGlsZVJlY3Qu
c2l6ZSgpLCBtX3N1cmZhY2UtPnN1cHBvcnRzQWxwaGEoKSk7CiAKICAgICBtX3N1cmZhY2UtPmNv
cHlUb1RleHR1cmUodGV4dHVyZSwgbV9zb3VyY2VSZWN0LCBtX3N1cmZhY2VPZmZzZXQpOwotICAg
IG1fc3VyZmFjZS5jbGVhcigpOworICAgIG1fc3VyZmFjZSA9IG51bGxwdHI7CiB9CiAKIHZvaWQg
Q29vcmRpbmF0ZWRCYWNraW5nU3RvcmVUaWxlOjpzZXRCYWNrQnVmZmVyKGNvbnN0IEludFJlY3Qm
IHRpbGVSZWN0LCBjb25zdCBJbnRSZWN0JiBzb3VyY2VSZWN0LCBQYXNzUmVmUHRyPENvb3JkaW5h
dGVkU3VyZmFjZT4gYnVmZmVyLCBjb25zdCBJbnRQb2ludCYgb2Zmc2V0KQpkaWZmIC0tZ2l0IGEv
U291cmNlL1dlYktpdDIvVUlQcm9jZXNzL0FQSS9lZmwvRXdrVmlldy5jcHAgYi9Tb3VyY2UvV2Vi
S2l0Mi9VSVByb2Nlc3MvQVBJL2VmbC9Fd2tWaWV3LmNwcAppbmRleCA3N2I1MDFhLi40NTg4NDY0
IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvQVBJL2VmbC9Fd2tWaWV3LmNw
cAorKysgYi9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvQVBJL2VmbC9Fd2tWaWV3LmNwcApAQCAt
OTQwLDcgKzk0MCw3IEBAIHZvaWQgRXdrVmlldzo6aGlkZUNvbnRleHRNZW51KCkKICAgICBpZiAo
c2QtPmFwaS0+Y29udGV4dF9tZW51X2hpZGUpCiAgICAgICAgIHNkLT5hcGktPmNvbnRleHRfbWVu
dV9oaWRlKHNkKTsKIAotICAgIG1fY29udGV4dE1lbnUuY2xlYXIoKTsKKyAgICBtX2NvbnRleHRN
ZW51ID0gbnVsbHB0cjsKIH0KIAogdm9pZCBFd2tWaWV3OjpyZXF1ZXN0UG9wdXBNZW51KFdLUG9w
dXBNZW51TGlzdGVuZXJSZWYgcG9wdXBNZW51TGlzdGVuZXIsIGNvbnN0IFdLUmVjdCYgcmVjdCwg
V0tQb3B1cEl0ZW1UZXh0RGlyZWN0aW9uIHRleHREaXJlY3Rpb24sIGRvdWJsZSBwYWdlU2NhbGVG
YWN0b3IsIFdLQXJyYXlSZWYgaXRlbXMsIGludDMyX3Qgc2VsZWN0ZWRJbmRleCkKZGlmZiAtLWdp
dCBhL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9BUEkvbWFjL1dLVmlldy5tbSBiL1NvdXJjZS9X
ZWJLaXQyL1VJUHJvY2Vzcy9BUEkvbWFjL1dLVmlldy5tbQppbmRleCBkNTUxNWFlLi5lOGQyNDQ5
IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvQVBJL21hYy9XS1ZpZXcubW0K
KysrIGIvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL0FQSS9tYWMvV0tWaWV3Lm1tCkBAIC0zNTIw
LDcgKzM1MjAsNyBAQCAtICh2b2lkKV9zZXRQcm9taXNlZERhdGFGb3JBdHRhY2htZW50OihOU1N0
cmluZyAqKWZpbGVuYW1lIHdpdGhFeHRlbnNpb246KE5TU3RyaQogCiAtICh2b2lkKXBhc3RlYm9h
cmRDaGFuZ2VkT3duZXI6KE5TUGFzdGVib2FyZCAqKXBhc3RlYm9hcmQKIHsKLSAgICBfZGF0YS0+
X3Byb21pc2VkSW1hZ2UgPSAwOworICAgIF9kYXRhLT5fcHJvbWlzZWRJbWFnZSA9IG51bGxwdHI7
CiAgICAgX2RhdGEtPl9wcm9taXNlZEZpbGVuYW1lID0gIiI7CiAgICAgX2RhdGEtPl9wcm9taXNl
ZFVSTCA9ICIiOwogfQpAQCAtMzUzMSw3ICszNTMxLDcgQEAgLSAodm9pZClwYXN0ZWJvYXJkOihO
U1Bhc3RlYm9hcmQgKilwYXN0ZWJvYXJkIHByb3ZpZGVEYXRhRm9yVHlwZTooTlNTdHJpbmcgKil0
eXAKIAogICAgIGlmIChbdHlwZSBpc0VxdWFsOk5TVElGRlBib2FyZFR5cGVdICYmIF9kYXRhLT5f
cHJvbWlzZWRJbWFnZSkgewogICAgICAgICBbcGFzdGVib2FyZCBzZXREYXRhOihOU0RhdGEgKilf
ZGF0YS0+X3Byb21pc2VkSW1hZ2UtPmdldFRJRkZSZXByZXNlbnRhdGlvbigpIGZvclR5cGU6TlNU
SUZGUGJvYXJkVHlwZV07Ci0gICAgICAgIF9kYXRhLT5fcHJvbWlzZWRJbWFnZSA9IDA7CisgICAg
ICAgIF9kYXRhLT5fcHJvbWlzZWRJbWFnZSA9IG51bGxwdHI7CiAgICAgfQogfQogCmRpZmYgLS1n
aXQgYS9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvSW5zcGVjdG9yU2VydmVyL1dlYlNvY2tldFNl
cnZlckNvbm5lY3Rpb24uY3BwIGIvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL0luc3BlY3RvclNl
cnZlci9XZWJTb2NrZXRTZXJ2ZXJDb25uZWN0aW9uLmNwcAppbmRleCA4MDk3YWMxLi45NGEyNGM5
IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvSW5zcGVjdG9yU2VydmVyL1dl
YlNvY2tldFNlcnZlckNvbm5lY3Rpb24uY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vz
cy9JbnNwZWN0b3JTZXJ2ZXIvV2ViU29ja2V0U2VydmVyQ29ubmVjdGlvbi5jcHAKQEAgLTEyNiw3
ICsxMjYsNyBAQCB2b2lkIFdlYlNvY2tldFNlcnZlckNvbm5lY3Rpb246OnNlbmRSYXdEYXRhKGNv
bnN0IGNoYXIqIGRhdGEsIHNpemVfdCBsZW5ndGgpCiB2b2lkIFdlYlNvY2tldFNlcnZlckNvbm5l
Y3Rpb246OmRpZENsb3NlU29ja2V0U3RyZWFtKFNvY2tldFN0cmVhbUhhbmRsZSopCiB7CiAgICAg
Ly8gRGVzdHJveSB0aGUgU29ja2V0U3RyZWFtSGFuZGxlIG5vdyB0byBwcmV2ZW50IGNsb3Npbmcg
YW4gYWxyZWFkeSBjbG9zZWQgc29ja2V0IGxhdGVyLgotICAgIG1fc29ja2V0LmNsZWFyKCk7Cisg
ICAgbV9zb2NrZXQgPSBudWxscHRyOwogCiAgICAgLy8gV2ViIFNvY2tldCBNb2RlLgogICAgIGlm
IChtX21vZGUgPT0gV2ViU29ja2V0KQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdDIvVUlQcm9j
ZXNzL05ldHdvcmsvQ3VzdG9tUHJvdG9jb2xzL21hYy9DdXN0b21Qcm90b2NvbE1hbmFnZXJQcm94
eU1hYy5tbSBiL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9OZXR3b3JrL0N1c3RvbVByb3RvY29s
cy9tYWMvQ3VzdG9tUHJvdG9jb2xNYW5hZ2VyUHJveHlNYWMubW0KaW5kZXggOTQyNTI5OS4uNTEz
YjFlMCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL05ldHdvcmsvQ3VzdG9t
UHJvdG9jb2xzL21hYy9DdXN0b21Qcm90b2NvbE1hbmFnZXJQcm94eU1hYy5tbQorKysgYi9Tb3Vy
Y2UvV2ViS2l0Mi9VSVByb2Nlc3MvTmV0d29yay9DdXN0b21Qcm90b2NvbHMvbWFjL0N1c3RvbVBy
b3RvY29sTWFuYWdlclByb3h5TWFjLm1tCkBAIC03Niw3ICs3Niw3IEBAIC0gKGlkKWluaXRXaXRo
Q3VzdG9tUHJvdG9jb2xNYW5hZ2VyUHJveHk6KEN1c3RvbVByb3RvY29sTWFuYWdlclByb3h5Kilj
dXN0b21Qcm90CiAKIC0gKHZvaWQpZGVhbGxvYwogewotICAgIF9jb25uZWN0aW9uLmNsZWFyKCk7
CisgICAgX2Nvbm5lY3Rpb24gPSBudWxscHRyOwogICAgIFtfdXJsQ29ubmVjdGlvbiBjYW5jZWxd
OwogICAgIFtfdXJsQ29ubmVjdGlvbiByZWxlYXNlXTsKICAgICBbc3VwZXIgZGVhbGxvY107CmRp
ZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvU3RhdGlzdGljc1JlcXVlc3QuY3Bw
IGIvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL1N0YXRpc3RpY3NSZXF1ZXN0LmNwcAppbmRleCBj
MGVjNDhlLi44MDZlMTBmIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvU3Rh
dGlzdGljc1JlcXVlc3QuY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9TdGF0aXN0
aWNzUmVxdWVzdC5jcHAKQEAgLTk1LDcgKzk1LDcgQEAgdm9pZCBTdGF0aXN0aWNzUmVxdWVzdDo6
Y29tcGxldGVkUmVxdWVzdCh1aW50NjRfdCByZXF1ZXN0SUQsIGNvbnN0IFN0YXRpc3RpY3NEYXQK
IAogICAgIGlmIChtX291dHN0YW5kaW5nUmVxdWVzdHMuaXNFbXB0eSgpKSB7CiAgICAgICAgIG1f
Y2FsbGJhY2stPnBlcmZvcm1DYWxsYmFja1dpdGhSZXR1cm5WYWx1ZShtX3Jlc3BvbnNlRGljdGlv
bmFyeS5nZXQoKSk7Ci0gICAgICAgIG1fY2FsbGJhY2sgPSAwOworICAgICAgICBtX2NhbGxiYWNr
ID0gbnVsbHB0cjsKICAgICB9CiB9CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL1VJUHJv
Y2Vzcy9XZWJGcmFtZUxpc3RlbmVyUHJveHkuY3BwIGIvU291cmNlL1dlYktpdDIvVUlQcm9jZXNz
L1dlYkZyYW1lTGlzdGVuZXJQcm94eS5jcHAKaW5kZXggZTgwMTBlNS4uNDA2MWRkNSAxMDA2NDQK
LS0tIGEvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL1dlYkZyYW1lTGlzdGVuZXJQcm94eS5jcHAK
KysrIGIvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL1dlYkZyYW1lTGlzdGVuZXJQcm94eS5jcHAK
QEAgLTQyLDcgKzQyLDcgQEAgV2ViRnJhbWVMaXN0ZW5lclByb3h5Ojp+V2ViRnJhbWVMaXN0ZW5l
clByb3h5KCkKIAogdm9pZCBXZWJGcmFtZUxpc3RlbmVyUHJveHk6OmludmFsaWRhdGUoKQogewot
ICAgIG1fZnJhbWUgPSAwOworICAgIG1fZnJhbWUgPSBudWxscHRyOwogfQogCiB2b2lkIFdlYkZy
YW1lTGlzdGVuZXJQcm94eTo6cmVjZWl2ZWRQb2xpY3lEZWNpc2lvbihXZWJDb3JlOjpQb2xpY3lB
Y3Rpb24gYWN0aW9uKQpAQCAtNTEsNyArNTEsNyBAQCB2b2lkIFdlYkZyYW1lTGlzdGVuZXJQcm94
eTo6cmVjZWl2ZWRQb2xpY3lEZWNpc2lvbihXZWJDb3JlOjpQb2xpY3lBY3Rpb24gYWN0aW9uKQog
ICAgICAgICByZXR1cm47CiAKICAgICBtX2ZyYW1lLT5yZWNlaXZlZFBvbGljeURlY2lzaW9uKGFj
dGlvbiwgbV9saXN0ZW5lcklELCBtX25hdmlnYXRpb24uZ2V0KCkpOwotICAgIG1fZnJhbWUgPSAw
OworICAgIG1fZnJhbWUgPSBudWxscHRyOwogfQogCiB9IC8vIG5hbWVzcGFjZSBXZWJLaXQKZGlm
ZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9XZWJGcmFtZVByb3h5LmNwcCBiL1Nv
dXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9XZWJGcmFtZVByb3h5LmNwcAppbmRleCA0MWJiOTFhLi42
OTI4YWZiIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvV2ViRnJhbWVQcm94
eS5jcHAKKysrIGIvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL1dlYkZyYW1lUHJveHkuY3BwCkBA
IC01NywxMSArNTcsMTEgQEAgV2ViRnJhbWVQcm94eTo6fldlYkZyYW1lUHJveHkoKQogCiB2b2lk
IFdlYkZyYW1lUHJveHk6OndlYlByb2Nlc3NXaWxsU2h1dERvd24oKQogewotICAgIG1fcGFnZSA9
IDA7CisgICAgbV9wYWdlID0gbnVsbHB0cjsKIAogICAgIGlmIChtX2FjdGl2ZUxpc3RlbmVyKSB7
CiAgICAgICAgIG1fYWN0aXZlTGlzdGVuZXItPmludmFsaWRhdGUoKTsKLSAgICAgICAgbV9hY3Rp
dmVMaXN0ZW5lciA9IDA7CisgICAgICAgIG1fYWN0aXZlTGlzdGVuZXIgPSBudWxscHRyOwogICAg
IH0KIH0KIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL1dlYk9wZW5QYW5l
bFJlc3VsdExpc3RlbmVyUHJveHkuY3BwIGIvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL1dlYk9w
ZW5QYW5lbFJlc3VsdExpc3RlbmVyUHJveHkuY3BwCmluZGV4IGRkNjY2NzEuLmEzNzdlNGEgMTAw
NjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9XZWJPcGVuUGFuZWxSZXN1bHRMaXN0
ZW5lclByb3h5LmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvV2ViT3BlblBhbmVs
UmVzdWx0TGlzdGVuZXJQcm94eS5jcHAKQEAgLTg5LDcgKzg5LDcgQEAgdm9pZCBXZWJPcGVuUGFu
ZWxSZXN1bHRMaXN0ZW5lclByb3h5OjpjYW5jZWwoKQogCiB2b2lkIFdlYk9wZW5QYW5lbFJlc3Vs
dExpc3RlbmVyUHJveHk6OmludmFsaWRhdGUoKQogewotICAgIG1fcGFnZSA9IDA7CisgICAgbV9w
YWdlID0gbnVsbHB0cjsKIH0KIAogfSAvLyBuYW1lc3BhY2UgV2ViS2l0CmRpZmYgLS1naXQgYS9T
b3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvV2ViUGFnZVByb3h5LmNwcCBiL1NvdXJjZS9XZWJLaXQy
L1VJUHJvY2Vzcy9XZWJQYWdlUHJveHkuY3BwCmluZGV4IGJkMTNhMzMuLjc5ZDIzZTAgMTAwNjQ0
Ci0tLSBhL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9XZWJQYWdlUHJveHkuY3BwCisrKyBiL1Nv
dXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9XZWJQYWdlUHJveHkuY3BwCkBAIC0zNzA2LDcgKzM3MDYs
NyBAQCB2b2lkIFdlYlBhZ2VQcm94eTo6cnVuT3BlblBhbmVsKHVpbnQ2NF90IGZyYW1lSUQsIGNv
bnN0IEZpbGVDaG9vc2VyU2V0dGluZ3MmIHNldAogewogICAgIGlmIChtX29wZW5QYW5lbFJlc3Vs
dExpc3RlbmVyKSB7CiAgICAgICAgIG1fb3BlblBhbmVsUmVzdWx0TGlzdGVuZXItPmludmFsaWRh
dGUoKTsKLSAgICAgICAgbV9vcGVuUGFuZWxSZXN1bHRMaXN0ZW5lciA9IDA7CisgICAgICAgIG1f
b3BlblBhbmVsUmVzdWx0TGlzdGVuZXIgPSBudWxscHRyOwogICAgIH0KIAogICAgIFdlYkZyYW1l
UHJveHkqIGZyYW1lID0gbV9wcm9jZXNzLT53ZWJGcmFtZShmcmFtZUlEKTsKQEAgLTM4MDgsNyAr
MzgwOCw3IEBAIHZvaWQgV2ViUGFnZVByb3h5OjpzaG93Q29sb3JQaWNrZXIoY29uc3QgV2ViQ29y
ZTo6Q29sb3ImIGluaXRpYWxDb2xvciwgY29uc3QgSW50CiAjaWYgRU5BQkxFKElOUFVUX1RZUEVf
Q09MT1JfUE9QT1ZFUikKICAgICAvLyBBIG5ldyBwb3BvdmVyIGNvbG9yIHdlbGwgbmVlZHMgdG8g
YmUgY3JlYXRlZCAoYW5kIHRoZSBwcmV2aW91cyBvbmUgZGVzdHJveWVkKSBmb3IKICAgICAvLyBl
YWNoIGFjdGl2YXRpb24gb2YgYSBjb2xvciBlbGVtZW50LgotICAgIG1fY29sb3JQaWNrZXIgPSAw
OworICAgIG1fY29sb3JQaWNrZXIgPSBudWxscHRyOwogI2VuZGlmCiAgICAgaWYgKCFtX2NvbG9y
UGlja2VyKQogICAgICAgICBtX2NvbG9yUGlja2VyID0gbV9wYWdlQ2xpZW50LmNyZWF0ZUNvbG9y
UGlja2VyKHRoaXMsIGluaXRpYWxDb2xvciwgZWxlbWVudFJlY3QpOwpAQCAtNDMwMCw3ICs0MzAw
LDcgQEAgdm9pZCBXZWJQYWdlUHJveHk6OmRpZENob29zZUZpbGVzRm9yT3BlblBhbmVsKGNvbnN0
IFZlY3RvcjxTdHJpbmc+JiBmaWxlVVJMcykKICAgICBtX3Byb2Nlc3MtPnNlbmQoTWVzc2FnZXM6
OldlYlBhZ2U6OkRpZENob29zZUZpbGVzRm9yT3BlblBhbmVsKGZpbGVVUkxzKSwgbV9wYWdlSUQp
OwogCiAgICAgbV9vcGVuUGFuZWxSZXN1bHRMaXN0ZW5lci0+aW52YWxpZGF0ZSgpOwotICAgIG1f
b3BlblBhbmVsUmVzdWx0TGlzdGVuZXIgPSAwOworICAgIG1fb3BlblBhbmVsUmVzdWx0TGlzdGVu
ZXIgPSBudWxscHRyOwogfQogCiB2b2lkIFdlYlBhZ2VQcm94eTo6ZGlkQ2FuY2VsRm9yT3BlblBh
bmVsKCkKQEAgLTQzMTEsNyArNDMxMSw3IEBAIHZvaWQgV2ViUGFnZVByb3h5OjpkaWRDYW5jZWxG
b3JPcGVuUGFuZWwoKQogICAgIG1fcHJvY2Vzcy0+c2VuZChNZXNzYWdlczo6V2ViUGFnZTo6RGlk
Q2FuY2VsRm9yT3BlblBhbmVsKCksIG1fcGFnZUlEKTsKICAgICAKICAgICBtX29wZW5QYW5lbFJl
c3VsdExpc3RlbmVyLT5pbnZhbGlkYXRlKCk7Ci0gICAgbV9vcGVuUGFuZWxSZXN1bHRMaXN0ZW5l
ciA9IDA7CisgICAgbV9vcGVuUGFuZWxSZXN1bHRMaXN0ZW5lciA9IG51bGxwdHI7CiB9CiAKIHZv
aWQgV2ViUGFnZVByb3h5OjphZHZhbmNlVG9OZXh0TWlzc3BlbGxpbmcoYm9vbCBzdGFydEJlZm9y
ZVNlbGVjdGlvbikKQEAgLTQ3NjcsNyArNDc2Nyw3IEBAIHZvaWQgV2ViUGFnZVByb3h5Ojpwcmlu
dEZpbmlzaGVkQ2FsbGJhY2soY29uc3QgUmVzb3VyY2VFcnJvciYgcHJpbnRFcnJvciwgdWludDY0
CiB2b2lkIFdlYlBhZ2VQcm94eTo6Zm9jdXNlZEZyYW1lQ2hhbmdlZCh1aW50NjRfdCBmcmFtZUlE
KQogewogICAgIGlmICghZnJhbWVJRCkgewotICAgICAgICBtX2ZvY3VzZWRGcmFtZSA9IDA7Cisg
ICAgICAgIG1fZm9jdXNlZEZyYW1lID0gbnVsbHB0cjsKICAgICAgICAgcmV0dXJuOwogICAgIH0K
IApAQCAtNDc4MCw3ICs0NzgwLDcgQEAgdm9pZCBXZWJQYWdlUHJveHk6OmZvY3VzZWRGcmFtZUNo
YW5nZWQodWludDY0X3QgZnJhbWVJRCkKIHZvaWQgV2ViUGFnZVByb3h5OjpmcmFtZVNldExhcmdl
c3RGcmFtZUNoYW5nZWQodWludDY0X3QgZnJhbWVJRCkKIHsKICAgICBpZiAoIWZyYW1lSUQpIHsK
LSAgICAgICAgbV9mcmFtZVNldExhcmdlc3RGcmFtZSA9IDA7CisgICAgICAgIG1fZnJhbWVTZXRM
YXJnZXN0RnJhbWUgPSBudWxscHRyOwogICAgICAgICByZXR1cm47CiAgICAgfQogCmRpZmYgLS1n
aXQgYS9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvaW9zL1dLR2VvbG9jYXRpb25Qcm92aWRlcklP
Uy5tbSBiL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9pb3MvV0tHZW9sb2NhdGlvblByb3ZpZGVy
SU9TLm1tCmluZGV4IGJiNmJiNjAuLmJkZDExNGEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQy
L1VJUHJvY2Vzcy9pb3MvV0tHZW9sb2NhdGlvblByb3ZpZGVySU9TLm1tCisrKyBiL1NvdXJjZS9X
ZWJLaXQyL1VJUHJvY2Vzcy9pb3MvV0tHZW9sb2NhdGlvblByb3ZpZGVySU9TLm1tCkBAIC0xMTgs
NyArMTE4LDcgQEAgLSh2b2lkKV9zdG9wVXBkYXRpbmcKIHsKICAgICBfaXNXZWJDb3JlR2VvbG9j
YXRpb25BY3RpdmUgPSBOTzsKICAgICBbX2NvcmVMb2NhdGlvblByb3ZpZGVyIHN0b3BdOwotICAg
IF9sYXN0QWN0aXZlUG9zaXRpb24uY2xlYXIoKTsKKyAgICBfbGFzdEFjdGl2ZVBvc2l0aW9uID0g
bnVsbHB0cjsKIH0KIAogLSh2b2lkKV9zZXRFbmFibGVIaWdoQWNjdXJhY3k6KEJPT0wpZW5hYmxl
SGlnaEFjY3VyYWN5CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL0luamVj
dGVkQnVuZGxlL21hYy9JbmplY3RlZEJ1bmRsZU1hYy5tbSBiL1NvdXJjZS9XZWJLaXQyL1dlYlBy
b2Nlc3MvSW5qZWN0ZWRCdW5kbGUvbWFjL0luamVjdGVkQnVuZGxlTWFjLm1tCmluZGV4IDRlODZh
ZjEuLjI4NTc1ZWYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvSW5qZWN0
ZWRCdW5kbGUvbWFjL0luamVjdGVkQnVuZGxlTWFjLm1tCisrKyBiL1NvdXJjZS9XZWJLaXQyL1dl
YlByb2Nlc3MvSW5qZWN0ZWRCdW5kbGUvbWFjL0luamVjdGVkQnVuZGxlTWFjLm1tCkBAIC01NSw3
ICs1NSw3IEBAIGJvb2wgSW5qZWN0ZWRCdW5kbGU6OmluaXRpYWxpemUoY29uc3QgV2ViUHJvY2Vz
c0NyZWF0aW9uUGFyYW1ldGVycyYgcGFyYW1ldGVycywKICAgICAgICAgICAgIHJldHVybiBmYWxz
ZTsKICAgICAgICAgfQogCi0gICAgICAgIG1fc2FuZGJveEV4dGVuc2lvbiA9IDA7CisgICAgICAg
IG1fc2FuZGJveEV4dGVuc2lvbiA9IG51bGxwdHI7CiAgICAgfQogICAgIAogICAgIFJldGFpblB0
cjxDRlN0cmluZ1JlZj4gaW5qZWN0ZWRCdW5kbGVQYXRoU3RyID0gbV9wYXRoLmNyZWF0ZUNGU3Ry
aW5nKCk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL05ldHdvcmsvV2Vi
UmVzb3VyY2VMb2FkZXIuY3BwIGIvU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9OZXR3b3JrL1dl
YlJlc291cmNlTG9hZGVyLmNwcAppbmRleCA4M2Q2Y2E4Li4yNTM5N2MzIDEwMDY0NAotLS0gYS9T
b3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL05ldHdvcmsvV2ViUmVzb3VyY2VMb2FkZXIuY3BwCisr
KyBiL1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvTmV0d29yay9XZWJSZXNvdXJjZUxvYWRlci5j
cHAKQEAgLTc2LDcgKzc2LDcgQEAgdm9pZCBXZWJSZXNvdXJjZUxvYWRlcjo6Y2FuY2VsUmVzb3Vy
Y2VMb2FkZXIoKQogCiB2b2lkIFdlYlJlc291cmNlTG9hZGVyOjpkZXRhY2hGcm9tQ29yZUxvYWRl
cigpCiB7Ci0gICAgbV9jb3JlTG9hZGVyID0gMDsKKyAgICBtX2NvcmVMb2FkZXIgPSBudWxscHRy
OwogfQogCiB2b2lkIFdlYlJlc291cmNlTG9hZGVyOjp3aWxsU2VuZFJlcXVlc3QoY29uc3QgUmVz
b3VyY2VSZXF1ZXN0JiBwcm9wb3NlZFJlcXVlc3QsIGNvbnN0IFJlc291cmNlUmVzcG9uc2UmIHJl
ZGlyZWN0UmVzcG9uc2UpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL1Bs
dWdpbnMvTmV0c2NhcGUvTmV0c2NhcGVQbHVnaW4uY3BwIGIvU291cmNlL1dlYktpdDIvV2ViUHJv
Y2Vzcy9QbHVnaW5zL05ldHNjYXBlL05ldHNjYXBlUGx1Z2luLmNwcAppbmRleCAwYTdiNzRkLi5h
MzZlNGI0IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL1BsdWdpbnMvTmV0
c2NhcGUvTmV0c2NhcGVQbHVnaW4uY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3Mv
UGx1Z2lucy9OZXRzY2FwZS9OZXRzY2FwZVBsdWdpbi5jcHAKQEAgLTI3Nyw3ICsyNzcsNyBAQCB2
b2lkIE5ldHNjYXBlUGx1Z2luOjpjYW5jZWxTdHJlYW1Mb2FkKE5ldHNjYXBlUGx1Z2luU3RyZWFt
KiBwbHVnaW5TdHJlYW0pCiB2b2lkIE5ldHNjYXBlUGx1Z2luOjpyZW1vdmVQbHVnaW5TdHJlYW0o
TmV0c2NhcGVQbHVnaW5TdHJlYW0qIHBsdWdpblN0cmVhbSkKIHsKICAgICBpZiAocGx1Z2luU3Ry
ZWFtID09IG1fbWFudWFsU3RyZWFtKSB7Ci0gICAgICAgIG1fbWFudWFsU3RyZWFtID0gMDsKKyAg
ICAgICAgbV9tYW51YWxTdHJlYW0gPSBudWxscHRyOwogICAgICAgICByZXR1cm47CiAgICAgfQog
CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL1BsdWdpbnMvUERGL1BERlBs
dWdpbi5tbSBiL1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvUGx1Z2lucy9QREYvUERGUGx1Z2lu
Lm1tCmluZGV4IGRjY2M1NDEuLjQ3MDYxZDYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQyL1dl
YlByb2Nlc3MvUGx1Z2lucy9QREYvUERGUGx1Z2luLm1tCisrKyBiL1NvdXJjZS9XZWJLaXQyL1dl
YlByb2Nlc3MvUGx1Z2lucy9QREYvUERGUGx1Z2luLm1tCkBAIC0xMTAzLDggKzExMDMsOCBAQCB2
b2lkIFBERlBsdWdpbjo6ZGVzdHJveSgpCiAgICAgICAgICAgICBmcmFtZVZpZXctPnJlbW92ZVNj
cm9sbGFibGVBcmVhKHRoaXMpOwogICAgIH0KIAotICAgIG1fYWN0aXZlQW5ub3RhdGlvbiA9IDA7
Ci0gICAgbV9hbm5vdGF0aW9uQ29udGFpbmVyID0gMDsKKyAgICBtX2FjdGl2ZUFubm90YXRpb24g
PSBudWxscHRyOworICAgIG1fYW5ub3RhdGlvbkNvbnRhaW5lciA9IG51bGxwdHI7CiAKICAgICBk
ZXN0cm95U2Nyb2xsYmFyKEhvcml6b250YWxTY3JvbGxiYXIpOwogICAgIGRlc3Ryb3lTY3JvbGxi
YXIoVmVydGljYWxTY3JvbGxiYXIpOwpAQCAtMTYwNCwxNCArMTYwNCwxNCBAQCB2b2lkIFBERlBs
dWdpbjo6c2V0QWN0aXZlQW5ub3RhdGlvbihQREZBbm5vdGF0aW9uICphbm5vdGF0aW9uKQogCiAg
ICAgaWYgKGFubm90YXRpb24pIHsKICAgICAgICAgaWYgKFthbm5vdGF0aW9uIGlzS2luZE9mQ2xh
c3M6cGRmQW5ub3RhdGlvblRleHRXaWRnZXRDbGFzcygpXSAmJiBzdGF0aWNfY2FzdDxQREZBbm5v
dGF0aW9uVGV4dFdpZGdldCAqPihhbm5vdGF0aW9uKS5pc1JlYWRPbmx5KSB7Ci0gICAgICAgICAg
ICBtX2FjdGl2ZUFubm90YXRpb24gPSAwOworICAgICAgICAgICAgbV9hY3RpdmVBbm5vdGF0aW9u
ID0gbnVsbHB0cjsKICAgICAgICAgICAgIHJldHVybjsKICAgICAgICAgfQogCiAgICAgICAgIG1f
YWN0aXZlQW5ub3RhdGlvbiA9IFBERlBsdWdpbkFubm90YXRpb246OmNyZWF0ZShhbm5vdGF0aW9u
LCBtX3BkZkxheWVyQ29udHJvbGxlci5nZXQoKSwgdGhpcyk7CiAgICAgICAgIG1fYWN0aXZlQW5u
b3RhdGlvbi0+YXR0YWNoKG1fYW5ub3RhdGlvbkNvbnRhaW5lci5nZXQoKSk7CiAgICAgfSBlbHNl
Ci0gICAgICAgIG1fYWN0aXZlQW5ub3RhdGlvbiA9IDA7CisgICAgICAgIG1fYWN0aXZlQW5ub3Rh
dGlvbiA9IG51bGxwdHI7CiB9CiAKIGJvb2wgUERGUGx1Z2luOjpzdXBwb3J0c0Zvcm1zKCkKZGlm
ZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvUGx1Z2lucy9QbHVnaW5WaWV3LmNw
cCBiL1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvUGx1Z2lucy9QbHVnaW5WaWV3LmNwcAppbmRl
eCA2YTgzM2YxLi4yYTBmZDk3IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNz
L1BsdWdpbnMvUGx1Z2luVmlldy5jcHAKKysrIGIvU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9Q
bHVnaW5zL1BsdWdpblZpZXcuY3BwCkBAIC0xNjYsNyArMTY2LDcgQEAgdm9pZCBQbHVnaW5WaWV3
OjpTdHJlYW06OmNhbmNlbCgpCiAKICAgICBtX3N0cmVhbVdhc0NhbmNlbGxlZCA9IHRydWU7CiAg
ICAgbV9sb2FkZXItPmNhbmNlbChtX2xvYWRlci0+Y2FuY2VsbGVkRXJyb3IoKSk7Ci0gICAgbV9s
b2FkZXIgPSAwOworICAgIG1fbG9hZGVyID0gbnVsbHB0cjsKIH0KIAogc3RhdGljIFN0cmluZyBi
dWlsZEhUVFBIZWFkZXJzKGNvbnN0IFJlc291cmNlUmVzcG9uc2UmIHJlc3BvbnNlLCBsb25nIGxv
bmcmIGV4cGVjdGVkQ29udGVudExlbmd0aCkKQEAgLTYwNCw3ICs2MDQsNyBAQCB2b2lkIFBsdWdp
blZpZXc6OmluaXRpYWxpemVQbHVnaW4oKQogCiB2b2lkIFBsdWdpblZpZXc6OmRpZEZhaWxUb0lu
aXRpYWxpemVQbHVnaW4oKQogewotICAgIG1fcGx1Z2luID0gMDsKKyAgICBtX3BsdWdpbiA9IG51
bGxwdHI7CiAKICNpZiBFTkFCTEUoTkVUU0NBUEVfUExVR0lOX0FQSSkKICAgICBTdHJpbmcgZnJh
bWVVUkxTdHJpbmcgPSBmcmFtZSgpLT5sb2FkZXIoKS5kb2N1bWVudExvYWRlcigpLT5yZXNwb25z
ZVVSTCgpLnN0cmluZygpOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9X
ZWJQYWdlL1dlYlBhZ2UuY3BwIGIvU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9XZWJQYWdlL1dl
YlBhZ2UuY3BwCmluZGV4IDE1NTRkYmMuLjdiOGE5MjYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJL
aXQyL1dlYlByb2Nlc3MvV2ViUGFnZS9XZWJQYWdlLmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0Mi9X
ZWJQcm9jZXNzL1dlYlBhZ2UvV2ViUGFnZS5jcHAKQEAgLTkzMCwyMyArOTMwLDIzIEBAIHZvaWQg
V2ViUGFnZTo6Y2xvc2UoKQogICAgIH0KIAogI2lmIEVOQUJMRShGVUxMU0NSRUVOX0FQSSkKLSAg
ICBtX2Z1bGxTY3JlZW5NYW5hZ2VyID0gMDsKKyAgICBtX2Z1bGxTY3JlZW5NYW5hZ2VyID0gbnVs
bHB0cjsKICNlbmRpZgogCiAgICAgaWYgKG1fYWN0aXZlUG9wdXBNZW51KSB7CiAgICAgICAgIG1f
YWN0aXZlUG9wdXBNZW51LT5kaXNjb25uZWN0RnJvbVBhZ2UoKTsKLSAgICAgICAgbV9hY3RpdmVQ
b3B1cE1lbnUgPSAwOworICAgICAgICBtX2FjdGl2ZVBvcHVwTWVudSA9IG51bGxwdHI7CiAgICAg
fQogCiAgICAgaWYgKG1fYWN0aXZlT3BlblBhbmVsUmVzdWx0TGlzdGVuZXIpIHsKICAgICAgICAg
bV9hY3RpdmVPcGVuUGFuZWxSZXN1bHRMaXN0ZW5lci0+ZGlzY29ubmVjdEZyb21QYWdlKCk7Ci0g
ICAgICAgIG1fYWN0aXZlT3BlblBhbmVsUmVzdWx0TGlzdGVuZXIgPSAwOworICAgICAgICBtX2Fj
dGl2ZU9wZW5QYW5lbFJlc3VsdExpc3RlbmVyID0gbnVsbHB0cjsKICAgICB9CiAKICNpZiBFTkFC
TEUoSU5QVVRfVFlQRV9DT0xPUikKICAgICBpZiAobV9hY3RpdmVDb2xvckNob29zZXIpIHsKICAg
ICAgICAgbV9hY3RpdmVDb2xvckNob29zZXItPmRpc2Nvbm5lY3RGcm9tUGFnZSgpOwotICAgICAg
ICBtX2FjdGl2ZUNvbG9yQ2hvb3NlciA9IDA7CisgICAgICAgIG1fYWN0aXZlQ29sb3JDaG9vc2Vy
ID0gbnVsbHB0cjsKICAgICB9CiAjZW5kaWYKIApAQCAtMzI3MCw3ICszMjcwLDcgQEAgdm9pZCBX
ZWJQYWdlOjpjb3VudFN0cmluZ01hdGNoZXMoY29uc3QgU3RyaW5nJiBzdHJpbmcsIHVpbnQzMl90
IG9wdGlvbnMsIHVpbnQzMl8KIHZvaWQgV2ViUGFnZTo6ZGlkQ2hhbmdlU2VsZWN0ZWRJbmRleEZv
ckFjdGl2ZVBvcHVwTWVudShpbnQzMl90IG5ld0luZGV4KQogewogICAgIGNoYW5nZVNlbGVjdGVk
SW5kZXgobmV3SW5kZXgpOwotICAgIG1fYWN0aXZlUG9wdXBNZW51ID0gMDsKKyAgICBtX2FjdGl2
ZVBvcHVwTWVudSA9IG51bGxwdHI7CiB9CiAKIHZvaWQgV2ViUGFnZTo6Y2hhbmdlU2VsZWN0ZWRJ
bmRleChpbnQzMl90IGluZGV4KQpAQCAtMzMwNiwxMiArMzMwNiwxMiBAQCB2b2lkIFdlYlBhZ2U6
OmRpZENob29zZUZpbGVzRm9yT3BlblBhbmVsKGNvbnN0IFZlY3RvcjxTdHJpbmc+JiBmaWxlcykK
ICAgICAgICAgcmV0dXJuOwogCiAgICAgbV9hY3RpdmVPcGVuUGFuZWxSZXN1bHRMaXN0ZW5lci0+
ZGlkQ2hvb3NlRmlsZXMoZmlsZXMpOwotICAgIG1fYWN0aXZlT3BlblBhbmVsUmVzdWx0TGlzdGVu
ZXIgPSAwOworICAgIG1fYWN0aXZlT3BlblBhbmVsUmVzdWx0TGlzdGVuZXIgPSBudWxscHRyOwog
fQogCiB2b2lkIFdlYlBhZ2U6OmRpZENhbmNlbEZvck9wZW5QYW5lbCgpCiB7Ci0gICAgbV9hY3Rp
dmVPcGVuUGFuZWxSZXN1bHRMaXN0ZW5lciA9IDA7CisgICAgbV9hY3RpdmVPcGVuUGFuZWxSZXN1
bHRMaXN0ZW5lciA9IG51bGxwdHI7CiB9CiAKICNpZiBFTkFCTEUoU0FOREJPWF9FWFRFTlNJT05T
KQpAQCAtMzQxNSw3ICszNDE1LDcgQEAgdm9pZCBXZWJQYWdlOjpkaWRTZWxlY3RJdGVtRnJvbUFj
dGl2ZUNvbnRleHRNZW51KGNvbnN0IFdlYkNvbnRleHRNZW51SXRlbURhdGEmIGkKICAgICAgICAg
cmV0dXJuOwogCiAgICAgbV9jb250ZXh0TWVudS0+aXRlbVNlbGVjdGVkKGl0ZW0pOwotICAgIG1f
Y29udGV4dE1lbnUgPSAwOworICAgIG1fY29udGV4dE1lbnUgPSBudWxscHRyOwogfQogI2VuZGlm
CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvV2ViUGFnZS9pb3MvV2Vi
UGFnZUlPUy5tbSBiL1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvV2ViUGFnZS9pb3MvV2ViUGFn
ZUlPUy5tbQppbmRleCAyM2RlODNlLi45ZjRjZWM3IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0
Mi9XZWJQcm9jZXNzL1dlYlBhZ2UvaW9zL1dlYlBhZ2VJT1MubW0KKysrIGIvU291cmNlL1dlYktp
dDIvV2ViUHJvY2Vzcy9XZWJQYWdlL2lvcy9XZWJQYWdlSU9TLm1tCkBAIC0xOTc4LDcgKzE5Nzgs
NyBAQCB2b2lkIFdlYlBhZ2U6OnN5bmNBcHBseUF1dG9jb3JyZWN0aW9uKGNvbnN0IFN0cmluZyYg
Y29ycmVjdGlvbiwgY29uc3QgU3RyaW5nJiBvcgogICAgICAgICB3aGlsZSAodGV4dEZvclJhbmdl
Lmxlbmd0aCgpICYmIHRleHRGb3JSYW5nZS5sZW5ndGgoKSA+IG9yaWdpbmFsVGV4dC5sZW5ndGgo
KSAmJiBsb29wQ291bnQgPCBtYXhQb3NpdGlvbnNBdHRlbXB0cykgewogICAgICAgICAgICAgcG9z
aXRpb24gPSBwb3NpdGlvbi5uZXh0KCk7CiAgICAgICAgICAgICBpZiAocG9zaXRpb24uaXNOb3RO
dWxsKCkgJiYgcG9zaXRpb24gPj0gZnJhbWUuc2VsZWN0aW9uKCkuc2VsZWN0aW9uKCkuc3RhcnQo
KSkKLSAgICAgICAgICAgICAgICByYW5nZSA9IE5VTEw7CisgICAgICAgICAgICAgICAgcmFuZ2Ug
PSBudWxscHRyOwogICAgICAgICAgICAgZWxzZQogICAgICAgICAgICAgICAgIHJhbmdlID0gUmFu
Z2U6OmNyZWF0ZSgqZnJhbWUuZG9jdW1lbnQoKSwgcG9zaXRpb24sIGZyYW1lLnNlbGVjdGlvbigp
LnNlbGVjdGlvbigpLnN0YXJ0KCkpOwogICAgICAgICAgICAgdGV4dEZvclJhbmdlID0gKHJhbmdl
KSA/IHBsYWluVGV4dFJlcGxhY2luZ05vQnJlYWtTcGFjZShyYW5nZS5nZXQoKSkgOiBlbXB0eVN0
cmluZygpOwpAQCAtMjQ1OCw3ICsyNDU4LDcgQEAgdm9pZCBXZWJQYWdlOjplbGVtZW50RGlkQmx1
cihXZWJDb3JlOjpOb2RlKiBub2RlKQogICAgICAgICAgICAgICAgIHNlbmQoTWVzc2FnZXM6Oldl
YlBhZ2VQcm94eTo6U3RvcEFzc2lzdGluZ05vZGUoKSk7CiAgICAgICAgICAgICBtX2hhc1BlbmRp
bmdCbHVyTm90aWZpY2F0aW9uID0gZmFsc2U7CiAgICAgICAgIH0pOwotICAgICAgICBtX2Fzc2lz
dGVkTm9kZSA9IDA7CisgICAgICAgIG1fYXNzaXN0ZWROb2RlID0gbnVsbHB0cjsKICAgICB9CiB9
CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvV2ViUHJvY2Vzcy5jcHAg
Yi9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL1dlYlByb2Nlc3MuY3BwCmluZGV4IGE5N2JjMjEu
LmI0YzllMGUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvV2ViUHJvY2Vz
cy5jcHAKKysrIGIvU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9XZWJQcm9jZXNzLmNwcApAQCAt
MTAzNCw3ICsxMDM0LDcgQEAgdm9pZCBXZWJQcm9jZXNzOjpuZXR3b3JrUHJvY2Vzc0Nvbm5lY3Rp
b25DbG9zZWQoTmV0d29ya1Byb2Nlc3NDb25uZWN0aW9uKiBjb25uZWMKICAgICBBU1NFUlQobV9u
ZXR3b3JrUHJvY2Vzc0Nvbm5lY3Rpb24pOwogICAgIEFTU0VSVF9VTlVTRUQoY29ubmVjdGlvbiwg
bV9uZXR3b3JrUHJvY2Vzc0Nvbm5lY3Rpb24gPT0gY29ubmVjdGlvbik7CiAKLSAgICBtX25ldHdv
cmtQcm9jZXNzQ29ubmVjdGlvbiA9IDA7CisgICAgbV9uZXR3b3JrUHJvY2Vzc0Nvbm5lY3Rpb24g
PSBudWxscHRyOwogICAgIAogICAgIG1fd2ViUmVzb3VyY2VMb2FkU2NoZWR1bGVyLT5uZXR3b3Jr
UHJvY2Vzc0NyYXNoZWQoKTsKIH0KQEAgLTEwNTEsNyArMTA1MSw3IEBAIHZvaWQgV2ViUHJvY2Vz
czo6d2ViVG9EYXRhYmFzZVByb2Nlc3NDb25uZWN0aW9uQ2xvc2VkKFdlYlRvRGF0YWJhc2VQcm9j
ZXNzQ29ubmVjCiAgICAgQVNTRVJUKG1fd2ViVG9EYXRhYmFzZVByb2Nlc3NDb25uZWN0aW9uKTsK
ICAgICBBU1NFUlQobV93ZWJUb0RhdGFiYXNlUHJvY2Vzc0Nvbm5lY3Rpb24gPT0gY29ubmVjdGlv
bik7CiAKLSAgICBtX3dlYlRvRGF0YWJhc2VQcm9jZXNzQ29ubmVjdGlvbiA9IDA7CisgICAgbV93
ZWJUb0RhdGFiYXNlUHJvY2Vzc0Nvbm5lY3Rpb24gPSBudWxscHRyOwogfQogCiBXZWJUb0RhdGFi
YXNlUHJvY2Vzc0Nvbm5lY3Rpb24qIFdlYlByb2Nlc3M6OndlYlRvRGF0YWJhc2VQcm9jZXNzQ29u
bmVjdGlvbigpCmRpZmYgLS1naXQgYS9Ub29scy9DaGFuZ2VMb2cgYi9Ub29scy9DaGFuZ2VMb2cK
aW5kZXggNjBmY2RhOS4uMzRjYWNhOSAxMDA2NDQKLS0tIGEvVG9vbHMvQ2hhbmdlTG9nCisrKyBi
L1Rvb2xzL0NoYW5nZUxvZwpAQCAtMSwzICsxLDE3IEBACisyMDE1LTA3LTAyICBDaHJpcyBEdW1l
eiAgPGNkdW1lekBhcHBsZS5jb20+CisKKyAgICAgICAgRHJvcCBSZWZQdHI6OmNsZWFyKCkgbWV0
aG9kCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0xNDY1
NTYKKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICAqIER1
bXBSZW5kZXJUcmVlL21hYy9EdW1wUmVuZGVyVHJlZS5tbToKKyAgICAgICAgKHJ1blRlc3QpOgor
ICAgICAgICAqIER1bXBSZW5kZXJUcmVlL3dpbi9EdW1wUmVuZGVyVHJlZS5jcHA6CisgICAgICAg
IChydW5UZXN0KToKKyAgICAgICAgKiBUZXN0V2ViS2l0QVBJL1Rlc3RzL1dURi9SZWZQdHIuY3Bw
OgorICAgICAgICAoVGVzdFdlYktpdEFQSTo6VEVTVCk6CisKIDIwMTUtMDctMDIgIERhbmllbCBC
YXRlcyAgPGRhYmF0ZXNAYXBwbGUuY29tPgogCiAgICAgICAgIFtpT1NdIEFkZCBXZWJLaXRTeXN0
ZW1JbnRlcmZhY2UgZm9yIGlPUyA4LjQKZGlmZiAtLWdpdCBhL1Rvb2xzL0R1bXBSZW5kZXJUcmVl
L21hYy9EdW1wUmVuZGVyVHJlZS5tbSBiL1Rvb2xzL0R1bXBSZW5kZXJUcmVlL21hYy9EdW1wUmVu
ZGVyVHJlZS5tbQppbmRleCBiY2NkNGE5Li4yNzZkZjhiIDEwMDY0NAotLS0gYS9Ub29scy9EdW1w
UmVuZGVyVHJlZS9tYWMvRHVtcFJlbmRlclRyZWUubW0KKysrIGIvVG9vbHMvRHVtcFJlbmRlclRy
ZWUvbWFjL0R1bXBSZW5kZXJUcmVlLm1tCkBAIC0yMDY0LDcgKzIwNjQsNyBAQCBzdGF0aWMgdm9p
ZCBydW5UZXN0KGNvbnN0IHN0cmluZyYgaW5wdXRMaW5lKQogICAgIEFTU0VSVChDRkFycmF5R2V0
Q291bnQob3BlbldpbmRvd3NSZWYpID09IDEpOwogICAgIEFTU0VSVChDRkFycmF5R2V0VmFsdWVB
dEluZGV4KG9wZW5XaW5kb3dzUmVmLCAwKSA9PSBbW21haW5GcmFtZSB3ZWJWaWV3XSB3aW5kb3dd
KTsKIAotICAgIGdUZXN0UnVubmVyLmNsZWFyKCk7CisgICAgZ1Rlc3RSdW5uZXIgPSBudWxscHRy
OwogCiAgICAgaWYgKGlnbm9yZVdlYkNvcmVOb2RlTGVha3MpCiAgICAgICAgIFtXZWJDb3JlU3Rh
dGlzdGljcyBzdG9wSWdub3JpbmdXZWJDb3JlTm9kZUxlYWtzXTsKZGlmZiAtLWdpdCBhL1Rvb2xz
L0R1bXBSZW5kZXJUcmVlL3dpbi9EdW1wUmVuZGVyVHJlZS5jcHAgYi9Ub29scy9EdW1wUmVuZGVy
VHJlZS93aW4vRHVtcFJlbmRlclRyZWUuY3BwCmluZGV4IGQ5ODZjYmYuLmM4NDM1NDcgMTAwNjQ0
Ci0tLSBhL1Rvb2xzL0R1bXBSZW5kZXJUcmVlL3dpbi9EdW1wUmVuZGVyVHJlZS5jcHAKKysrIGIv
VG9vbHMvRHVtcFJlbmRlclRyZWUvd2luL0R1bXBSZW5kZXJUcmVlLmNwcApAQCAtMTE4Myw3ICsx
MTgzLDcgQEAgc3RhdGljIHZvaWQgcnVuVGVzdChjb25zdCBzdHJpbmcmIGlucHV0TGluZSkKIAog
ZXhpdDoKICAgICByZW1vdmVGb250RmFsbGJhY2tJZlByZXNlbnQoZmFsbGJhY2tQYXRoKTsKLSAg
ICA6OmdUZXN0UnVubmVyLmNsZWFyKCk7CisgICAgOjpnVGVzdFJ1bm5lciA9IG51bGxwdHI7CiAK
ICAgICBmcHV0cygiI0VPRlxuIiwgc3RkZXJyKTsKICAgICBmZmx1c2goc3RkZXJyKTsKZGlmZiAt
LWdpdCBhL1Rvb2xzL1Rlc3RXZWJLaXRBUEkvVGVzdHMvV1RGL1JlZlB0ci5jcHAgYi9Ub29scy9U
ZXN0V2ViS2l0QVBJL1Rlc3RzL1dURi9SZWZQdHIuY3BwCmluZGV4IGZjOTIyNDYuLjU0N2YzOWYg
MTAwNjQ0Ci0tLSBhL1Rvb2xzL1Rlc3RXZWJLaXRBUEkvVGVzdHMvV1RGL1JlZlB0ci5jcHAKKysr
IGIvVG9vbHMvVGVzdFdlYktpdEFQSS9UZXN0cy9XVEYvUmVmUHRyLmNwcApAQCAtMjYsNyArMjYs
OSBAQAogI2luY2x1ZGUgImNvbmZpZy5oIgogCiAjaW5jbHVkZSAiUmVmTG9nZ2VyLmgiCisjaW5j
bHVkZSA8d3RmL0N1cnJlbnRUaW1lLmg+CiAjaW5jbHVkZSA8d3RmL1JlZlB0ci5oPgorI2luY2x1
ZGUgPHd0Zi9SZWZDb3VudGVkLmg+CiAKIG5hbWVzcGFjZSBUZXN0V2ViS2l0QVBJIHsKIApAQCAt
MTAyLDcgKzEwNCw3IEBAIFRFU1QoV1RGX1JlZlB0ciwgQmFzaWMpCiAgICAgewogICAgICAgICBS
ZWZQdHI8UmVmTG9nZ2VyPiBwdHIoJmEpOwogICAgICAgICBBU1NFUlRfRVEoJmEsIHB0ci5nZXQo
KSk7Ci0gICAgICAgIHB0ci5jbGVhcigpOworICAgICAgICBwdHIgPSBudWxscHRyOwogICAgICAg
ICBBU1NFUlRfRVEobnVsbHB0ciwgcHRyLmdldCgpKTsKICAgICB9CiAgICAgQVNTRVJUX1NUUkVR
KCJyZWYoYSkgZGVyZWYoYSkgIiwgdGFrZUxvZ1N0cigpLmNfc3RyKCkpOwo=
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>256127</attachid>
            <date>2015-07-03 19:36:37 -0700</date>
            <delta_ts>2015-07-03 20:13:49 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-146556-20150703193542.patch</filename>
            <type>text/plain</type>
            <size>180194</size>
            <attacher name="Chris Dumez">cdumez</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTg2MjY3CmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlw
dENvcmUvQ2hhbmdlTG9nIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL0NoYW5nZUxvZwppbmRleCA3
ZGQ4NDU2ZjMwY2M4Y2MzMTkzZThhZmFkOTBhMjkxMmU5YjM5NDIzLi5lMzQ0ODVhMjlkZDlmZWU3
MDgzODhhNmI0NzJjZjQ3NWUzMmEyNDk5IDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENv
cmUvQ2hhbmdlTG9nCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9DaGFuZ2VMb2cKQEAgLTEs
MyArMSwxMiBAQAorMjAxNS0wNy0wMyAgQ2hyaXMgRHVtZXogIDxjZHVtZXpAYXBwbGUuY29tPgor
CisgICAgICAgIERyb3AgUmVmUHRyOjpjbGVhcigpIG1ldGhvZAorICAgICAgICBodHRwczovL2J1
Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTQ2NTU2CisKKyAgICAgICAgUmV2aWV3ZWQg
YnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgRHJvcCBSZWZQdHI6OmNsZWFyKCkgbWV0aG9k
IGluIGZhdm9yIG9mICI9IG51bGxwdHI7IiBwYXR0ZXJuLgorCiAyMDE1LTA3LTAzICBZdXN1a2Ug
U3V6dWtpICA8dXRhdGFuZS50ZWFAZ21haWwuY29tPgogCiAgICAgICAgIFJlbGF4IGJ1aWx0aW4g
SlMgcmVzdHJpY3Rpb24gYWJvdXQgdHJ5LWNhdGNoCmRpZmYgLS1naXQgYS9Tb3VyY2UvV1RGL0No
YW5nZUxvZyBiL1NvdXJjZS9XVEYvQ2hhbmdlTG9nCmluZGV4IDRiZjVjZjdlOGIyYmJlNzVlYzFj
M2UyNzUwZWY4Nzg2MzczYTRkZDEuLmI2NTdhYTBjODQ0ZmRmZWRmMmY4NzYzNDEwZTU5YjU1NjA2
OGMwN2IgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XVEYvQ2hhbmdlTG9nCisrKyBiL1NvdXJjZS9XVEYv
Q2hhbmdlTG9nCkBAIC0xLDMgKzEsMTYgQEAKKzIwMTUtMDctMDMgIENocmlzIER1bWV6ICA8Y2R1
bWV6QGFwcGxlLmNvbT4KKworICAgICAgICBEcm9wIFJlZlB0cjo6Y2xlYXIoKSBtZXRob2QKKyAg
ICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTE0NjU1NgorCisg
ICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIERyb3AgUmVmUHRy
OjpjbGVhcigpIG1ldGhvZCBpbiBmYXZvciBvZiAiPSBudWxscHRyOyIgcGF0dGVybi4KKyAgICAg
ICAgQWxzbyBtYWRlIHRoZSAiPSBudWxscHRyOyIgcGF0dGVybiBhcyBlZmZpY2llbnQgYXMgY2xl
YXIoKQorICAgICAgICBieSBwcm92aWRpbmcgYSBvcGVyYXRvcj0obnVsbHB0cl90KSBvdmVybG9h
ZC4gTG9jYWwgbWljcm8tCisgICAgICAgIGJlbmNobWFya2luZyBzaG93ZWQgdGhhdCAiPSBudWxs
cHRyOyIgdXNlZCB0byBiZSB+MS43JSBzbG93ZXIKKyAgICAgICAgdGhhbiBjbGVhcigpLgorCiAy
MDE1LTA3LTAxICBBbGV4IENocmlzdGVuc2VuICA8YWNocmlzdGVuc2VuQHdlYmtpdC5vcmc+CiAK
ICAgICAgICAgUmUtZW5hYmxlIFdlYkdMIG9uIFdpbkNhaXJvCmRpZmYgLS1naXQgYS9Tb3VyY2Uv
V2ViQ29yZS9DaGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggMzNmMmM0
YjJmODlhMTJmYzJiZDI1MzY5ODhiYTFhOGVkNTVkYTAxYi4uYmRhMjczZTg3Mzg2NDdlMmQ4Yjc2
OTc4YzY3OTUxOTM2MTcxZDlmYyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9n
CisrKyBiL1NvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDIzMiBAQAorMjAxNS0w
Ny0wMyAgQ2hyaXMgRHVtZXogIDxjZHVtZXpAYXBwbGUuY29tPgorCisgICAgICAgIERyb3AgUmVm
UHRyOjpjbGVhcigpIG1ldGhvZAorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93
X2J1Zy5jZ2k/aWQ9MTQ2NTU2CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISku
CisKKyAgICAgICAgRHJvcCBSZWZQdHI6OmNsZWFyKCkgbWV0aG9kIGluIGZhdm9yIG9mICI9IG51
bGxwdHI7IiBwYXR0ZXJuLgorCisyMDE1LTA3LTAyICBDaHJpcyBEdW1leiAgPGNkdW1lekBhcHBs
ZS5jb20+CisKKyAgICAgICAgRHJvcCBSZWZQdHI6OmNsZWFyKCkgbWV0aG9kCisgICAgICAgIGh0
dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0xNDY1NTYKKworICAgICAgICBS
ZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICAqIE1vZHVsZXMvaW5kZXhlZGRi
L0lEQkN1cnNvci5jcHA6CisgICAgICAgIChXZWJDb3JlOjpJREJDdXJzb3I6OmNsb3NlKToKKyAg
ICAgICAgKiBNb2R1bGVzL2luZGV4ZWRkYi9JREJEYXRhYmFzZUJhY2tlbmQuY3BwOgorICAgICAg
ICAoV2ViQ29yZTo6SURCRGF0YWJhc2VCYWNrZW5kOjp0cmFuc2FjdGlvbkZpbmlzaGVkKToKKyAg
ICAgICAgKiBNb2R1bGVzL2luZGV4ZWRkYi9JREJPYmplY3RTdG9yZS5jcHA6CisgICAgICAgICog
TW9kdWxlcy9pbmRleGVkZGIvSURCT3BlbkRCUmVxdWVzdC5jcHA6CisgICAgICAgIChXZWJDb3Jl
OjpJREJPcGVuREJSZXF1ZXN0OjpkaXNwYXRjaEV2ZW50KToKKyAgICAgICAgKiBNb2R1bGVzL2lu
ZGV4ZWRkYi9JREJSZXF1ZXN0LmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OklEQlJlcXVlc3Q6OmFi
b3J0KToKKyAgICAgICAgKFdlYkNvcmU6OklEQlJlcXVlc3Q6OnNldFBlbmRpbmdDdXJzb3IpOgor
ICAgICAgICAoV2ViQ29yZTo6SURCUmVxdWVzdDo6b25FcnJvcik6CisgICAgICAgIChXZWJDb3Jl
OjpJREJSZXF1ZXN0OjpvblN1Y2Nlc3NJbnRlcm5hbCk6CisgICAgICAgIChXZWJDb3JlOjpJREJS
ZXF1ZXN0Ojp0cmFuc2FjdGlvbkRpZEZpbmlzaEFuZERpc3BhdGNoKToKKyAgICAgICAgKiBNb2R1
bGVzL2luZGV4ZWRkYi9JREJUcmFuc2FjdGlvbi5jcHA6CisgICAgICAgIChXZWJDb3JlOjpJREJU
cmFuc2FjdGlvbjo6T3BlbkN1cnNvck5vdGlmaWVyOjpjdXJzb3JGaW5pc2hlZCk6CisgICAgICAg
ICogTW9kdWxlcy9tZWRpYXNvdXJjZS9NZWRpYVNvdXJjZS5jcHA6CisgICAgICAgIChXZWJDb3Jl
OjpNZWRpYVNvdXJjZTo6c2V0UmVhZHlTdGF0ZSk6CisgICAgICAgIChXZWJDb3JlOjpNZWRpYVNv
dXJjZTo6c3RvcCk6CisgICAgICAgICogTW9kdWxlcy9tZWRpYXN0cmVhbS9SVENTZXNzaW9uRGVz
Y3JpcHRpb25SZXF1ZXN0SW1wbC5jcHA6CisgICAgICAgIChXZWJDb3JlOjpSVENTZXNzaW9uRGVz
Y3JpcHRpb25SZXF1ZXN0SW1wbDo6Y2xlYXIpOgorICAgICAgICAqIE1vZHVsZXMvbWVkaWFzdHJl
YW0vUlRDU3RhdHNSZXF1ZXN0SW1wbC5jcHA6CisgICAgICAgIChXZWJDb3JlOjpSVENTdGF0c1Jl
cXVlc3RJbXBsOjpjbGVhcik6CisgICAgICAgICogTW9kdWxlcy9tZWRpYXN0cmVhbS9SVENWb2lk
UmVxdWVzdEltcGwuY3BwOgorICAgICAgICAoV2ViQ29yZTo6UlRDVm9pZFJlcXVlc3RJbXBsOjpj
bGVhcik6CisgICAgICAgICogTW9kdWxlcy93ZWJhdWRpby9BdWRpb0NvbnRleHQuY3BwOgorICAg
ICAgICAoV2ViQ29yZTo6QXVkaW9Db250ZXh0OjpjbGVhcik6CisgICAgICAgICogTW9kdWxlcy93
ZWJkYXRhYmFzZS9TUUxUcmFuc2FjdGlvbkJhY2tlbmQuY3BwOgorICAgICAgICAoV2ViQ29yZTo6
U1FMVHJhbnNhY3Rpb25CYWNrZW5kOjpyZWxlYXNlT3JpZ2luTG9ja0lmTmVlZGVkKToKKyAgICAg
ICAgKiBNb2R1bGVzL3dlYnNvY2tldHMvV29ya2VyVGhyZWFkYWJsZVdlYlNvY2tldENoYW5uZWwu
Y3BwOgorICAgICAgICAoV2ViQ29yZTo6V29ya2VyVGhyZWFkYWJsZVdlYlNvY2tldENoYW5uZWw6
OmRpc2Nvbm5lY3QpOgorICAgICAgICAqIGJpbmRpbmdzL2pzL1dlYkNvcmVKU0NsaWVudERhdGEu
aDoKKyAgICAgICAgKFdlYkNvcmU6OldlYkNvcmVKU0NsaWVudERhdGE6On5XZWJDb3JlSlNDbGll
bnREYXRhKToKKyAgICAgICAgKiBiaW5kaW5ncy9qcy9Xb3JrZXJTY3JpcHRDb250cm9sbGVyLmNw
cDoKKyAgICAgICAgKFdlYkNvcmU6OldvcmtlclNjcmlwdENvbnRyb2xsZXI6On5Xb3JrZXJTY3Jp
cHRDb250cm9sbGVyKToKKyAgICAgICAgKiBjb250ZW50ZXh0ZW5zaW9ucy9Db250ZW50RXh0ZW5z
aW9uUGFyc2VyLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OkNvbnRlbnRFeHRlbnNpb25zOjpwYXJz
ZVJ1bGVMaXN0KToKKyAgICAgICAgKiBjc3MvQ1NTUGFyc2VyLmNwcDoKKyAgICAgICAgKFdlYkNv
cmU6OkNTU1BhcnNlcjo6cGFyc2VGaWxsUG9zaXRpb24pOgorICAgICAgICAoV2ViQ29yZTo6Q1NT
UGFyc2VyOjpwYXJzZTJWYWx1ZXNGaWxsUG9zaXRpb24pOgorICAgICAgICAoV2ViQ29yZTo6Q1NT
UGFyc2VyOjpwb3BSdWxlRGF0YSk6CisgICAgICAgIChXZWJDb3JlOjpDU1NQYXJzZXI6Om1hcmtS
dWxlQm9keVN0YXJ0KToKKyAgICAgICAgKiBkb20vRG9jdW1lbnQuY3BwOgorICAgICAgICAoV2Vi
Q29yZTo6RG9jdW1lbnQ6OmRldGFjaFBhcnNlcik6CisgICAgICAgIChXZWJDb3JlOjpEb2N1bWVu
dDo6Y2xlYXJTY3JpcHRlZEFuaW1hdGlvbkNvbnRyb2xsZXIpOgorICAgICAgICAoV2ViQ29yZTo6
RG9jdW1lbnQ6OnVwZGF0ZUhvdmVyQWN0aXZlU3RhdGUpOgorICAgICAgICAqIGRvbS9Eb2N1bWVu
dE1hcmtlci5oOgorICAgICAgICAoV2ViQ29yZTo6RG9jdW1lbnRNYXJrZXI6OmNsZWFyRGV0YWls
cyk6CisgICAgICAgICogZG9tL0VsZW1lbnQuY3BwOgorICAgICAgICAoV2ViQ29yZTo6RWxlbWVu
dDo6Y2xvbmVBdHRyaWJ1dGVzRnJvbUVsZW1lbnQpOgorICAgICAgICAqIGRvbS9Ob2RlSXRlcmF0
b3IuY3BwOgorICAgICAgICAoV2ViQ29yZTo6Tm9kZUl0ZXJhdG9yOjpOb2RlUG9pbnRlcjo6Y2xl
YXIpOgorICAgICAgICAoV2ViQ29yZTo6Tm9kZUl0ZXJhdG9yOjpkZXRhY2gpOgorICAgICAgICAq
IGRvbS9Qb3NpdGlvbi5oOgorICAgICAgICAoV2ViQ29yZTo6UG9zaXRpb246OmNsZWFyKToKKyAg
ICAgICAgKiBkb20vUmFuZ2VCb3VuZGFyeVBvaW50Lmg6CisgICAgICAgIChXZWJDb3JlOjpSYW5n
ZUJvdW5kYXJ5UG9pbnQ6OmNsZWFyKToKKyAgICAgICAgKiBkb20vU3BhY2VTcGxpdFN0cmluZy5o
OgorICAgICAgICAoV2ViQ29yZTo6U3BhY2VTcGxpdFN0cmluZzo6Y2xlYXIpOgorICAgICAgICAq
IGRvbS9TdHlsZWRFbGVtZW50LmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OlN0eWxlZEVsZW1lbnQ6
OnNldElubGluZVN0eWxlRnJvbVN0cmluZyk6CisgICAgICAgIChXZWJDb3JlOjpTdHlsZWRFbGVt
ZW50OjpzdHlsZUF0dHJpYnV0ZUNoYW5nZWQpOgorICAgICAgICAqIGVkaXRpbmcvQWx0ZXJuYXRp
dmVUZXh0Q29udHJvbGxlci5jcHA6CisgICAgICAgIChXZWJDb3JlOjpBbHRlcm5hdGl2ZVRleHRD
b250cm9sbGVyOjpzdGFydEFsdGVybmF0aXZlVGV4dFVJVGltZXIpOgorICAgICAgICAoV2ViQ29y
ZTo6QWx0ZXJuYXRpdmVUZXh0Q29udHJvbGxlcjo6c3RvcEFsdGVybmF0aXZlVGV4dFVJVGltZXIp
OgorICAgICAgICAoV2ViQ29yZTo6QWx0ZXJuYXRpdmVUZXh0Q29udHJvbGxlcjo6YXBwbHlQZW5k
aW5nQ29ycmVjdGlvbik6CisgICAgICAgIChXZWJDb3JlOjpBbHRlcm5hdGl2ZVRleHRDb250cm9s
bGVyOjp0aW1lckZpcmVkKToKKyAgICAgICAgKFdlYkNvcmU6OkFsdGVybmF0aXZlVGV4dENvbnRy
b2xsZXI6OmhhbmRsZUFsdGVybmF0aXZlVGV4dFVJUmVzdWx0KToKKyAgICAgICAgKiBlZGl0aW5n
L0VkaXRpbmdTdHlsZS5jcHA6CisgICAgICAgIChXZWJDb3JlOjpFZGl0aW5nU3R5bGU6OmNsZWFy
KToKKyAgICAgICAgKiBlZGl0aW5nL0VkaXRvci5jcHA6CisgICAgICAgIChXZWJDb3JlOjpFZGl0
b3I6OmNsZWFyTGFzdEVkaXRDb21tYW5kKToKKyAgICAgICAgKiBlZGl0aW5nL0ZyYW1lU2VsZWN0
aW9uLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OkZyYW1lU2VsZWN0aW9uOjpwcmVwYXJlRm9yRGVz
dHJ1Y3Rpb24pOgorICAgICAgICAqIGVkaXRpbmcvRnJhbWVTZWxlY3Rpb24uaDoKKyAgICAgICAg
KFdlYkNvcmU6OkZyYW1lU2VsZWN0aW9uOjpjbGVhclR5cGluZ1N0eWxlKToKKyAgICAgICAgKiBl
ZGl0aW5nL1NwZWxsQ2hlY2tlci5jcHA6CisgICAgICAgIChXZWJDb3JlOjpTcGVsbENoZWNrZXI6
OmRpZENoZWNrKToKKyAgICAgICAgKiBodG1sL0Jhc2VDaG9vc2VyT25seURhdGVBbmRUaW1lSW5w
dXRUeXBlLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OkJhc2VDaG9vc2VyT25seURhdGVBbmRUaW1l
SW5wdXRUeXBlOjpkaWRFbmRDaG9vc2VyKToKKyAgICAgICAgKiBodG1sL0ZpbGVJbnB1dFR5cGUu
Y3BwOgorICAgICAgICAoV2ViQ29yZTo6RmlsZUlucHV0VHlwZTo6c2V0VmFsdWUpOgorICAgICAg
ICAqIGh0bWwvSFRNTENhbnZhc0VsZW1lbnQuY3BwOgorICAgICAgICAoV2ViQ29yZTo6SFRNTENh
bnZhc0VsZW1lbnQ6OmNsZWFyUHJlc2VudGF0aW9uQ29weSk6CisgICAgICAgIChXZWJDb3JlOjpI
VE1MQ2FudmFzRWxlbWVudDo6Y2xlYXJDb3BpZWRJbWFnZSk6CisgICAgICAgICogaHRtbC9IVE1M
UGx1Z0luRWxlbWVudC5jcHA6CisgICAgICAgIChXZWJDb3JlOjpIVE1MUGx1Z0luRWxlbWVudDo6
d2lsbERldGFjaFJlbmRlcmVycyk6CisgICAgICAgIChXZWJDb3JlOjpIVE1MUGx1Z0luRWxlbWVu
dDo6cmVzZXRJbnN0YW5jZSk6CisgICAgICAgICogaHRtbC9UZXh0RmllbGRJbnB1dFR5cGUuY3Bw
OgorICAgICAgICAoV2ViQ29yZTo6VGV4dEZpZWxkSW5wdXRUeXBlOjp1cGRhdGVQbGFjZWhvbGRl
clRleHQpOgorICAgICAgICAqIGh0bWwvY2FudmFzL1dlYkdMUmVuZGVyaW5nQ29udGV4dEJhc2Uu
Y3BwOgorICAgICAgICAoV2ViQ29yZTo6V2ViR0xSZW5kZXJpbmdDb250ZXh0QmFzZTo6ZGVzdHJv
eUdyYXBoaWNzQ29udGV4dDNEKToKKyAgICAgICAgKiBpbnNwZWN0b3IvSW5zcGVjdG9yQXBwbGlj
YXRpb25DYWNoZUFnZW50LmNwcDoKKyAgICAgICAgKFdlYkNvcmU6Okluc3BlY3RvckFwcGxpY2F0
aW9uQ2FjaGVBZ2VudDo6d2lsbERlc3Ryb3lGcm9udGVuZEFuZEJhY2tlbmQpOgorICAgICAgICAq
IGluc3BlY3Rvci9JbnNwZWN0b3JDU1NBZ2VudC5jcHA6CisgICAgICAgIChXZWJDb3JlOjpJbnNw
ZWN0b3JDU1NBZ2VudDo6d2lsbERlc3Ryb3lGcm9udGVuZEFuZEJhY2tlbmQpOgorICAgICAgICAq
IGluc3BlY3Rvci9JbnNwZWN0b3JDb250cm9sbGVyLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6Oklu
c3BlY3RvckNvbnRyb2xsZXI6OmRpc2Nvbm5lY3RGcm9udGVuZCk6CisgICAgICAgICogaW5zcGVj
dG9yL0luc3BlY3RvckRPTUFnZW50LmNwcDoKKyAgICAgICAgKFdlYkNvcmU6Okluc3BlY3RvckRP
TUFnZW50Ojp3aWxsRGVzdHJveUZyb250ZW5kQW5kQmFja2VuZCk6CisgICAgICAgICogaW5zcGVj
dG9yL0luc3BlY3RvckRPTURlYnVnZ2VyQWdlbnQuY3BwOgorICAgICAgICAoV2ViQ29yZTo6SW5z
cGVjdG9yRE9NRGVidWdnZXJBZ2VudDo6d2lsbERlc3Ryb3lGcm9udGVuZEFuZEJhY2tlbmQpOgor
ICAgICAgICAqIGluc3BlY3Rvci9JbnNwZWN0b3JET01TdG9yYWdlQWdlbnQuY3BwOgorICAgICAg
ICAoV2ViQ29yZTo6SW5zcGVjdG9yRE9NU3RvcmFnZUFnZW50Ojp3aWxsRGVzdHJveUZyb250ZW5k
QW5kQmFja2VuZCk6CisgICAgICAgICogaW5zcGVjdG9yL0luc3BlY3RvckRhdGFiYXNlQWdlbnQu
Y3BwOgorICAgICAgICAoV2ViQ29yZTo6SW5zcGVjdG9yRGF0YWJhc2VBZ2VudDo6d2lsbERlc3Ry
b3lGcm9udGVuZEFuZEJhY2tlbmQpOgorICAgICAgICAqIGluc3BlY3Rvci9JbnNwZWN0b3JJbmRl
eGVkREJBZ2VudC5jcHA6CisgICAgICAgIChXZWJDb3JlOjpJbnNwZWN0b3JJbmRleGVkREJBZ2Vu
dDo6d2lsbERlc3Ryb3lGcm9udGVuZEFuZEJhY2tlbmQpOgorICAgICAgICAqIGluc3BlY3Rvci9J
bnNwZWN0b3JMYXllclRyZWVBZ2VudC5jcHA6CisgICAgICAgIChXZWJDb3JlOjpJbnNwZWN0b3JM
YXllclRyZWVBZ2VudDo6d2lsbERlc3Ryb3lGcm9udGVuZEFuZEJhY2tlbmQpOgorICAgICAgICAq
IGluc3BlY3Rvci9JbnNwZWN0b3JPdmVybGF5LmNwcDoKKyAgICAgICAgKFdlYkNvcmU6Okluc3Bl
Y3Rvck92ZXJsYXk6OmhpZGVIaWdobGlnaHQpOgorICAgICAgICAoV2ViQ29yZTo6SW5zcGVjdG9y
T3ZlcmxheTo6aGlnaGxpZ2h0Tm9kZUxpc3QpOgorICAgICAgICAoV2ViQ29yZTo6SW5zcGVjdG9y
T3ZlcmxheTo6aGlnaGxpZ2h0Tm9kZSk6CisgICAgICAgICogaW5zcGVjdG9yL0luc3BlY3RvclBh
Z2VBZ2VudC5jcHA6CisgICAgICAgIChXZWJDb3JlOjpJbnNwZWN0b3JQYWdlQWdlbnQ6OndpbGxE
ZXN0cm95RnJvbnRlbmRBbmRCYWNrZW5kKToKKyAgICAgICAgKFdlYkNvcmU6Okluc3BlY3RvclBh
Z2VBZ2VudDo6ZGlzYWJsZSk6CisgICAgICAgICogaW5zcGVjdG9yL0luc3BlY3RvclJlcGxheUFn
ZW50LmNwcDoKKyAgICAgICAgKFdlYkNvcmU6Okluc3BlY3RvclJlcGxheUFnZW50Ojp3aWxsRGVz
dHJveUZyb250ZW5kQW5kQmFja2VuZCk6CisgICAgICAgICogaW5zcGVjdG9yL0luc3BlY3RvclJl
c291cmNlQWdlbnQuY3BwOgorICAgICAgICAoV2ViQ29yZTo6SW5zcGVjdG9yUmVzb3VyY2VBZ2Vu
dDo6d2lsbERlc3Ryb3lGcm9udGVuZEFuZEJhY2tlbmQpOgorICAgICAgICAqIGluc3BlY3Rvci9J
bnNwZWN0b3JTdHlsZVNoZWV0LmNwcDoKKyAgICAgICAgKFdlYkNvcmU6Okluc3BlY3RvclN0eWxl
U2hlZXRGb3JJbmxpbmVTdHlsZTo6ZGlkTW9kaWZ5RWxlbWVudEF0dHJpYnV0ZSk6CisgICAgICAg
IChXZWJDb3JlOjpJbnNwZWN0b3JTdHlsZVNoZWV0Rm9ySW5saW5lU3R5bGU6OnNldFN0eWxlVGV4
dCk6CisgICAgICAgIChXZWJDb3JlOjpJbnNwZWN0b3JTdHlsZVNoZWV0Rm9ySW5saW5lU3R5bGU6
OmVuc3VyZVBhcnNlZERhdGFSZWFkeSk6CisgICAgICAgICogaW5zcGVjdG9yL0luc3BlY3RvclRp
bWVsaW5lQWdlbnQuY3BwOgorICAgICAgICAoV2ViQ29yZTo6SW5zcGVjdG9yVGltZWxpbmVBZ2Vu
dDo6d2lsbERlc3Ryb3lGcm9udGVuZEFuZEJhY2tlbmQpOgorICAgICAgICAqIGluc3BlY3Rvci9J
bnNwZWN0b3JXb3JrZXJBZ2VudC5jcHA6CisgICAgICAgIChXZWJDb3JlOjpJbnNwZWN0b3JXb3Jr
ZXJBZ2VudDo6d2lsbERlc3Ryb3lGcm9udGVuZEFuZEJhY2tlbmQpOgorICAgICAgICAqIGluc3Bl
Y3Rvci9QYWdlUnVudGltZUFnZW50LmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OlBhZ2VSdW50aW1l
QWdlbnQ6OndpbGxEZXN0cm95RnJvbnRlbmRBbmRCYWNrZW5kKToKKyAgICAgICAgKiBpbnNwZWN0
b3IvV2ViSW5qZWN0ZWRTY3JpcHRNYW5hZ2VyLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OldlYklu
amVjdGVkU2NyaXB0TWFuYWdlcjo6ZGlzY29ubmVjdCk6CisgICAgICAgICogaW5zcGVjdG9yL1dv
cmtlckluc3BlY3RvckNvbnRyb2xsZXIuY3BwOgorICAgICAgICAoV2ViQ29yZTo6V29ya2VySW5z
cGVjdG9yQ29udHJvbGxlcjo6ZGlzY29ubmVjdEZyb250ZW5kKToKKyAgICAgICAgKiBpbnNwZWN0
b3IvV29ya2VyUnVudGltZUFnZW50LmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OldvcmtlclJ1bnRp
bWVBZ2VudDo6d2lsbERlc3Ryb3lGcm9udGVuZEFuZEJhY2tlbmQpOgorICAgICAgICAqIGxvYWRl
ci9GcmFtZUxvYWRlci5jcHA6CisgICAgICAgIChXZWJDb3JlOjpGcmFtZUxvYWRlcjo6ZGlkQmVn
aW5Eb2N1bWVudCk6CisgICAgICAgICogbG9hZGVyL2NhY2hlL0NhY2hlZENTU1N0eWxlU2hlZXQu
Y3BwOgorICAgICAgICAoV2ViQ29yZTo6Q2FjaGVkQ1NTU3R5bGVTaGVldDo6ZGVzdHJveURlY29k
ZWREYXRhKToKKyAgICAgICAgKFdlYkNvcmU6OkNhY2hlZENTU1N0eWxlU2hlZXQ6OnJlc3RvcmVQ
YXJzZWRTdHlsZVNoZWV0KToKKyAgICAgICAgKiBsb2FkZXIvY2FjaGUvQ2FjaGVkSW1hZ2UuY3Bw
OgorICAgICAgICAoV2ViQ29yZTo6Q2FjaGVkSW1hZ2U6OmNsZWFySW1hZ2UpOgorICAgICAgICAq
IGxvYWRlci9jYWNoZS9DYWNoZWRSYXdSZXNvdXJjZS5jcHA6CisgICAgICAgIChXZWJDb3JlOjpD
YWNoZWRSYXdSZXNvdXJjZTo6Y2xlYXIpOgorICAgICAgICAqIGxvYWRlci9jYWNoZS9DYWNoZWRS
ZXNvdXJjZS5jcHA6CisgICAgICAgIChXZWJDb3JlOjpDYWNoZWRSZXNvdXJjZTo6ZXJyb3IpOgor
ICAgICAgICAqIGxvYWRlci9pY29uL0ljb25SZWNvcmQuY3BwOgorICAgICAgICAoV2ViQ29yZTo6
SWNvblJlY29yZDo6c2V0SW1hZ2VEYXRhKToKKyAgICAgICAgKiBwYWdlL0V2ZW50SGFuZGxlci5j
cHA6CisgICAgICAgIChXZWJDb3JlOjpFdmVudEhhbmRsZXI6OmNsZWFyKToKKyAgICAgICAgKFdl
YkNvcmU6OkV2ZW50SGFuZGxlcjo6aGFuZGxlVG91Y2hFdmVudCk6CisgICAgICAgICogcGFnZS9Q
YWdlLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OlBhZ2U6OnJlZnJlc2hQbHVnaW5zKToKKyAgICAg
ICAgKiBwbGF0Zm9ybS9hdWRpby9tYWMvQ0FSaW5nQnVmZmVyLmNwcDoKKyAgICAgICAgKFdlYkNv
cmU6OkNBUmluZ0J1ZmZlcjo6ZGVhbGxvY2F0ZSk6CisgICAgICAgICogcGxhdGZvcm0vZ3JhcGhp
Y3MvRm9udC5jcHA6CisgICAgICAgIChXZWJDb3JlOjpGb250OjptYXRoRGF0YSk6CisgICAgICAg
ICogcGxhdGZvcm0vZ3JhcGhpY3MvRm9udENhY2hlLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OkZv
bnRDYWNoZTo6Z2V0VmVydGljYWxEYXRhKToKKyAgICAgICAgKiBwbGF0Zm9ybS9ncmFwaGljcy9H
cmFwaGljc0NvbnRleHQuY3BwOgorICAgICAgICAoV2ViQ29yZTo6R3JhcGhpY3NDb250ZXh0Ojpz
ZXRTdHJva2VDb2xvcik6CisgICAgICAgIChXZWJDb3JlOjpHcmFwaGljc0NvbnRleHQ6OnNldEZp
bGxDb2xvcik6CisgICAgICAgIChXZWJDb3JlOjpHcmFwaGljc0NvbnRleHQ6OnNldFN0cm9rZVBh
dHRlcm4pOgorICAgICAgICAoV2ViQ29yZTo6R3JhcGhpY3NDb250ZXh0OjpzZXRGaWxsUGF0dGVy
bik6CisgICAgICAgIChXZWJDb3JlOjpHcmFwaGljc0NvbnRleHQ6OnNldFN0cm9rZUdyYWRpZW50
KToKKyAgICAgICAgKFdlYkNvcmU6OkdyYXBoaWNzQ29udGV4dDo6c2V0RmlsbEdyYWRpZW50KToK
KyAgICAgICAgKiBwbGF0Zm9ybS9ncmFwaGljcy9jYWlyby9CYWNraW5nU3RvcmVCYWNrZW5kQ2Fp
cm9YMTEuY3BwOgorICAgICAgICAoV2ViQ29yZTo6QmFja2luZ1N0b3JlQmFja2VuZENhaXJvWDEx
Ojp+QmFja2luZ1N0b3JlQmFja2VuZENhaXJvWDExKToKKyAgICAgICAgKiBwbGF0Zm9ybS9ncmFw
aGljcy9jYWlyby9CaXRtYXBJbWFnZUNhaXJvLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OkZyYW1l
RGF0YTo6Y2xlYXIpOgorICAgICAgICAqIHBsYXRmb3JtL2dyYXBoaWNzL2ZpbHRlcnMvRmlsdGVy
RWZmZWN0LmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OkZpbHRlckVmZmVjdDo6Y2xlYXJSZXN1bHQp
OgorICAgICAgICAoV2ViQ29yZTo6RmlsdGVyRWZmZWN0Ojp0cmFuc2Zvcm1SZXN1bHRDb2xvclNw
YWNlKToKKyAgICAgICAgKiBwbGF0Zm9ybS9ncmFwaGljcy9nc3RyZWFtZXIvSW1hZ2VHU3RyZWFt
ZXJDYWlyby5jcHA6CisgICAgICAgIChJbWFnZUdTdHJlYW1lcjo6fkltYWdlR1N0cmVhbWVyKToK
KyAgICAgICAgKiBwbGF0Zm9ybS9ncmFwaGljcy90ZXhtYXAvQml0bWFwVGV4dHVyZUdMLmNwcDoK
KyAgICAgICAgKFdlYkNvcmU6OkJpdG1hcFRleHR1cmVHTDo6YXBwbHlGaWx0ZXJzKToKKyAgICAg
ICAgKiBwbGF0Zm9ybS9ncmFwaGljcy90ZXhtYXAvVGV4dHVyZU1hcHBlckdMLmNwcDoKKyAgICAg
ICAgKFdlYkNvcmU6OlRleHR1cmVNYXBwZXJHTDo6YmluZERlZmF1bHRTdXJmYWNlKToKKyAgICAg
ICAgKiBwbGF0Zm9ybS9ncmFwaGljcy90ZXhtYXAvVGV4dHVyZU1hcHBlckxheWVyLmNwcDoKKyAg
ICAgICAgKFdlYkNvcmU6OlRleHR1cmVNYXBwZXJMYXllcjo6cGFpbnRXaXRoSW50ZXJtZWRpYXRl
U3VyZmFjZSk6CisgICAgICAgICogcGxhdGZvcm0vZ3JhcGhpY3MvdGV4bWFwL1RleHR1cmVNYXBw
ZXJUaWxlZEJhY2tpbmdTdG9yZS5jcHA6CisgICAgICAgIChXZWJDb3JlOjpUZXh0dXJlTWFwcGVy
VGlsZWRCYWNraW5nU3RvcmU6OnVwZGF0ZUNvbnRlbnRzRnJvbUltYWdlSWZOZWVkZWQpOgorICAg
ICAgICAqIHBsYXRmb3JtL2dyYXBoaWNzL3RleG1hcC9jb29yZGluYXRlZC9Db29yZGluYXRlZEdy
YXBoaWNzTGF5ZXIuY3BwOgorICAgICAgICAoV2ViQ29yZTo6Q29vcmRpbmF0ZWRHcmFwaGljc0xh
eWVyOjpyZWxlYXNlSW1hZ2VCYWNraW5nSWZOZWVkZWQpOgorICAgICAgICAqIHBsYXRmb3JtL2dy
YXBoaWNzL3RleG1hcC9jb29yZGluYXRlZC9Db29yZGluYXRlZEltYWdlQmFja2luZy5jcHA6Cisg
ICAgICAgIChXZWJDb3JlOjpDb29yZGluYXRlZEltYWdlQmFja2luZzo6cmVsZWFzZVN1cmZhY2VJ
Zk5lZWRlZCk6CisgICAgICAgICogcGxhdGZvcm0vZ3RrL0dhbWVwYWRzR3RrLmNwcDoKKyAgICAg
ICAgKFdlYkNvcmU6OkdhbWVwYWRzR3RrOjp1bnJlZ2lzdGVyRGV2aWNlKToKKyAgICAgICAgKiBy
ZW5kZXJpbmcvSW5saW5lRmxvd0JveC5jcHA6CisgICAgICAgIChXZWJDb3JlOjpJbmxpbmVGbG93
Qm94Ojpjb21wdXRlT3ZlcmZsb3cpOgorICAgICAgICAqIHJlbmRlcmluZy9SZW5kZXJCb3guY3Bw
OgorICAgICAgICAoV2ViQ29yZTo6UmVuZGVyQm94OjpjbGVhck92ZXJmbG93KToKKyAgICAgICAg
KiByZW5kZXJpbmcvUmVuZGVyQm94UmVnaW9uSW5mby5oOgorICAgICAgICAoV2ViQ29yZTo6UmVu
ZGVyQm94UmVnaW9uSW5mbzo6Y2xlYXJPdmVyZmxvdyk6CisgICAgICAgICogcmVuZGVyaW5nL3N0
eWxlL0ZpbGxMYXllci5oOgorICAgICAgICAoV2ViQ29yZTo6RmlsbExheWVyOjpjbGVhck1hc2tJ
bWFnZSk6CisgICAgICAgIChXZWJDb3JlOjpGaWxsTGF5ZXI6OmNsZWFySW1hZ2UpOgorICAgICAg
ICAqIHN2Zy9TVkdUUmVmRWxlbWVudC5jcHA6CisgICAgICAgIChXZWJDb3JlOjpTVkdUUmVmVGFy
Z2V0RXZlbnRMaXN0ZW5lcjo6ZGV0YWNoKToKKyAgICAgICAgKiB0ZXN0aW5nL0ludGVybmFscy5j
cHA6CisgICAgICAgIChXZWJDb3JlOjpJbnRlcm5hbHM6OmNsb3NlRHVtbXlJbnNwZWN0b3JGcm9u
dGVuZCk6CisgICAgICAgICogd29ya2Vycy9Xb3JrZXJFdmVudFF1ZXVlLmNwcDoKKyAgICAgICAg
KFdlYkNvcmU6OldvcmtlckV2ZW50UXVldWU6OkV2ZW50RGlzcGF0Y2hlcjo6ZGlzcGF0Y2gpOgor
ICAgICAgICAoV2ViQ29yZTo6V29ya2VyRXZlbnRRdWV1ZTo6RXZlbnREaXNwYXRjaGVyOjpjYW5j
ZWwpOgorICAgICAgICAqIHhtbC9YTUxIdHRwUmVxdWVzdC5jcHA6CisgICAgICAgIChXZWJDb3Jl
OjpYTUxIdHRwUmVxdWVzdDo6cmVzcG9uc2VCbG9iKToKKyAgICAgICAgKFdlYkNvcmU6OlhNTEh0
dHBSZXF1ZXN0OjpyZXNwb25zZUFycmF5QnVmZmVyKToKKyAgICAgICAgKFdlYkNvcmU6OlhNTEh0
dHBSZXF1ZXN0OjpjbGVhclJlc3BvbnNlQnVmZmVycyk6CisgICAgICAgICogeG1sL1hTTFRQcm9j
ZXNzb3IuY3BwOgorICAgICAgICAoV2ViQ29yZTo6WFNMVFByb2Nlc3Nvcjo6cmVzZXQpOgorCiAy
MDE1LTA3LTAzICBLeW91bmdhIFJhICA8a3lvdW5nYUBhbHRpY2FzdC5jb20+CiAKICAgICAgICAg
TWVtb3J5IGxlYWsgZm9yIGEgcHJvdGVjdGVkIEVsZW1lbnQgaGF2aW5nIHBlbmRpbmcgZXZlbnRz
IGluIEltYWdlTG9hZGVyLiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvQ2hhbmdlTG9nIGIv
U291cmNlL1dlYktpdC9DaGFuZ2VMb2cKaW5kZXggMDU2ZmZmMjlmZGQ5YjRmNThjMGNkYjllZDRi
N2QxYmE1YTEzZjE2OC4uN2FlMzBjYTQzZDU1NWJjNjFlNDAwNGY4ZjExOGY1YzFiM2YxZGY2OSAx
MDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9DaGFuZ2VMb2cKKysrIGIvU291cmNlL1dlYktpdC9D
aGFuZ2VMb2cKQEAgLTEsMyArMSwxMiBAQAorMjAxNS0wNy0wMyAgQ2hyaXMgRHVtZXogIDxjZHVt
ZXpAYXBwbGUuY29tPgorCisgICAgICAgIERyb3AgUmVmUHRyOjpjbGVhcigpIG1ldGhvZAorICAg
ICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTQ2NTU2CisKKyAg
ICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgRHJvcCBSZWZQdHI6
OmNsZWFyKCkgbWV0aG9kIGluIGZhdm9yIG9mICI9IG51bGxwdHI7IiBwYXR0ZXJuLgorCiAyMDE1
LTA3LTAxICBBbGV4IENocmlzdGVuc2VuICA8YWNocmlzdGVuc2VuQHdlYmtpdC5vcmc+CiAKICAg
ICAgICAgUmUtZW5hYmxlIFdlYkdMIG9uIFdpbkNhaXJvLgpkaWZmIC0tZ2l0IGEvU291cmNlL1dl
YktpdC9tYWMvQ2hhbmdlTG9nIGIvU291cmNlL1dlYktpdC9tYWMvQ2hhbmdlTG9nCmluZGV4IDAw
YTRlN2FlYmFkMzU4NTZhMzcyN2UxYTgwOWE2ZGE3M2Y4MDMyNmUuLjdjNjcwNjBmZDUzMTQyMDI3
MTg4MzQyMDEwMGE0MTg5NGI3Njc0MGEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvbWFjL0No
YW5nZUxvZworKysgYi9Tb3VyY2UvV2ViS2l0L21hYy9DaGFuZ2VMb2cKQEAgLTEsMyArMSwxMiBA
QAorMjAxNS0wNy0wMyAgQ2hyaXMgRHVtZXogIDxjZHVtZXpAYXBwbGUuY29tPgorCisgICAgICAg
IERyb3AgUmVmUHRyOjpjbGVhcigpIG1ldGhvZAorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0
Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTQ2NTU2CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZ
IChPT1BTISkuCisKKyAgICAgICAgRHJvcCBSZWZQdHI6OmNsZWFyKCkgbWV0aG9kIGluIGZhdm9y
IG9mICI9IG51bGxwdHI7IiBwYXR0ZXJuLgorCiAyMDE1LTA3LTAyICBUaW1vdGh5IEhvcnRvbiAg
PHRpbW90aHlfaG9ydG9uQGFwcGxlLmNvbT4KIAogICAgICAgICBGaXggdGhlIGJ1aWxkLgpkaWZm
IC0tZ2l0IGEvU291cmNlL1dlYktpdC93aW4vQ2hhbmdlTG9nIGIvU291cmNlL1dlYktpdC93aW4v
Q2hhbmdlTG9nCmluZGV4IDExNDI4NThhYzk0YjU2NmM0YjBmYzM5YmI4NWNkNGViMDdkOTllZmQu
LjU2MmExMmJmNDU4MjExMjdhNmIxODliNGRlNWM2NjNmNjZiN2Y5ZTYgMTAwNjQ0Ci0tLSBhL1Nv
dXJjZS9XZWJLaXQvd2luL0NoYW5nZUxvZworKysgYi9Tb3VyY2UvV2ViS2l0L3dpbi9DaGFuZ2VM
b2cKQEAgLTEsMyArMSwxMiBAQAorMjAxNS0wNy0wMyAgQ2hyaXMgRHVtZXogIDxjZHVtZXpAYXBw
bGUuY29tPgorCisgICAgICAgIERyb3AgUmVmUHRyOjpjbGVhcigpIG1ldGhvZAorICAgICAgICBo
dHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTQ2NTU2CisKKyAgICAgICAg
UmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgRHJvcCBSZWZQdHI6OmNsZWFy
KCkgbWV0aG9kIGluIGZhdm9yIG9mICI9IG51bGxwdHI7IiBwYXR0ZXJuLgorCiAyMDE1LTA2LTMw
ICBTaW1vbiBGcmFzZXIgIDxzaW1vbi5mcmFzZXJAYXBwbGUuY29tPgogCiAgICAgICAgIEZpeCBN
YWMgYW5kIFdpbmRvd3MgYnVpbGRzLgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdDIvQ2hhbmdl
TG9nIGIvU291cmNlL1dlYktpdDIvQ2hhbmdlTG9nCmluZGV4IGNjZjdiOGUxMGY1MTRiMjhiM2Zh
Y2NkZTNlMWU1ZWRkNzgwYmI4Y2EuLjdhMjFlNWUxMzQzZjM3MDk0Y2Y2ZDkwNDhkMmYzNjk2OWMx
MWI0Y2UgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQyL0NoYW5nZUxvZworKysgYi9Tb3VyY2Uv
V2ViS2l0Mi9DaGFuZ2VMb2cKQEAgLTEsMyArMSwxMiBAQAorMjAxNS0wNy0wMyAgQ2hyaXMgRHVt
ZXogIDxjZHVtZXpAYXBwbGUuY29tPgorCisgICAgICAgIERyb3AgUmVmUHRyOjpjbGVhcigpIG1l
dGhvZAorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTQ2
NTU2CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgRHJv
cCBSZWZQdHI6OmNsZWFyKCkgbWV0aG9kIGluIGZhdm9yIG9mICI9IG51bGxwdHI7IiBwYXR0ZXJu
LiAgICAgICAgCisKIDIwMTUtMDctMDMgIENhcmxvcyBHYXJjaWEgQ2FtcG9zICA8Y2dhcmNpYUBp
Z2FsaWEuY29tPgogCiAgICAgICAgIFJFR1JFU1NJT04ocjE4NjAyNSk6IFtTT1VQXSBOZXR3b3Jr
Q2FjaGUgZ2V0cyBibG9ja2VkIGluIHRyYXZlcnNlIHNpbmNlIHIxODYwMjUKZGlmZiAtLWdpdCBh
L1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9BUEkvSlNWYWx1ZVJlZi5jcHAgYi9Tb3VyY2UvSmF2YVNj
cmlwdENvcmUvQVBJL0pTVmFsdWVSZWYuY3BwCmluZGV4IDc1OWE2NWE5YzdkZTNjNTY2MTlhYjQ3
NDU0ODM0ODY4OGRjYzQ3YzEuLjU0NDA1ZTJhZjU5N2MyNDgyMzZkZWY3NjllOGJiYzYwMjg5Nzlk
MjYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9BUEkvSlNWYWx1ZVJlZi5jcHAK
KysrIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL0FQSS9KU1ZhbHVlUmVmLmNwcApAQCAtNDIyLDcg
KzQyMiw3IEBAIEpTU3RyaW5nUmVmIEpTVmFsdWVUb1N0cmluZ0NvcHkoSlNDb250ZXh0UmVmIGN0
eCwgSlNWYWx1ZVJlZiB2YWx1ZSwgSlNWYWx1ZVJlZioKICAgICAKICAgICBSZWZQdHI8T3BhcXVl
SlNTdHJpbmc+IHN0cmluZ1JlZihPcGFxdWVKU1N0cmluZzo6Y3JlYXRlKGpzVmFsdWUudG9TdHJp
bmcoZXhlYyktPnZhbHVlKGV4ZWMpKSk7CiAgICAgaWYgKGhhbmRsZUV4Y2VwdGlvbklmTmVlZGVk
KGV4ZWMsIGV4Y2VwdGlvbikgPT0gRXhjZXB0aW9uU3RhdHVzOjpEaWRUaHJvdykKLSAgICAgICAg
c3RyaW5nUmVmLmNsZWFyKCk7CisgICAgICAgIHN0cmluZ1JlZiA9IG51bGxwdHI7CiAgICAgcmV0
dXJuIHN0cmluZ1JlZi5yZWxlYXNlKCkubGVha1JlZigpOwogfQogCmRpZmYgLS1naXQgYS9Tb3Vy
Y2UvSmF2YVNjcmlwdENvcmUvYnl0ZWNvZGUvQ2FsbExpbmtJbmZvLmNwcCBiL1NvdXJjZS9KYXZh
U2NyaXB0Q29yZS9ieXRlY29kZS9DYWxsTGlua0luZm8uY3BwCmluZGV4IDcyYTBjMjQxZGZjY2Qx
NjVkOTAzMGQ1ZmE4NGVmYjY4ZjgxZjRiMzguLmQ5MjAwOTg3NGE5Mzg1Nzc3MmM0MzY2ZjRkMDA5
YjU0NmEzM2I5YWMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ieXRlY29kZS9D
YWxsTGlua0luZm8uY3BwCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ieXRlY29kZS9DYWxs
TGlua0luZm8uY3BwCkBAIC00Myw3ICs0Myw3IEBAIHZvaWQgQ2FsbExpbmtJbmZvOjpjbGVhclN0
dWIoKQogICAgICAgICByZXR1cm47CiAKICAgICBtX3N0dWItPmNsZWFyQ2FsbE5vZGVzRm9yKHRo
aXMpOwotICAgIG1fc3R1Yi5jbGVhcigpOworICAgIG1fc3R1YiA9IG51bGxwdHI7CiB9CiAKIHZv
aWQgQ2FsbExpbmtJbmZvOjp1bmxpbmsoUmVwYXRjaEJ1ZmZlciYgcmVwYXRjaEJ1ZmZlcikKZGlm
ZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ieXRlY29kZS9TdHJ1Y3R1cmVTdHViSW5m
by5oIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL2J5dGVjb2RlL1N0cnVjdHVyZVN0dWJJbmZvLmgK
aW5kZXggZWM4Yjc5YzFmMjg1MjViYjQ4NDk1ZGQxYmVjNmYxOWYxNjI1NzRlZi4uZDQwMmFjZWU1
NzkzYmI0Zjc4NjY5NTE3MTY0MTQ4ZThhN2EyNzFjOCAxMDA2NDQKLS0tIGEvU291cmNlL0phdmFT
Y3JpcHRDb3JlL2J5dGVjb2RlL1N0cnVjdHVyZVN0dWJJbmZvLmgKKysrIGIvU291cmNlL0phdmFT
Y3JpcHRDb3JlL2J5dGVjb2RlL1N0cnVjdHVyZVN0dWJJbmZvLmgKQEAgLTE0OSw4ICsxNDksOCBA
QCBzdHJ1Y3QgU3RydWN0dXJlU3R1YkluZm8gewogICAgIHsKICAgICAgICAgZGVyZWYoKTsKICAg
ICAgICAgYWNjZXNzVHlwZSA9IGFjY2Vzc191bnNldDsKLSAgICAgICAgc3R1YlJvdXRpbmUuY2xl
YXIoKTsKLSAgICAgICAgd2F0Y2hwb2ludHMuY2xlYXIoKTsKKyAgICAgICAgc3R1YlJvdXRpbmUg
PSBudWxscHRyOworICAgICAgICB3YXRjaHBvaW50cyA9IG51bGxwdHI7CiAgICAgfQogCiAgICAg
dm9pZCBkZXJlZigpOwpkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL2RlYnVnZ2Vy
L0RlYnVnZ2VyLmNwcCBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9kZWJ1Z2dlci9EZWJ1Z2dlci5j
cHAKaW5kZXggNTc0MTA2OTJlMDA4MDA3Nzk3OGIzN2ViMTY3NzAzMjMzNWM0YjRjMi4uYmMxYjU3
ZTU5M2E3OTkzMDcxMjg5MmRlNjUwOTMxMDZhM2FhNDdkMSAxMDA2NDQKLS0tIGEvU291cmNlL0ph
dmFTY3JpcHRDb3JlL2RlYnVnZ2VyL0RlYnVnZ2VyLmNwcAorKysgYi9Tb3VyY2UvSmF2YVNjcmlw
dENvcmUvZGVidWdnZXIvRGVidWdnZXIuY3BwCkBAIC0xMTcsNyArMTE3LDcgQEAgcHVibGljOgog
ICAgIHsKICAgICAgICAgaWYgKG1fZGVidWdnZXIubV9jdXJyZW50RGVidWdnZXJDYWxsRnJhbWUp
IHsKICAgICAgICAgICAgIG1fZGVidWdnZXIubV9jdXJyZW50RGVidWdnZXJDYWxsRnJhbWUtPmlu
dmFsaWRhdGUoKTsKLSAgICAgICAgICAgIG1fZGVidWdnZXIubV9jdXJyZW50RGVidWdnZXJDYWxs
RnJhbWUgPSAwOworICAgICAgICAgICAgbV9kZWJ1Z2dlci5tX2N1cnJlbnREZWJ1Z2dlckNhbGxG
cmFtZSA9IG51bGxwdHI7CiAgICAgICAgIH0KICAgICB9CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9K
YXZhU2NyaXB0Q29yZS9kZmcvREZHR3JhcGguaCBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9kZmcv
REZHR3JhcGguaAppbmRleCBiYWM1MzhmMDI1ZDNlY2UxMzdiZTMxNzgwNjg4MTVkOTUzN2M5NWE4
Li43ZjY3OTQ2ZThkYzc5OGI5ZTc5NmU5ZjI4NzMyMmVkNWQxYmFmMmUwIDEwMDY0NAotLS0gYS9T
b3VyY2UvSmF2YVNjcmlwdENvcmUvZGZnL0RGR0dyYXBoLmgKKysrIGIvU291cmNlL0phdmFTY3Jp
cHRDb3JlL2RmZy9ERkdHcmFwaC5oCkBAIC00NDMsNyArNDQzLDcgQEAgcHVibGljOgogICAgIAog
ICAgIHZvaWQga2lsbEJsb2NrKEJsb2NrSW5kZXggYmxvY2tJbmRleCkKICAgICB7Ci0gICAgICAg
IG1fYmxvY2tzW2Jsb2NrSW5kZXhdLmNsZWFyKCk7CisgICAgICAgIG1fYmxvY2tzW2Jsb2NrSW5k
ZXhdID0gbnVsbHB0cjsKICAgICB9CiAgICAgCiAgICAgdm9pZCBraWxsQmxvY2soQmFzaWNCbG9j
ayogYmFzaWNCbG9jaykKZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9kZmcvREZH
T3BlcmF0aW9ucy5jcHAgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvZGZnL0RGR09wZXJhdGlvbnMu
Y3BwCmluZGV4IGE5OWEzZmExMDIwMThjYmU4NGU0ZDEzNzQ1MGQ3MjUwZDQ4N2VlMDguLjZmOTUx
MmJhNTM0YzQ5MGQ0YmY5OThhZjVkMDgyNDQxMmRiYjkxNGUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9K
YXZhU2NyaXB0Q29yZS9kZmcvREZHT3BlcmF0aW9ucy5jcHAKKysrIGIvU291cmNlL0phdmFTY3Jp
cHRDb3JlL2RmZy9ERkdPcGVyYXRpb25zLmNwcApAQCAtMTQ0Nyw3ICsxNDQ3LDcgQEAgY2hhciog
SklUX09QRVJBVElPTiB0cmlnZ2VyT1NSRW50cnlOb3coCiAgICAgICAgIAogICAgICAgICAvLyBP
U1IgZW50cnkgZmFpbGVkLiBPaCBubyEgVGhpcyBpbXBsaWVzIHRoYXQgd2UgbmVlZCB0byByZXRy
eS4gV2UgcmV0cnkKICAgICAgICAgLy8gd2l0aG91dCBleHBvbmVudGlhbCBiYWNrb2ZmIGFuZCB3
ZSBvbmx5IGRvIHRoaXMgZm9yIHRoZSBlbnRyeSBjb2RlIGJsb2NrLgotICAgICAgICBqaXRDb2Rl
LT5vc3JFbnRyeUJsb2NrLmNsZWFyKCk7CisgICAgICAgIGppdENvZGUtPm9zckVudHJ5QmxvY2sg
PSBudWxscHRyOwogICAgICAgICBqaXRDb2RlLT5vc3JFbnRyeVJldHJ5ID0gMDsKICAgICAgICAg
cmV0dXJuIDA7CiAgICAgfQpkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL2luc3Bl
Y3Rvci9Db25zb2xlTWVzc2FnZS5jcHAgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvaW5zcGVjdG9y
L0NvbnNvbGVNZXNzYWdlLmNwcAppbmRleCBhMDRhOTdkYzNiNDUxNDg1Njc3NjRmNGQyOGQwZjNi
MmMzOGQxZTA2Li45YWMwZGRlZTJkYzkwYmFmODE4ZmFlM2EyZDQxNmRkNThhYTkxNDQ1IDEwMDY0
NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvaW5zcGVjdG9yL0NvbnNvbGVNZXNzYWdlLmNw
cAorKysgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvaW5zcGVjdG9yL0NvbnNvbGVNZXNzYWdlLmNw
cApAQCAtMjczLDcgKzI3Myw3IEBAIHZvaWQgQ29uc29sZU1lc3NhZ2U6OmNsZWFyKCkKICAgICAg
ICAgbV9tZXNzYWdlID0gQVNDSUlMaXRlcmFsKCI8bWVzc2FnZSBjb2xsZWN0ZWQ+Iik7CiAKICAg
ICBpZiAobV9hcmd1bWVudHMpCi0gICAgICAgIG1fYXJndW1lbnRzLmNsZWFyKCk7CisgICAgICAg
IG1fYXJndW1lbnRzID0gbnVsbHB0cjsKIH0KIAogSlNDOjpFeGVjU3RhdGUqIENvbnNvbGVNZXNz
YWdlOjpzY3JpcHRTdGF0ZSgpIGNvbnN0CmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENv
cmUvaW5zcGVjdG9yL0pTR2xvYmFsT2JqZWN0SW5zcGVjdG9yQ29udHJvbGxlci5jcHAgYi9Tb3Vy
Y2UvSmF2YVNjcmlwdENvcmUvaW5zcGVjdG9yL0pTR2xvYmFsT2JqZWN0SW5zcGVjdG9yQ29udHJv
bGxlci5jcHAKaW5kZXggNTdmNTJjNTU1NDdhNjM4ODc5YzgyZjQwYjY4ZWMzZDIyYjMyYTAzOS4u
MTFkODZlZDMyOTc1MDMxNzM3MTZhODVkOTM1ODA4ZmM2NzdiNWQ0OCAxMDA2NDQKLS0tIGEvU291
cmNlL0phdmFTY3JpcHRDb3JlL2luc3BlY3Rvci9KU0dsb2JhbE9iamVjdEluc3BlY3RvckNvbnRy
b2xsZXIuY3BwCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9pbnNwZWN0b3IvSlNHbG9iYWxP
YmplY3RJbnNwZWN0b3JDb250cm9sbGVyLmNwcApAQCAtMTMxLDcgKzEzMSw3IEBAIHZvaWQgSlNH
bG9iYWxPYmplY3RJbnNwZWN0b3JDb250cm9sbGVyOjpkaXNjb25uZWN0RnJvbnRlbmQoRGlzY29u
bmVjdFJlYXNvbiByZWFzCiAgICAgbV9hZ2VudHMud2lsbERlc3Ryb3lGcm9udGVuZEFuZEJhY2tl
bmQocmVhc29uKTsKIAogICAgIG1fYmFja2VuZERpc3BhdGNoZXItPmNsZWFyRnJvbnRlbmQoKTsK
LSAgICBtX2JhY2tlbmREaXNwYXRjaGVyLmNsZWFyKCk7CisgICAgbV9iYWNrZW5kRGlzcGF0Y2hl
ciA9IG51bGxwdHI7CiAgICAgbV9mcm9udGVuZENoYW5uZWwgPSBudWxscHRyOwogCiAgICAgbV9p
c0F1dG9tYXRpY0luc3BlY3Rpb24gPSBmYWxzZTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2Ny
aXB0Q29yZS9pbnNwZWN0b3IvYWdlbnRzL0luc3BlY3RvckFnZW50LmNwcCBiL1NvdXJjZS9KYXZh
U2NyaXB0Q29yZS9pbnNwZWN0b3IvYWdlbnRzL0luc3BlY3RvckFnZW50LmNwcAppbmRleCBiZjI0
MWJhNzc4MmQ5YzA5Y2E2ZGFkMzYwOTJiODIxYTcyYTgzOGFhLi4wNTM4NjkwMWU2MWU3ZmJjZGVj
ZTBiYzE1MjkwZDlmNWJhY2UwMTg4IDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUv
aW5zcGVjdG9yL2FnZW50cy9JbnNwZWN0b3JBZ2VudC5jcHAKKysrIGIvU291cmNlL0phdmFTY3Jp
cHRDb3JlL2luc3BlY3Rvci9hZ2VudHMvSW5zcGVjdG9yQWdlbnQuY3BwCkBAIC01Nyw3ICs1Nyw3
IEBAIHZvaWQgSW5zcGVjdG9yQWdlbnQ6OmRpZENyZWF0ZUZyb250ZW5kQW5kQmFja2VuZChGcm9u
dGVuZENoYW5uZWwqIGZyb250ZW5kQ2hhbm5lCiB2b2lkIEluc3BlY3RvckFnZW50Ojp3aWxsRGVz
dHJveUZyb250ZW5kQW5kQmFja2VuZChEaXNjb25uZWN0UmVhc29uKQogewogICAgIG1fZnJvbnRl
bmREaXNwYXRjaGVyID0gbnVsbHB0cjsKLSAgICBtX2JhY2tlbmREaXNwYXRjaGVyLmNsZWFyKCk7
CisgICAgbV9iYWNrZW5kRGlzcGF0Y2hlciA9IG51bGxwdHI7CiAKICAgICBtX3BlbmRpbmdFdmFs
dWF0ZVRlc3RDb21tYW5kcy5jbGVhcigpOwogCmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlw
dENvcmUvaW5zcGVjdG9yL2FnZW50cy9JbnNwZWN0b3JDb25zb2xlQWdlbnQuY3BwIGIvU291cmNl
L0phdmFTY3JpcHRDb3JlL2luc3BlY3Rvci9hZ2VudHMvSW5zcGVjdG9yQ29uc29sZUFnZW50LmNw
cAppbmRleCA4MTRhMGMxMWNmNjA4ZWM2OTg5OWNlYmYxYmFjMTRlYWJjMTliYWQ2Li45ZmZkMDQ4
NGYyODA2MmMyOWJjYWRiNGI5YjlkMzcwYjFmNzExMzdmIDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2
YVNjcmlwdENvcmUvaW5zcGVjdG9yL2FnZW50cy9JbnNwZWN0b3JDb25zb2xlQWdlbnQuY3BwCisr
KyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9pbnNwZWN0b3IvYWdlbnRzL0luc3BlY3RvckNvbnNv
bGVBZ2VudC5jcHAKQEAgLTY0LDcgKzY0LDcgQEAgdm9pZCBJbnNwZWN0b3JDb25zb2xlQWdlbnQ6
OmRpZENyZWF0ZUZyb250ZW5kQW5kQmFja2VuZChGcm9udGVuZENoYW5uZWwqIGZyb250ZW4KIHZv
aWQgSW5zcGVjdG9yQ29uc29sZUFnZW50Ojp3aWxsRGVzdHJveUZyb250ZW5kQW5kQmFja2VuZChE
aXNjb25uZWN0UmVhc29uKQogewogICAgIG1fZnJvbnRlbmREaXNwYXRjaGVyID0gbnVsbHB0cjsK
LSAgICBtX2JhY2tlbmREaXNwYXRjaGVyLmNsZWFyKCk7CisgICAgbV9iYWNrZW5kRGlzcGF0Y2hl
ciA9IG51bGxwdHI7CiAKICAgICBTdHJpbmcgZXJyb3JTdHJpbmc7CiAgICAgZGlzYWJsZShlcnJv
clN0cmluZyk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvaW5zcGVjdG9yL2Fn
ZW50cy9JbnNwZWN0b3JEZWJ1Z2dlckFnZW50LmNwcCBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9p
bnNwZWN0b3IvYWdlbnRzL0luc3BlY3RvckRlYnVnZ2VyQWdlbnQuY3BwCmluZGV4IGE3NWUwYjJi
NmVjN2U4YzlkZGQ2NzdmZjk0ODVjOWU4ZmU5ZGJlNGQuLmYwZjBiNDhkZDRkNDdjZGUzYTBmMmE4
ODIyYzQ2MzI1ZGU1YWFiNGYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9pbnNw
ZWN0b3IvYWdlbnRzL0luc3BlY3RvckRlYnVnZ2VyQWdlbnQuY3BwCisrKyBiL1NvdXJjZS9KYXZh
U2NyaXB0Q29yZS9pbnNwZWN0b3IvYWdlbnRzL0luc3BlY3RvckRlYnVnZ2VyQWdlbnQuY3BwCkBA
IC03Nyw3ICs3Nyw3IEBAIHZvaWQgSW5zcGVjdG9yRGVidWdnZXJBZ2VudDo6ZGlkQ3JlYXRlRnJv
bnRlbmRBbmRCYWNrZW5kKEZyb250ZW5kQ2hhbm5lbCogZnJvbnRlCiB2b2lkIEluc3BlY3RvckRl
YnVnZ2VyQWdlbnQ6OndpbGxEZXN0cm95RnJvbnRlbmRBbmRCYWNrZW5kKERpc2Nvbm5lY3RSZWFz
b24gcmVhc29uKQogewogICAgIG1fZnJvbnRlbmREaXNwYXRjaGVyID0gbnVsbHB0cjsKLSAgICBt
X2JhY2tlbmREaXNwYXRjaGVyLmNsZWFyKCk7CisgICAgbV9iYWNrZW5kRGlzcGF0Y2hlciA9IG51
bGxwdHI7CiAKICAgICBib29sIHNraXBSZWNvbXBpbGUgPSByZWFzb24gPT0gRGlzY29ubmVjdFJl
YXNvbjo6SW5zcGVjdGVkVGFyZ2V0RGVzdHJveWVkOwogICAgIGRpc2FibGUoc2tpcFJlY29tcGls
ZSk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvaW5zcGVjdG9yL2FnZW50cy9K
U0dsb2JhbE9iamVjdFJ1bnRpbWVBZ2VudC5jcHAgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvaW5z
cGVjdG9yL2FnZW50cy9KU0dsb2JhbE9iamVjdFJ1bnRpbWVBZ2VudC5jcHAKaW5kZXggNjU4YzY3
YWIxNWY4OTUyMDVjNTViYjUyODljMGI5ZDJlNGU0MGM2MC4uNDYwNDlmNTZjNzVhZDczOThmM2M5
ZDA3NTg0NmNlN2ExYzEyODI2OCAxMDA2NDQKLS0tIGEvU291cmNlL0phdmFTY3JpcHRDb3JlL2lu
c3BlY3Rvci9hZ2VudHMvSlNHbG9iYWxPYmplY3RSdW50aW1lQWdlbnQuY3BwCisrKyBiL1NvdXJj
ZS9KYXZhU2NyaXB0Q29yZS9pbnNwZWN0b3IvYWdlbnRzL0pTR2xvYmFsT2JqZWN0UnVudGltZUFn
ZW50LmNwcApAQCAtNDksNyArNDksNyBAQCB2b2lkIEpTR2xvYmFsT2JqZWN0UnVudGltZUFnZW50
OjpkaWRDcmVhdGVGcm9udGVuZEFuZEJhY2tlbmQoRnJvbnRlbmRDaGFubmVsKiBmcgogdm9pZCBK
U0dsb2JhbE9iamVjdFJ1bnRpbWVBZ2VudDo6d2lsbERlc3Ryb3lGcm9udGVuZEFuZEJhY2tlbmQo
RGlzY29ubmVjdFJlYXNvbiByZWFzb24pCiB7CiAgICAgbV9mcm9udGVuZERpc3BhdGNoZXIgPSBu
dWxscHRyOwotICAgIG1fYmFja2VuZERpc3BhdGNoZXIuY2xlYXIoKTsKKyAgICBtX2JhY2tlbmRE
aXNwYXRjaGVyID0gbnVsbHB0cjsKIAogICAgIEluc3BlY3RvclJ1bnRpbWVBZ2VudDo6d2lsbERl
c3Ryb3lGcm9udGVuZEFuZEJhY2tlbmQocmVhc29uKTsKIH0KZGlmZiAtLWdpdCBhL1NvdXJjZS9K
YXZhU2NyaXB0Q29yZS9wYXJzZXIvUGFyc2VyLmNwcCBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9w
YXJzZXIvUGFyc2VyLmNwcAppbmRleCBkYzBmNTVmMTMyZmEwZTE4Zjg0N2E4NTRjOGNmZjU2YjBh
NjA5NDlmLi5hM2M1ZTMxMjE4YjAzOTJlZTc2MTZmZWQ2MWQ5ZDM5NTJiNGE0OGU2IDEwMDY0NAot
LS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcGFyc2VyL1BhcnNlci5jcHAKKysrIGIvU291cmNl
L0phdmFTY3JpcHRDb3JlL3BhcnNlci9QYXJzZXIuY3BwCkBAIC00OTEsNyArNDkxLDcgQEAgdGVt
cGxhdGUgPGNsYXNzIFRyZWVCdWlsZGVyPiBUcmVlRXhwcmVzc2lvbiBQYXJzZXI8TGV4ZXJUeXBl
Pjo6cGFyc2VWYXJEZWNsYXJhdGkKICAgICBKU1Rva2VuIGxhc3RJZGVudFRva2VuOyAKICAgICBk
byB7CiAgICAgICAgIGxhc3RJZGVudCA9IDA7Ci0gICAgICAgIGxhc3RQYXR0ZXJuID0gMDsKKyAg
ICAgICAgbGFzdFBhdHRlcm4gPSBUcmVlRGVzdHJ1Y3R1cmluZ1BhdHRlcm4oMCk7CiAgICAgICAg
IEpTVG9rZW5Mb2NhdGlvbiBsb2NhdGlvbih0b2tlbkxvY2F0aW9uKCkpOwogICAgICAgICBuZXh0
KCk7CiAgICAgICAgIFRyZWVFeHByZXNzaW9uIG5vZGUgPSAwOwpAQCAtODk0LDcgKzg5NCw3IEBA
IHRlbXBsYXRlIDxjbGFzcyBUcmVlQnVpbGRlcj4gVHJlZVN0YXRlbWVudCBQYXJzZXI8TGV4ZXJU
eXBlPjo6cGFyc2VGb3JTdGF0ZW1lbnQoCiAgICAgICAgICAgICBkZWNsc0VuZCA9IGxhc3RUb2tl
bkVuZFBvc2l0aW9uKCk7CiAgICAgICAgICAgICBpZiAocGF0dGVybiAmJiAobWF0Y2goSU5UT0tF
TikgfHwgKG1hdGNoKElERU5UKSAmJiAqbV90b2tlbi5tX2RhdGEuaWRlbnQgPT0gbV92bS0+cHJv
cGVydHlOYW1lcy0+b2YpKSkKICAgICAgICAgICAgICAgICBnb3RvIGVudW1lcmF0aW9uTG9vcDsK
LSAgICAgICAgICAgIHBhdHRlcm4gPSAwOworICAgICAgICAgICAgcGF0dGVybiA9IFRyZWVEZXN0
cnVjdHVyaW5nUGF0dGVybigwKTsKICAgICAgICAgICAgIHJlc3RvcmVTYXZlUG9pbnQoc2F2ZVBv
aW50KTsKICAgICAgICAgfQogICAgICAgICBtX2FsbG93c0luID0gZmFsc2U7CmRpZmYgLS1naXQg
YS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9FeGVjdXRhYmxlLmNwcCBiL1NvdXJjZS9K
YXZhU2NyaXB0Q29yZS9ydW50aW1lL0V4ZWN1dGFibGUuY3BwCmluZGV4IDZjYjA5YjAxYjM4MjVi
ODQ1NmU5NWMxYWJjOWRmZjJiODA2ZTQxMTguLjU1MjQwZmQ5MWY3YmM3ODQyZjEzZTU5MjgxZDEw
ZDIxZDg2YzRmNTAgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0V4
ZWN1dGFibGUuY3BwCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0V4ZWN1dGFi
bGUuY3BwCkBAIC01Miw4ICs1Miw4IEBAIHZvaWQgRXhlY3V0YWJsZUJhc2U6OmRlc3Ryb3koSlND
ZWxsKiBjZWxsKQogdm9pZCBFeGVjdXRhYmxlQmFzZTo6Y2xlYXJDb2RlKCkKIHsKICNpZiBFTkFC
TEUoSklUKQotICAgIG1faml0Q29kZUZvckNhbGwuY2xlYXIoKTsKLSAgICBtX2ppdENvZGVGb3JD
b25zdHJ1Y3QuY2xlYXIoKTsKKyAgICBtX2ppdENvZGVGb3JDYWxsID0gbnVsbHB0cjsKKyAgICBt
X2ppdENvZGVGb3JDb25zdHJ1Y3QgPSBudWxscHRyOwogICAgIG1faml0Q29kZUZvckNhbGxXaXRo
QXJpdHlDaGVjayA9IE1hY3JvQXNzZW1ibGVyQ29kZVB0cigpOwogICAgIG1faml0Q29kZUZvckNv
bnN0cnVjdFdpdGhBcml0eUNoZWNrID0gTWFjcm9Bc3NlbWJsZXJDb2RlUHRyKCk7CiAgICAgbV9q
aXRDb2RlRm9yQ2FsbFdpdGhBcml0eUNoZWNrQW5kUHJlc2VydmVSZWdzID0gTWFjcm9Bc3NlbWJs
ZXJDb2RlUHRyKCk7CkBAIC00NjQsNyArNDY0LDcgQEAgdm9pZCBFdmFsRXhlY3V0YWJsZTo6dW5s
aW5rQ2FsbHMoKQogCiB2b2lkIEV2YWxFeGVjdXRhYmxlOjpjbGVhckNvZGUoKQogewotICAgIG1f
ZXZhbENvZGVCbG9jay5jbGVhcigpOworICAgIG1fZXZhbENvZGVCbG9jayA9IG51bGxwdHI7CiAg
ICAgbV91bmxpbmtlZEV2YWxDb2RlQmxvY2suY2xlYXIoKTsKICAgICBCYXNlOjpjbGVhckNvZGUo
KTsKIH0KQEAgLTU0Myw3ICs1NDMsNyBAQCB2b2lkIFByb2dyYW1FeGVjdXRhYmxlOjp2aXNpdENo
aWxkcmVuKEpTQ2VsbCogY2VsbCwgU2xvdFZpc2l0b3ImIHZpc2l0b3IpCiAKIHZvaWQgUHJvZ3Jh
bUV4ZWN1dGFibGU6OmNsZWFyQ29kZSgpCiB7Ci0gICAgbV9wcm9ncmFtQ29kZUJsb2NrLmNsZWFy
KCk7CisgICAgbV9wcm9ncmFtQ29kZUJsb2NrID0gbnVsbHB0cjsKICAgICBtX3VubGlua2VkUHJv
Z3JhbUNvZGVCbG9jay5jbGVhcigpOwogICAgIEJhc2U6OmNsZWFyQ29kZSgpOwogfQpAQCAtNTg3
LDggKzU4Nyw4IEBAIHZvaWQgRnVuY3Rpb25FeGVjdXRhYmxlOjpjbGVhclVubGlua2VkQ29kZUZv
clJlY29tcGlsYXRpb24oKQogCiB2b2lkIEZ1bmN0aW9uRXhlY3V0YWJsZTo6Y2xlYXJDb2RlKCkK
IHsKLSAgICBtX2NvZGVCbG9ja0ZvckNhbGwuY2xlYXIoKTsKLSAgICBtX2NvZGVCbG9ja0ZvckNv
bnN0cnVjdC5jbGVhcigpOworICAgIG1fY29kZUJsb2NrRm9yQ2FsbCA9IG51bGxwdHI7CisgICAg
bV9jb2RlQmxvY2tGb3JDb25zdHJ1Y3QgPSBudWxscHRyOwogICAgIEJhc2U6OmNsZWFyQ29kZSgp
OwogfQogCmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9KU0xvY2su
Y3BwIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvSlNMb2NrLmNwcAppbmRleCAyZTc5
OTRjZjI3YzNjNTRkNWQ1N2MzNzAwMGRkMTgwZWM0ZGY5ZjA1Li5jMmVlMGE1NTMyYzBiNTE5MzY4
NzEwOWQ5YTMyZWM0YTE0NDVkOGJkIDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUv
cnVudGltZS9KU0xvY2suY3BwCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0pT
TG9jay5jcHAKQEAgLTczLDcgKzczLDcgQEAgdm9pZCBKU0xvY2tIb2xkZXI6OmluaXQoKQogSlNM
b2NrSG9sZGVyOjp+SlNMb2NrSG9sZGVyKCkKIHsKICAgICBSZWZQdHI8SlNMb2NrPiBhcGlMb2Nr
KCZtX3ZtLT5hcGlMb2NrKCkpOwotICAgIG1fdm0uY2xlYXIoKTsKKyAgICBtX3ZtID0gbnVsbHB0
cjsKICAgICBhcGlMb2NrLT51bmxvY2soKTsKIH0KIApkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFT
Y3JpcHRDb3JlL3J1bnRpbWUvU3RydWN0dXJlLmNwcCBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9y
dW50aW1lL1N0cnVjdHVyZS5jcHAKaW5kZXggZjc3MWI2MGJjYjY1ZGU4ZTU0YzZhNjExYzdkMjZm
ODY1OThiMDc0ZC4uMzk4NTgwNWNmNTVjODNjMWRhNjU0YTEzNWM0NTEwYzc1MDE3MGIxOSAxMDA2
NDQKLS0tIGEvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvU3RydWN0dXJlLmNwcAorKysg
Yi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9TdHJ1Y3R1cmUuY3BwCkBAIC03MzcsNyAr
NzM3LDcgQEAgdm9pZCBTdHJ1Y3R1cmU6OnBpbigpCiAgICAgQVNTRVJUKHByb3BlcnR5VGFibGUo
KSk7CiAgICAgc2V0SXNQaW5uZWRQcm9wZXJ0eVRhYmxlKHRydWUpOwogICAgIGNsZWFyUHJldmlv
dXNJRCgpOwotICAgIG1fbmFtZUluUHJldmlvdXMuY2xlYXIoKTsKKyAgICBtX25hbWVJblByZXZp
b3VzID0gbnVsbHB0cjsKIH0KIAogdm9pZCBTdHJ1Y3R1cmU6OmFsbG9jYXRlUmFyZURhdGEoVk0m
IHZtKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dURi93dGYvUmVmUHRyLmggYi9Tb3VyY2UvV1RGL3d0
Zi9SZWZQdHIuaAppbmRleCAyOTExZjBkYTkwNjJiNzZjY2QyYWQxNTQ0MGI5Y2QyNTg1ZDU4ODg2
Li43YzgzMDVlMzhlZDcyYjQ0NzdkYTVmMmUyMjc1MDc2NGE3ODNlMjY0IDEwMDY0NAotLS0gYS9T
b3VyY2UvV1RGL3d0Zi9SZWZQdHIuaAorKysgYi9Tb3VyY2UvV1RGL3d0Zi9SZWZQdHIuaApAQCAt
NjAsNyArNjAsNiBAQCBwdWJsaWM6CiAKICAgICBUKiBnZXQoKSBjb25zdCB7IHJldHVybiBtX3B0
cjsgfQogICAgIAotICAgIHZvaWQgY2xlYXIoKTsKICAgICBQYXNzUmVmUHRyPFQ+IHJlbGVhc2Uo
KSB7IFBhc3NSZWZQdHI8VD4gdG1wID0gYWRvcHRSZWYobV9wdHIpOyBtX3B0ciA9IG51bGxwdHI7
IHJldHVybiB0bXA7IH0KICAgICBSZWY8VD4gcmVsZWFzZU5vbk51bGwoKSB7IEFTU0VSVChtX3B0
cik7IFJlZjxUPiB0bXAoYWRvcHRSZWYoKm1fcHRyKSk7IG1fcHRyID0gbnVsbHB0cjsgcmV0dXJu
IHRtcDsgfQogCkBAIC03Nyw2ICs3Niw3IEBAIHB1YmxpYzoKICAgICAKICAgICBSZWZQdHImIG9w
ZXJhdG9yPShjb25zdCBSZWZQdHImKTsKICAgICBSZWZQdHImIG9wZXJhdG9yPShUKik7CisgICAg
UmVmUHRyJiBvcGVyYXRvcj0oc3RkOjpudWxscHRyX3QpOwogICAgIFJlZlB0ciYgb3BlcmF0b3I9
KGNvbnN0IFBhc3NSZWZQdHI8VD4mKTsKICAgICB0ZW1wbGF0ZTx0eXBlbmFtZSBVPiBSZWZQdHIm
IG9wZXJhdG9yPShjb25zdCBSZWZQdHI8VT4mKTsKICAgICB0ZW1wbGF0ZTx0eXBlbmFtZSBVPiBS
ZWZQdHImIG9wZXJhdG9yPShjb25zdCBQYXNzUmVmUHRyPFU+Jik7CkBAIC0xMDksMTEgKzEwOSw2
IEBAIHRlbXBsYXRlPHR5cGVuYW1lIFQ+IHRlbXBsYXRlPHR5cGVuYW1lIFU+IGlubGluZSBSZWZQ
dHI8VD46OlJlZlB0cihSZWY8VT4mJiByZWZlCiB7CiB9CiAKLXRlbXBsYXRlPHR5cGVuYW1lIFQ+
IGlubGluZSB2b2lkIFJlZlB0cjxUPjo6Y2xlYXIoKQotewotICAgIGRlcmVmSWZOb3ROdWxsKHN0
ZDo6ZXhjaGFuZ2UobV9wdHIsIG51bGxwdHIpKTsKLX0KLQogdGVtcGxhdGU8dHlwZW5hbWUgVD4K
IGlubGluZSBUKiBSZWZQdHI8VD46OmxlYWtSZWYoKQogewpAQCAtMTQxLDYgKzEzNiwxMiBAQCB0
ZW1wbGF0ZTx0eXBlbmFtZSBUPiBpbmxpbmUgUmVmUHRyPFQ+JiBSZWZQdHI8VD46Om9wZXJhdG9y
PShUKiBvcHRyKQogICAgIHJldHVybiAqdGhpczsKIH0KIAordGVtcGxhdGU8dHlwZW5hbWUgVD4g
aW5saW5lIFJlZlB0cjxUPiYgUmVmUHRyPFQ+OjpvcGVyYXRvcj0oc3RkOjpudWxscHRyX3QpCit7
CisgICAgZGVyZWZJZk5vdE51bGwoc3RkOjpleGNoYW5nZShtX3B0ciwgbnVsbHB0cikpOworICAg
IHJldHVybiAqdGhpczsKK30KKwogdGVtcGxhdGU8dHlwZW5hbWUgVD4gaW5saW5lIFJlZlB0cjxU
PiYgUmVmUHRyPFQ+OjpvcGVyYXRvcj0oY29uc3QgUGFzc1JlZlB0cjxUPiYgbykKIHsKICAgICBS
ZWZQdHIgcHRyID0gbzsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XVEYvd3RmL3RleHQvU3RyaW5nQnVp
bGRlci5oIGIvU291cmNlL1dURi93dGYvdGV4dC9TdHJpbmdCdWlsZGVyLmgKaW5kZXggYmU1YzEx
NzJjY2NiOTk4YTQxMDU4MDM0NWFmNDBjMjljYjEzNDk4ZS4uMWRjNGFjNjIyOTQwYzBhNTM0MmQ3
NmM5MjJhMzZkZDYxODJhOTFmOCAxMDA2NDQKLS0tIGEvU291cmNlL1dURi93dGYvdGV4dC9TdHJp
bmdCdWlsZGVyLmgKKysrIGIvU291cmNlL1dURi93dGYvdGV4dC9TdHJpbmdCdWlsZGVyLmgKQEAg
LTI2NCw3ICsyNjQsNyBAQCBwdWJsaWM6CiAgICAgewogICAgICAgICBtX2xlbmd0aCA9IDA7CiAg
ICAgICAgIG1fc3RyaW5nID0gU3RyaW5nKCk7Ci0gICAgICAgIG1fYnVmZmVyID0gMDsKKyAgICAg
ICAgbV9idWZmZXIgPSBudWxscHRyOwogICAgICAgICBtX2J1ZmZlckNoYXJhY3RlcnM4ID0gMDsK
ICAgICAgICAgbV9pczhCaXQgPSB0cnVlOwogICAgIH0KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJD
b3JlL01vZHVsZXMvaW5kZXhlZGRiL0lEQkN1cnNvci5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1
bGVzL2luZGV4ZWRkYi9JREJDdXJzb3IuY3BwCmluZGV4IGEyMGUxZTFhY2UyNDk5NDg0ZGY3NDU5
MTk4YTExMWUxODQyOTBlNmQuLmM0MDExZGMyNzU1NWY0OGZjZTJkNmQyZTE2NDA4ZjFkN2E3NjEz
NmYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvaW5kZXhlZGRiL0lEQkN1cnNv
ci5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9pbmRleGVkZGIvSURCQ3Vyc29yLmNw
cApAQCAtMjU5LDcgKzI1OSw3IEBAIHZvaWQgSURCQ3Vyc29yOjpjbG9zZSgpCiAgICAgbV90cmFu
c2FjdGlvbk5vdGlmaWVyLmN1cnNvckZpbmlzaGVkKCk7CiAgICAgaWYgKG1fcmVxdWVzdCkgewog
ICAgICAgICBtX3JlcXVlc3QtPmZpbmlzaEN1cnNvcigpOwotICAgICAgICBtX3JlcXVlc3QuY2xl
YXIoKTsKKyAgICAgICAgbV9yZXF1ZXN0ID0gbnVsbHB0cjsKICAgICB9CiB9CiAKZGlmZiAtLWdp
dCBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvaW5kZXhlZGRiL0lEQkRhdGFiYXNlQmFja2VuZC5j
cHAgYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL2luZGV4ZWRkYi9JREJEYXRhYmFzZUJhY2tlbmQu
Y3BwCmluZGV4IGZjMjMxMDJkZGFhOWEzNzcwOTQwZWY0ZWIwNGMxMzgwMzgzNGRjM2YuLjA5ZTRl
MjdiOGY5MDllMTc4MDliNDlkMDM0ZTNiOGM0ZTQ1ZWY1MzcgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9X
ZWJDb3JlL01vZHVsZXMvaW5kZXhlZGRiL0lEQkRhdGFiYXNlQmFja2VuZC5jcHAKKysrIGIvU291
cmNlL1dlYkNvcmUvTW9kdWxlcy9pbmRleGVkZGIvSURCRGF0YWJhc2VCYWNrZW5kLmNwcApAQCAt
MzMzLDcgKzMzMyw3IEBAIHZvaWQgSURCRGF0YWJhc2VCYWNrZW5kOjp0cmFuc2FjdGlvbkZpbmlz
aGVkKElEQlRyYW5zYWN0aW9uQmFja2VuZCogcmF3VHJhbnNhY3RpCiAgICAgbV90cmFuc2FjdGlv
bnMucmVtb3ZlKHRyYW5zYWN0aW9uLT5pZCgpKTsKICAgICBpZiAodHJhbnNhY3Rpb24tPm1vZGUo
KSA9PSBJbmRleGVkREI6OlRyYW5zYWN0aW9uTW9kZTo6VmVyc2lvbkNoYW5nZSkgewogICAgICAg
ICBBU1NFUlQodHJhbnNhY3Rpb24uZ2V0KCkgPT0gbV9ydW5uaW5nVmVyc2lvbkNoYW5nZVRyYW5z
YWN0aW9uLmdldCgpKTsKLSAgICAgICAgbV9ydW5uaW5nVmVyc2lvbkNoYW5nZVRyYW5zYWN0aW9u
LmNsZWFyKCk7CisgICAgICAgIG1fcnVubmluZ1ZlcnNpb25DaGFuZ2VUcmFuc2FjdGlvbiA9IG51
bGxwdHI7CiAgICAgfQogfQogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL2lu
ZGV4ZWRkYi9JREJPYmplY3RTdG9yZS5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL2luZGV4
ZWRkYi9JREJPYmplY3RTdG9yZS5jcHAKaW5kZXggZThiZjlkZGVmZTQ5N2I1NjNkOThmMDg1MGVh
ZThkNDg3ZWIyMjViOS4uYTZkMjgxNDJmNjIyMjIyZjk0M2Y4ZDRlMTM1YjQyNDgzMTIwMzAxOSAx
MDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9pbmRleGVkZGIvSURCT2JqZWN0U3Rv
cmUuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvaW5kZXhlZGRiL0lEQk9iamVjdFN0
b3JlLmNwcApAQCAtMzM3LDcgKzMzNyw3IEBAIHByaXZhdGU6CiAgICAgICAgICAgICAvLyBOb3cg
dGhhdCB3ZSBhcmUgZG9uZSBpbmRleGluZywgdGVsbCB0aGUgYmFja2VuZCB0byBnbwogICAgICAg
ICAgICAgLy8gYmFjayB0byBwcm9jZXNzaW5nIHRhc2tzIG9mIHR5cGUgTm9ybWFsVGFzay4KICAg
ICAgICAgICAgIG1fZGF0YWJhc2VCYWNrZW5kLT5zZXRJbmRleGVzUmVhZHkobV90cmFuc2FjdGlv
bklkLCBtX29iamVjdFN0b3JlSWQsIGluZGV4SWRzKTsKLSAgICAgICAgICAgIG1fZGF0YWJhc2VC
YWNrZW5kLmNsZWFyKCk7CisgICAgICAgICAgICBtX2RhdGFiYXNlQmFja2VuZCA9IG51bGxwdHI7
CiAgICAgICAgIH0KIAogICAgIH0KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMv
aW5kZXhlZGRiL0lEQk9wZW5EQlJlcXVlc3QuY3BwIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9p
bmRleGVkZGIvSURCT3BlbkRCUmVxdWVzdC5jcHAKaW5kZXggNjM3ODA3ZWFkOTRjYjc4YzljOWQ5
MzU4ZGVkNjcwZmZmMjAxNzdkYy4uNzE1NzliMDU5NTU2MjRlMDNmMmFlMTcyN2ZjNTA0Njc5MjUw
NDdiNCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9pbmRleGVkZGIvSURCT3Bl
bkRCUmVxdWVzdC5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9pbmRleGVkZGIvSURC
T3BlbkRCUmVxdWVzdC5jcHAKQEAgLTE0Miw3ICsxNDIsNyBAQCBib29sIElEQk9wZW5EQlJlcXVl
c3Q6OmRpc3BhdGNoRXZlbnQoUGFzc1JlZlB0cjxFdmVudD4gZXZlbnQpCiAgICAgLy8gSWYgdGhl
IGNvbm5lY3Rpb24gY2xvc2VkIGJldHdlZW4gb25VcGdyYWRlTmVlZGVkIGFuZCB0aGUgZGVsaXZl
cnkgb2YgdGhlICJzdWNjZXNzIiBldmVudCwKICAgICAvLyBhbiAiZXJyb3IiIGV2ZW50IHNob3Vs
ZCBiZSBmaXJlZCBpbnN0ZWFkLgogICAgIGlmIChldmVudC0+dHlwZSgpID09IGV2ZW50TmFtZXMo
KS5zdWNjZXNzRXZlbnQgJiYgbV9yZXN1bHQtPnR5cGUoKSA9PSBJREJBbnk6OklEQkRhdGFiYXNl
VHlwZSAmJiBtX3Jlc3VsdC0+aWRiRGF0YWJhc2UoKS0+aXNDbG9zZVBlbmRpbmcoKSkgewotICAg
ICAgICBtX3Jlc3VsdC5jbGVhcigpOworICAgICAgICBtX3Jlc3VsdCA9IG51bGxwdHI7CiAgICAg
ICAgIG9uRXJyb3IoSURCRGF0YWJhc2VFcnJvcjo6Y3JlYXRlKElEQkRhdGFiYXNlRXhjZXB0aW9u
OjpBYm9ydEVycm9yLCAiVGhlIGNvbm5lY3Rpb24gd2FzIGNsb3NlZC4iKSk7CiAgICAgICAgIHJl
dHVybiBmYWxzZTsKICAgICB9CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL2lu
ZGV4ZWRkYi9JREJSZXF1ZXN0LmNwcCBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvaW5kZXhlZGRi
L0lEQlJlcXVlc3QuY3BwCmluZGV4IDllNTAxYjRmODYyNmIwNDAxNmRlY2Q5NTg2MTZhODE1M2Zh
NjVhZWYuLjg2NGRlNTM1NzUzMTFiMDllMjg3ODRhM2RhNjVjODFmZjhhODQ1YWYgMTAwNjQ0Ci0t
LSBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvaW5kZXhlZGRiL0lEQlJlcXVlc3QuY3BwCisrKyBi
L1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvaW5kZXhlZGRiL0lEQlJlcXVlc3QuY3BwCkBAIC0xNzAs
OSArMTcwLDkgQEAgdm9pZCBJREJSZXF1ZXN0OjphYm9ydCgpCiAgICAgbV9lbnF1ZXVlZEV2ZW50
cy5jbGVhcigpOwogCiAgICAgbV9lcnJvckNvZGUgPSAwOwotICAgIG1fZXJyb3IuY2xlYXIoKTsK
KyAgICBtX2Vycm9yID0gbnVsbHB0cjsKICAgICBtX2Vycm9yTWVzc2FnZSA9IFN0cmluZygpOwot
ICAgIG1fcmVzdWx0LmNsZWFyKCk7CisgICAgbV9yZXN1bHQgPSBudWxscHRyOwogICAgIG9uRXJy
b3IoSURCRGF0YWJhc2VFcnJvcjo6Y3JlYXRlKElEQkRhdGFiYXNlRXhjZXB0aW9uOjpBYm9ydEVy
cm9yKSk7CiAgICAgbV9yZXF1ZXN0QWJvcnRlZCA9IHRydWU7CiB9CkBAIC0xOTQsMTAgKzE5NCwx
MCBAQCB2b2lkIElEQlJlcXVlc3Q6OnNldFBlbmRpbmdDdXJzb3IoUGFzc1JlZlB0cjxJREJDdXJz
b3I+IGN1cnNvcikKICAgICBBU1NFUlQoY3Vyc29yID09IGdldFJlc3VsdEN1cnNvcigpKTsKIAog
ICAgIG1fcGVuZGluZ0N1cnNvciA9IGN1cnNvcjsKLSAgICBtX3Jlc3VsdC5jbGVhcigpOworICAg
IG1fcmVzdWx0ID0gbnVsbHB0cjsKICAgICBtX3JlYWR5U3RhdGUgPSBQRU5ESU5HOwogICAgIG1f
ZXJyb3JDb2RlID0gMDsKLSAgICBtX2Vycm9yLmNsZWFyKCk7CisgICAgbV9lcnJvciA9IG51bGxw
dHI7CiAgICAgbV9lcnJvck1lc3NhZ2UgPSBTdHJpbmcoKTsKICAgICBtX3RyYW5zYWN0aW9uLT5y
ZWdpc3RlclJlcXVlc3QodGhpcyk7CiB9CkBAIC0yNTYsNyArMjU2LDcgQEAgdm9pZCBJREJSZXF1
ZXN0OjpvbkVycm9yKFBhc3NSZWZQdHI8SURCRGF0YWJhc2VFcnJvcj4gZXJyb3IpCiAgICAgbV9l
cnJvckNvZGUgPSBlcnJvci0+Y29kZSgpOwogICAgIG1fZXJyb3JNZXNzYWdlID0gZXJyb3ItPm1l
c3NhZ2UoKTsKICAgICBtX2Vycm9yID0gRE9NRXJyb3I6OmNyZWF0ZShJREJEYXRhYmFzZUV4Y2Vw
dGlvbjo6Z2V0RXJyb3JOYW1lKGVycm9yLT5pZGJDb2RlKCkpKTsKLSAgICBtX3BlbmRpbmdDdXJz
b3IuY2xlYXIoKTsKKyAgICBtX3BlbmRpbmdDdXJzb3IgPSBudWxscHRyOwogICAgIGVucXVldWVF
dmVudChFdmVudDo6Y3JlYXRlKGV2ZW50TmFtZXMoKS5lcnJvckV2ZW50LCB0cnVlLCB0cnVlKSk7
CiB9CiAKQEAgLTQwNCw3ICs0MDQsNyBAQCB2b2lkIElEQlJlcXVlc3Q6Om9uU3VjY2Vzc0ludGVy
bmFsKGNvbnN0IERlcHJlY2F0ZWQ6OlNjcmlwdFZhbHVlJiB2YWx1ZSkKICAgICBtX3Jlc3VsdCA9
IElEQkFueTo6Y3JlYXRlKHZhbHVlKTsKICAgICBpZiAobV9wZW5kaW5nQ3Vyc29yKSB7CiAgICAg
ICAgIG1fcGVuZGluZ0N1cnNvci0+Y2xvc2UoKTsKLSAgICAgICAgbV9wZW5kaW5nQ3Vyc29yLmNs
ZWFyKCk7CisgICAgICAgIG1fcGVuZGluZ0N1cnNvciA9IG51bGxwdHI7CiAgICAgfQogICAgIGVu
cXVldWVFdmVudChjcmVhdGVTdWNjZXNzRXZlbnQoKSk7CiB9CkBAIC01NTMsNyArNTUzLDcgQEAg
dm9pZCBJREJSZXF1ZXN0Ojp0cmFuc2FjdGlvbkRpZEZpbmlzaEFuZERpc3BhdGNoKCkKICAgICBB
U1NFUlQobV90cmFuc2FjdGlvbi0+aXNWZXJzaW9uQ2hhbmdlKCkpOwogICAgIEFTU0VSVChtX3Jl
YWR5U3RhdGUgPT0gRE9ORSk7CiAgICAgQVNTRVJUKHNjcmlwdEV4ZWN1dGlvbkNvbnRleHQoKSk7
Ci0gICAgbV90cmFuc2FjdGlvbi5jbGVhcigpOworICAgIG1fdHJhbnNhY3Rpb24gPSBudWxscHRy
OwogICAgIG1fcmVhZHlTdGF0ZSA9IFBFTkRJTkc7CiB9CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9X
ZWJDb3JlL01vZHVsZXMvaW5kZXhlZGRiL0lEQlRyYW5zYWN0aW9uLmNwcCBiL1NvdXJjZS9XZWJD
b3JlL01vZHVsZXMvaW5kZXhlZGRiL0lEQlRyYW5zYWN0aW9uLmNwcAppbmRleCA5OTQ4YmM3MmJi
MjUyZWFkODA0ZWQwMzcxNTNkMjQxNGVhOGIxZWE3Li42ZWMyOWZhNjc4NGM3OGU3YjA0YmEzMDRl
MjQ4NjMwNzM5MmVkODlhIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL2luZGV4
ZWRkYi9JREJUcmFuc2FjdGlvbi5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9pbmRl
eGVkZGIvSURCVHJhbnNhY3Rpb24uY3BwCkBAIC0yNDAsNyArMjQwLDcgQEAgdm9pZCBJREJUcmFu
c2FjdGlvbjo6T3BlbkN1cnNvck5vdGlmaWVyOjpjdXJzb3JGaW5pc2hlZCgpCiAgICAgaWYgKG1f
Y3Vyc29yKSB7CiAgICAgICAgIG1fdHJhbnNhY3Rpb24tPnVucmVnaXN0ZXJPcGVuQ3Vyc29yKG1f
Y3Vyc29yKTsKICAgICAgICAgbV9jdXJzb3IgPSBudWxscHRyOwotICAgICAgICBtX3RyYW5zYWN0
aW9uLmNsZWFyKCk7CisgICAgICAgIG1fdHJhbnNhY3Rpb24gPSBudWxscHRyOwogICAgIH0KIH0K
IApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9tZWRpYXNvdXJjZS9NZWRpYVNv
dXJjZS5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL21lZGlhc291cmNlL01lZGlhU291cmNl
LmNwcAppbmRleCA5MTE3MGFhNGU4MmEwMTc1ZmQyYTQwMWRhZTQ1NDk3OWU3MGJhMmI0Li5jNDBk
NmUzMDM2OWUzOTkxM2M3ZmE5NzcyYzFlZDZjZjMyNDA0ZTE5IDEwMDY0NAotLS0gYS9Tb3VyY2Uv
V2ViQ29yZS9Nb2R1bGVzL21lZGlhc291cmNlL01lZGlhU291cmNlLmNwcAorKysgYi9Tb3VyY2Uv
V2ViQ29yZS9Nb2R1bGVzL21lZGlhc291cmNlL01lZGlhU291cmNlLmNwcApAQCAtMzk0LDcgKzM5
NCw3IEBAIHZvaWQgTWVkaWFTb3VyY2U6OnNldFJlYWR5U3RhdGUoY29uc3QgQXRvbWljU3RyaW5n
JiBzdGF0ZSkKICAgICBMT0coTWVkaWFTb3VyY2UsICJNZWRpYVNvdXJjZTo6c2V0UmVhZHlTdGF0
ZSglcCkgOiAlcyAtPiAlcyIsIHRoaXMsIG9sZFN0YXRlLnN0cmluZygpLmFzY2lpKCkuZGF0YSgp
LCBzdGF0ZS5zdHJpbmcoKS5hc2NpaSgpLmRhdGEoKSk7CiAKICAgICBpZiAoc3RhdGUgPT0gY2xv
c2VkS2V5d29yZCgpKSB7Ci0gICAgICAgIG1fcHJpdmF0ZS5jbGVhcigpOworICAgICAgICBtX3By
aXZhdGUgPSBudWxscHRyOwogICAgICAgICBtX21lZGlhRWxlbWVudCA9IG51bGxwdHI7CiAgICAg
ICAgIG1fZHVyYXRpb24gPSBNZWRpYVRpbWU6OmludmFsaWRUaW1lKCk7CiAgICAgfQpAQCAtODEx
LDcgKzgxMSw3IEBAIHZvaWQgTWVkaWFTb3VyY2U6OnN0b3AoKQogICAgIG1fYXN5bmNFdmVudFF1
ZXVlLmNsb3NlKCk7CiAgICAgaWYgKCFpc0Nsb3NlZCgpKQogICAgICAgICBzZXRSZWFkeVN0YXRl
KGNsb3NlZEtleXdvcmQoKSk7Ci0gICAgbV9wcml2YXRlLmNsZWFyKCk7CisgICAgbV9wcml2YXRl
ID0gbnVsbHB0cjsKIH0KIAogYm9vbCBNZWRpYVNvdXJjZTo6Y2FuU3VzcGVuZEZvclBhZ2VDYWNo
ZSgpIGNvbnN0CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL21lZGlhc3RyZWFt
L1JUQ1Nlc3Npb25EZXNjcmlwdGlvblJlcXVlc3RJbXBsLmNwcCBiL1NvdXJjZS9XZWJDb3JlL01v
ZHVsZXMvbWVkaWFzdHJlYW0vUlRDU2Vzc2lvbkRlc2NyaXB0aW9uUmVxdWVzdEltcGwuY3BwCmlu
ZGV4IGQ3MTBkYzE4ZjVlMjNjYjZlMTMwOGRmMjhmNjU2YTY4OWJjYjA2ZDcuLjMwMTMzNGRjZDUx
MDg1ZDMyNWY1MjRmOGVkOTk0YWVjYjhlNjg0NDMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3Jl
L01vZHVsZXMvbWVkaWFzdHJlYW0vUlRDU2Vzc2lvbkRlc2NyaXB0aW9uUmVxdWVzdEltcGwuY3Bw
CisrKyBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvbWVkaWFzdHJlYW0vUlRDU2Vzc2lvbkRlc2Ny
aXB0aW9uUmVxdWVzdEltcGwuY3BwCkBAIC05Nyw4ICs5Nyw4IEBAIGJvb2wgUlRDU2Vzc2lvbkRl
c2NyaXB0aW9uUmVxdWVzdEltcGw6OmNhblN1c3BlbmRGb3JQYWdlQ2FjaGUoKSBjb25zdAogCiB2
b2lkIFJUQ1Nlc3Npb25EZXNjcmlwdGlvblJlcXVlc3RJbXBsOjpjbGVhcigpCiB7Ci0gICAgbV9z
dWNjZXNzQ2FsbGJhY2suY2xlYXIoKTsKLSAgICBtX2Vycm9yQ2FsbGJhY2suY2xlYXIoKTsKKyAg
ICBtX3N1Y2Nlc3NDYWxsYmFjayA9IG51bGxwdHI7CisgICAgbV9lcnJvckNhbGxiYWNrID0gbnVs
bHB0cjsKIH0KIAogfSAvLyBuYW1lc3BhY2UgV2ViQ29yZQpkaWZmIC0tZ2l0IGEvU291cmNlL1dl
YkNvcmUvTW9kdWxlcy9tZWRpYXN0cmVhbS9SVENTdGF0c1JlcXVlc3RJbXBsLmNwcCBiL1NvdXJj
ZS9XZWJDb3JlL01vZHVsZXMvbWVkaWFzdHJlYW0vUlRDU3RhdHNSZXF1ZXN0SW1wbC5jcHAKaW5k
ZXggZGViMTlhOWFmOTBkY2ZjNDU2MzczODY4ZTE1Zjg4MzVkZmJlNGM4Zi4uZDAwMGIxMWRmMTdm
ZWYxMDEwZTM4OTliNzcwMjFjZTc5MjAxZjdlOSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUv
TW9kdWxlcy9tZWRpYXN0cmVhbS9SVENTdGF0c1JlcXVlc3RJbXBsLmNwcAorKysgYi9Tb3VyY2Uv
V2ViQ29yZS9Nb2R1bGVzL21lZGlhc3RyZWFtL1JUQ1N0YXRzUmVxdWVzdEltcGwuY3BwCkBAIC0x
MDQsNyArMTA0LDcgQEAgYm9vbCBSVENTdGF0c1JlcXVlc3RJbXBsOjpjYW5TdXNwZW5kRm9yUGFn
ZUNhY2hlKCkgY29uc3QKIAogdm9pZCBSVENTdGF0c1JlcXVlc3RJbXBsOjpjbGVhcigpCiB7Ci0g
ICAgbV9zdWNjZXNzQ2FsbGJhY2suY2xlYXIoKTsKKyAgICBtX3N1Y2Nlc3NDYWxsYmFjayA9IG51
bGxwdHI7CiB9CiAKIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9tZWRpYXN0
cmVhbS9SVENWb2lkUmVxdWVzdEltcGwuY3BwIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9tZWRp
YXN0cmVhbS9SVENWb2lkUmVxdWVzdEltcGwuY3BwCmluZGV4IDgyZjhhMTIyZGQzMDllM2FkMGU0
Mzk0ZWM5Y2MzNWVlMDA5ZGFkMzcuLjcwNmY5MDc1OGZkYzE1ZGM5N2VmYTFhNWQzMTEyYzRlMmFi
NDlkYTYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvbWVkaWFzdHJlYW0vUlRD
Vm9pZFJlcXVlc3RJbXBsLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL21lZGlhc3Ry
ZWFtL1JUQ1ZvaWRSZXF1ZXN0SW1wbC5jcHAKQEAgLTk0LDggKzk0LDggQEAgYm9vbCBSVENWb2lk
UmVxdWVzdEltcGw6OmNhblN1c3BlbmRGb3JQYWdlQ2FjaGUoKSBjb25zdAogCiB2b2lkIFJUQ1Zv
aWRSZXF1ZXN0SW1wbDo6Y2xlYXIoKQogewotICAgIG1fc3VjY2Vzc0NhbGxiYWNrLmNsZWFyKCk7
Ci0gICAgbV9lcnJvckNhbGxiYWNrLmNsZWFyKCk7CisgICAgbV9zdWNjZXNzQ2FsbGJhY2sgPSBu
dWxscHRyOworICAgIG1fZXJyb3JDYWxsYmFjayA9IG51bGxwdHI7CiB9CiAKIH0gLy8gbmFtZXNw
YWNlIFdlYkNvcmUKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvd2ViYXVkaW8v
QXVkaW9Db250ZXh0LmNwcCBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvd2ViYXVkaW8vQXVkaW9D
b250ZXh0LmNwcAppbmRleCA1YTNkZWEwYTUwNzFkOGRhZmJjZGZlMDU1YThkMDVjZDgwMzQwZGFm
Li5mYWE5OTZiNzRjZjhiMGZiMmIwNDMyMmRiMTdiYTY2ODYzNjBjOWI5IDEwMDY0NAotLS0gYS9T
b3VyY2UvV2ViQ29yZS9Nb2R1bGVzL3dlYmF1ZGlvL0F1ZGlvQ29udGV4dC5jcHAKKysrIGIvU291
cmNlL1dlYkNvcmUvTW9kdWxlcy93ZWJhdWRpby9BdWRpb0NvbnRleHQuY3BwCkBAIC0yMzEsNyAr
MjMxLDcgQEAgdm9pZCBBdWRpb0NvbnRleHQ6OmNsZWFyKCkKIHsKICAgICAvLyBXZSBoYXZlIHRv
IHJlbGVhc2Ugb3VyIHJlZmVyZW5jZSB0byB0aGUgZGVzdGluYXRpb24gbm9kZSBiZWZvcmUgdGhl
IGNvbnRleHQgd2lsbCBldmVyIGJlIGRlbGV0ZWQgc2luY2UgdGhlIGRlc3RpbmF0aW9uIG5vZGUg
aG9sZHMgYSByZWZlcmVuY2UgdG8gdGhlIGNvbnRleHQuCiAgICAgaWYgKG1fZGVzdGluYXRpb25O
b2RlKQotICAgICAgICBtX2Rlc3RpbmF0aW9uTm9kZS5jbGVhcigpOworICAgICAgICBtX2Rlc3Rp
bmF0aW9uTm9kZSA9IG51bGxwdHI7CiAKICAgICAvLyBBdWRpbyB0aHJlYWQgaXMgZGVhZC4gTm9i
b2R5IHdpbGwgc2NoZWR1bGUgbm9kZSBkZWxldGlvbiBhY3Rpb24uIExldCdzIGRvIGl0IG91cnNl
bHZlcy4KICAgICBkbyB7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL3dlYmRh
dGFiYXNlL1NRTFRyYW5zYWN0aW9uQmFja2VuZC5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVz
L3dlYmRhdGFiYXNlL1NRTFRyYW5zYWN0aW9uQmFja2VuZC5jcHAKaW5kZXggZGEyNTRiNjU0ZjIz
NWU1YTE4MmU0ZDdmODRjMzlhMTU1ZTRlODBkNi4uZDMxMTM4MGU0NDg1ODFhZDllNDM3ZDI0NWVl
YTI5ZjZhOWY5YzA5NiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy93ZWJkYXRh
YmFzZS9TUUxUcmFuc2FjdGlvbkJhY2tlbmQuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL01vZHVs
ZXMvd2ViZGF0YWJhc2UvU1FMVHJhbnNhY3Rpb25CYWNrZW5kLmNwcApAQCAtODQ1LDcgKzg0NSw3
IEBAIHZvaWQgU1FMVHJhbnNhY3Rpb25CYWNrZW5kOjpyZWxlYXNlT3JpZ2luTG9ja0lmTmVlZGVk
KCkKIHsKICAgICBpZiAobV9vcmlnaW5Mb2NrKSB7CiAgICAgICAgIG1fb3JpZ2luTG9jay0+dW5s
b2NrKCk7Ci0gICAgICAgIG1fb3JpZ2luTG9jay5jbGVhcigpOworICAgICAgICBtX29yaWdpbkxv
Y2sgPSBudWxscHRyOwogICAgIH0KIH0KIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvTW9k
dWxlcy93ZWJzb2NrZXRzL1dvcmtlclRocmVhZGFibGVXZWJTb2NrZXRDaGFubmVsLmNwcCBiL1Nv
dXJjZS9XZWJDb3JlL01vZHVsZXMvd2Vic29ja2V0cy9Xb3JrZXJUaHJlYWRhYmxlV2ViU29ja2V0
Q2hhbm5lbC5jcHAKaW5kZXggYmNiZGFmOTRjNzAxMTdjM2QxNDM5YTg0M2VhN2NiMDMyOGMyZWU4
NS4uMzRiNjRkNzdhMGY1OGQ4YzU3ZmJjMDgyNjJhOTIzMzU1YThlZDFkNiAxMDA2NDQKLS0tIGEv
U291cmNlL1dlYkNvcmUvTW9kdWxlcy93ZWJzb2NrZXRzL1dvcmtlclRocmVhZGFibGVXZWJTb2Nr
ZXRDaGFubmVsLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL3dlYnNvY2tldHMvV29y
a2VyVGhyZWFkYWJsZVdlYlNvY2tldENoYW5uZWwuY3BwCkBAIC0xMjYsNyArMTI2LDcgQEAgdm9p
ZCBXb3JrZXJUaHJlYWRhYmxlV2ViU29ja2V0Q2hhbm5lbDo6ZmFpbChjb25zdCBTdHJpbmcmIHJl
YXNvbikKIHZvaWQgV29ya2VyVGhyZWFkYWJsZVdlYlNvY2tldENoYW5uZWw6OmRpc2Nvbm5lY3Qo
KQogewogICAgIG1fYnJpZGdlLT5kaXNjb25uZWN0KCk7Ci0gICAgbV9icmlkZ2UuY2xlYXIoKTsK
KyAgICBtX2JyaWRnZSA9IG51bGxwdHI7CiB9CiAKIHZvaWQgV29ya2VyVGhyZWFkYWJsZVdlYlNv
Y2tldENoYW5uZWw6OnN1c3BlbmQoKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvYmluZGlu
Z3MvanMvU2NyaXB0Q29udHJvbGxlci5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9qcy9T
Y3JpcHRDb250cm9sbGVyLmNwcAppbmRleCAzYWJkZDJiOWRiNWE2OWFhYzQxOGVhMTlkMjVhNDRm
NWJmNTcwOGQzLi5jNTE5OWNmZGY3OWJkZTQzY2U0ZTZmZjEwZDcwNTUxMGQ2NTQ3NTdkIDEwMDY0
NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9qcy9TY3JpcHRDb250cm9sbGVyLmNwcAor
KysgYi9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9qcy9TY3JpcHRDb250cm9sbGVyLmNwcApAQCAt
MTAyLDcgKzEwMiw3IEBAIFNjcmlwdENvbnRyb2xsZXI6On5TY3JpcHRDb250cm9sbGVyKCkKICAg
ICBpZiAobV9jYWNoZWFibGVCaW5kaW5nUm9vdE9iamVjdCkgewogICAgICAgICBKU0xvY2tIb2xk
ZXIgbG9jayhKU0RPTVdpbmRvd0Jhc2U6OmNvbW1vblZNKCkpOwogICAgICAgICBtX2NhY2hlYWJs
ZUJpbmRpbmdSb290T2JqZWN0LT5pbnZhbGlkYXRlKCk7Ci0gICAgICAgIG1fY2FjaGVhYmxlQmlu
ZGluZ1Jvb3RPYmplY3QgPSAwOworICAgICAgICBtX2NhY2hlYWJsZUJpbmRpbmdSb290T2JqZWN0
ID0gbnVsbHB0cjsKICAgICB9CiAKICAgICAvLyBJdCdzIGxpa2VseSB0aGF0IGRlc3Ryb3lpbmcg
bV93aW5kb3dTaGVsbHMgd2lsbCBjcmVhdGUgYSBsb3Qgb2YgZ2FyYmFnZS4KQEAgLTQ4OSw3ICs0
ODksNyBAQCB2b2lkIFNjcmlwdENvbnRyb2xsZXI6OmNsZWFyU2NyaXB0T2JqZWN0cygpCiAKICAg
ICBpZiAobV9iaW5kaW5nUm9vdE9iamVjdCkgewogICAgICAgICBtX2JpbmRpbmdSb290T2JqZWN0
LT5pbnZhbGlkYXRlKCk7Ci0gICAgICAgIG1fYmluZGluZ1Jvb3RPYmplY3QgPSAwOworICAgICAg
ICBtX2JpbmRpbmdSb290T2JqZWN0ID0gbnVsbHB0cjsKICAgICB9CiAKICNpZiBFTkFCTEUoTkVU
U0NBUEVfUExVR0lOX0FQSSkKQEAgLTQ5OCw3ICs0OTgsNyBAQCB2b2lkIFNjcmlwdENvbnRyb2xs
ZXI6OmNsZWFyU2NyaXB0T2JqZWN0cygpCiAgICAgICAgIC8vIHNjcmlwdCBvYmplY3QgcHJvcGVy
bHkuCiAgICAgICAgIC8vIFRoaXMgc2hvdWxkbid0IGNhdXNlIGFueSBwcm9ibGVtcyBmb3IgcGx1
Z2lucyBzaW5jZSB0aGV5IHNob3VsZCBoYXZlIGFscmVhZHkgYmVlbiBzdG9wcGVkIGFuZCBkZXN0
cm95ZWQgYXQgdGhpcyBwb2ludC4KICAgICAgICAgX05QTl9EZWFsbG9jYXRlT2JqZWN0KG1fd2lu
ZG93U2NyaXB0TlBPYmplY3QpOwotICAgICAgICBtX3dpbmRvd1NjcmlwdE5QT2JqZWN0ID0gMDsK
KyAgICAgICAgbV93aW5kb3dTY3JpcHROUE9iamVjdCA9IG51bGxwdHI7CiAgICAgfQogI2VuZGlm
CiB9CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9qcy9XZWJDb3JlSlNDbGll
bnREYXRhLmggYi9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9qcy9XZWJDb3JlSlNDbGllbnREYXRh
LmgKaW5kZXggNjU0NTEzMzVkM2Q4YTkyMWY1ODE2MjJjMjllNDkwMDBiOWE2MzY2Yy4uNDMwMmQ2
OGU1YzhjNmQ3ODdkNDcyNjI0MTRiY2ViOThkMjJlMDE5ZSAxMDA2NDQKLS0tIGEvU291cmNlL1dl
YkNvcmUvYmluZGluZ3MvanMvV2ViQ29yZUpTQ2xpZW50RGF0YS5oCisrKyBiL1NvdXJjZS9XZWJD
b3JlL2JpbmRpbmdzL2pzL1dlYkNvcmVKU0NsaWVudERhdGEuaApAQCAtNDQsNyArNDQsNyBAQCBw
dWJsaWM6CiAgICAgICAgIEFTU0VSVChtX3dvcmxkU2V0LmNvbnRhaW5zKG1fbm9ybWFsV29ybGQu
Z2V0KCkpKTsKICAgICAgICAgQVNTRVJUKG1fd29ybGRTZXQuc2l6ZSgpID09IDEpOwogICAgICAg
ICBBU1NFUlQobV9ub3JtYWxXb3JsZC0+aGFzT25lUmVmKCkpOwotICAgICAgICBtX25vcm1hbFdv
cmxkLmNsZWFyKCk7CisgICAgICAgIG1fbm9ybWFsV29ybGQgPSBudWxscHRyOwogICAgICAgICBB
U1NFUlQobV93b3JsZFNldC5pc0VtcHR5KCkpOwogICAgIH0KIApkaWZmIC0tZ2l0IGEvU291cmNl
L1dlYkNvcmUvYmluZGluZ3MvanMvV29ya2VyU2NyaXB0Q29udHJvbGxlci5jcHAgYi9Tb3VyY2Uv
V2ViQ29yZS9iaW5kaW5ncy9qcy9Xb3JrZXJTY3JpcHRDb250cm9sbGVyLmNwcAppbmRleCA5MGUw
ZmY1MTA4OGFhNjU0OTNkZWVjZTVjOTRmOWEwZGMwMDdjZWNhLi4yOGM5ZWYwZjI3MDNmMzIzYzYx
YzhmMjI0NTg5Y2M2OWQ2ZGQ2YmU2IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5n
cy9qcy9Xb3JrZXJTY3JpcHRDb250cm9sbGVyLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9iaW5k
aW5ncy9qcy9Xb3JrZXJTY3JpcHRDb250cm9sbGVyLmNwcApAQCAtNjIsNyArNjIsNyBAQCBXb3Jr
ZXJTY3JpcHRDb250cm9sbGVyOjp+V29ya2VyU2NyaXB0Q29udHJvbGxlcigpCiB7CiAgICAgSlNM
b2NrSG9sZGVyIGxvY2sodm0oKSk7CiAgICAgbV93b3JrZXJHbG9iYWxTY29wZVdyYXBwZXIuY2xl
YXIoKTsKLSAgICBtX3ZtLmNsZWFyKCk7CisgICAgbV92bSA9IG51bGxwdHI7CiB9CiAKIHZvaWQg
V29ya2VyU2NyaXB0Q29udHJvbGxlcjo6aW5pdFNjcmlwdCgpCmRpZmYgLS1naXQgYS9Tb3VyY2Uv
V2ViQ29yZS9icmlkZ2UvcnVudGltZV9vYmplY3QuY3BwIGIvU291cmNlL1dlYkNvcmUvYnJpZGdl
L3J1bnRpbWVfb2JqZWN0LmNwcAppbmRleCA5MWYwN2JjNTM3Y2YwZjNmMjAzMGY1ZWQ0ZmVlYzYz
MjcyNGViMjM4Li41ZDBmYTRmODEyYTlhZGZiOGYyNmE5NzUxZTg5ZDZlYmRkZWZmZDYyIDEwMDY0
NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9icmlkZ2UvcnVudGltZV9vYmplY3QuY3BwCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL2JyaWRnZS9ydW50aW1lX29iamVjdC5jcHAKQEAgLTU5LDcgKzU5LDcgQEAg
dm9pZCBSdW50aW1lT2JqZWN0OjppbnZhbGlkYXRlKCkKICAgICBBU1NFUlQobV9pbnN0YW5jZSk7
CiAgICAgaWYgKG1faW5zdGFuY2UpCiAgICAgICAgIG1faW5zdGFuY2UtPndpbGxJbnZhbGlkYXRl
UnVudGltZU9iamVjdCgpOwotICAgIG1faW5zdGFuY2UgPSAwOworICAgIG1faW5zdGFuY2UgPSBu
dWxscHRyOwogfQogCiBFbmNvZGVkSlNWYWx1ZSBSdW50aW1lT2JqZWN0OjpmYWxsYmFja09iamVj
dEdldHRlcihFeGVjU3RhdGUqIGV4ZWMsIEpTT2JqZWN0KiBzbG90QmFzZSwgRW5jb2RlZEpTVmFs
dWUsIFByb3BlcnR5TmFtZSBwcm9wZXJ0eU5hbWUpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29y
ZS9jb250ZW50ZXh0ZW5zaW9ucy9Db250ZW50RXh0ZW5zaW9uUGFyc2VyLmNwcCBiL1NvdXJjZS9X
ZWJDb3JlL2NvbnRlbnRleHRlbnNpb25zL0NvbnRlbnRFeHRlbnNpb25QYXJzZXIuY3BwCmluZGV4
IDAyMjY1MmIyZDY5Zjg5MWNlYTczOTRhMTA5ZDdmYmRmNTAxMmFiMjUuLjdiZjU2ZTdkNGIyZTY3
ODZjMzNmN2U4OTUyZmM4NTQ3Mjg4YjVmMmIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2Nv
bnRlbnRleHRlbnNpb25zL0NvbnRlbnRFeHRlbnNpb25QYXJzZXIuY3BwCisrKyBiL1NvdXJjZS9X
ZWJDb3JlL2NvbnRlbnRleHRlbnNpb25zL0NvbnRlbnRFeHRlbnNpb25QYXJzZXIuY3BwCkBAIC0y
NzcsNyArMjc3LDcgQEAgc3RkOjplcnJvcl9jb2RlIHBhcnNlUnVsZUxpc3QoY29uc3QgU3RyaW5n
JiBydWxlcywgVmVjdG9yPENvbnRlbnRFeHRlbnNpb25SdWxlPiYKICAgICBFeGVjU3RhdGUqIGV4
ZWMgPSBnbG9iYWxPYmplY3QtPmdsb2JhbEV4ZWMoKTsKICAgICBhdXRvIGVycm9yID0gbG9hZEVu
Y29kZWRSdWxlcygqZXhlYywgcnVsZXMsIHJ1bGVMaXN0KTsKIAotICAgIHZtLmNsZWFyKCk7Cisg
ICAgdm0gPSBudWxscHRyOwogCiAgICAgaWYgKGVycm9yKQogICAgICAgICByZXR1cm4gZXJyb3I7
CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9jc3MvQ1NTUGFyc2VyLmNwcCBiL1NvdXJjZS9X
ZWJDb3JlL2Nzcy9DU1NQYXJzZXIuY3BwCmluZGV4IDVlOGYwNWNlMDgxNmU3MTYwZTUzZTQ0M2Ew
YjEzZTQ0Yjg0MmY1NjcuLjljYzMwOGI0ZjgzYTA5MDlmZDMzYWQzMTA2ZjhmOTZjZDRlNTA3YTEg
MTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2Nzcy9DU1NQYXJzZXIuY3BwCisrKyBiL1NvdXJj
ZS9XZWJDb3JlL2Nzcy9DU1NQYXJzZXIuY3BwCkBAIC00NTAyLDE1ICs0NTAyLDE1IEBAIHZvaWQg
Q1NTUGFyc2VyOjpwYXJzZUZpbGxQb3NpdGlvbihDU1NQYXJzZXJWYWx1ZUxpc3QmIHZhbHVlTGlz
dCwgUmVmUHRyPENTU1ZhbHVlCiAgICAgaWYgKHZhbHVlMikKICAgICAgICAgdmFsdWVMaXN0Lm5l
eHQoKTsKICAgICBlbHNlIHsKLSAgICAgICAgdmFsdWUxLmNsZWFyKCk7CisgICAgICAgIHZhbHVl
MSA9IG51bGxwdHI7CiAgICAgICAgIHJldHVybjsKICAgICB9CiAKICAgICBSZWZQdHI8Q1NTUHJp
bWl0aXZlVmFsdWU+IHBhcnNlZFZhbHVlMSA9IGRvd25jYXN0PENTU1ByaW1pdGl2ZVZhbHVlPih2
YWx1ZTEuZ2V0KCkpOwogICAgIFJlZlB0cjxDU1NQcmltaXRpdmVWYWx1ZT4gcGFyc2VkVmFsdWUy
ID0gZG93bmNhc3Q8Q1NTUHJpbWl0aXZlVmFsdWU+KHZhbHVlMi5nZXQoKSk7CiAKLSAgICB2YWx1
ZTEuY2xlYXIoKTsKLSAgICB2YWx1ZTIuY2xlYXIoKTsKKyAgICB2YWx1ZTEgPSBudWxscHRyOwor
ICAgIHZhbHVlMiA9IG51bGxwdHI7CiAKICAgICAvLyBQZXIgQ1NTMyBzeW50YXgsIDxwb3NpdGlv
bj4gY2FuJ3QgaGF2ZSAnY2VudGVyJyBhcyBpdHMgc2Vjb25kIGtleXdvcmQgYXMgd2UgaGF2ZSBt
b3JlIGFyZ3VtZW50cyB0byBmb2xsb3cuCiAgICAgaWYgKHBhcnNlZFZhbHVlMi0+Z2V0VmFsdWVJ
RCgpID09IENTU1ZhbHVlQ2VudGVyKQpAQCAtNDU0OSw3ICs0NTQ5LDcgQEAgdm9pZCBDU1NQYXJz
ZXI6OnBhcnNlMlZhbHVlc0ZpbGxQb3NpdGlvbihDU1NQYXJzZXJWYWx1ZUxpc3QmIHZhbHVlTGlz
dCwgUmVmUHRyPEMKICAgICAgICAgICAgIHZhbHVlTGlzdC5uZXh0KCk7CiAgICAgICAgIGVsc2Ug
ewogICAgICAgICAgICAgaWYgKCFpblNob3J0aGFuZCgpKSB7Ci0gICAgICAgICAgICAgICAgdmFs
dWUxLmNsZWFyKCk7CisgICAgICAgICAgICAgICAgdmFsdWUxID0gbnVsbHB0cjsKICAgICAgICAg
ICAgICAgICByZXR1cm47CiAgICAgICAgICAgICB9CiAgICAgICAgIH0KQEAgLTc1ODcsOCArNzU4
Nyw4IEBAIHN0cnVjdCBTaGFkb3dQYXJzZUNvbnRleHQgewogICAgICAgICB9CiAKICAgICAgICAg
Ly8gTm93IHJlc2V0IGZvciB0aGUgbmV4dCBzaGFkb3cgdmFsdWUuCi0gICAgICAgIHggPSAwOwot
ICAgICAgICB5ID0gMDsKKyAgICAgICAgeCA9IG51bGxwdHI7CisgICAgICAgIHkgPSBudWxscHRy
OwogICAgICAgICBibHVyID0gbnVsbHB0cjsKICAgICAgICAgc3ByZWFkID0gbnVsbHB0cjsKICAg
ICAgICAgc3R5bGUgPSBudWxscHRyOwpAQCAtMTIxODQsNyArMTIxODQsNyBAQCBQYXNzUmVmUHRy
PENTU1J1bGVTb3VyY2VEYXRhPiBDU1NQYXJzZXI6OnBvcFJ1bGVEYXRhKCkKICAgICAgICAgcmV0
dXJuIG51bGxwdHI7CiAKICAgICBBU1NFUlQoIW1fY3VycmVudFJ1bGVEYXRhU3RhY2stPmlzRW1w
dHkoKSk7Ci0gICAgbV9jdXJyZW50UnVsZURhdGEuY2xlYXIoKTsKKyAgICBtX2N1cnJlbnRSdWxl
RGF0YSA9IG51bGxwdHI7CiAgICAgUmVmUHRyPENTU1J1bGVTb3VyY2VEYXRhPiBkYXRhID0gbV9j
dXJyZW50UnVsZURhdGFTdGFjay0+bGFzdCgpOwogICAgIG1fY3VycmVudFJ1bGVEYXRhU3RhY2st
PnJlbW92ZUxhc3QoKTsKICAgICByZXR1cm4gZGF0YS5yZWxlYXNlKCk7CkBAIC0xMjYwNSw3ICsx
MjYwNSw3IEBAIHZvaWQgQ1NTUGFyc2VyOjptYXJrUnVsZUJvZHlTdGFydCgpCiB7CiAgICAgaWYg
KCFpc0V4dHJhY3RpbmdTb3VyY2VEYXRhKCkpCiAgICAgICAgIHJldHVybjsKLSAgICBtX2N1cnJl
bnRSdWxlRGF0YS5jbGVhcigpOworICAgIG1fY3VycmVudFJ1bGVEYXRhID0gbnVsbHB0cjsKICAg
ICB1bnNpZ25lZCBvZmZzZXQgPSB0b2tlblN0YXJ0T2Zmc2V0KCk7CiAgICAgaWYgKHRva2VuU3Rh
cnRDaGFyKCkgPT0gJ3snKQogICAgICAgICArK29mZnNldDsgLy8gU2tpcCB0aGUgcnVsZSBib2R5
IG9wZW5pbmcgYnJhY2UuCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9jc3MvQ1NTVmFsdWVQ
b29sLmNwcCBiL1NvdXJjZS9XZWJDb3JlL2Nzcy9DU1NWYWx1ZVBvb2wuY3BwCmluZGV4IDFmNDEz
MTE1YTM2ZDBmNDk0M2NiNTM3YTk5NDY4OWRkYzg2ZmQ5ZDEuLmFlM2UwZmQ0YWViNjBkNmRjODg2
ZGM5MWI5YjAwNGM1ZjVjNDkxZGEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2Nzcy9DU1NW
YWx1ZVBvb2wuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2Nzcy9DU1NWYWx1ZVBvb2wuY3BwCkBA
IC0xNTMsMTIgKzE1MywxMiBAQCB2b2lkIENTU1ZhbHVlUG9vbDo6ZHJhaW4oKQogICAgIG1fZm9u
dEZhbWlseVZhbHVlQ2FjaGUuY2xlYXIoKTsKIAogICAgIGZvciAoaW50IGkgPSAwOyBpIDwgbnVt
Q1NTVmFsdWVLZXl3b3JkczsgKytpKQotICAgICAgICBtX2lkZW50aWZpZXJWYWx1ZUNhY2hlW2ld
ID0gMDsKKyAgICAgICAgbV9pZGVudGlmaWVyVmFsdWVDYWNoZVtpXSA9IG51bGxwdHI7CiAKICAg
ICBmb3IgKGludCBpID0gMDsgaSA8IG1heGltdW1DYWNoZWFibGVJbnRlZ2VyVmFsdWU7ICsraSkg
ewotICAgICAgICBtX3BpeGVsVmFsdWVDYWNoZVtpXSA9IDA7Ci0gICAgICAgIG1fcGVyY2VudFZh
bHVlQ2FjaGVbaV0gPSAwOwotICAgICAgICBtX251bWJlclZhbHVlQ2FjaGVbaV0gPSAwOworICAg
ICAgICBtX3BpeGVsVmFsdWVDYWNoZVtpXSA9IG51bGxwdHI7CisgICAgICAgIG1fcGVyY2VudFZh
bHVlQ2FjaGVbaV0gPSBudWxscHRyOworICAgICAgICBtX251bWJlclZhbHVlQ2FjaGVbaV0gPSBu
dWxscHRyOwogICAgIH0KIH0KIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvY3NzL1N0eWxl
UHJvcGVydGllcy5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9jc3MvU3R5bGVQcm9wZXJ0aWVzLmNwcApp
bmRleCBiOTA5MDhkMzFkOGUxZGJmNmE1OTRkMDQ3Nzk4OTJkZDJhYTdhMDVjLi5kZWRkMDcwMDdh
ZTVlOTVlM2E0ZTQ4ODQyMWU4OGE1YWVkMzdkMzY0IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29y
ZS9jc3MvU3R5bGVQcm9wZXJ0aWVzLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9jc3MvU3R5bGVQ
cm9wZXJ0aWVzLmNwcApAQCAtMzk3LDkgKzM5Nyw5IEBAIFN0cmluZyBTdHlsZVByb3BlcnRpZXM6
OmdldExheWVyZWRTaG9ydGhhbmRWYWx1ZShjb25zdCBTdHlsZVByb3BlcnR5U2hvcnRoYW5kJiBz
CiAgICAgICAgICAgICAgICAgICAgIC8vIENvbG9yIG9ubHkgYmVsb25ncyBpbiB0aGUgbGFzdCBs
YXllci4KICAgICAgICAgICAgICAgICAgICAgaWYgKHNob3J0aGFuZC5wcm9wZXJ0aWVzKClbal0g
PT0gQ1NTUHJvcGVydHlCYWNrZ3JvdW5kQ29sb3IpIHsKICAgICAgICAgICAgICAgICAgICAgICAg
IGlmIChpICE9IG51bUxheWVycyAtIDEpCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgdmFs
dWUgPSAwOworICAgICAgICAgICAgICAgICAgICAgICAgICAgIHZhbHVlID0gbnVsbHB0cjsKICAg
ICAgICAgICAgICAgICAgICAgfSBlbHNlIGlmIChpKSAvLyBPdGhlciBzaW5nbGV0b25zIG9ubHkg
YmVsb25nIGluIHRoZSBmaXJzdCBsYXllci4KLSAgICAgICAgICAgICAgICAgICAgICAgIHZhbHVl
ID0gMDsKKyAgICAgICAgICAgICAgICAgICAgICAgIHZhbHVlID0gbnVsbHB0cjsKICAgICAgICAg
ICAgICAgICB9CiAgICAgICAgICAgICB9CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2Nz
cy9WaWV3cG9ydFN0eWxlUmVzb2x2ZXIuY3BwIGIvU291cmNlL1dlYkNvcmUvY3NzL1ZpZXdwb3J0
U3R5bGVSZXNvbHZlci5jcHAKaW5kZXggZjg5ZWZmMDA4NjNhYzg5ZGI3NzhkYjMyM2ZlNzg1MDE1
NjZhZGYwOS4uZGJiNmNjNGRmNDQwNDE1YTRiYzQwZTBjOWUwZGFhNmMxMmE1NjliYSAxMDA2NDQK
LS0tIGEvU291cmNlL1dlYkNvcmUvY3NzL1ZpZXdwb3J0U3R5bGVSZXNvbHZlci5jcHAKKysrIGIv
U291cmNlL1dlYkNvcmUvY3NzL1ZpZXdwb3J0U3R5bGVSZXNvbHZlci5jcHAKQEAgLTcxLDcgKzcx
LDcgQEAgdm9pZCBWaWV3cG9ydFN0eWxlUmVzb2x2ZXI6OmFkZFZpZXdwb3J0UnVsZShTdHlsZVJ1
bGVWaWV3cG9ydCogdmlld3BvcnRSdWxlKQogCiB2b2lkIFZpZXdwb3J0U3R5bGVSZXNvbHZlcjo6
Y2xlYXJEb2N1bWVudCgpCiB7Ci0gICAgbV9kb2N1bWVudCA9IDA7CisgICAgbV9kb2N1bWVudCA9
IG51bGxwdHI7CiB9CiAKIHZvaWQgVmlld3BvcnRTdHlsZVJlc29sdmVyOjpyZXNvbHZlKCkKQEAg
LTk0LDcgKzk0LDcgQEAgdm9pZCBWaWV3cG9ydFN0eWxlUmVzb2x2ZXI6OnJlc29sdmUoKQogICAg
IG1fZG9jdW1lbnQtPnNldFZpZXdwb3J0QXJndW1lbnRzKGFyZ3VtZW50cyk7CiAgICAgbV9kb2N1
bWVudC0+dXBkYXRlVmlld3BvcnRBcmd1bWVudHMoKTsKIAotICAgIG1fcHJvcGVydHlTZXQgPSAw
OworICAgIG1fcHJvcGVydHlTZXQgPSBudWxscHRyOwogfQogCiBmbG9hdCBWaWV3cG9ydFN0eWxl
UmVzb2x2ZXI6OmdldFZpZXdwb3J0QXJndW1lbnRWYWx1ZShDU1NQcm9wZXJ0eUlEIGlkKSBjb25z
dApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvZG9tL0RvY3VtZW50LmNwcCBiL1NvdXJjZS9X
ZWJDb3JlL2RvbS9Eb2N1bWVudC5jcHAKaW5kZXggZTUwMjY2OTYxMmQ3YzRjNTgyODM0YTRjMWIx
OWJiMDM4OTRlZGFmOS4uZjY0MGI3Y2ZiZGYxNDE4OWMxZTk4OGY0ZWJhZGI0ZGM1MjhhZTFiYSAx
MDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvZG9tL0RvY3VtZW50LmNwcAorKysgYi9Tb3VyY2Uv
V2ViQ29yZS9kb20vRG9jdW1lbnQuY3BwCkBAIC0yNDI0LDcgKzI0MjQsNyBAQCB2b2lkIERvY3Vt
ZW50OjpkZXRhY2hQYXJzZXIoKQogICAgIGlmICghbV9wYXJzZXIpCiAgICAgICAgIHJldHVybjsK
ICAgICBtX3BhcnNlci0+ZGV0YWNoKCk7Ci0gICAgbV9wYXJzZXIuY2xlYXIoKTsKKyAgICBtX3Bh
cnNlciA9IG51bGxwdHI7CiB9CiAKIHZvaWQgRG9jdW1lbnQ6OmNhbmNlbFBhcnNpbmcoKQpAQCAt
NTg4Miw3ICs1ODgyLDcgQEAgdm9pZCBEb2N1bWVudDo6Y2xlYXJTY3JpcHRlZEFuaW1hdGlvbkNv
bnRyb2xsZXIoKQogICAgIC8vIEZJWE1FOiBjb25zaWRlciB1c2luZyBBY3RpdmVET01PYmplY3Qu
CiAgICAgaWYgKG1fc2NyaXB0ZWRBbmltYXRpb25Db250cm9sbGVyKQogICAgICAgICBtX3Njcmlw
dGVkQW5pbWF0aW9uQ29udHJvbGxlci0+Y2xlYXJEb2N1bWVudFBvaW50ZXIoKTsKLSAgICBtX3Nj
cmlwdGVkQW5pbWF0aW9uQ29udHJvbGxlci5jbGVhcigpOworICAgIG1fc2NyaXB0ZWRBbmltYXRp
b25Db250cm9sbGVyID0gbnVsbHB0cjsKIH0KICNlbmRpZgogICAgIApAQCAtNjMwMCw3ICs2MzAw
LDcgQEAgdm9pZCBEb2N1bWVudDo6dXBkYXRlSG92ZXJBY3RpdmVTdGF0ZShjb25zdCBIaXRUZXN0
UmVxdWVzdCYgcmVxdWVzdCwgRWxlbWVudCogaW4KICAgICAgICAgICAgIGN1cnItPnNldEFjdGl2
ZShmYWxzZSk7CiAgICAgICAgICAgICBtX3VzZXJBY3Rpb25FbGVtZW50cy5zZXRJbkFjdGl2ZUNo
YWluKGN1cnIsIGZhbHNlKTsKICAgICAgICAgfQotICAgICAgICBtX2FjdGl2ZUVsZW1lbnQuY2xl
YXIoKTsKKyAgICAgICAgbV9hY3RpdmVFbGVtZW50ID0gbnVsbHB0cjsKICAgICB9IGVsc2Ugewog
ICAgICAgICBFbGVtZW50KiBuZXdBY3RpdmVFbGVtZW50ID0gaW5uZXJFbGVtZW50SW5Eb2N1bWVu
dDsKICAgICAgICAgaWYgKCFvbGRBY3RpdmVFbGVtZW50ICYmIG5ld0FjdGl2ZUVsZW1lbnQgJiYg
cmVxdWVzdC5hY3RpdmUoKSAmJiAhcmVxdWVzdC50b3VjaE1vdmUoKSkgewpkaWZmIC0tZ2l0IGEv
U291cmNlL1dlYkNvcmUvZG9tL0RvY3VtZW50TWFya2VyLmggYi9Tb3VyY2UvV2ViQ29yZS9kb20v
RG9jdW1lbnRNYXJrZXIuaAppbmRleCA0Nzk0OWZlODBiZGQ5YjExZTY4ZGFlNjI1NmVhMmIzMzA2
ZmJiNDYzLi5lYzUyNDg5NDBjMTY3ZWQxYzZjYTAyYjMxZGM0ZTQ3Mzc5YTU1NDE5IDEwMDY0NAot
LS0gYS9Tb3VyY2UvV2ViQ29yZS9kb20vRG9jdW1lbnRNYXJrZXIuaAorKysgYi9Tb3VyY2UvV2Vi
Q29yZS9kb20vRG9jdW1lbnRNYXJrZXIuaApAQCAtMTMxLDcgKzEzMSw3IEBAIHB1YmxpYzoKICAg
ICBEb2N1bWVudE1hcmtlckRldGFpbHMqIGRldGFpbHMoKSBjb25zdDsKIAogICAgIHZvaWQgc2V0
QWN0aXZlTWF0Y2goYm9vbCk7Ci0gICAgdm9pZCBjbGVhckRldGFpbHMoKSB7IG1fZGV0YWlscy5j
bGVhcigpOyB9CisgICAgdm9pZCBjbGVhckRldGFpbHMoKSB7IG1fZGV0YWlscyA9IG51bGxwdHI7
IH0KIAogICAgIC8vIE9mZnNldCBtb2RpZmljYXRpb25zIGFyZSBkb25lIGJ5IERvY3VtZW50TWFy
a2VyQ29udHJvbGxlci4KICAgICAvLyBPdGhlciBjbGFzc2VzIHNob3VsZCBub3QgY2FsbCBmb2xs
b3dpbmcgc2V0dGVycy4KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2RvbS9Eb2N1bWVudFN0
eWxlU2hlZXRDb2xsZWN0aW9uLmNwcCBiL1NvdXJjZS9XZWJDb3JlL2RvbS9Eb2N1bWVudFN0eWxl
U2hlZXRDb2xsZWN0aW9uLmNwcAppbmRleCAxY2JiZTg1MTU1MjVlMGExNTMyYzIyODM2ZjBlN2Iz
YWEzYmVkZWJhLi4zMjJhYzg0YmQzMWI2ZWMyZDAzMmQxOWJmYzJhY2JmMzkzM2ZiNGE0IDEwMDY0
NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9kb20vRG9jdW1lbnRTdHlsZVNoZWV0Q29sbGVjdGlvbi5j
cHAKKysrIGIvU291cmNlL1dlYkNvcmUvZG9tL0RvY3VtZW50U3R5bGVTaGVldENvbGxlY3Rpb24u
Y3BwCkBAIC0xMDQsNyArMTA0LDcgQEAgQ1NTU3R5bGVTaGVldCogRG9jdW1lbnRTdHlsZVNoZWV0
Q29sbGVjdGlvbjo6cGFnZVVzZXJTaGVldCgpCiB2b2lkIERvY3VtZW50U3R5bGVTaGVldENvbGxl
Y3Rpb246OmNsZWFyUGFnZVVzZXJTaGVldCgpCiB7CiAgICAgaWYgKG1fcGFnZVVzZXJTaGVldCkg
ewotICAgICAgICBtX3BhZ2VVc2VyU2hlZXQgPSAwOworICAgICAgICBtX3BhZ2VVc2VyU2hlZXQg
PSBudWxscHRyOwogICAgICAgICBtX2RvY3VtZW50LnN0eWxlUmVzb2x2ZXJDaGFuZ2VkKERlZmVy
UmVjYWxjU3R5bGUpOwogICAgIH0KIH0KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2RvbS9F
bGVtZW50LmNwcCBiL1NvdXJjZS9XZWJDb3JlL2RvbS9FbGVtZW50LmNwcAppbmRleCBiZTg4NGVi
NTcxYTQwMmZiYjg3YjFlZGFmYzJkNWI0MzAyNGY4Mzk4Li42YzhjOWUxNzBiYzllYjYxYmM1N2Iw
MjAwMDk5OTBmYjMyOGIzMjk0IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9kb20vRWxlbWVu
dC5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvZG9tL0VsZW1lbnQuY3BwCkBAIC0zMjA3LDcgKzMy
MDcsNyBAQCB2b2lkIEVsZW1lbnQ6OmNsb25lQXR0cmlidXRlc0Zyb21FbGVtZW50KGNvbnN0IEVs
ZW1lbnQmIG90aGVyKQogCiAgICAgb3RoZXIuc3luY2hyb25pemVBbGxBdHRyaWJ1dGVzKCk7CiAg
ICAgaWYgKCFvdGhlci5tX2VsZW1lbnREYXRhKSB7Ci0gICAgICAgIG1fZWxlbWVudERhdGEuY2xl
YXIoKTsKKyAgICAgICAgbV9lbGVtZW50RGF0YSA9IG51bGxwdHI7CiAgICAgICAgIHJldHVybjsK
ICAgICB9CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2RvbS9NdXRhdGlvbk9ic2VydmVy
UmVnaXN0cmF0aW9uLmNwcCBiL1NvdXJjZS9XZWJDb3JlL2RvbS9NdXRhdGlvbk9ic2VydmVyUmVn
aXN0cmF0aW9uLmNwcAppbmRleCA0NGU4ZjcwZmNiNmM0ODRjYmIwMmE3OTgzN2EzMzI1YzIxNzNm
ZjE0Li43MGEzMWRlY2FjMzVmMWRlYWJmODhkMGU4YTg4NWZiN2ZhODM0MTNkIDEwMDY0NAotLS0g
YS9Tb3VyY2UvV2ViQ29yZS9kb20vTXV0YXRpb25PYnNlcnZlclJlZ2lzdHJhdGlvbi5jcHAKKysr
IGIvU291cmNlL1dlYkNvcmUvZG9tL011dGF0aW9uT2JzZXJ2ZXJSZWdpc3RyYXRpb24uY3BwCkBA
IC04OSw3ICs4OSw3IEBAIHZvaWQgTXV0YXRpb25PYnNlcnZlclJlZ2lzdHJhdGlvbjo6Y2xlYXJU
cmFuc2llbnRSZWdpc3RyYXRpb25zKCkKICAgICBtX3RyYW5zaWVudFJlZ2lzdHJhdGlvbk5vZGVz
ID0gbnVsbHB0cjsKIAogICAgIEFTU0VSVChtX3JlZ2lzdHJhdGlvbk5vZGVLZWVwQWxpdmUpOwot
ICAgIG1fcmVnaXN0cmF0aW9uTm9kZUtlZXBBbGl2ZSA9IDA7IC8vIEJhbGFuY2VkIGluIG9ic2Vy
dmVTdWJ0cmVlTm9kZVdpbGxEZXRhY2guCisgICAgbV9yZWdpc3RyYXRpb25Ob2RlS2VlcEFsaXZl
ID0gbnVsbHB0cjsgLy8gQmFsYW5jZWQgaW4gb2JzZXJ2ZVN1YnRyZWVOb2RlV2lsbERldGFjaC4K
IH0KIAogdm9pZCBNdXRhdGlvbk9ic2VydmVyUmVnaXN0cmF0aW9uOjp1bnJlZ2lzdGVyQW5kRGVs
ZXRlKE11dGF0aW9uT2JzZXJ2ZXJSZWdpc3RyYXRpb24qIHJlZ2lzdHJ5KQpkaWZmIC0tZ2l0IGEv
U291cmNlL1dlYkNvcmUvZG9tL05vZGVJdGVyYXRvci5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9kb20v
Tm9kZUl0ZXJhdG9yLmNwcAppbmRleCA1OGIyYjlmNjRjNzZlN2VjNjhhNzRmY2U2ZWVjNDU3NzY4
YzVmZmEzLi42MWFlMjhmNmY4ZTk4OTdjNGVhNjAxYjM1M2NkYTA5MWY0MjE0Y2UyIDEwMDY0NAot
LS0gYS9Tb3VyY2UvV2ViQ29yZS9kb20vTm9kZUl0ZXJhdG9yLmNwcAorKysgYi9Tb3VyY2UvV2Vi
Q29yZS9kb20vTm9kZUl0ZXJhdG9yLmNwcApAQCAtNDUsNyArNDUsNyBAQCBOb2RlSXRlcmF0b3I6
Ok5vZGVQb2ludGVyOjpOb2RlUG9pbnRlcihQYXNzUmVmUHRyPE5vZGU+IG4sIGJvb2wgYikKIAog
dm9pZCBOb2RlSXRlcmF0b3I6Ok5vZGVQb2ludGVyOjpjbGVhcigpCiB7Ci0gICAgbm9kZS5jbGVh
cigpOworICAgIG5vZGUgPSBudWxscHRyOwogfQogCiBib29sIE5vZGVJdGVyYXRvcjo6Tm9kZVBv
aW50ZXI6Om1vdmVUb05leHQoTm9kZSogcm9vdCkKQEAgLTE1MSw3ICsxNTEsNyBAQCB2b2lkIE5v
ZGVJdGVyYXRvcjo6ZGV0YWNoKCkKIHsKICAgICByb290KCktPmRvY3VtZW50KCkuZGV0YWNoTm9k
ZUl0ZXJhdG9yKHRoaXMpOwogICAgIG1fZGV0YWNoZWQgPSB0cnVlOwotICAgIG1fcmVmZXJlbmNl
Tm9kZS5ub2RlLmNsZWFyKCk7CisgICAgbV9yZWZlcmVuY2VOb2RlLm5vZGUgPSBudWxscHRyOwog
fQogCiB2b2lkIE5vZGVJdGVyYXRvcjo6bm9kZVdpbGxCZVJlbW92ZWQoTm9kZSYgcmVtb3ZlZE5v
ZGUpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9kb20vUG9zaXRpb24uaCBiL1NvdXJjZS9X
ZWJDb3JlL2RvbS9Qb3NpdGlvbi5oCmluZGV4IDBmMzE2ZGE4NTg4YTUxOTI5ZmQ0NzUxYzlmY2Iz
M2I5OTE2NzMzZWIuLjYwM2U4OGYzZWMxYjFhYzNhYTkyMjkwNWMwMTM4MTIzODQyMGRkZWIgMTAw
NjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2RvbS9Qb3NpdGlvbi5oCisrKyBiL1NvdXJjZS9XZWJD
b3JlL2RvbS9Qb3NpdGlvbi5oCkBAIC05Miw3ICs5Miw3IEBAIHB1YmxpYzoKIAogICAgIEFuY2hv
clR5cGUgYW5jaG9yVHlwZSgpIGNvbnN0IHsgcmV0dXJuIHN0YXRpY19jYXN0PEFuY2hvclR5cGU+
KG1fYW5jaG9yVHlwZSk7IH0KIAotICAgIHZvaWQgY2xlYXIoKSB7IG1fYW5jaG9yTm9kZS5jbGVh
cigpOyBtX29mZnNldCA9IDA7IG1fYW5jaG9yVHlwZSA9IFBvc2l0aW9uSXNPZmZzZXRJbkFuY2hv
cjsgbV9pc0xlZ2FjeUVkaXRpbmdQb3NpdGlvbiA9IGZhbHNlOyB9CisgICAgdm9pZCBjbGVhcigp
IHsgbV9hbmNob3JOb2RlID0gbnVsbHB0cjsgbV9vZmZzZXQgPSAwOyBtX2FuY2hvclR5cGUgPSBQ
b3NpdGlvbklzT2Zmc2V0SW5BbmNob3I7IG1faXNMZWdhY3lFZGl0aW5nUG9zaXRpb24gPSBmYWxz
ZTsgfQogCiAgICAgLy8gVGhlc2UgYXJlIGFsd2F5cyBET00gY29tcGxpYW50IHZhbHVlcy4gIEVk
aXRpbmcgcG9zaXRpb25zIGxpa2UgW2ltZywgMF0gKGFrYSBbaW1nLCBiZWZvcmVdKQogICAgIC8v
IHdpbGwgcmV0dXJuIGltZy0+cGFyZW50Tm9kZSgpIGFuZCBpbWctPmNvbXB1dGVOb2RlSW5kZXgo
KSBmcm9tIHRoZXNlIGZ1bmN0aW9ucy4KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2RvbS9Q
cm9jZXNzaW5nSW5zdHJ1Y3Rpb24uY3BwIGIvU291cmNlL1dlYkNvcmUvZG9tL1Byb2Nlc3NpbmdJ
bnN0cnVjdGlvbi5jcHAKaW5kZXggM2VjYjY0NjM5Y2ZhYmE2MGE1ZDNiNjZlMmZhZGU1MGRkY2I3
ZjFiMC4uYjM0M2NhM2EwMWFlOGVlZmRiNTk3ZTVkNGUyMmUyN2I5OTNmZWY5MCAxMDA2NDQKLS0t
IGEvU291cmNlL1dlYkNvcmUvZG9tL1Byb2Nlc3NpbmdJbnN0cnVjdGlvbi5jcHAKKysrIGIvU291
cmNlL1dlYkNvcmUvZG9tL1Byb2Nlc3NpbmdJbnN0cnVjdGlvbi5jcHAKQEAgLTI4MSw3ICsyODEs
NyBAQCB2b2lkIFByb2Nlc3NpbmdJbnN0cnVjdGlvbjo6cmVtb3ZlZEZyb20oQ29udGFpbmVyTm9k
ZSYgaW5zZXJ0aW9uUG9pbnQpCiAgICAgaWYgKG1fc2hlZXQpIHsKICAgICAgICAgQVNTRVJUKG1f
c2hlZXQtPm93bmVyTm9kZSgpID09IHRoaXMpOwogICAgICAgICBtX3NoZWV0LT5jbGVhck93bmVy
Tm9kZSgpOwotICAgICAgICBtX3NoZWV0ID0gMDsKKyAgICAgICAgbV9zaGVldCA9IG51bGxwdHI7
CiAgICAgfQogCiAgICAgLy8gSWYgd2UncmUgaW4gZG9jdW1lbnQgdGVhcmRvd24sIHRoZW4gd2Ug
ZG9uJ3QgbmVlZCB0byBkbyBhbnkgbm90aWZpY2F0aW9uIG9mIG91ciBzaGVldCdzIHJlbW92YWwu
CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9kb20vUmFuZ2VCb3VuZGFyeVBvaW50LmggYi9T
b3VyY2UvV2ViQ29yZS9kb20vUmFuZ2VCb3VuZGFyeVBvaW50LmgKaW5kZXggYjA0ZGMwOGI1NWJm
MDIxY2NkZGZiMjZhZWU1ZDM4NGIxMTI2YWUwMy4uNWIxNGEzZGZjMWUyZTI5ZjE0NzliZjQ2Yzlj
ZThiYWQ3ZGJlZWIxOSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvZG9tL1JhbmdlQm91bmRh
cnlQb2ludC5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL2RvbS9SYW5nZUJvdW5kYXJ5UG9pbnQuaApA
QCAtMTEyLDkgKzExMiw5IEBAIGlubGluZSBpbnQgUmFuZ2VCb3VuZGFyeVBvaW50OjpvZmZzZXQo
KSBjb25zdAogCiBpbmxpbmUgdm9pZCBSYW5nZUJvdW5kYXJ5UG9pbnQ6OmNsZWFyKCkKIHsKLSAg
ICBtX2NvbnRhaW5lck5vZGUuY2xlYXIoKTsKKyAgICBtX2NvbnRhaW5lck5vZGUgPSBudWxscHRy
OwogICAgIG1fb2Zmc2V0SW5Db250YWluZXIgPSAwOwotICAgIG1fY2hpbGRCZWZvcmVCb3VuZGFy
eSA9IDA7CisgICAgbV9jaGlsZEJlZm9yZUJvdW5kYXJ5ID0gbnVsbHB0cjsKIH0KIAogaW5saW5l
IHZvaWQgUmFuZ2VCb3VuZGFyeVBvaW50OjpzZXQoUGFzc1JlZlB0cjxOb2RlPiBjb250YWluZXIs
IGludCBvZmZzZXQsIE5vZGUqIGNoaWxkQmVmb3JlKQpAQCAtMTQ5LDcgKzE0OSw3IEBAIGlubGlu
ZSB2b2lkIFJhbmdlQm91bmRhcnlQb2ludDo6c2V0VG9TdGFydE9mTm9kZShQYXNzUmVmUHRyPE5v
ZGU+IGNvbnRhaW5lcikKICAgICBBU1NFUlQoY29udGFpbmVyKTsKICAgICBtX2NvbnRhaW5lck5v
ZGUgPSBjb250YWluZXI7CiAgICAgbV9vZmZzZXRJbkNvbnRhaW5lciA9IDA7Ci0gICAgbV9jaGls
ZEJlZm9yZUJvdW5kYXJ5ID0gMDsKKyAgICBtX2NoaWxkQmVmb3JlQm91bmRhcnkgPSBudWxscHRy
OwogfQogCiBpbmxpbmUgdm9pZCBSYW5nZUJvdW5kYXJ5UG9pbnQ6OnNldFRvRW5kT2ZOb2RlKFBh
c3NSZWZQdHI8Tm9kZT4gY29udGFpbmVyKQpAQCAtMTU4LDcgKzE1OCw3IEBAIGlubGluZSB2b2lk
IFJhbmdlQm91bmRhcnlQb2ludDo6c2V0VG9FbmRPZk5vZGUoUGFzc1JlZlB0cjxOb2RlPiBjb250
YWluZXIpCiAgICAgbV9jb250YWluZXJOb2RlID0gY29udGFpbmVyOwogICAgIGlmIChtX2NvbnRh
aW5lck5vZGUtPm9mZnNldEluQ2hhcmFjdGVycygpKSB7CiAgICAgICAgIG1fb2Zmc2V0SW5Db250
YWluZXIgPSBtX2NvbnRhaW5lck5vZGUtPm1heENoYXJhY3Rlck9mZnNldCgpOwotICAgICAgICBt
X2NoaWxkQmVmb3JlQm91bmRhcnkgPSAwOworICAgICAgICBtX2NoaWxkQmVmb3JlQm91bmRhcnkg
PSBudWxscHRyOwogICAgIH0gZWxzZSB7CiAgICAgICAgIG1fY2hpbGRCZWZvcmVCb3VuZGFyeSA9
IG1fY29udGFpbmVyTm9kZS0+bGFzdENoaWxkKCk7CiAgICAgICAgIG1fb2Zmc2V0SW5Db250YWlu
ZXIgPSBtX2NoaWxkQmVmb3JlQm91bmRhcnkgPyBpbnZhbGlkT2Zmc2V0IDogMDsKZGlmZiAtLWdp
dCBhL1NvdXJjZS9XZWJDb3JlL2RvbS9TcGFjZVNwbGl0U3RyaW5nLmggYi9Tb3VyY2UvV2ViQ29y
ZS9kb20vU3BhY2VTcGxpdFN0cmluZy5oCmluZGV4IGVmNTY4MDFhNzcxMWRmNWEyY2I1NTgxM2Jl
NTY3M2YxOTAzMjhlNzMuLmY4NWI5NjQyMTJkMWRhOGU4MDJkMTY2MDg5NDZjMzc3YWUwYjc4NWQg
MTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2RvbS9TcGFjZVNwbGl0U3RyaW5nLmgKKysrIGIv
U291cmNlL1dlYkNvcmUvZG9tL1NwYWNlU3BsaXRTdHJpbmcuaApAQCAtMTA1LDcgKzEwNSw3IEBA
IHB1YmxpYzoKICAgICBib29sIG9wZXJhdG9yIT0oY29uc3QgU3BhY2VTcGxpdFN0cmluZyYgb3Ro
ZXIpIGNvbnN0IHsgcmV0dXJuIG1fZGF0YSAhPSBvdGhlci5tX2RhdGE7IH0KIAogICAgIHZvaWQg
c2V0KGNvbnN0IEF0b21pY1N0cmluZyYsIGJvb2wgc2hvdWxkRm9sZENhc2UpOwotICAgIHZvaWQg
Y2xlYXIoKSB7IG1fZGF0YS5jbGVhcigpOyB9CisgICAgdm9pZCBjbGVhcigpIHsgbV9kYXRhID0g
bnVsbHB0cjsgfQogCiAgICAgYm9vbCBjb250YWlucyhjb25zdCBBdG9taWNTdHJpbmcmIHN0cmlu
ZykgY29uc3QgeyByZXR1cm4gbV9kYXRhICYmIG1fZGF0YS0+Y29udGFpbnMoc3RyaW5nKTsgfQog
ICAgIGJvb2wgY29udGFpbnNBbGwoY29uc3QgU3BhY2VTcGxpdFN0cmluZyYgbmFtZXMpIGNvbnN0
IHsgcmV0dXJuICFuYW1lcy5tX2RhdGEgfHwgKG1fZGF0YSAmJiBtX2RhdGEtPmNvbnRhaW5zQWxs
KCpuYW1lcy5tX2RhdGEpKTsgfQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvZG9tL1N0eWxl
ZEVsZW1lbnQuY3BwIGIvU291cmNlL1dlYkNvcmUvZG9tL1N0eWxlZEVsZW1lbnQuY3BwCmluZGV4
IDViMjY5NjZiNWMzODdiOWM4ODdmODAwNmUwZDI1MGE1OGY2OTNkMDkuLjBlYzBkN2Y1YTBlZWE5
ZGNiMWU4ZTY1ZTU2OWQ2MjBkYzJkMmNjMDQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2Rv
bS9TdHlsZWRFbGVtZW50LmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9kb20vU3R5bGVkRWxlbWVu
dC5jcHAKQEAgLTE4NSw3ICsxODUsNyBAQCBpbmxpbmUgdm9pZCBTdHlsZWRFbGVtZW50OjpzZXRJ
bmxpbmVTdHlsZUZyb21TdHJpbmcoY29uc3QgQXRvbWljU3RyaW5nJiBuZXdTdHlsZQogICAgIC8v
IFdlIHJlY29uc3RydWN0IHRoZSBwcm9wZXJ0eSBzZXQgaW5zdGVhZCBvZiBtdXRhdGluZyBpZiB0
aGVyZSBpcyBubyBDU1NPTSB3cmFwcGVyLgogICAgIC8vIFRoaXMgbWFrZXMgd3JhcHBlcmxlc3Mg
cHJvcGVydHkgc2V0cyBpbW11dGFibGUgYW5kIHNvIGNhY2hlYWJsZS4KICAgICBpZiAoaW5saW5l
U3R5bGUgJiYgIWlzPE11dGFibGVTdHlsZVByb3BlcnRpZXM+KCppbmxpbmVTdHlsZSkpCi0gICAg
ICAgIGlubGluZVN0eWxlLmNsZWFyKCk7CisgICAgICAgIGlubGluZVN0eWxlID0gbnVsbHB0cjsK
IAogICAgIGlmICghaW5saW5lU3R5bGUpCiAgICAgICAgIGlubGluZVN0eWxlID0gQ1NTUGFyc2Vy
OjpwYXJzZUlubGluZVN0eWxlRGVjbGFyYXRpb24obmV3U3R5bGVTdHJpbmcsIHRoaXMpOwpAQCAt
MjAyLDcgKzIwMiw3IEBAIHZvaWQgU3R5bGVkRWxlbWVudDo6c3R5bGVBdHRyaWJ1dGVDaGFuZ2Vk
KGNvbnN0IEF0b21pY1N0cmluZyYgbmV3U3R5bGVTdHJpbmcsIEF0CiAgICAgaWYgKG5ld1N0eWxl
U3RyaW5nLmlzTnVsbCgpKSB7CiAgICAgICAgIGlmIChQcm9wZXJ0eVNldENTU1N0eWxlRGVjbGFy
YXRpb24qIGNzc29tV3JhcHBlciA9IGlubGluZVN0eWxlQ1NTT01XcmFwcGVyKCkpCiAgICAgICAg
ICAgICBjc3NvbVdyYXBwZXItPmNsZWFyUGFyZW50RWxlbWVudCgpOwotICAgICAgICBlbnN1cmVV
bmlxdWVFbGVtZW50RGF0YSgpLm1faW5saW5lU3R5bGUuY2xlYXIoKTsKKyAgICAgICAgZW5zdXJl
VW5pcXVlRWxlbWVudERhdGEoKS5tX2lubGluZVN0eWxlID0gbnVsbHB0cjsKICAgICB9IGVsc2Ug
aWYgKHJlYXNvbiA9PSBNb2RpZmllZEJ5Q2xvbmluZyB8fCBkb2N1bWVudCgpLmNvbnRlbnRTZWN1
cml0eVBvbGljeSgpLT5hbGxvd0lubGluZVN0eWxlKGRvY3VtZW50KCkudXJsKCksIHN0YXJ0TGlu
ZU51bWJlcikpCiAgICAgICAgIHNldElubGluZVN0eWxlRnJvbVN0cmluZyhuZXdTdHlsZVN0cmlu
Zyk7CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2RvbS9kZWZhdWx0L1BsYXRmb3JtTWVz
c2FnZVBvcnRDaGFubmVsLmNwcCBiL1NvdXJjZS9XZWJDb3JlL2RvbS9kZWZhdWx0L1BsYXRmb3Jt
TWVzc2FnZVBvcnRDaGFubmVsLmNwcAppbmRleCBjNjg2MTFmYzhmYzdiZWNmYWRmOGQ4NDgzYjE0
ZmY5MDhjZjQ2MWZhLi5jNDE3NDg2Mzc0OTE3MzY3MzNmN2MyOTFhNDZlNWE5ZDE3YjdkMjc2IDEw
MDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9kb20vZGVmYXVsdC9QbGF0Zm9ybU1lc3NhZ2VQb3J0
Q2hhbm5lbC5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvZG9tL2RlZmF1bHQvUGxhdGZvcm1NZXNz
YWdlUG9ydENoYW5uZWwuY3BwCkBAIC0xODMsOSArMTgzLDkgQEAgdm9pZCBQbGF0Zm9ybU1lc3Nh
Z2VQb3J0Q2hhbm5lbDo6Y2xvc2VJbnRlcm5hbCgpCiB7CiAgICAgTXV0ZXhMb2NrZXIgbG9jayht
X211dGV4KTsKICAgICAvLyBEaXNlbnRhbmdsZSBvdXJzZWx2ZXMgZnJvbSB0aGUgb3RoZXIgZW5k
LiBXZSBzdGlsbCBtYWludGFpbiBhIHJlZmVyZW5jZSB0byBvdXIgaW5jb21pbmcgcXVldWUsIHNp
bmNlIHByZXZpb3VzbHktZXhpc3RpbmcgbWVzc2FnZXMgc2hvdWxkIHN0aWxsIGJlIGRlbGl2ZXJl
ZC4KLSAgICBtX3JlbW90ZVBvcnQgPSAwOwotICAgIG1fZW50YW5nbGVkQ2hhbm5lbCA9IDA7Ci0g
ICAgbV9vdXRnb2luZ1F1ZXVlID0gMDsKKyAgICBtX3JlbW90ZVBvcnQgPSBudWxscHRyOworICAg
IG1fZW50YW5nbGVkQ2hhbm5lbCA9IG51bGxwdHI7CisgICAgbV9vdXRnb2luZ1F1ZXVlID0gbnVs
bHB0cjsKIH0KIAogfSAvLyBuYW1lc3BhY2UgV2ViQ29yZQpkaWZmIC0tZ2l0IGEvU291cmNlL1dl
YkNvcmUvZWRpdGluZy9BbHRlcm5hdGl2ZVRleHRDb250cm9sbGVyLmNwcCBiL1NvdXJjZS9XZWJD
b3JlL2VkaXRpbmcvQWx0ZXJuYXRpdmVUZXh0Q29udHJvbGxlci5jcHAKaW5kZXggZjViYzk0ODkx
Y2FmN2U3MDk3YTAzZTI3MjllNzI4ZjI2MzZmMDhiZC4uMjc1ZTQzMGViNzNjMTRjYTJjZmYzM2M2
NTc3NjFlNDYxOWU1ZWFlOSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvZWRpdGluZy9BbHRl
cm5hdGl2ZVRleHRDb250cm9sbGVyLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9lZGl0aW5nL0Fs
dGVybmF0aXZlVGV4dENvbnRyb2xsZXIuY3BwCkBAIC0xNDcsNyArMTQ3LDcgQEAgdm9pZCBBbHRl
cm5hdGl2ZVRleHRDb250cm9sbGVyOjpzdGFydEFsdGVybmF0aXZlVGV4dFVJVGltZXIoQWx0ZXJu
YXRpdmVUZXh0VHlwZQogCiAgICAgLy8gSWYgdHlwZSBpcyBQYW5lbFR5cGVSZXZlcnNpb24sIHRo
ZW4gdGhlIG5ldyByYW5nZSBoYXMgYmVlbiBzZXQuIFNvIHdlIHNob3VsZG4ndCBjbGVhciBpdC4K
ICAgICBpZiAodHlwZSA9PSBBbHRlcm5hdGl2ZVRleHRUeXBlQ29ycmVjdGlvbikKLSAgICAgICAg
bV9hbHRlcm5hdGl2ZVRleHRJbmZvLnJhbmdlV2l0aEFsdGVybmF0aXZlLmNsZWFyKCk7CisgICAg
ICAgIG1fYWx0ZXJuYXRpdmVUZXh0SW5mby5yYW5nZVdpdGhBbHRlcm5hdGl2ZSA9IG51bGxwdHI7
CiAgICAgbV9hbHRlcm5hdGl2ZVRleHRJbmZvLnR5cGUgPSB0eXBlOwogICAgIG1fdGltZXIuc3Rh
cnRPbmVTaG90KGNvcnJlY3Rpb25QYW5lbFRpbWVySW50ZXJ2YWwpOwogfQpAQCAtMTU1LDcgKzE1
NSw3IEBAIHZvaWQgQWx0ZXJuYXRpdmVUZXh0Q29udHJvbGxlcjo6c3RhcnRBbHRlcm5hdGl2ZVRl
eHRVSVRpbWVyKEFsdGVybmF0aXZlVGV4dFR5cGUKIHZvaWQgQWx0ZXJuYXRpdmVUZXh0Q29udHJv
bGxlcjo6c3RvcEFsdGVybmF0aXZlVGV4dFVJVGltZXIoKQogewogICAgIG1fdGltZXIuc3RvcCgp
OwotICAgIG1fYWx0ZXJuYXRpdmVUZXh0SW5mby5yYW5nZVdpdGhBbHRlcm5hdGl2ZS5jbGVhcigp
OworICAgIG1fYWx0ZXJuYXRpdmVUZXh0SW5mby5yYW5nZVdpdGhBbHRlcm5hdGl2ZSA9IG51bGxw
dHI7CiB9CiAKIHZvaWQgQWx0ZXJuYXRpdmVUZXh0Q29udHJvbGxlcjo6c3RvcFBlbmRpbmdDb3Jy
ZWN0aW9uKGNvbnN0IFZpc2libGVTZWxlY3Rpb24mIG9sZFNlbGVjdGlvbikKQEAgLTE4Myw3ICsx
ODMsNyBAQCB2b2lkIEFsdGVybmF0aXZlVGV4dENvbnRyb2xsZXI6OmFwcGx5UGVuZGluZ0NvcnJl
Y3Rpb24oY29uc3QgVmlzaWJsZVNlbGVjdGlvbiYgcwogICAgIGlmIChkb0FwcGx5Q29ycmVjdGlv
bikKICAgICAgICAgaGFuZGxlQWx0ZXJuYXRpdmVUZXh0VUlSZXN1bHQoZGlzbWlzc1Nvb24oUmVh
c29uRm9yRGlzbWlzc2luZ0FsdGVybmF0aXZlVGV4dEFjY2VwdGVkKSk7IAogICAgIGVsc2UKLSAg
ICAgICAgbV9hbHRlcm5hdGl2ZVRleHRJbmZvLnJhbmdlV2l0aEFsdGVybmF0aXZlLmNsZWFyKCk7
CisgICAgICAgIG1fYWx0ZXJuYXRpdmVUZXh0SW5mby5yYW5nZVdpdGhBbHRlcm5hdGl2ZSA9IG51
bGxwdHI7CiB9CiAKIGJvb2wgQWx0ZXJuYXRpdmVUZXh0Q29udHJvbGxlcjo6aGFzUGVuZGluZ0Nv
cnJlY3Rpb24oKSBjb25zdApAQCAtMzU5LDcgKzM1OSw3IEBAIHZvaWQgQWx0ZXJuYXRpdmVUZXh0
Q29udHJvbGxlcjo6dGltZXJGaXJlZCgpCiAgICAgICAgIFZlY3RvcjxTdHJpbmc+IHN1Z2dlc3Rp
b25zOwogICAgICAgICB0ZXh0Q2hlY2tlcigpLT5nZXRHdWVzc2VzRm9yV29yZChtX2FsdGVybmF0
aXZlVGV4dEluZm8ub3JpZ2luYWxUZXh0LCBwYXJhZ3JhcGhUZXh0LCBzdWdnZXN0aW9ucyk7CiAg
ICAgICAgIGlmIChzdWdnZXN0aW9ucy5pc0VtcHR5KCkpIHsKLSAgICAgICAgICAgIG1fYWx0ZXJu
YXRpdmVUZXh0SW5mby5yYW5nZVdpdGhBbHRlcm5hdGl2ZS5jbGVhcigpOworICAgICAgICAgICAg
bV9hbHRlcm5hdGl2ZVRleHRJbmZvLnJhbmdlV2l0aEFsdGVybmF0aXZlID0gbnVsbHB0cjsKICAg
ICAgICAgICAgIGJyZWFrOwogICAgICAgICB9CiAgICAgICAgIFN0cmluZyB0b3BTdWdnZXN0aW9u
ID0gc3VnZ2VzdGlvbnMuZmlyc3QoKTsKQEAgLTQyMiw3ICs0MjIsNyBAQCB2b2lkIEFsdGVybmF0
aXZlVGV4dENvbnRyb2xsZXI6OmhhbmRsZUFsdGVybmF0aXZlVGV4dFVJUmVzdWx0KGNvbnN0IFN0
cmluZyYgcmVzdQogICAgICAgICBicmVhazsKICAgICB9CiAKLSAgICBtX2FsdGVybmF0aXZlVGV4
dEluZm8ucmFuZ2VXaXRoQWx0ZXJuYXRpdmUuY2xlYXIoKTsKKyAgICBtX2FsdGVybmF0aXZlVGV4
dEluZm8ucmFuZ2VXaXRoQWx0ZXJuYXRpdmUgPSBudWxscHRyOwogfQogCiBib29sIEFsdGVybmF0
aXZlVGV4dENvbnRyb2xsZXI6OmlzQXV0b21hdGljU3BlbGxpbmdDb3JyZWN0aW9uRW5hYmxlZCgp
CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9lZGl0aW5nL0FwcGx5QmxvY2tFbGVtZW50Q29t
bWFuZC5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9lZGl0aW5nL0FwcGx5QmxvY2tFbGVtZW50Q29tbWFu
ZC5jcHAKaW5kZXggNDMzZTk1MzY2NGY3MDFkMTIxMjZmYjQwM2E2N2NiZmJhN2Y0ZjA4OC4uMjFh
YmU3MWNjOGVkZDUwZjE2MzRmMDQzMzBhOGMxMmJjYzkxNjVlZSAxMDA2NDQKLS0tIGEvU291cmNl
L1dlYkNvcmUvZWRpdGluZy9BcHBseUJsb2NrRWxlbWVudENvbW1hbmQuY3BwCisrKyBiL1NvdXJj
ZS9XZWJDb3JlL2VkaXRpbmcvQXBwbHlCbG9ja0VsZW1lbnRDb21tYW5kLmNwcApAQCAtMTQzLDcg
KzE0Myw3IEBAIHZvaWQgQXBwbHlCbG9ja0VsZW1lbnRDb21tYW5kOjpmb3JtYXRTZWxlY3Rpb24o
Y29uc3QgVmlzaWJsZVBvc2l0aW9uJiBzdGFydE9mU2VsCiAgICAgICAgIC8vIERvbid0IHB1dCB0
aGUgbmV4dCBwYXJhZ3JhcGggaW4gdGhlIGJsb2NrcXVvdGUgd2UganVzdCBjcmVhdGVkIGZvciB0
aGlzIHBhcmFncmFwaCB1bmxlc3MgCiAgICAgICAgIC8vIHRoZSBuZXh0IHBhcmFncmFwaCBpcyBp
biB0aGUgc2FtZSBjZWxsLgogICAgICAgICBpZiAoZW5jbG9zaW5nQ2VsbCAmJiBlbmNsb3NpbmdD
ZWxsICE9IGVuY2xvc2luZ05vZGVPZlR5cGUoZW5kT2ZOZXh0UGFyYWdyYXBoLmRlZXBFcXVpdmFs
ZW50KCksICZpc1RhYmxlQ2VsbCkpCi0gICAgICAgICAgICBibG9ja3F1b3RlRm9yTmV4dEluZGVu
dCA9IDA7CisgICAgICAgICAgICBibG9ja3F1b3RlRm9yTmV4dEluZGVudCA9IG51bGxwdHI7CiAK
ICAgICAgICAgLy8gaW5kZW50SW50b0Jsb2NrcXVvdGUgY291bGQgbW92ZSBtb3JlIHRoYW4gb25l
IHBhcmFncmFwaCBpZiB0aGUgcGFyYWdyYXBoCiAgICAgICAgIC8vIGlzIGluIGEgbGlzdCBpdGVt
IG9yIGEgdGFibGUuIEFzIGEgcmVzdWx0LCBlbmRBZnRlclNlbGVjdGlvbiBjb3VsZCByZWZlciB0
byBhIHBvc2l0aW9uCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9lZGl0aW5nL0RlbGV0ZVNl
bGVjdGlvbkNvbW1hbmQuY3BwIGIvU291cmNlL1dlYkNvcmUvZWRpdGluZy9EZWxldGVTZWxlY3Rp
b25Db21tYW5kLmNwcAppbmRleCBlYjNhNWYzMGEwM2YyODRlMjI2MGZmNDhmYmE5ZjFiOTk5YWQ5
OTI3Li5jNjQ5MWQyNjkyNjVlNWFiNmNlOTY1ZWFhOTUzNDFiNjU0NDdkMWFlIDEwMDY0NAotLS0g
YS9Tb3VyY2UvV2ViQ29yZS9lZGl0aW5nL0RlbGV0ZVNlbGVjdGlvbkNvbW1hbmQuY3BwCisrKyBi
L1NvdXJjZS9XZWJDb3JlL2VkaXRpbmcvRGVsZXRlU2VsZWN0aW9uQ29tbWFuZC5jcHAKQEAgLTMw
Miw3ICszMDIsNyBAQCB2b2lkIERlbGV0ZVNlbGVjdGlvbkNvbW1hbmQ6OnNhdmVUeXBpbmdTdHls
ZVN0YXRlKCkKICAgICBpZiAoZW5jbG9zaW5nTm9kZU9mVHlwZShtX3NlbGVjdGlvblRvRGVsZXRl
LnN0YXJ0KCksIGlzTWFpbEJsb2NrcXVvdGUpKQogICAgICAgICBtX2RlbGV0ZUludG9CbG9ja3F1
b3RlU3R5bGUgPSBFZGl0aW5nU3R5bGU6OmNyZWF0ZShtX3NlbGVjdGlvblRvRGVsZXRlLmVuZCgp
KTsKICAgICBlbHNlCi0gICAgICAgIG1fZGVsZXRlSW50b0Jsb2NrcXVvdGVTdHlsZSA9IDA7Cisg
ICAgICAgIG1fZGVsZXRlSW50b0Jsb2NrcXVvdGVTdHlsZSA9IG51bGxwdHI7CiB9CiAKIGJvb2wg
RGVsZXRlU2VsZWN0aW9uQ29tbWFuZDo6aGFuZGxlU3BlY2lhbENhc2VCUkRlbGV0ZSgpCkBAIC03
MjgsMTEgKzcyOCwxMSBAQCB2b2lkIERlbGV0ZVNlbGVjdGlvbkNvbW1hbmQ6OmNhbGN1bGF0ZVR5
cGluZ1N0eWxlQWZ0ZXJEZWxldGUoKQogICAgIC8vIElmIHdlIGRlbGV0ZWQgaW50byBhIGJsb2Nr
cXVvdGUsIGJ1dCBhcmUgbm93IG5vIGxvbmdlciBpbiBhIGJsb2NrcXVvdGUsIHVzZSB0aGUgYWx0
ZXJuYXRlIHR5cGluZyBzdHlsZQogICAgIGlmIChtX2RlbGV0ZUludG9CbG9ja3F1b3RlU3R5bGUg
JiYgIWVuY2xvc2luZ05vZGVPZlR5cGUobV9lbmRpbmdQb3NpdGlvbiwgaXNNYWlsQmxvY2txdW90
ZSwgQ2FuQ3Jvc3NFZGl0aW5nQm91bmRhcnkpKQogICAgICAgICBtX3R5cGluZ1N0eWxlID0gbV9k
ZWxldGVJbnRvQmxvY2txdW90ZVN0eWxlOwotICAgIG1fZGVsZXRlSW50b0Jsb2NrcXVvdGVTdHls
ZSA9IDA7CisgICAgbV9kZWxldGVJbnRvQmxvY2txdW90ZVN0eWxlID0gbnVsbHB0cjsKIAogICAg
IG1fdHlwaW5nU3R5bGUtPnByZXBhcmVUb0FwcGx5QXQobV9lbmRpbmdQb3NpdGlvbik7CiAgICAg
aWYgKG1fdHlwaW5nU3R5bGUtPmlzRW1wdHkoKSkKLSAgICAgICAgbV90eXBpbmdTdHlsZSA9IDA7
CisgICAgICAgIG1fdHlwaW5nU3R5bGUgPSBudWxscHRyOwogICAgIC8vIFRoaXMgaXMgd2hlcmUg
d2UndmUgZGVsZXRlZCBhbGwgdHJhY2VzIG9mIGEgc3R5bGUgYnV0IG5vdCBhIHdob2xlIHBhcmFn
cmFwaCAodGhhdCdzIGhhbmRsZWQgYWJvdmUpLgogICAgIC8vIEluIHRoaXMgY2FzZSBpZiB3ZSBz
dGFydCB0eXBpbmcsIHRoZSBuZXcgY2hhcmFjdGVycyBzaG91bGQgaGF2ZSB0aGUgc2FtZSBzdHls
ZSBhcyB0aGUganVzdCBkZWxldGVkIG9uZXMsCiAgICAgLy8gYnV0LCBpZiB3ZSBjaGFuZ2UgdGhl
IHNlbGVjdGlvbiwgY29tZSBiYWNrIGFuZCBzdGFydCB0eXBpbmcgdGhhdCBzdHlsZSBzaG91bGQg
YmUgbG9zdC4gIEFsc28gc2VlIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvZWRpdGluZy9F
ZGl0aW5nU3R5bGUuY3BwIGIvU291cmNlL1dlYkNvcmUvZWRpdGluZy9FZGl0aW5nU3R5bGUuY3Bw
CmluZGV4IDVjZjEyY2Q5YjczOGExZGQ3NDBkNWVjZDU1YmQ1OTcyZDllZDI2NjEuLjE3YWFiMjk1
YmE2YjkyZGFlMmE3MjQ0ZGMxNTY4ZWZmMmY1NTc0N2EgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJD
b3JlL2VkaXRpbmcvRWRpdGluZ1N0eWxlLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9lZGl0aW5n
L0VkaXRpbmdTdHlsZS5jcHAKQEAgLTYzOCw3ICs2MzgsNyBAQCB2b2lkIEVkaXRpbmdTdHlsZTo6
b3ZlcnJpZGVUeXBpbmdTdHlsZUF0KGNvbnN0IEVkaXRpbmdTdHlsZSYgc3R5bGUsIGNvbnN0IFBv
c2l0aQogCiB2b2lkIEVkaXRpbmdTdHlsZTo6Y2xlYXIoKQogewotICAgIG1fbXV0YWJsZVN0eWxl
LmNsZWFyKCk7CisgICAgbV9tdXRhYmxlU3R5bGUgPSBudWxscHRyOwogICAgIG1fc2hvdWxkVXNl
Rml4ZWREZWZhdWx0Rm9udFNpemUgPSBmYWxzZTsKICAgICBtX2ZvbnRTaXplRGVsdGEgPSBOb0Zv
bnREZWx0YTsKICAgICBzZXRVbmRlcmxpbmVDaGFuZ2UoVGV4dERlY29yYXRpb25DaGFuZ2U6Ok5v
bmUpOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvZWRpdGluZy9FZGl0b3IuY3BwIGIvU291
cmNlL1dlYkNvcmUvZWRpdGluZy9FZGl0b3IuY3BwCmluZGV4IGEzYzNjOWMzYjQzNDQyOTc1MWY3
M2VmMTkyOGM0MTljOTVkNWE5N2MuLmU3Njg3ZWMyNDY1MDA1ZGI1NzQ2ZmU2YzRhZGY2YzE1ODY4
N2IzNzQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2VkaXRpbmcvRWRpdG9yLmNwcAorKysg
Yi9Tb3VyY2UvV2ViQ29yZS9lZGl0aW5nL0VkaXRvci5jcHAKQEAgLTgyOCw3ICs4MjgsNyBAQCB2
b2lkIEVkaXRvcjo6cmVtb3ZlRm9ybWF0dGluZ0FuZFN0eWxlKCkKIAogdm9pZCBFZGl0b3I6OmNs
ZWFyTGFzdEVkaXRDb21tYW5kKCkgCiB7Ci0gICAgbV9sYXN0RWRpdENvbW1hbmQuY2xlYXIoKTsK
KyAgICBtX2xhc3RFZGl0Q29tbWFuZCA9IG51bGxwdHI7CiB9CiAjaWYgUExBVEZPUk0oSU9TKQog
Ly8gSWYgdGhlIHNlbGVjdGlvbiBpcyBhZGp1c3RlZCBmcm9tIFVJS2l0IHdpdGhvdXQgY2xvc2lu
ZyB0aGUgdHlwaW5nLCB0aGUgdHlwaW5nIGNvbW1hbmQgbWF5CkBAIC0xMDY2LDcgKzEwNjYsNyBA
QCB2b2lkIEVkaXRvcjo6dW5hcHBsaWVkRWRpdGluZyhQYXNzUmVmUHRyPEVkaXRDb21tYW5kQ29t
cG9zaXRpb24+IGNtZCkKIAogICAgIG1fYWx0ZXJuYXRpdmVUZXh0Q29udHJvbGxlci0+cmVzcG9u
ZFRvVW5hcHBsaWVkRWRpdGluZyhjbWQuZ2V0KCkpOwogCi0gICAgbV9sYXN0RWRpdENvbW1hbmQg
PSAwOworICAgIG1fbGFzdEVkaXRDb21tYW5kID0gbnVsbHB0cjsKICAgICBpZiAoY2xpZW50KCkp
CiAgICAgICAgIGNsaWVudCgpLT5yZWdpc3RlclJlZG9TdGVwKGNtZCk7CiAgICAgcmVzcG9uZFRv
Q2hhbmdlZENvbnRlbnRzKG5ld1NlbGVjdGlvbik7CkBAIC0xMDg0LDcgKzEwODQsNyBAQCB2b2lk
IEVkaXRvcjo6cmVhcHBsaWVkRWRpdGluZyhQYXNzUmVmUHRyPEVkaXRDb21tYW5kQ29tcG9zaXRp
b24+IGNtZCkKICAgICAKICAgICB1cGRhdGVFZGl0b3JVSU5vd0lmU2NoZWR1bGVkKCk7CiAKLSAg
ICBtX2xhc3RFZGl0Q29tbWFuZCA9IDA7CisgICAgbV9sYXN0RWRpdENvbW1hbmQgPSBudWxscHRy
OwogICAgIGlmIChjbGllbnQoKSkKICAgICAgICAgY2xpZW50KCktPnJlZ2lzdGVyVW5kb1N0ZXAo
Y21kKTsKICAgICByZXNwb25kVG9DaGFuZ2VkQ29udGVudHMobmV3U2VsZWN0aW9uKTsKQEAgLTE3
MjcsNyArMTcyNyw3IEBAIHZvaWQgRWRpdG9yOjpzZXRDb21wb3NpdGlvbihjb25zdCBTdHJpbmcm
IHRleHQsIFNldENvbXBvc2l0aW9uTW9kZSBtb2RlKQogICAgIGlmICh0ZXh0LmlzRW1wdHkoKSAm
JiBtb2RlICE9IENhbmNlbENvbXBvc2l0aW9uKQogICAgICAgICBUeXBpbmdDb21tYW5kOjpkZWxl
dGVTZWxlY3Rpb24oZG9jdW1lbnQoKSwgMCk7CiAKLSAgICBtX2NvbXBvc2l0aW9uTm9kZSA9IDA7
CisgICAgbV9jb21wb3NpdGlvbk5vZGUgPSBudWxscHRyOwogICAgIG1fY3VzdG9tQ29tcG9zaXRp
b25VbmRlcmxpbmVzLmNsZWFyKCk7CiAKICAgICBpbnNlcnRUZXh0Rm9yQ29uZmlybWVkQ29tcG9z
aXRpb24odGV4dCk7CkBAIC0xODAyLDcgKzE4MDIsNyBAQCB2b2lkIEVkaXRvcjo6c2V0Q29tcG9z
aXRpb24oY29uc3QgU3RyaW5nJiB0ZXh0LCBjb25zdCBWZWN0b3I8Q29tcG9zaXRpb25VbmRlcmxp
bgogICAgIGlmICh0ZXh0LmlzRW1wdHkoKSkKICAgICAgICAgVHlwaW5nQ29tbWFuZDo6ZGVsZXRl
U2VsZWN0aW9uKGRvY3VtZW50KCksIFR5cGluZ0NvbW1hbmQ6OlByZXZlbnRTcGVsbENoZWNraW5n
KTsKIAotICAgIG1fY29tcG9zaXRpb25Ob2RlID0gMDsKKyAgICBtX2NvbXBvc2l0aW9uTm9kZSA9
IG51bGxwdHI7CiAgICAgbV9jdXN0b21Db21wb3NpdGlvblVuZGVybGluZXMuY2xlYXIoKTsKIAog
ICAgIGlmICghdGV4dC5pc0VtcHR5KCkpIHsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2Vk
aXRpbmcvRnJhbWVTZWxlY3Rpb24uY3BwIGIvU291cmNlL1dlYkNvcmUvZWRpdGluZy9GcmFtZVNl
bGVjdGlvbi5jcHAKaW5kZXggYjBlMjUzNTg3ZmQ4YWRjZGUzNGQ4YmIyMWFiM2FlZmI4NjNkNmI4
Mi4uZmEwODgzNzEyNTM3MWExMWNiODc5OThmYTRhMTU3MWRkMTg0ZmIzMyAxMDA2NDQKLS0tIGEv
U291cmNlL1dlYkNvcmUvZWRpdGluZy9GcmFtZVNlbGVjdGlvbi5jcHAKKysrIGIvU291cmNlL1dl
YkNvcmUvZWRpdGluZy9GcmFtZVNlbGVjdGlvbi5jcHAKQEAgLTEzNTksNyArMTM1OSw3IEBAIHZv
aWQgRnJhbWVTZWxlY3Rpb246OnByZXBhcmVGb3JEZXN0cnVjdGlvbigpCiAgICAgICAgIHZpZXct
PmNsZWFyU2VsZWN0aW9uKCk7CiAKICAgICBzZXRTZWxlY3Rpb25XaXRob3V0VXBkYXRpbmdBcHBl
YXJhbmNlKFZpc2libGVTZWxlY3Rpb24oKSwgZGVmYXVsdFNldFNlbGVjdGlvbk9wdGlvbnMoKSwg
QWxpZ25DdXJzb3JPblNjcm9sbElmTmVlZGVkLCBDaGFyYWN0ZXJHcmFudWxhcml0eSk7Ci0gICAg
bV9wcmV2aW91c0NhcmV0Tm9kZS5jbGVhcigpOworICAgIG1fcHJldmlvdXNDYXJldE5vZGUgPSBu
dWxscHRyOwogfQogCiB2b2lkIEZyYW1lU2VsZWN0aW9uOjpzZXRTdGFydChjb25zdCBWaXNpYmxl
UG9zaXRpb24gJnBvcywgRVVzZXJUcmlnZ2VyZWQgdHJpZ2dlcikKZGlmZiAtLWdpdCBhL1NvdXJj
ZS9XZWJDb3JlL2VkaXRpbmcvRnJhbWVTZWxlY3Rpb24uaCBiL1NvdXJjZS9XZWJDb3JlL2VkaXRp
bmcvRnJhbWVTZWxlY3Rpb24uaAppbmRleCBlZDg3OTZlZjAzMTAyOGM3YmYyOTBiZTM0ODhkOTg2
OWIyM2VlOWIyLi4zMTBhNzRhYWI5ZDJmNTFkZmE3MWJkMWFkOTY2MzQ4MzdiNjEyNWMwIDEwMDY0
NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9lZGl0aW5nL0ZyYW1lU2VsZWN0aW9uLmgKKysrIGIvU291
cmNlL1dlYkNvcmUvZWRpdGluZy9GcmFtZVNlbGVjdGlvbi5oCkBAIC0zNTksNyArMzU5LDcgQEAg
aW5saW5lIEVkaXRpbmdTdHlsZSogRnJhbWVTZWxlY3Rpb246OnR5cGluZ1N0eWxlKCkgY29uc3QK
IAogaW5saW5lIHZvaWQgRnJhbWVTZWxlY3Rpb246OmNsZWFyVHlwaW5nU3R5bGUoKQogewotICAg
IG1fdHlwaW5nU3R5bGUuY2xlYXIoKTsKKyAgICBtX3R5cGluZ1N0eWxlID0gbnVsbHB0cjsKIH0K
IAogaW5saW5lIHZvaWQgRnJhbWVTZWxlY3Rpb246OnNldFR5cGluZ1N0eWxlKFBhc3NSZWZQdHI8
RWRpdGluZ1N0eWxlPiBzdHlsZSkKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2VkaXRpbmcv
SW5kZW50T3V0ZGVudENvbW1hbmQuY3BwIGIvU291cmNlL1dlYkNvcmUvZWRpdGluZy9JbmRlbnRP
dXRkZW50Q29tbWFuZC5jcHAKaW5kZXggYjIzOGY4NzkzMTU2YzcyOTcyZTVhN2NkZTNhYWNkZTM5
Y2UwMWIwZi4uZWM0ZDI3MjQ0N2VjYWI3NTY1MDQxOTdkNjc1NTI3MmQ4YjhjZjYzMSAxMDA2NDQK
LS0tIGEvU291cmNlL1dlYkNvcmUvZWRpdGluZy9JbmRlbnRPdXRkZW50Q29tbWFuZC5jcHAKKysr
IGIvU291cmNlL1dlYkNvcmUvZWRpdGluZy9JbmRlbnRPdXRkZW50Q29tbWFuZC5jcHAKQEAgLTIz
Miw3ICsyMzIsNyBAQCB2b2lkIEluZGVudE91dGRlbnRDb21tYW5kOjpmb3JtYXRTZWxlY3Rpb24o
Y29uc3QgVmlzaWJsZVBvc2l0aW9uJiBzdGFydE9mU2VsZWN0aQogdm9pZCBJbmRlbnRPdXRkZW50
Q29tbWFuZDo6Zm9ybWF0UmFuZ2UoY29uc3QgUG9zaXRpb24mIHN0YXJ0LCBjb25zdCBQb3NpdGlv
biYgZW5kLCBjb25zdCBQb3NpdGlvbiYsIFJlZlB0cjxFbGVtZW50PiYgYmxvY2txdW90ZUZvck5l
eHRJbmRlbnQpCiB7CiAgICAgaWYgKHRyeUluZGVudGluZ0FzTGlzdEl0ZW0oc3RhcnQsIGVuZCkp
Ci0gICAgICAgIGJsb2NrcXVvdGVGb3JOZXh0SW5kZW50ID0gMDsKKyAgICAgICAgYmxvY2txdW90
ZUZvck5leHRJbmRlbnQgPSBudWxscHRyOwogICAgIGVsc2UKICAgICAgICAgaW5kZW50SW50b0Js
b2NrcXVvdGUoc3RhcnQsIGVuZCwgYmxvY2txdW90ZUZvck5leHRJbmRlbnQpOwogfQpkaWZmIC0t
Z2l0IGEvU291cmNlL1dlYkNvcmUvZWRpdGluZy9SZXBsYWNlU2VsZWN0aW9uQ29tbWFuZC5jcHAg
Yi9Tb3VyY2UvV2ViQ29yZS9lZGl0aW5nL1JlcGxhY2VTZWxlY3Rpb25Db21tYW5kLmNwcAppbmRl
eCAyZTI1ZWVmMGVjNjBiNTdmZWYyMzlkNDM5Y2IxZWU5MTQ2NjFjODAyLi5lZWUyMjBjODZmOThh
NWU3ZDI4OTljNDMzZmE5MWYwMDAwNTQ2YmUzIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9l
ZGl0aW5nL1JlcGxhY2VTZWxlY3Rpb25Db21tYW5kLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9l
ZGl0aW5nL1JlcGxhY2VTZWxlY3Rpb25Db21tYW5kLmNwcApAQCAtMzU0LDggKzM1NCw4IEBAIGlu
bGluZSB2b2lkIFJlcGxhY2VTZWxlY3Rpb25Db21tYW5kOjpJbnNlcnRlZE5vZGVzOjp3aWxsUmVt
b3ZlTm9kZVByZXNlcnZpbmdDaGlsCiBpbmxpbmUgdm9pZCBSZXBsYWNlU2VsZWN0aW9uQ29tbWFu
ZDo6SW5zZXJ0ZWROb2Rlczo6d2lsbFJlbW92ZU5vZGUoTm9kZSogbm9kZSkKIHsKICAgICBpZiAo
bV9maXJzdE5vZGVJbnNlcnRlZCA9PSBub2RlICYmIG1fbGFzdE5vZGVJbnNlcnRlZCA9PSBub2Rl
KSB7Ci0gICAgICAgIG1fZmlyc3ROb2RlSW5zZXJ0ZWQgPSAwOwotICAgICAgICBtX2xhc3ROb2Rl
SW5zZXJ0ZWQgPSAwOworICAgICAgICBtX2ZpcnN0Tm9kZUluc2VydGVkID0gbnVsbHB0cjsKKyAg
ICAgICAgbV9sYXN0Tm9kZUluc2VydGVkID0gbnVsbHB0cjsKICAgICB9IGVsc2UgaWYgKG1fZmly
c3ROb2RlSW5zZXJ0ZWQgPT0gbm9kZSkKICAgICAgICAgbV9maXJzdE5vZGVJbnNlcnRlZCA9IE5v
ZGVUcmF2ZXJzYWw6Om5leHRTa2lwcGluZ0NoaWxkcmVuKCptX2ZpcnN0Tm9kZUluc2VydGVkKTsK
ICAgICBlbHNlIGlmIChtX2xhc3ROb2RlSW5zZXJ0ZWQgPT0gbm9kZSkKZGlmZiAtLWdpdCBhL1Nv
dXJjZS9XZWJDb3JlL2VkaXRpbmcvU3BlbGxDaGVja2VyLmNwcCBiL1NvdXJjZS9XZWJDb3JlL2Vk
aXRpbmcvU3BlbGxDaGVja2VyLmNwcAppbmRleCA4YjRkNTQxMTljMDEzYzQ4NWVmNDRlYjkzMzc1
NzM5MjhjNjQ4MGRiLi4wM2YyZTUxMDQ4MzUyMTUyMGQyOWI3N2U3NjhkZmM5M2JhYTQwNTkzIDEw
MDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9lZGl0aW5nL1NwZWxsQ2hlY2tlci5jcHAKKysrIGIv
U291cmNlL1dlYkNvcmUvZWRpdGluZy9TcGVsbENoZWNrZXIuY3BwCkBAIC0yMTQsNyArMjE0LDcg
QEAgdm9pZCBTcGVsbENoZWNrZXI6OmRpZENoZWNrKGludCBzZXF1ZW5jZSwgY29uc3QgVmVjdG9y
PFRleHRDaGVja2luZ1Jlc3VsdD4mIHJlc3UKICAgICBpZiAobV9sYXN0UHJvY2Vzc2VkU2VxdWVu
Y2UgPCBzZXF1ZW5jZSkKICAgICAgICAgbV9sYXN0UHJvY2Vzc2VkU2VxdWVuY2UgPSBzZXF1ZW5j
ZTsKIAotICAgIG1fcHJvY2Vzc2luZ1JlcXVlc3QuY2xlYXIoKTsKKyAgICBtX3Byb2Nlc3NpbmdS
ZXF1ZXN0ID0gbnVsbHB0cjsKICAgICBpZiAoIW1fcmVxdWVzdFF1ZXVlLmlzRW1wdHkoKSkKICAg
ICAgICAgbV90aW1lclRvUHJvY2Vzc1F1ZXVlZFJlcXVlc3Quc3RhcnRPbmVTaG90KDApOwogfQpk
aWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvZWRpdGluZy9UZXh0Q2hlY2tpbmdIZWxwZXIuY3Bw
IGIvU291cmNlL1dlYkNvcmUvZWRpdGluZy9UZXh0Q2hlY2tpbmdIZWxwZXIuY3BwCmluZGV4IDAy
NGQyYWQ3YzI0ZjQxNGU1MWZlMTY2NmNmOTA5MjcyMTNkZWYxNzAuLmU5NjEzNGQ3OGE5MmJiMDVl
N2YyZWQ3NzA5YjhjY2E0YzRhY2EzYjUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2VkaXRp
bmcvVGV4dENoZWNraW5nSGVscGVyLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9lZGl0aW5nL1Rl
eHRDaGVja2luZ0hlbHBlci5jcHAKQEAgLTE0Niw3ICsxNDYsNyBAQCB2b2lkIFRleHRDaGVja2lu
Z1BhcmFncmFwaDo6ZXhwYW5kUmFuZ2VUb05leHRFbmQoKQogdm9pZCBUZXh0Q2hlY2tpbmdQYXJh
Z3JhcGg6OmludmFsaWRhdGVQYXJhZ3JhcGhSYW5nZVZhbHVlcygpCiB7CiAgICAgbV9jaGVja2lu
Z1N0YXJ0ID0gbV9jaGVja2luZ0VuZCA9IC0xOwotICAgIG1fb2Zmc2V0QXNSYW5nZSA9IDA7Cisg
ICAgbV9vZmZzZXRBc1JhbmdlID0gbnVsbHB0cjsKICAgICBtX3RleHQgPSBTdHJpbmcoKTsKIH0K
IApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvZmlsZWFwaS9GaWxlUmVhZGVyLmNwcCBiL1Nv
dXJjZS9XZWJDb3JlL2ZpbGVhcGkvRmlsZVJlYWRlci5jcHAKaW5kZXggN2Y0YzA1ZDI5MzU2NGY5
ODRiZmI4YmQzMDJlOWZhNDhiYzYzODY2NS4uNjFmYzJkZTYxYWVmOGEzZWJiMDg4NGQ3NDA3NmU2
YjNiZDFkMGIxMyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvZmlsZWFwaS9GaWxlUmVhZGVy
LmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9maWxlYXBpL0ZpbGVSZWFkZXIuY3BwCkBAIC0xNDAs
NyArMTQwLDcgQEAgdm9pZCBGaWxlUmVhZGVyOjpyZWFkSW50ZXJuYWwoQmxvYiogYmxvYiwgRmls
ZVJlYWRlckxvYWRlcjo6UmVhZFR5cGUgdHlwZSwgRXhjZXAKICAgICBtX2Jsb2IgPSBibG9iOwog
ICAgIG1fcmVhZFR5cGUgPSB0eXBlOwogICAgIG1fc3RhdGUgPSBMT0FESU5HOwotICAgIG1fZXJy
b3IgPSAwOworICAgIG1fZXJyb3IgPSBudWxscHRyOwogCiAgICAgbV9sb2FkZXIgPSBzdGQ6Om1h
a2VfdW5pcXVlPEZpbGVSZWFkZXJMb2FkZXI+KG1fcmVhZFR5cGUsIHRoaXMpOwogICAgIG1fbG9h
ZGVyLT5zZXRFbmNvZGluZyhtX2VuY29kaW5nKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3Jl
L2ZpbGVhcGkvRmlsZVJlYWRlckxvYWRlci5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9maWxlYXBpL0Zp
bGVSZWFkZXJMb2FkZXIuY3BwCmluZGV4IDk0ZTBhNGE3Y2I0MTBiYWZlM2FlZWQzOGZiNmNlMmZj
ZTI5YWUyNmEuLmQ4ZmZjMTAyMzM1ZjFiMjVkNTcyZGI2YjI3NWE3NDQ0NTI3ZWEyZDkgMTAwNjQ0
Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2ZpbGVhcGkvRmlsZVJlYWRlckxvYWRlci5jcHAKKysrIGIv
U291cmNlL1dlYkNvcmUvZmlsZWFwaS9GaWxlUmVhZGVyTG9hZGVyLmNwcApAQCAtMTIxLDExICsx
MjEsMTEgQEAgdm9pZCBGaWxlUmVhZGVyTG9hZGVyOjp0ZXJtaW5hdGUoKQogCiB2b2lkIEZpbGVS
ZWFkZXJMb2FkZXI6OmNsZWFudXAoKQogewotICAgIG1fbG9hZGVyID0gMDsKKyAgICBtX2xvYWRl
ciA9IG51bGxwdHI7CiAKICAgICAvLyBJZiB3ZSBnZXQgYW55IGVycm9yLCB3ZSBkbyBub3QgbmVl
ZCB0byBrZWVwIGEgYnVmZmVyIGFyb3VuZC4KICAgICBpZiAobV9lcnJvckNvZGUpIHsKLSAgICAg
ICAgbV9yYXdEYXRhID0gMDsKKyAgICAgICAgbV9yYXdEYXRhID0gbnVsbHB0cjsKICAgICAgICAg
bV9zdHJpbmdSZXN1bHQgPSAiIjsKICAgICB9CiB9CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29y
ZS9oaXN0b3J5L0hpc3RvcnlJdGVtLmNwcCBiL1NvdXJjZS9XZWJDb3JlL2hpc3RvcnkvSGlzdG9y
eUl0ZW0uY3BwCmluZGV4IDIyOWJhYjhlN2EyM2FjMDVjMGFkMDVlN2VkNDMxNTdkY2Q3ZThiMDMu
LjgyOTU3M2Y3ZDc5YjZhOTI3NTJiNmEwN2JiOGI1NzkwOTYzMmRiZDEgMTAwNjQ0Ci0tLSBhL1Nv
dXJjZS9XZWJDb3JlL2hpc3RvcnkvSGlzdG9yeUl0ZW0uY3BwCisrKyBiL1NvdXJjZS9XZWJDb3Jl
L2hpc3RvcnkvSGlzdG9yeUl0ZW0uY3BwCkBAIC0xOTYsMTAgKzE5NiwxMCBAQCB2b2lkIEhpc3Rv
cnlJdGVtOjpyZXNldCgpCiAKICAgICBtX2l0ZW1TZXF1ZW5jZU51bWJlciA9IGdlbmVyYXRlU2Vx
dWVuY2VOdW1iZXIoKTsKIAotICAgIG1fc3RhdGVPYmplY3QgPSAwOworICAgIG1fc3RhdGVPYmpl
Y3QgPSBudWxscHRyOwogICAgIG1fZG9jdW1lbnRTZXF1ZW5jZU51bWJlciA9IGdlbmVyYXRlU2Vx
dWVuY2VOdW1iZXIoKTsKIAotICAgIG1fZm9ybURhdGEgPSAwOworICAgIG1fZm9ybURhdGEgPSBu
dWxscHRyOwogICAgIG1fZm9ybUNvbnRlbnRUeXBlID0gU3RyaW5nKCk7CiAKICAgICBjbGVhckNo
aWxkcmVuKCk7CkBAIC01MjQsNyArNTI0LDcgQEAgdm9pZCBIaXN0b3J5SXRlbTo6c2V0Rm9ybUlu
Zm9Gcm9tUmVxdWVzdChjb25zdCBSZXNvdXJjZVJlcXVlc3QmIHJlcXVlc3QpCiAgICAgICAgIG1f
Zm9ybURhdGEgPSByZXF1ZXN0Lmh0dHBCb2R5KCk7CiAgICAgICAgIG1fZm9ybUNvbnRlbnRUeXBl
ID0gcmVxdWVzdC5odHRwQ29udGVudFR5cGUoKTsKICAgICB9IGVsc2UgewotICAgICAgICBtX2Zv
cm1EYXRhID0gMDsKKyAgICAgICAgbV9mb3JtRGF0YSA9IG51bGxwdHI7CiAgICAgICAgIG1fZm9y
bUNvbnRlbnRUeXBlID0gU3RyaW5nKCk7CiAgICAgfQogfQpkaWZmIC0tZ2l0IGEvU291cmNlL1dl
YkNvcmUvaHRtbC9CYXNlQ2hvb3Nlck9ubHlEYXRlQW5kVGltZUlucHV0VHlwZS5jcHAgYi9Tb3Vy
Y2UvV2ViQ29yZS9odG1sL0Jhc2VDaG9vc2VyT25seURhdGVBbmRUaW1lSW5wdXRUeXBlLmNwcApp
bmRleCBlOWE2Y2MwMzkzYzUwNTU2OGQ1MTM0M2M2NTdhNmJkYmFkMWE5NTIzLi5kYmVhMGU5OWJk
OTM0YzdkYmRlYTUyZDI1ZDAxYzJmODE3NWRjMWQwIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29y
ZS9odG1sL0Jhc2VDaG9vc2VyT25seURhdGVBbmRUaW1lSW5wdXRUeXBlLmNwcAorKysgYi9Tb3Vy
Y2UvV2ViQ29yZS9odG1sL0Jhc2VDaG9vc2VyT25seURhdGVBbmRUaW1lSW5wdXRUeXBlLmNwcApA
QCAtOTgsNyArOTgsNyBAQCB2b2lkIEJhc2VDaG9vc2VyT25seURhdGVBbmRUaW1lSW5wdXRUeXBl
OjpkaWRDaG9vc2VWYWx1ZShjb25zdCBTdHJpbmcmIHZhbHVlKQogCiB2b2lkIEJhc2VDaG9vc2Vy
T25seURhdGVBbmRUaW1lSW5wdXRUeXBlOjpkaWRFbmRDaG9vc2VyKCkKIHsKLSAgICBtX2RhdGVU
aW1lQ2hvb3Nlci5jbGVhcigpOworICAgIG1fZGF0ZVRpbWVDaG9vc2VyID0gbnVsbHB0cjsKIH0K
IAogdm9pZCBCYXNlQ2hvb3Nlck9ubHlEYXRlQW5kVGltZUlucHV0VHlwZTo6Y2xvc2VEYXRlVGlt
ZUNob29zZXIoKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvaHRtbC9GVFBEaXJlY3RvcnlE
b2N1bWVudC5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9odG1sL0ZUUERpcmVjdG9yeURvY3VtZW50LmNw
cAppbmRleCBlNzU1M2Q3NDMwM2RkOTRkYjI2MTBkY2RkMmExODBmNGY4ZWIyMDllLi4wMGRlOWZm
NTcxYThlMzhlMmMyZDhjYzVlOWMxYmM3YzIzOTdlZTY5IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2Vi
Q29yZS9odG1sL0ZUUERpcmVjdG9yeURvY3VtZW50LmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9o
dG1sL0ZUUERpcmVjdG9yeURvY3VtZW50LmNwcApAQCAtNDExLDcgKzQxMSw3IEBAIHZvaWQgRlRQ
RGlyZWN0b3J5RG9jdW1lbnRQYXJzZXI6OmZpbmlzaCgpCiAgICAgICAgIG1fY2FycnlPdmVyID0g
U3RyaW5nKCk7CiAgICAgfQogCi0gICAgbV90YWJsZUVsZW1lbnQgPSAwOworICAgIG1fdGFibGVF
bGVtZW50ID0gbnVsbHB0cjsKICAgICBmYXN0RnJlZShtX2J1ZmZlcik7CiAKICAgICBIVE1MRG9j
dW1lbnRQYXJzZXI6OmZpbmlzaCgpOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvaHRtbC9G
aWxlSW5wdXRUeXBlLmNwcCBiL1NvdXJjZS9XZWJDb3JlL2h0bWwvRmlsZUlucHV0VHlwZS5jcHAK
aW5kZXggYTNkM2I2YjcxMWZmZTFlOGFhMWFmZGZmYzE4NmViYzBhZjUyYzE0Ny4uNDg5ZDc5OTM4
ZmNmZDIyNmZjOTk0YzI2MGU2ZTU1MzUzYzU0YWYyOSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNv
cmUvaHRtbC9GaWxlSW5wdXRUeXBlLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9odG1sL0ZpbGVJ
bnB1dFR5cGUuY3BwCkBAIC0yNTAsNyArMjUwLDcgQEAgdm9pZCBGaWxlSW5wdXRUeXBlOjpzZXRW
YWx1ZShjb25zdCBTdHJpbmcmLCBib29sLCBUZXh0RmllbGRFdmVudEJlaGF2aW9yKQogewogICAg
IC8vIEZJWE1FOiBTaG91bGQgd2UgY2xlYXIgdGhlIGZpbGUgbGlzdCwgb3IgcmVwbGFjZSBpdCB3
aXRoIGEgbmV3IGVtcHR5IG9uZSBoZXJlPyBUaGlzIGlzIG9ic2VydmFibGUgZnJvbSBKYXZhU2Ny
aXB0IHRocm91Z2ggY3VzdG9tIHByb3BlcnRpZXMuCiAgICAgbV9maWxlTGlzdC0+Y2xlYXIoKTsK
LSAgICBtX2ljb24uY2xlYXIoKTsKKyAgICBtX2ljb24gPSBudWxscHRyOwogICAgIGVsZW1lbnQo
KS5zZXROZWVkc1N0eWxlUmVjYWxjKCk7CiB9CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3Jl
L2h0bWwvSFRNTENhbnZhc0VsZW1lbnQuY3BwIGIvU291cmNlL1dlYkNvcmUvaHRtbC9IVE1MQ2Fu
dmFzRWxlbWVudC5jcHAKaW5kZXggODZkNDVhNDhhMGM3NjJkYWI3MjZmZDk5NmFmNzI0NmM4MTg3
ODY2My4uY2U1ZDdiMmE1ZjI3ZjRjNzZmNTEwZDZlZjU5NWUzMGFhMjU0YTMyYSAxMDA2NDQKLS0t
IGEvU291cmNlL1dlYkNvcmUvaHRtbC9IVE1MQ2FudmFzRWxlbWVudC5jcHAKKysrIGIvU291cmNl
L1dlYkNvcmUvaHRtbC9IVE1MQ2FudmFzRWxlbWVudC5jcHAKQEAgLTQyMyw3ICs0MjMsNyBAQCB2
b2lkIEhUTUxDYW52YXNFbGVtZW50OjptYWtlUHJlc2VudGF0aW9uQ29weSgpCiAKIHZvaWQgSFRN
TENhbnZhc0VsZW1lbnQ6OmNsZWFyUHJlc2VudGF0aW9uQ29weSgpCiB7Ci0gICAgbV9wcmVzZW50
ZWRJbWFnZS5jbGVhcigpOworICAgIG1fcHJlc2VudGVkSW1hZ2UgPSBudWxscHRyOwogfQogCiB2
b2lkIEhUTUxDYW52YXNFbGVtZW50OjpzZXRTdXJmYWNlU2l6ZShjb25zdCBJbnRTaXplJiBzaXpl
KQpAQCAtNjQ0LDcgKzY0NCw3IEBAIHZvaWQgSFRNTENhbnZhc0VsZW1lbnQ6OmNsZWFySW1hZ2VC
dWZmZXIoKSBjb25zdAogCiB2b2lkIEhUTUxDYW52YXNFbGVtZW50OjpjbGVhckNvcGllZEltYWdl
KCkKIHsKLSAgICBtX2NvcGllZEltYWdlLmNsZWFyKCk7CisgICAgbV9jb3BpZWRJbWFnZSA9IG51
bGxwdHI7CiAgICAgbV9kaWRDbGVhckltYWdlQnVmZmVyID0gZmFsc2U7CiB9CiAKZGlmZiAtLWdp
dCBhL1NvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTExpbmtFbGVtZW50LmNwcCBiL1NvdXJjZS9XZWJD
b3JlL2h0bWwvSFRNTExpbmtFbGVtZW50LmNwcAppbmRleCBjMjNlZGZmM2EyYWFlY2YxYjBkYzBh
NjVlOTg0OWQ1OTkyZDZhYjI3Li5lNGUxMjgxMWM4NDUxMzIwMzhkODdjZjNiYzZjODQ0NjMzZjAw
ZWUxIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxMaW5rRWxlbWVudC5jcHAK
KysrIGIvU291cmNlL1dlYkNvcmUvaHRtbC9IVE1MTGlua0VsZW1lbnQuY3BwCkBAIC0yNjQsNyAr
MjY0LDcgQEAgdm9pZCBIVE1MTGlua0VsZW1lbnQ6OmNsZWFyU2hlZXQoKQogICAgIEFTU0VSVCht
X3NoZWV0KTsKICAgICBBU1NFUlQobV9zaGVldC0+b3duZXJOb2RlKCkgPT0gdGhpcyk7CiAgICAg
bV9zaGVldC0+Y2xlYXJPd25lck5vZGUoKTsKLSAgICBtX3NoZWV0ID0gMDsKKyAgICBtX3NoZWV0
ID0gbnVsbHB0cjsKIH0KIAogTm9kZTo6SW5zZXJ0aW9uTm90aWZpY2F0aW9uUmVxdWVzdCBIVE1M
TGlua0VsZW1lbnQ6Omluc2VydGVkSW50byhDb250YWluZXJOb2RlJiBpbnNlcnRpb25Qb2ludCkK
ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTE1lZGlhRWxlbWVudC5jcHAgYi9T
b3VyY2UvV2ViQ29yZS9odG1sL0hUTUxNZWRpYUVsZW1lbnQuY3BwCmluZGV4IDRmZWFlYjk3Yzk5
YzE4NTE1NGQ3ZjM5OTM3ZjRiZTVjNmM0MzgzZTEuLmRkODg5MmYzY2I0Y2Q3OGRkNGZkZjc4MGZl
MmUwNTFkYTJkYzQ5NjYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTE1lZGlh
RWxlbWVudC5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvaHRtbC9IVE1MTWVkaWFFbGVtZW50LmNw
cApAQCAtNDU3LDcgKzQ1Nyw3IEBAIEhUTUxNZWRpYUVsZW1lbnQ6On5IVE1MTWVkaWFFbGVtZW50
KCkKIAogICAgIGlmIChtX21lZGlhQ29udHJvbGxlcikgewogICAgICAgICBtX21lZGlhQ29udHJv
bGxlci0+cmVtb3ZlTWVkaWFFbGVtZW50KHRoaXMpOwotICAgICAgICBtX21lZGlhQ29udHJvbGxl
ciA9IDA7CisgICAgICAgIG1fbWVkaWFDb250cm9sbGVyID0gbnVsbHB0cjsKICAgICB9CiAKICNp
ZiBFTkFCTEUoTUVESUFfU09VUkNFKQpAQCAtOTQyLDcgKzk0Miw3IEBAIHZvaWQgSFRNTE1lZGlh
RWxlbWVudDo6cHJlcGFyZUZvckxvYWQoKQogCiAgICAgLy8gMSAtIEFib3J0IGFueSBhbHJlYWR5
LXJ1bm5pbmcgaW5zdGFuY2Ugb2YgdGhlIHJlc291cmNlIHNlbGVjdGlvbiBhbGdvcml0aG0gZm9y
IHRoaXMgZWxlbWVudC4KICAgICBtX2xvYWRTdGF0ZSA9IFdhaXRpbmdGb3JTb3VyY2U7Ci0gICAg
bV9jdXJyZW50U291cmNlTm9kZSA9IDA7CisgICAgbV9jdXJyZW50U291cmNlTm9kZSA9IG51bGxw
dHI7CiAKICAgICAvLyAyIC0gSWYgdGhlcmUgYXJlIGFueSB0YXNrcyBmcm9tIHRoZSBtZWRpYSBl
bGVtZW50J3MgbWVkaWEgZWxlbWVudCBldmVudCB0YXNrIHNvdXJjZSBpbiAKICAgICAvLyBvbmUg
b2YgdGhlIHRhc2sgcXVldWVzLCB0aGVuIHJlbW92ZSB0aG9zZSB0YXNrcy4KQEAgLTEwMDYsNyAr
MTAwNiw3IEBAIHZvaWQgSFRNTE1lZGlhRWxlbWVudDo6cHJlcGFyZUZvckxvYWQoKQogICAgIHNl
dFBsYXliYWNrUmF0ZShkZWZhdWx0UGxheWJhY2tSYXRlKCkpOwogCiAgICAgLy8gNiAtIFNldCB0
aGUgZXJyb3IgYXR0cmlidXRlIHRvIG51bGwgYW5kIHRoZSBhdXRvcGxheWluZyBmbGFnIHRvIHRy
dWUuCi0gICAgbV9lcnJvciA9IDA7CisgICAgbV9lcnJvciA9IG51bGxwdHI7CiAgICAgbV9hdXRv
cGxheWluZyA9IHRydWU7CiAKICAgICAvLyA3IC0gSW52b2tlIHRoZSBtZWRpYSBlbGVtZW50J3Mg
cmVzb3VyY2Ugc2VsZWN0aW9uIGFsZ29yaXRobS4KQEAgLTExMDEsNyArMTEwMSw3IEBAIHZvaWQg
SFRNTE1lZGlhRWxlbWVudDo6c2VsZWN0TWVkaWFSZXNvdXJjZSgpCiAgICAgICAgIGlmIChhdXRv
IGZpcnN0U291cmNlID0gY2hpbGRyZW5PZlR5cGU8SFRNTFNvdXJjZUVsZW1lbnQ+KCp0aGlzKS5m
aXJzdCgpKSB7CiAgICAgICAgICAgICBtb2RlID0gY2hpbGRyZW47CiAgICAgICAgICAgICBtX25l
eHRDaGlsZE5vZGVUb0NvbnNpZGVyID0gZmlyc3RTb3VyY2U7Ci0gICAgICAgICAgICBtX2N1cnJl
bnRTb3VyY2VOb2RlID0gMDsKKyAgICAgICAgICAgIG1fY3VycmVudFNvdXJjZU5vZGUgPSBudWxs
cHRyOwogICAgICAgICB9IGVsc2UgewogICAgICAgICAgICAgLy8gT3RoZXJ3aXNlIHRoZSBtZWRp
YSBlbGVtZW50IGhhcyBuZWl0aGVyIGEgc3JjIGF0dHJpYnV0ZSBub3IgYSBzb3VyY2UgZWxlbWVu
dCAKICAgICAgICAgICAgIC8vIGNoaWxkOiBzZXQgdGhlIG5ldHdvcmtTdGF0ZSB0byBORVRXT1JL
X0VNUFRZLCBhbmQgYWJvcnQgdGhlc2Ugc3RlcHM7IHRoZSAKQEAgLTEyNzcsNyArMTI3Nyw3IEBA
IHZvaWQgSFRNTE1lZGlhRWxlbWVudDo6bG9hZFJlc291cmNlKGNvbnN0IFVSTCYgaW5pdGlhbFVS
TCwgQ29udGVudFR5cGUmIGNvbnRlbnRUCiAgICAgICAgIGVsc2UgewogICAgICAgICAgICAgLy8g
Rm9yZ2V0IG91ciByZWZlcmVuY2UgdG8gdGhlIE1lZGlhU291cmNlLCBzbyB3ZSBsZWF2ZSBpdCBh
bG9uZQogICAgICAgICAgICAgLy8gd2hpbGUgcHJvY2Vzc2luZyByZW1haW5kZXIgb2YgbG9hZCBm
YWlsdXJlLgotICAgICAgICAgICAgbV9tZWRpYVNvdXJjZSA9IDA7CisgICAgICAgICAgICBtX21l
ZGlhU291cmNlID0gbnVsbHB0cjsKICAgICAgICAgICAgIG1lZGlhTG9hZGluZ0ZhaWxlZChNZWRp
YVBsYXllcjo6Rm9ybWF0RXJyb3IpOwogICAgICAgICB9CiAgICAgfSBlbHNlCkBAIC0xODAwLDcg
KzE4MDAsNyBAQCB2b2lkIEhUTUxNZWRpYUVsZW1lbnQ6Om5vbmVTdXBwb3J0ZWQoKQogCiAgICAg
c3RvcFBlcmlvZGljVGltZXJzKCk7CiAgICAgbV9sb2FkU3RhdGUgPSBXYWl0aW5nRm9yU291cmNl
OwotICAgIG1fY3VycmVudFNvdXJjZU5vZGUgPSAwOworICAgIG1fY3VycmVudFNvdXJjZU5vZGUg
PSBudWxscHRyOwogCiAgICAgLy8gNC44LjEwLjUgCiAgICAgLy8gNiAtIFJlYWNoaW5nIHRoaXMg
c3RlcCBpbmRpY2F0ZXMgdGhhdCB0aGUgbWVkaWEgcmVzb3VyY2UgZmFpbGVkIHRvIGxvYWQgb3Ig
dGhhdCB0aGUgZ2l2ZW4gCkBAIC0yOTM5LDcgKzI5MzksNyBAQCB2b2lkIEhUTUxNZWRpYUVsZW1l
bnQ6OmNsb3NlTWVkaWFTb3VyY2UoKQogICAgICAgICByZXR1cm47CiAKICAgICBtX21lZGlhU291
cmNlLT5jbG9zZSgpOwotICAgIG1fbWVkaWFTb3VyY2UgPSAwOworICAgIG1fbWVkaWFTb3VyY2Ug
PSBudWxscHRyOwogfQogI2VuZGlmCiAKQEAgLTQxMTIsOCArNDExMiw4IEBAIGNoZWNrX2FnYWlu
OgogICAgICAgICBtX2N1cnJlbnRTb3VyY2VOb2RlID0gc291cmNlOwogICAgICAgICBtX25leHRD
aGlsZE5vZGVUb0NvbnNpZGVyID0gc291cmNlLT5uZXh0U2libGluZygpOwogICAgIH0gZWxzZSB7
Ci0gICAgICAgIG1fY3VycmVudFNvdXJjZU5vZGUgPSAwOwotICAgICAgICBtX25leHRDaGlsZE5v
ZGVUb0NvbnNpZGVyID0gMDsKKyAgICAgICAgbV9jdXJyZW50U291cmNlTm9kZSA9IG51bGxwdHI7
CisgICAgICAgIG1fbmV4dENoaWxkTm9kZVRvQ29uc2lkZXIgPSBudWxscHRyOwogICAgIH0KIAog
I2lmICFMT0dfRElTQUJMRUQKQEAgLTQxOTMsNyArNDE5Myw3IEBAIHZvaWQgSFRNTE1lZGlhRWxl
bWVudDo6c291cmNlV2FzUmVtb3ZlZChIVE1MU291cmNlRWxlbWVudCogc291cmNlKQogICAgICAg
ICAvLyBDbGVhciB0aGUgY3VycmVudCBzb3VyY2Ugbm9kZSBwb2ludGVyLCBidXQgZG9uJ3QgY2hh
bmdlIHRoZSBtb3ZpZSBhcyB0aGUgc3BlYyBzYXlzOgogICAgICAgICAvLyA0LjguOCAtIER5bmFt
aWNhbGx5IG1vZGlmeWluZyBhIHNvdXJjZSBlbGVtZW50IGFuZCBpdHMgYXR0cmlidXRlIHdoZW4g
dGhlIGVsZW1lbnQgaXMgYWxyZWFkeSAKICAgICAgICAgLy8gaW5zZXJ0ZWQgaW4gYSB2aWRlbyBv
ciBhdWRpbyBlbGVtZW50IHdpbGwgaGF2ZSBubyBlZmZlY3QuCi0gICAgICAgIG1fY3VycmVudFNv
dXJjZU5vZGUgPSAwOworICAgICAgICBtX2N1cnJlbnRTb3VyY2VOb2RlID0gbnVsbHB0cjsKICAg
ICAgICAgTE9HKE1lZGlhLCAiSFRNTE1lZGlhRWxlbWVudDo6c291cmNlUmVtb3ZlZCglcCkgLSBt
X2N1cnJlbnRTb3VyY2VOb2RlIHNldCB0byAwIiwgdGhpcyk7CiAgICAgfQogfQpAQCAtNDc5NSw3
ICs0Nzk1LDcgQEAgdm9pZCBIVE1MTWVkaWFFbGVtZW50Ojp1c2VyQ2FuY2VsbGVkTG9hZCgpCiAg
ICAgc2V0U2hvdWxkRGVsYXlMb2FkRXZlbnQoZmFsc2UpOwogCiAgICAgLy8gNiAtIEFib3J0IHRo
ZSBvdmVyYWxsIHJlc291cmNlIHNlbGVjdGlvbiBhbGdvcml0aG0uCi0gICAgbV9jdXJyZW50U291
cmNlTm9kZSA9IDA7CisgICAgbV9jdXJyZW50U291cmNlTm9kZSA9IG51bGxwdHI7CiAKICAgICAv
LyBSZXNldCBtX3JlYWR5U3RhdGUgc2luY2UgbV9wbGF5ZXIgaXMgZ29uZS4KICAgICBtX3JlYWR5
U3RhdGUgPSBIQVZFX05PVEhJTkc7CkBAIC00ODEyLDggKzQ4MTIsOCBAQCB2b2lkIEhUTUxNZWRp
YUVsZW1lbnQ6OmNsZWFyTWVkaWFQbGF5ZXIoaW50IGZsYWdzKQogCiAjaWYgVVNFKFBMQVRGT1JN
X1RFWFRfVFJBQ0tfTUVOVSkKICAgICBpZiAocGxhdGZvcm1UZXh0VHJhY2tNZW51KCkpIHsKLSAg
ICAgICAgbV9wbGF0Zm9ybU1lbnUtPnNldENsaWVudCgwKTsKLSAgICAgICAgbV9wbGF0Zm9ybU1l
bnUgPSAwOworICAgICAgICBtX3BsYXRmb3JtTWVudS0+c2V0Q2xpZW50KG51bGxwdHIpOworICAg
ICAgICBtX3BsYXRmb3JtTWVudSA9IG51bGxwdHI7CiAgICAgfQogI2VuZGlmCiAKZGlmZiAtLWdp
dCBhL1NvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTFBsdWdJbkVsZW1lbnQuY3BwIGIvU291cmNlL1dl
YkNvcmUvaHRtbC9IVE1MUGx1Z0luRWxlbWVudC5jcHAKaW5kZXggMjIwNDZlYTg0MzU1NmM0ODBm
MTNiNzk1NjMyZTc5M2NmYTc0M2E5OS4uZDc4NmRmNGZlODcxMDNmNTIwMTNhYjdkNzc5OTcxMDQ1
ZGEyYzk2MSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvaHRtbC9IVE1MUGx1Z0luRWxlbWVu
dC5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvaHRtbC9IVE1MUGx1Z0luRWxlbWVudC5jcHAKQEAg
LTEwNCw3ICsxMDQsNyBAQCBib29sIEhUTUxQbHVnSW5FbGVtZW50Ojp3aWxsUmVzcG9uZFRvTW91
c2VDbGlja0V2ZW50cygpCiAKIHZvaWQgSFRNTFBsdWdJbkVsZW1lbnQ6OndpbGxEZXRhY2hSZW5k
ZXJlcnMoKQogewotICAgIG1faW5zdGFuY2UuY2xlYXIoKTsKKyAgICBtX2luc3RhbmNlID0gbnVs
bHB0cjsKIAogICAgIGlmIChtX2lzQ2FwdHVyaW5nTW91c2VFdmVudHMpIHsKICAgICAgICAgaWYg
KEZyYW1lKiBmcmFtZSA9IGRvY3VtZW50KCkuZnJhbWUoKSkKQEAgLTEyMiw3ICsxMjIsNyBAQCB2
b2lkIEhUTUxQbHVnSW5FbGVtZW50Ojp3aWxsRGV0YWNoUmVuZGVyZXJzKCkKIAogdm9pZCBIVE1M
UGx1Z0luRWxlbWVudDo6cmVzZXRJbnN0YW5jZSgpCiB7Ci0gICAgbV9pbnN0YW5jZS5jbGVhcigp
OworICAgIG1faW5zdGFuY2UgPSBudWxscHRyOwogfQogCiBQYXNzUmVmUHRyPEpTQzo6QmluZGlu
Z3M6Okluc3RhbmNlPiBIVE1MUGx1Z0luRWxlbWVudDo6Z2V0SW5zdGFuY2UoKQpkaWZmIC0tZ2l0
IGEvU291cmNlL1dlYkNvcmUvaHRtbC9IVE1MVGFibGVFbGVtZW50LmNwcCBiL1NvdXJjZS9XZWJD
b3JlL2h0bWwvSFRNTFRhYmxlRWxlbWVudC5jcHAKaW5kZXggNGZiNjU2OWFlMjFlOTU3MzYzNzAw
MjM2MGNhMzNmOWI1MTcyYzU1ZC4uNzQ1NzM2MWI2ZTEyNWVhZWY5NjVhZjU0NTMzYmYzM2Y2ODQ2
ZWFhNyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvaHRtbC9IVE1MVGFibGVFbGVtZW50LmNw
cAorKysgYi9Tb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxUYWJsZUVsZW1lbnQuY3BwCkBAIC00MDIs
NyArNDAyLDcgQEAgdm9pZCBIVE1MVGFibGVFbGVtZW50OjpwYXJzZUF0dHJpYnV0ZShjb25zdCBR
dWFsaWZpZWROYW1lJiBuYW1lLCBjb25zdCBBdG9taWNTdHIKICAgICAgICAgSFRNTEVsZW1lbnQ6
OnBhcnNlQXR0cmlidXRlKG5hbWUsIHZhbHVlKTsKIAogICAgIGlmIChib3JkZXJzQmVmb3JlICE9
IGNlbGxCb3JkZXJzKCkgfHwgb2xkUGFkZGluZyAhPSBtX3BhZGRpbmcpIHsKLSAgICAgICAgbV9z
aGFyZWRDZWxsU3R5bGUgPSAwOworICAgICAgICBtX3NoYXJlZENlbGxTdHlsZSA9IG51bGxwdHI7
CiAgICAgICAgIGJvb2wgY2VsbENoYW5nZWQgPSBmYWxzZTsKICAgICAgICAgZm9yIChOb2RlKiBj
aGlsZCA9IGZpcnN0Q2hpbGQoKTsgY2hpbGQ7IGNoaWxkID0gY2hpbGQtPm5leHRTaWJsaW5nKCkp
CiAgICAgICAgICAgICBjZWxsQ2hhbmdlZCB8PSBzZXRUYWJsZUNlbGxzQ2hhbmdlZChjaGlsZCk7
CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9odG1sL1BsdWdpbkRvY3VtZW50LmNwcCBiL1Nv
dXJjZS9XZWJDb3JlL2h0bWwvUGx1Z2luRG9jdW1lbnQuY3BwCmluZGV4IDc3OTZjMjdiM2RjMTg3
MmNiNjExYjc4NjUxZDQyMjVlYTIzNjM0OTguLmU5Njc3MDkwZjRjMzg1M2E3Y2ZmMjA4YjIzYzMx
ZGM5ZDI1NDQ4MjEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2h0bWwvUGx1Z2luRG9jdW1l
bnQuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2h0bWwvUGx1Z2luRG9jdW1lbnQuY3BwCkBAIC0x
NjgsOCArMTY4LDggQEAgdm9pZCBQbHVnaW5Eb2N1bWVudDo6c2V0UGx1Z2luRWxlbWVudChQYXNz
UmVmUHRyPEhUTUxQbHVnSW5FbGVtZW50PiBlbGVtZW50KQogdm9pZCBQbHVnaW5Eb2N1bWVudDo6
ZGV0YWNoRnJvbVBsdWdpbkVsZW1lbnQoKQogewogICAgIC8vIFJlbGVhc2UgdGhlIHBsdWdpbiBF
bGVtZW50IHNvIHRoYXQgd2UgZG9uJ3QgaGF2ZSBhIGNpcmN1bGFyIHJlZmVyZW5jZS4KLSAgICBt
X3BsdWdpbkVsZW1lbnQgPSAwOwotICAgIGZyYW1lKCktPmxvYWRlcigpLmNsaWVudCgpLnJlZGly
ZWN0RGF0YVRvUGx1Z2luKDApOworICAgIG1fcGx1Z2luRWxlbWVudCA9IG51bGxwdHI7CisgICAg
ZnJhbWUoKS0+bG9hZGVyKCkuY2xpZW50KCkucmVkaXJlY3REYXRhVG9QbHVnaW4obnVsbHB0cik7
CiB9CiAKIHZvaWQgUGx1Z2luRG9jdW1lbnQ6OmNhbmNlbE1hbnVhbFBsdWdpbkxvYWQoKQpkaWZm
IC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvaHRtbC9UZXh0RmllbGRJbnB1dFR5cGUuY3BwIGIvU291
cmNlL1dlYkNvcmUvaHRtbC9UZXh0RmllbGRJbnB1dFR5cGUuY3BwCmluZGV4IDRiMjhhYThkYTJk
MWE1NWRkOWVhNDIwZTQxNDJlMTRlNzMxYjc5YzUuLmVhZTNkYjI5ZWVlM2MyZGU5NWZlNzE4MGM1
NDZmZjhlN2UyYTc2N2UgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2h0bWwvVGV4dEZpZWxk
SW5wdXRUeXBlLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9odG1sL1RleHRGaWVsZElucHV0VHlw
ZS5jcHAKQEAgLTQ2Miw3ICs0NjIsNyBAQCB2b2lkIFRleHRGaWVsZElucHV0VHlwZTo6dXBkYXRl
UGxhY2Vob2xkZXJUZXh0KCkKICAgICBpZiAocGxhY2Vob2xkZXJUZXh0LmlzRW1wdHkoKSkgewog
ICAgICAgICBpZiAobV9wbGFjZWhvbGRlcikgewogICAgICAgICAgICAgbV9wbGFjZWhvbGRlci0+
cGFyZW50Tm9kZSgpLT5yZW1vdmVDaGlsZChtX3BsYWNlaG9sZGVyLmdldCgpLCBBU1NFUlRfTk9f
RVhDRVBUSU9OKTsKLSAgICAgICAgICAgIG1fcGxhY2Vob2xkZXIuY2xlYXIoKTsKKyAgICAgICAg
ICAgIG1fcGxhY2Vob2xkZXIgPSBudWxscHRyOwogICAgICAgICB9CiAgICAgICAgIHJldHVybjsK
ICAgICB9CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9odG1sL1ZhbGlkYXRpb25NZXNzYWdl
LmNwcCBiL1NvdXJjZS9XZWJDb3JlL2h0bWwvVmFsaWRhdGlvbk1lc3NhZ2UuY3BwCmluZGV4IDUz
YjY3NWJjMmI0OTQ2NzRlN2JmYzViYTM5YjY5YjY2Zjg5NWYwYjguLmY2MWUxYjVlZmUyNzA5MzFk
YWIwZWMyZWVkZjBmMzRiZDc3ODJiOTYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2h0bWwv
VmFsaWRhdGlvbk1lc3NhZ2UuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2h0bWwvVmFsaWRhdGlv
bk1lc3NhZ2UuY3BwCkBAIC0yMzUsMTAgKzIzNSwxMCBAQCB2b2lkIFZhbGlkYXRpb25NZXNzYWdl
OjpkZWxldGVCdWJibGVUcmVlKCkKIHsKICAgICBBU1NFUlQoIXZhbGlkYXRpb25NZXNzYWdlQ2xp
ZW50KCkpOwogICAgIGlmIChtX2J1YmJsZSkgewotICAgICAgICBtX21lc3NhZ2VIZWFkaW5nID0g
MDsKLSAgICAgICAgbV9tZXNzYWdlQm9keSA9IDA7CisgICAgICAgIG1fbWVzc2FnZUhlYWRpbmcg
PSBudWxscHRyOworICAgICAgICBtX21lc3NhZ2VCb2R5ID0gbnVsbHB0cjsKICAgICAgICAgbV9l
bGVtZW50LT51c2VyQWdlbnRTaGFkb3dSb290KCktPnJlbW92ZUNoaWxkKG1fYnViYmxlLmdldCgp
LCBBU1NFUlRfTk9fRVhDRVBUSU9OKTsKLSAgICAgICAgbV9idWJibGUgPSAwOworICAgICAgICBt
X2J1YmJsZSA9IG51bGxwdHI7CiAgICAgfQogICAgIG1fbWVzc2FnZSA9IFN0cmluZygpOwogfQpk
aWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvaHRtbC9jYW52YXMvV2ViR0xQcm9ncmFtLmNwcCBi
L1NvdXJjZS9XZWJDb3JlL2h0bWwvY2FudmFzL1dlYkdMUHJvZ3JhbS5jcHAKaW5kZXggOTJjMDUx
MTkwMWQzMDZjMzg1MzlkNTUzMzk4ZjE1MDJiM2YwYWRhYy4uMWI3NTJlNmUwZmRiNGJhNjNjOTNi
YzJlNzUzMDYyNTY1YzJkNGNkNyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvaHRtbC9jYW52
YXMvV2ViR0xQcm9ncmFtLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9odG1sL2NhbnZhcy9XZWJH
TFByb2dyYW0uY3BwCkBAIC01OCwxMSArNTgsMTEgQEAgdm9pZCBXZWJHTFByb2dyYW06OmRlbGV0
ZU9iamVjdEltcGwoR3JhcGhpY3NDb250ZXh0M0QqIGNvbnRleHQzZCwgUGxhdGZvcm0zRE9iamUK
ICAgICBjb250ZXh0M2QtPmRlbGV0ZVByb2dyYW0ob2JqKTsKICAgICBpZiAobV92ZXJ0ZXhTaGFk
ZXIpIHsKICAgICAgICAgbV92ZXJ0ZXhTaGFkZXItPm9uRGV0YWNoZWQoY29udGV4dDNkKTsKLSAg
ICAgICAgbV92ZXJ0ZXhTaGFkZXIgPSAwOworICAgICAgICBtX3ZlcnRleFNoYWRlciA9IG51bGxw
dHI7CiAgICAgfQogICAgIGlmIChtX2ZyYWdtZW50U2hhZGVyKSB7CiAgICAgICAgIG1fZnJhZ21l
bnRTaGFkZXItPm9uRGV0YWNoZWQoY29udGV4dDNkKTsKLSAgICAgICAgbV9mcmFnbWVudFNoYWRl
ciA9IDA7CisgICAgICAgIG1fZnJhZ21lbnRTaGFkZXIgPSBudWxscHRyOwogICAgIH0KIH0KIApA
QCAtMTQ4LDEyICsxNDgsMTIgQEAgYm9vbCBXZWJHTFByb2dyYW06OmRldGFjaFNoYWRlcihXZWJH
TFNoYWRlciogc2hhZGVyKQogICAgIGNhc2UgR3JhcGhpY3NDb250ZXh0M0Q6OlZFUlRFWF9TSEFE
RVI6CiAgICAgICAgIGlmIChtX3ZlcnRleFNoYWRlciAhPSBzaGFkZXIpCiAgICAgICAgICAgICBy
ZXR1cm4gZmFsc2U7Ci0gICAgICAgIG1fdmVydGV4U2hhZGVyID0gMDsKKyAgICAgICAgbV92ZXJ0
ZXhTaGFkZXIgPSBudWxscHRyOwogICAgICAgICByZXR1cm4gdHJ1ZTsKICAgICBjYXNlIEdyYXBo
aWNzQ29udGV4dDNEOjpGUkFHTUVOVF9TSEFERVI6CiAgICAgICAgIGlmIChtX2ZyYWdtZW50U2hh
ZGVyICE9IHNoYWRlcikKICAgICAgICAgICAgIHJldHVybiBmYWxzZTsKLSAgICAgICAgbV9mcmFn
bWVudFNoYWRlciA9IDA7CisgICAgICAgIG1fZnJhZ21lbnRTaGFkZXIgPSBudWxscHRyOwogICAg
ICAgICByZXR1cm4gdHJ1ZTsKICAgICBkZWZhdWx0OgogICAgICAgICByZXR1cm4gZmFsc2U7CmRp
ZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9odG1sL2NhbnZhcy9XZWJHTFJlbmRlcmluZ0NvbnRl
eHRCYXNlLmNwcCBiL1NvdXJjZS9XZWJDb3JlL2h0bWwvY2FudmFzL1dlYkdMUmVuZGVyaW5nQ29u
dGV4dEJhc2UuY3BwCmluZGV4IGI2NmI2NjkwNGIxNGZmZGUyZjMzOWFkNmRhMjc2ZjZkNzZjMWI0
YTMuLjdhMWNmZjNmMjgzYTg4ODZjMTcyM2FhMDNmZGY5NzE5MWNlZGZlNTggMTAwNjQ0Ci0tLSBh
L1NvdXJjZS9XZWJDb3JlL2h0bWwvY2FudmFzL1dlYkdMUmVuZGVyaW5nQ29udGV4dEJhc2UuY3Bw
CisrKyBiL1NvdXJjZS9XZWJDb3JlL2h0bWwvY2FudmFzL1dlYkdMUmVuZGVyaW5nQ29udGV4dEJh
c2UuY3BwCkBAIC00OTQsMTAgKzQ5NCwxMCBAQCB2b2lkIFdlYkdMUmVuZGVyaW5nQ29udGV4dEJh
c2U6OmluaXRpYWxpemVOZXdDb250ZXh0KCkKICAgICBtX3VucGFja0ZsaXBZID0gZmFsc2U7CiAg
ICAgbV91bnBhY2tQcmVtdWx0aXBseUFscGhhID0gZmFsc2U7CiAgICAgbV91bnBhY2tDb2xvcnNw
YWNlQ29udmVyc2lvbiA9IEdyYXBoaWNzQ29udGV4dDNEOjpCUk9XU0VSX0RFRkFVTFRfV0VCR0w7
Ci0gICAgbV9ib3VuZEFycmF5QnVmZmVyID0gMDsKLSAgICBtX2N1cnJlbnRQcm9ncmFtID0gMDsK
LSAgICBtX2ZyYW1lYnVmZmVyQmluZGluZyA9IDA7Ci0gICAgbV9yZW5kZXJidWZmZXJCaW5kaW5n
ID0gMDsKKyAgICBtX2JvdW5kQXJyYXlCdWZmZXIgPSBudWxscHRyOworICAgIG1fY3VycmVudFBy
b2dyYW0gPSBudWxscHRyOworICAgIG1fZnJhbWVidWZmZXJCaW5kaW5nID0gbnVsbHB0cjsKKyAg
ICBtX3JlbmRlcmJ1ZmZlckJpbmRpbmcgPSBudWxscHRyOwogICAgIG1fZGVwdGhNYXNrID0gdHJ1
ZTsKICAgICBtX3N0ZW5jaWxFbmFibGVkID0gZmFsc2U7CiAgICAgbV9zdGVuY2lsTWFzayA9IDB4
RkZGRkZGRkY7CkBAIC02MjMsNyArNjIzLDcgQEAgdm9pZCBXZWJHTFJlbmRlcmluZ0NvbnRleHRC
YXNlOjpkZXN0cm95R3JhcGhpY3NDb250ZXh0M0QoKQogICAgIGlmIChtX2NvbnRleHQpIHsKICAg
ICAgICAgbV9jb250ZXh0LT5zZXRDb250ZXh0TG9zdENhbGxiYWNrKG51bGxwdHIpOwogICAgICAg
ICBtX2NvbnRleHQtPnNldEVycm9yTWVzc2FnZUNhbGxiYWNrKG51bGxwdHIpOwotICAgICAgICBt
X2NvbnRleHQuY2xlYXIoKTsKKyAgICAgICAgbV9jb250ZXh0ID0gbnVsbHB0cjsKICAgICB9CiB9
CiAKQEAgLTE0NzksNyArMTQ3OSw3IEBAIHZvaWQgV2ViR0xSZW5kZXJpbmdDb250ZXh0QmFzZTo6
ZGVsZXRlQnVmZmVyKFdlYkdMQnVmZmVyKiBidWZmZXIpCiAgICAgaWYgKCFkZWxldGVPYmplY3Qo
YnVmZmVyKSkKICAgICAgICAgcmV0dXJuOwogICAgIGlmIChtX2JvdW5kQXJyYXlCdWZmZXIgPT0g
YnVmZmVyKQotICAgICAgICBtX2JvdW5kQXJyYXlCdWZmZXIgPSAwOworICAgICAgICBtX2JvdW5k
QXJyYXlCdWZmZXIgPSBudWxscHRyOwogCiAgICAgbV9ib3VuZFZlcnRleEFycmF5T2JqZWN0LT51
bmJpbmRCdWZmZXIoYnVmZmVyKTsKIH0KQEAgLTE0ODksNyArMTQ4OSw3IEBAIHZvaWQgV2ViR0xS
ZW5kZXJpbmdDb250ZXh0QmFzZTo6ZGVsZXRlRnJhbWVidWZmZXIoV2ViR0xGcmFtZWJ1ZmZlciog
ZnJhbWVidWZmZXIpCiAgICAgaWYgKCFkZWxldGVPYmplY3QoZnJhbWVidWZmZXIpKQogICAgICAg
ICByZXR1cm47CiAgICAgaWYgKGZyYW1lYnVmZmVyID09IG1fZnJhbWVidWZmZXJCaW5kaW5nKSB7
Ci0gICAgICAgIG1fZnJhbWVidWZmZXJCaW5kaW5nID0gMDsKKyAgICAgICAgbV9mcmFtZWJ1ZmZl
ckJpbmRpbmcgPSBudWxscHRyOwogICAgICAgICBtX2NvbnRleHQtPmJpbmRGcmFtZWJ1ZmZlcihH
cmFwaGljc0NvbnRleHQzRDo6RlJBTUVCVUZGRVIsIDApOwogICAgIH0KIH0KQEAgLTE1MDYsNyAr
MTUwNiw3IEBAIHZvaWQgV2ViR0xSZW5kZXJpbmdDb250ZXh0QmFzZTo6ZGVsZXRlUmVuZGVyYnVm
ZmVyKFdlYkdMUmVuZGVyYnVmZmVyKiByZW5kZXJidWZmCiAgICAgaWYgKCFkZWxldGVPYmplY3Qo
cmVuZGVyYnVmZmVyKSkKICAgICAgICAgcmV0dXJuOwogICAgIGlmIChyZW5kZXJidWZmZXIgPT0g
bV9yZW5kZXJidWZmZXJCaW5kaW5nKQotICAgICAgICBtX3JlbmRlcmJ1ZmZlckJpbmRpbmcgPSAw
OworICAgICAgICBtX3JlbmRlcmJ1ZmZlckJpbmRpbmcgPSBudWxscHRyOwogICAgIGlmIChtX2Zy
YW1lYnVmZmVyQmluZGluZykKICAgICAgICAgbV9mcmFtZWJ1ZmZlckJpbmRpbmctPnJlbW92ZUF0
dGFjaG1lbnRGcm9tQm91bmRGcmFtZWJ1ZmZlcihyZW5kZXJidWZmZXIpOwogfQpkaWZmIC0tZ2l0
IGEvU291cmNlL1dlYkNvcmUvaHRtbC9jYW52YXMvV2ViR0xWZXJ0ZXhBcnJheU9iamVjdEJhc2Uu
Y3BwIGIvU291cmNlL1dlYkNvcmUvaHRtbC9jYW52YXMvV2ViR0xWZXJ0ZXhBcnJheU9iamVjdEJh
c2UuY3BwCmluZGV4IGY2ZDhkYTY2ZTgwMTQ3OTc4ZjgxNzU3YzYzYmU0NmVhYzY5NTU4NDkuLmYz
OWMwZGRkMjI3NzlkMDVmMTYwZDE5Nzk1NjMxOGE2MDBlYjkzY2MgMTAwNjQ0Ci0tLSBhL1NvdXJj
ZS9XZWJDb3JlL2h0bWwvY2FudmFzL1dlYkdMVmVydGV4QXJyYXlPYmplY3RCYXNlLmNwcAorKysg
Yi9Tb3VyY2UvV2ViQ29yZS9odG1sL2NhbnZhcy9XZWJHTFZlcnRleEFycmF5T2JqZWN0QmFzZS5j
cHAKQEAgLTc2LDcgKzc2LDcgQEAgdm9pZCBXZWJHTFZlcnRleEFycmF5T2JqZWN0QmFzZTo6dW5i
aW5kQnVmZmVyKFBhc3NSZWZQdHI8V2ViR0xCdWZmZXI+IGJ1ZmZlcikKIHsKICAgICBpZiAobV9i
b3VuZEVsZW1lbnRBcnJheUJ1ZmZlciA9PSBidWZmZXIpIHsKICAgICAgICAgbV9ib3VuZEVsZW1l
bnRBcnJheUJ1ZmZlci0+b25EZXRhY2hlZChjb250ZXh0KCktPmdyYXBoaWNzQ29udGV4dDNEKCkp
OwotICAgICAgICBtX2JvdW5kRWxlbWVudEFycmF5QnVmZmVyID0gMDsKKyAgICAgICAgbV9ib3Vu
ZEVsZW1lbnRBcnJheUJ1ZmZlciA9IG51bGxwdHI7CiAgICAgfQogICAgIAogICAgIGZvciAoc2l6
ZV90IGkgPSAwOyBpIDwgbV92ZXJ0ZXhBdHRyaWJTdGF0ZS5zaXplKCk7ICsraSkgewpAQCAtOTUs
NyArOTUsNyBAQCB2b2lkIFdlYkdMVmVydGV4QXJyYXlPYmplY3RCYXNlOjp1bmJpbmRCdWZmZXIo
UGFzc1JlZlB0cjxXZWJHTEJ1ZmZlcj4gYnVmZmVyKQogICAgICAgICAgICAgICAgIHN0YXRlLm9y
aWdpbmFsU3RyaWRlID0gMDsKICAgICAgICAgICAgICAgICBzdGF0ZS5vZmZzZXQgPSAwOwogICAg
ICAgICAgICAgfSBlbHNlCi0gICAgICAgICAgICAgICAgc3RhdGUuYnVmZmVyQmluZGluZyA9IDA7
CisgICAgICAgICAgICAgICAgc3RhdGUuYnVmZmVyQmluZGluZyA9IG51bGxwdHI7CiAgICAgICAg
IH0KICAgICB9CiB9CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9odG1sL3RyYWNrL1RleHRU
cmFjay5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9odG1sL3RyYWNrL1RleHRUcmFjay5jcHAKaW5kZXgg
NzRlY2YxNmQ3MDk3NjZmNGFmMWY0NWRjMjA2YzJkZWM2MzM2YTZmMS4uMmExMzNhNWZjZWFmZTNj
N2IzYmMxODZhZDJiODU3MGY2MTJlZDMxOSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvaHRt
bC90cmFjay9UZXh0VHJhY2suY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2h0bWwvdHJhY2svVGV4
dFRyYWNrLmNwcApAQCAtMjQ1LDcgKzI0NSw3IEBAIFRleHRUcmFja0N1ZUxpc3QqIFRleHRUcmFj
azo6Y3VlcygpCiAgICAgLy8gaHR0cDovL3d3dy53aGF0d2cub3JnL3NwZWNzL3dlYi1hcHBzL2N1
cnJlbnQtd29yay8jZG9tLXRleHR0cmFjay1jdWVzCiAgICAgaWYgKG1fbW9kZSAhPSBkaXNhYmxl
ZEtleXdvcmQoKSkKICAgICAgICAgcmV0dXJuIGVuc3VyZVRleHRUcmFja0N1ZUxpc3QoKTsKLSAg
ICByZXR1cm4gMDsKKyAgICByZXR1cm4gbnVsbHB0cjsKIH0KIAogdm9pZCBUZXh0VHJhY2s6OnJl
bW92ZUFsbEN1ZXMoKQpAQCAtMjU3LDkgKzI1Nyw5IEBAIHZvaWQgVGV4dFRyYWNrOjpyZW1vdmVB
bGxDdWVzKCkKICAgICAgICAgbV9jbGllbnQtPnRleHRUcmFja1JlbW92ZUN1ZXModGhpcywgbV9j
dWVzLmdldCgpKTsKICAgICAKICAgICBmb3IgKHNpemVfdCBpID0gMDsgaSA8IG1fY3Vlcy0+bGVu
Z3RoKCk7ICsraSkKLSAgICAgICAgbV9jdWVzLT5pdGVtKGkpLT5zZXRUcmFjaygwKTsKKyAgICAg
ICAgbV9jdWVzLT5pdGVtKGkpLT5zZXRUcmFjayhudWxscHRyKTsKICAgICAKLSAgICBtX2N1ZXMg
PSAwOworICAgIG1fY3VlcyA9IG51bGxwdHI7CiB9CiAKIFRleHRUcmFja0N1ZUxpc3QqIFRleHRU
cmFjazo6YWN0aXZlQ3VlcygpIGNvbnN0CkBAIC0yNzIsNyArMjcyLDcgQEAgVGV4dFRyYWNrQ3Vl
TGlzdCogVGV4dFRyYWNrOjphY3RpdmVDdWVzKCkgY29uc3QKICAgICAvLyBodHRwOi8vd3d3Lndo
YXR3Zy5vcmcvc3BlY3Mvd2ViLWFwcHMvY3VycmVudC13b3JrLyNkb20tdGV4dHRyYWNrLWFjdGl2
ZWN1ZXMKICAgICBpZiAobV9jdWVzICYmIG1fbW9kZSAhPSBkaXNhYmxlZEtleXdvcmQoKSkKICAg
ICAgICAgcmV0dXJuIG1fY3Vlcy0+YWN0aXZlQ3VlcygpOwotICAgIHJldHVybiAwOworICAgIHJl
dHVybiBudWxscHRyOwogfQogCiB2b2lkIFRleHRUcmFjazo6YWRkQ3VlKFBhc3NSZWZQdHI8VGV4
dFRyYWNrQ3VlPiBwcnBDdWUsIEV4Y2VwdGlvbkNvZGUmIGVjKQpkaWZmIC0tZ2l0IGEvU291cmNl
L1dlYkNvcmUvaHRtbC90cmFjay9WVFRDdWUuY3BwIGIvU291cmNlL1dlYkNvcmUvaHRtbC90cmFj
ay9WVFRDdWUuY3BwCmluZGV4IDM0YTJlZTc5NmE4ODgwMDY5MDMyODgzYzMxZWI4ZmYxNWU3NDdi
ZDMuLjBiOWM3MTc5MzBiZjA2N2I1ZWEyM2U1MTQzMWY5ZmNlYTk3ZDZiYjUgMTAwNjQ0Ci0tLSBh
L1NvdXJjZS9XZWJDb3JlL2h0bWwvdHJhY2svVlRUQ3VlLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29y
ZS9odG1sL3RyYWNrL1ZUVEN1ZS5jcHAKQEAgLTQ4Miw3ICs0ODIsNyBAQCB2b2lkIFZUVEN1ZTo6
c2V0VGV4dChjb25zdCBTdHJpbmcmIHRleHQpCiAgICAgd2lsbENoYW5nZSgpOwogICAgIC8vIENs
ZWFyIHRoZSBkb2N1bWVudCBmcmFnbWVudCBidXQgZG9uJ3QgYm90aGVyIHRvIGNyZWF0ZSBpdCBh
Z2FpbiBqdXN0IHlldCBhcyB3ZSBjYW4gZG8gdGhhdAogICAgIC8vIHdoZW4gaXQgaXMgcmVxdWVz
dGVkLgotICAgIG1fd2ViVlRUTm9kZVRyZWUgPSAwOworICAgIG1fd2ViVlRUTm9kZVRyZWUgPSBu
dWxscHRyOwogICAgIG1fY29udGVudCA9IHRleHQ7CiAgICAgZGlkQ2hhbmdlKCk7CiB9CmRpZmYg
LS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvSW5zcGVjdG9yQXBwbGljYXRpb25DYWNo
ZUFnZW50LmNwcCBiL1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9JbnNwZWN0b3JBcHBsaWNhdGlv
bkNhY2hlQWdlbnQuY3BwCmluZGV4IGZkNGNhZjYyMTQxMTlhODQ0N2MwMjk0NTc0MDRmMWY1MmJj
OGUzN2EuLjJkY2QyNmU5OWJmM2EwN2E2NzYwOGFhZTEyZDU3NDQzOTA1YTYyNjUgMTAwNjQ0Ci0t
LSBhL1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9JbnNwZWN0b3JBcHBsaWNhdGlvbkNhY2hlQWdl
bnQuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9JbnNwZWN0b3JBcHBsaWNhdGlv
bkNhY2hlQWdlbnQuY3BwCkBAIC01OCw3ICs1OCw3IEBAIHZvaWQgSW5zcGVjdG9yQXBwbGljYXRp
b25DYWNoZUFnZW50OjpkaWRDcmVhdGVGcm9udGVuZEFuZEJhY2tlbmQoRnJvbnRlbmRDaGFubmVs
CiB2b2lkIEluc3BlY3RvckFwcGxpY2F0aW9uQ2FjaGVBZ2VudDo6d2lsbERlc3Ryb3lGcm9udGVu
ZEFuZEJhY2tlbmQoSW5zcGVjdG9yOjpEaXNjb25uZWN0UmVhc29uKQogewogICAgIG1fZnJvbnRl
bmREaXNwYXRjaGVyID0gbnVsbHB0cjsKLSAgICBtX2JhY2tlbmREaXNwYXRjaGVyLmNsZWFyKCk7
CisgICAgbV9iYWNrZW5kRGlzcGF0Y2hlciA9IG51bGxwdHI7CiAKICAgICBtX2luc3RydW1lbnRp
bmdBZ2VudHMtPnNldEluc3BlY3RvckFwcGxpY2F0aW9uQ2FjaGVBZ2VudChudWxscHRyKTsKIH0K
ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9JbnNwZWN0b3JDU1NBZ2VudC5j
cHAgYi9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvSW5zcGVjdG9yQ1NTQWdlbnQuY3BwCmluZGV4
IGE5MDgzZDA4MTQyN2I5YzAxOTE4OWU2YzQ5YjgxNDYyZWYzNjM1OWUuLjNkMDYyMDgzNGViMjhj
ZGZkMDZiNThjZDY2MjZiYTNjMTQ4ZTcxOTEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2lu
c3BlY3Rvci9JbnNwZWN0b3JDU1NBZ2VudC5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvaW5zcGVj
dG9yL0luc3BlY3RvckNTU0FnZW50LmNwcApAQCAtMzYwLDcgKzM2MCw3IEBAIHZvaWQgSW5zcGVj
dG9yQ1NTQWdlbnQ6OmRpZENyZWF0ZUZyb250ZW5kQW5kQmFja2VuZChJbnNwZWN0b3I6OkZyb250
ZW5kQ2hhbm5lbCoKIHZvaWQgSW5zcGVjdG9yQ1NTQWdlbnQ6OndpbGxEZXN0cm95RnJvbnRlbmRB
bmRCYWNrZW5kKEluc3BlY3Rvcjo6RGlzY29ubmVjdFJlYXNvbikKIHsKICAgICBtX2Zyb250ZW5k
RGlzcGF0Y2hlciA9IG51bGxwdHI7Ci0gICAgbV9iYWNrZW5kRGlzcGF0Y2hlci5jbGVhcigpOwor
ICAgIG1fYmFja2VuZERpc3BhdGNoZXIgPSBudWxscHRyOwogCiAgICAgcmVzZXROb25QZXJzaXN0
ZW50RGF0YSgpOwogfQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL0luc3Bl
Y3RvckNvbnRyb2xsZXIuY3BwIGIvU291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL0luc3BlY3RvckNv
bnRyb2xsZXIuY3BwCmluZGV4IGYyM2E1ZWEwZWU1NmQwNWUxNDQ1MTA2YTcyNWFjMWM5NmE0Njhl
OTkuLmJjODBiY2EyOWM5NTE0Nzc3ZGEwNGRjMWNhZTFiNzUxY2Y5ZmY4YWYgMTAwNjQ0Ci0tLSBh
L1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9JbnNwZWN0b3JDb250cm9sbGVyLmNwcAorKysgYi9T
b3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvSW5zcGVjdG9yQ29udHJvbGxlci5jcHAKQEAgLTI2Myw3
ICsyNjMsNyBAQCB2b2lkIEluc3BlY3RvckNvbnRyb2xsZXI6OmRpc2Nvbm5lY3RGcm9udGVuZChE
aXNjb25uZWN0UmVhc29uIHJlYXNvbikKICAgICBtX2FnZW50cy53aWxsRGVzdHJveUZyb250ZW5k
QW5kQmFja2VuZChyZWFzb24pOwogCiAgICAgbV9iYWNrZW5kRGlzcGF0Y2hlci0+Y2xlYXJGcm9u
dGVuZCgpOwotICAgIG1fYmFja2VuZERpc3BhdGNoZXIuY2xlYXIoKTsKKyAgICBtX2JhY2tlbmRE
aXNwYXRjaGVyID0gbnVsbHB0cjsKICAgICBtX2Zyb250ZW5kQ2hhbm5lbCA9IG51bGxwdHI7CiAK
ICAgICBtX2lzQXV0b21hdGljSW5zcGVjdGlvbiA9IGZhbHNlOwpkaWZmIC0tZ2l0IGEvU291cmNl
L1dlYkNvcmUvaW5zcGVjdG9yL0luc3BlY3RvckRPTUFnZW50LmNwcCBiL1NvdXJjZS9XZWJDb3Jl
L2luc3BlY3Rvci9JbnNwZWN0b3JET01BZ2VudC5jcHAKaW5kZXggMGVkMmM1YzA0ZmFhM2IxY2M4
YmIwNWQ0OWFkOTZhNmQxOTcxMmNhMS4uNzE5Zjc2MWRlNTZkOTA5MTU0YWYxNjIxNjBlMDJhMTQ2
Y2E2MjYyZCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL0luc3BlY3RvckRP
TUFnZW50LmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvSW5zcGVjdG9yRE9NQWdl
bnQuY3BwCkBAIC0yMzgsNyArMjM4LDcgQEAgdm9pZCBJbnNwZWN0b3JET01BZ2VudDo6ZGlkQ3Jl
YXRlRnJvbnRlbmRBbmRCYWNrZW5kKEluc3BlY3Rvcjo6RnJvbnRlbmRDaGFubmVsKgogdm9pZCBJ
bnNwZWN0b3JET01BZ2VudDo6d2lsbERlc3Ryb3lGcm9udGVuZEFuZEJhY2tlbmQoSW5zcGVjdG9y
OjpEaXNjb25uZWN0UmVhc29uKQogewogICAgIG1fZnJvbnRlbmREaXNwYXRjaGVyID0gbnVsbHB0
cjsKLSAgICBtX2JhY2tlbmREaXNwYXRjaGVyLmNsZWFyKCk7CisgICAgbV9iYWNrZW5kRGlzcGF0
Y2hlciA9IG51bGxwdHI7CiAKICAgICBtX2hpc3RvcnkucmVzZXQoKTsKICAgICBtX2RvbUVkaXRv
ci5yZXNldCgpOwpAQCAtMjcyLDcgKzI3Miw3IEBAIHZvaWQgSW5zcGVjdG9yRE9NQWdlbnQ6OnJl
c2V0KCkKICAgICBkaXNjYXJkQmluZGluZ3MoKTsKICAgICBpZiAobV9yZXZhbGlkYXRlU3R5bGVB
dHRyVGFzaykKICAgICAgICAgbV9yZXZhbGlkYXRlU3R5bGVBdHRyVGFzay0+cmVzZXQoKTsKLSAg
ICBtX2RvY3VtZW50ID0gMDsKKyAgICBtX2RvY3VtZW50ID0gbnVsbHB0cjsKIH0KIAogdm9pZCBJ
bnNwZWN0b3JET01BZ2VudDo6c2V0RE9NTGlzdGVuZXIoRE9NTGlzdGVuZXIqIGxpc3RlbmVyKQpk
aWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL0luc3BlY3RvckRPTURlYnVnZ2Vy
QWdlbnQuY3BwIGIvU291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL0luc3BlY3RvckRPTURlYnVnZ2Vy
QWdlbnQuY3BwCmluZGV4IGY3NzhkZDk2MmNiMmRkYzE2MDYzMTc0NmE5OTViZGRhMGE5YjI3OGIu
LmQ1MWQ0YmVhZTkxMjIzNTA3YjZjNDQ2Nzc5NDRjYjI3YmEzNmM0NjQgMTAwNjQ0Ci0tLSBhL1Nv
dXJjZS9XZWJDb3JlL2luc3BlY3Rvci9JbnNwZWN0b3JET01EZWJ1Z2dlckFnZW50LmNwcAorKysg
Yi9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvSW5zcGVjdG9yRE9NRGVidWdnZXJBZ2VudC5jcHAK
QEAgLTEwOSw3ICsxMDksNyBAQCB2b2lkIEluc3BlY3RvckRPTURlYnVnZ2VyQWdlbnQ6OmRpZENy
ZWF0ZUZyb250ZW5kQW5kQmFja2VuZChJbnNwZWN0b3I6OkZyb250ZW5kQwogCiB2b2lkIEluc3Bl
Y3RvckRPTURlYnVnZ2VyQWdlbnQ6OndpbGxEZXN0cm95RnJvbnRlbmRBbmRCYWNrZW5kKEluc3Bl
Y3Rvcjo6RGlzY29ubmVjdFJlYXNvbikKIHsKLSAgICBtX2JhY2tlbmREaXNwYXRjaGVyLmNsZWFy
KCk7CisgICAgbV9iYWNrZW5kRGlzcGF0Y2hlciA9IG51bGxwdHI7CiAKICAgICBkaXNhYmxlKCk7
CiB9CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvSW5zcGVjdG9yRE9NU3Rv
cmFnZUFnZW50LmNwcCBiL1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9JbnNwZWN0b3JET01TdG9y
YWdlQWdlbnQuY3BwCmluZGV4IGIxNjg3Y2Y1NDg1M2Y2MjJmNTJhNjc2OGM5MmNjZjQyNThlN2E1
ZjEuLjA0YWY4OGJjZTNkYzAwNTE0ODViM2UyYTUwZDk3MTYwMTdjMmY2OWYgMTAwNjQ0Ci0tLSBh
L1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9JbnNwZWN0b3JET01TdG9yYWdlQWdlbnQuY3BwCisr
KyBiL1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9JbnNwZWN0b3JET01TdG9yYWdlQWdlbnQuY3Bw
CkBAIC03Niw3ICs3Niw3IEBAIHZvaWQgSW5zcGVjdG9yRE9NU3RvcmFnZUFnZW50OjpkaWRDcmVh
dGVGcm9udGVuZEFuZEJhY2tlbmQoSW5zcGVjdG9yOjpGcm9udGVuZENoCiB2b2lkIEluc3BlY3Rv
ckRPTVN0b3JhZ2VBZ2VudDo6d2lsbERlc3Ryb3lGcm9udGVuZEFuZEJhY2tlbmQoSW5zcGVjdG9y
OjpEaXNjb25uZWN0UmVhc29uKQogewogICAgIG1fZnJvbnRlbmREaXNwYXRjaGVyID0gbnVsbHB0
cjsKLSAgICBtX2JhY2tlbmREaXNwYXRjaGVyLmNsZWFyKCk7CisgICAgbV9iYWNrZW5kRGlzcGF0
Y2hlciA9IG51bGxwdHI7CiAKICAgICBFcnJvclN0cmluZyB1bnVzZWQ7CiAgICAgZGlzYWJsZSh1
bnVzZWQpOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL0luc3BlY3RvckRh
dGFiYXNlQWdlbnQuY3BwIGIvU291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL0luc3BlY3RvckRhdGFi
YXNlQWdlbnQuY3BwCmluZGV4IDkxMzRkZmU0N2M3OWM2YzZlZjQ0MTM0NDUyMGI3MDQ2ZTFkNWRj
MTMuLmJlMjdmOTU2MTQ0NTlmYmZmZDFiMDJkNDg1Y2YxZDc3ZGVkOTY2ZWQgMTAwNjQ0Ci0tLSBh
L1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9JbnNwZWN0b3JEYXRhYmFzZUFnZW50LmNwcAorKysg
Yi9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvSW5zcGVjdG9yRGF0YWJhc2VBZ2VudC5jcHAKQEAg
LTIzMSw3ICsyMzEsNyBAQCB2b2lkIEluc3BlY3RvckRhdGFiYXNlQWdlbnQ6OmRpZENyZWF0ZUZy
b250ZW5kQW5kQmFja2VuZChJbnNwZWN0b3I6OkZyb250ZW5kQ2hhbgogdm9pZCBJbnNwZWN0b3JE
YXRhYmFzZUFnZW50Ojp3aWxsRGVzdHJveUZyb250ZW5kQW5kQmFja2VuZChJbnNwZWN0b3I6OkRp
c2Nvbm5lY3RSZWFzb24pCiB7CiAgICAgbV9mcm9udGVuZERpc3BhdGNoZXIgPSBudWxscHRyOwot
ICAgIG1fYmFja2VuZERpc3BhdGNoZXIuY2xlYXIoKTsKKyAgICBtX2JhY2tlbmREaXNwYXRjaGVy
ID0gbnVsbHB0cjsKIAogICAgIEVycm9yU3RyaW5nIHVudXNlZDsKICAgICBkaXNhYmxlKHVudXNl
ZCk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvSW5zcGVjdG9ySW5kZXhl
ZERCQWdlbnQuY3BwIGIvU291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL0luc3BlY3RvckluZGV4ZWRE
QkFnZW50LmNwcAppbmRleCA5YmYxMjkxMTZjNGRjODBhMDg2MzFjMDRkNzA3YjE4M2FiOGJjYWNm
Li4xNzJmYjU4MTI4MDIwYTNhZTU1ZDY1ZDRmMDhmNTdhZTE2YTBlY2Y3IDEwMDY0NAotLS0gYS9T
b3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvSW5zcGVjdG9ySW5kZXhlZERCQWdlbnQuY3BwCisrKyBi
L1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9JbnNwZWN0b3JJbmRleGVkREJBZ2VudC5jcHAKQEAg
LTU4Miw3ICs1ODIsNyBAQCB2b2lkIEluc3BlY3RvckluZGV4ZWREQkFnZW50OjpkaWRDcmVhdGVG
cm9udGVuZEFuZEJhY2tlbmQoSW5zcGVjdG9yOjpGcm9udGVuZENoYQogCiB2b2lkIEluc3BlY3Rv
ckluZGV4ZWREQkFnZW50Ojp3aWxsRGVzdHJveUZyb250ZW5kQW5kQmFja2VuZChJbnNwZWN0b3I6
OkRpc2Nvbm5lY3RSZWFzb24pCiB7Ci0gICAgbV9iYWNrZW5kRGlzcGF0Y2hlci5jbGVhcigpOwor
ICAgIG1fYmFja2VuZERpc3BhdGNoZXIgPSBudWxscHRyOwogCiAgICAgRXJyb3JTdHJpbmcgdW51
c2VkOwogICAgIGRpc2FibGUodW51c2VkKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2lu
c3BlY3Rvci9JbnNwZWN0b3JMYXllclRyZWVBZ2VudC5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9pbnNw
ZWN0b3IvSW5zcGVjdG9yTGF5ZXJUcmVlQWdlbnQuY3BwCmluZGV4IGJlNjQ0OTZlNDYzOGQwMGMz
ZWMyODkwODY1NmFlNjc3YTczODk3NTguLmY2ZTQxZmFjODI4YWM2YzRmNzc2MDY1YWRmN2EzZGJm
OGQ3OGJlMDQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9JbnNwZWN0b3JM
YXllclRyZWVBZ2VudC5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL0luc3BlY3Rv
ckxheWVyVHJlZUFnZW50LmNwcApAQCAtNjUsNyArNjUsNyBAQCB2b2lkIEluc3BlY3RvckxheWVy
VHJlZUFnZW50OjpkaWRDcmVhdGVGcm9udGVuZEFuZEJhY2tlbmQoSW5zcGVjdG9yOjpGcm9udGVu
ZENoYQogdm9pZCBJbnNwZWN0b3JMYXllclRyZWVBZ2VudDo6d2lsbERlc3Ryb3lGcm9udGVuZEFu
ZEJhY2tlbmQoSW5zcGVjdG9yOjpEaXNjb25uZWN0UmVhc29uKQogewogICAgIG1fZnJvbnRlbmRE
aXNwYXRjaGVyID0gbnVsbHB0cjsKLSAgICBtX2JhY2tlbmREaXNwYXRjaGVyLmNsZWFyKCk7Cisg
ICAgbV9iYWNrZW5kRGlzcGF0Y2hlciA9IG51bGxwdHI7CiAKICAgICBFcnJvclN0cmluZyB1bnVz
ZWQ7CiAgICAgZGlzYWJsZSh1bnVzZWQpOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvaW5z
cGVjdG9yL0luc3BlY3Rvck92ZXJsYXkuY3BwIGIvU291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL0lu
c3BlY3Rvck92ZXJsYXkuY3BwCmluZGV4IDZkM2EwZjNjYTcyNjVhMWFmZjhjMzI4YTVmM2Y2Yjc5
YzMzMWQ4ZDQuLmZhZWE3Y2VmMmM2MzJlZTUxMDJjZGYyYjY1NDQ5N2FiODA3YmUxNzcgMTAwNjQ0
Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9JbnNwZWN0b3JPdmVybGF5LmNwcAorKysg
Yi9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvSW5zcGVjdG9yT3ZlcmxheS5jcHAKQEAgLTI0Myw5
ICsyNDMsOSBAQCB2b2lkIEluc3BlY3Rvck92ZXJsYXk6OnNldFBhdXNlZEluRGVidWdnZXJNZXNz
YWdlKGNvbnN0IFN0cmluZyogbWVzc2FnZSkKIAogdm9pZCBJbnNwZWN0b3JPdmVybGF5OjpoaWRl
SGlnaGxpZ2h0KCkKIHsKLSAgICBtX2hpZ2hsaWdodE5vZGUuY2xlYXIoKTsKLSAgICBtX2hpZ2hs
aWdodE5vZGVMaXN0LmNsZWFyKCk7Ci0gICAgbV9oaWdobGlnaHRRdWFkLnJlc2V0KCk7CisgICAg
bV9oaWdobGlnaHROb2RlID0gbnVsbHB0cjsKKyAgICBtX2hpZ2hsaWdodE5vZGVMaXN0ID0gbnVs
bHB0cjsKKyAgICBtX2hpZ2hsaWdodFF1YWQgPSBudWxscHRyOwogICAgIHVwZGF0ZSgpOwogfQog
CkBAIC0yNTMsNyArMjUzLDcgQEAgdm9pZCBJbnNwZWN0b3JPdmVybGF5OjpoaWdobGlnaHROb2Rl
TGlzdChQYXNzUmVmUHRyPE5vZGVMaXN0PiBub2RlcywgY29uc3QgSGlnaGwKIHsKICAgICBtX25v
ZGVIaWdobGlnaHRDb25maWcgPSBoaWdobGlnaHRDb25maWc7CiAgICAgbV9oaWdobGlnaHROb2Rl
TGlzdCA9IG5vZGVzOwotICAgIG1faGlnaGxpZ2h0Tm9kZS5jbGVhcigpOworICAgIG1faGlnaGxp
Z2h0Tm9kZSA9IG51bGxwdHI7CiAgICAgdXBkYXRlKCk7CiB9CiAKQEAgLTI2MSw3ICsyNjEsNyBA
QCB2b2lkIEluc3BlY3Rvck92ZXJsYXk6OmhpZ2hsaWdodE5vZGUoTm9kZSogbm9kZSwgY29uc3Qg
SGlnaGxpZ2h0Q29uZmlnJiBoaWdobGlnaAogewogICAgIG1fbm9kZUhpZ2hsaWdodENvbmZpZyA9
IGhpZ2hsaWdodENvbmZpZzsKICAgICBtX2hpZ2hsaWdodE5vZGUgPSBub2RlOwotICAgIG1faGln
aGxpZ2h0Tm9kZUxpc3QuY2xlYXIoKTsKKyAgICBtX2hpZ2hsaWdodE5vZGVMaXN0ID0gbnVsbHB0
cjsKICAgICB1cGRhdGUoKTsKIH0KIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvaW5zcGVj
dG9yL0luc3BlY3RvclBhZ2VBZ2VudC5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvSW5z
cGVjdG9yUGFnZUFnZW50LmNwcAppbmRleCA2ZjUyYmZhZTBiNTIzYzk2ZjE0ZTU3NDE3MjI2OTVh
MTc1NTFjYThhLi4zZTlmZWJlZmI1NGZlNDQ4YWM4ODA3NmQ5OTZmOWE4YWQwN2E1YjlhIDEwMDY0
NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvSW5zcGVjdG9yUGFnZUFnZW50LmNwcAor
KysgYi9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvSW5zcGVjdG9yUGFnZUFnZW50LmNwcApAQCAt
MzQ4LDcgKzM0OCw3IEBAIHZvaWQgSW5zcGVjdG9yUGFnZUFnZW50OjpkaWRDcmVhdGVGcm9udGVu
ZEFuZEJhY2tlbmQoSW5zcGVjdG9yOjpGcm9udGVuZENoYW5uZWwqCiB2b2lkIEluc3BlY3RvclBh
Z2VBZ2VudDo6d2lsbERlc3Ryb3lGcm9udGVuZEFuZEJhY2tlbmQoSW5zcGVjdG9yOjpEaXNjb25u
ZWN0UmVhc29uKQogewogICAgIG1fZnJvbnRlbmREaXNwYXRjaGVyID0gbnVsbHB0cjsKLSAgICBt
X2JhY2tlbmREaXNwYXRjaGVyLmNsZWFyKCk7CisgICAgbV9iYWNrZW5kRGlzcGF0Y2hlciA9IG51
bGxwdHI7CiAKICAgICBFcnJvclN0cmluZyB1bnVzZWQ7CiAgICAgZGlzYWJsZSh1bnVzZWQpOwpA
QCAtMzc0LDcgKzM3NCw3IEBAIHZvaWQgSW5zcGVjdG9yUGFnZUFnZW50OjplbmFibGUoRXJyb3JT
dHJpbmcmKQogdm9pZCBJbnNwZWN0b3JQYWdlQWdlbnQ6OmRpc2FibGUoRXJyb3JTdHJpbmcmKQog
ewogICAgIG1fZW5hYmxlZCA9IGZhbHNlOwotICAgIG1fc2NyaXB0c1RvRXZhbHVhdGVPbkxvYWQu
Y2xlYXIoKTsKKyAgICBtX3NjcmlwdHNUb0V2YWx1YXRlT25Mb2FkID0gbnVsbHB0cjsKICAgICBt
X2luc3RydW1lbnRpbmdBZ2VudHMtPnNldEluc3BlY3RvclBhZ2VBZ2VudChudWxscHRyKTsKIAog
ICAgIEVycm9yU3RyaW5nIHVudXNlZDsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2luc3Bl
Y3Rvci9JbnNwZWN0b3JSZXBsYXlBZ2VudC5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3Iv
SW5zcGVjdG9yUmVwbGF5QWdlbnQuY3BwCmluZGV4IDY0Y2I4MTE3Yzc5ODFkYWM0MzRmNDNjYmYz
YmZkOWUzMzEyODQ3YTEuLjE4MWE2MDk4MmFmNzI2YzI0NGE0YzFiMzNkNmJjODdjMjliNTA1ODUg
MTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9JbnNwZWN0b3JSZXBsYXlBZ2Vu
dC5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL0luc3BlY3RvclJlcGxheUFnZW50
LmNwcApAQCAtMTkzLDcgKzE5Myw3IEBAIHZvaWQgSW5zcGVjdG9yUmVwbGF5QWdlbnQ6OmRpZENy
ZWF0ZUZyb250ZW5kQW5kQmFja2VuZChJbnNwZWN0b3I6OkZyb250ZW5kQ2hhbm5lCiB2b2lkIElu
c3BlY3RvclJlcGxheUFnZW50Ojp3aWxsRGVzdHJveUZyb250ZW5kQW5kQmFja2VuZChJbnNwZWN0
b3I6OkRpc2Nvbm5lY3RSZWFzb24pCiB7CiAgICAgbV9mcm9udGVuZERpc3BhdGNoZXIgPSBudWxs
cHRyOwotICAgIG1fYmFja2VuZERpc3BhdGNoZXIuY2xlYXIoKTsKKyAgICBtX2JhY2tlbmREaXNw
YXRjaGVyID0gbnVsbHB0cjsKIAogICAgIG1faW5zdHJ1bWVudGluZ0FnZW50cy0+c2V0SW5zcGVj
dG9yUmVwbGF5QWdlbnQobnVsbHB0cik7CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2lu
c3BlY3Rvci9JbnNwZWN0b3JSZXNvdXJjZUFnZW50LmNwcCBiL1NvdXJjZS9XZWJDb3JlL2luc3Bl
Y3Rvci9JbnNwZWN0b3JSZXNvdXJjZUFnZW50LmNwcAppbmRleCA4NTQ0ODljMDRmOTc0ZDk3Y2Qz
NjY0YWVhYWQ0NWZlMDFiYjFlZjAxLi43YjU2YTBmZjlkMTU4ZjZiYThiMTM1M2EwYmFiMmU0ZDBl
ODlhMWQ3IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvSW5zcGVjdG9yUmVz
b3VyY2VBZ2VudC5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL0luc3BlY3RvclJl
c291cmNlQWdlbnQuY3BwCkBAIC0xODEsNyArMTgxLDcgQEAgdm9pZCBJbnNwZWN0b3JSZXNvdXJj
ZUFnZW50OjpkaWRDcmVhdGVGcm9udGVuZEFuZEJhY2tlbmQoSW5zcGVjdG9yOjpGcm9udGVuZENo
YW4KIHZvaWQgSW5zcGVjdG9yUmVzb3VyY2VBZ2VudDo6d2lsbERlc3Ryb3lGcm9udGVuZEFuZEJh
Y2tlbmQoSW5zcGVjdG9yOjpEaXNjb25uZWN0UmVhc29uKQogewogICAgIG1fZnJvbnRlbmREaXNw
YXRjaGVyID0gbnVsbHB0cjsKLSAgICBtX2JhY2tlbmREaXNwYXRjaGVyLmNsZWFyKCk7CisgICAg
bV9iYWNrZW5kRGlzcGF0Y2hlciA9IG51bGxwdHI7CiAKICAgICBFcnJvclN0cmluZyB1bnVzZWQ7
CiAgICAgZGlzYWJsZSh1bnVzZWQpOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvaW5zcGVj
dG9yL0luc3BlY3RvclN0eWxlU2hlZXQuY3BwIGIvU291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL0lu
c3BlY3RvclN0eWxlU2hlZXQuY3BwCmluZGV4IGI0N2M2NTRkM2Q3NjJjZTQ1ZGNmZTRmMTQ0YjRj
OTY1N2VjYzlmYzQuLjA2ZWMxYjZmMmY2NDRjMmMxZDA2ZDNmZWU5YWJlMTI4ZmMwYTVmOGMgMTAw
NjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9JbnNwZWN0b3JTdHlsZVNoZWV0LmNw
cAorKysgYi9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvSW5zcGVjdG9yU3R5bGVTaGVldC5jcHAK
QEAgLTEyNjEsNyArMTI2MSw3IEBAIHZvaWQgSW5zcGVjdG9yU3R5bGVTaGVldEZvcklubGluZVN0
eWxlOjpkaWRNb2RpZnlFbGVtZW50QXR0cmlidXRlKCkKICAgICBtX2lzU3R5bGVUZXh0VmFsaWQg
PSBmYWxzZTsKICAgICBpZiAobV9lbGVtZW50LT5pc1N0eWxlZEVsZW1lbnQoKSAmJiBtX2VsZW1l
bnQtPnN0eWxlKCkgIT0gbV9pbnNwZWN0b3JTdHlsZS0+Y3NzU3R5bGUoKSkKICAgICAgICAgbV9p
bnNwZWN0b3JTdHlsZSA9IEluc3BlY3RvclN0eWxlOjpjcmVhdGUoSW5zcGVjdG9yQ1NTSWQoaWQo
KSwgMCksIGlubGluZVN0eWxlKCksIHRoaXMpOwotICAgIG1fcnVsZVNvdXJjZURhdGEuY2xlYXIo
KTsKKyAgICBtX3J1bGVTb3VyY2VEYXRhID0gbnVsbHB0cjsKIH0KIAogYm9vbCBJbnNwZWN0b3JT
dHlsZVNoZWV0Rm9ySW5saW5lU3R5bGU6OmdldFRleHQoU3RyaW5nKiByZXN1bHQpIGNvbnN0CkBA
IC0xMjg1LDcgKzEyODUsNyBAQCBib29sIEluc3BlY3RvclN0eWxlU2hlZXRGb3JJbmxpbmVTdHls
ZTo6c2V0U3R5bGVUZXh0KENTU1N0eWxlRGVjbGFyYXRpb24qIHN0eWxlLAogCiAgICAgbV9zdHls
ZVRleHQgPSB0ZXh0OwogICAgIG1faXNTdHlsZVRleHRWYWxpZCA9IHRydWU7Ci0gICAgbV9ydWxl
U291cmNlRGF0YS5jbGVhcigpOworICAgIG1fcnVsZVNvdXJjZURhdGEgPSBudWxscHRyOwogICAg
IHJldHVybiAhZWM7CiB9CiAKQEAgLTEzMDQsNyArMTMwNCw3IEBAIGJvb2wgSW5zcGVjdG9yU3R5
bGVTaGVldEZvcklubGluZVN0eWxlOjplbnN1cmVQYXJzZWREYXRhUmVhZHkoKQogICAgIC8vIFRo
ZSAic3R5bGUiIHByb3BlcnR5IHZhbHVlIGNhbiBnZXQgY2hhbmdlZCBpbmRpcmVjdGx5LCBlLmcu
IHZpYSBlbGVtZW50LnN0eWxlLmJvcmRlcldpZHRoID0gIjJweCIuCiAgICAgY29uc3QgU3RyaW5n
JiBjdXJyZW50U3R5bGVUZXh0ID0gZWxlbWVudFN0eWxlVGV4dCgpOwogICAgIGlmIChtX3N0eWxl
VGV4dCAhPSBjdXJyZW50U3R5bGVUZXh0KSB7Ci0gICAgICAgIG1fcnVsZVNvdXJjZURhdGEuY2xl
YXIoKTsKKyAgICAgICAgbV9ydWxlU291cmNlRGF0YSA9IG51bGxwdHI7CiAgICAgICAgIG1fc3R5
bGVUZXh0ID0gY3VycmVudFN0eWxlVGV4dDsKICAgICAgICAgbV9pc1N0eWxlVGV4dFZhbGlkID0g
dHJ1ZTsKICAgICB9CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvSW5zcGVj
dG9yVGltZWxpbmVBZ2VudC5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvSW5zcGVjdG9y
VGltZWxpbmVBZ2VudC5jcHAKaW5kZXggMGUzMmJjNWU2Mzg5OGFmZjhlZDJiMDZhYmIwZjdhMWJh
OTgwMDhhNC4uZjU3NTZhMmQxZWE4Mzg3MTE1MGQ1MjFmOGVmZjE0OWEyM2FjNzhjYiAxMDA2NDQK
LS0tIGEvU291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL0luc3BlY3RvclRpbWVsaW5lQWdlbnQuY3Bw
CisrKyBiL1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9JbnNwZWN0b3JUaW1lbGluZUFnZW50LmNw
cApAQCAtMTAzLDcgKzEwMyw3IEBAIHZvaWQgSW5zcGVjdG9yVGltZWxpbmVBZ2VudDo6ZGlkQ3Jl
YXRlRnJvbnRlbmRBbmRCYWNrZW5kKEluc3BlY3Rvcjo6RnJvbnRlbmRDaGFuCiB2b2lkIEluc3Bl
Y3RvclRpbWVsaW5lQWdlbnQ6OndpbGxEZXN0cm95RnJvbnRlbmRBbmRCYWNrZW5kKEluc3BlY3Rv
cjo6RGlzY29ubmVjdFJlYXNvbiByZWFzb24pCiB7CiAgICAgbV9mcm9udGVuZERpc3BhdGNoZXIg
PSBudWxscHRyOwotICAgIG1fYmFja2VuZERpc3BhdGNoZXIuY2xlYXIoKTsKKyAgICBtX2JhY2tl
bmREaXNwYXRjaGVyID0gbnVsbHB0cjsKIAogICAgIG1faW5zdHJ1bWVudGluZ0FnZW50cy0+c2V0
UGVyc2lzdGVudEluc3BlY3RvclRpbWVsaW5lQWdlbnQobnVsbHB0cik7CiAKZGlmZiAtLWdpdCBh
L1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9JbnNwZWN0b3JXb3JrZXJBZ2VudC5jcHAgYi9Tb3Vy
Y2UvV2ViQ29yZS9pbnNwZWN0b3IvSW5zcGVjdG9yV29ya2VyQWdlbnQuY3BwCmluZGV4IGRlYmM2
OTg3OTVkOThjNDJiOGViMThjMTBmZGEyYTI1Zjg1ZjJlOWIuLjVlMjFmMzViYjQ4MDNiZWIxZWEy
ZDU5ODRiNDJkMDg2NjQ1ZDkxODEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rv
ci9JbnNwZWN0b3JXb3JrZXJBZ2VudC5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvaW5zcGVjdG9y
L0luc3BlY3RvcldvcmtlckFnZW50LmNwcApAQCAtMTI3LDcgKzEyNyw3IEBAIHZvaWQgSW5zcGVj
dG9yV29ya2VyQWdlbnQ6OndpbGxEZXN0cm95RnJvbnRlbmRBbmRCYWNrZW5kKEluc3BlY3Rvcjo6
RGlzY29ubmVjdFJlCiAgICAgZGlzYWJsZSh1bnVzZWQpOwogCiAgICAgbV9mcm9udGVuZERpc3Bh
dGNoZXIgPSBudWxscHRyOwotICAgIG1fYmFja2VuZERpc3BhdGNoZXIuY2xlYXIoKTsKKyAgICBt
X2JhY2tlbmREaXNwYXRjaGVyID0gbnVsbHB0cjsKIH0KIAogdm9pZCBJbnNwZWN0b3JXb3JrZXJB
Z2VudDo6ZW5hYmxlKEVycm9yU3RyaW5nJikKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2lu
c3BlY3Rvci9QYWdlUnVudGltZUFnZW50LmNwcCBiL1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9Q
YWdlUnVudGltZUFnZW50LmNwcAppbmRleCA5M2RiNTcyYTdmMDQ1NTA1YjllNTE1ZTUwOTBjNGZj
MGI1MDIxZTJkLi5lMjQ0NWFiZjQ0M2QwOGY0Mzg0YTAzOWJjOWU1NWQ4ZDVmM2Y3MTJiIDEwMDY0
NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvUGFnZVJ1bnRpbWVBZ2VudC5jcHAKKysr
IGIvU291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL1BhZ2VSdW50aW1lQWdlbnQuY3BwCkBAIC02OSw3
ICs2OSw3IEBAIHZvaWQgUGFnZVJ1bnRpbWVBZ2VudDo6ZGlkQ3JlYXRlRnJvbnRlbmRBbmRCYWNr
ZW5kKEluc3BlY3Rvcjo6RnJvbnRlbmRDaGFubmVsKiBmCiB2b2lkIFBhZ2VSdW50aW1lQWdlbnQ6
OndpbGxEZXN0cm95RnJvbnRlbmRBbmRCYWNrZW5kKEluc3BlY3Rvcjo6RGlzY29ubmVjdFJlYXNv
biByZWFzb24pCiB7CiAgICAgbV9mcm9udGVuZERpc3BhdGNoZXIgPSBudWxscHRyOwotICAgIG1f
YmFja2VuZERpc3BhdGNoZXIuY2xlYXIoKTsKKyAgICBtX2JhY2tlbmREaXNwYXRjaGVyID0gbnVs
bHB0cjsKIAogICAgIFN0cmluZyB1bnVzZWQ7CiAgICAgZGlzYWJsZSh1bnVzZWQpOwpkaWZmIC0t
Z2l0IGEvU291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL1dlYkluamVjdGVkU2NyaXB0TWFuYWdlci5j
cHAgYi9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvV2ViSW5qZWN0ZWRTY3JpcHRNYW5hZ2VyLmNw
cAppbmRleCA5ZjRhZjQyNjkzZWM1NzU5NTMxMzM5NDQ2MGIxOTA1ZGZlMGFkNTg3Li41NjE5NmYw
YWUzNzFlZjQ0M2MwNTIzZWIzMWJiNmZjNWVhZjNlNWIxIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2Vi
Q29yZS9pbnNwZWN0b3IvV2ViSW5qZWN0ZWRTY3JpcHRNYW5hZ2VyLmNwcAorKysgYi9Tb3VyY2Uv
V2ViQ29yZS9pbnNwZWN0b3IvV2ViSW5qZWN0ZWRTY3JpcHRNYW5hZ2VyLmNwcApAQCAtNDQsNyAr
NDQsNyBAQCB2b2lkIFdlYkluamVjdGVkU2NyaXB0TWFuYWdlcjo6ZGlzY29ubmVjdCgpCiAgICAg
SW5qZWN0ZWRTY3JpcHRNYW5hZ2VyOjpkaXNjb25uZWN0KCk7CiAKICAgICBtX2NvbW1hbmRMaW5l
QVBJSG9zdC0+ZGlzY29ubmVjdCgpOwotICAgIG1fY29tbWFuZExpbmVBUElIb3N0LmNsZWFyKCk7
CisgICAgbV9jb21tYW5kTGluZUFQSUhvc3QgPSBudWxscHRyOwogfQogCiB2b2lkIFdlYkluamVj
dGVkU2NyaXB0TWFuYWdlcjo6ZGlkQ3JlYXRlSW5qZWN0ZWRTY3JpcHQoSW5qZWN0ZWRTY3JpcHQg
aW5qZWN0ZWRTY3JpcHQpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvV29y
a2VySW5zcGVjdG9yQ29udHJvbGxlci5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvV29y
a2VySW5zcGVjdG9yQ29udHJvbGxlci5jcHAKaW5kZXggZjFmZTQxMDA1YWRmZWE0YmMwMWUwYWQ1
Yjc3ZjU4ZjBiOTZjMjcwZC4uZDgzNGUwZWE5ZjVhMzAwYTgzMjRmNGFmMWQ2NjZkM2I5MDZhYzY1
MiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL1dvcmtlckluc3BlY3RvckNv
bnRyb2xsZXIuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9Xb3JrZXJJbnNwZWN0
b3JDb250cm9sbGVyLmNwcApAQCAtMTI2LDcgKzEyNiw3IEBAIHZvaWQgV29ya2VySW5zcGVjdG9y
Q29udHJvbGxlcjo6ZGlzY29ubmVjdEZyb250ZW5kKEluc3BlY3Rvcjo6RGlzY29ubmVjdFJlYXNv
biByCiAKICAgICBtX2FnZW50cy53aWxsRGVzdHJveUZyb250ZW5kQW5kQmFja2VuZChyZWFzb24p
OwogICAgIG1fYmFja2VuZERpc3BhdGNoZXItPmNsZWFyRnJvbnRlbmQoKTsKLSAgICBtX2JhY2tl
bmREaXNwYXRjaGVyLmNsZWFyKCk7CisgICAgbV9iYWNrZW5kRGlzcGF0Y2hlciA9IG51bGxwdHI7
CiAgICAgbV9mcm9udGVuZENoYW5uZWwgPSBudWxscHRyOwogfQogCmRpZmYgLS1naXQgYS9Tb3Vy
Y2UvV2ViQ29yZS9pbnNwZWN0b3IvV29ya2VyUnVudGltZUFnZW50LmNwcCBiL1NvdXJjZS9XZWJD
b3JlL2luc3BlY3Rvci9Xb3JrZXJSdW50aW1lQWdlbnQuY3BwCmluZGV4IDIwNmE0MWY1ZmI0MmNk
MTVhMzM2Y2NiMzk0YjJlYWM1MWRlNTRmZmEuLjEyMjJlNTUyNzk4YmI2MzczOTlmOGFlNzU3YjRm
ZjRmZGJkMmU1MGQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9Xb3JrZXJS
dW50aW1lQWdlbnQuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9Xb3JrZXJSdW50
aW1lQWdlbnQuY3BwCkBAIC02MCw3ICs2MCw3IEBAIHZvaWQgV29ya2VyUnVudGltZUFnZW50Ojpk
aWRDcmVhdGVGcm9udGVuZEFuZEJhY2tlbmQoSW5zcGVjdG9yOjpGcm9udGVuZENoYW5uZWwqCiAK
IHZvaWQgV29ya2VyUnVudGltZUFnZW50Ojp3aWxsRGVzdHJveUZyb250ZW5kQW5kQmFja2VuZChJ
bnNwZWN0b3I6OkRpc2Nvbm5lY3RSZWFzb24gcmVhc29uKQogewotICAgIG1fYmFja2VuZERpc3Bh
dGNoZXIuY2xlYXIoKTsKKyAgICBtX2JhY2tlbmREaXNwYXRjaGVyID0gbnVsbHB0cjsKIAogICAg
IEluc3BlY3RvclJ1bnRpbWVBZ2VudDo6d2lsbERlc3Ryb3lGcm9udGVuZEFuZEJhY2tlbmQocmVh
c29uKTsKIH0KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2xvYWRlci9Eb2N1bWVudExvYWRl
ci5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9sb2FkZXIvRG9jdW1lbnRMb2FkZXIuY3BwCmluZGV4IDVl
YzQ3YWMzMWYzMzViMzVhZWUyODc3MjJkYjYwYzU0NDZkMWJiOGEuLjdjYTFmMjM4NjZlNmQxNzc1
YzA2YTUyYWNlMzIyMmMyMTE1NGI0OTUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2xvYWRl
ci9Eb2N1bWVudExvYWRlci5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvbG9hZGVyL0RvY3VtZW50
TG9hZGVyLmNwcApAQCAtMTUyNCw3ICsxNTI0LDcgQEAgdm9pZCBEb2N1bWVudExvYWRlcjo6Z2V0
SWNvbkxvYWREZWNpc2lvbkZvckljb25VUkwoY29uc3QgU3RyaW5nJiB1cmxTdHJpbmcpCiB2b2lk
IERvY3VtZW50TG9hZGVyOjpjb250aW51ZUljb25Mb2FkV2l0aERlY2lzaW9uKEljb25Mb2FkRGVj
aXNpb24gZGVjaXNpb24pCiB7CiAgICAgQVNTRVJUKG1faWNvbkxvYWREZWNpc2lvbkNhbGxiYWNr
KTsKLSAgICBtX2ljb25Mb2FkRGVjaXNpb25DYWxsYmFjayA9IDA7CisgICAgbV9pY29uTG9hZERl
Y2lzaW9uQ2FsbGJhY2sgPSBudWxscHRyOwogICAgIGlmIChtX2ZyYW1lKQogICAgICAgICBtX2Zy
YW1lLT5sb2FkZXIoKS5pY29uKCkuY29udGludWVMb2FkV2l0aERlY2lzaW9uKGRlY2lzaW9uKTsK
IH0KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2xvYWRlci9Eb2N1bWVudFRocmVhZGFibGVM
b2FkZXIuY3BwIGIvU291cmNlL1dlYkNvcmUvbG9hZGVyL0RvY3VtZW50VGhyZWFkYWJsZUxvYWRl
ci5jcHAKaW5kZXggMWU4NmZhYzFiZGY4MjlhNjNlMTY5MGFmMmEzZTQ3NTI2MzIwN2QxYy4uYjBl
NTg5OGJiY2Y4MGY5ZmZhOWQyODY1NGIyNzRlY2ZhYjgyOWZmMSAxMDA2NDQKLS0tIGEvU291cmNl
L1dlYkNvcmUvbG9hZGVyL0RvY3VtZW50VGhyZWFkYWJsZUxvYWRlci5jcHAKKysrIGIvU291cmNl
L1dlYkNvcmUvbG9hZGVyL0RvY3VtZW50VGhyZWFkYWJsZUxvYWRlci5jcHAKQEAgLTY0LDcgKzY0
LDcgQEAgUGFzc1JlZlB0cjxEb2N1bWVudFRocmVhZGFibGVMb2FkZXI+IERvY3VtZW50VGhyZWFk
YWJsZUxvYWRlcjo6Y3JlYXRlKERvY3VtZW50JgogewogICAgIFJlZlB0cjxEb2N1bWVudFRocmVh
ZGFibGVMb2FkZXI+IGxvYWRlciA9IGFkb3B0UmVmKG5ldyBEb2N1bWVudFRocmVhZGFibGVMb2Fk
ZXIoZG9jdW1lbnQsIGNsaWVudCwgTG9hZEFzeW5jaHJvbm91c2x5LCByZXF1ZXN0LCBvcHRpb25z
KSk7CiAgICAgaWYgKCFsb2FkZXItPm1fcmVzb3VyY2UpCi0gICAgICAgIGxvYWRlciA9IDA7Cisg
ICAgICAgIGxvYWRlciA9IG51bGxwdHI7CiAgICAgcmV0dXJuIGxvYWRlci5yZWxlYXNlKCk7CiB9
CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2xvYWRlci9Eb2N1bWVudFdyaXRlci5jcHAg
Yi9Tb3VyY2UvV2ViQ29yZS9sb2FkZXIvRG9jdW1lbnRXcml0ZXIuY3BwCmluZGV4IGNjNTEzOTNj
MTBmNjM2YmQ3NmVkMTA5OGIzZWJjYzM2YzQyMmMxMTEuLmExYzM3N2Y4ZTFiMzQ2MDdkMjU3NTQx
NWFjZmE0YWJjZjkxMGI0MzEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2xvYWRlci9Eb2N1
bWVudFdyaXRlci5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvbG9hZGVyL0RvY3VtZW50V3JpdGVy
LmNwcApAQCAtOTAsNyArOTAsNyBAQCB2b2lkIERvY3VtZW50V3JpdGVyOjpyZXBsYWNlRG9jdW1l
bnQoY29uc3QgU3RyaW5nJiBzb3VyY2UsIERvY3VtZW50KiBvd25lckRvY3VtZQogCiB2b2lkIERv
Y3VtZW50V3JpdGVyOjpjbGVhcigpCiB7Ci0gICAgbV9kZWNvZGVyID0gMDsKKyAgICBtX2RlY29k
ZXIgPSBudWxscHRyOwogICAgIG1faGFzUmVjZWl2ZWRTb21lRGF0YSA9IGZhbHNlOwogICAgIGlm
ICghbV9lbmNvZGluZ1dhc0Nob3NlbkJ5VXNlcikKICAgICAgICAgbV9lbmNvZGluZyA9IFN0cmlu
ZygpOwpAQCAtMjQ1LDcgKzI0NSw3IEBAIHZvaWQgRG9jdW1lbnRXcml0ZXI6OmVuZCgpCiAgICAg
aWYgKCFtX3BhcnNlcikKICAgICAgICAgcmV0dXJuOwogICAgIG1fcGFyc2VyLT5maW5pc2goKTsK
LSAgICBtX3BhcnNlciA9IDA7CisgICAgbV9wYXJzZXIgPSBudWxscHRyOwogfQogCiB2b2lkIERv
Y3VtZW50V3JpdGVyOjpzZXRFbmNvZGluZyhjb25zdCBTdHJpbmcmIG5hbWUsIGJvb2wgdXNlckNo
b3NlbikKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2xvYWRlci9GcmFtZUxvYWRlci5jcHAg
Yi9Tb3VyY2UvV2ViQ29yZS9sb2FkZXIvRnJhbWVMb2FkZXIuY3BwCmluZGV4IDUyMmIxNTdkYmNi
ZWMwYjUwMTFmOTVlODY2NjZhOWUyMGM2OWJmY2QuLjNiZGI2MjFkN2RhYjU2MzZlMDA5ZTk1YTFj
M2IwYjdmOWNiZjM4OGIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2xvYWRlci9GcmFtZUxv
YWRlci5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvbG9hZGVyL0ZyYW1lTG9hZGVyLmNwcApAQCAt
NjkyLDcgKzY5Miw3IEBAIHZvaWQgRnJhbWVMb2FkZXI6OmRpZEJlZ2luRG9jdW1lbnQoYm9vbCBk
aXNwYXRjaCkKIAogICAgIGlmIChtX3BlbmRpbmdTdGF0ZU9iamVjdCkgewogICAgICAgICBtX2Zy
YW1lLmRvY3VtZW50KCktPnN0YXRlUG9wcGVkKG1fcGVuZGluZ1N0YXRlT2JqZWN0LmdldCgpKTsK
LSAgICAgICAgbV9wZW5kaW5nU3RhdGVPYmplY3QuY2xlYXIoKTsKKyAgICAgICAgbV9wZW5kaW5n
U3RhdGVPYmplY3QgPSBudWxscHRyOwogICAgIH0KIAogICAgIGlmIChkaXNwYXRjaCkKQEAgLTgx
OCw3ICs4MTgsNyBAQCB2b2lkIEZyYW1lTG9hZGVyOjpjaGVja0NvbXBsZXRlZCgpCiAKICAgICAv
LyBPSywgY29tcGxldGVkLgogICAgIG1faXNDb21wbGV0ZSA9IHRydWU7Ci0gICAgbV9yZXF1ZXN0
ZWRIaXN0b3J5SXRlbSA9IDA7CisgICAgbV9yZXF1ZXN0ZWRIaXN0b3J5SXRlbSA9IG51bGxwdHI7
CiAgICAgbV9mcmFtZS5kb2N1bWVudCgpLT5zZXRSZWFkeVN0YXRlKERvY3VtZW50OjpDb21wbGV0
ZSk7CiAKICNpZiBQTEFURk9STShJT1MpCkBAIC0xMTM3LDcgKzExMzcsNyBAQCB2b2lkIEZyYW1l
TG9hZGVyOjpzZXR1cEZvclJlcGxhY2UoKQogICAgIG1fY2xpZW50LnJldmVydFRvUHJvdmlzaW9u
YWxTdGF0ZShtX2RvY3VtZW50TG9hZGVyLmdldCgpKTsKICAgICBzZXRTdGF0ZShGcmFtZVN0YXRl
UHJvdmlzaW9uYWwpOwogICAgIG1fcHJvdmlzaW9uYWxEb2N1bWVudExvYWRlciA9IG1fZG9jdW1l
bnRMb2FkZXI7Ci0gICAgbV9kb2N1bWVudExvYWRlciA9IDA7CisgICAgbV9kb2N1bWVudExvYWRl
ciA9IG51bGxwdHI7CiAgICAgZGV0YWNoQ2hpbGRyZW4oKTsKIH0KIApkaWZmIC0tZ2l0IGEvU291
cmNlL1dlYkNvcmUvbG9hZGVyL1Byb2dyZXNzVHJhY2tlci5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9s
b2FkZXIvUHJvZ3Jlc3NUcmFja2VyLmNwcAppbmRleCAwNDA1NGRlNGVhYjM5NTFmOTVlMDdlOWRl
ZDMyZGM5MTZmZDdlZTA2Li5kNTZjYTA1ZGI5OTBiMzBhNmIwN2QxMmZiMmMwOWU5OTZiNzk3MjBm
IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9sb2FkZXIvUHJvZ3Jlc3NUcmFja2VyLmNwcAor
KysgYi9Tb3VyY2UvV2ViQ29yZS9sb2FkZXIvUHJvZ3Jlc3NUcmFja2VyLmNwcApAQCAtMTEzLDcg
KzExMyw3IEBAIHZvaWQgUHJvZ3Jlc3NUcmFja2VyOjpyZXNldCgpCiAgICAgbV9sYXN0Tm90aWZp
ZWRQcm9ncmVzc1RpbWUgPSBzdGQ6OmNocm9ubzo6c3RlYWR5X2Nsb2NrOjp0aW1lX3BvaW50KCk7
CiAgICAgbV9maW5hbFByb2dyZXNzQ2hhbmdlZFNlbnQgPSBmYWxzZTsKICAgICBtX251bVByb2dy
ZXNzVHJhY2tlZEZyYW1lcyA9IDA7Ci0gICAgbV9vcmlnaW5hdGluZ1Byb2dyZXNzRnJhbWUgPSAw
OworICAgIG1fb3JpZ2luYXRpbmdQcm9ncmVzc0ZyYW1lID0gbnVsbHB0cjsKIAogICAgIG1faGVh
cnRiZWF0c1dpdGhOb1Byb2dyZXNzID0gMDsKICAgICBtX3RvdGFsQnl0ZXNSZWNlaXZlZEJlZm9y
ZVByZXZpb3VzSGVhcnRiZWF0ID0gMDsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2xvYWRl
ci9SZXNvdXJjZUxvYWRlci5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9sb2FkZXIvUmVzb3VyY2VMb2Fk
ZXIuY3BwCmluZGV4IDQzMWEwY2IxZDQ0NWJlMmZmNTkwM2Q2MjM1NDc2NmFhY2NlNDM1MzYuLjE2
NmE0NTRjMTA5MGJhOGJkMmRkYzBjY2M3YmEyMDMxMzJhOTEzODAgMTAwNjQ0Ci0tLSBhL1NvdXJj
ZS9XZWJDb3JlL2xvYWRlci9SZXNvdXJjZUxvYWRlci5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUv
bG9hZGVyL1Jlc291cmNlTG9hZGVyLmNwcApAQCAtOTAsOCArOTAsOCBAQCB2b2lkIFJlc291cmNl
TG9hZGVyOjpyZWxlYXNlUmVzb3VyY2VzKCkKICAgICAvLyBoYXMgYmVlbiBkZWFsbG9jYXRlZCBh
bmQgYWxzbyB0byBhdm9pZCByZWVudGVyaW5nIHRoaXMgbWV0aG9kLgogICAgIFJlZjxSZXNvdXJj
ZUxvYWRlcj4gcHJvdGVjdCgqdGhpcyk7CiAKLSAgICBtX2ZyYW1lID0gMDsKLSAgICBtX2RvY3Vt
ZW50TG9hZGVyID0gMDsKKyAgICBtX2ZyYW1lID0gbnVsbHB0cjsKKyAgICBtX2RvY3VtZW50TG9h
ZGVyID0gbnVsbHB0cjsKICAgICAKICAgICAvLyBXZSBuZWVkIHRvIHNldCByZWFjaGVkVGVybWlu
YWxTdGF0ZSB0byB0cnVlIGJlZm9yZSB3ZSByZWxlYXNlCiAgICAgLy8gdGhlIHJlc291cmNlcyB0
byBwcmV2ZW50IGEgZG91YmxlIGRlYWxsb2Mgb2YgV2ViVmlldyA8cmRhcjovL3Byb2JsZW0vNDM3
MjYyOD4KQEAgLTEwNCwxMSArMTA0LDExIEBAIHZvaWQgUmVzb3VyY2VMb2FkZXI6OnJlbGVhc2VS
ZXNvdXJjZXMoKQogICAgICAgICAvLyBDbGVhciBvdXQgdGhlIFJlc291cmNlSGFuZGxlJ3MgY2xp
ZW50IHNvIHRoYXQgaXQgZG9lc24ndCB0cnkgdG8gY2FsbAogICAgICAgICAvLyB1cyBiYWNrIGFm
dGVyIHdlIHJlbGVhc2UgaXQsIHVubGVzcyBpdCBoYXMgYmVlbiByZXBsYWNlZCBieSBzb21lb25l
IGVsc2UuCiAgICAgICAgIGlmIChtX2hhbmRsZS0+Y2xpZW50KCkgPT0gdGhpcykKLSAgICAgICAg
ICAgIG1faGFuZGxlLT5zZXRDbGllbnQoMCk7Ci0gICAgICAgIG1faGFuZGxlID0gMDsKKyAgICAg
ICAgICAgIG1faGFuZGxlLT5zZXRDbGllbnQobnVsbHB0cik7CisgICAgICAgIG1faGFuZGxlID0g
bnVsbHB0cjsKICAgICB9CiAKLSAgICBtX3Jlc291cmNlRGF0YSA9IDA7CisgICAgbV9yZXNvdXJj
ZURhdGEgPSBudWxscHRyOwogICAgIG1fZGVmZXJyZWRSZXF1ZXN0ID0gUmVzb3VyY2VSZXF1ZXN0
KCk7CiB9CiAKQEAgLTIyNSw3ICsyMjUsNyBAQCB2b2lkIFJlc291cmNlTG9hZGVyOjpzZXREZWZl
cnNMb2FkaW5nKGJvb2wgZGVmZXJzKQogRnJhbWVMb2FkZXIqIFJlc291cmNlTG9hZGVyOjpmcmFt
ZUxvYWRlcigpIGNvbnN0CiB7CiAgICAgaWYgKCFtX2ZyYW1lKQotICAgICAgICByZXR1cm4gMDsK
KyAgICAgICAgcmV0dXJuIG51bGxwdHI7CiAgICAgcmV0dXJuICZtX2ZyYW1lLT5sb2FkZXIoKTsK
IH0KIApAQCAtMjQ0LDcgKzI0NCw3IEBAIHZvaWQgUmVzb3VyY2VMb2FkZXI6OnNldERhdGFCdWZm
ZXJpbmdQb2xpY3koRGF0YUJ1ZmZlcmluZ1BvbGljeSBkYXRhQnVmZmVyaW5nUG9sCiAKICAgICAv
LyBSZXNldCBhbnkgYWxyZWFkeSBidWZmZXJlZCBkYXRhCiAgICAgaWYgKGRhdGFCdWZmZXJpbmdQ
b2xpY3kgPT0gRG9Ob3RCdWZmZXJEYXRhKQotICAgICAgICBtX3Jlc291cmNlRGF0YSA9IDA7Cisg
ICAgICAgIG1fcmVzb3VyY2VEYXRhID0gbnVsbHB0cjsKIH0KICAgICAKIHZvaWQgUmVzb3VyY2VM
b2FkZXI6OndpbGxTd2l0Y2hUb1N1YnN0aXR1dGVSZXNvdXJjZSgpCkBAIC01MzAsNyArNTMwLDcg
QEAgdm9pZCBSZXNvdXJjZUxvYWRlcjo6Y2FuY2VsKGNvbnN0IFJlc291cmNlRXJyb3ImIGVycm9y
KQogICAgICAgICBtX2RvY3VtZW50TG9hZGVyLT5jYW5jZWxQZW5kaW5nU3Vic3RpdHV0ZUxvYWQo
dGhpcyk7CiAgICAgICAgIGlmIChtX2hhbmRsZSkgewogICAgICAgICAgICAgbV9oYW5kbGUtPmNh
bmNlbCgpOwotICAgICAgICAgICAgbV9oYW5kbGUgPSAwOworICAgICAgICAgICAgbV9oYW5kbGUg
PSBudWxscHRyOwogICAgICAgICB9CiAgICAgICAgIGNsZWFudXBGb3JFcnJvcihub25OdWxsRXJy
b3IpOwogICAgIH0KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2xvYWRlci9hcHBjYWNoZS9B
cHBsaWNhdGlvbkNhY2hlR3JvdXAuY3BwIGIvU291cmNlL1dlYkNvcmUvbG9hZGVyL2FwcGNhY2hl
L0FwcGxpY2F0aW9uQ2FjaGVHcm91cC5jcHAKaW5kZXggNjI3YzBmZTc5ZTc1ZTA4MzljNjYxOWNh
NzRhYjk3MDkxODk4OTJhNi4uNTliY2FjOWExMDBiYmM1NDM4YWQ0MDMyN2ZmN2ZmY2QzOTg5NzA2
MyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvbG9hZGVyL2FwcGNhY2hlL0FwcGxpY2F0aW9u
Q2FjaGVHcm91cC5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvbG9hZGVyL2FwcGNhY2hlL0FwcGxp
Y2F0aW9uQ2FjaGVHcm91cC5jcHAKQEAgLTMyNyw3ICszMjcsNyBAQCB2b2lkIEFwcGxpY2F0aW9u
Q2FjaGVHcm91cDo6c3RvcExvYWRpbmcoKQogICAgICAgICBtX21hbmlmZXN0SGFuZGxlLT5zZXRD
bGllbnQoMCk7CiAKICAgICAgICAgbV9tYW5pZmVzdEhhbmRsZS0+Y2FuY2VsKCk7Ci0gICAgICAg
IG1fbWFuaWZlc3RIYW5kbGUgPSAwOworICAgICAgICBtX21hbmlmZXN0SGFuZGxlID0gbnVsbHB0
cjsKICAgICB9CiAgICAgCiAgICAgaWYgKG1fY3VycmVudEhhbmRsZSkgewpAQCAtMzM4LDExICsz
MzgsMTEgQEAgdm9pZCBBcHBsaWNhdGlvbkNhY2hlR3JvdXA6OnN0b3BMb2FkaW5nKCkKICAgICAg
ICAgbV9jdXJyZW50SGFuZGxlLT5zZXRDbGllbnQoMCk7CiAKICAgICAgICAgbV9jdXJyZW50SGFu
ZGxlLT5jYW5jZWwoKTsKLSAgICAgICAgbV9jdXJyZW50SGFuZGxlID0gMDsKKyAgICAgICAgbV9j
dXJyZW50SGFuZGxlID0gbnVsbHB0cjsKICAgICB9ICAgIAogCiAgICAgLy8gRklYTUU6IFJlc2V0
dGluZyBqdXN0IGEgdGlueSBwYXJ0IG9mIHRoZSBzdGF0ZSBpbiB0aGlzIGZ1bmN0aW9uIGlzIGNv
bmZ1c2luZy4gQ2FsbGVycyBoYXZlIHRvIHRha2UgY2FyZSBvZiBhIGxvdCBtb3JlLgotICAgIG1f
Y2FjaGVCZWluZ1VwZGF0ZWQgPSAwOworICAgIG1fY2FjaGVCZWluZ1VwZGF0ZWQgPSBudWxscHRy
OwogICAgIG1fcGVuZGluZ0VudHJpZXMuY2xlYXIoKTsKIH0gICAgCiAKQEAgLTUyMSw3ICs1MjEs
NyBAQCB2b2lkIEFwcGxpY2F0aW9uQ2FjaGVHcm91cDo6ZGlkUmVjZWl2ZVJlc3BvbnNlKFJlc291
cmNlSGFuZGxlKiBoYW5kbGUsIGNvbnN0IFJlcwogICAgICAgICAgICAgbV9jYWNoZUJlaW5nVXBk
YXRlZC0+YWRkUmVzb3VyY2UoQXBwbGljYXRpb25DYWNoZVJlc291cmNlOjpjcmVhdGUodXJsLCBu
ZXdlc3RDYWNoZWRSZXNvdXJjZS0+cmVzcG9uc2UoKSwgdHlwZSwgbmV3ZXN0Q2FjaGVkUmVzb3Vy
Y2UtPmRhdGEoKSwgbmV3ZXN0Q2FjaGVkUmVzb3VyY2UtPnBhdGgoKSkpOwogICAgICAgICAgICAg
bV9wZW5kaW5nRW50cmllcy5yZW1vdmUobV9jdXJyZW50SGFuZGxlLT5maXJzdFJlcXVlc3QoKS51
cmwoKSk7CiAgICAgICAgICAgICBtX2N1cnJlbnRIYW5kbGUtPmNhbmNlbCgpOwotICAgICAgICAg
ICAgbV9jdXJyZW50SGFuZGxlID0gMDsKKyAgICAgICAgICAgIG1fY3VycmVudEhhbmRsZSA9IG51
bGxwdHI7CiAgICAgICAgICAgICAvLyBMb2FkIHRoZSBuZXh0IHJlc291cmNlLCBpZiBhbnkuCiAg
ICAgICAgICAgICBzdGFydExvYWRpbmdFbnRyeSgpOwogICAgICAgICAgICAgcmV0dXJuOwpAQCAt
NTM4LDcgKzUzOCw3IEBAIHZvaWQgQXBwbGljYXRpb25DYWNoZUdyb3VwOjpkaWRSZWNlaXZlUmVz
cG9uc2UoUmVzb3VyY2VIYW5kbGUqIGhhbmRsZSwgY29uc3QgUmVzCiAgICAgICAgIH0gZWxzZSBp
ZiAocmVzcG9uc2UuaHR0cFN0YXR1c0NvZGUoKSA9PSA0MDQgfHwgcmVzcG9uc2UuaHR0cFN0YXR1
c0NvZGUoKSA9PSA0MTApIHsKICAgICAgICAgICAgIC8vIFNraXAgdGhpcyByZXNvdXJjZS4gSXQg
aXMgZHJvcHBlZCBmcm9tIHRoZSBjYWNoZS4KICAgICAgICAgICAgIG1fY3VycmVudEhhbmRsZS0+
Y2FuY2VsKCk7Ci0gICAgICAgICAgICBtX2N1cnJlbnRIYW5kbGUgPSAwOworICAgICAgICAgICAg
bV9jdXJyZW50SGFuZGxlID0gbnVsbHB0cjsKICAgICAgICAgICAgIG1fcGVuZGluZ0VudHJpZXMu
cmVtb3ZlKHVybCk7CiAgICAgICAgICAgICAvLyBMb2FkIHRoZSBuZXh0IHJlc291cmNlLCBpZiBh
bnkuCiAgICAgICAgICAgICBzdGFydExvYWRpbmdFbnRyeSgpOwpAQCAtNTUxLDcgKzU1MSw3IEBA
IHZvaWQgQXBwbGljYXRpb25DYWNoZUdyb3VwOjpkaWRSZWNlaXZlUmVzcG9uc2UoUmVzb3VyY2VI
YW5kbGUqIGhhbmRsZSwgY29uc3QgUmVzCiAgICAgICAgICAgICBtX2NhY2hlQmVpbmdVcGRhdGVk
LT5hZGRSZXNvdXJjZShBcHBsaWNhdGlvbkNhY2hlUmVzb3VyY2U6OmNyZWF0ZSh1cmwsIG5ld2Vz
dENhY2hlZFJlc291cmNlLT5yZXNwb25zZSgpLCB0eXBlLCBuZXdlc3RDYWNoZWRSZXNvdXJjZS0+
ZGF0YSgpLCBuZXdlc3RDYWNoZWRSZXNvdXJjZS0+cGF0aCgpKSk7CiAgICAgICAgICAgICBtX3Bl
bmRpbmdFbnRyaWVzLnJlbW92ZShtX2N1cnJlbnRIYW5kbGUtPmZpcnN0UmVxdWVzdCgpLnVybCgp
KTsKICAgICAgICAgICAgIG1fY3VycmVudEhhbmRsZS0+Y2FuY2VsKCk7Ci0gICAgICAgICAgICBt
X2N1cnJlbnRIYW5kbGUgPSAwOworICAgICAgICAgICAgbV9jdXJyZW50SGFuZGxlID0gbnVsbHB0
cjsKICAgICAgICAgICAgIC8vIExvYWQgdGhlIG5leHQgcmVzb3VyY2UsIGlmIGFueS4KICAgICAg
ICAgICAgIHN0YXJ0TG9hZGluZ0VudHJ5KCk7CiAgICAgICAgIH0KQEAgLTU5NSw3ICs1OTUsNyBA
QCB2b2lkIEFwcGxpY2F0aW9uQ2FjaGVHcm91cDo6ZGlkRmluaXNoTG9hZGluZyhSZXNvdXJjZUhh
bmRsZSogaGFuZGxlLCBkb3VibGUgZmluaQogICAgIEFTU0VSVChtX2NhY2hlQmVpbmdVcGRhdGVk
KTsKIAogICAgIG1fY2FjaGVCZWluZ1VwZGF0ZWQtPmFkZFJlc291cmNlKG1fY3VycmVudFJlc291
cmNlLnJlbGVhc2UoKSk7Ci0gICAgbV9jdXJyZW50SGFuZGxlID0gMDsKKyAgICBtX2N1cnJlbnRI
YW5kbGUgPSBudWxscHRyOwogCiAgICAgLy8gV2hpbGUgZG93bmxvYWRpbmcgY2hlY2sgdG8gc2Vl
IGlmIHdlIGhhdmUgZXhjZWVkZWQgdGhlIGF2YWlsYWJsZSBxdW90YS4KICAgICAvLyBXZSBjYW4g
c3RvcCBpbW1lZGlhdGVseSBpZiB3ZSBoYXZlIGFscmVhZHkgcHJldmlvdXNseSBmYWlsZWQKQEAg
LTYwMyw3ICs2MDMsNyBAQCB2b2lkIEFwcGxpY2F0aW9uQ2FjaGVHcm91cDo6ZGlkRmluaXNoTG9h
ZGluZyhSZXNvdXJjZUhhbmRsZSogaGFuZGxlLCBkb3VibGUgZmluaQogICAgIC8vIG9mIHRoZSBx
dW90YSBiZWluZyByZWFjaGVkIGFuZCBkZWNpZGVkIG5vdCB0byBpbmNyZWFzZSBpdCB0aGVuLgog
ICAgIC8vIEZJWE1FOiBTaG91bGQgd2UgYnJlYWsgZWFybGllciBhbmQgcHJldmVudCByZWRvd25s
b2FkaW5nIG9uIGxhdGVyIHBhZ2UgbG9hZHM/CiAgICAgaWYgKG1fb3JpZ2luUXVvdGFFeGNlZWRl
ZFByZXZpb3VzbHkgJiYgbV9hdmFpbGFibGVTcGFjZUluUXVvdGEgPCBtX2NhY2hlQmVpbmdVcGRh
dGVkLT5lc3RpbWF0ZWRTaXplSW5TdG9yYWdlKCkpIHsKLSAgICAgICAgbV9jdXJyZW50UmVzb3Vy
Y2UgPSAwOworICAgICAgICBtX2N1cnJlbnRSZXNvdXJjZSA9IG51bGxwdHI7CiAgICAgICAgIG1f
ZnJhbWUtPmRvY3VtZW50KCktPmFkZENvbnNvbGVNZXNzYWdlKE1lc3NhZ2VTb3VyY2U6OkFwcENh
Y2hlLCBNZXNzYWdlTGV2ZWw6OkVycm9yLCBBU0NJSUxpdGVyYWwoIkFwcGxpY2F0aW9uIENhY2hl
IHVwZGF0ZSBmYWlsZWQsIGJlY2F1c2Ugc2l6ZSBxdW90YSB3YXMgZXhjZWVkZWQuIikpOwogICAg
ICAgICBjYWNoZVVwZGF0ZUZhaWxlZCgpOwogICAgICAgICByZXR1cm47CkBAIC02MzEsNyArNjMx
LDcgQEAgdm9pZCBBcHBsaWNhdGlvbkNhY2hlR3JvdXA6OmRpZEZhaWwoUmVzb3VyY2VIYW5kbGUq
IGhhbmRsZSwgY29uc3QgUmVzb3VyY2VFcnJvciYKICAgICAgICAgdXJsLnJlbW92ZUZyYWdtZW50
SWRlbnRpZmllcigpOwogCiAgICAgQVNTRVJUKCFtX2N1cnJlbnRSZXNvdXJjZSB8fCAhbV9wZW5k
aW5nRW50cmllcy5jb250YWlucyh1cmwpKTsKLSAgICBtX2N1cnJlbnRSZXNvdXJjZSA9IDA7Cisg
ICAgbV9jdXJyZW50UmVzb3VyY2UgPSBudWxscHRyOwogICAgIG1fcGVuZGluZ0VudHJpZXMucmVt
b3ZlKHVybCk7CiAKICAgICBpZiAoKHR5cGUgJiBBcHBsaWNhdGlvbkNhY2hlUmVzb3VyY2U6OkV4
cGxpY2l0KSB8fCAodHlwZSAmIEFwcGxpY2F0aW9uQ2FjaGVSZXNvdXJjZTo6RmFsbGJhY2spKSB7
CkBAIC02OTUsNyArNjk1LDcgQEAgdm9pZCBBcHBsaWNhdGlvbkNhY2hlR3JvdXA6OmRpZEZpbmlz
aExvYWRpbmdNYW5pZmVzdCgpCiAgICAgICAgIHJldHVybjsKICAgICB9CiAKLSAgICBtX21hbmlm
ZXN0SGFuZGxlID0gMDsKKyAgICBtX21hbmlmZXN0SGFuZGxlID0gbnVsbHB0cjsKIAogICAgIC8v
IENoZWNrIGlmIHRoZSBtYW5pZmVzdCB3YXMgbm90IG1vZGlmaWVkLgogICAgIGlmIChpc1VwZ3Jh
ZGVBdHRlbXB0KSB7CkBAIC03MDYsNyArNzA2LDcgQEAgdm9pZCBBcHBsaWNhdGlvbkNhY2hlR3Jv
dXA6OmRpZEZpbmlzaExvYWRpbmdNYW5pZmVzdCgpCiAgICAgICAgICAgICAobmV3ZXN0TWFuaWZl
c3QtPmRhdGEoKS0+c2l6ZSgpID09IG1fbWFuaWZlc3RSZXNvdXJjZS0+ZGF0YSgpLT5zaXplKCkg
JiYgIW1lbWNtcChuZXdlc3RNYW5pZmVzdC0+ZGF0YSgpLT5kYXRhKCksIG1fbWFuaWZlc3RSZXNv
dXJjZS0+ZGF0YSgpLT5kYXRhKCksIG5ld2VzdE1hbmlmZXN0LT5kYXRhKCktPnNpemUoKSkpKSB7
CiAKICAgICAgICAgICAgIG1fY29tcGxldGlvblR5cGUgPSBOb1VwZGF0ZTsKLSAgICAgICAgICAg
IG1fbWFuaWZlc3RSZXNvdXJjZSA9IDA7CisgICAgICAgICAgICBtX21hbmlmZXN0UmVzb3VyY2Ug
PSBudWxscHRyOwogICAgICAgICAgICAgZGVsaXZlckRlbGF5ZWRNYWluUmVzb3VyY2VzKCk7CiAK
ICAgICAgICAgICAgIHJldHVybjsKQEAgLTc4Miw3ICs3ODIsNyBAQCB2b2lkIEFwcGxpY2F0aW9u
Q2FjaGVHcm91cDo6ZGlkUmVhY2hPcmlnaW5RdW90YShpbnQ2NF90IHRvdGFsU3BhY2VOZWVkZWQp
CiB2b2lkIEFwcGxpY2F0aW9uQ2FjaGVHcm91cDo6Y2FjaGVVcGRhdGVGYWlsZWQoKQogewogICAg
IHN0b3BMb2FkaW5nKCk7Ci0gICAgbV9tYW5pZmVzdFJlc291cmNlID0gMDsKKyAgICBtX21hbmlm
ZXN0UmVzb3VyY2UgPSBudWxscHRyOwogCiAgICAgLy8gV2FpdCBmb3IgbWFzdGVyIHJlc291cmNl
IGxvYWRzIHRvIGZpbmlzaC4KICAgICBtX2NvbXBsZXRpb25UeXBlID0gRmFpbHVyZTsKQEAgLTgw
Nyw3ICs4MDcsNyBAQCB2b2lkIEFwcGxpY2F0aW9uQ2FjaGVHcm91cDo6bWFuaWZlc3ROb3RGb3Vu
ZCgpCiAgICAgc3RvcExvYWRpbmcoKTsKIAogICAgIEFTU0VSVChtX3BlbmRpbmdFbnRyaWVzLmlz
RW1wdHkoKSk7Ci0gICAgbV9tYW5pZmVzdFJlc291cmNlID0gMDsKKyAgICBtX21hbmlmZXN0UmVz
b3VyY2UgPSBudWxscHRyOwogCiAgICAgd2hpbGUgKCFtX3BlbmRpbmdNYXN0ZXJSZXNvdXJjZUxv
YWRlcnMuaXNFbXB0eSgpKSB7CiAgICAgICAgIEhhc2hTZXQ8RG9jdW1lbnRMb2FkZXIqPjo6aXRl
cmF0b3IgaXQgPSBtX3BlbmRpbmdNYXN0ZXJSZXNvdXJjZUxvYWRlcnMuYmVnaW4oKTsKZGlmZiAt
LWdpdCBhL1NvdXJjZS9XZWJDb3JlL2xvYWRlci9jYWNoZS9DYWNoZWRDU1NTdHlsZVNoZWV0LmNw
cCBiL1NvdXJjZS9XZWJDb3JlL2xvYWRlci9jYWNoZS9DYWNoZWRDU1NTdHlsZVNoZWV0LmNwcApp
bmRleCA3YzJmZTdkODkyNGY0ZjkwZWNkZDU4MjA2NmFmZTI3YzA5ZjMwOGMxLi42ZDExODgwMWFm
ODI2ODQ1ZmI2MTk5MjcwNDRhZjliMmIyZDIzNmM0IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29y
ZS9sb2FkZXIvY2FjaGUvQ2FjaGVkQ1NTU3R5bGVTaGVldC5jcHAKKysrIGIvU291cmNlL1dlYkNv
cmUvbG9hZGVyL2NhY2hlL0NhY2hlZENTU1N0eWxlU2hlZXQuY3BwCkBAIC0xMzgsNyArMTM4LDcg
QEAgdm9pZCBDYWNoZWRDU1NTdHlsZVNoZWV0OjpkZXN0cm95RGVjb2RlZERhdGEoKQogICAgICAg
ICByZXR1cm47CiAKICAgICBtX3BhcnNlZFN0eWxlU2hlZXRDYWNoZS0+cmVtb3ZlZEZyb21NZW1v
cnlDYWNoZSgpOwotICAgIG1fcGFyc2VkU3R5bGVTaGVldENhY2hlLmNsZWFyKCk7CisgICAgbV9w
YXJzZWRTdHlsZVNoZWV0Q2FjaGUgPSBudWxscHRyOwogCiAgICAgc2V0RGVjb2RlZFNpemUoMCk7
CiB9CkBAIC0xNDYsMTEgKzE0NiwxMSBAQCB2b2lkIENhY2hlZENTU1N0eWxlU2hlZXQ6OmRlc3Ry
b3lEZWNvZGVkRGF0YSgpCiBQYXNzUmVmUHRyPFN0eWxlU2hlZXRDb250ZW50cz4gQ2FjaGVkQ1NT
U3R5bGVTaGVldDo6cmVzdG9yZVBhcnNlZFN0eWxlU2hlZXQoY29uc3QgQ1NTUGFyc2VyQ29udGV4
dCYgY29udGV4dCwgQ2FjaGVQb2xpY3kgY2FjaGVQb2xpY3kpCiB7CiAgICAgaWYgKCFtX3BhcnNl
ZFN0eWxlU2hlZXRDYWNoZSkKLSAgICAgICAgcmV0dXJuIDA7CisgICAgICAgIHJldHVybiBudWxs
cHRyOwogICAgIGlmICghbV9wYXJzZWRTdHlsZVNoZWV0Q2FjaGUtPnN1YnJlc291cmNlc0FsbG93
UmV1c2UoY2FjaGVQb2xpY3kpKSB7CiAgICAgICAgIG1fcGFyc2VkU3R5bGVTaGVldENhY2hlLT5y
ZW1vdmVkRnJvbU1lbW9yeUNhY2hlKCk7Ci0gICAgICAgIG1fcGFyc2VkU3R5bGVTaGVldENhY2hl
LmNsZWFyKCk7Ci0gICAgICAgIHJldHVybiAwOworICAgICAgICBtX3BhcnNlZFN0eWxlU2hlZXRD
YWNoZSA9IG51bGxwdHI7CisgICAgICAgIHJldHVybiBudWxscHRyOwogICAgIH0KIAogICAgIEFT
U0VSVChtX3BhcnNlZFN0eWxlU2hlZXRDYWNoZS0+aXNDYWNoZWFibGUoKSk7CkBAIC0xNTgsNyAr
MTU4LDcgQEAgUGFzc1JlZlB0cjxTdHlsZVNoZWV0Q29udGVudHM+IENhY2hlZENTU1N0eWxlU2hl
ZXQ6OnJlc3RvcmVQYXJzZWRTdHlsZVNoZWV0KGNvbnMKIAogICAgIC8vIENvbnRleHRzIG11c3Qg
YmUgaWRlbnRpY2FsIHNvIHdlIGtub3cgd2Ugd291bGQgZ2V0IHRoZSBzYW1lIGV4YWN0IHJlc3Vs
dCBpZiB3ZSBwYXJzZWQgYWdhaW4uCiAgICAgaWYgKG1fcGFyc2VkU3R5bGVTaGVldENhY2hlLT5w
YXJzZXJDb250ZXh0KCkgIT0gY29udGV4dCkKLSAgICAgICAgcmV0dXJuIDA7CisgICAgICAgIHJl
dHVybiBudWxscHRyOwogCiAgICAgZGlkQWNjZXNzRGVjb2RlZERhdGEobW9ub3RvbmljYWxseUlu
Y3JlYXNpbmdUaW1lKCkpOwogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9sb2FkZXIvY2Fj
aGUvQ2FjaGVkSW1hZ2UuY3BwIGIvU291cmNlL1dlYkNvcmUvbG9hZGVyL2NhY2hlL0NhY2hlZElt
YWdlLmNwcAppbmRleCA1Mjc2OWRiOTZjZTE3ZGVhZDcyMDQxYTc2ODFiYTZmMmEwYWQ1OTg5Li5k
ZjMzNjc1YzYzYjVkYjRhZjAzZTMyOTM3YzkxYTlkNzM0MDRhNzBhIDEwMDY0NAotLS0gYS9Tb3Vy
Y2UvV2ViQ29yZS9sb2FkZXIvY2FjaGUvQ2FjaGVkSW1hZ2UuY3BwCisrKyBiL1NvdXJjZS9XZWJD
b3JlL2xvYWRlci9jYWNoZS9DYWNoZWRJbWFnZS5jcHAKQEAgLTM2NSw4ICszNjUsOCBAQCBpbmxp
bmUgdm9pZCBDYWNoZWRJbWFnZTo6Y2xlYXJJbWFnZSgpCiAgICAgLy8gSWYgb3VyIEltYWdlIGhh
cyBhbiBvYnNlcnZlciwgaXQncyBhbHdheXMgdXMgc28gd2UgbmVlZCB0byBjbGVhciB0aGUgYmFj
ayBwb2ludGVyCiAgICAgLy8gYmVmb3JlIGRyb3BwaW5nIG91ciByZWZlcmVuY2UuCiAgICAgaWYg
KG1faW1hZ2UpCi0gICAgICAgIG1faW1hZ2UtPnNldEltYWdlT2JzZXJ2ZXIoMCk7Ci0gICAgbV9p
bWFnZS5jbGVhcigpOworICAgICAgICBtX2ltYWdlLT5zZXRJbWFnZU9ic2VydmVyKG51bGxwdHIp
OworICAgIG1faW1hZ2UgPSBudWxscHRyOwogfQogCiB2b2lkIENhY2hlZEltYWdlOjphZGRJbmNy
ZW1lbnRhbERhdGFCdWZmZXIoU2hhcmVkQnVmZmVyJiBkYXRhKQpAQCAtNDU4LDcgKzQ1OCw3IEBA
IHZvaWQgQ2FjaGVkSW1hZ2U6OmRlc3Ryb3lEZWNvZGVkRGF0YSgpCiB7CiAgICAgYm9vbCBjYW5E
ZWxldGVJbWFnZSA9ICFtX2ltYWdlIHx8IChtX2ltYWdlLT5oYXNPbmVSZWYoKSAmJiBtX2ltYWdl
LT5pc0JpdG1hcEltYWdlKCkpOwogICAgIGlmIChjYW5EZWxldGVJbWFnZSAmJiAhaXNMb2FkaW5n
KCkgJiYgIWhhc0NsaWVudHMoKSkgewotICAgICAgICBtX2ltYWdlID0gMDsKKyAgICAgICAgbV9p
bWFnZSA9IG51bGxwdHI7CiAgICAgICAgIHNldERlY29kZWRTaXplKDApOwogICAgIH0gZWxzZSBp
ZiAobV9pbWFnZSAmJiAhZXJyb3JPY2N1cnJlZCgpKQogICAgICAgICBtX2ltYWdlLT5kZXN0cm95
RGVjb2RlZERhdGEoKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2xvYWRlci9jYWNoZS9D
YWNoZWRSYXdSZXNvdXJjZS5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9sb2FkZXIvY2FjaGUvQ2FjaGVk
UmF3UmVzb3VyY2UuY3BwCmluZGV4IDNjMWIyOTU1NGIxOWMwNWUyZmU5MWViMDdlMGU1NTJjMmY5
OGE4ZjQuLjU0YmJkZTFhYzhlYzg3MTQ4YTk1M2QzZGQ3NzgyYTdiM2UzMjQ1NjUgMTAwNjQ0Ci0t
LSBhL1NvdXJjZS9XZWJDb3JlL2xvYWRlci9jYWNoZS9DYWNoZWRSYXdSZXNvdXJjZS5jcHAKKysr
IGIvU291cmNlL1dlYkNvcmUvbG9hZGVyL2NhY2hlL0NhY2hlZFJhd1Jlc291cmNlLmNwcApAQCAt
MjY4LDcgKzI2OCw3IEBAIGJvb2wgQ2FjaGVkUmF3UmVzb3VyY2U6OmNhblJldXNlKGNvbnN0IFJl
c291cmNlUmVxdWVzdCYgbmV3UmVxdWVzdCkgY29uc3QKIAogdm9pZCBDYWNoZWRSYXdSZXNvdXJj
ZTo6Y2xlYXIoKQogewotICAgIG1fZGF0YS5jbGVhcigpOworICAgIG1fZGF0YSA9IG51bGxwdHI7
CiAgICAgc2V0RW5jb2RlZFNpemUoMCk7CiAgICAgaWYgKG1fbG9hZGVyKQogICAgICAgICBtX2xv
YWRlci0+Y2xlYXJSZXNvdXJjZURhdGEoKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2xv
YWRlci9jYWNoZS9DYWNoZWRSZXNvdXJjZS5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9sb2FkZXIvY2Fj
aGUvQ2FjaGVkUmVzb3VyY2UuY3BwCmluZGV4IGY0NDMxYmYzZGRhZmNkMmZiNzAzODM3YzZmN2Nj
ZDAxMzA3NTExZjAuLjNiZWYyMWU4ZDk4OTg4YTAzOGRlYjdlMTBlMGVmNGUzY2VmNDNhNmIgMTAw
NjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2xvYWRlci9jYWNoZS9DYWNoZWRSZXNvdXJjZS5jcHAK
KysrIGIvU291cmNlL1dlYkNvcmUvbG9hZGVyL2NhY2hlL0NhY2hlZFJlc291cmNlLmNwcApAQCAt
MzE3LDcgKzMxNyw3IEBAIHZvaWQgQ2FjaGVkUmVzb3VyY2U6OmVycm9yKENhY2hlZFJlc291cmNl
OjpTdGF0dXMgc3RhdHVzKQogewogICAgIHNldFN0YXR1cyhzdGF0dXMpOwogICAgIEFTU0VSVChl
cnJvck9jY3VycmVkKCkpOwotICAgIG1fZGF0YS5jbGVhcigpOworICAgIG1fZGF0YSA9IG51bGxw
dHI7CiAKICAgICBzZXRMb2FkaW5nKGZhbHNlKTsKICAgICBjaGVja05vdGlmeSgpOwpkaWZmIC0t
Z2l0IGEvU291cmNlL1dlYkNvcmUvbG9hZGVyL2ljb24vSWNvblJlY29yZC5jcHAgYi9Tb3VyY2Uv
V2ViQ29yZS9sb2FkZXIvaWNvbi9JY29uUmVjb3JkLmNwcAppbmRleCBkNGJjMGQxYTE5ZjM3MDYy
YmY3Y2E1OGVkYzY0MmJmZWU2MjA1YTg4Li5lN2YxZDRiMjMzNDYxMDY5NGRkMzFlZTdlYzQ0MDQ3
ZjgzNzNiNzY1IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9sb2FkZXIvaWNvbi9JY29uUmVj
b3JkLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9sb2FkZXIvaWNvbi9JY29uUmVjb3JkLmNwcApA
QCAtNzEsNyArNzEsNyBAQCB2b2lkIEljb25SZWNvcmQ6OnNldEltYWdlRGF0YShQYXNzUmVmUHRy
PFNoYXJlZEJ1ZmZlcj4gZGF0YSkKICAgICAvLyBDb3B5IHRoZSBwcm92aWRlZCBkYXRhIGludG8g
dGhlIGJ1ZmZlciBvZiB0aGUgbmV3IEltYWdlIG9iamVjdC4KICAgICBpZiAoIW1faW1hZ2UtPnNl
dERhdGEoZGF0YSwgdHJ1ZSkpIHsKICAgICAgICAgTE9HKEljb25EYXRhYmFzZSwgIk1hbnVhbCBp
bWFnZSBkYXRhIGZvciBpY29uVVJMICclcycgRkFJTEVEIC0gaXQgd2FzIHByb2JhYmx5IGludmFs
aWQgaW1hZ2UgZGF0YSIsIG1faWNvblVSTC5hc2NpaSgpLmRhdGEoKSk7Ci0gICAgICAgIG1faW1h
Z2UuY2xlYXIoKTsKKyAgICAgICAgbV9pbWFnZSA9IG51bGxwdHI7CiAgICAgfQogICAgIAogICAg
IG1fZGF0YVNldCA9IHRydWU7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wYWdlL0V2ZW50
SGFuZGxlci5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9wYWdlL0V2ZW50SGFuZGxlci5jcHAKaW5kZXgg
NjU0YTRmZWM3NzM3OTcyM2Q3YjYxZjM2MTY3YWJhMjVlODk0NTA5Yy4uM2FhNjZkOWJjODE0ZWMz
YmZkYmQzNGM5ZDc1ZTNlNzM1NjExNTRlMyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGFn
ZS9FdmVudEhhbmRsZXIuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BhZ2UvRXZlbnRIYW5kbGVy
LmNwcApAQCAtNDg1LDcgKzQ4NSw3IEBAIHZvaWQgRXZlbnRIYW5kbGVyOjpjbGVhcigpCiAgICAg
bV9tb3VzZVBvc2l0aW9uSXNVbmtub3duID0gdHJ1ZTsKICAgICBtX2xhc3RLbm93bk1vdXNlUG9z
aXRpb24gPSBJbnRQb2ludCgpOwogICAgIG1fbGFzdEtub3duTW91c2VHbG9iYWxQb3NpdGlvbiA9
IEludFBvaW50KCk7Ci0gICAgbV9tb3VzZVByZXNzTm9kZSA9IDA7CisgICAgbV9tb3VzZVByZXNz
Tm9kZSA9IG51bGxwdHI7CiAgICAgbV9tb3VzZVByZXNzZWQgPSBmYWxzZTsKICAgICBtX2NhcHR1
cmVzRHJhZ2dpbmcgPSBmYWxzZTsKICAgICBtX2NhcHR1cmluZ01vdXNlRXZlbnRzRWxlbWVudCA9
IG51bGxwdHI7CkBAIC00OTQsNyArNDk0LDcgQEAgdm9pZCBFdmVudEhhbmRsZXI6OmNsZWFyKCkK
ICNlbmRpZgogI2lmIEVOQUJMRShUT1VDSF9FVkVOVFMpICYmICFFTkFCTEUoSU9TX1RPVUNIX0VW
RU5UUykKICAgICBtX29yaWdpbmF0aW5nVG91Y2hQb2ludFRhcmdldHMuY2xlYXIoKTsKLSAgICBt
X29yaWdpbmF0aW5nVG91Y2hQb2ludERvY3VtZW50LmNsZWFyKCk7CisgICAgbV9vcmlnaW5hdGlu
Z1RvdWNoUG9pbnREb2N1bWVudCA9IG51bGxwdHI7CiAgICAgbV9vcmlnaW5hdGluZ1RvdWNoUG9p
bnRUYXJnZXRLZXkgPSAwOwogI2VuZGlmCiAgICAgbV9tYXhNb3VzZU1vdmVkRHVyYXRpb24gPSAw
OwpAQCAtMzk5NCw3ICszOTk0LDcgQEAgYm9vbCBFdmVudEhhbmRsZXI6OmhhbmRsZVRvdWNoRXZl
bnQoY29uc3QgUGxhdGZvcm1Ub3VjaEV2ZW50JiBldmVudCkKICAgICB9CiAgICAgbV90b3VjaFBy
ZXNzZWQgPSB0b3VjaGVzLT5sZW5ndGgoKSA+IDA7CiAgICAgaWYgKGFsbFRvdWNoUmVsZWFzZWQp
Ci0gICAgICAgIG1fb3JpZ2luYXRpbmdUb3VjaFBvaW50RG9jdW1lbnQuY2xlYXIoKTsKKyAgICAg
ICAgbV9vcmlnaW5hdGluZ1RvdWNoUG9pbnREb2N1bWVudCA9IG51bGxwdHI7CiAKICAgICAvLyBO
b3cgaXRlcmF0ZSB0aGUgY2hhbmdlZFRvdWNoZXMgbGlzdCBhbmQgbV90YXJnZXRzIHdpdGhpbiBp
dCwgc2VuZGluZyBldmVudHMgdG8gdGhlIHRhcmdldHMgYXMgcmVxdWlyZWQuCiAgICAgYm9vbCBz
d2FsbG93ZWRFdmVudCA9IGZhbHNlOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGFnZS9Q
YWdlLmNwcCBiL1NvdXJjZS9XZWJDb3JlL3BhZ2UvUGFnZS5jcHAKaW5kZXggMWQzZGNjMmI1NjM5
NjIxNGU5ZjgwZjcyYzhlMzNlYTE4OWI5M2FkMi4uZjg2ZDgxZmQwNTMwYTAzYzYyNjIyMTE2Yzkw
YmZlOTA1NjcxNjdiMCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGFnZS9QYWdlLmNwcAor
KysgYi9Tb3VyY2UvV2ViQ29yZS9wYWdlL1BhZ2UuY3BwCkBAIC01MTYsNyArNTE2LDcgQEAgdm9p
ZCBQYWdlOjpyZWZyZXNoUGx1Z2lucyhib29sIHJlbG9hZCkKICAgICBWZWN0b3I8UmVmPEZyYW1l
Pj4gZnJhbWVzTmVlZGluZ1JlbG9hZDsKIAogICAgIGZvciAoYXV0byYgcGFnZSA6ICphbGxQYWdl
cykgewotICAgICAgICBwYWdlLT5tX3BsdWdpbkRhdGEuY2xlYXIoKTsKKyAgICAgICAgcGFnZS0+
bV9wbHVnaW5EYXRhID0gbnVsbHB0cjsKIAogICAgICAgICBpZiAoIXJlbG9hZCkKICAgICAgICAg
ICAgIGNvbnRpbnVlOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vYXVkaW8v
bWFjL0NBUmluZ0J1ZmZlci5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9hdWRpby9tYWMv
Q0FSaW5nQnVmZmVyLmNwcAppbmRleCBmNzZlOGRmOTA2YjVhNjFlNTdjNzc1YzRjZTZkMmNjNDRi
YzhhYTUyLi4wNTQ0MmFkYzQ1ZTk3Nzg5OTMxNTIwNWMzNzJlNjE5NjAxMjc5ZDM3IDEwMDY0NAot
LS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9hdWRpby9tYWMvQ0FSaW5nQnVmZmVyLmNwcAor
KysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9hdWRpby9tYWMvQ0FSaW5nQnVmZmVyLmNwcApA
QCAtODYsNyArODYsNyBAQCB2b2lkIENBUmluZ0J1ZmZlcjo6YWxsb2NhdGUodWludDMyX3QgY2hh
bm5lbENvdW50LCBzaXplX3QgYnl0ZXNQZXJGcmFtZSwgc2l6ZV90CiB2b2lkIENBUmluZ0J1ZmZl
cjo6ZGVhbGxvY2F0ZSgpCiB7CiAgICAgaWYgKG1fYnVmZmVycykKLSAgICAgICAgbV9idWZmZXJz
LmNsZWFyKCk7CisgICAgICAgIG1fYnVmZmVycyA9IG51bGxwdHI7CiAKICAgICBtX2NoYW5uZWxD
b3VudCA9IDA7CiAgICAgbV9jYXBhY2l0eUJ5dGVzID0gMDsKZGlmZiAtLWdpdCBhL1NvdXJjZS9X
ZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL0ZvbnQuY3BwIGIvU291cmNlL1dlYkNvcmUvcGxhdGZv
cm0vZ3JhcGhpY3MvRm9udC5jcHAKaW5kZXggNjAzZWJhODFmMDEwZmVmMGIwOWVhOTQ3YWU4ODZh
NTE5OThiNWFjYy4uZDkyNjViNThkMmJlMjRhZDcxNDczYWJhNWIyM2I1MjZkMDkxMzcyZSAxMDA2
NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvRm9udC5jcHAKKysrIGIv
U291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvRm9udC5jcHAKQEAgLTM2Myw3ICszNjMs
NyBAQCBjb25zdCBPcGVuVHlwZU1hdGhEYXRhKiBGb250OjptYXRoRGF0YSgpIGNvbnN0CiAgICAg
aWYgKCFtX21hdGhEYXRhKSB7CiAgICAgICAgIG1fbWF0aERhdGEgPSBPcGVuVHlwZU1hdGhEYXRh
OjpjcmVhdGUobV9wbGF0Zm9ybURhdGEpOwogICAgICAgICBpZiAoIW1fbWF0aERhdGEtPmhhc01h
dGhEYXRhKCkpCi0gICAgICAgICAgICBtX21hdGhEYXRhLmNsZWFyKCk7CisgICAgICAgICAgICBt
X21hdGhEYXRhID0gbnVsbHB0cjsKICAgICB9CiAgICAgcmV0dXJuIG1fbWF0aERhdGEuZ2V0KCk7
CiB9CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9Gb250Q2Fj
aGUuY3BwIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvRm9udENhY2hlLmNwcApp
bmRleCBhNmM0MDQ5OTQ4Y2YzNjMyMWI3M2RkNTExYjkxOGEyYThhYWUwNDVjLi44ZDFhODM1OWQ2
OWNiNzBlNGMyMGI1ZWE4MzI4NzY1YTZiY2Q0NjM0IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29y
ZS9wbGF0Zm9ybS9ncmFwaGljcy9Gb250Q2FjaGUuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3Bs
YXRmb3JtL2dyYXBoaWNzL0ZvbnRDYWNoZS5jcHAKQEAgLTMyMCw3ICszMjAsNyBAQCBQYXNzUmVm
UHRyPE9wZW5UeXBlVmVydGljYWxEYXRhPiBGb250Q2FjaGU6OmdldFZlcnRpY2FsRGF0YShjb25z
dCBGb250RmlsZUtleSYgawogCiAgICAgUmVmUHRyPE9wZW5UeXBlVmVydGljYWxEYXRhPiB2ZXJ0
aWNhbERhdGEgPSBPcGVuVHlwZVZlcnRpY2FsRGF0YTo6Y3JlYXRlKHBsYXRmb3JtRGF0YSk7CiAg
ICAgaWYgKCF2ZXJ0aWNhbERhdGEtPmlzT3BlblR5cGUoKSkKLSAgICAgICAgdmVydGljYWxEYXRh
LmNsZWFyKCk7CisgICAgICAgIHZlcnRpY2FsRGF0YSA9IG51bGxwdHI7CiAgICAgZm9udFZlcnRp
Y2FsRGF0YUNhY2hlLnNldChrZXksIHZlcnRpY2FsRGF0YSk7CiAgICAgcmV0dXJuIHZlcnRpY2Fs
RGF0YTsKIH0KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL0dy
YXBoaWNzQ29udGV4dC5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9HcmFw
aGljc0NvbnRleHQuY3BwCmluZGV4IGQzOGMxZmFmNzc1MjU4MzNmMzdlM2NiNjE3OGJiNGM2ZjY3
Y2MzOTkuLmU2YjM3ZmRlNWY5NWVjMDJjMmY3ZDY4YTYxZjQwZjQ3YTc3ZjI3MzEgMTAwNjQ0Ci0t
LSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL0dyYXBoaWNzQ29udGV4dC5jcHAK
KysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvR3JhcGhpY3NDb250ZXh0LmNw
cApAQCAtMTc4LDggKzE3OCw4IEBAIHZvaWQgR3JhcGhpY3NDb250ZXh0OjpzZXRTdHJva2VDb2xv
cihjb25zdCBDb2xvciYgY29sb3IsIENvbG9yU3BhY2UgY29sb3JTcGFjZSkKIHsKICAgICBtX3N0
YXRlLnN0cm9rZUNvbG9yID0gY29sb3I7CiAgICAgbV9zdGF0ZS5zdHJva2VDb2xvclNwYWNlID0g
Y29sb3JTcGFjZTsKLSAgICBtX3N0YXRlLnN0cm9rZUdyYWRpZW50LmNsZWFyKCk7Ci0gICAgbV9z
dGF0ZS5zdHJva2VQYXR0ZXJuLmNsZWFyKCk7CisgICAgbV9zdGF0ZS5zdHJva2VHcmFkaWVudCA9
IG51bGxwdHI7CisgICAgbV9zdGF0ZS5zdHJva2VQYXR0ZXJuID0gbnVsbHB0cjsKICAgICBzZXRQ
bGF0Zm9ybVN0cm9rZUNvbG9yKGNvbG9yLCBjb2xvclNwYWNlKTsKIH0KIApAQCAtMjQ1LDggKzI0
NSw4IEBAIHZvaWQgR3JhcGhpY3NDb250ZXh0OjpzZXRGaWxsQ29sb3IoY29uc3QgQ29sb3ImIGNv
bG9yLCBDb2xvclNwYWNlIGNvbG9yU3BhY2UpCiB7CiAgICAgbV9zdGF0ZS5maWxsQ29sb3IgPSBj
b2xvcjsKICAgICBtX3N0YXRlLmZpbGxDb2xvclNwYWNlID0gY29sb3JTcGFjZTsKLSAgICBtX3N0
YXRlLmZpbGxHcmFkaWVudC5jbGVhcigpOwotICAgIG1fc3RhdGUuZmlsbFBhdHRlcm4uY2xlYXIo
KTsKKyAgICBtX3N0YXRlLmZpbGxHcmFkaWVudCA9IG51bGxwdHI7CisgICAgbV9zdGF0ZS5maWxs
UGF0dGVybiA9IG51bGxwdHI7CiAgICAgc2V0UGxhdGZvcm1GaWxsQ29sb3IoY29sb3IsIGNvbG9y
U3BhY2UpOwogfQogCkBAIC0yNjksMjYgKzI2OSwyNiBAQCB2b2lkIEdyYXBoaWNzQ29udGV4dDo6
c2V0QW50aWFsaWFzZWRGb250RGlsYXRpb25FbmFibGVkKGJvb2wgYW50aWFsaWFzZWRGb250RGls
YQogCiB2b2lkIEdyYXBoaWNzQ29udGV4dDo6c2V0U3Ryb2tlUGF0dGVybihSZWY8UGF0dGVybj4m
JiBwYXR0ZXJuKQogewotICAgIG1fc3RhdGUuc3Ryb2tlR3JhZGllbnQuY2xlYXIoKTsKKyAgICBt
X3N0YXRlLnN0cm9rZUdyYWRpZW50ID0gbnVsbHB0cjsKICAgICBtX3N0YXRlLnN0cm9rZVBhdHRl
cm4gPSBXVEY6Om1vdmUocGF0dGVybik7CiB9CiAKIHZvaWQgR3JhcGhpY3NDb250ZXh0OjpzZXRG
aWxsUGF0dGVybihSZWY8UGF0dGVybj4mJiBwYXR0ZXJuKQogewotICAgIG1fc3RhdGUuZmlsbEdy
YWRpZW50LmNsZWFyKCk7CisgICAgbV9zdGF0ZS5maWxsR3JhZGllbnQgPSBudWxscHRyOwogICAg
IG1fc3RhdGUuZmlsbFBhdHRlcm4gPSBXVEY6Om1vdmUocGF0dGVybik7CiB9CiAKIHZvaWQgR3Jh
cGhpY3NDb250ZXh0OjpzZXRTdHJva2VHcmFkaWVudChSZWY8R3JhZGllbnQ+JiYgZ3JhZGllbnQp
CiB7CiAgICAgbV9zdGF0ZS5zdHJva2VHcmFkaWVudCA9IFdURjo6bW92ZShncmFkaWVudCk7Ci0g
ICAgbV9zdGF0ZS5zdHJva2VQYXR0ZXJuLmNsZWFyKCk7CisgICAgbV9zdGF0ZS5zdHJva2VQYXR0
ZXJuID0gbnVsbHB0cjsKIH0KIAogdm9pZCBHcmFwaGljc0NvbnRleHQ6OnNldEZpbGxHcmFkaWVu
dChSZWY8R3JhZGllbnQ+JiYgZ3JhZGllbnQpCiB7CiAgICAgbV9zdGF0ZS5maWxsR3JhZGllbnQg
PSBXVEY6Om1vdmUoZ3JhZGllbnQpOwotICAgIG1fc3RhdGUuZmlsbFBhdHRlcm4uY2xlYXIoKTsK
KyAgICBtX3N0YXRlLmZpbGxQYXR0ZXJuID0gbnVsbHB0cjsKIH0KIAogdm9pZCBHcmFwaGljc0Nv
bnRleHQ6OmJlZ2luVHJhbnNwYXJlbmN5TGF5ZXIoZmxvYXQgb3BhY2l0eSkKZGlmZiAtLWdpdCBh
L1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL01lZGlhUGxheWVyLmNwcCBiL1NvdXJj
ZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL01lZGlhUGxheWVyLmNwcAppbmRleCAyOTRhNzZk
OWY4NmVmMmU3NzUwZDM2YTgzYTk4N2Q3NjBkNDBiMWQyLi4wMTI3OTVlNDY1YmVhMDRkMGY4N2U3
Mjc3ZTc0ZTBmZTViNTg3MmIxIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9n
cmFwaGljcy9NZWRpYVBsYXllci5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3Jh
cGhpY3MvTWVkaWFQbGF5ZXIuY3BwCkBAIC0zMTQsMTAgKzMxNCwxMCBAQCBib29sIE1lZGlhUGxh
eWVyOjpsb2FkKGNvbnN0IFVSTCYgdXJsLCBjb25zdCBDb250ZW50VHlwZSYgY29udGVudFR5cGUs
IGNvbnN0IFN0cgogICAgIG1fY29udGVudE1JTUVUeXBlV2FzSW5mZXJyZWRGcm9tRXh0ZW5zaW9u
ID0gZmFsc2U7CiAKICNpZiBFTkFCTEUoTUVESUFfU09VUkNFKQotICAgIG1fbWVkaWFTb3VyY2Ug
PSAwOworICAgIG1fbWVkaWFTb3VyY2UgPSBudWxscHRyOwogI2VuZGlmCiAjaWYgRU5BQkxFKE1F
RElBX1NUUkVBTSkKLSAgICBtX21lZGlhU3RyZWFtID0gMDsKKyAgICBtX21lZGlhU3RyZWFtID0g
bnVsbHB0cjsKICNlbmRpZgogCiAgICAgLy8gSWYgdGhlIE1JTUUgdHlwZSBpcyBtaXNzaW5nIG9y
IGlzIG5vdCBtZWFuaW5nZnVsLCB0cnkgdG8gZmlndXJlIGl0IG91dCBmcm9tIHRoZSBVUkwuCmRp
ZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9jYS9HcmFwaGljc0xh
eWVyQ0EuY3BwIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvY2EvR3JhcGhpY3NM
YXllckNBLmNwcAppbmRleCA4MmMwNzY5MTI3YmY5ZTUxNjlkYWU0OGRmYjRiMjg5MDJmZTkwNmMw
Li4zNGY0Y2UxMDNhOTM2ZTNhMDExYjg1Y2ZiNGRmZWVjZDYxNTJjOGU4IDEwMDY0NAotLS0gYS9T
b3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9jYS9HcmFwaGljc0xheWVyQ0EuY3BwCisr
KyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2NhL0dyYXBoaWNzTGF5ZXJDQS5j
cHAKQEAgLTIyMDgsNyArMjIwOCw3IEBAIHZvaWQgR3JhcGhpY3NMYXllckNBOjp1cGRhdGVDb250
ZW50c0ltYWdlKCkKICAgICB9IGVsc2UgewogICAgICAgICAvLyBObyBpbWFnZS4KICAgICAgICAg
Ly8gbV9jb250ZW50c0xheWVyIHdpbGwgYmUgcmVtb3ZlZCB2aWEgdXBkYXRlU3VibGF5ZXJMaXN0
LgotICAgICAgICBtX2NvbnRlbnRzTGF5ZXIgPSAwOworICAgICAgICBtX2NvbnRlbnRzTGF5ZXIg
PSBudWxscHRyOwogICAgIH0KIH0KIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZv
cm0vZ3JhcGhpY3MvY2Fpcm8vQmFja2luZ1N0b3JlQmFja2VuZENhaXJvWDExLmNwcCBiL1NvdXJj
ZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2NhaXJvL0JhY2tpbmdTdG9yZUJhY2tlbmRDYWly
b1gxMS5jcHAKaW5kZXggN2I4NjMxYWYwYTlkOGY0YWU5MDYzYjI3OWU0MGNlZTM0NTQ5Y2ZhNC4u
NDM3ZGFmYzgyZmQyMmVjYmYwNjA0N2EzYzI4Njg5ZWJlMDIyMzZkMiAxMDA2NDQKLS0tIGEvU291
cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvY2Fpcm8vQmFja2luZ1N0b3JlQmFja2VuZENh
aXJvWDExLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9jYWlyby9C
YWNraW5nU3RvcmVCYWNrZW5kQ2Fpcm9YMTEuY3BwCkBAIC00Myw3ICs0Myw3IEBAIEJhY2tpbmdT
dG9yZUJhY2tlbmRDYWlyb1gxMTo6QmFja2luZ1N0b3JlQmFja2VuZENhaXJvWDExKHVuc2lnbmVk
IGxvbmcgcm9vdFdpbmRvCiBCYWNraW5nU3RvcmVCYWNrZW5kQ2Fpcm9YMTE6On5CYWNraW5nU3Rv
cmVCYWNrZW5kQ2Fpcm9YMTEoKQogewogICAgIC8vIFRoZSBwaXhtYXAgbmVlZHMgdG8gZXhpc3Qg
d2hlbiB0aGUgc3VyZmFjZSBpcyBkZXN0cm95ZWQsIHNvIGJlZ2luIGJ5IGNsZWFyaW5nIGl0Lgot
ICAgIG1fc3VyZmFjZS5jbGVhcigpOworICAgIG1fc3VyZmFjZSA9IG51bGxwdHI7CiB9CiAKIHZv
aWQgQmFja2luZ1N0b3JlQmFja2VuZENhaXJvWDExOjpzY3JvbGwoY29uc3QgSW50UmVjdCYgc2Ny
b2xsUmVjdCwgY29uc3QgSW50U2l6ZSYgc2Nyb2xsT2Zmc2V0KQpkaWZmIC0tZ2l0IGEvU291cmNl
L1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvY2Fpcm8vQml0bWFwSW1hZ2VDYWlyby5jcHAgYi9T
b3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9jYWlyby9CaXRtYXBJbWFnZUNhaXJvLmNw
cAppbmRleCAyNmRmNWRmM2FiYTQ5MDc2MDEyNzg5YzI2NmZhOTYwMjc3NWJlMmRlLi5mMGQzYTdh
NzJkYjkyZmRlMWQxYjVmOTkzOGIzYzBjMWU3YWQ2MWYxIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2Vi
Q29yZS9wbGF0Zm9ybS9ncmFwaGljcy9jYWlyby9CaXRtYXBJbWFnZUNhaXJvLmNwcAorKysgYi9T
b3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9jYWlyby9CaXRtYXBJbWFnZUNhaXJvLmNw
cApAQCAtMTU5LDcgKzE1OSw3IEBAIGJvb2wgRnJhbWVEYXRhOjpjbGVhcihib29sIGNsZWFyTWV0
YWRhdGEpCiAgICAgICAgIG1faGF2ZU1ldGFkYXRhID0gZmFsc2U7CiAKICAgICBpZiAobV9mcmFt
ZSkgewotICAgICAgICBtX2ZyYW1lLmNsZWFyKCk7CisgICAgICAgIG1fZnJhbWUgPSBudWxscHRy
OwogICAgICAgICByZXR1cm4gdHJ1ZTsKICAgICB9CiAgICAgcmV0dXJuIGZhbHNlOwpkaWZmIC0t
Z2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvZmlsdGVycy9GaWx0ZXJFZmZl
Y3QuY3BwIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvZmlsdGVycy9GaWx0ZXJF
ZmZlY3QuY3BwCmluZGV4IDc2MjcwMDgwMzBkN2VmYWU2ZTA4MGU2ODc1OGRjMTYwZWFjMmMwYjku
LmM5OGQ1Yjk4NWFmM2JiMWU1YjBjMGMyMjZiYjQ1ZmM2MDU0ZjQzM2MgMTAwNjQ0Ci0tLSBhL1Nv
dXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2ZpbHRlcnMvRmlsdGVyRWZmZWN0LmNwcAor
KysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9maWx0ZXJzL0ZpbHRlckVmZmVj
dC5jcHAKQEAgLTI0NSwxMiArMjQ1LDEyIEBAIHZvaWQgRmlsdGVyRWZmZWN0OjpjbGVhclJlc3Vs
dCgpCiAgICAgaWYgKG1faW1hZ2VCdWZmZXJSZXN1bHQpCiAgICAgICAgIG1faW1hZ2VCdWZmZXJS
ZXN1bHQucmVzZXQoKTsKICAgICBpZiAobV91bm11bHRpcGxpZWRJbWFnZVJlc3VsdCkKLSAgICAg
ICAgbV91bm11bHRpcGxpZWRJbWFnZVJlc3VsdC5jbGVhcigpOworICAgICAgICBtX3VubXVsdGlw
bGllZEltYWdlUmVzdWx0ID0gbnVsbHB0cjsKICAgICBpZiAobV9wcmVtdWx0aXBsaWVkSW1hZ2VS
ZXN1bHQpCi0gICAgICAgIG1fcHJlbXVsdGlwbGllZEltYWdlUmVzdWx0LmNsZWFyKCk7CisgICAg
ICAgIG1fcHJlbXVsdGlwbGllZEltYWdlUmVzdWx0ID0gbnVsbHB0cjsKICNpZiBFTkFCTEUoT1BF
TkNMKQogICAgIGlmIChtX29wZW5DTEltYWdlUmVzdWx0KQotICAgICAgICBtX29wZW5DTEltYWdl
UmVzdWx0LmNsZWFyKCk7CisgICAgICAgIG1fb3BlbkNMSW1hZ2VSZXN1bHQgPSBudWxscHRyOwog
I2VuZGlmCiB9CiAKQEAgLTU0MCw3ICs1NDAsNyBAQCB2b2lkIEZpbHRlckVmZmVjdDo6dHJhbnNm
b3JtUmVzdWx0Q29sb3JTcGFjZShDb2xvclNwYWNlIGRzdENvbG9yU3BhY2UpCiAjaWYgRU5BQkxF
KE9QRU5DTCkKICAgICBpZiAob3BlbkNMSW1hZ2UoKSkgewogICAgICAgICBpZiAobV9pbWFnZUJ1
ZmZlclJlc3VsdCkKLSAgICAgICAgICAgIG1faW1hZ2VCdWZmZXJSZXN1bHQuY2xlYXIoKTsKKyAg
ICAgICAgICAgIG1faW1hZ2VCdWZmZXJSZXN1bHQgPSBudWxscHRyOwogICAgICAgICBGaWx0ZXJD
b250ZXh0T3BlbkNMKiBjb250ZXh0ID0gRmlsdGVyQ29udGV4dE9wZW5DTDo6Y29udGV4dCgpOwog
ICAgICAgICBBU1NFUlQoY29udGV4dCk7CiAgICAgICAgIGNvbnRleHQtPm9wZW5DTFRyYW5zZm9y
bUNvbG9yU3BhY2UobV9vcGVuQ0xJbWFnZVJlc3VsdCwgYWJzb2x1dGVQYWludFJlY3QoKSwgbV9y
ZXN1bHRDb2xvclNwYWNlLCBkc3RDb2xvclNwYWNlKTsKQEAgLTU1OCw5ICs1NTgsOSBAQCB2b2lk
IEZpbHRlckVmZmVjdDo6dHJhbnNmb3JtUmVzdWx0Q29sb3JTcGFjZShDb2xvclNwYWNlIGRzdENv
bG9yU3BhY2UpCiAgICAgbV9yZXN1bHRDb2xvclNwYWNlID0gZHN0Q29sb3JTcGFjZTsKIAogICAg
IGlmIChtX3VubXVsdGlwbGllZEltYWdlUmVzdWx0KQotICAgICAgICBtX3VubXVsdGlwbGllZElt
YWdlUmVzdWx0LmNsZWFyKCk7CisgICAgICAgIG1fdW5tdWx0aXBsaWVkSW1hZ2VSZXN1bHQgPSBu
dWxscHRyOwogICAgIGlmIChtX3ByZW11bHRpcGxpZWRJbWFnZVJlc3VsdCkKLSAgICAgICAgbV9w
cmVtdWx0aXBsaWVkSW1hZ2VSZXN1bHQuY2xlYXIoKTsKKyAgICAgICAgbV9wcmVtdWx0aXBsaWVk
SW1hZ2VSZXN1bHQgPSBudWxscHRyOwogI2VuZGlmCiB9CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9X
ZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2dzdHJlYW1lci9JbWFnZUdTdHJlYW1lckNhaXJvLmNw
cCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2dzdHJlYW1lci9JbWFnZUdTdHJl
YW1lckNhaXJvLmNwcAppbmRleCAwNmZhZWNhMTliYTI1M2VhNzgzNzBmNTg1NDRhYmYxYWNiMmU1
MjVlLi5lZTI3Mjc3ZmYwYjdlOTAzM2Y0YjkzMzYwMjhhY2Y0MjE4YjIwYTVmIDEwMDY0NAotLS0g
YS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9nc3RyZWFtZXIvSW1hZ2VHU3RyZWFt
ZXJDYWlyby5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvZ3N0cmVh
bWVyL0ltYWdlR1N0cmVhbWVyQ2Fpcm8uY3BwCkBAIC03MSw5ICs3MSw3IEBAIEltYWdlR1N0cmVh
bWVyOjpJbWFnZUdTdHJlYW1lcihHc3RTYW1wbGUqIHNhbXBsZSkKIEltYWdlR1N0cmVhbWVyOjp+
SW1hZ2VHU3RyZWFtZXIoKQogewogICAgIGlmIChtX2ltYWdlKQotICAgICAgICBtX2ltYWdlLmNs
ZWFyKCk7Ci0KLSAgICBtX2ltYWdlID0gMDsKKyAgICAgICAgbV9pbWFnZSA9IG51bGxwdHI7CiAK
ICAgICAvLyBXZSBrZWVwIHRoZSBidWZmZXIgbWVtb3J5IG1hcHBlZCB1bnRpbCB0aGUgaW1hZ2Ug
aXMgZGVzdHJveWVkIGJlY2F1c2UgdGhlIGludGVybmFsCiAgICAgLy8gY2Fpcm9fc3VyZmFjZV90
IHdhcyBjcmVhdGVkIHVzaW5nIGNhaXJvX2ltYWdlX3N1cmZhY2VfY3JlYXRlX2Zvcl9kYXRhKCku
CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy90ZXhtYXAvQml0
bWFwVGV4dHVyZUdMLmNwcCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL3RleG1h
cC9CaXRtYXBUZXh0dXJlR0wuY3BwCmluZGV4IDk3NWMzOGYyZmY0YjE5MTgyOGQ3ZDFlY2UxNmU0
ZDYwOWIwOTBiZjYuLjBlNTJkN2I0YjI1ODQ1YTYwMzhkYjQ1ZWQ4ZjhhOWFiZDRhZWY5OTQgMTAw
NjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL3RleG1hcC9CaXRtYXBU
ZXh0dXJlR0wuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL3RleG1h
cC9CaXRtYXBUZXh0dXJlR0wuY3BwCkBAIC0yNzgsNyArMjc4LDcgQEAgUGFzc1JlZlB0cjxCaXRt
YXBUZXh0dXJlPiBCaXRtYXBUZXh0dXJlR0w6OmFwcGx5RmlsdGVycyhUZXh0dXJlTWFwcGVyKiB0
ZXh0dXJlTWEKICAgICAgICAgICAgIHRleG1hcEdMLT5kcmF3RmlsdGVyZWQoKnJlc3VsdFN1cmZh
Y2UuZ2V0KCksIHNwYXJlU3VyZmFjZS5nZXQoKSwgKmZpbHRlciwgaik7CiAgICAgICAgICAgICBp
ZiAoIWogJiYgZmlsdGVyLT50eXBlKCkgPT0gRmlsdGVyT3BlcmF0aW9uOjpEUk9QX1NIQURPVykg
ewogICAgICAgICAgICAgICAgIHNwYXJlU3VyZmFjZSA9IHJlc3VsdFN1cmZhY2U7Ci0gICAgICAg
ICAgICAgICAgcmVzdWx0U3VyZmFjZS5jbGVhcigpOworICAgICAgICAgICAgICAgIHJlc3VsdFN1
cmZhY2UgPSBudWxscHRyOwogICAgICAgICAgICAgfQogICAgICAgICAgICAgc3RkOjpzd2FwKHJl
c3VsdFN1cmZhY2UsIGludGVybWVkaWF0ZVN1cmZhY2UpOwogICAgICAgICB9CmRpZmYgLS1naXQg
YS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy90ZXhtYXAvVGV4dHVyZU1hcHBlckdM
LmNwcCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL3RleG1hcC9UZXh0dXJlTWFw
cGVyR0wuY3BwCmluZGV4IDBiY2U4Yzc0MjBkN2QwYTQ0YjMwOWUyNmY1NjZhOTIxOTNlNDg2MGEu
LjRjNTQ4MDU2MjM1ZTM5OGZhYzk4MzYwZmU5Y2JmNjI1Yzc1YTFkMDUgMTAwNjQ0Ci0tLSBhL1Nv
dXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL3RleG1hcC9UZXh0dXJlTWFwcGVyR0wuY3Bw
CisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL3RleG1hcC9UZXh0dXJlTWFw
cGVyR0wuY3BwCkBAIC02OTEsNyArNjkxLDcgQEAgdm9pZCBUZXh0dXJlTWFwcGVyR0w6OmJpbmRE
ZWZhdWx0U3VyZmFjZSgpCiAgICAgZGF0YSgpLnByb2plY3Rpb25NYXRyaXggPSBjcmVhdGVQcm9q
ZWN0aW9uTWF0cml4KHZpZXdwb3J0U2l6ZSwgZGF0YSgpLlBhaW50RmxhZ3MgJiBQYWludGluZ01p
cnJvcmVkKTsKICAgICBtX2NvbnRleHQzRC0+dmlld3BvcnQoZGF0YSgpLnZpZXdwb3J0WzBdLCBk
YXRhKCkudmlld3BvcnRbMV0sIHZpZXdwb3J0U2l6ZS53aWR0aCgpLCB2aWV3cG9ydFNpemUuaGVp
Z2h0KCkpOwogICAgIG1fY2xpcFN0YWNrLmFwcGx5KG1fY29udGV4dDNELmdldCgpKTsKLSAgICBk
YXRhKCkuY3VycmVudFN1cmZhY2UuY2xlYXIoKTsKKyAgICBkYXRhKCkuY3VycmVudFN1cmZhY2Ug
PSBudWxscHRyOwogfQogCiB2b2lkIFRleHR1cmVNYXBwZXJHTDo6YmluZFN1cmZhY2UoQml0bWFw
VGV4dHVyZSAqc3VyZmFjZSkKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dy
YXBoaWNzL3RleG1hcC9UZXh0dXJlTWFwcGVyTGF5ZXIuY3BwIGIvU291cmNlL1dlYkNvcmUvcGxh
dGZvcm0vZ3JhcGhpY3MvdGV4bWFwL1RleHR1cmVNYXBwZXJMYXllci5jcHAKaW5kZXggYzg2NDIw
MjJhM2FjMTQ2NTc3MDg4MWYxMjQ4N2ZmN2RkYmI1NDRkOC4uMzQ1NTM5ODcwMjRhNmU3NWZkOWQx
ZTM5MDY4MTc4YjllZDcyM2EyYiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0v
Z3JhcGhpY3MvdGV4bWFwL1RleHR1cmVNYXBwZXJMYXllci5jcHAKKysrIGIvU291cmNlL1dlYkNv
cmUvcGxhdGZvcm0vZ3JhcGhpY3MvdGV4bWFwL1RleHR1cmVNYXBwZXJMYXllci5jcHAKQEAgLTQw
OCw3ICs0MDgsNyBAQCB2b2lkIFRleHR1cmVNYXBwZXJMYXllcjo6cGFpbnRXaXRoSW50ZXJtZWRp
YXRlU3VyZmFjZShjb25zdCBUZXh0dXJlTWFwcGVyUGFpbnRPcAogCiAgICAgaWYgKHJlcGxpY2FT
dXJmYWNlICYmIG9wdGlvbnMub3BhY2l0eSA9PSAxKSB7CiAgICAgICAgIGNvbW1pdFN1cmZhY2Uo
b3B0aW9ucywgcmVwbGljYVN1cmZhY2UsIHJlY3QsIDEpOwotICAgICAgICByZXBsaWNhU3VyZmFj
ZS5jbGVhcigpOworICAgICAgICByZXBsaWNhU3VyZmFjZSA9IG51bGxwdHI7CiAgICAgfQogCiAg
ICAgbWFpblN1cmZhY2UgPSBwYWludEludG9TdXJmYWNlKHBhaW50T3B0aW9ucywgcmVjdC5zaXpl
KCkpOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvdGV4bWFw
L1RleHR1cmVNYXBwZXJUaWxlZEJhY2tpbmdTdG9yZS5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0
Zm9ybS9ncmFwaGljcy90ZXhtYXAvVGV4dHVyZU1hcHBlclRpbGVkQmFja2luZ1N0b3JlLmNwcApp
bmRleCAyMDgwNDYyMzkzYmRiYjljYjAxNDgyMjgzOTRlOGIyZjY1ZjBjNmQ3Li5kMzU3MTBhNjky
ODFhODIwNjE2ZGUzMTIxMzNjNGQzYzdmZjkxN2U4IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29y
ZS9wbGF0Zm9ybS9ncmFwaGljcy90ZXhtYXAvVGV4dHVyZU1hcHBlclRpbGVkQmFja2luZ1N0b3Jl
LmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy90ZXhtYXAvVGV4dHVy
ZU1hcHBlclRpbGVkQmFja2luZ1N0b3JlLmNwcApAQCAtMzksNyArMzksNyBAQCB2b2lkIFRleHR1
cmVNYXBwZXJUaWxlZEJhY2tpbmdTdG9yZTo6dXBkYXRlQ29udGVudHNGcm9tSW1hZ2VJZk5lZWRl
ZChUZXh0dXJlTWFwcAogICAgICAgICByZXR1cm47CiAKICAgICB1cGRhdGVDb250ZW50cyh0ZXh0
dXJlTWFwcGVyLCBtX2ltYWdlLmdldCgpLCBtX2ltYWdlLT5zaXplKCksIGVuY2xvc2luZ0ludFJl
Y3QobV9pbWFnZS0+cmVjdCgpKSwgQml0bWFwVGV4dHVyZTo6VXBkYXRlQ2Fubm90TW9kaWZ5T3Jp
Z2luYWxJbWFnZURhdGEpOwotICAgIG1faW1hZ2UuY2xlYXIoKTsKKyAgICBtX2ltYWdlID0gbnVs
bHB0cjsKIH0KIAogVHJhbnNmb3JtYXRpb25NYXRyaXggVGV4dHVyZU1hcHBlclRpbGVkQmFja2lu
Z1N0b3JlOjphZGp1c3RlZFRyYW5zZm9ybUZvclJlY3QoY29uc3QgRmxvYXRSZWN0JiB0YXJnZXRS
ZWN0KQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvdGV4bWFw
L2Nvb3JkaW5hdGVkL0Nvb3JkaW5hdGVkR3JhcGhpY3NMYXllci5jcHAgYi9Tb3VyY2UvV2ViQ29y
ZS9wbGF0Zm9ybS9ncmFwaGljcy90ZXhtYXAvY29vcmRpbmF0ZWQvQ29vcmRpbmF0ZWRHcmFwaGlj
c0xheWVyLmNwcAppbmRleCBlMmUxZjRhYjhmYTE5OTY0ZmY2ZGZjZDUyYzdiN2Q3ZWQ5MThjYWIw
Li5hNzBlN2EwNzdkN2RlMDc3MzNlMDhmMjA2MmFiNjlmZjBlNGMxZjc4IDEwMDY0NAotLS0gYS9T
b3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy90ZXhtYXAvY29vcmRpbmF0ZWQvQ29vcmRp
bmF0ZWRHcmFwaGljc0xheWVyLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFw
aGljcy90ZXhtYXAvY29vcmRpbmF0ZWQvQ29vcmRpbmF0ZWRHcmFwaGljc0xheWVyLmNwcApAQCAt
ODIwLDcgKzgyMCw3IEBAIHZvaWQgQ29vcmRpbmF0ZWRHcmFwaGljc0xheWVyOjpyZWxlYXNlSW1h
Z2VCYWNraW5nSWZOZWVkZWQoKQogCiAgICAgQVNTRVJUKG1fY29vcmRpbmF0b3IpOwogICAgIG1f
Y29vcmRpbmF0ZWRJbWFnZUJhY2tpbmctPnJlbW92ZUhvc3QodGhpcyk7Ci0gICAgbV9jb29yZGlu
YXRlZEltYWdlQmFja2luZy5jbGVhcigpOworICAgIG1fY29vcmRpbmF0ZWRJbWFnZUJhY2tpbmcg
PSBudWxscHRyOwogICAgIG1fbGF5ZXJTdGF0ZS5pbWFnZUlEID0gSW52YWxpZENvb3JkaW5hdGVk
SW1hZ2VCYWNraW5nSUQ7CiAgICAgbV9sYXllclN0YXRlLmltYWdlQ2hhbmdlZCA9IHRydWU7CiB9
CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy90ZXhtYXAvY29v
cmRpbmF0ZWQvQ29vcmRpbmF0ZWRJbWFnZUJhY2tpbmcuY3BwIGIvU291cmNlL1dlYkNvcmUvcGxh
dGZvcm0vZ3JhcGhpY3MvdGV4bWFwL2Nvb3JkaW5hdGVkL0Nvb3JkaW5hdGVkSW1hZ2VCYWNraW5n
LmNwcAppbmRleCBkMjJiMTVlZGQzMGFmOWVhMDljMjQ2ODU2MjJiMDM5M2I1YjU1MjkzLi5lMjYx
NTBmZWVlOWUyNzliYTMzMjA3MGRlODRiZjQyNDlmZjIzMWU3IDEwMDY0NAotLS0gYS9Tb3VyY2Uv
V2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy90ZXhtYXAvY29vcmRpbmF0ZWQvQ29vcmRpbmF0ZWRJ
bWFnZUJhY2tpbmcuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL3Rl
eG1hcC9jb29yZGluYXRlZC9Db29yZGluYXRlZEltYWdlQmFja2luZy5jcHAKQEAgLTE0MSw3ICsx
NDEsNyBAQCB2b2lkIENvb3JkaW5hdGVkSW1hZ2VCYWNraW5nOjpyZWxlYXNlU3VyZmFjZUlmTmVl
ZGVkKCkKIHsKICAgICAvLyBXZSBtdXN0IGtlZXAgbV9zdXJmYWNlIHVudGlsIFVJIFByb2Nlc3Mg
cmVhZHMgbV9zdXJmYWNlLgogICAgIC8vIElmIG1fc3VyZmFjZSBleGlzdHMsIGl0IHdhcyBjcmVh
dGVkIGluIHRoZSBwcmV2aW91cyB1cGRhdGUuCi0gICAgbV9zdXJmYWNlLmNsZWFyKCk7CisgICAg
bV9zdXJmYWNlID0gbnVsbHB0cjsKIH0KIAogc3RhdGljIGNvbnN0IGRvdWJsZSBjbGVhckNvbnRl
bnRzVGltZXJJbnRlcnZhbCA9IDM7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9y
bS9ndGsvR2FtZXBhZHNHdGsuY3BwIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3RrL0dhbWVw
YWRzR3RrLmNwcAppbmRleCAyNmY5YmU2MmM3NjQ2M2M2ZTA4MWZjZWZlNzk2YjJlYWYxNzU5NThk
Li45ZmIyOWYyYjk1NDZmYzE4MzljNGVhOGViNTc4NGE4YTU2MjMyMzQ5IDEwMDY0NAotLS0gYS9T
b3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ndGsvR2FtZXBhZHNHdGsuY3BwCisrKyBiL1NvdXJjZS9X
ZWJDb3JlL3BsYXRmb3JtL2d0ay9HYW1lcGFkc0d0ay5jcHAKQEAgLTE1NSw3ICsxNTUsNyBAQCB2
b2lkIEdhbWVwYWRzR3RrOjp1bnJlZ2lzdGVyRGV2aWNlKFN0cmluZyBkZXZpY2VGaWxlKQogICAg
IHNpemVfdCBpbmRleCA9IG1fc2xvdHMuZmluZChnYW1lcGFkRGV2aWNlKTsKICAgICBBU1NFUlQo
aW5kZXggIT0gbm90Rm91bmQpOwogCi0gICAgbV9zbG90c1tpbmRleF0uY2xlYXIoKTsKKyAgICBt
X3Nsb3RzW2luZGV4XSA9IG51bGxwdHI7CiB9CiAKIHZvaWQgR2FtZXBhZHNHdGs6OnVwZGF0ZUdh
bWVwYWRMaXN0KEdhbWVwYWRMaXN0KiBpbnRvKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUv
cGxhdGZvcm0vaW9zL1BsYXRmb3JtU3BlZWNoU3ludGhlc2l6ZXJJT1MubW0gYi9Tb3VyY2UvV2Vi
Q29yZS9wbGF0Zm9ybS9pb3MvUGxhdGZvcm1TcGVlY2hTeW50aGVzaXplcklPUy5tbQppbmRleCBh
YjE0YzcwOTA1MjkyODJkYjRjNTUzZGYxYTVlNTU1MWNiZTgyNzE2Li5kYzBjYWE4OGEwNWUwODRl
YTA5OGNlNDEwYmE2ZDJhYmQzOGQ5MGM3IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0
Zm9ybS9pb3MvUGxhdGZvcm1TcGVlY2hTeW50aGVzaXplcklPUy5tbQorKysgYi9Tb3VyY2UvV2Vi
Q29yZS9wbGF0Zm9ybS9pb3MvUGxhdGZvcm1TcGVlY2hTeW50aGVzaXplcklPUy5tbQpAQCAtMTc5
LDcgKzE3OSw3IEBAIC0gKHZvaWQpc3BlZWNoU3ludGhlc2l6ZXI6KEFWU3BlZWNoU3ludGhlc2l6
ZXIgKilzeW50aGVzaXplciBkaWRGaW5pc2hTcGVlY2hVdHRlCiAgICAgCiAgICAgLy8gQ2xlYXIg
dGhlIG1fdXR0ZXJhbmNlIHZhcmlhYmxlIGluIGNhc2UgZmluaXNoIHNwZWFraW5nIGtpY2tzIG9m
ZiBhIG5ldyBzcGVha2luZyBqb2IgaW1tZWRpYXRlbHkuCiAgICAgUmVmUHRyPFdlYkNvcmU6OlBs
YXRmb3JtU3BlZWNoU3ludGhlc2lzVXR0ZXJhbmNlPiBwbGF0Zm9ybVV0dGVyYW5jZSA9IG1fdXR0
ZXJhbmNlOwotICAgIG1fdXR0ZXJhbmNlID0gMDsKKyAgICBtX3V0dGVyYW5jZSA9IG51bGxwdHI7
CiAgICAgCiAgICAgbV9zeW50aGVzaXplck9iamVjdC0+Y2xpZW50KCktPmRpZEZpbmlzaFNwZWFr
aW5nKHBsYXRmb3JtVXR0ZXJhbmNlKTsKIH0KQEAgLTIxMyw3ICsyMTMsNyBAQCAtICh2b2lkKXNw
ZWVjaFN5bnRoZXNpemVyOihBVlNwZWVjaFN5bnRoZXNpemVyICopc3ludGhlc2l6ZXIgZGlkQ2Fu
Y2VsU3BlZWNoVXR0ZQogICAgIAogICAgIC8vIENsZWFyIHRoZSBtX3V0dGVyYW5jZSB2YXJpYWJs
ZSBpbiBjYXNlIGZpbmlzaCBzcGVha2luZyBraWNrcyBvZmYgYSBuZXcgc3BlYWtpbmcgam9iIGlt
bWVkaWF0ZWx5LgogICAgIFJlZlB0cjxXZWJDb3JlOjpQbGF0Zm9ybVNwZWVjaFN5bnRoZXNpc1V0
dGVyYW5jZT4gcGxhdGZvcm1VdHRlcmFuY2UgPSBtX3V0dGVyYW5jZTsKLSAgICBtX3V0dGVyYW5j
ZSA9IDA7CisgICAgbV91dHRlcmFuY2UgPSBudWxscHRyOwogICAgIAogICAgIG1fc3ludGhlc2l6
ZXJPYmplY3QtPmNsaWVudCgpLT5kaWRGaW5pc2hTcGVha2luZyhwbGF0Zm9ybVV0dGVyYW5jZSk7
CiB9CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9tb2NrL0dlb2xvY2F0aW9u
Q2xpZW50TW9jay5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9tb2NrL0dlb2xvY2F0aW9u
Q2xpZW50TW9jay5jcHAKaW5kZXggODE4NmE2YTUyMzNlZTg1YmU2NTI2OGI2OGYwNTQ0N2U4NTUy
MzMwMC4uYjdjZmI5YmUwNmRjYmZmYzdjMTZiM2NmZTc0NjUwMTMwZmE3MDBlNSAxMDA2NDQKLS0t
IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbW9jay9HZW9sb2NhdGlvbkNsaWVudE1vY2suY3Bw
CisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL21vY2svR2VvbG9jYXRpb25DbGllbnRNb2Nr
LmNwcApAQCAtMTI2LDcgKzEyNiw3IEBAIHZvaWQgR2VvbG9jYXRpb25DbGllbnRNb2NrOjpwZXJt
aXNzaW9uVGltZXJGaXJlZCgpCiAKIHZvaWQgR2VvbG9jYXRpb25DbGllbnRNb2NrOjpyZXNldCgp
CiB7Ci0gICAgbV9sYXN0UG9zaXRpb24gPSAwOworICAgIG1fbGFzdFBvc2l0aW9uID0gbnVsbHB0
cjsKICAgICBjbGVhckVycm9yKCk7CiAgICAgbV9wZXJtaXNzaW9uU3RhdGUgPSBQZXJtaXNzaW9u
U3RhdGVVbnNldDsKIH0KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL21vY2sv
UGxhdGZvcm1TcGVlY2hTeW50aGVzaXplck1vY2suY3BwIGIvU291cmNlL1dlYkNvcmUvcGxhdGZv
cm0vbW9jay9QbGF0Zm9ybVNwZWVjaFN5bnRoZXNpemVyTW9jay5jcHAKaW5kZXggMzgzODM3MmM1
Nzc4ZWMyNzJjOGI1NWY4MzE1MDY1Mzg0ZDljZjg3NC4uYzBiNGRmYTJjNmYyMjQ0ZWFhNGRhODg2
NGQ1YzRiMzI2MzI1OTJkYyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbW9j
ay9QbGF0Zm9ybVNwZWVjaFN5bnRoZXNpemVyTW9jay5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUv
cGxhdGZvcm0vbW9jay9QbGF0Zm9ybVNwZWVjaFN5bnRoZXNpemVyTW9jay5jcHAKQEAgLTQ1LDcg
KzQ1LDcgQEAgdm9pZCBQbGF0Zm9ybVNwZWVjaFN5bnRoZXNpemVyTW9jazo6c3BlYWtpbmdGaW5p
c2hlZCgpCiB7CiAgICAgQVNTRVJUKG1fdXR0ZXJhbmNlLmdldCgpKTsKICAgICBSZWZQdHI8UGxh
dGZvcm1TcGVlY2hTeW50aGVzaXNVdHRlcmFuY2U+IHByb3RlY3QobV91dHRlcmFuY2UpOwotICAg
IG1fdXR0ZXJhbmNlID0gMDsKKyAgICBtX3V0dGVyYW5jZSA9IG51bGxwdHI7CiAgICAgCiAgICAg
Y2xpZW50KCktPmRpZEZpbmlzaFNwZWFraW5nKHByb3RlY3QpOwogfQpAQCAtNzgsNyArNzgsNyBA
QCB2b2lkIFBsYXRmb3JtU3BlZWNoU3ludGhlc2l6ZXJNb2NrOjpjYW5jZWwoKQogICAgIAogICAg
IG1fc3BlYWtpbmdGaW5pc2hlZFRpbWVyLnN0b3AoKTsKICAgICBjbGllbnQoKS0+c3BlYWtpbmdF
cnJvck9jY3VycmVkKG1fdXR0ZXJhbmNlKTsKLSAgICBtX3V0dGVyYW5jZSA9IDA7CisgICAgbV91
dHRlcmFuY2UgPSBudWxscHRyOwogfQogCiB2b2lkIFBsYXRmb3JtU3BlZWNoU3ludGhlc2l6ZXJN
b2NrOjpwYXVzZSgpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9uZXR3b3Jr
L2NmL1Jlc291cmNlUmVxdWVzdENGTmV0LmNwcCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL25l
dHdvcmsvY2YvUmVzb3VyY2VSZXF1ZXN0Q0ZOZXQuY3BwCmluZGV4IGNkYzdkNzM0NmQ1YTdiZmUx
OTcyY2ZiNzg2YmVjY2YyZTNkMzllOWUuLmE0ZDQzZGYzYzBhNDI4ZjE3MDYxODJlOGE4YWFiYzA1
ZGRhMjNhOWUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL25ldHdvcmsvY2Yv
UmVzb3VyY2VSZXF1ZXN0Q0ZOZXQuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL25l
dHdvcmsvY2YvUmVzb3VyY2VSZXF1ZXN0Q0ZOZXQuY3BwCkBAIC0yOTUsNyArMjk1LDcgQEAgdm9p
ZCBSZXNvdXJjZVJlcXVlc3Q6OmRvVXBkYXRlUmVzb3VyY2VSZXF1ZXN0KCkKIHZvaWQgUmVzb3Vy
Y2VSZXF1ZXN0Ojpkb1VwZGF0ZVJlc291cmNlSFRUUEJvZHkoKQogewogICAgIGlmICghbV9jZlJl
cXVlc3QpIHsKLSAgICAgICAgbV9odHRwQm9keSA9IDA7CisgICAgICAgIG1faHR0cEJvZHkgPSBu
dWxscHRyOwogICAgICAgICByZXR1cm47CiAgICAgfQogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2Vi
Q29yZS9yZW5kZXJpbmcvSW5saW5lRmxvd0JveC5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJp
bmcvSW5saW5lRmxvd0JveC5jcHAKaW5kZXggNDE2ODJjOGUyYjYwY2I5MjhlNDYxYjRlZmZhYTNi
Zjc5YzM2MWMyOC4uMmQ2ZmI2OTQ0OGY4ZjFiYjU5NDRjMTBiYTU0OTAxMTU2N2Q2NzczNyAxMDA2
NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL0lubGluZUZsb3dCb3guY3BwCisrKyBi
L1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9JbmxpbmVGbG93Qm94LmNwcApAQCAtOTU0LDcgKzk1
NCw3IEBAIHZvaWQgSW5saW5lRmxvd0JveDo6Y29tcHV0ZU92ZXJmbG93KExheW91dFVuaXQgbGlu
ZVRvcCwgTGF5b3V0VW5pdCBsaW5lQm90dG9tLCBHCiAgICAgICAgIHJldHVybjsKIAogICAgIGlm
IChtX292ZXJmbG93KQotICAgICAgICBtX292ZXJmbG93LmNsZWFyKCk7CisgICAgICAgIG1fb3Zl
cmZsb3cgPSBudWxscHRyOwogCiAgICAgLy8gVmlzdWFsIG92ZXJmbG93IGp1c3QgaW5jbHVkZXMg
b3ZlcmZsb3cgZm9yIHN0dWZmIHdlIG5lZWQgdG8gcmVwYWludCBvdXJzZWx2ZXMuICBTZWxmLXBh
aW50aW5nIGxheWVycyBhcmUgaWdub3JlZC4KICAgICAvLyBMYXlvdXQgb3ZlcmZsb3cgaXMgdXNl
ZCB0byBkZXRlcm1pbmUgc2Nyb2xsaW5nIGV4dGVudCwgc28gaXQgc3RpbGwgaW5jbHVkZXMgY2hp
bGQgbGF5ZXJzIGFuZCBhbHNvIGZhY3RvcnMgaW4KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3Jl
L3JlbmRlcmluZy9SZW5kZXJCb3guY3BwIGIvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRl
ckJveC5jcHAKaW5kZXggNTAyZGY2NmMwZDBkZTk4YTlhNDJjZDk0ZjcwYjIwYjRlMGIyYWNiYy4u
NjE3MWRiNWUwYThhOTIyNTdjYmUyZDMwN2Q2Zjc2ZGEzNjlhZGIyNCAxMDA2NDQKLS0tIGEvU291
cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlckJveC5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUv
cmVuZGVyaW5nL1JlbmRlckJveC5jcHAKQEAgLTQ0OTcsNyArNDQ5Nyw3IEBAIHZvaWQgUmVuZGVy
Qm94OjphZGRWaXN1YWxPdmVyZmxvdyhjb25zdCBMYXlvdXRSZWN0JiByZWN0KQogCiB2b2lkIFJl
bmRlckJveDo6Y2xlYXJPdmVyZmxvdygpCiB7Ci0gICAgbV9vdmVyZmxvdy5jbGVhcigpOworICAg
IG1fb3ZlcmZsb3cgPSBudWxscHRyOwogICAgIFJlbmRlckZsb3dUaHJlYWQqIGZsb3dUaHJlYWQg
PSBmbG93VGhyZWFkQ29udGFpbmluZ0Jsb2NrKCk7CiAgICAgaWYgKGZsb3dUaHJlYWQpCiAgICAg
ICAgIGZsb3dUaHJlYWQtPmNsZWFyUmVnaW9uc092ZXJmbG93KHRoaXMpOwpkaWZmIC0tZ2l0IGEv
U291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlckJveFJlZ2lvbkluZm8uaCBiL1NvdXJjZS9X
ZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJCb3hSZWdpb25JbmZvLmgKaW5kZXggNjIzNjA4ZDY3NWRj
YzY5MTFlMjdkYWYyNGFjYjg0MDlkNDZlMThhZi4uZWEyM2MxZWM4ZWUzNzVlN2E2MTFjMTRlYzA0
MTlmNjU2ZGExOTdiMiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRl
ckJveFJlZ2lvbkluZm8uaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyQm94
UmVnaW9uSW5mby5oCkBAIC01Myw3ICs1Myw3IEBAIHB1YmxpYzoKICAgICB2b2lkIGNsZWFyT3Zl
cmZsb3coKQogICAgIHsKICAgICAgICAgaWYgKG1fb3ZlcmZsb3cpCi0gICAgICAgICAgICBtX292
ZXJmbG93LmNsZWFyKCk7CisgICAgICAgICAgICBtX292ZXJmbG93ID0gbnVsbHB0cjsKICAgICB9
CiAKIHByaXZhdGU6CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVy
Q291bnRlci5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyQ291bnRlci5jcHAK
aW5kZXggOTE4YTRmODhhMjNkOTZkOGFlNWUyMzY2OTU2NzE3ODBhMDkzNjI3ZS4uYzc0NTYzOWY4
YTBhYmU0ZDhmZGY2ODEwNTRjMTY4NTIyOTg2ZWYzNiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNv
cmUvcmVuZGVyaW5nL1JlbmRlckNvdW50ZXIuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3JlbmRl
cmluZy9SZW5kZXJDb3VudGVyLmNwcApAQCAtMTg2LDggKzE4Niw4IEBAIHN0YXRpYyBib29sIGZp
bmRQbGFjZUZvckNvdW50ZXIoUmVuZGVyRWxlbWVudCYgY291bnRlck93bmVyLCBjb25zdCBBdG9t
aWNTdHJpbmcmCiAgICAgLy8gdG93YXJkcyB0aGUgYmVnaW5pbmcgb2YgdGhlIGRvY3VtZW50IGZv
ciBjb3VudGVycyB3aXRoIHRoZSBzYW1lIGlkZW50aWZpZXIgYXMgdGhlIG9uZQogICAgIC8vIHdl
IGFyZSB0cnlpbmcgdG8gZmluZCBhIHBsYWNlIGZvci4gVGhpcyBpcyB0aGUgbmV4dCByZW5kZXJl
ciB0byBiZSBjaGVja2VkLgogICAgIFJlbmRlckVsZW1lbnQqIGN1cnJlbnRSZW5kZXJlciA9IHBy
ZXZpb3VzSW5QcmVPcmRlcihjb3VudGVyT3duZXIpOwotICAgIHByZXZpb3VzU2libGluZyA9IDA7
Ci0gICAgUmVmUHRyPENvdW50ZXJOb2RlPiBwcmV2aW91c1NpYmxpbmdQcm90ZWN0b3IgPSAwOwor
ICAgIHByZXZpb3VzU2libGluZyA9IG51bGxwdHI7CisgICAgUmVmUHRyPENvdW50ZXJOb2RlPiBw
cmV2aW91c1NpYmxpbmdQcm90ZWN0b3I7CiAKICAgICB3aGlsZSAoY3VycmVudFJlbmRlcmVyKSB7
CiAgICAgICAgIENvdW50ZXJOb2RlKiBjdXJyZW50Q291bnRlciA9IG1ha2VDb3VudGVyTm9kZSgq
Y3VycmVudFJlbmRlcmVyLCBpZGVudGlmaWVyLCBmYWxzZSk7CkBAIC0yMDMsNyArMjAzLDcgQEAg
c3RhdGljIGJvb2wgZmluZFBsYWNlRm9yQ291bnRlcihSZW5kZXJFbGVtZW50JiBjb3VudGVyT3du
ZXIsIGNvbnN0IEF0b21pY1N0cmluZyYKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAvLyBo
ZW5jZSB3ZSBhcmUgdGhlIG5leHQgc2libGluZyBvZiB0aGF0IGNvdW50ZXIgaWYgdGhhdCByZXNl
dCBpcyBub3QgYSByb290IG9yCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLy8gd2UgYXJl
IGEgcm9vdCBub2RlIGlmIHRoYXQgcmVzZXQgaXMgYSByb290LgogICAgICAgICAgICAgICAgICAg
ICAgICAgICAgIHBhcmVudCA9IGN1cnJlbnRDb3VudGVyLT5wYXJlbnQoKTsKLSAgICAgICAgICAg
ICAgICAgICAgICAgICAgICBwcmV2aW91c1NpYmxpbmcgPSBwYXJlbnQgPyBjdXJyZW50Q291bnRl
ciA6IDA7CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgcHJldmlvdXNTaWJsaW5nID0gcGFy
ZW50ID8gY3VycmVudENvdW50ZXIgOiBudWxscHRyOwogICAgICAgICAgICAgICAgICAgICAgICAg
ICAgIHJldHVybiBwYXJlbnQ7CiAgICAgICAgICAgICAgICAgICAgICAgICB9CiAgICAgICAgICAg
ICAgICAgICAgICAgICAvLyBXZSBhcmUgbm90IGEgcmVzZXQgbm9kZSBvciB0aGUgcHJldmlvdXMg
cmVzZXQgbXVzdCBiZSBvbiBhbiBhbmNlc3RvciBvZiBvdXIgb3duZXIgcmVuZGVyZXIKQEAgLTIx
Myw3ICsyMTMsNyBAQCBzdGF0aWMgYm9vbCBmaW5kUGxhY2VGb3JDb3VudGVyKFJlbmRlckVsZW1l
bnQmIGNvdW50ZXJPd25lciwgY29uc3QgQXRvbWljU3RyaW5nJgogICAgICAgICAgICAgICAgICAg
ICAgICAgLy8gSW4gdGhlc2UgY2FzZXMgdGhlIGlkZW50aWZpZWQgcHJldmlvdXNTaWJsaW5nIHdp
bGwgYmUgaW52YWxpZCBhcyBpdHMgcGFyZW50IGlzIGRpZmZlcmVudCBmcm9tCiAgICAgICAgICAg
ICAgICAgICAgICAgICAvLyBvdXIgaWRlbnRpZmllZCBwYXJlbnQuCiAgICAgICAgICAgICAgICAg
ICAgICAgICBpZiAocHJldmlvdXNTaWJsaW5nUHJvdGVjdG9yLT5wYXJlbnQoKSAhPSBjdXJyZW50
Q291bnRlcikKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICBwcmV2aW91c1NpYmxpbmdQcm90
ZWN0b3IgPSAwOworICAgICAgICAgICAgICAgICAgICAgICAgICAgIHByZXZpb3VzU2libGluZ1By
b3RlY3RvciA9IG51bGxwdHI7CiAKICAgICAgICAgICAgICAgICAgICAgICAgIHByZXZpb3VzU2li
bGluZyA9IHByZXZpb3VzU2libGluZ1Byb3RlY3Rvci5nZXQoKTsKICAgICAgICAgICAgICAgICAg
ICAgICAgIHJldHVybiB0cnVlOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5n
L1JlbmRlck1lbnVMaXN0LmNwcCBiL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJNZW51
TGlzdC5jcHAKaW5kZXggZmY5YTJjNTg2YmJkOWJlOTljNzc1NWUyMjJlMDAzODY0NmMxNzRkNi4u
ZGI5OTQ5OWNiZGZmMDNhNTUxMDFkMmFkODZlMTgzNzZjZmFmYTI4YiAxMDA2NDQKLS0tIGEvU291
cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlck1lbnVMaXN0LmNwcAorKysgYi9Tb3VyY2UvV2Vi
Q29yZS9yZW5kZXJpbmcvUmVuZGVyTWVudUxpc3QuY3BwCkBAIC04OCw3ICs4OCw3IEBAIFJlbmRl
ck1lbnVMaXN0Ojp+UmVuZGVyTWVudUxpc3QoKQogI2lmICFQTEFURk9STShJT1MpCiAgICAgaWYg
KG1fcG9wdXApCiAgICAgICAgIG1fcG9wdXAtPmRpc2Nvbm5lY3RDbGllbnQoKTsKLSAgICBtX3Bv
cHVwID0gMDsKKyAgICBtX3BvcHVwID0gbnVsbHB0cjsKICNlbmRpZgogfQogCmRpZmYgLS1naXQg
YS9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyU2VhcmNoRmllbGQuY3BwIGIvU291cmNl
L1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlclNlYXJjaEZpZWxkLmNwcAppbmRleCBmYTZlMzk2NzMx
NjQ4ZWEwNTFjNjgwNmMxOTI0ZGMyY2Y4YmU0YzAwLi44OWRjMzRjNGY0NDRkY2M1YzZjOWUwNzVl
MTdkNzdjNmVkMmQ0ODA1IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVu
ZGVyU2VhcmNoRmllbGQuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJT
ZWFyY2hGaWVsZC5jcHAKQEAgLTYyLDcgKzYyLDcgQEAgUmVuZGVyU2VhcmNoRmllbGQ6On5SZW5k
ZXJTZWFyY2hGaWVsZCgpCiB7CiAgICAgaWYgKG1fc2VhcmNoUG9wdXApIHsKICAgICAgICAgbV9z
ZWFyY2hQb3B1cC0+cG9wdXBNZW51KCktPmRpc2Nvbm5lY3RDbGllbnQoKTsKLSAgICAgICAgbV9z
ZWFyY2hQb3B1cCA9IDA7CisgICAgICAgIG1fc2VhcmNoUG9wdXAgPSBudWxscHRyOwogICAgIH0K
IH0KIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL3N0eWxlL0ZpbGxMYXll
ci5oIGIvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL3N0eWxlL0ZpbGxMYXllci5oCmluZGV4IDhi
MDZjZTNiN2U4NzdlMjU1NmY2NzY4OGEzNDNhYWZjMmQxMzE4ZjkuLjAzMDk4NjNkYWU2MGU3OGU3
Njk0YjE2OWU2NmJiY2U1ZjE5Y2M4MDQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3JlbmRl
cmluZy9zdHlsZS9GaWxsTGF5ZXIuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvc3R5
bGUvRmlsbExheWVyLmgKQEAgLTEyMSw4ICsxMjEsOCBAQCBwdWJsaWM6CiAgICAgdm9pZCBzZXRT
aXplKEZpbGxTaXplIGYpIHsgbV9zaXplVHlwZSA9IGYudHlwZTsgbV9zaXplTGVuZ3RoID0gZi5z
aXplOyB9CiAgICAgdm9pZCBzZXRNYXNrU291cmNlVHlwZShFTWFza1NvdXJjZVR5cGUgbSkgeyBt
X21hc2tTb3VyY2VUeXBlID0gbTsgbV9tYXNrU291cmNlVHlwZVNldCA9IHRydWU7IH0KIAotICAg
IHZvaWQgY2xlYXJNYXNrSW1hZ2UoKSB7IG1fbWFza0ltYWdlT3BlcmF0aW9uLmNsZWFyKCk7IH0K
LSAgICB2b2lkIGNsZWFySW1hZ2UoKSB7IG1faW1hZ2UuY2xlYXIoKTsgbV9pbWFnZVNldCA9IGZh
bHNlOyB9CisgICAgdm9pZCBjbGVhck1hc2tJbWFnZSgpIHsgbV9tYXNrSW1hZ2VPcGVyYXRpb24g
PSBudWxscHRyOyB9CisgICAgdm9pZCBjbGVhckltYWdlKCkgeyBtX2ltYWdlID0gbnVsbHB0cjsg
bV9pbWFnZVNldCA9IGZhbHNlOyB9CiAgICAgdm9pZCBjbGVhclhQb3NpdGlvbigpIHsgbV94UG9z
U2V0ID0gZmFsc2U7IG1fYmFja2dyb3VuZE9yaWdpblNldCA9IGZhbHNlOyB9CiAgICAgdm9pZCBj
bGVhcllQb3NpdGlvbigpIHsgbV95UG9zU2V0ID0gZmFsc2U7IG1fYmFja2dyb3VuZE9yaWdpblNl
dCA9IGZhbHNlOyB9CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9zdHls
ZS9SZW5kZXJTdHlsZS5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvc3R5bGUvUmVuZGVy
U3R5bGUuY3BwCmluZGV4IDg3YzU4ZTliZmM3ZjQ0ZTRmMmI5YzI2ZjFlZjU5ZDY4ZjEyMDlmZGMu
LjQ3ZmVlODk1MWNjODY5ZmY5OWJiMjJmNjU5N2MwN2YyNGFmZjFlMTEgMTAwNjQ0Ci0tLSBhL1Nv
dXJjZS9XZWJDb3JlL3JlbmRlcmluZy9zdHlsZS9SZW5kZXJTdHlsZS5jcHAKKysrIGIvU291cmNl
L1dlYkNvcmUvcmVuZGVyaW5nL3N0eWxlL1JlbmRlclN0eWxlLmNwcApAQCAtOTUwLDcgKzk1MCw3
IEBAIHZvaWQgUmVuZGVyU3R5bGU6OnNldFF1b3RlcyhQYXNzUmVmUHRyPFF1b3Rlc0RhdGE+IHEp
CiB2b2lkIFJlbmRlclN0eWxlOjpjbGVhckN1cnNvckxpc3QoKQogewogICAgIGlmIChyYXJlSW5o
ZXJpdGVkRGF0YS0+Y3Vyc29yRGF0YSkKLSAgICAgICAgcmFyZUluaGVyaXRlZERhdGEuYWNjZXNz
KCktPmN1cnNvckRhdGEgPSAwOworICAgICAgICByYXJlSW5oZXJpdGVkRGF0YS5hY2Nlc3MoKS0+
Y3Vyc29yRGF0YSA9IG51bGxwdHI7CiB9CiAKIHZvaWQgUmVuZGVyU3R5bGU6OmNsZWFyQ29udGVu
dCgpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9zdmcvU1ZHVFJlZkVsZW1lbnQuY3BwIGIv
U291cmNlL1dlYkNvcmUvc3ZnL1NWR1RSZWZFbGVtZW50LmNwcAppbmRleCAyMjVhMzA0NmE0OTky
Yzk3MDViYTc5NTA5OTU2MWIzYjllYmFmZmJkLi5lM2ZhZDhkNTkwYzU0ZGU2YmU5NDY3OWM5NTcx
N2I5ODVhYzc0YTIxIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9zdmcvU1ZHVFJlZkVsZW1l
bnQuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3N2Zy9TVkdUUmVmRWxlbWVudC5jcHAKQEAgLTEw
NCw3ICsxMDQsNyBAQCB2b2lkIFNWR1RSZWZUYXJnZXRFdmVudExpc3RlbmVyOjpkZXRhY2goKQog
CiAgICAgbV90YXJnZXQtPnJlbW92ZUV2ZW50TGlzdGVuZXIoZXZlbnROYW1lcygpLkRPTVN1YnRy
ZWVNb2RpZmllZEV2ZW50LCB0aGlzLCBmYWxzZSk7CiAgICAgbV90YXJnZXQtPnJlbW92ZUV2ZW50
TGlzdGVuZXIoZXZlbnROYW1lcygpLkRPTU5vZGVSZW1vdmVkRnJvbURvY3VtZW50RXZlbnQsIHRo
aXMsIGZhbHNlKTsKLSAgICBtX3RhcmdldC5jbGVhcigpOworICAgIG1fdGFyZ2V0ID0gbnVsbHB0
cjsKIH0KIAogYm9vbCBTVkdUUmVmVGFyZ2V0RXZlbnRMaXN0ZW5lcjo6b3BlcmF0b3I9PShjb25z
dCBFdmVudExpc3RlbmVyJiBsaXN0ZW5lcikKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3Rl
c3RpbmcvSW50ZXJuYWxzLmNwcCBiL1NvdXJjZS9XZWJDb3JlL3Rlc3RpbmcvSW50ZXJuYWxzLmNw
cAppbmRleCAxYTEwNTE3NDc5ZThlOGU5ODFhNzQ1M2FiZGE2ZmRjMjQ3NTc1MWI3Li40NzZkMWUy
NzU5ZTYwNmYyMDc2NDU4MjEwZGI0OTMzYzgyMzA2ZTgyIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2Vi
Q29yZS90ZXN0aW5nL0ludGVybmFscy5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvdGVzdGluZy9J
bnRlcm5hbHMuY3BwCkBAIC0xNzIzLDcgKzE3MjMsNyBAQCB2b2lkIEludGVybmFsczo6Y2xvc2VE
dW1teUluc3BlY3RvckZyb250ZW5kKCkKICAgICBtX2Zyb250ZW5kQ2hhbm5lbCA9IG51bGxwdHI7
CiAKICAgICBtX2Zyb250ZW5kV2luZG93LT5jbG9zZShtX2Zyb250ZW5kV2luZG93LT5zY3JpcHRF
eGVjdXRpb25Db250ZXh0KCkpOwotICAgIG1fZnJvbnRlbmRXaW5kb3cuY2xlYXIoKTsKKyAgICBt
X2Zyb250ZW5kV2luZG93ID0gbnVsbHB0cjsKIH0KIAogdm9pZCBJbnRlcm5hbHM6OnNldEphdmFT
Y3JpcHRQcm9maWxpbmdFbmFibGVkKGJvb2wgZW5hYmxlZCwgRXhjZXB0aW9uQ29kZSYgZWMpCmRp
ZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS93b3JrZXJzL1dvcmtlckV2ZW50UXVldWUuY3BwIGIv
U291cmNlL1dlYkNvcmUvd29ya2Vycy9Xb3JrZXJFdmVudFF1ZXVlLmNwcAppbmRleCBmNTIwYzFk
ZWVmYWIxZWIxNGYxYjdmZDkyNDBmZTg2NDdhYzI0YTg5Li4wNzIxMDc2OWZkMDZiYTljZTg3YWM0
NjUyYzk5ZTJjMTc4ZDI4NGYxIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS93b3JrZXJzL1dv
cmtlckV2ZW50UXVldWUuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3dvcmtlcnMvV29ya2VyRXZl
bnRRdWV1ZS5jcHAKQEAgLTY4LDEzICs2OCwxMyBAQCBwdWJsaWM6CiAgICAgICAgICAgICByZXR1
cm47CiAgICAgICAgIG1fZXZlbnRRdWV1ZS5tX2V2ZW50RGlzcGF0Y2hlck1hcC5yZW1vdmUobV9l
dmVudC5nZXQoKSk7CiAgICAgICAgIG1fZXZlbnQtPnRhcmdldCgpLT5kaXNwYXRjaEV2ZW50KG1f
ZXZlbnQpOwotICAgICAgICBtX2V2ZW50LmNsZWFyKCk7CisgICAgICAgIG1fZXZlbnQgPSBudWxs
cHRyOwogICAgIH0KIAogICAgIHZvaWQgY2FuY2VsKCkKICAgICB7CiAgICAgICAgIG1faXNDYW5j
ZWxsZWQgPSB0cnVlOwotICAgICAgICBtX2V2ZW50LmNsZWFyKCk7CisgICAgICAgIG1fZXZlbnQg
PSBudWxscHRyOwogICAgIH0KIAogcHJpdmF0ZToKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3Jl
L3dvcmtlcnMvV29ya2VyTWVzc2FnaW5nUHJveHkuY3BwIGIvU291cmNlL1dlYkNvcmUvd29ya2Vy
cy9Xb3JrZXJNZXNzYWdpbmdQcm94eS5jcHAKaW5kZXggNzg0NWI2MWZhOGRjZmFmOWY2N2ZhYTBk
OTQyNWQwZjliMmI1ZDYxNS4uYmQ3NGVhY2UwMmNkM2MxMDZmZGVhYmM3ZTRjZGY2MTY4YTNkYmUx
ZSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvd29ya2Vycy9Xb3JrZXJNZXNzYWdpbmdQcm94
eS5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvd29ya2Vycy9Xb3JrZXJNZXNzYWdpbmdQcm94eS5j
cHAKQEAgLTI2NCw3ICsyNjQsNyBAQCB2b2lkIFdvcmtlck1lc3NhZ2luZ1Byb3h5Ojp3b3JrZXJH
bG9iYWxTY29wZURlc3Ryb3llZEludGVybmFsKCkKICAgICAvLyBXb3JrZXJHbG9iYWxTY29wZURl
c3Ryb3llZFRhc2sgaXMgYWx3YXlzIHRoZSBsYXN0IHRvIGJlIHBlcmZvcm1lZCwgc28gdGhlIHBy
b3h5IGlzIG5vdCBuZWVkZWQgZm9yIGNvbW11bmljYXRpb24KICAgICAvLyBpbiBlaXRoZXIgc2lk
ZSBhbnkgbW9yZS4gSG93ZXZlciwgdGhlIFdvcmtlciBvYmplY3QgbWF5IHN0aWxsIGV4aXN0LCBh
bmQgaXQgYXNzdW1lcyB0aGF0IHRoZSBwcm94eSBleGlzdHMsIHRvby4KICAgICBtX2Fza2VkVG9U
ZXJtaW5hdGUgPSB0cnVlOwotICAgIG1fd29ya2VyVGhyZWFkID0gMDsKKyAgICBtX3dvcmtlclRo
cmVhZCA9IG51bGxwdHI7CiAKICAgICBJbnNwZWN0b3JJbnN0cnVtZW50YXRpb246Ondvcmtlckds
b2JhbFNjb3BlVGVybWluYXRlZChtX3NjcmlwdEV4ZWN1dGlvbkNvbnRleHQuZ2V0KCksIHRoaXMp
OwogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS93b3JrZXJzL1dvcmtlclRocmVhZC5jcHAg
Yi9Tb3VyY2UvV2ViQ29yZS93b3JrZXJzL1dvcmtlclRocmVhZC5jcHAKaW5kZXggODczYzgyOTZl
NmUyZWYxMTcxNDJlMDVkZjg5ZjRiYzQ2YTE0ZDkwNC4uZTUxNTU1MjZjOThlOTEwMjk3ZTAxYjg2
ZmVkMjhiMTJmNGQwMjI5MCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvd29ya2Vycy9Xb3Jr
ZXJUaHJlYWQuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3dvcmtlcnMvV29ya2VyVGhyZWFkLmNw
cApAQCAtMTcxLDcgKzE3MSw3IEBAIHZvaWQgV29ya2VyVGhyZWFkOjp3b3JrZXJUaHJlYWQoKQog
CiAgICAgLy8gVGhlIGJlbG93IGFzc2lnbm1lbnQgd2lsbCBkZXN0cm95IHRoZSBjb250ZXh0LCB3
aGljaCB3aWxsIGluIHR1cm4gbm90aWZ5IG1lc3NhZ2luZyBwcm94eS4KICAgICAvLyBXZSBjYW5u
b3QgbGV0IGFueSBvYmplY3RzIHN1cnZpdmUgcGFzdCB0aHJlYWQgZXhpdCwgYmVjYXVzZSBubyBv
dGhlciB0aHJlYWQgd2lsbCBydW4gR0Mgb3Igb3RoZXJ3aXNlIGRlc3Ryb3kgdGhlbS4KLSAgICBt
X3dvcmtlckdsb2JhbFNjb3BlID0gMDsKKyAgICBtX3dvcmtlckdsb2JhbFNjb3BlID0gbnVsbHB0
cjsKIAogICAgIC8vIENsZWFuIHVwIFdlYkNvcmU6OlRocmVhZEdsb2JhbERhdGEgYmVmb3JlIFdU
Rjo6V1RGVGhyZWFkRGF0YSBnb2VzIGF3YXkhCiAgICAgdGhyZWFkR2xvYmFsRGF0YSgpLmRlc3Ry
b3koKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3htbC9YTUxIdHRwUmVxdWVzdC5jcHAg
Yi9Tb3VyY2UvV2ViQ29yZS94bWwvWE1MSHR0cFJlcXVlc3QuY3BwCmluZGV4IGM3ZThjMGIyYjBm
ZGQzYTc5YmEwOWQyZmQ5MTVmMzIxNWZlNmM3MjkuLjQ3NWQ2ZmI0ZDU2YmY2NTc1ZWY1MGMxYzU0
NGQ1ODgzNTA1Yjk0NzUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3htbC9YTUxIdHRwUmVx
dWVzdC5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUveG1sL1hNTEh0dHBSZXF1ZXN0LmNwcApAQCAt
MjQ1LDcgKzI0NSw3IEBAIEJsb2IqIFhNTEh0dHBSZXF1ZXN0OjpyZXNwb25zZUJsb2IoKQogICAg
ICAgICAgICAgZGF0YS5hcHBlbmQobV9iaW5hcnlSZXNwb25zZUJ1aWxkZXItPmRhdGEoKSwgbV9i
aW5hcnlSZXNwb25zZUJ1aWxkZXItPnNpemUoKSk7CiAgICAgICAgICAgICBTdHJpbmcgbm9ybWFs
aXplZENvbnRlbnRUeXBlID0gQmxvYjo6bm9ybWFsaXplZENvbnRlbnRUeXBlKHJlc3BvbnNlTUlN
RVR5cGUoKSk7IC8vIHJlc3BvbnNlTUlNRVR5cGUgZGVmYXVsdHMgdG8gdGV4dC94bWwgd2hpY2gg
bWF5IGJlIGluY29ycmVjdC4KICAgICAgICAgICAgIG1fcmVzcG9uc2VCbG9iID0gQmxvYjo6Y3Jl
YXRlKFdURjo6bW92ZShkYXRhKSwgbm9ybWFsaXplZENvbnRlbnRUeXBlKTsKLSAgICAgICAgICAg
IG1fYmluYXJ5UmVzcG9uc2VCdWlsZGVyLmNsZWFyKCk7CisgICAgICAgICAgICBtX2JpbmFyeVJl
c3BvbnNlQnVpbGRlciA9IG51bGxwdHI7CiAgICAgICAgIH0gZWxzZSB7CiAgICAgICAgICAgICAv
LyBJZiB3ZSBlcnJvcmVkIG91dCBvciBnb3Qgbm8gZGF0YSwgd2Ugc3RpbGwgcmV0dXJuIGEgYmxv
YiwganVzdCBhbiBlbXB0eSBvbmUuCiAgICAgICAgICAgICBtX3Jlc3BvbnNlQmxvYiA9IEJsb2I6
OmNyZWF0ZSgpOwpAQCAtMjY1LDcgKzI2NSw3IEBAIEFycmF5QnVmZmVyKiBYTUxIdHRwUmVxdWVz
dDo6cmVzcG9uc2VBcnJheUJ1ZmZlcigpCiAgICAgICAgICAgICBtX3Jlc3BvbnNlQXJyYXlCdWZm
ZXIgPSBtX2JpbmFyeVJlc3BvbnNlQnVpbGRlci0+Y3JlYXRlQXJyYXlCdWZmZXIoKTsKICAgICAg
ICAgZWxzZQogICAgICAgICAgICAgbV9yZXNwb25zZUFycmF5QnVmZmVyID0gQXJyYXlCdWZmZXI6
OmNyZWF0ZShudWxscHRyLCAwKTsKLSAgICAgICAgbV9iaW5hcnlSZXNwb25zZUJ1aWxkZXIuY2xl
YXIoKTsKKyAgICAgICAgbV9iaW5hcnlSZXNwb25zZUJ1aWxkZXIgPSBudWxscHRyOwogICAgIH0K
IAogICAgIHJldHVybiBtX3Jlc3BvbnNlQXJyYXlCdWZmZXIuZ2V0KCk7CkBAIC04NjgsOCArODY4
LDggQEAgdm9pZCBYTUxIdHRwUmVxdWVzdDo6Y2xlYXJSZXNwb25zZUJ1ZmZlcnMoKQogICAgIG1f
Y3JlYXRlZERvY3VtZW50ID0gZmFsc2U7CiAgICAgbV9yZXNwb25zZURvY3VtZW50ID0gbnVsbHB0
cjsKICAgICBtX3Jlc3BvbnNlQmxvYiA9IG51bGxwdHI7Ci0gICAgbV9iaW5hcnlSZXNwb25zZUJ1
aWxkZXIuY2xlYXIoKTsKLSAgICBtX3Jlc3BvbnNlQXJyYXlCdWZmZXIuY2xlYXIoKTsKKyAgICBt
X2JpbmFyeVJlc3BvbnNlQnVpbGRlciA9IG51bGxwdHI7CisgICAgbV9yZXNwb25zZUFycmF5QnVm
ZmVyID0gbnVsbHB0cjsKICAgICBtX3Jlc3BvbnNlQ2FjaGVJc1ZhbGlkID0gZmFsc2U7CiB9CiAK
ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3htbC9YU0xUUHJvY2Vzc29yLmNwcCBiL1NvdXJj
ZS9XZWJDb3JlL3htbC9YU0xUUHJvY2Vzc29yLmNwcAppbmRleCAwNjljY2VjYjdiZjJjOTQwMDZk
ZTk0ODVkMTYzMjg0ZTg0MDc5MWZiLi40OTFmMTJjOTlkOGE1YjQyMGFmZmMyOTA3N2M0YjNkZTIx
M2Q1NDA4IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS94bWwvWFNMVFByb2Nlc3Nvci5jcHAK
KysrIGIvU291cmNlL1dlYkNvcmUveG1sL1hTTFRQcm9jZXNzb3IuY3BwCkBAIC0xNjIsOCArMTYy
LDggQEAgdm9pZCBYU0xUUHJvY2Vzc29yOjpyZW1vdmVQYXJhbWV0ZXIoY29uc3QgU3RyaW5nJiAv
Km5hbWVzcGFjZVVSSSovLCBjb25zdCBTdHJpbmcKIAogdm9pZCBYU0xUUHJvY2Vzc29yOjpyZXNl
dCgpCiB7Ci0gICAgbV9zdHlsZXNoZWV0LmNsZWFyKCk7Ci0gICAgbV9zdHlsZXNoZWV0Um9vdE5v
ZGUuY2xlYXIoKTsKKyAgICBtX3N0eWxlc2hlZXQgPSBudWxscHRyOworICAgIG1fc3R5bGVzaGVl
dFJvb3ROb2RlID0gbnVsbHB0cjsKICAgICBtX3BhcmFtZXRlcnMuY2xlYXIoKTsKIH0KIApkaWZm
IC0tZ2l0IGEvU291cmNlL1dlYktpdC9TdG9yYWdlL1N0b3JhZ2VBcmVhU3luYy5jcHAgYi9Tb3Vy
Y2UvV2ViS2l0L1N0b3JhZ2UvU3RvcmFnZUFyZWFTeW5jLmNwcAppbmRleCBkMWViMzJhMGRhNGNk
M2JiZWI2Zjg4Yzc2MTVlMmJmZDliOTc3MTg2Li5iYTE3ZjE4OTgxZTNiZTZmMTg0MGY5MDk4YThi
MWFiMTkwMDUzZjU5IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1N0b3JhZ2UvU3RvcmFnZUFy
ZWFTeW5jLmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0L1N0b3JhZ2UvU3RvcmFnZUFyZWFTeW5jLmNw
cApAQCAtODgsNyArODgsNyBAQCB2b2lkIFN0b3JhZ2VBcmVhU3luYzo6c2NoZWR1bGVGaW5hbFN5
bmMoKQogICAgIEFTU0VSVChpc01haW5UaHJlYWQoKSk7CiAgICAgLy8gRklYTUU6IFdlIGRvIHRo
aXMgdG8gYXZvaWQgcmFjZXMsIGJ1dCBpdCdkIGJlIGJldHRlciB0byBtYWtlIHRoaW5ncyBzYWZl
IHdpdGhvdXQgYmxvY2tpbmcuCiAgICAgYmxvY2tVbnRpbEltcG9ydENvbXBsZXRlKCk7Ci0gICAg
bV9zdG9yYWdlQXJlYSA9IDA7ICAvLyBUaGlzIGlzIGRvbmUgaW4gYmxvY2tVbnRpbEltcG9ydENv
bXBsZXRlKCkgYnV0IHRoaXMgaXMgaGVyZSBhcyBhIGZvcm0gb2YgZG9jdW1lbnRhdGlvbiB0aGF0
IHdlIG11c3QgYmUgYWJzb2x1dGVseSBzdXJlIHRoZSByZWYgY291bnQgY3ljbGUgaXMgYnJva2Vu
LgorICAgIG1fc3RvcmFnZUFyZWEgPSBudWxscHRyOyAvLyBUaGlzIGlzIGRvbmUgaW4gYmxvY2tV
bnRpbEltcG9ydENvbXBsZXRlKCkgYnV0IHRoaXMgaXMgaGVyZSBhcyBhIGZvcm0gb2YgZG9jdW1l
bnRhdGlvbiB0aGF0IHdlIG11c3QgYmUgYWJzb2x1dGVseSBzdXJlIHRoZSByZWYgY291bnQgY3lj
bGUgaXMgYnJva2VuLgogCiAgICAgaWYgKG1fc3luY1RpbWVyLmlzQWN0aXZlKCkpCiAgICAgICAg
IG1fc3luY1RpbWVyLnN0b3AoKTsKQEAgLTM3NSw3ICszNzUsNyBAQCB2b2lkIFN0b3JhZ2VBcmVh
U3luYzo6YmxvY2tVbnRpbEltcG9ydENvbXBsZXRlKCkKICAgICBNdXRleExvY2tlciBsb2NrZXIo
bV9pbXBvcnRMb2NrKTsKICAgICB3aGlsZSAoIW1faW1wb3J0Q29tcGxldGUpCiAgICAgICAgIG1f
aW1wb3J0Q29uZGl0aW9uLndhaXQobV9pbXBvcnRMb2NrKTsKLSAgICBtX3N0b3JhZ2VBcmVhID0g
MDsKKyAgICBtX3N0b3JhZ2VBcmVhID0gbnVsbHB0cjsKIH0KIAogdm9pZCBTdG9yYWdlQXJlYVN5
bmM6OnN5bmMoYm9vbCBjbGVhckl0ZW1zLCBjb25zdCBIYXNoTWFwPFN0cmluZywgU3RyaW5nPiYg
aXRlbXMpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L21hYy9QbHVnaW5zL0hvc3RlZC9XZWJI
b3N0ZWROZXRzY2FwZVBsdWdpblZpZXcubW0gYi9Tb3VyY2UvV2ViS2l0L21hYy9QbHVnaW5zL0hv
c3RlZC9XZWJIb3N0ZWROZXRzY2FwZVBsdWdpblZpZXcubW0KaW5kZXggNzYwMDU4MzY5MGQ3OTYw
YzVkOGE1OWE3M2U3MmQwMjVkYjJjZmYzNy4uYWM0MzRlYzFhOWYzNDhjNzA1YzhiYjAxMmNlNmE0
ZWM4OTdlZjMwYSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9tYWMvUGx1Z2lucy9Ib3N0ZWQv
V2ViSG9zdGVkTmV0c2NhcGVQbHVnaW5WaWV3Lm1tCisrKyBiL1NvdXJjZS9XZWJLaXQvbWFjL1Bs
dWdpbnMvSG9zdGVkL1dlYkhvc3RlZE5ldHNjYXBlUGx1Z2luVmlldy5tbQpAQCAtMjgxLDcgKzI4
MSw3IEBAIC0gKHZvaWQpZGVzdHJveVBsdWdpbgogICAgICAgICB9CiAgICAgICAgIAogICAgICAg
ICBfcHJveHktPmRlc3Ryb3koKTsKLSAgICAgICAgX3Byb3h5ID0gMDsKKyAgICAgICAgX3Byb3h5
ID0gbnVsbHB0cjsKICAgICB9CiAgICAgCiAgICAgX3BsdWdpbkxheWVyID0gMDsKQEAgLTQzMiw3
ICs0MzIsNyBAQCAtICh2b2lkKXBsdWdpbkhvc3REaWVkCiAgICAgICAgIGRvd25jYXN0PFJlbmRl
ckVtYmVkZGVkT2JqZWN0PigqX2VsZW1lbnQtPnJlbmRlcmVyKCkpLnNldFBsdWdpblVuYXZhaWxh
YmlsaXR5UmVhc29uKFJlbmRlckVtYmVkZGVkT2JqZWN0OjpQbHVnaW5DcmFzaGVkKTsKIAogICAg
IF9wbHVnaW5MYXllciA9IG5pbDsKLSAgICBfcHJveHkgPSAwOworICAgIF9wcm94eSA9IG51bGxw
dHI7CiAgICAgCiAgICAgLy8gTm8gbmVlZCBmb3IgdXMgdG8gYmUgbGF5ZXIgYmFja2VkIGFueW1v
cmUKICAgICBzZWxmLndhbnRzTGF5ZXIgPSBOTzsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQv
bWFjL1dlYkNvcmVTdXBwb3J0L1dlYkVkaXRvckNsaWVudC5tbSBiL1NvdXJjZS9XZWJLaXQvbWFj
L1dlYkNvcmVTdXBwb3J0L1dlYkVkaXRvckNsaWVudC5tbQppbmRleCA2Y2VkMTk0MTM4NmIwYzY5
MTA2MjY3ZjFjZDc0ZDhlYzNhMTlkOTU2Li5jMTg4YjlkNzM5NTdhNGEyMzAzZDg3MDIxODMxMzA2
Y2Q2MDEzYjI5IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L21hYy9XZWJDb3JlU3VwcG9ydC9X
ZWJFZGl0b3JDbGllbnQubW0KKysrIGIvU291cmNlL1dlYktpdC9tYWMvV2ViQ29yZVN1cHBvcnQv
V2ViRWRpdG9yQ2xpZW50Lm1tCkBAIC0xMTQzLDcgKzExNDMsNyBAQCB2b2lkIFdlYkVkaXRvckNs
aWVudDo6ZGlkQ2hlY2tTdWNjZWVkKGludCBzZXF1ZW5jZSwgTlNBcnJheSogcmVzdWx0cykKIHsK
ICAgICBBU1NFUlRfVU5VU0VEKHNlcXVlbmNlLCBzZXF1ZW5jZSA9PSBtX3RleHRDaGVja2luZ1Jl
cXVlc3QtPmRhdGEoKS5zZXF1ZW5jZSgpKTsKICAgICBtX3RleHRDaGVja2luZ1JlcXVlc3QtPmRp
ZFN1Y2NlZWQoY29yZShyZXN1bHRzLCBtX3RleHRDaGVja2luZ1JlcXVlc3QtPmRhdGEoKS5tYXNr
KCkpKTsKLSAgICBtX3RleHRDaGVja2luZ1JlcXVlc3QuY2xlYXIoKTsKKyAgICBtX3RleHRDaGVj
a2luZ1JlcXVlc3QgPSBudWxscHRyOwogfQogI2VuZGlmCiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9X
ZWJLaXQvbWFjL1dlYkNvcmVTdXBwb3J0L1dlYlVzZXJNZWRpYUNsaWVudC5tbSBiL1NvdXJjZS9X
ZWJLaXQvbWFjL1dlYkNvcmVTdXBwb3J0L1dlYlVzZXJNZWRpYUNsaWVudC5tbQppbmRleCA2MjJi
ZDlkZDNhZmUwODkyYjFkYzJkZjUwYmE3ZTRiNDMyMmIxNTlkLi4xN2YxNjQ3M2VkNWI5ZDQzNDgz
MGVkN2M3MjY5ODY1ZDdhNWIzNTNmIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L21hYy9XZWJD
b3JlU3VwcG9ydC9XZWJVc2VyTWVkaWFDbGllbnQubW0KKysrIGIvU291cmNlL1dlYktpdC9tYWMv
V2ViQ29yZVN1cHBvcnQvV2ViVXNlck1lZGlhQ2xpZW50Lm1tCkBAIC0xNDIsNyArMTQyLDcgQEAg
LSAodm9pZCljYW5jZWxSZXF1ZXN0CiAgICAgaWYgKCFfcmVxdWVzdCkKICAgICAgICAgcmV0dXJu
OwogCi0gICAgX3JlcXVlc3QgPSAwOworICAgIF9yZXF1ZXN0ID0gbnVsbHB0cjsKICNlbmRpZgog
ICAgIAogfQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC93aW4vV2ViVmlldy5jcHAgYi9Tb3Vy
Y2UvV2ViS2l0L3dpbi9XZWJWaWV3LmNwcAppbmRleCA0Mzc1MjcxMjhkMTU0MWZjNjllODdkMDU4
Y2I5ZTkwNjJiNjM2MjNkLi5iNzllNjNjNTQ2NTViMTczMGYwNGU2ZDZhOGUwNzQ3NGQ2ZGFiYjAx
IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L3dpbi9XZWJWaWV3LmNwcAorKysgYi9Tb3VyY2Uv
V2ViS2l0L3dpbi9XZWJWaWV3LmNwcApAQCAtODUxLDggKzg1MSw4IEBAIHZvaWQgV2ViVmlldzo6
ZGVsZXRlQmFja2luZ1N0b3JlKCkKICAgICAgICAgS2lsbFRpbWVyKG1fdmlld1dpbmRvdywgRGVs
ZXRlQmFja2luZ1N0b3JlVGltZXIpOwogICAgICAgICBtX2RlbGV0ZUJhY2tpbmdTdG9yZVRpbWVy
QWN0aXZlID0gZmFsc2U7CiAgICAgfQotICAgIG1fYmFja2luZ1N0b3JlQml0bWFwLmNsZWFyKCk7
Ci0gICAgbV9iYWNraW5nU3RvcmVEaXJ0eVJlZ2lvbi5jbGVhcigpOworICAgIG1fYmFja2luZ1N0
b3JlQml0bWFwID0gbnVsbHB0cjsKKyAgICBtX2JhY2tpbmdTdG9yZURpcnR5UmVnaW9uID0gbnVs
bHB0cjsKICAgICBtX2JhY2tpbmdTdG9yZVNpemUuY3ggPSBtX2JhY2tpbmdTdG9yZVNpemUuY3kg
PSAwOwogfQogCkBAIC0xMDc5LDcgKzEwNzksNyBAQCB2b2lkIFdlYlZpZXc6OnVwZGF0ZUJhY2tp
bmdTdG9yZShGcmFtZVZpZXcqIGZyYW1lVmlldywgSERDIGRjLCBib29sIGJhY2tpbmdTdG9yZQog
ICAgICAgICBpZiAobV91aURlbGVnYXRlUHJpdmF0ZSkKICAgICAgICAgICAgIG1fdWlEZWxlZ2F0
ZVByaXZhdGUtPndlYlZpZXdQYWludGVkKHRoaXMpOwogCi0gICAgICAgIG1fYmFja2luZ1N0b3Jl
RGlydHlSZWdpb24uY2xlYXIoKTsKKyAgICAgICAgbV9iYWNraW5nU3RvcmVEaXJ0eVJlZ2lvbiA9
IG51bGxwdHI7CiAgICAgfQogCiAgICAgaWYgKCFkYykKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJL
aXQyL0RhdGFiYXNlUHJvY2Vzcy9JbmRleGVkREIvVW5pcXVlSURCRGF0YWJhc2UuY3BwIGIvU291
cmNlL1dlYktpdDIvRGF0YWJhc2VQcm9jZXNzL0luZGV4ZWREQi9VbmlxdWVJREJEYXRhYmFzZS5j
cHAKaW5kZXggNjE5ODA1Y2Q5YTI2MWU3MTViMjc4ODhjMWIxYmVmMTE5MzJlM2VjZC4uM2QyY2E1
YmJiZmFjNjRhZWI4MTY4MGJhODc1ZjYwN2M4NGU0YmQxZCAxMDA2NDQKLS0tIGEvU291cmNlL1dl
YktpdDIvRGF0YWJhc2VQcm9jZXNzL0luZGV4ZWREQi9VbmlxdWVJREJEYXRhYmFzZS5jcHAKKysr
IGIvU291cmNlL1dlYktpdDIvRGF0YWJhc2VQcm9jZXNzL0luZGV4ZWREQi9VbmlxdWVJREJEYXRh
YmFzZS5jcHAKQEAgLTE0Nyw3ICsxNDcsNyBAQCB2b2lkIFVuaXF1ZUlEQkRhdGFiYXNlOjpzaHV0
ZG93bkJhY2tpbmdTdG9yZShVbmlxdWVJREJEYXRhYmFzZVNodXRkb3duVHlwZSB0eXBlLAogewog
ICAgIEFTU0VSVCghUnVuTG9vcDo6aXNNYWluKCkpOwogCi0gICAgbV9iYWNraW5nU3RvcmUuY2xl
YXIoKTsKKyAgICBtX2JhY2tpbmdTdG9yZSA9IG51bGxwdHI7CiAKICAgICBpZiAodHlwZSA9PSBV
bmlxdWVJREJEYXRhYmFzZVNodXRkb3duVHlwZTo6RGVsZXRlU2h1dGRvd24pIHsKICAgICAgICAg
U3RyaW5nIGRiRmlsZW5hbWUgPSBVbmlxdWVJREJEYXRhYmFzZTo6Y2FsY3VsYXRlQWJzb2x1dGVE
YXRhYmFzZUZpbGVuYW1lKGRhdGFiYXNlRGlyZWN0b3J5KTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9X
ZWJLaXQyL1BsdWdpblByb2Nlc3MvUGx1Z2luQ29udHJvbGxlclByb3h5LmNwcCBiL1NvdXJjZS9X
ZWJLaXQyL1BsdWdpblByb2Nlc3MvUGx1Z2luQ29udHJvbGxlclByb3h5LmNwcAppbmRleCA4OGQ2
ZDE3N2RhODQ2MWVmOGY0ZTMyM2NjNmM2MmZmOWRjZjRjMTgxLi40YTlmNDY3ZTg3OGRlODFjNjYx
YmRlZDM1ZDc2MTY2MzA2MTFjNDdjIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0Mi9QbHVnaW5Q
cm9jZXNzL1BsdWdpbkNvbnRyb2xsZXJQcm94eS5jcHAKKysrIGIvU291cmNlL1dlYktpdDIvUGx1
Z2luUHJvY2Vzcy9QbHVnaW5Db250cm9sbGVyUHJveHkuY3BwCkBAIC0xMjYsNyArMTI2LDcgQEAg
Ym9vbCBQbHVnaW5Db250cm9sbGVyUHJveHk6OmluaXRpYWxpemUoY29uc3QgUGx1Z2luQ3JlYXRp
b25QYXJhbWV0ZXJzJiBjcmVhdGlvblAKICAgICAgICAgLy8gdXNlZCBhcyBhbiBpZGVudGlmaWVy
IHNvIGl0J3MgT0sgdG8ganVzdCBnZXQgYSB3ZWFrIHJlZmVyZW5jZS4KICAgICAgICAgUGx1Z2lu
KiBwbHVnaW4gPSBtX3BsdWdpbi5nZXQoKTsKICAgICAgICAgCi0gICAgICAgIG1fcGx1Z2luID0g
MDsKKyAgICAgICAgbV9wbHVnaW4gPSBudWxscHRyOwogCiAgICAgICAgIC8vIFRoaXMgd2lsbCBk
ZWxldGUgdGhlIHBsdWctaW4gY29udHJvbGxlciBwcm94eSBvYmplY3QuCiAgICAgICAgIG1fY29u
bmVjdGlvbi0+cmVtb3ZlUGx1Z2luQ29udHJvbGxlclByb3h5KHRoaXMsIHBsdWdpbik7CkBAIC0x
NTYsNyArMTU2LDcgQEAgdm9pZCBQbHVnaW5Db250cm9sbGVyUHJveHk6OmRlc3Ryb3koKQogICAg
IFBsdWdpbiogcGx1Z2luID0gbV9wbHVnaW4uZ2V0KCk7CiAKICAgICBtX3BsdWdpbi0+ZGVzdHJv
eVBsdWdpbigpOwotICAgIG1fcGx1Z2luID0gMDsKKyAgICBtX3BsdWdpbiA9IG51bGxwdHI7CiAK
ICAgICBwbGF0Zm9ybURlc3Ryb3koKTsKIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdDIvU2hh
cmVkL0NoaWxkUHJvY2Vzc1Byb3h5LmNwcCBiL1NvdXJjZS9XZWJLaXQyL1NoYXJlZC9DaGlsZFBy
b2Nlc3NQcm94eS5jcHAKaW5kZXggMzkzMDk4OTc5ZTY4ZWMxMjQ0MGUxMjVmY2MzYTI0MmIwN2U2
ODk3ZC4uZDllMDdlZjRjN2Q2MmRlODZkZmM2OThmNzA1NGY4OGM0YTg1MzM4NSAxMDA2NDQKLS0t
IGEvU291cmNlL1dlYktpdDIvU2hhcmVkL0NoaWxkUHJvY2Vzc1Byb3h5LmNwcAorKysgYi9Tb3Vy
Y2UvV2ViS2l0Mi9TaGFyZWQvQ2hpbGRQcm9jZXNzUHJveHkuY3BwCkBAIC00Miw3ICs0Miw3IEBA
IENoaWxkUHJvY2Vzc1Byb3h5Ojp+Q2hpbGRQcm9jZXNzUHJveHkoKQogCiAgICAgaWYgKG1fcHJv
Y2Vzc0xhdW5jaGVyKSB7CiAgICAgICAgIG1fcHJvY2Vzc0xhdW5jaGVyLT5pbnZhbGlkYXRlKCk7
Ci0gICAgICAgIG1fcHJvY2Vzc0xhdW5jaGVyID0gMDsKKyAgICAgICAgbV9wcm9jZXNzTGF1bmNo
ZXIgPSBudWxscHRyOwogICAgIH0KIH0KIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdDIvU2hh
cmVkL0Nvb3JkaW5hdGVkR3JhcGhpY3MvQ29vcmRpbmF0ZWRCYWNraW5nU3RvcmUuY3BwIGIvU291
cmNlL1dlYktpdDIvU2hhcmVkL0Nvb3JkaW5hdGVkR3JhcGhpY3MvQ29vcmRpbmF0ZWRCYWNraW5n
U3RvcmUuY3BwCmluZGV4IGI5YTA1ZjkwNmU5YzExZjAyN2VhMWExNTI1ZWU0M2VjZmQ1YzUzZDcu
LmM2NmQyOGI3NTM5NzRhMDU3NDBjYjZhZjY4ZTJjNDg0ODFkOTNjMzIgMTAwNjQ0Ci0tLSBhL1Nv
dXJjZS9XZWJLaXQyL1NoYXJlZC9Db29yZGluYXRlZEdyYXBoaWNzL0Nvb3JkaW5hdGVkQmFja2lu
Z1N0b3JlLmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0Mi9TaGFyZWQvQ29vcmRpbmF0ZWRHcmFwaGlj
cy9Db29yZGluYXRlZEJhY2tpbmdTdG9yZS5jcHAKQEAgLTU1LDcgKzU1LDcgQEAgdm9pZCBDb29y
ZGluYXRlZEJhY2tpbmdTdG9yZVRpbGU6OnN3YXBCdWZmZXJzKFRleHR1cmVNYXBwZXIqIHRleHR1
cmVNYXBwZXIpCiAgICAgICAgIHRleHR1cmUtPnJlc2V0KG1fdGlsZVJlY3Quc2l6ZSgpLCBtX3N1
cmZhY2UtPnN1cHBvcnRzQWxwaGEoKSk7CiAKICAgICBtX3N1cmZhY2UtPmNvcHlUb1RleHR1cmUo
dGV4dHVyZSwgbV9zb3VyY2VSZWN0LCBtX3N1cmZhY2VPZmZzZXQpOwotICAgIG1fc3VyZmFjZS5j
bGVhcigpOworICAgIG1fc3VyZmFjZSA9IG51bGxwdHI7CiB9CiAKIHZvaWQgQ29vcmRpbmF0ZWRC
YWNraW5nU3RvcmVUaWxlOjpzZXRCYWNrQnVmZmVyKGNvbnN0IEludFJlY3QmIHRpbGVSZWN0LCBj
b25zdCBJbnRSZWN0JiBzb3VyY2VSZWN0LCBQYXNzUmVmUHRyPENvb3JkaW5hdGVkU3VyZmFjZT4g
YnVmZmVyLCBjb25zdCBJbnRQb2ludCYgb2Zmc2V0KQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktp
dDIvVUlQcm9jZXNzL0FQSS9lZmwvRXdrVmlldy5jcHAgYi9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nl
c3MvQVBJL2VmbC9Fd2tWaWV3LmNwcAppbmRleCA3N2I1MDFhODRkZjY0M2UxYmRlZTdlNTc0NWZm
MTk0NDE0MjVhZjU5Li40NTg4NDY0NTc4NzM3NDczN2Q4M2JiYzQwNWVlOGM3YmZlNzQ1ZmM5IDEw
MDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvQVBJL2VmbC9Fd2tWaWV3LmNwcAor
KysgYi9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvQVBJL2VmbC9Fd2tWaWV3LmNwcApAQCAtOTQw
LDcgKzk0MCw3IEBAIHZvaWQgRXdrVmlldzo6aGlkZUNvbnRleHRNZW51KCkKICAgICBpZiAoc2Qt
PmFwaS0+Y29udGV4dF9tZW51X2hpZGUpCiAgICAgICAgIHNkLT5hcGktPmNvbnRleHRfbWVudV9o
aWRlKHNkKTsKIAotICAgIG1fY29udGV4dE1lbnUuY2xlYXIoKTsKKyAgICBtX2NvbnRleHRNZW51
ID0gbnVsbHB0cjsKIH0KIAogdm9pZCBFd2tWaWV3OjpyZXF1ZXN0UG9wdXBNZW51KFdLUG9wdXBN
ZW51TGlzdGVuZXJSZWYgcG9wdXBNZW51TGlzdGVuZXIsIGNvbnN0IFdLUmVjdCYgcmVjdCwgV0tQ
b3B1cEl0ZW1UZXh0RGlyZWN0aW9uIHRleHREaXJlY3Rpb24sIGRvdWJsZSBwYWdlU2NhbGVGYWN0
b3IsIFdLQXJyYXlSZWYgaXRlbXMsIGludDMyX3Qgc2VsZWN0ZWRJbmRleCkKZGlmZiAtLWdpdCBh
L1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9BUEkvbWFjL1dLVmlldy5tbSBiL1NvdXJjZS9XZWJL
aXQyL1VJUHJvY2Vzcy9BUEkvbWFjL1dLVmlldy5tbQppbmRleCBkNTUxNWFlMWZjM2Y0Mjk5ZGEx
MjQzMWE0MWE3NDdlMzhhM2U0NjU3Li5lOGQyNDQ5NThmMDlkZTVmZGVjOWUxYmMzYjE0YTI2MTAy
MmUzMmE2IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvQVBJL21hYy9XS1Zp
ZXcubW0KKysrIGIvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL0FQSS9tYWMvV0tWaWV3Lm1tCkBA
IC0zNTIwLDcgKzM1MjAsNyBAQCAtICh2b2lkKV9zZXRQcm9taXNlZERhdGFGb3JBdHRhY2htZW50
OihOU1N0cmluZyAqKWZpbGVuYW1lIHdpdGhFeHRlbnNpb246KE5TU3RyaQogCiAtICh2b2lkKXBh
c3RlYm9hcmRDaGFuZ2VkT3duZXI6KE5TUGFzdGVib2FyZCAqKXBhc3RlYm9hcmQKIHsKLSAgICBf
ZGF0YS0+X3Byb21pc2VkSW1hZ2UgPSAwOworICAgIF9kYXRhLT5fcHJvbWlzZWRJbWFnZSA9IG51
bGxwdHI7CiAgICAgX2RhdGEtPl9wcm9taXNlZEZpbGVuYW1lID0gIiI7CiAgICAgX2RhdGEtPl9w
cm9taXNlZFVSTCA9ICIiOwogfQpAQCAtMzUzMSw3ICszNTMxLDcgQEAgLSAodm9pZClwYXN0ZWJv
YXJkOihOU1Bhc3RlYm9hcmQgKilwYXN0ZWJvYXJkIHByb3ZpZGVEYXRhRm9yVHlwZTooTlNTdHJp
bmcgKil0eXAKIAogICAgIGlmIChbdHlwZSBpc0VxdWFsOk5TVElGRlBib2FyZFR5cGVdICYmIF9k
YXRhLT5fcHJvbWlzZWRJbWFnZSkgewogICAgICAgICBbcGFzdGVib2FyZCBzZXREYXRhOihOU0Rh
dGEgKilfZGF0YS0+X3Byb21pc2VkSW1hZ2UtPmdldFRJRkZSZXByZXNlbnRhdGlvbigpIGZvclR5
cGU6TlNUSUZGUGJvYXJkVHlwZV07Ci0gICAgICAgIF9kYXRhLT5fcHJvbWlzZWRJbWFnZSA9IDA7
CisgICAgICAgIF9kYXRhLT5fcHJvbWlzZWRJbWFnZSA9IG51bGxwdHI7CiAgICAgfQogfQogCmRp
ZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvSW5zcGVjdG9yU2VydmVyL1dlYlNv
Y2tldFNlcnZlckNvbm5lY3Rpb24uY3BwIGIvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL0luc3Bl
Y3RvclNlcnZlci9XZWJTb2NrZXRTZXJ2ZXJDb25uZWN0aW9uLmNwcAppbmRleCA4MDk3YWMxYTRj
YzFlMGRkYmZhZGZmOTkwYzNlNGU1Mjc3YmZlNDA2Li45NGEyNGM5MGMzODY2YWY1OTdlYjBkNTkx
ZjM2OWY3MTBkZjYwN2M4IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvSW5z
cGVjdG9yU2VydmVyL1dlYlNvY2tldFNlcnZlckNvbm5lY3Rpb24uY3BwCisrKyBiL1NvdXJjZS9X
ZWJLaXQyL1VJUHJvY2Vzcy9JbnNwZWN0b3JTZXJ2ZXIvV2ViU29ja2V0U2VydmVyQ29ubmVjdGlv
bi5jcHAKQEAgLTEyNiw3ICsxMjYsNyBAQCB2b2lkIFdlYlNvY2tldFNlcnZlckNvbm5lY3Rpb246
OnNlbmRSYXdEYXRhKGNvbnN0IGNoYXIqIGRhdGEsIHNpemVfdCBsZW5ndGgpCiB2b2lkIFdlYlNv
Y2tldFNlcnZlckNvbm5lY3Rpb246OmRpZENsb3NlU29ja2V0U3RyZWFtKFNvY2tldFN0cmVhbUhh
bmRsZSopCiB7CiAgICAgLy8gRGVzdHJveSB0aGUgU29ja2V0U3RyZWFtSGFuZGxlIG5vdyB0byBw
cmV2ZW50IGNsb3NpbmcgYW4gYWxyZWFkeSBjbG9zZWQgc29ja2V0IGxhdGVyLgotICAgIG1fc29j
a2V0LmNsZWFyKCk7CisgICAgbV9zb2NrZXQgPSBudWxscHRyOwogCiAgICAgLy8gV2ViIFNvY2tl
dCBNb2RlLgogICAgIGlmIChtX21vZGUgPT0gV2ViU29ja2V0KQpkaWZmIC0tZ2l0IGEvU291cmNl
L1dlYktpdDIvVUlQcm9jZXNzL05ldHdvcmsvQ3VzdG9tUHJvdG9jb2xzL21hYy9DdXN0b21Qcm90
b2NvbE1hbmFnZXJQcm94eU1hYy5tbSBiL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9OZXR3b3Jr
L0N1c3RvbVByb3RvY29scy9tYWMvQ3VzdG9tUHJvdG9jb2xNYW5hZ2VyUHJveHlNYWMubW0KaW5k
ZXggOTQyNTI5OWEyZWM3M2Y4YmUwZDE5OWExMTNhMmQ2YmJhOGI2MTk3NC4uNTEzYjFlMGNmZjk3
ZmIxNmZlNGFiZTkxZWE4YmZhNGRkZWMxMmJhNCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdDIv
VUlQcm9jZXNzL05ldHdvcmsvQ3VzdG9tUHJvdG9jb2xzL21hYy9DdXN0b21Qcm90b2NvbE1hbmFn
ZXJQcm94eU1hYy5tbQorKysgYi9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvTmV0d29yay9DdXN0
b21Qcm90b2NvbHMvbWFjL0N1c3RvbVByb3RvY29sTWFuYWdlclByb3h5TWFjLm1tCkBAIC03Niw3
ICs3Niw3IEBAIC0gKGlkKWluaXRXaXRoQ3VzdG9tUHJvdG9jb2xNYW5hZ2VyUHJveHk6KEN1c3Rv
bVByb3RvY29sTWFuYWdlclByb3h5KiljdXN0b21Qcm90CiAKIC0gKHZvaWQpZGVhbGxvYwogewot
ICAgIF9jb25uZWN0aW9uLmNsZWFyKCk7CisgICAgX2Nvbm5lY3Rpb24gPSBudWxscHRyOwogICAg
IFtfdXJsQ29ubmVjdGlvbiBjYW5jZWxdOwogICAgIFtfdXJsQ29ubmVjdGlvbiByZWxlYXNlXTsK
ICAgICBbc3VwZXIgZGVhbGxvY107CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nl
c3MvU3RhdGlzdGljc1JlcXVlc3QuY3BwIGIvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL1N0YXRp
c3RpY3NSZXF1ZXN0LmNwcAppbmRleCBjMGVjNDhlZTNiYjk2NTJkZDc4ODdlODRlODQ4ZjIyNGUy
ZmJmYjIwLi44MDZlMTBmMDBmZjNmMTQ0ZjE3ZmI3YjAyNjhlMTFmYWNhMTZmMTU5IDEwMDY0NAot
LS0gYS9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvU3RhdGlzdGljc1JlcXVlc3QuY3BwCisrKyBi
L1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9TdGF0aXN0aWNzUmVxdWVzdC5jcHAKQEAgLTk1LDcg
Kzk1LDcgQEAgdm9pZCBTdGF0aXN0aWNzUmVxdWVzdDo6Y29tcGxldGVkUmVxdWVzdCh1aW50NjRf
dCByZXF1ZXN0SUQsIGNvbnN0IFN0YXRpc3RpY3NEYXQKIAogICAgIGlmIChtX291dHN0YW5kaW5n
UmVxdWVzdHMuaXNFbXB0eSgpKSB7CiAgICAgICAgIG1fY2FsbGJhY2stPnBlcmZvcm1DYWxsYmFj
a1dpdGhSZXR1cm5WYWx1ZShtX3Jlc3BvbnNlRGljdGlvbmFyeS5nZXQoKSk7Ci0gICAgICAgIG1f
Y2FsbGJhY2sgPSAwOworICAgICAgICBtX2NhbGxiYWNrID0gbnVsbHB0cjsKICAgICB9CiB9CiAK
ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9XZWJGcmFtZUxpc3RlbmVyUHJv
eHkuY3BwIGIvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL1dlYkZyYW1lTGlzdGVuZXJQcm94eS5j
cHAKaW5kZXggZTgwMTBlNWI2MjY5MDUxYjIzNWUwYmMzYTIzZjcwZGU5MGY3MjM0Zi4uNDA2MWRk
NTI5MTM0ZWQ4ZDhkMjVkNjhkMGNjOWM1ZTk2ZTg2OTY2MCAxMDA2NDQKLS0tIGEvU291cmNlL1dl
YktpdDIvVUlQcm9jZXNzL1dlYkZyYW1lTGlzdGVuZXJQcm94eS5jcHAKKysrIGIvU291cmNlL1dl
YktpdDIvVUlQcm9jZXNzL1dlYkZyYW1lTGlzdGVuZXJQcm94eS5jcHAKQEAgLTQyLDcgKzQyLDcg
QEAgV2ViRnJhbWVMaXN0ZW5lclByb3h5Ojp+V2ViRnJhbWVMaXN0ZW5lclByb3h5KCkKIAogdm9p
ZCBXZWJGcmFtZUxpc3RlbmVyUHJveHk6OmludmFsaWRhdGUoKQogewotICAgIG1fZnJhbWUgPSAw
OworICAgIG1fZnJhbWUgPSBudWxscHRyOwogfQogCiB2b2lkIFdlYkZyYW1lTGlzdGVuZXJQcm94
eTo6cmVjZWl2ZWRQb2xpY3lEZWNpc2lvbihXZWJDb3JlOjpQb2xpY3lBY3Rpb24gYWN0aW9uKQpA
QCAtNTEsNyArNTEsNyBAQCB2b2lkIFdlYkZyYW1lTGlzdGVuZXJQcm94eTo6cmVjZWl2ZWRQb2xp
Y3lEZWNpc2lvbihXZWJDb3JlOjpQb2xpY3lBY3Rpb24gYWN0aW9uKQogICAgICAgICByZXR1cm47
CiAKICAgICBtX2ZyYW1lLT5yZWNlaXZlZFBvbGljeURlY2lzaW9uKGFjdGlvbiwgbV9saXN0ZW5l
cklELCBtX25hdmlnYXRpb24uZ2V0KCkpOwotICAgIG1fZnJhbWUgPSAwOworICAgIG1fZnJhbWUg
PSBudWxscHRyOwogfQogCiB9IC8vIG5hbWVzcGFjZSBXZWJLaXQKZGlmZiAtLWdpdCBhL1NvdXJj
ZS9XZWJLaXQyL1VJUHJvY2Vzcy9XZWJGcmFtZVByb3h5LmNwcCBiL1NvdXJjZS9XZWJLaXQyL1VJ
UHJvY2Vzcy9XZWJGcmFtZVByb3h5LmNwcAppbmRleCA0MWJiOTFhMTM2MWI4ODRhMjhkMTk0Yzky
YjE3NjI4YmQ0MDZkMjE0Li42OTI4YWZiYzcwMmM3MGJkZjA5NzYzZDczZTA2ZTYyY2IzY2EzNDIx
IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvV2ViRnJhbWVQcm94eS5jcHAK
KysrIGIvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL1dlYkZyYW1lUHJveHkuY3BwCkBAIC01Nywx
MSArNTcsMTEgQEAgV2ViRnJhbWVQcm94eTo6fldlYkZyYW1lUHJveHkoKQogCiB2b2lkIFdlYkZy
YW1lUHJveHk6OndlYlByb2Nlc3NXaWxsU2h1dERvd24oKQogewotICAgIG1fcGFnZSA9IDA7Cisg
ICAgbV9wYWdlID0gbnVsbHB0cjsKIAogICAgIGlmIChtX2FjdGl2ZUxpc3RlbmVyKSB7CiAgICAg
ICAgIG1fYWN0aXZlTGlzdGVuZXItPmludmFsaWRhdGUoKTsKLSAgICAgICAgbV9hY3RpdmVMaXN0
ZW5lciA9IDA7CisgICAgICAgIG1fYWN0aXZlTGlzdGVuZXIgPSBudWxscHRyOwogICAgIH0KIH0K
IApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL1dlYk9wZW5QYW5lbFJlc3Vs
dExpc3RlbmVyUHJveHkuY3BwIGIvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL1dlYk9wZW5QYW5l
bFJlc3VsdExpc3RlbmVyUHJveHkuY3BwCmluZGV4IGRkNjY2NzExMThkMjQ4Zjg2MjFjMmI5ODhl
ZTM4YjFjZmIwM2Y5NjAuLmEzNzdlNGFmMDhlMjk3ZjNjMmZhNzQ2MDZjOWU1OTQ4YWU3ZDQyZTgg
MTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9XZWJPcGVuUGFuZWxSZXN1bHRM
aXN0ZW5lclByb3h5LmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvV2ViT3BlblBh
bmVsUmVzdWx0TGlzdGVuZXJQcm94eS5jcHAKQEAgLTg5LDcgKzg5LDcgQEAgdm9pZCBXZWJPcGVu
UGFuZWxSZXN1bHRMaXN0ZW5lclByb3h5OjpjYW5jZWwoKQogCiB2b2lkIFdlYk9wZW5QYW5lbFJl
c3VsdExpc3RlbmVyUHJveHk6OmludmFsaWRhdGUoKQogewotICAgIG1fcGFnZSA9IDA7CisgICAg
bV9wYWdlID0gbnVsbHB0cjsKIH0KIAogfSAvLyBuYW1lc3BhY2UgV2ViS2l0CmRpZmYgLS1naXQg
YS9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvV2ViUGFnZVByb3h5LmNwcCBiL1NvdXJjZS9XZWJL
aXQyL1VJUHJvY2Vzcy9XZWJQYWdlUHJveHkuY3BwCmluZGV4IGJkMTNhMzNiMTY5MjRmNzQzYWQ2
ODZlN2M4ZjI0NjAwMWFhZTNkOGMuLjc5ZDIzZTA1ODRmMjk0MDM0OTBiNjdlMDA5MWIwZWFkMzdm
YTM1YWYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9XZWJQYWdlUHJveHku
Y3BwCisrKyBiL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9XZWJQYWdlUHJveHkuY3BwCkBAIC0z
NzA2LDcgKzM3MDYsNyBAQCB2b2lkIFdlYlBhZ2VQcm94eTo6cnVuT3BlblBhbmVsKHVpbnQ2NF90
IGZyYW1lSUQsIGNvbnN0IEZpbGVDaG9vc2VyU2V0dGluZ3MmIHNldAogewogICAgIGlmIChtX29w
ZW5QYW5lbFJlc3VsdExpc3RlbmVyKSB7CiAgICAgICAgIG1fb3BlblBhbmVsUmVzdWx0TGlzdGVu
ZXItPmludmFsaWRhdGUoKTsKLSAgICAgICAgbV9vcGVuUGFuZWxSZXN1bHRMaXN0ZW5lciA9IDA7
CisgICAgICAgIG1fb3BlblBhbmVsUmVzdWx0TGlzdGVuZXIgPSBudWxscHRyOwogICAgIH0KIAog
ICAgIFdlYkZyYW1lUHJveHkqIGZyYW1lID0gbV9wcm9jZXNzLT53ZWJGcmFtZShmcmFtZUlEKTsK
QEAgLTM4MDgsNyArMzgwOCw3IEBAIHZvaWQgV2ViUGFnZVByb3h5OjpzaG93Q29sb3JQaWNrZXIo
Y29uc3QgV2ViQ29yZTo6Q29sb3ImIGluaXRpYWxDb2xvciwgY29uc3QgSW50CiAjaWYgRU5BQkxF
KElOUFVUX1RZUEVfQ09MT1JfUE9QT1ZFUikKICAgICAvLyBBIG5ldyBwb3BvdmVyIGNvbG9yIHdl
bGwgbmVlZHMgdG8gYmUgY3JlYXRlZCAoYW5kIHRoZSBwcmV2aW91cyBvbmUgZGVzdHJveWVkKSBm
b3IKICAgICAvLyBlYWNoIGFjdGl2YXRpb24gb2YgYSBjb2xvciBlbGVtZW50LgotICAgIG1fY29s
b3JQaWNrZXIgPSAwOworICAgIG1fY29sb3JQaWNrZXIgPSBudWxscHRyOwogI2VuZGlmCiAgICAg
aWYgKCFtX2NvbG9yUGlja2VyKQogICAgICAgICBtX2NvbG9yUGlja2VyID0gbV9wYWdlQ2xpZW50
LmNyZWF0ZUNvbG9yUGlja2VyKHRoaXMsIGluaXRpYWxDb2xvciwgZWxlbWVudFJlY3QpOwpAQCAt
NDMwMCw3ICs0MzAwLDcgQEAgdm9pZCBXZWJQYWdlUHJveHk6OmRpZENob29zZUZpbGVzRm9yT3Bl
blBhbmVsKGNvbnN0IFZlY3RvcjxTdHJpbmc+JiBmaWxlVVJMcykKICAgICBtX3Byb2Nlc3MtPnNl
bmQoTWVzc2FnZXM6OldlYlBhZ2U6OkRpZENob29zZUZpbGVzRm9yT3BlblBhbmVsKGZpbGVVUkxz
KSwgbV9wYWdlSUQpOwogCiAgICAgbV9vcGVuUGFuZWxSZXN1bHRMaXN0ZW5lci0+aW52YWxpZGF0
ZSgpOwotICAgIG1fb3BlblBhbmVsUmVzdWx0TGlzdGVuZXIgPSAwOworICAgIG1fb3BlblBhbmVs
UmVzdWx0TGlzdGVuZXIgPSBudWxscHRyOwogfQogCiB2b2lkIFdlYlBhZ2VQcm94eTo6ZGlkQ2Fu
Y2VsRm9yT3BlblBhbmVsKCkKQEAgLTQzMTEsNyArNDMxMSw3IEBAIHZvaWQgV2ViUGFnZVByb3h5
OjpkaWRDYW5jZWxGb3JPcGVuUGFuZWwoKQogICAgIG1fcHJvY2Vzcy0+c2VuZChNZXNzYWdlczo6
V2ViUGFnZTo6RGlkQ2FuY2VsRm9yT3BlblBhbmVsKCksIG1fcGFnZUlEKTsKICAgICAKICAgICBt
X29wZW5QYW5lbFJlc3VsdExpc3RlbmVyLT5pbnZhbGlkYXRlKCk7Ci0gICAgbV9vcGVuUGFuZWxS
ZXN1bHRMaXN0ZW5lciA9IDA7CisgICAgbV9vcGVuUGFuZWxSZXN1bHRMaXN0ZW5lciA9IG51bGxw
dHI7CiB9CiAKIHZvaWQgV2ViUGFnZVByb3h5OjphZHZhbmNlVG9OZXh0TWlzc3BlbGxpbmcoYm9v
bCBzdGFydEJlZm9yZVNlbGVjdGlvbikKQEAgLTQ3NjcsNyArNDc2Nyw3IEBAIHZvaWQgV2ViUGFn
ZVByb3h5OjpwcmludEZpbmlzaGVkQ2FsbGJhY2soY29uc3QgUmVzb3VyY2VFcnJvciYgcHJpbnRF
cnJvciwgdWludDY0CiB2b2lkIFdlYlBhZ2VQcm94eTo6Zm9jdXNlZEZyYW1lQ2hhbmdlZCh1aW50
NjRfdCBmcmFtZUlEKQogewogICAgIGlmICghZnJhbWVJRCkgewotICAgICAgICBtX2ZvY3VzZWRG
cmFtZSA9IDA7CisgICAgICAgIG1fZm9jdXNlZEZyYW1lID0gbnVsbHB0cjsKICAgICAgICAgcmV0
dXJuOwogICAgIH0KIApAQCAtNDc4MCw3ICs0NzgwLDcgQEAgdm9pZCBXZWJQYWdlUHJveHk6OmZv
Y3VzZWRGcmFtZUNoYW5nZWQodWludDY0X3QgZnJhbWVJRCkKIHZvaWQgV2ViUGFnZVByb3h5Ojpm
cmFtZVNldExhcmdlc3RGcmFtZUNoYW5nZWQodWludDY0X3QgZnJhbWVJRCkKIHsKICAgICBpZiAo
IWZyYW1lSUQpIHsKLSAgICAgICAgbV9mcmFtZVNldExhcmdlc3RGcmFtZSA9IDA7CisgICAgICAg
IG1fZnJhbWVTZXRMYXJnZXN0RnJhbWUgPSBudWxscHRyOwogICAgICAgICByZXR1cm47CiAgICAg
fQogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvaW9zL1dLR2VvbG9jYXRp
b25Qcm92aWRlcklPUy5tbSBiL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9pb3MvV0tHZW9sb2Nh
dGlvblByb3ZpZGVySU9TLm1tCmluZGV4IGJiNmJiNjA1NGY3Zjg2YjljNjNkNjg1ZTY1ZWY3OWY5
MjFhM2FiMWUuLmJkZDExNGEyNDQ4ZGZhYWE5NzE5MWE2MjVkN2NhMWJiMjY3NzYwMjkgMTAwNjQ0
Ci0tLSBhL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9pb3MvV0tHZW9sb2NhdGlvblByb3ZpZGVy
SU9TLm1tCisrKyBiL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9pb3MvV0tHZW9sb2NhdGlvblBy
b3ZpZGVySU9TLm1tCkBAIC0xMTgsNyArMTE4LDcgQEAgLSh2b2lkKV9zdG9wVXBkYXRpbmcKIHsK
ICAgICBfaXNXZWJDb3JlR2VvbG9jYXRpb25BY3RpdmUgPSBOTzsKICAgICBbX2NvcmVMb2NhdGlv
blByb3ZpZGVyIHN0b3BdOwotICAgIF9sYXN0QWN0aXZlUG9zaXRpb24uY2xlYXIoKTsKKyAgICBf
bGFzdEFjdGl2ZVBvc2l0aW9uID0gbnVsbHB0cjsKIH0KIAogLSh2b2lkKV9zZXRFbmFibGVIaWdo
QWNjdXJhY3k6KEJPT0wpZW5hYmxlSGlnaEFjY3VyYWN5CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2Vi
S2l0Mi9XZWJQcm9jZXNzL0luamVjdGVkQnVuZGxlL21hYy9JbmplY3RlZEJ1bmRsZU1hYy5tbSBi
L1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvSW5qZWN0ZWRCdW5kbGUvbWFjL0luamVjdGVkQnVu
ZGxlTWFjLm1tCmluZGV4IDRlODZhZjE5ZDVjOWFjZTE2MmQ0MGUyNmQwMDQyNzkwZWQxYzQ4YTIu
LjI4NTc1ZWY3NDliMmRkYjNkOTBmZTI5NGRiYTM3MTJlNTU0ZTg4ZDkgMTAwNjQ0Ci0tLSBhL1Nv
dXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvSW5qZWN0ZWRCdW5kbGUvbWFjL0luamVjdGVkQnVuZGxl
TWFjLm1tCisrKyBiL1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvSW5qZWN0ZWRCdW5kbGUvbWFj
L0luamVjdGVkQnVuZGxlTWFjLm1tCkBAIC01NSw3ICs1NSw3IEBAIGJvb2wgSW5qZWN0ZWRCdW5k
bGU6OmluaXRpYWxpemUoY29uc3QgV2ViUHJvY2Vzc0NyZWF0aW9uUGFyYW1ldGVycyYgcGFyYW1l
dGVycywKICAgICAgICAgICAgIHJldHVybiBmYWxzZTsKICAgICAgICAgfQogCi0gICAgICAgIG1f
c2FuZGJveEV4dGVuc2lvbiA9IDA7CisgICAgICAgIG1fc2FuZGJveEV4dGVuc2lvbiA9IG51bGxw
dHI7CiAgICAgfQogICAgIAogICAgIFJldGFpblB0cjxDRlN0cmluZ1JlZj4gaW5qZWN0ZWRCdW5k
bGVQYXRoU3RyID0gbV9wYXRoLmNyZWF0ZUNGU3RyaW5nKCk7CmRpZmYgLS1naXQgYS9Tb3VyY2Uv
V2ViS2l0Mi9XZWJQcm9jZXNzL05ldHdvcmsvV2ViUmVzb3VyY2VMb2FkZXIuY3BwIGIvU291cmNl
L1dlYktpdDIvV2ViUHJvY2Vzcy9OZXR3b3JrL1dlYlJlc291cmNlTG9hZGVyLmNwcAppbmRleCA4
M2Q2Y2E4YWFhZmY2MjU4MzJlMzgyMDAxY2Y2YjAwODA2MmQ2NDllLi4yNTM5N2MzYmM4ZTY3MWNi
ZDU1MDIwZTNjZDY5NzNjNmJhMGEyOWU3IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0Mi9XZWJQ
cm9jZXNzL05ldHdvcmsvV2ViUmVzb3VyY2VMb2FkZXIuY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQy
L1dlYlByb2Nlc3MvTmV0d29yay9XZWJSZXNvdXJjZUxvYWRlci5jcHAKQEAgLTc2LDcgKzc2LDcg
QEAgdm9pZCBXZWJSZXNvdXJjZUxvYWRlcjo6Y2FuY2VsUmVzb3VyY2VMb2FkZXIoKQogCiB2b2lk
IFdlYlJlc291cmNlTG9hZGVyOjpkZXRhY2hGcm9tQ29yZUxvYWRlcigpCiB7Ci0gICAgbV9jb3Jl
TG9hZGVyID0gMDsKKyAgICBtX2NvcmVMb2FkZXIgPSBudWxscHRyOwogfQogCiB2b2lkIFdlYlJl
c291cmNlTG9hZGVyOjp3aWxsU2VuZFJlcXVlc3QoY29uc3QgUmVzb3VyY2VSZXF1ZXN0JiBwcm9w
b3NlZFJlcXVlc3QsIGNvbnN0IFJlc291cmNlUmVzcG9uc2UmIHJlZGlyZWN0UmVzcG9uc2UpCmRp
ZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL1BsdWdpbnMvTmV0c2NhcGUvTmV0
c2NhcGVQbHVnaW4uY3BwIGIvU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9QbHVnaW5zL05ldHNj
YXBlL05ldHNjYXBlUGx1Z2luLmNwcAppbmRleCAwYTdiNzRkZTVjNWM2NjJiZDdkMTE4NGM0NjNm
Yzk2MjZhYjQxZWNkLi5hMzZlNGI0MTM0NWRlYjAxMzUwYTI0OTBlNzA1ODA4Zjk1MzQ5MDY3IDEw
MDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL1BsdWdpbnMvTmV0c2NhcGUvTmV0
c2NhcGVQbHVnaW4uY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvUGx1Z2lucy9O
ZXRzY2FwZS9OZXRzY2FwZVBsdWdpbi5jcHAKQEAgLTI3Nyw3ICsyNzcsNyBAQCB2b2lkIE5ldHNj
YXBlUGx1Z2luOjpjYW5jZWxTdHJlYW1Mb2FkKE5ldHNjYXBlUGx1Z2luU3RyZWFtKiBwbHVnaW5T
dHJlYW0pCiB2b2lkIE5ldHNjYXBlUGx1Z2luOjpyZW1vdmVQbHVnaW5TdHJlYW0oTmV0c2NhcGVQ
bHVnaW5TdHJlYW0qIHBsdWdpblN0cmVhbSkKIHsKICAgICBpZiAocGx1Z2luU3RyZWFtID09IG1f
bWFudWFsU3RyZWFtKSB7Ci0gICAgICAgIG1fbWFudWFsU3RyZWFtID0gMDsKKyAgICAgICAgbV9t
YW51YWxTdHJlYW0gPSBudWxscHRyOwogICAgICAgICByZXR1cm47CiAgICAgfQogCmRpZmYgLS1n
aXQgYS9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL1BsdWdpbnMvUERGL1BERlBsdWdpbi5tbSBi
L1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvUGx1Z2lucy9QREYvUERGUGx1Z2luLm1tCmluZGV4
IGRjY2M1NDEwNWZiYTg3MTllNWZjMzhkZjRjNTAyZGRkMjcyOWVlY2QuLjQ3MDYxZDZkNjE0ZDI2
MWQ3MzM5ZjU3MGZlNmI1ODAwMDk2ZjNlOTQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQyL1dl
YlByb2Nlc3MvUGx1Z2lucy9QREYvUERGUGx1Z2luLm1tCisrKyBiL1NvdXJjZS9XZWJLaXQyL1dl
YlByb2Nlc3MvUGx1Z2lucy9QREYvUERGUGx1Z2luLm1tCkBAIC0xMTAzLDggKzExMDMsOCBAQCB2
b2lkIFBERlBsdWdpbjo6ZGVzdHJveSgpCiAgICAgICAgICAgICBmcmFtZVZpZXctPnJlbW92ZVNj
cm9sbGFibGVBcmVhKHRoaXMpOwogICAgIH0KIAotICAgIG1fYWN0aXZlQW5ub3RhdGlvbiA9IDA7
Ci0gICAgbV9hbm5vdGF0aW9uQ29udGFpbmVyID0gMDsKKyAgICBtX2FjdGl2ZUFubm90YXRpb24g
PSBudWxscHRyOworICAgIG1fYW5ub3RhdGlvbkNvbnRhaW5lciA9IG51bGxwdHI7CiAKICAgICBk
ZXN0cm95U2Nyb2xsYmFyKEhvcml6b250YWxTY3JvbGxiYXIpOwogICAgIGRlc3Ryb3lTY3JvbGxi
YXIoVmVydGljYWxTY3JvbGxiYXIpOwpAQCAtMTYwNCwxNCArMTYwNCwxNCBAQCB2b2lkIFBERlBs
dWdpbjo6c2V0QWN0aXZlQW5ub3RhdGlvbihQREZBbm5vdGF0aW9uICphbm5vdGF0aW9uKQogCiAg
ICAgaWYgKGFubm90YXRpb24pIHsKICAgICAgICAgaWYgKFthbm5vdGF0aW9uIGlzS2luZE9mQ2xh
c3M6cGRmQW5ub3RhdGlvblRleHRXaWRnZXRDbGFzcygpXSAmJiBzdGF0aWNfY2FzdDxQREZBbm5v
dGF0aW9uVGV4dFdpZGdldCAqPihhbm5vdGF0aW9uKS5pc1JlYWRPbmx5KSB7Ci0gICAgICAgICAg
ICBtX2FjdGl2ZUFubm90YXRpb24gPSAwOworICAgICAgICAgICAgbV9hY3RpdmVBbm5vdGF0aW9u
ID0gbnVsbHB0cjsKICAgICAgICAgICAgIHJldHVybjsKICAgICAgICAgfQogCiAgICAgICAgIG1f
YWN0aXZlQW5ub3RhdGlvbiA9IFBERlBsdWdpbkFubm90YXRpb246OmNyZWF0ZShhbm5vdGF0aW9u
LCBtX3BkZkxheWVyQ29udHJvbGxlci5nZXQoKSwgdGhpcyk7CiAgICAgICAgIG1fYWN0aXZlQW5u
b3RhdGlvbi0+YXR0YWNoKG1fYW5ub3RhdGlvbkNvbnRhaW5lci5nZXQoKSk7CiAgICAgfSBlbHNl
Ci0gICAgICAgIG1fYWN0aXZlQW5ub3RhdGlvbiA9IDA7CisgICAgICAgIG1fYWN0aXZlQW5ub3Rh
dGlvbiA9IG51bGxwdHI7CiB9CiAKIGJvb2wgUERGUGx1Z2luOjpzdXBwb3J0c0Zvcm1zKCkKZGlm
ZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvUGx1Z2lucy9QbHVnaW5WaWV3LmNw
cCBiL1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvUGx1Z2lucy9QbHVnaW5WaWV3LmNwcAppbmRl
eCA2YTgzM2YxMzExMTM1MzA3NmFjYWUxMjgxNDMzYjJmNTExOWJiMjQ2Li4yYTBmZDk3MzEzMGIy
MTI2NzhiMDU1NGM3ZDhiZWI1NWM2ODU5NjhkIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0Mi9X
ZWJQcm9jZXNzL1BsdWdpbnMvUGx1Z2luVmlldy5jcHAKKysrIGIvU291cmNlL1dlYktpdDIvV2Vi
UHJvY2Vzcy9QbHVnaW5zL1BsdWdpblZpZXcuY3BwCkBAIC0xNjYsNyArMTY2LDcgQEAgdm9pZCBQ
bHVnaW5WaWV3OjpTdHJlYW06OmNhbmNlbCgpCiAKICAgICBtX3N0cmVhbVdhc0NhbmNlbGxlZCA9
IHRydWU7CiAgICAgbV9sb2FkZXItPmNhbmNlbChtX2xvYWRlci0+Y2FuY2VsbGVkRXJyb3IoKSk7
Ci0gICAgbV9sb2FkZXIgPSAwOworICAgIG1fbG9hZGVyID0gbnVsbHB0cjsKIH0KIAogc3RhdGlj
IFN0cmluZyBidWlsZEhUVFBIZWFkZXJzKGNvbnN0IFJlc291cmNlUmVzcG9uc2UmIHJlc3BvbnNl
LCBsb25nIGxvbmcmIGV4cGVjdGVkQ29udGVudExlbmd0aCkKQEAgLTYwNCw3ICs2MDQsNyBAQCB2
b2lkIFBsdWdpblZpZXc6OmluaXRpYWxpemVQbHVnaW4oKQogCiB2b2lkIFBsdWdpblZpZXc6OmRp
ZEZhaWxUb0luaXRpYWxpemVQbHVnaW4oKQogewotICAgIG1fcGx1Z2luID0gMDsKKyAgICBtX3Bs
dWdpbiA9IG51bGxwdHI7CiAKICNpZiBFTkFCTEUoTkVUU0NBUEVfUExVR0lOX0FQSSkKICAgICBT
dHJpbmcgZnJhbWVVUkxTdHJpbmcgPSBmcmFtZSgpLT5sb2FkZXIoKS5kb2N1bWVudExvYWRlcigp
LT5yZXNwb25zZVVSTCgpLnN0cmluZygpOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdDIvV2Vi
UHJvY2Vzcy9XZWJQYWdlL1dlYlBhZ2UuY3BwIGIvU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9X
ZWJQYWdlL1dlYlBhZ2UuY3BwCmluZGV4IDE1NTRkYmNmNzQ5NmM3NmQ5NzIwMzNiOGQzOTEzNjRh
YjZmZTFlYjguLjdiOGE5MjYwMDdkZDE4MDc4ODVkYTI4MTE2YzgyYjk4YjMxODMyNjQgMTAwNjQ0
Ci0tLSBhL1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvV2ViUGFnZS9XZWJQYWdlLmNwcAorKysg
Yi9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL1dlYlBhZ2UvV2ViUGFnZS5jcHAKQEAgLTkzMCwy
MyArOTMwLDIzIEBAIHZvaWQgV2ViUGFnZTo6Y2xvc2UoKQogICAgIH0KIAogI2lmIEVOQUJMRShG
VUxMU0NSRUVOX0FQSSkKLSAgICBtX2Z1bGxTY3JlZW5NYW5hZ2VyID0gMDsKKyAgICBtX2Z1bGxT
Y3JlZW5NYW5hZ2VyID0gbnVsbHB0cjsKICNlbmRpZgogCiAgICAgaWYgKG1fYWN0aXZlUG9wdXBN
ZW51KSB7CiAgICAgICAgIG1fYWN0aXZlUG9wdXBNZW51LT5kaXNjb25uZWN0RnJvbVBhZ2UoKTsK
LSAgICAgICAgbV9hY3RpdmVQb3B1cE1lbnUgPSAwOworICAgICAgICBtX2FjdGl2ZVBvcHVwTWVu
dSA9IG51bGxwdHI7CiAgICAgfQogCiAgICAgaWYgKG1fYWN0aXZlT3BlblBhbmVsUmVzdWx0TGlz
dGVuZXIpIHsKICAgICAgICAgbV9hY3RpdmVPcGVuUGFuZWxSZXN1bHRMaXN0ZW5lci0+ZGlzY29u
bmVjdEZyb21QYWdlKCk7Ci0gICAgICAgIG1fYWN0aXZlT3BlblBhbmVsUmVzdWx0TGlzdGVuZXIg
PSAwOworICAgICAgICBtX2FjdGl2ZU9wZW5QYW5lbFJlc3VsdExpc3RlbmVyID0gbnVsbHB0cjsK
ICAgICB9CiAKICNpZiBFTkFCTEUoSU5QVVRfVFlQRV9DT0xPUikKICAgICBpZiAobV9hY3RpdmVD
b2xvckNob29zZXIpIHsKICAgICAgICAgbV9hY3RpdmVDb2xvckNob29zZXItPmRpc2Nvbm5lY3RG
cm9tUGFnZSgpOwotICAgICAgICBtX2FjdGl2ZUNvbG9yQ2hvb3NlciA9IDA7CisgICAgICAgIG1f
YWN0aXZlQ29sb3JDaG9vc2VyID0gbnVsbHB0cjsKICAgICB9CiAjZW5kaWYKIApAQCAtMzI3MCw3
ICszMjcwLDcgQEAgdm9pZCBXZWJQYWdlOjpjb3VudFN0cmluZ01hdGNoZXMoY29uc3QgU3RyaW5n
JiBzdHJpbmcsIHVpbnQzMl90IG9wdGlvbnMsIHVpbnQzMl8KIHZvaWQgV2ViUGFnZTo6ZGlkQ2hh
bmdlU2VsZWN0ZWRJbmRleEZvckFjdGl2ZVBvcHVwTWVudShpbnQzMl90IG5ld0luZGV4KQogewog
ICAgIGNoYW5nZVNlbGVjdGVkSW5kZXgobmV3SW5kZXgpOwotICAgIG1fYWN0aXZlUG9wdXBNZW51
ID0gMDsKKyAgICBtX2FjdGl2ZVBvcHVwTWVudSA9IG51bGxwdHI7CiB9CiAKIHZvaWQgV2ViUGFn
ZTo6Y2hhbmdlU2VsZWN0ZWRJbmRleChpbnQzMl90IGluZGV4KQpAQCAtMzMwNiwxMiArMzMwNiwx
MiBAQCB2b2lkIFdlYlBhZ2U6OmRpZENob29zZUZpbGVzRm9yT3BlblBhbmVsKGNvbnN0IFZlY3Rv
cjxTdHJpbmc+JiBmaWxlcykKICAgICAgICAgcmV0dXJuOwogCiAgICAgbV9hY3RpdmVPcGVuUGFu
ZWxSZXN1bHRMaXN0ZW5lci0+ZGlkQ2hvb3NlRmlsZXMoZmlsZXMpOwotICAgIG1fYWN0aXZlT3Bl
blBhbmVsUmVzdWx0TGlzdGVuZXIgPSAwOworICAgIG1fYWN0aXZlT3BlblBhbmVsUmVzdWx0TGlz
dGVuZXIgPSBudWxscHRyOwogfQogCiB2b2lkIFdlYlBhZ2U6OmRpZENhbmNlbEZvck9wZW5QYW5l
bCgpCiB7Ci0gICAgbV9hY3RpdmVPcGVuUGFuZWxSZXN1bHRMaXN0ZW5lciA9IDA7CisgICAgbV9h
Y3RpdmVPcGVuUGFuZWxSZXN1bHRMaXN0ZW5lciA9IG51bGxwdHI7CiB9CiAKICNpZiBFTkFCTEUo
U0FOREJPWF9FWFRFTlNJT05TKQpAQCAtMzQxNSw3ICszNDE1LDcgQEAgdm9pZCBXZWJQYWdlOjpk
aWRTZWxlY3RJdGVtRnJvbUFjdGl2ZUNvbnRleHRNZW51KGNvbnN0IFdlYkNvbnRleHRNZW51SXRl
bURhdGEmIGkKICAgICAgICAgcmV0dXJuOwogCiAgICAgbV9jb250ZXh0TWVudS0+aXRlbVNlbGVj
dGVkKGl0ZW0pOwotICAgIG1fY29udGV4dE1lbnUgPSAwOworICAgIG1fY29udGV4dE1lbnUgPSBu
dWxscHRyOwogfQogI2VuZGlmCiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nl
c3MvV2ViUGFnZS9pb3MvV2ViUGFnZUlPUy5tbSBiL1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3Mv
V2ViUGFnZS9pb3MvV2ViUGFnZUlPUy5tbQppbmRleCAyM2RlODNlZmFkNjg5NDYyNDc1NjBmODEx
ZDA4OGNkMjk3NTJhNmE3Li45ZjRjZWM3MjMxZGQ0NjI3MTU2M2Q1MmI2YTRlMmI5ZDMyNzg4N2M2
IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL1dlYlBhZ2UvaW9zL1dlYlBh
Z2VJT1MubW0KKysrIGIvU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9XZWJQYWdlL2lvcy9XZWJQ
YWdlSU9TLm1tCkBAIC0xOTc4LDcgKzE5NzgsNyBAQCB2b2lkIFdlYlBhZ2U6OnN5bmNBcHBseUF1
dG9jb3JyZWN0aW9uKGNvbnN0IFN0cmluZyYgY29ycmVjdGlvbiwgY29uc3QgU3RyaW5nJiBvcgog
ICAgICAgICB3aGlsZSAodGV4dEZvclJhbmdlLmxlbmd0aCgpICYmIHRleHRGb3JSYW5nZS5sZW5n
dGgoKSA+IG9yaWdpbmFsVGV4dC5sZW5ndGgoKSAmJiBsb29wQ291bnQgPCBtYXhQb3NpdGlvbnNB
dHRlbXB0cykgewogICAgICAgICAgICAgcG9zaXRpb24gPSBwb3NpdGlvbi5uZXh0KCk7CiAgICAg
ICAgICAgICBpZiAocG9zaXRpb24uaXNOb3ROdWxsKCkgJiYgcG9zaXRpb24gPj0gZnJhbWUuc2Vs
ZWN0aW9uKCkuc2VsZWN0aW9uKCkuc3RhcnQoKSkKLSAgICAgICAgICAgICAgICByYW5nZSA9IE5V
TEw7CisgICAgICAgICAgICAgICAgcmFuZ2UgPSBudWxscHRyOwogICAgICAgICAgICAgZWxzZQog
ICAgICAgICAgICAgICAgIHJhbmdlID0gUmFuZ2U6OmNyZWF0ZSgqZnJhbWUuZG9jdW1lbnQoKSwg
cG9zaXRpb24sIGZyYW1lLnNlbGVjdGlvbigpLnNlbGVjdGlvbigpLnN0YXJ0KCkpOwogICAgICAg
ICAgICAgdGV4dEZvclJhbmdlID0gKHJhbmdlKSA/IHBsYWluVGV4dFJlcGxhY2luZ05vQnJlYWtT
cGFjZShyYW5nZS5nZXQoKSkgOiBlbXB0eVN0cmluZygpOwpAQCAtMjQ1OCw3ICsyNDU4LDcgQEAg
dm9pZCBXZWJQYWdlOjplbGVtZW50RGlkQmx1cihXZWJDb3JlOjpOb2RlKiBub2RlKQogICAgICAg
ICAgICAgICAgIHNlbmQoTWVzc2FnZXM6OldlYlBhZ2VQcm94eTo6U3RvcEFzc2lzdGluZ05vZGUo
KSk7CiAgICAgICAgICAgICBtX2hhc1BlbmRpbmdCbHVyTm90aWZpY2F0aW9uID0gZmFsc2U7CiAg
ICAgICAgIH0pOwotICAgICAgICBtX2Fzc2lzdGVkTm9kZSA9IDA7CisgICAgICAgIG1fYXNzaXN0
ZWROb2RlID0gbnVsbHB0cjsKICAgICB9CiB9CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQy
L1dlYlByb2Nlc3MvV2ViUHJvY2Vzcy5jcHAgYi9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL1dl
YlByb2Nlc3MuY3BwCmluZGV4IGE5N2JjMjFhOTgxNTQ5YWNjZDdmZWRmYjI4MzNhZWM4NGVlZGQw
N2EuLmI0YzllMGVlODgxZmU3MzEwNWQzNWUxZjEwMjQ0NTFhM2EyYjkwZWEgMTAwNjQ0Ci0tLSBh
L1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvV2ViUHJvY2Vzcy5jcHAKKysrIGIvU291cmNlL1dl
YktpdDIvV2ViUHJvY2Vzcy9XZWJQcm9jZXNzLmNwcApAQCAtMTAzNCw3ICsxMDM0LDcgQEAgdm9p
ZCBXZWJQcm9jZXNzOjpuZXR3b3JrUHJvY2Vzc0Nvbm5lY3Rpb25DbG9zZWQoTmV0d29ya1Byb2Nl
c3NDb25uZWN0aW9uKiBjb25uZWMKICAgICBBU1NFUlQobV9uZXR3b3JrUHJvY2Vzc0Nvbm5lY3Rp
b24pOwogICAgIEFTU0VSVF9VTlVTRUQoY29ubmVjdGlvbiwgbV9uZXR3b3JrUHJvY2Vzc0Nvbm5l
Y3Rpb24gPT0gY29ubmVjdGlvbik7CiAKLSAgICBtX25ldHdvcmtQcm9jZXNzQ29ubmVjdGlvbiA9
IDA7CisgICAgbV9uZXR3b3JrUHJvY2Vzc0Nvbm5lY3Rpb24gPSBudWxscHRyOwogICAgIAogICAg
IG1fd2ViUmVzb3VyY2VMb2FkU2NoZWR1bGVyLT5uZXR3b3JrUHJvY2Vzc0NyYXNoZWQoKTsKIH0K
QEAgLTEwNTEsNyArMTA1MSw3IEBAIHZvaWQgV2ViUHJvY2Vzczo6d2ViVG9EYXRhYmFzZVByb2Nl
c3NDb25uZWN0aW9uQ2xvc2VkKFdlYlRvRGF0YWJhc2VQcm9jZXNzQ29ubmVjCiAgICAgQVNTRVJU
KG1fd2ViVG9EYXRhYmFzZVByb2Nlc3NDb25uZWN0aW9uKTsKICAgICBBU1NFUlQobV93ZWJUb0Rh
dGFiYXNlUHJvY2Vzc0Nvbm5lY3Rpb24gPT0gY29ubmVjdGlvbik7CiAKLSAgICBtX3dlYlRvRGF0
YWJhc2VQcm9jZXNzQ29ubmVjdGlvbiA9IDA7CisgICAgbV93ZWJUb0RhdGFiYXNlUHJvY2Vzc0Nv
bm5lY3Rpb24gPSBudWxscHRyOwogfQogCiBXZWJUb0RhdGFiYXNlUHJvY2Vzc0Nvbm5lY3Rpb24q
IFdlYlByb2Nlc3M6OndlYlRvRGF0YWJhc2VQcm9jZXNzQ29ubmVjdGlvbigpCmRpZmYgLS1naXQg
YS9Ub29scy9DaGFuZ2VMb2cgYi9Ub29scy9DaGFuZ2VMb2cKaW5kZXggNjBmY2RhOTU1YWMxM2Q0
YmUwMmE2MTdkYjlmNjZhZWUxNzk4NGRjZC4uZWNlMjM0OTVmYWZkYjgzNTZhMGM2YmI5ZDViNTk1
NjhlYzFjODM4MSAxMDA2NDQKLS0tIGEvVG9vbHMvQ2hhbmdlTG9nCisrKyBiL1Rvb2xzL0NoYW5n
ZUxvZwpAQCAtMSwzICsxLDEyIEBACisyMDE1LTA3LTAzICBDaHJpcyBEdW1leiAgPGNkdW1lekBh
cHBsZS5jb20+CisKKyAgICAgICAgRHJvcCBSZWZQdHI6OmNsZWFyKCkgbWV0aG9kCisgICAgICAg
IGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0xNDY1NTYKKworICAgICAg
ICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICBEcm9wIFJlZlB0cjo6Y2xl
YXIoKSBtZXRob2QgaW4gZmF2b3Igb2YgIj0gbnVsbHB0cjsiIHBhdHRlcm4uCisKIDIwMTUtMDct
MDIgIERhbmllbCBCYXRlcyAgPGRhYmF0ZXNAYXBwbGUuY29tPgogCiAgICAgICAgIFtpT1NdIEFk
ZCBXZWJLaXRTeXN0ZW1JbnRlcmZhY2UgZm9yIGlPUyA4LjQKZGlmZiAtLWdpdCBhL1Rvb2xzL0R1
bXBSZW5kZXJUcmVlL21hYy9EdW1wUmVuZGVyVHJlZS5tbSBiL1Rvb2xzL0R1bXBSZW5kZXJUcmVl
L21hYy9EdW1wUmVuZGVyVHJlZS5tbQppbmRleCBiY2NkNGE5MTEyZTY3MmMxY2MyYjJkOTMwZmYw
YTNlZTAzYjAzZTA2Li4yNzZkZjhiODkyZWM1MjdhNzQ2YmYzZmE2ZGRjNjRlYWQzNzc3YzE1IDEw
MDY0NAotLS0gYS9Ub29scy9EdW1wUmVuZGVyVHJlZS9tYWMvRHVtcFJlbmRlclRyZWUubW0KKysr
IGIvVG9vbHMvRHVtcFJlbmRlclRyZWUvbWFjL0R1bXBSZW5kZXJUcmVlLm1tCkBAIC0yMDY0LDcg
KzIwNjQsNyBAQCBzdGF0aWMgdm9pZCBydW5UZXN0KGNvbnN0IHN0cmluZyYgaW5wdXRMaW5lKQog
ICAgIEFTU0VSVChDRkFycmF5R2V0Q291bnQob3BlbldpbmRvd3NSZWYpID09IDEpOwogICAgIEFT
U0VSVChDRkFycmF5R2V0VmFsdWVBdEluZGV4KG9wZW5XaW5kb3dzUmVmLCAwKSA9PSBbW21haW5G
cmFtZSB3ZWJWaWV3XSB3aW5kb3ddKTsKIAotICAgIGdUZXN0UnVubmVyLmNsZWFyKCk7CisgICAg
Z1Rlc3RSdW5uZXIgPSBudWxscHRyOwogCiAgICAgaWYgKGlnbm9yZVdlYkNvcmVOb2RlTGVha3Mp
CiAgICAgICAgIFtXZWJDb3JlU3RhdGlzdGljcyBzdG9wSWdub3JpbmdXZWJDb3JlTm9kZUxlYWtz
XTsKZGlmZiAtLWdpdCBhL1Rvb2xzL0R1bXBSZW5kZXJUcmVlL3dpbi9EdW1wUmVuZGVyVHJlZS5j
cHAgYi9Ub29scy9EdW1wUmVuZGVyVHJlZS93aW4vRHVtcFJlbmRlclRyZWUuY3BwCmluZGV4IGQ5
ODZjYmZkMzczNDAyNDY2ZjQwYjhlNjVhNDA0NjliZWNlMGE4ZGMuLmM4NDM1NDcyM2NiYTk1ZjRh
MTVhNDE2MDc2MzI5M2JkNjc2NjhmMjkgMTAwNjQ0Ci0tLSBhL1Rvb2xzL0R1bXBSZW5kZXJUcmVl
L3dpbi9EdW1wUmVuZGVyVHJlZS5jcHAKKysrIGIvVG9vbHMvRHVtcFJlbmRlclRyZWUvd2luL0R1
bXBSZW5kZXJUcmVlLmNwcApAQCAtMTE4Myw3ICsxMTgzLDcgQEAgc3RhdGljIHZvaWQgcnVuVGVz
dChjb25zdCBzdHJpbmcmIGlucHV0TGluZSkKIAogZXhpdDoKICAgICByZW1vdmVGb250RmFsbGJh
Y2tJZlByZXNlbnQoZmFsbGJhY2tQYXRoKTsKLSAgICA6OmdUZXN0UnVubmVyLmNsZWFyKCk7Cisg
ICAgOjpnVGVzdFJ1bm5lciA9IG51bGxwdHI7CiAKICAgICBmcHV0cygiI0VPRlxuIiwgc3RkZXJy
KTsKICAgICBmZmx1c2goc3RkZXJyKTsKZGlmZiAtLWdpdCBhL1Rvb2xzL1Rlc3RXZWJLaXRBUEkv
VGVzdHMvV1RGL1JlZlB0ci5jcHAgYi9Ub29scy9UZXN0V2ViS2l0QVBJL1Rlc3RzL1dURi9SZWZQ
dHIuY3BwCmluZGV4IGZjOTIyNDY3Mjc4NDY0MWQxZDM3NDljMjA3OWUxNWJiZDNlODcyNmMuLmI3
MjZkN2RkZjAzY2MyZmQ2YTIwZTE0ZDliNDAyM2NmMjZhN2Q0MzggMTAwNjQ0Ci0tLSBhL1Rvb2xz
L1Rlc3RXZWJLaXRBUEkvVGVzdHMvV1RGL1JlZlB0ci5jcHAKKysrIGIvVG9vbHMvVGVzdFdlYktp
dEFQSS9UZXN0cy9XVEYvUmVmUHRyLmNwcApAQCAtMTAyLDcgKzEwMiw3IEBAIFRFU1QoV1RGX1Jl
ZlB0ciwgQmFzaWMpCiAgICAgewogICAgICAgICBSZWZQdHI8UmVmTG9nZ2VyPiBwdHIoJmEpOwog
ICAgICAgICBBU1NFUlRfRVEoJmEsIHB0ci5nZXQoKSk7Ci0gICAgICAgIHB0ci5jbGVhcigpOwor
ICAgICAgICBwdHIgPSBudWxscHRyOwogICAgICAgICBBU1NFUlRfRVEobnVsbHB0ciwgcHRyLmdl
dCgpKTsKICAgICB9CiAgICAgQVNTRVJUX1NUUkVRKCJyZWYoYSkgZGVyZWYoYSkgIiwgdGFrZUxv
Z1N0cigpLmNfc3RyKCkpOwo=
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>256129</attachid>
            <date>2015-07-03 20:13:58 -0700</date>
            <delta_ts>2015-07-03 20:36:23 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-146556-20150703201302.patch</filename>
            <type>text/plain</type>
            <size>181337</size>
            <attacher name="Chris Dumez">cdumez</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTg2MjcxCmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlw
dENvcmUvQ2hhbmdlTG9nIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL0NoYW5nZUxvZwppbmRleCA3
NThjNmEzYWY4NTAzMTIzOGRiZjUzY2ZjMjg4NTc5ODM0OGUzYTJiLi4xMDE2ZTQ4ODM0ODAxMjg3
MDYxYjUxMzZjNmU4MzkxZWE4NGQxMzk2IDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENv
cmUvQ2hhbmdlTG9nCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9DaGFuZ2VMb2cKQEAgLTEs
MyArMSwxMiBAQAorMjAxNS0wNy0wMyAgQ2hyaXMgRHVtZXogIDxjZHVtZXpAYXBwbGUuY29tPgor
CisgICAgICAgIERyb3AgUmVmUHRyOjpjbGVhcigpIG1ldGhvZAorICAgICAgICBodHRwczovL2J1
Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTQ2NTU2CisKKyAgICAgICAgUmV2aWV3ZWQg
YnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgRHJvcCBSZWZQdHI6OmNsZWFyKCkgbWV0aG9k
IGluIGZhdm9yIG9mICI9IG51bGxwdHI7IiBwYXR0ZXJuLgorCiAyMDE1LTA3LTAzICBEYW4gQmVy
bnN0ZWluICA8bWl0ekBhcHBsZS5jb20+CiAKICAgICAgICAgW1hjb2RlXSBVcGRhdGUgc29tZSBi
dWlsZCBzZXR0aW5ncyBhcyByZWNvbW1lbmRlZCBieSBYY29kZSA3CmRpZmYgLS1naXQgYS9Tb3Vy
Y2UvV1RGL0NoYW5nZUxvZyBiL1NvdXJjZS9XVEYvQ2hhbmdlTG9nCmluZGV4IDcxMDIyNmE3ZTZj
Nzg3NjQ2YWZhMDllN2ViYmNlZDA4ZDg1M2I0N2MuLjlhNDkxMmEwMDJkYjcwYmUxMTk5M2UxNTcw
YzU0YmIzMjQ4MDBjYjggMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XVEYvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XVEYvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMTYgQEAKKzIwMTUtMDctMDMgIENocmlzIER1
bWV6ICA8Y2R1bWV6QGFwcGxlLmNvbT4KKworICAgICAgICBEcm9wIFJlZlB0cjo6Y2xlYXIoKSBt
ZXRob2QKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTE0
NjU1NgorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIERy
b3AgUmVmUHRyOjpjbGVhcigpIG1ldGhvZCBpbiBmYXZvciBvZiAiPSBudWxscHRyOyIgcGF0dGVy
bi4KKyAgICAgICAgQWxzbyBtYWRlIHRoZSAiPSBudWxscHRyOyIgcGF0dGVybiBhcyBlZmZpY2ll
bnQgYXMgY2xlYXIoKQorICAgICAgICBieSBwcm92aWRpbmcgYSBvcGVyYXRvcj0obnVsbHB0cl90
KSBvdmVybG9hZC4gTG9jYWwgbWljcm8tCisgICAgICAgIGJlbmNobWFya2luZyBzaG93ZWQgdGhh
dCAiPSBudWxscHRyOyIgdXNlZCB0byBiZSB+MS43JSBzbG93ZXIKKyAgICAgICAgdGhhbiBjbGVh
cigpLgorCiAyMDE1LTA3LTAzICBEYW4gQmVybnN0ZWluICA8bWl0ekBhcHBsZS5jb20+CiAKICAg
ICAgICAgW1hjb2RlXSBVcGRhdGUgc29tZSBidWlsZCBzZXR0aW5ncyBhcyByZWNvbW1lbmRlZCBi
eSBYY29kZSA3CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cgYi9Tb3VyY2Uv
V2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggY2ZhNDExOWI1YWM2NmMxMDk1YjRmMzY5MDZmYjliYWQ5
YTA4MmRjNy4uNzkzMzE4N2M3YzIxYTNhMzhmYjZhMWUyZWMzN2JmNjZhZGFiYzdlYiAxMDA2NDQK
LS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1NvdXJjZS9XZWJDb3JlL0NoYW5n
ZUxvZwpAQCAtMSwzICsxLDIzMiBAQAorMjAxNS0wNy0wMyAgQ2hyaXMgRHVtZXogIDxjZHVtZXpA
YXBwbGUuY29tPgorCisgICAgICAgIERyb3AgUmVmUHRyOjpjbGVhcigpIG1ldGhvZAorICAgICAg
ICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTQ2NTU2CisKKyAgICAg
ICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgRHJvcCBSZWZQdHI6OmNs
ZWFyKCkgbWV0aG9kIGluIGZhdm9yIG9mICI9IG51bGxwdHI7IiBwYXR0ZXJuLgorCisyMDE1LTA3
LTAyICBDaHJpcyBEdW1leiAgPGNkdW1lekBhcHBsZS5jb20+CisKKyAgICAgICAgRHJvcCBSZWZQ
dHI6OmNsZWFyKCkgbWV0aG9kCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3df
YnVnLmNnaT9pZD0xNDY1NTYKKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4K
KworICAgICAgICAqIE1vZHVsZXMvaW5kZXhlZGRiL0lEQkN1cnNvci5jcHA6CisgICAgICAgIChX
ZWJDb3JlOjpJREJDdXJzb3I6OmNsb3NlKToKKyAgICAgICAgKiBNb2R1bGVzL2luZGV4ZWRkYi9J
REJEYXRhYmFzZUJhY2tlbmQuY3BwOgorICAgICAgICAoV2ViQ29yZTo6SURCRGF0YWJhc2VCYWNr
ZW5kOjp0cmFuc2FjdGlvbkZpbmlzaGVkKToKKyAgICAgICAgKiBNb2R1bGVzL2luZGV4ZWRkYi9J
REJPYmplY3RTdG9yZS5jcHA6CisgICAgICAgICogTW9kdWxlcy9pbmRleGVkZGIvSURCT3BlbkRC
UmVxdWVzdC5jcHA6CisgICAgICAgIChXZWJDb3JlOjpJREJPcGVuREJSZXF1ZXN0OjpkaXNwYXRj
aEV2ZW50KToKKyAgICAgICAgKiBNb2R1bGVzL2luZGV4ZWRkYi9JREJSZXF1ZXN0LmNwcDoKKyAg
ICAgICAgKFdlYkNvcmU6OklEQlJlcXVlc3Q6OmFib3J0KToKKyAgICAgICAgKFdlYkNvcmU6OklE
QlJlcXVlc3Q6OnNldFBlbmRpbmdDdXJzb3IpOgorICAgICAgICAoV2ViQ29yZTo6SURCUmVxdWVz
dDo6b25FcnJvcik6CisgICAgICAgIChXZWJDb3JlOjpJREJSZXF1ZXN0OjpvblN1Y2Nlc3NJbnRl
cm5hbCk6CisgICAgICAgIChXZWJDb3JlOjpJREJSZXF1ZXN0Ojp0cmFuc2FjdGlvbkRpZEZpbmlz
aEFuZERpc3BhdGNoKToKKyAgICAgICAgKiBNb2R1bGVzL2luZGV4ZWRkYi9JREJUcmFuc2FjdGlv
bi5jcHA6CisgICAgICAgIChXZWJDb3JlOjpJREJUcmFuc2FjdGlvbjo6T3BlbkN1cnNvck5vdGlm
aWVyOjpjdXJzb3JGaW5pc2hlZCk6CisgICAgICAgICogTW9kdWxlcy9tZWRpYXNvdXJjZS9NZWRp
YVNvdXJjZS5jcHA6CisgICAgICAgIChXZWJDb3JlOjpNZWRpYVNvdXJjZTo6c2V0UmVhZHlTdGF0
ZSk6CisgICAgICAgIChXZWJDb3JlOjpNZWRpYVNvdXJjZTo6c3RvcCk6CisgICAgICAgICogTW9k
dWxlcy9tZWRpYXN0cmVhbS9SVENTZXNzaW9uRGVzY3JpcHRpb25SZXF1ZXN0SW1wbC5jcHA6Cisg
ICAgICAgIChXZWJDb3JlOjpSVENTZXNzaW9uRGVzY3JpcHRpb25SZXF1ZXN0SW1wbDo6Y2xlYXIp
OgorICAgICAgICAqIE1vZHVsZXMvbWVkaWFzdHJlYW0vUlRDU3RhdHNSZXF1ZXN0SW1wbC5jcHA6
CisgICAgICAgIChXZWJDb3JlOjpSVENTdGF0c1JlcXVlc3RJbXBsOjpjbGVhcik6CisgICAgICAg
ICogTW9kdWxlcy9tZWRpYXN0cmVhbS9SVENWb2lkUmVxdWVzdEltcGwuY3BwOgorICAgICAgICAo
V2ViQ29yZTo6UlRDVm9pZFJlcXVlc3RJbXBsOjpjbGVhcik6CisgICAgICAgICogTW9kdWxlcy93
ZWJhdWRpby9BdWRpb0NvbnRleHQuY3BwOgorICAgICAgICAoV2ViQ29yZTo6QXVkaW9Db250ZXh0
OjpjbGVhcik6CisgICAgICAgICogTW9kdWxlcy93ZWJkYXRhYmFzZS9TUUxUcmFuc2FjdGlvbkJh
Y2tlbmQuY3BwOgorICAgICAgICAoV2ViQ29yZTo6U1FMVHJhbnNhY3Rpb25CYWNrZW5kOjpyZWxl
YXNlT3JpZ2luTG9ja0lmTmVlZGVkKToKKyAgICAgICAgKiBNb2R1bGVzL3dlYnNvY2tldHMvV29y
a2VyVGhyZWFkYWJsZVdlYlNvY2tldENoYW5uZWwuY3BwOgorICAgICAgICAoV2ViQ29yZTo6V29y
a2VyVGhyZWFkYWJsZVdlYlNvY2tldENoYW5uZWw6OmRpc2Nvbm5lY3QpOgorICAgICAgICAqIGJp
bmRpbmdzL2pzL1dlYkNvcmVKU0NsaWVudERhdGEuaDoKKyAgICAgICAgKFdlYkNvcmU6OldlYkNv
cmVKU0NsaWVudERhdGE6On5XZWJDb3JlSlNDbGllbnREYXRhKToKKyAgICAgICAgKiBiaW5kaW5n
cy9qcy9Xb3JrZXJTY3JpcHRDb250cm9sbGVyLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6Oldvcmtl
clNjcmlwdENvbnRyb2xsZXI6On5Xb3JrZXJTY3JpcHRDb250cm9sbGVyKToKKyAgICAgICAgKiBj
b250ZW50ZXh0ZW5zaW9ucy9Db250ZW50RXh0ZW5zaW9uUGFyc2VyLmNwcDoKKyAgICAgICAgKFdl
YkNvcmU6OkNvbnRlbnRFeHRlbnNpb25zOjpwYXJzZVJ1bGVMaXN0KToKKyAgICAgICAgKiBjc3Mv
Q1NTUGFyc2VyLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OkNTU1BhcnNlcjo6cGFyc2VGaWxsUG9z
aXRpb24pOgorICAgICAgICAoV2ViQ29yZTo6Q1NTUGFyc2VyOjpwYXJzZTJWYWx1ZXNGaWxsUG9z
aXRpb24pOgorICAgICAgICAoV2ViQ29yZTo6Q1NTUGFyc2VyOjpwb3BSdWxlRGF0YSk6CisgICAg
ICAgIChXZWJDb3JlOjpDU1NQYXJzZXI6Om1hcmtSdWxlQm9keVN0YXJ0KToKKyAgICAgICAgKiBk
b20vRG9jdW1lbnQuY3BwOgorICAgICAgICAoV2ViQ29yZTo6RG9jdW1lbnQ6OmRldGFjaFBhcnNl
cik6CisgICAgICAgIChXZWJDb3JlOjpEb2N1bWVudDo6Y2xlYXJTY3JpcHRlZEFuaW1hdGlvbkNv
bnRyb2xsZXIpOgorICAgICAgICAoV2ViQ29yZTo6RG9jdW1lbnQ6OnVwZGF0ZUhvdmVyQWN0aXZl
U3RhdGUpOgorICAgICAgICAqIGRvbS9Eb2N1bWVudE1hcmtlci5oOgorICAgICAgICAoV2ViQ29y
ZTo6RG9jdW1lbnRNYXJrZXI6OmNsZWFyRGV0YWlscyk6CisgICAgICAgICogZG9tL0VsZW1lbnQu
Y3BwOgorICAgICAgICAoV2ViQ29yZTo6RWxlbWVudDo6Y2xvbmVBdHRyaWJ1dGVzRnJvbUVsZW1l
bnQpOgorICAgICAgICAqIGRvbS9Ob2RlSXRlcmF0b3IuY3BwOgorICAgICAgICAoV2ViQ29yZTo6
Tm9kZUl0ZXJhdG9yOjpOb2RlUG9pbnRlcjo6Y2xlYXIpOgorICAgICAgICAoV2ViQ29yZTo6Tm9k
ZUl0ZXJhdG9yOjpkZXRhY2gpOgorICAgICAgICAqIGRvbS9Qb3NpdGlvbi5oOgorICAgICAgICAo
V2ViQ29yZTo6UG9zaXRpb246OmNsZWFyKToKKyAgICAgICAgKiBkb20vUmFuZ2VCb3VuZGFyeVBv
aW50Lmg6CisgICAgICAgIChXZWJDb3JlOjpSYW5nZUJvdW5kYXJ5UG9pbnQ6OmNsZWFyKToKKyAg
ICAgICAgKiBkb20vU3BhY2VTcGxpdFN0cmluZy5oOgorICAgICAgICAoV2ViQ29yZTo6U3BhY2VT
cGxpdFN0cmluZzo6Y2xlYXIpOgorICAgICAgICAqIGRvbS9TdHlsZWRFbGVtZW50LmNwcDoKKyAg
ICAgICAgKFdlYkNvcmU6OlN0eWxlZEVsZW1lbnQ6OnNldElubGluZVN0eWxlRnJvbVN0cmluZyk6
CisgICAgICAgIChXZWJDb3JlOjpTdHlsZWRFbGVtZW50OjpzdHlsZUF0dHJpYnV0ZUNoYW5nZWQp
OgorICAgICAgICAqIGVkaXRpbmcvQWx0ZXJuYXRpdmVUZXh0Q29udHJvbGxlci5jcHA6CisgICAg
ICAgIChXZWJDb3JlOjpBbHRlcm5hdGl2ZVRleHRDb250cm9sbGVyOjpzdGFydEFsdGVybmF0aXZl
VGV4dFVJVGltZXIpOgorICAgICAgICAoV2ViQ29yZTo6QWx0ZXJuYXRpdmVUZXh0Q29udHJvbGxl
cjo6c3RvcEFsdGVybmF0aXZlVGV4dFVJVGltZXIpOgorICAgICAgICAoV2ViQ29yZTo6QWx0ZXJu
YXRpdmVUZXh0Q29udHJvbGxlcjo6YXBwbHlQZW5kaW5nQ29ycmVjdGlvbik6CisgICAgICAgIChX
ZWJDb3JlOjpBbHRlcm5hdGl2ZVRleHRDb250cm9sbGVyOjp0aW1lckZpcmVkKToKKyAgICAgICAg
KFdlYkNvcmU6OkFsdGVybmF0aXZlVGV4dENvbnRyb2xsZXI6OmhhbmRsZUFsdGVybmF0aXZlVGV4
dFVJUmVzdWx0KToKKyAgICAgICAgKiBlZGl0aW5nL0VkaXRpbmdTdHlsZS5jcHA6CisgICAgICAg
IChXZWJDb3JlOjpFZGl0aW5nU3R5bGU6OmNsZWFyKToKKyAgICAgICAgKiBlZGl0aW5nL0VkaXRv
ci5jcHA6CisgICAgICAgIChXZWJDb3JlOjpFZGl0b3I6OmNsZWFyTGFzdEVkaXRDb21tYW5kKToK
KyAgICAgICAgKiBlZGl0aW5nL0ZyYW1lU2VsZWN0aW9uLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6
OkZyYW1lU2VsZWN0aW9uOjpwcmVwYXJlRm9yRGVzdHJ1Y3Rpb24pOgorICAgICAgICAqIGVkaXRp
bmcvRnJhbWVTZWxlY3Rpb24uaDoKKyAgICAgICAgKFdlYkNvcmU6OkZyYW1lU2VsZWN0aW9uOjpj
bGVhclR5cGluZ1N0eWxlKToKKyAgICAgICAgKiBlZGl0aW5nL1NwZWxsQ2hlY2tlci5jcHA6Cisg
ICAgICAgIChXZWJDb3JlOjpTcGVsbENoZWNrZXI6OmRpZENoZWNrKToKKyAgICAgICAgKiBodG1s
L0Jhc2VDaG9vc2VyT25seURhdGVBbmRUaW1lSW5wdXRUeXBlLmNwcDoKKyAgICAgICAgKFdlYkNv
cmU6OkJhc2VDaG9vc2VyT25seURhdGVBbmRUaW1lSW5wdXRUeXBlOjpkaWRFbmRDaG9vc2VyKToK
KyAgICAgICAgKiBodG1sL0ZpbGVJbnB1dFR5cGUuY3BwOgorICAgICAgICAoV2ViQ29yZTo6Rmls
ZUlucHV0VHlwZTo6c2V0VmFsdWUpOgorICAgICAgICAqIGh0bWwvSFRNTENhbnZhc0VsZW1lbnQu
Y3BwOgorICAgICAgICAoV2ViQ29yZTo6SFRNTENhbnZhc0VsZW1lbnQ6OmNsZWFyUHJlc2VudGF0
aW9uQ29weSk6CisgICAgICAgIChXZWJDb3JlOjpIVE1MQ2FudmFzRWxlbWVudDo6Y2xlYXJDb3Bp
ZWRJbWFnZSk6CisgICAgICAgICogaHRtbC9IVE1MUGx1Z0luRWxlbWVudC5jcHA6CisgICAgICAg
IChXZWJDb3JlOjpIVE1MUGx1Z0luRWxlbWVudDo6d2lsbERldGFjaFJlbmRlcmVycyk6CisgICAg
ICAgIChXZWJDb3JlOjpIVE1MUGx1Z0luRWxlbWVudDo6cmVzZXRJbnN0YW5jZSk6CisgICAgICAg
ICogaHRtbC9UZXh0RmllbGRJbnB1dFR5cGUuY3BwOgorICAgICAgICAoV2ViQ29yZTo6VGV4dEZp
ZWxkSW5wdXRUeXBlOjp1cGRhdGVQbGFjZWhvbGRlclRleHQpOgorICAgICAgICAqIGh0bWwvY2Fu
dmFzL1dlYkdMUmVuZGVyaW5nQ29udGV4dEJhc2UuY3BwOgorICAgICAgICAoV2ViQ29yZTo6V2Vi
R0xSZW5kZXJpbmdDb250ZXh0QmFzZTo6ZGVzdHJveUdyYXBoaWNzQ29udGV4dDNEKToKKyAgICAg
ICAgKiBpbnNwZWN0b3IvSW5zcGVjdG9yQXBwbGljYXRpb25DYWNoZUFnZW50LmNwcDoKKyAgICAg
ICAgKFdlYkNvcmU6Okluc3BlY3RvckFwcGxpY2F0aW9uQ2FjaGVBZ2VudDo6d2lsbERlc3Ryb3lG
cm9udGVuZEFuZEJhY2tlbmQpOgorICAgICAgICAqIGluc3BlY3Rvci9JbnNwZWN0b3JDU1NBZ2Vu
dC5jcHA6CisgICAgICAgIChXZWJDb3JlOjpJbnNwZWN0b3JDU1NBZ2VudDo6d2lsbERlc3Ryb3lG
cm9udGVuZEFuZEJhY2tlbmQpOgorICAgICAgICAqIGluc3BlY3Rvci9JbnNwZWN0b3JDb250cm9s
bGVyLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6Okluc3BlY3RvckNvbnRyb2xsZXI6OmRpc2Nvbm5l
Y3RGcm9udGVuZCk6CisgICAgICAgICogaW5zcGVjdG9yL0luc3BlY3RvckRPTUFnZW50LmNwcDoK
KyAgICAgICAgKFdlYkNvcmU6Okluc3BlY3RvckRPTUFnZW50Ojp3aWxsRGVzdHJveUZyb250ZW5k
QW5kQmFja2VuZCk6CisgICAgICAgICogaW5zcGVjdG9yL0luc3BlY3RvckRPTURlYnVnZ2VyQWdl
bnQuY3BwOgorICAgICAgICAoV2ViQ29yZTo6SW5zcGVjdG9yRE9NRGVidWdnZXJBZ2VudDo6d2ls
bERlc3Ryb3lGcm9udGVuZEFuZEJhY2tlbmQpOgorICAgICAgICAqIGluc3BlY3Rvci9JbnNwZWN0
b3JET01TdG9yYWdlQWdlbnQuY3BwOgorICAgICAgICAoV2ViQ29yZTo6SW5zcGVjdG9yRE9NU3Rv
cmFnZUFnZW50Ojp3aWxsRGVzdHJveUZyb250ZW5kQW5kQmFja2VuZCk6CisgICAgICAgICogaW5z
cGVjdG9yL0luc3BlY3RvckRhdGFiYXNlQWdlbnQuY3BwOgorICAgICAgICAoV2ViQ29yZTo6SW5z
cGVjdG9yRGF0YWJhc2VBZ2VudDo6d2lsbERlc3Ryb3lGcm9udGVuZEFuZEJhY2tlbmQpOgorICAg
ICAgICAqIGluc3BlY3Rvci9JbnNwZWN0b3JJbmRleGVkREJBZ2VudC5jcHA6CisgICAgICAgIChX
ZWJDb3JlOjpJbnNwZWN0b3JJbmRleGVkREJBZ2VudDo6d2lsbERlc3Ryb3lGcm9udGVuZEFuZEJh
Y2tlbmQpOgorICAgICAgICAqIGluc3BlY3Rvci9JbnNwZWN0b3JMYXllclRyZWVBZ2VudC5jcHA6
CisgICAgICAgIChXZWJDb3JlOjpJbnNwZWN0b3JMYXllclRyZWVBZ2VudDo6d2lsbERlc3Ryb3lG
cm9udGVuZEFuZEJhY2tlbmQpOgorICAgICAgICAqIGluc3BlY3Rvci9JbnNwZWN0b3JPdmVybGF5
LmNwcDoKKyAgICAgICAgKFdlYkNvcmU6Okluc3BlY3Rvck92ZXJsYXk6OmhpZGVIaWdobGlnaHQp
OgorICAgICAgICAoV2ViQ29yZTo6SW5zcGVjdG9yT3ZlcmxheTo6aGlnaGxpZ2h0Tm9kZUxpc3Qp
OgorICAgICAgICAoV2ViQ29yZTo6SW5zcGVjdG9yT3ZlcmxheTo6aGlnaGxpZ2h0Tm9kZSk6Cisg
ICAgICAgICogaW5zcGVjdG9yL0luc3BlY3RvclBhZ2VBZ2VudC5jcHA6CisgICAgICAgIChXZWJD
b3JlOjpJbnNwZWN0b3JQYWdlQWdlbnQ6OndpbGxEZXN0cm95RnJvbnRlbmRBbmRCYWNrZW5kKToK
KyAgICAgICAgKFdlYkNvcmU6Okluc3BlY3RvclBhZ2VBZ2VudDo6ZGlzYWJsZSk6CisgICAgICAg
ICogaW5zcGVjdG9yL0luc3BlY3RvclJlcGxheUFnZW50LmNwcDoKKyAgICAgICAgKFdlYkNvcmU6
Okluc3BlY3RvclJlcGxheUFnZW50Ojp3aWxsRGVzdHJveUZyb250ZW5kQW5kQmFja2VuZCk6Cisg
ICAgICAgICogaW5zcGVjdG9yL0luc3BlY3RvclJlc291cmNlQWdlbnQuY3BwOgorICAgICAgICAo
V2ViQ29yZTo6SW5zcGVjdG9yUmVzb3VyY2VBZ2VudDo6d2lsbERlc3Ryb3lGcm9udGVuZEFuZEJh
Y2tlbmQpOgorICAgICAgICAqIGluc3BlY3Rvci9JbnNwZWN0b3JTdHlsZVNoZWV0LmNwcDoKKyAg
ICAgICAgKFdlYkNvcmU6Okluc3BlY3RvclN0eWxlU2hlZXRGb3JJbmxpbmVTdHlsZTo6ZGlkTW9k
aWZ5RWxlbWVudEF0dHJpYnV0ZSk6CisgICAgICAgIChXZWJDb3JlOjpJbnNwZWN0b3JTdHlsZVNo
ZWV0Rm9ySW5saW5lU3R5bGU6OnNldFN0eWxlVGV4dCk6CisgICAgICAgIChXZWJDb3JlOjpJbnNw
ZWN0b3JTdHlsZVNoZWV0Rm9ySW5saW5lU3R5bGU6OmVuc3VyZVBhcnNlZERhdGFSZWFkeSk6Cisg
ICAgICAgICogaW5zcGVjdG9yL0luc3BlY3RvclRpbWVsaW5lQWdlbnQuY3BwOgorICAgICAgICAo
V2ViQ29yZTo6SW5zcGVjdG9yVGltZWxpbmVBZ2VudDo6d2lsbERlc3Ryb3lGcm9udGVuZEFuZEJh
Y2tlbmQpOgorICAgICAgICAqIGluc3BlY3Rvci9JbnNwZWN0b3JXb3JrZXJBZ2VudC5jcHA6Cisg
ICAgICAgIChXZWJDb3JlOjpJbnNwZWN0b3JXb3JrZXJBZ2VudDo6d2lsbERlc3Ryb3lGcm9udGVu
ZEFuZEJhY2tlbmQpOgorICAgICAgICAqIGluc3BlY3Rvci9QYWdlUnVudGltZUFnZW50LmNwcDoK
KyAgICAgICAgKFdlYkNvcmU6OlBhZ2VSdW50aW1lQWdlbnQ6OndpbGxEZXN0cm95RnJvbnRlbmRB
bmRCYWNrZW5kKToKKyAgICAgICAgKiBpbnNwZWN0b3IvV2ViSW5qZWN0ZWRTY3JpcHRNYW5hZ2Vy
LmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OldlYkluamVjdGVkU2NyaXB0TWFuYWdlcjo6ZGlzY29u
bmVjdCk6CisgICAgICAgICogaW5zcGVjdG9yL1dvcmtlckluc3BlY3RvckNvbnRyb2xsZXIuY3Bw
OgorICAgICAgICAoV2ViQ29yZTo6V29ya2VySW5zcGVjdG9yQ29udHJvbGxlcjo6ZGlzY29ubmVj
dEZyb250ZW5kKToKKyAgICAgICAgKiBpbnNwZWN0b3IvV29ya2VyUnVudGltZUFnZW50LmNwcDoK
KyAgICAgICAgKFdlYkNvcmU6OldvcmtlclJ1bnRpbWVBZ2VudDo6d2lsbERlc3Ryb3lGcm9udGVu
ZEFuZEJhY2tlbmQpOgorICAgICAgICAqIGxvYWRlci9GcmFtZUxvYWRlci5jcHA6CisgICAgICAg
IChXZWJDb3JlOjpGcmFtZUxvYWRlcjo6ZGlkQmVnaW5Eb2N1bWVudCk6CisgICAgICAgICogbG9h
ZGVyL2NhY2hlL0NhY2hlZENTU1N0eWxlU2hlZXQuY3BwOgorICAgICAgICAoV2ViQ29yZTo6Q2Fj
aGVkQ1NTU3R5bGVTaGVldDo6ZGVzdHJveURlY29kZWREYXRhKToKKyAgICAgICAgKFdlYkNvcmU6
OkNhY2hlZENTU1N0eWxlU2hlZXQ6OnJlc3RvcmVQYXJzZWRTdHlsZVNoZWV0KToKKyAgICAgICAg
KiBsb2FkZXIvY2FjaGUvQ2FjaGVkSW1hZ2UuY3BwOgorICAgICAgICAoV2ViQ29yZTo6Q2FjaGVk
SW1hZ2U6OmNsZWFySW1hZ2UpOgorICAgICAgICAqIGxvYWRlci9jYWNoZS9DYWNoZWRSYXdSZXNv
dXJjZS5jcHA6CisgICAgICAgIChXZWJDb3JlOjpDYWNoZWRSYXdSZXNvdXJjZTo6Y2xlYXIpOgor
ICAgICAgICAqIGxvYWRlci9jYWNoZS9DYWNoZWRSZXNvdXJjZS5jcHA6CisgICAgICAgIChXZWJD
b3JlOjpDYWNoZWRSZXNvdXJjZTo6ZXJyb3IpOgorICAgICAgICAqIGxvYWRlci9pY29uL0ljb25S
ZWNvcmQuY3BwOgorICAgICAgICAoV2ViQ29yZTo6SWNvblJlY29yZDo6c2V0SW1hZ2VEYXRhKToK
KyAgICAgICAgKiBwYWdlL0V2ZW50SGFuZGxlci5jcHA6CisgICAgICAgIChXZWJDb3JlOjpFdmVu
dEhhbmRsZXI6OmNsZWFyKToKKyAgICAgICAgKFdlYkNvcmU6OkV2ZW50SGFuZGxlcjo6aGFuZGxl
VG91Y2hFdmVudCk6CisgICAgICAgICogcGFnZS9QYWdlLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6
OlBhZ2U6OnJlZnJlc2hQbHVnaW5zKToKKyAgICAgICAgKiBwbGF0Zm9ybS9hdWRpby9tYWMvQ0FS
aW5nQnVmZmVyLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OkNBUmluZ0J1ZmZlcjo6ZGVhbGxvY2F0
ZSk6CisgICAgICAgICogcGxhdGZvcm0vZ3JhcGhpY3MvRm9udC5jcHA6CisgICAgICAgIChXZWJD
b3JlOjpGb250OjptYXRoRGF0YSk6CisgICAgICAgICogcGxhdGZvcm0vZ3JhcGhpY3MvRm9udENh
Y2hlLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OkZvbnRDYWNoZTo6Z2V0VmVydGljYWxEYXRhKToK
KyAgICAgICAgKiBwbGF0Zm9ybS9ncmFwaGljcy9HcmFwaGljc0NvbnRleHQuY3BwOgorICAgICAg
ICAoV2ViQ29yZTo6R3JhcGhpY3NDb250ZXh0OjpzZXRTdHJva2VDb2xvcik6CisgICAgICAgIChX
ZWJDb3JlOjpHcmFwaGljc0NvbnRleHQ6OnNldEZpbGxDb2xvcik6CisgICAgICAgIChXZWJDb3Jl
OjpHcmFwaGljc0NvbnRleHQ6OnNldFN0cm9rZVBhdHRlcm4pOgorICAgICAgICAoV2ViQ29yZTo6
R3JhcGhpY3NDb250ZXh0OjpzZXRGaWxsUGF0dGVybik6CisgICAgICAgIChXZWJDb3JlOjpHcmFw
aGljc0NvbnRleHQ6OnNldFN0cm9rZUdyYWRpZW50KToKKyAgICAgICAgKFdlYkNvcmU6OkdyYXBo
aWNzQ29udGV4dDo6c2V0RmlsbEdyYWRpZW50KToKKyAgICAgICAgKiBwbGF0Zm9ybS9ncmFwaGlj
cy9jYWlyby9CYWNraW5nU3RvcmVCYWNrZW5kQ2Fpcm9YMTEuY3BwOgorICAgICAgICAoV2ViQ29y
ZTo6QmFja2luZ1N0b3JlQmFja2VuZENhaXJvWDExOjp+QmFja2luZ1N0b3JlQmFja2VuZENhaXJv
WDExKToKKyAgICAgICAgKiBwbGF0Zm9ybS9ncmFwaGljcy9jYWlyby9CaXRtYXBJbWFnZUNhaXJv
LmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OkZyYW1lRGF0YTo6Y2xlYXIpOgorICAgICAgICAqIHBs
YXRmb3JtL2dyYXBoaWNzL2ZpbHRlcnMvRmlsdGVyRWZmZWN0LmNwcDoKKyAgICAgICAgKFdlYkNv
cmU6OkZpbHRlckVmZmVjdDo6Y2xlYXJSZXN1bHQpOgorICAgICAgICAoV2ViQ29yZTo6RmlsdGVy
RWZmZWN0Ojp0cmFuc2Zvcm1SZXN1bHRDb2xvclNwYWNlKToKKyAgICAgICAgKiBwbGF0Zm9ybS9n
cmFwaGljcy9nc3RyZWFtZXIvSW1hZ2VHU3RyZWFtZXJDYWlyby5jcHA6CisgICAgICAgIChJbWFn
ZUdTdHJlYW1lcjo6fkltYWdlR1N0cmVhbWVyKToKKyAgICAgICAgKiBwbGF0Zm9ybS9ncmFwaGlj
cy90ZXhtYXAvQml0bWFwVGV4dHVyZUdMLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OkJpdG1hcFRl
eHR1cmVHTDo6YXBwbHlGaWx0ZXJzKToKKyAgICAgICAgKiBwbGF0Zm9ybS9ncmFwaGljcy90ZXht
YXAvVGV4dHVyZU1hcHBlckdMLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OlRleHR1cmVNYXBwZXJH
TDo6YmluZERlZmF1bHRTdXJmYWNlKToKKyAgICAgICAgKiBwbGF0Zm9ybS9ncmFwaGljcy90ZXht
YXAvVGV4dHVyZU1hcHBlckxheWVyLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OlRleHR1cmVNYXBw
ZXJMYXllcjo6cGFpbnRXaXRoSW50ZXJtZWRpYXRlU3VyZmFjZSk6CisgICAgICAgICogcGxhdGZv
cm0vZ3JhcGhpY3MvdGV4bWFwL1RleHR1cmVNYXBwZXJUaWxlZEJhY2tpbmdTdG9yZS5jcHA6Cisg
ICAgICAgIChXZWJDb3JlOjpUZXh0dXJlTWFwcGVyVGlsZWRCYWNraW5nU3RvcmU6OnVwZGF0ZUNv
bnRlbnRzRnJvbUltYWdlSWZOZWVkZWQpOgorICAgICAgICAqIHBsYXRmb3JtL2dyYXBoaWNzL3Rl
eG1hcC9jb29yZGluYXRlZC9Db29yZGluYXRlZEdyYXBoaWNzTGF5ZXIuY3BwOgorICAgICAgICAo
V2ViQ29yZTo6Q29vcmRpbmF0ZWRHcmFwaGljc0xheWVyOjpyZWxlYXNlSW1hZ2VCYWNraW5nSWZO
ZWVkZWQpOgorICAgICAgICAqIHBsYXRmb3JtL2dyYXBoaWNzL3RleG1hcC9jb29yZGluYXRlZC9D
b29yZGluYXRlZEltYWdlQmFja2luZy5jcHA6CisgICAgICAgIChXZWJDb3JlOjpDb29yZGluYXRl
ZEltYWdlQmFja2luZzo6cmVsZWFzZVN1cmZhY2VJZk5lZWRlZCk6CisgICAgICAgICogcGxhdGZv
cm0vZ3RrL0dhbWVwYWRzR3RrLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OkdhbWVwYWRzR3RrOjp1
bnJlZ2lzdGVyRGV2aWNlKToKKyAgICAgICAgKiByZW5kZXJpbmcvSW5saW5lRmxvd0JveC5jcHA6
CisgICAgICAgIChXZWJDb3JlOjpJbmxpbmVGbG93Qm94Ojpjb21wdXRlT3ZlcmZsb3cpOgorICAg
ICAgICAqIHJlbmRlcmluZy9SZW5kZXJCb3guY3BwOgorICAgICAgICAoV2ViQ29yZTo6UmVuZGVy
Qm94OjpjbGVhck92ZXJmbG93KToKKyAgICAgICAgKiByZW5kZXJpbmcvUmVuZGVyQm94UmVnaW9u
SW5mby5oOgorICAgICAgICAoV2ViQ29yZTo6UmVuZGVyQm94UmVnaW9uSW5mbzo6Y2xlYXJPdmVy
Zmxvdyk6CisgICAgICAgICogcmVuZGVyaW5nL3N0eWxlL0ZpbGxMYXllci5oOgorICAgICAgICAo
V2ViQ29yZTo6RmlsbExheWVyOjpjbGVhck1hc2tJbWFnZSk6CisgICAgICAgIChXZWJDb3JlOjpG
aWxsTGF5ZXI6OmNsZWFySW1hZ2UpOgorICAgICAgICAqIHN2Zy9TVkdUUmVmRWxlbWVudC5jcHA6
CisgICAgICAgIChXZWJDb3JlOjpTVkdUUmVmVGFyZ2V0RXZlbnRMaXN0ZW5lcjo6ZGV0YWNoKToK
KyAgICAgICAgKiB0ZXN0aW5nL0ludGVybmFscy5jcHA6CisgICAgICAgIChXZWJDb3JlOjpJbnRl
cm5hbHM6OmNsb3NlRHVtbXlJbnNwZWN0b3JGcm9udGVuZCk6CisgICAgICAgICogd29ya2Vycy9X
b3JrZXJFdmVudFF1ZXVlLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OldvcmtlckV2ZW50UXVldWU6
OkV2ZW50RGlzcGF0Y2hlcjo6ZGlzcGF0Y2gpOgorICAgICAgICAoV2ViQ29yZTo6V29ya2VyRXZl
bnRRdWV1ZTo6RXZlbnREaXNwYXRjaGVyOjpjYW5jZWwpOgorICAgICAgICAqIHhtbC9YTUxIdHRw
UmVxdWVzdC5jcHA6CisgICAgICAgIChXZWJDb3JlOjpYTUxIdHRwUmVxdWVzdDo6cmVzcG9uc2VC
bG9iKToKKyAgICAgICAgKFdlYkNvcmU6OlhNTEh0dHBSZXF1ZXN0OjpyZXNwb25zZUFycmF5QnVm
ZmVyKToKKyAgICAgICAgKFdlYkNvcmU6OlhNTEh0dHBSZXF1ZXN0OjpjbGVhclJlc3BvbnNlQnVm
ZmVycyk6CisgICAgICAgICogeG1sL1hTTFRQcm9jZXNzb3IuY3BwOgorICAgICAgICAoV2ViQ29y
ZTo6WFNMVFByb2Nlc3Nvcjo6cmVzZXQpOgorCiAyMDE1LTA3LTAzICBEYW4gQmVybnN0ZWluICA8
bWl0ekBhcHBsZS5jb20+CiAKICAgICAgICAgVHJpZWQgdG8gZml4IHRoZSBpT1MgYnVpbGQuCmRp
ZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L0NoYW5nZUxvZyBiL1NvdXJjZS9XZWJLaXQvQ2hhbmdl
TG9nCmluZGV4IDczYWQ1MDA2MTlmNWZkMDliZDU1MTFjZTRmZTUzMjIyMTlkMmMyMmYuLjg2ODY4
MjE3Mjc1MDE5MmM2ZmZkNDMyNmMwOTg2ZTFkOGI5ODMzNGMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9X
ZWJLaXQvQ2hhbmdlTG9nCisrKyBiL1NvdXJjZS9XZWJLaXQvQ2hhbmdlTG9nCkBAIC0xLDMgKzEs
MTIgQEAKKzIwMTUtMDctMDMgIENocmlzIER1bWV6ICA8Y2R1bWV6QGFwcGxlLmNvbT4KKworICAg
ICAgICBEcm9wIFJlZlB0cjo6Y2xlYXIoKSBtZXRob2QKKyAgICAgICAgaHR0cHM6Ly9idWdzLndl
YmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTE0NjU1NgorCisgICAgICAgIFJldmlld2VkIGJ5IE5P
Qk9EWSAoT09QUyEpLgorCisgICAgICAgIERyb3AgUmVmUHRyOjpjbGVhcigpIG1ldGhvZCBpbiBm
YXZvciBvZiAiPSBudWxscHRyOyIgcGF0dGVybi4KKwogMjAxNS0wNy0wMyAgRGFuIEJlcm5zdGVp
biAgPG1pdHpAYXBwbGUuY29tPgogCiAgICAgICAgIFtYY29kZV0gVXBkYXRlIHNvbWUgYnVpbGQg
c2V0dGluZ3MgYXMgcmVjb21tZW5kZWQgYnkgWGNvZGUgNwpkaWZmIC0tZ2l0IGEvU291cmNlL1dl
YktpdC9tYWMvQ2hhbmdlTG9nIGIvU291cmNlL1dlYktpdC9tYWMvQ2hhbmdlTG9nCmluZGV4IGIx
YzA4YzQ3MmE2OTA1YzZiYzhlMmI5MTkzZmRiNTRkOGY5OGE0NDcuLmI5MTg0YzVjZWM4MGY4NWEx
MmFlMWI2YTYwODI1ZTc4YTQ0MmNkYWIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvbWFjL0No
YW5nZUxvZworKysgYi9Tb3VyY2UvV2ViS2l0L21hYy9DaGFuZ2VMb2cKQEAgLTEsMyArMSwxMiBA
QAorMjAxNS0wNy0wMyAgQ2hyaXMgRHVtZXogIDxjZHVtZXpAYXBwbGUuY29tPgorCisgICAgICAg
IERyb3AgUmVmUHRyOjpjbGVhcigpIG1ldGhvZAorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0
Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTQ2NTU2CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZ
IChPT1BTISkuCisKKyAgICAgICAgRHJvcCBSZWZQdHI6OmNsZWFyKCkgbWV0aG9kIGluIGZhdm9y
IG9mICI9IG51bGxwdHI7IiBwYXR0ZXJuLgorCiAyMDE1LTA3LTAzICBEYW4gQmVybnN0ZWluICA8
bWl0ekBhcHBsZS5jb20+CiAKICAgICAgICAgW1hjb2RlXSBVcGRhdGUgc29tZSBidWlsZCBzZXR0
aW5ncyBhcyByZWNvbW1lbmRlZCBieSBYY29kZSA3CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0
L3dpbi9DaGFuZ2VMb2cgYi9Tb3VyY2UvV2ViS2l0L3dpbi9DaGFuZ2VMb2cKaW5kZXggMTE0Mjg1
OGFjOTRiNTY2YzRiMGZjMzliYjg1Y2Q0ZWIwN2Q5OWVmZC4uNTYyYTEyYmY0NTgyMTEyN2E2YjE4
OWI0ZGU1YzY2M2Y2NmI3ZjllNiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC93aW4vQ2hhbmdl
TG9nCisrKyBiL1NvdXJjZS9XZWJLaXQvd2luL0NoYW5nZUxvZwpAQCAtMSwzICsxLDEyIEBACisy
MDE1LTA3LTAzICBDaHJpcyBEdW1leiAgPGNkdW1lekBhcHBsZS5jb20+CisKKyAgICAgICAgRHJv
cCBSZWZQdHI6OmNsZWFyKCkgbWV0aG9kCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3Jn
L3Nob3dfYnVnLmNnaT9pZD0xNDY1NTYKKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9P
UFMhKS4KKworICAgICAgICBEcm9wIFJlZlB0cjo6Y2xlYXIoKSBtZXRob2QgaW4gZmF2b3Igb2Yg
Ij0gbnVsbHB0cjsiIHBhdHRlcm4uCisKIDIwMTUtMDYtMzAgIFNpbW9uIEZyYXNlciAgPHNpbW9u
LmZyYXNlckBhcHBsZS5jb20+CiAKICAgICAgICAgRml4IE1hYyBhbmQgV2luZG93cyBidWlsZHMu
CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9DaGFuZ2VMb2cgYi9Tb3VyY2UvV2ViS2l0Mi9D
aGFuZ2VMb2cKaW5kZXggODE3MGFjODI1ZTEyY2Y0NTM3MjA3MzMxOTE2ZWU3Zjc1ZTRiNjljMi4u
OTMyYzRiNzI4N2VlOGZlMGEwNzYwZmQwZmE0NzdjOTY4OTEwOGEyYiAxMDA2NDQKLS0tIGEvU291
cmNlL1dlYktpdDIvQ2hhbmdlTG9nCisrKyBiL1NvdXJjZS9XZWJLaXQyL0NoYW5nZUxvZwpAQCAt
MSwzICsxLDEyIEBACisyMDE1LTA3LTAzICBDaHJpcyBEdW1leiAgPGNkdW1lekBhcHBsZS5jb20+
CisKKyAgICAgICAgRHJvcCBSZWZQdHI6OmNsZWFyKCkgbWV0aG9kCisgICAgICAgIGh0dHBzOi8v
YnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0xNDY1NTYKKworICAgICAgICBSZXZpZXdl
ZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICBEcm9wIFJlZlB0cjo6Y2xlYXIoKSBtZXRo
b2QgaW4gZmF2b3Igb2YgIj0gbnVsbHB0cjsiIHBhdHRlcm4uICAgICAgICAKKwogMjAxNS0wNy0w
MyAgRGFuIEJlcm5zdGVpbiAgPG1pdHpAYXBwbGUuY29tPgogCiAgICAgICAgIFtYY29kZV0gVXBk
YXRlIHNvbWUgYnVpbGQgc2V0dGluZ3MgYXMgcmVjb21tZW5kZWQgYnkgWGNvZGUgNwpkaWZmIC0t
Z2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL0FQSS9KU1ZhbHVlUmVmLmNwcCBiL1NvdXJjZS9K
YXZhU2NyaXB0Q29yZS9BUEkvSlNWYWx1ZVJlZi5jcHAKaW5kZXggNzU5YTY1YTljN2RlM2M1NjYx
OWFiNDc0NTQ4MzQ4Njg4ZGNjNDdjMS4uNTQ0MDVlMmFmNTk3YzI0ODIzNmRlZjc2OWU4YmJjNjAy
ODk3OWQyNiAxMDA2NDQKLS0tIGEvU291cmNlL0phdmFTY3JpcHRDb3JlL0FQSS9KU1ZhbHVlUmVm
LmNwcAorKysgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvQVBJL0pTVmFsdWVSZWYuY3BwCkBAIC00
MjIsNyArNDIyLDcgQEAgSlNTdHJpbmdSZWYgSlNWYWx1ZVRvU3RyaW5nQ29weShKU0NvbnRleHRS
ZWYgY3R4LCBKU1ZhbHVlUmVmIHZhbHVlLCBKU1ZhbHVlUmVmKgogICAgIAogICAgIFJlZlB0cjxP
cGFxdWVKU1N0cmluZz4gc3RyaW5nUmVmKE9wYXF1ZUpTU3RyaW5nOjpjcmVhdGUoanNWYWx1ZS50
b1N0cmluZyhleGVjKS0+dmFsdWUoZXhlYykpKTsKICAgICBpZiAoaGFuZGxlRXhjZXB0aW9uSWZO
ZWVkZWQoZXhlYywgZXhjZXB0aW9uKSA9PSBFeGNlcHRpb25TdGF0dXM6OkRpZFRocm93KQotICAg
ICAgICBzdHJpbmdSZWYuY2xlYXIoKTsKKyAgICAgICAgc3RyaW5nUmVmID0gbnVsbHB0cjsKICAg
ICByZXR1cm4gc3RyaW5nUmVmLnJlbGVhc2UoKS5sZWFrUmVmKCk7CiB9CiAKZGlmZiAtLWdpdCBh
L1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ieXRlY29kZS9DYWxsTGlua0luZm8uY3BwIGIvU291cmNl
L0phdmFTY3JpcHRDb3JlL2J5dGVjb2RlL0NhbGxMaW5rSW5mby5jcHAKaW5kZXggNzJhMGMyNDFk
ZmNjZDE2NWQ5MDMwZDVmYTg0ZWZiNjhmODFmNGIzOC4uZDkyMDA5ODc0YTkzODU3NzcyYzQzNjZm
NGQwMDliNTQ2YTMzYjlhYyAxMDA2NDQKLS0tIGEvU291cmNlL0phdmFTY3JpcHRDb3JlL2J5dGVj
b2RlL0NhbGxMaW5rSW5mby5jcHAKKysrIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL2J5dGVjb2Rl
L0NhbGxMaW5rSW5mby5jcHAKQEAgLTQzLDcgKzQzLDcgQEAgdm9pZCBDYWxsTGlua0luZm86OmNs
ZWFyU3R1YigpCiAgICAgICAgIHJldHVybjsKIAogICAgIG1fc3R1Yi0+Y2xlYXJDYWxsTm9kZXNG
b3IodGhpcyk7Ci0gICAgbV9zdHViLmNsZWFyKCk7CisgICAgbV9zdHViID0gbnVsbHB0cjsKIH0K
IAogdm9pZCBDYWxsTGlua0luZm86OnVubGluayhSZXBhdGNoQnVmZmVyJiByZXBhdGNoQnVmZmVy
KQpkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL2J5dGVjb2RlL1N0cnVjdHVyZVN0
dWJJbmZvLmggYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvYnl0ZWNvZGUvU3RydWN0dXJlU3R1Yklu
Zm8uaAppbmRleCBlYzhiNzljMWYyODUyNWJiNDg0OTVkZDFiZWM2ZjE5ZjE2MjU3NGVmLi5kNDAy
YWNlZTU3OTNiYjRmNzg2Njk1MTcxNjQxNDhlOGE3YTI3MWM4IDEwMDY0NAotLS0gYS9Tb3VyY2Uv
SmF2YVNjcmlwdENvcmUvYnl0ZWNvZGUvU3RydWN0dXJlU3R1YkluZm8uaAorKysgYi9Tb3VyY2Uv
SmF2YVNjcmlwdENvcmUvYnl0ZWNvZGUvU3RydWN0dXJlU3R1YkluZm8uaApAQCAtMTQ5LDggKzE0
OSw4IEBAIHN0cnVjdCBTdHJ1Y3R1cmVTdHViSW5mbyB7CiAgICAgewogICAgICAgICBkZXJlZigp
OwogICAgICAgICBhY2Nlc3NUeXBlID0gYWNjZXNzX3Vuc2V0OwotICAgICAgICBzdHViUm91dGlu
ZS5jbGVhcigpOwotICAgICAgICB3YXRjaHBvaW50cy5jbGVhcigpOworICAgICAgICBzdHViUm91
dGluZSA9IG51bGxwdHI7CisgICAgICAgIHdhdGNocG9pbnRzID0gbnVsbHB0cjsKICAgICB9CiAK
ICAgICB2b2lkIGRlcmVmKCk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvZGVi
dWdnZXIvRGVidWdnZXIuY3BwIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL2RlYnVnZ2VyL0RlYnVn
Z2VyLmNwcAppbmRleCA1NzQxMDY5MmUwMDgwMDc3OTc4YjM3ZWIxNjc3MDMyMzM1YzRiNGMyLi5i
YzFiNTdlNTkzYTc5OTMwNzEyODkyZGU2NTA5MzEwNmEzYWE0N2QxIDEwMDY0NAotLS0gYS9Tb3Vy
Y2UvSmF2YVNjcmlwdENvcmUvZGVidWdnZXIvRGVidWdnZXIuY3BwCisrKyBiL1NvdXJjZS9KYXZh
U2NyaXB0Q29yZS9kZWJ1Z2dlci9EZWJ1Z2dlci5jcHAKQEAgLTExNyw3ICsxMTcsNyBAQCBwdWJs
aWM6CiAgICAgewogICAgICAgICBpZiAobV9kZWJ1Z2dlci5tX2N1cnJlbnREZWJ1Z2dlckNhbGxG
cmFtZSkgewogICAgICAgICAgICAgbV9kZWJ1Z2dlci5tX2N1cnJlbnREZWJ1Z2dlckNhbGxGcmFt
ZS0+aW52YWxpZGF0ZSgpOwotICAgICAgICAgICAgbV9kZWJ1Z2dlci5tX2N1cnJlbnREZWJ1Z2dl
ckNhbGxGcmFtZSA9IDA7CisgICAgICAgICAgICBtX2RlYnVnZ2VyLm1fY3VycmVudERlYnVnZ2Vy
Q2FsbEZyYW1lID0gbnVsbHB0cjsKICAgICAgICAgfQogICAgIH0KIApkaWZmIC0tZ2l0IGEvU291
cmNlL0phdmFTY3JpcHRDb3JlL2RmZy9ERkdHcmFwaC5oIGIvU291cmNlL0phdmFTY3JpcHRDb3Jl
L2RmZy9ERkdHcmFwaC5oCmluZGV4IDJjZTdkNjBiMmEyZjhhZjdhMzM1YzU2NTEwNjk4ZDk5ZTY3
Mjg0MWIuLjUxNDhjMjZkOGUzN2U3NzMyNDRlOGQ5YjI0NDM1YjIzYWEzMDJlMjQgMTAwNjQ0Ci0t
LSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9kZmcvREZHR3JhcGguaAorKysgYi9Tb3VyY2UvSmF2
YVNjcmlwdENvcmUvZGZnL0RGR0dyYXBoLmgKQEAgLTQ0NCw3ICs0NDQsNyBAQCBwdWJsaWM6CiAg
ICAgCiAgICAgdm9pZCBraWxsQmxvY2soQmxvY2tJbmRleCBibG9ja0luZGV4KQogICAgIHsKLSAg
ICAgICAgbV9ibG9ja3NbYmxvY2tJbmRleF0uY2xlYXIoKTsKKyAgICAgICAgbV9ibG9ja3NbYmxv
Y2tJbmRleF0gPSBudWxscHRyOwogICAgIH0KICAgICAKICAgICB2b2lkIGtpbGxCbG9jayhCYXNp
Y0Jsb2NrKiBiYXNpY0Jsb2NrKQpkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL2Rm
Zy9ERkdPcGVyYXRpb25zLmNwcCBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9kZmcvREZHT3BlcmF0
aW9ucy5jcHAKaW5kZXggYTk5YTNmYTEwMjAxOGNiZTg0ZTRkMTM3NDUwZDcyNTBkNDg3ZWUwOC4u
NmY5NTEyYmE1MzRjNDkwZDRiZjk5OGFmNWQwODI0NDEyZGJiOTE0ZSAxMDA2NDQKLS0tIGEvU291
cmNlL0phdmFTY3JpcHRDb3JlL2RmZy9ERkdPcGVyYXRpb25zLmNwcAorKysgYi9Tb3VyY2UvSmF2
YVNjcmlwdENvcmUvZGZnL0RGR09wZXJhdGlvbnMuY3BwCkBAIC0xNDQ3LDcgKzE0NDcsNyBAQCBj
aGFyKiBKSVRfT1BFUkFUSU9OIHRyaWdnZXJPU1JFbnRyeU5vdygKICAgICAgICAgCiAgICAgICAg
IC8vIE9TUiBlbnRyeSBmYWlsZWQuIE9oIG5vISBUaGlzIGltcGxpZXMgdGhhdCB3ZSBuZWVkIHRv
IHJldHJ5LiBXZSByZXRyeQogICAgICAgICAvLyB3aXRob3V0IGV4cG9uZW50aWFsIGJhY2tvZmYg
YW5kIHdlIG9ubHkgZG8gdGhpcyBmb3IgdGhlIGVudHJ5IGNvZGUgYmxvY2suCi0gICAgICAgIGpp
dENvZGUtPm9zckVudHJ5QmxvY2suY2xlYXIoKTsKKyAgICAgICAgaml0Q29kZS0+b3NyRW50cnlC
bG9jayA9IG51bGxwdHI7CiAgICAgICAgIGppdENvZGUtPm9zckVudHJ5UmV0cnkgPSAwOwogICAg
ICAgICByZXR1cm4gMDsKICAgICB9CmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUv
aW5zcGVjdG9yL0NvbnNvbGVNZXNzYWdlLmNwcCBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9pbnNw
ZWN0b3IvQ29uc29sZU1lc3NhZ2UuY3BwCmluZGV4IGEwNGE5N2RjM2I0NTE0ODU2Nzc2NGY0ZDI4
ZDBmM2IyYzM4ZDFlMDYuLjlhYzBkZGVlMmRjOTBiYWY4MThmYWUzYTJkNDE2ZGQ1OGFhOTE0NDUg
MTAwNjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9pbnNwZWN0b3IvQ29uc29sZU1lc3Nh
Z2UuY3BwCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9pbnNwZWN0b3IvQ29uc29sZU1lc3Nh
Z2UuY3BwCkBAIC0yNzMsNyArMjczLDcgQEAgdm9pZCBDb25zb2xlTWVzc2FnZTo6Y2xlYXIoKQog
ICAgICAgICBtX21lc3NhZ2UgPSBBU0NJSUxpdGVyYWwoIjxtZXNzYWdlIGNvbGxlY3RlZD4iKTsK
IAogICAgIGlmIChtX2FyZ3VtZW50cykKLSAgICAgICAgbV9hcmd1bWVudHMuY2xlYXIoKTsKKyAg
ICAgICAgbV9hcmd1bWVudHMgPSBudWxscHRyOwogfQogCiBKU0M6OkV4ZWNTdGF0ZSogQ29uc29s
ZU1lc3NhZ2U6OnNjcmlwdFN0YXRlKCkgY29uc3QKZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2Ny
aXB0Q29yZS9pbnNwZWN0b3IvSlNHbG9iYWxPYmplY3RJbnNwZWN0b3JDb250cm9sbGVyLmNwcCBi
L1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9pbnNwZWN0b3IvSlNHbG9iYWxPYmplY3RJbnNwZWN0b3JD
b250cm9sbGVyLmNwcAppbmRleCA1N2Y1MmM1NTU0N2E2Mzg4NzljODJmNDBiNjhlYzNkMjJiMzJh
MDM5Li4xMWQ4NmVkMzI5NzUwMzE3MzcxNmE4NWQ5MzU4MDhmYzY3N2I1ZDQ4IDEwMDY0NAotLS0g
YS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvaW5zcGVjdG9yL0pTR2xvYmFsT2JqZWN0SW5zcGVjdG9y
Q29udHJvbGxlci5jcHAKKysrIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL2luc3BlY3Rvci9KU0ds
b2JhbE9iamVjdEluc3BlY3RvckNvbnRyb2xsZXIuY3BwCkBAIC0xMzEsNyArMTMxLDcgQEAgdm9p
ZCBKU0dsb2JhbE9iamVjdEluc3BlY3RvckNvbnRyb2xsZXI6OmRpc2Nvbm5lY3RGcm9udGVuZChE
aXNjb25uZWN0UmVhc29uIHJlYXMKICAgICBtX2FnZW50cy53aWxsRGVzdHJveUZyb250ZW5kQW5k
QmFja2VuZChyZWFzb24pOwogCiAgICAgbV9iYWNrZW5kRGlzcGF0Y2hlci0+Y2xlYXJGcm9udGVu
ZCgpOwotICAgIG1fYmFja2VuZERpc3BhdGNoZXIuY2xlYXIoKTsKKyAgICBtX2JhY2tlbmREaXNw
YXRjaGVyID0gbnVsbHB0cjsKICAgICBtX2Zyb250ZW5kQ2hhbm5lbCA9IG51bGxwdHI7CiAKICAg
ICBtX2lzQXV0b21hdGljSW5zcGVjdGlvbiA9IGZhbHNlOwpkaWZmIC0tZ2l0IGEvU291cmNlL0ph
dmFTY3JpcHRDb3JlL2luc3BlY3Rvci9hZ2VudHMvSW5zcGVjdG9yQWdlbnQuY3BwIGIvU291cmNl
L0phdmFTY3JpcHRDb3JlL2luc3BlY3Rvci9hZ2VudHMvSW5zcGVjdG9yQWdlbnQuY3BwCmluZGV4
IGJmMjQxYmE3NzgyZDljMDljYTZkYWQzNjA5MmI4MjFhNzJhODM4YWEuLjA1Mzg2OTAxZTYxZTdm
YmNkZWNlMGJjMTUyOTBkOWY1YmFjZTAxODggMTAwNjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0
Q29yZS9pbnNwZWN0b3IvYWdlbnRzL0luc3BlY3RvckFnZW50LmNwcAorKysgYi9Tb3VyY2UvSmF2
YVNjcmlwdENvcmUvaW5zcGVjdG9yL2FnZW50cy9JbnNwZWN0b3JBZ2VudC5jcHAKQEAgLTU3LDcg
KzU3LDcgQEAgdm9pZCBJbnNwZWN0b3JBZ2VudDo6ZGlkQ3JlYXRlRnJvbnRlbmRBbmRCYWNrZW5k
KEZyb250ZW5kQ2hhbm5lbCogZnJvbnRlbmRDaGFubmUKIHZvaWQgSW5zcGVjdG9yQWdlbnQ6Ondp
bGxEZXN0cm95RnJvbnRlbmRBbmRCYWNrZW5kKERpc2Nvbm5lY3RSZWFzb24pCiB7CiAgICAgbV9m
cm9udGVuZERpc3BhdGNoZXIgPSBudWxscHRyOwotICAgIG1fYmFja2VuZERpc3BhdGNoZXIuY2xl
YXIoKTsKKyAgICBtX2JhY2tlbmREaXNwYXRjaGVyID0gbnVsbHB0cjsKIAogICAgIG1fcGVuZGlu
Z0V2YWx1YXRlVGVzdENvbW1hbmRzLmNsZWFyKCk7CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZh
U2NyaXB0Q29yZS9pbnNwZWN0b3IvYWdlbnRzL0luc3BlY3RvckNvbnNvbGVBZ2VudC5jcHAgYi9T
b3VyY2UvSmF2YVNjcmlwdENvcmUvaW5zcGVjdG9yL2FnZW50cy9JbnNwZWN0b3JDb25zb2xlQWdl
bnQuY3BwCmluZGV4IDgxNGEwYzExY2Y2MDhlYzY5ODk5Y2ViZjFiYWMxNGVhYmMxOWJhZDYuLjlm
ZmQwNDg0ZjI4MDYyYzI5YmNhZGI0YjliOWQzNzBiMWY3MTEzN2YgMTAwNjQ0Ci0tLSBhL1NvdXJj
ZS9KYXZhU2NyaXB0Q29yZS9pbnNwZWN0b3IvYWdlbnRzL0luc3BlY3RvckNvbnNvbGVBZ2VudC5j
cHAKKysrIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL2luc3BlY3Rvci9hZ2VudHMvSW5zcGVjdG9y
Q29uc29sZUFnZW50LmNwcApAQCAtNjQsNyArNjQsNyBAQCB2b2lkIEluc3BlY3RvckNvbnNvbGVB
Z2VudDo6ZGlkQ3JlYXRlRnJvbnRlbmRBbmRCYWNrZW5kKEZyb250ZW5kQ2hhbm5lbCogZnJvbnRl
bgogdm9pZCBJbnNwZWN0b3JDb25zb2xlQWdlbnQ6OndpbGxEZXN0cm95RnJvbnRlbmRBbmRCYWNr
ZW5kKERpc2Nvbm5lY3RSZWFzb24pCiB7CiAgICAgbV9mcm9udGVuZERpc3BhdGNoZXIgPSBudWxs
cHRyOwotICAgIG1fYmFja2VuZERpc3BhdGNoZXIuY2xlYXIoKTsKKyAgICBtX2JhY2tlbmREaXNw
YXRjaGVyID0gbnVsbHB0cjsKIAogICAgIFN0cmluZyBlcnJvclN0cmluZzsKICAgICBkaXNhYmxl
KGVycm9yU3RyaW5nKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9pbnNwZWN0
b3IvYWdlbnRzL0luc3BlY3RvckRlYnVnZ2VyQWdlbnQuY3BwIGIvU291cmNlL0phdmFTY3JpcHRD
b3JlL2luc3BlY3Rvci9hZ2VudHMvSW5zcGVjdG9yRGVidWdnZXJBZ2VudC5jcHAKaW5kZXggYTc1
ZTBiMmI2ZWM3ZThjOWRkZDY3N2ZmOTQ4NWM5ZThmZTlkYmU0ZC4uZjBmMGI0OGRkNGQ0N2NkZTNh
MGYyYTg4MjJjNDYzMjVkZTVhYWI0ZiAxMDA2NDQKLS0tIGEvU291cmNlL0phdmFTY3JpcHRDb3Jl
L2luc3BlY3Rvci9hZ2VudHMvSW5zcGVjdG9yRGVidWdnZXJBZ2VudC5jcHAKKysrIGIvU291cmNl
L0phdmFTY3JpcHRDb3JlL2luc3BlY3Rvci9hZ2VudHMvSW5zcGVjdG9yRGVidWdnZXJBZ2VudC5j
cHAKQEAgLTc3LDcgKzc3LDcgQEAgdm9pZCBJbnNwZWN0b3JEZWJ1Z2dlckFnZW50OjpkaWRDcmVh
dGVGcm9udGVuZEFuZEJhY2tlbmQoRnJvbnRlbmRDaGFubmVsKiBmcm9udGUKIHZvaWQgSW5zcGVj
dG9yRGVidWdnZXJBZ2VudDo6d2lsbERlc3Ryb3lGcm9udGVuZEFuZEJhY2tlbmQoRGlzY29ubmVj
dFJlYXNvbiByZWFzb24pCiB7CiAgICAgbV9mcm9udGVuZERpc3BhdGNoZXIgPSBudWxscHRyOwot
ICAgIG1fYmFja2VuZERpc3BhdGNoZXIuY2xlYXIoKTsKKyAgICBtX2JhY2tlbmREaXNwYXRjaGVy
ID0gbnVsbHB0cjsKIAogICAgIGJvb2wgc2tpcFJlY29tcGlsZSA9IHJlYXNvbiA9PSBEaXNjb25u
ZWN0UmVhc29uOjpJbnNwZWN0ZWRUYXJnZXREZXN0cm95ZWQ7CiAgICAgZGlzYWJsZShza2lwUmVj
b21waWxlKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9pbnNwZWN0b3IvYWdl
bnRzL0pTR2xvYmFsT2JqZWN0UnVudGltZUFnZW50LmNwcCBiL1NvdXJjZS9KYXZhU2NyaXB0Q29y
ZS9pbnNwZWN0b3IvYWdlbnRzL0pTR2xvYmFsT2JqZWN0UnVudGltZUFnZW50LmNwcAppbmRleCA2
NThjNjdhYjE1Zjg5NTIwNWM1NWJiNTI4OWMwYjlkMmU0ZTQwYzYwLi40NjA0OWY1NmM3NWFkNzM5
OGYzYzlkMDc1ODQ2Y2U3YTFjMTI4MjY4IDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENv
cmUvaW5zcGVjdG9yL2FnZW50cy9KU0dsb2JhbE9iamVjdFJ1bnRpbWVBZ2VudC5jcHAKKysrIGIv
U291cmNlL0phdmFTY3JpcHRDb3JlL2luc3BlY3Rvci9hZ2VudHMvSlNHbG9iYWxPYmplY3RSdW50
aW1lQWdlbnQuY3BwCkBAIC00OSw3ICs0OSw3IEBAIHZvaWQgSlNHbG9iYWxPYmplY3RSdW50aW1l
QWdlbnQ6OmRpZENyZWF0ZUZyb250ZW5kQW5kQmFja2VuZChGcm9udGVuZENoYW5uZWwqIGZyCiB2
b2lkIEpTR2xvYmFsT2JqZWN0UnVudGltZUFnZW50Ojp3aWxsRGVzdHJveUZyb250ZW5kQW5kQmFj
a2VuZChEaXNjb25uZWN0UmVhc29uIHJlYXNvbikKIHsKICAgICBtX2Zyb250ZW5kRGlzcGF0Y2hl
ciA9IG51bGxwdHI7Ci0gICAgbV9iYWNrZW5kRGlzcGF0Y2hlci5jbGVhcigpOworICAgIG1fYmFj
a2VuZERpc3BhdGNoZXIgPSBudWxscHRyOwogCiAgICAgSW5zcGVjdG9yUnVudGltZUFnZW50Ojp3
aWxsRGVzdHJveUZyb250ZW5kQW5kQmFja2VuZChyZWFzb24pOwogfQpkaWZmIC0tZ2l0IGEvU291
cmNlL0phdmFTY3JpcHRDb3JlL3BhcnNlci9QYXJzZXIuY3BwIGIvU291cmNlL0phdmFTY3JpcHRD
b3JlL3BhcnNlci9QYXJzZXIuY3BwCmluZGV4IGRjMGY1NWYxMzJmYTBlMThmODQ3YTg1NGM4Y2Zm
NTZiMGE2MDk0OWYuLmEzYzVlMzEyMThiMDM5MmVlNzYxNmZlZDYxZDlkMzk1MmI0YTQ4ZTYgMTAw
NjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9wYXJzZXIvUGFyc2VyLmNwcAorKysgYi9T
b3VyY2UvSmF2YVNjcmlwdENvcmUvcGFyc2VyL1BhcnNlci5jcHAKQEAgLTQ5MSw3ICs0OTEsNyBA
QCB0ZW1wbGF0ZSA8Y2xhc3MgVHJlZUJ1aWxkZXI+IFRyZWVFeHByZXNzaW9uIFBhcnNlcjxMZXhl
clR5cGU+OjpwYXJzZVZhckRlY2xhcmF0aQogICAgIEpTVG9rZW4gbGFzdElkZW50VG9rZW47IAog
ICAgIGRvIHsKICAgICAgICAgbGFzdElkZW50ID0gMDsKLSAgICAgICAgbGFzdFBhdHRlcm4gPSAw
OworICAgICAgICBsYXN0UGF0dGVybiA9IFRyZWVEZXN0cnVjdHVyaW5nUGF0dGVybigwKTsKICAg
ICAgICAgSlNUb2tlbkxvY2F0aW9uIGxvY2F0aW9uKHRva2VuTG9jYXRpb24oKSk7CiAgICAgICAg
IG5leHQoKTsKICAgICAgICAgVHJlZUV4cHJlc3Npb24gbm9kZSA9IDA7CkBAIC04OTQsNyArODk0
LDcgQEAgdGVtcGxhdGUgPGNsYXNzIFRyZWVCdWlsZGVyPiBUcmVlU3RhdGVtZW50IFBhcnNlcjxM
ZXhlclR5cGU+OjpwYXJzZUZvclN0YXRlbWVudCgKICAgICAgICAgICAgIGRlY2xzRW5kID0gbGFz
dFRva2VuRW5kUG9zaXRpb24oKTsKICAgICAgICAgICAgIGlmIChwYXR0ZXJuICYmIChtYXRjaChJ
TlRPS0VOKSB8fCAobWF0Y2goSURFTlQpICYmICptX3Rva2VuLm1fZGF0YS5pZGVudCA9PSBtX3Zt
LT5wcm9wZXJ0eU5hbWVzLT5vZikpKQogICAgICAgICAgICAgICAgIGdvdG8gZW51bWVyYXRpb25M
b29wOwotICAgICAgICAgICAgcGF0dGVybiA9IDA7CisgICAgICAgICAgICBwYXR0ZXJuID0gVHJl
ZURlc3RydWN0dXJpbmdQYXR0ZXJuKDApOwogICAgICAgICAgICAgcmVzdG9yZVNhdmVQb2ludChz
YXZlUG9pbnQpOwogICAgICAgICB9CiAgICAgICAgIG1fYWxsb3dzSW4gPSBmYWxzZTsKZGlmZiAt
LWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0V4ZWN1dGFibGUuY3BwIGIvU291
cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvRXhlY3V0YWJsZS5jcHAKaW5kZXggNmNiMDliMDFi
MzgyNWI4NDU2ZTk1YzFhYmM5ZGZmMmI4MDZlNDExOC4uNTUyNDBmZDkxZjdiYzc4NDJmMTNlNTky
ODFkMTBkMjFkODZjNGY1MCAxMDA2NDQKLS0tIGEvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRp
bWUvRXhlY3V0YWJsZS5jcHAKKysrIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvRXhl
Y3V0YWJsZS5jcHAKQEAgLTUyLDggKzUyLDggQEAgdm9pZCBFeGVjdXRhYmxlQmFzZTo6ZGVzdHJv
eShKU0NlbGwqIGNlbGwpCiB2b2lkIEV4ZWN1dGFibGVCYXNlOjpjbGVhckNvZGUoKQogewogI2lm
IEVOQUJMRShKSVQpCi0gICAgbV9qaXRDb2RlRm9yQ2FsbC5jbGVhcigpOwotICAgIG1faml0Q29k
ZUZvckNvbnN0cnVjdC5jbGVhcigpOworICAgIG1faml0Q29kZUZvckNhbGwgPSBudWxscHRyOwor
ICAgIG1faml0Q29kZUZvckNvbnN0cnVjdCA9IG51bGxwdHI7CiAgICAgbV9qaXRDb2RlRm9yQ2Fs
bFdpdGhBcml0eUNoZWNrID0gTWFjcm9Bc3NlbWJsZXJDb2RlUHRyKCk7CiAgICAgbV9qaXRDb2Rl
Rm9yQ29uc3RydWN0V2l0aEFyaXR5Q2hlY2sgPSBNYWNyb0Fzc2VtYmxlckNvZGVQdHIoKTsKICAg
ICBtX2ppdENvZGVGb3JDYWxsV2l0aEFyaXR5Q2hlY2tBbmRQcmVzZXJ2ZVJlZ3MgPSBNYWNyb0Fz
c2VtYmxlckNvZGVQdHIoKTsKQEAgLTQ2NCw3ICs0NjQsNyBAQCB2b2lkIEV2YWxFeGVjdXRhYmxl
Ojp1bmxpbmtDYWxscygpCiAKIHZvaWQgRXZhbEV4ZWN1dGFibGU6OmNsZWFyQ29kZSgpCiB7Ci0g
ICAgbV9ldmFsQ29kZUJsb2NrLmNsZWFyKCk7CisgICAgbV9ldmFsQ29kZUJsb2NrID0gbnVsbHB0
cjsKICAgICBtX3VubGlua2VkRXZhbENvZGVCbG9jay5jbGVhcigpOwogICAgIEJhc2U6OmNsZWFy
Q29kZSgpOwogfQpAQCAtNTQzLDcgKzU0Myw3IEBAIHZvaWQgUHJvZ3JhbUV4ZWN1dGFibGU6OnZp
c2l0Q2hpbGRyZW4oSlNDZWxsKiBjZWxsLCBTbG90VmlzaXRvciYgdmlzaXRvcikKIAogdm9pZCBQ
cm9ncmFtRXhlY3V0YWJsZTo6Y2xlYXJDb2RlKCkKIHsKLSAgICBtX3Byb2dyYW1Db2RlQmxvY2su
Y2xlYXIoKTsKKyAgICBtX3Byb2dyYW1Db2RlQmxvY2sgPSBudWxscHRyOwogICAgIG1fdW5saW5r
ZWRQcm9ncmFtQ29kZUJsb2NrLmNsZWFyKCk7CiAgICAgQmFzZTo6Y2xlYXJDb2RlKCk7CiB9CkBA
IC01ODcsOCArNTg3LDggQEAgdm9pZCBGdW5jdGlvbkV4ZWN1dGFibGU6OmNsZWFyVW5saW5rZWRD
b2RlRm9yUmVjb21waWxhdGlvbigpCiAKIHZvaWQgRnVuY3Rpb25FeGVjdXRhYmxlOjpjbGVhckNv
ZGUoKQogewotICAgIG1fY29kZUJsb2NrRm9yQ2FsbC5jbGVhcigpOwotICAgIG1fY29kZUJsb2Nr
Rm9yQ29uc3RydWN0LmNsZWFyKCk7CisgICAgbV9jb2RlQmxvY2tGb3JDYWxsID0gbnVsbHB0cjsK
KyAgICBtX2NvZGVCbG9ja0ZvckNvbnN0cnVjdCA9IG51bGxwdHI7CiAgICAgQmFzZTo6Y2xlYXJD
b2RlKCk7CiB9CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0pT
TG9jay5jcHAgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9KU0xvY2suY3BwCmluZGV4
IDJlNzk5NGNmMjdjM2M1NGQ1ZDU3YzM3MDAwZGQxODBlYzRkZjlmMDUuLmMyZWUwYTU1MzJjMGI1
MTkzNjg3MTA5ZDlhMzJlYzRhMTQ0NWQ4YmQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0
Q29yZS9ydW50aW1lL0pTTG9jay5jcHAKKysrIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRp
bWUvSlNMb2NrLmNwcApAQCAtNzMsNyArNzMsNyBAQCB2b2lkIEpTTG9ja0hvbGRlcjo6aW5pdCgp
CiBKU0xvY2tIb2xkZXI6On5KU0xvY2tIb2xkZXIoKQogewogICAgIFJlZlB0cjxKU0xvY2s+IGFw
aUxvY2soJm1fdm0tPmFwaUxvY2soKSk7Ci0gICAgbV92bS5jbGVhcigpOworICAgIG1fdm0gPSBu
dWxscHRyOwogICAgIGFwaUxvY2stPnVubG9jaygpOwogfQogCmRpZmYgLS1naXQgYS9Tb3VyY2Uv
SmF2YVNjcmlwdENvcmUvcnVudGltZS9TdHJ1Y3R1cmUuY3BwIGIvU291cmNlL0phdmFTY3JpcHRD
b3JlL3J1bnRpbWUvU3RydWN0dXJlLmNwcAppbmRleCBmNzcxYjYwYmNiNjVkZThlNTRjNmE2MTFj
N2QyNmY4NjU5OGIwNzRkLi4zOTg1ODA1Y2Y1NWM4M2MxZGE2NTRhMTM1YzQ1MTBjNzUwMTcwYjE5
IDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9TdHJ1Y3R1cmUuY3Bw
CisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL1N0cnVjdHVyZS5jcHAKQEAgLTcz
Nyw3ICs3MzcsNyBAQCB2b2lkIFN0cnVjdHVyZTo6cGluKCkKICAgICBBU1NFUlQocHJvcGVydHlU
YWJsZSgpKTsKICAgICBzZXRJc1Bpbm5lZFByb3BlcnR5VGFibGUodHJ1ZSk7CiAgICAgY2xlYXJQ
cmV2aW91c0lEKCk7Ci0gICAgbV9uYW1lSW5QcmV2aW91cy5jbGVhcigpOworICAgIG1fbmFtZUlu
UHJldmlvdXMgPSBudWxscHRyOwogfQogCiB2b2lkIFN0cnVjdHVyZTo6YWxsb2NhdGVSYXJlRGF0
YShWTSYgdm0pCmRpZmYgLS1naXQgYS9Tb3VyY2UvV1RGL3d0Zi9SZWZQdHIuaCBiL1NvdXJjZS9X
VEYvd3RmL1JlZlB0ci5oCmluZGV4IDI5MTFmMGRhOTA2MmI3NmNjZDJhZDE1NDQwYjljZDI1ODVk
NTg4ODYuLjdjODMwNWUzOGVkNzJiNDQ3N2RhNWYyZTIyNzUwNzY0YTc4M2UyNjQgMTAwNjQ0Ci0t
LSBhL1NvdXJjZS9XVEYvd3RmL1JlZlB0ci5oCisrKyBiL1NvdXJjZS9XVEYvd3RmL1JlZlB0ci5o
CkBAIC02MCw3ICs2MCw2IEBAIHB1YmxpYzoKIAogICAgIFQqIGdldCgpIGNvbnN0IHsgcmV0dXJu
IG1fcHRyOyB9CiAgICAgCi0gICAgdm9pZCBjbGVhcigpOwogICAgIFBhc3NSZWZQdHI8VD4gcmVs
ZWFzZSgpIHsgUGFzc1JlZlB0cjxUPiB0bXAgPSBhZG9wdFJlZihtX3B0cik7IG1fcHRyID0gbnVs
bHB0cjsgcmV0dXJuIHRtcDsgfQogICAgIFJlZjxUPiByZWxlYXNlTm9uTnVsbCgpIHsgQVNTRVJU
KG1fcHRyKTsgUmVmPFQ+IHRtcChhZG9wdFJlZigqbV9wdHIpKTsgbV9wdHIgPSBudWxscHRyOyBy
ZXR1cm4gdG1wOyB9CiAKQEAgLTc3LDYgKzc2LDcgQEAgcHVibGljOgogICAgIAogICAgIFJlZlB0
ciYgb3BlcmF0b3I9KGNvbnN0IFJlZlB0ciYpOwogICAgIFJlZlB0ciYgb3BlcmF0b3I9KFQqKTsK
KyAgICBSZWZQdHImIG9wZXJhdG9yPShzdGQ6Om51bGxwdHJfdCk7CiAgICAgUmVmUHRyJiBvcGVy
YXRvcj0oY29uc3QgUGFzc1JlZlB0cjxUPiYpOwogICAgIHRlbXBsYXRlPHR5cGVuYW1lIFU+IFJl
ZlB0ciYgb3BlcmF0b3I9KGNvbnN0IFJlZlB0cjxVPiYpOwogICAgIHRlbXBsYXRlPHR5cGVuYW1l
IFU+IFJlZlB0ciYgb3BlcmF0b3I9KGNvbnN0IFBhc3NSZWZQdHI8VT4mKTsKQEAgLTEwOSwxMSAr
MTA5LDYgQEAgdGVtcGxhdGU8dHlwZW5hbWUgVD4gdGVtcGxhdGU8dHlwZW5hbWUgVT4gaW5saW5l
IFJlZlB0cjxUPjo6UmVmUHRyKFJlZjxVPiYmIHJlZmUKIHsKIH0KIAotdGVtcGxhdGU8dHlwZW5h
bWUgVD4gaW5saW5lIHZvaWQgUmVmUHRyPFQ+OjpjbGVhcigpCi17Ci0gICAgZGVyZWZJZk5vdE51
bGwoc3RkOjpleGNoYW5nZShtX3B0ciwgbnVsbHB0cikpOwotfQotCiB0ZW1wbGF0ZTx0eXBlbmFt
ZSBUPgogaW5saW5lIFQqIFJlZlB0cjxUPjo6bGVha1JlZigpCiB7CkBAIC0xNDEsNiArMTM2LDEy
IEBAIHRlbXBsYXRlPHR5cGVuYW1lIFQ+IGlubGluZSBSZWZQdHI8VD4mIFJlZlB0cjxUPjo6b3Bl
cmF0b3I9KFQqIG9wdHIpCiAgICAgcmV0dXJuICp0aGlzOwogfQogCit0ZW1wbGF0ZTx0eXBlbmFt
ZSBUPiBpbmxpbmUgUmVmUHRyPFQ+JiBSZWZQdHI8VD46Om9wZXJhdG9yPShzdGQ6Om51bGxwdHJf
dCkKK3sKKyAgICBkZXJlZklmTm90TnVsbChzdGQ6OmV4Y2hhbmdlKG1fcHRyLCBudWxscHRyKSk7
CisgICAgcmV0dXJuICp0aGlzOworfQorCiB0ZW1wbGF0ZTx0eXBlbmFtZSBUPiBpbmxpbmUgUmVm
UHRyPFQ+JiBSZWZQdHI8VD46Om9wZXJhdG9yPShjb25zdCBQYXNzUmVmUHRyPFQ+JiBvKQogewog
ICAgIFJlZlB0ciBwdHIgPSBvOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dURi93dGYvdGV4dC9TdHJp
bmdCdWlsZGVyLmggYi9Tb3VyY2UvV1RGL3d0Zi90ZXh0L1N0cmluZ0J1aWxkZXIuaAppbmRleCBi
ZTVjMTE3MmNjY2I5OThhNDEwNTgwMzQ1YWY0MGMyOWNiMTM0OThlLi4xZGM0YWM2MjI5NDBjMGE1
MzQyZDc2YzkyMmEzNmRkNjE4MmE5MWY4IDEwMDY0NAotLS0gYS9Tb3VyY2UvV1RGL3d0Zi90ZXh0
L1N0cmluZ0J1aWxkZXIuaAorKysgYi9Tb3VyY2UvV1RGL3d0Zi90ZXh0L1N0cmluZ0J1aWxkZXIu
aApAQCAtMjY0LDcgKzI2NCw3IEBAIHB1YmxpYzoKICAgICB7CiAgICAgICAgIG1fbGVuZ3RoID0g
MDsKICAgICAgICAgbV9zdHJpbmcgPSBTdHJpbmcoKTsKLSAgICAgICAgbV9idWZmZXIgPSAwOwor
ICAgICAgICBtX2J1ZmZlciA9IG51bGxwdHI7CiAgICAgICAgIG1fYnVmZmVyQ2hhcmFjdGVyczgg
PSAwOwogICAgICAgICBtX2lzOEJpdCA9IHRydWU7CiAgICAgfQpkaWZmIC0tZ2l0IGEvU291cmNl
L1dlYkNvcmUvTW9kdWxlcy9pbmRleGVkZGIvSURCQ3Vyc29yLmNwcCBiL1NvdXJjZS9XZWJDb3Jl
L01vZHVsZXMvaW5kZXhlZGRiL0lEQkN1cnNvci5jcHAKaW5kZXggYTIwZTFlMWFjZTI0OTk0ODRk
Zjc0NTkxOThhMTExZTE4NDI5MGU2ZC4uYzQwMTFkYzI3NTU1ZjQ4ZmNlMmQ2ZDJlMTY0MDhmMWQ3
YTc2MTM2ZiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9pbmRleGVkZGIvSURC
Q3Vyc29yLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL2luZGV4ZWRkYi9JREJDdXJz
b3IuY3BwCkBAIC0yNTksNyArMjU5LDcgQEAgdm9pZCBJREJDdXJzb3I6OmNsb3NlKCkKICAgICBt
X3RyYW5zYWN0aW9uTm90aWZpZXIuY3Vyc29yRmluaXNoZWQoKTsKICAgICBpZiAobV9yZXF1ZXN0
KSB7CiAgICAgICAgIG1fcmVxdWVzdC0+ZmluaXNoQ3Vyc29yKCk7Ci0gICAgICAgIG1fcmVxdWVz
dC5jbGVhcigpOworICAgICAgICBtX3JlcXVlc3QgPSBudWxscHRyOwogICAgIH0KIH0KIApkaWZm
IC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9pbmRleGVkZGIvSURCRGF0YWJhc2VCYWNr
ZW5kLmNwcCBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvaW5kZXhlZGRiL0lEQkRhdGFiYXNlQmFj
a2VuZC5jcHAKaW5kZXggZmMyMzEwMmRkYWE5YTM3NzA5NDBlZjRlYjA0YzEzODAzODM0ZGMzZi4u
MDllNGUyN2I4ZjkwOWUxNzgwOWI0OWQwMzRlM2I4YzRlNDVlZjUzNyAxMDA2NDQKLS0tIGEvU291
cmNlL1dlYkNvcmUvTW9kdWxlcy9pbmRleGVkZGIvSURCRGF0YWJhc2VCYWNrZW5kLmNwcAorKysg
Yi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL2luZGV4ZWRkYi9JREJEYXRhYmFzZUJhY2tlbmQuY3Bw
CkBAIC0zMzMsNyArMzMzLDcgQEAgdm9pZCBJREJEYXRhYmFzZUJhY2tlbmQ6OnRyYW5zYWN0aW9u
RmluaXNoZWQoSURCVHJhbnNhY3Rpb25CYWNrZW5kKiByYXdUcmFuc2FjdGkKICAgICBtX3RyYW5z
YWN0aW9ucy5yZW1vdmUodHJhbnNhY3Rpb24tPmlkKCkpOwogICAgIGlmICh0cmFuc2FjdGlvbi0+
bW9kZSgpID09IEluZGV4ZWREQjo6VHJhbnNhY3Rpb25Nb2RlOjpWZXJzaW9uQ2hhbmdlKSB7CiAg
ICAgICAgIEFTU0VSVCh0cmFuc2FjdGlvbi5nZXQoKSA9PSBtX3J1bm5pbmdWZXJzaW9uQ2hhbmdl
VHJhbnNhY3Rpb24uZ2V0KCkpOwotICAgICAgICBtX3J1bm5pbmdWZXJzaW9uQ2hhbmdlVHJhbnNh
Y3Rpb24uY2xlYXIoKTsKKyAgICAgICAgbV9ydW5uaW5nVmVyc2lvbkNoYW5nZVRyYW5zYWN0aW9u
ID0gbnVsbHB0cjsKICAgICB9CiB9CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL01vZHVs
ZXMvaW5kZXhlZGRiL0lEQk9iamVjdFN0b3JlLmNwcCBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMv
aW5kZXhlZGRiL0lEQk9iamVjdFN0b3JlLmNwcAppbmRleCBlOGJmOWRkZWZlNDk3YjU2M2Q5OGYw
ODUwZWFlOGQ0ODdlYjIyNWI5Li5hNmQyODE0MmY2MjIyMjJmOTQzZjhkNGUxMzViNDI0ODMxMjAz
MDE5IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL2luZGV4ZWRkYi9JREJPYmpl
Y3RTdG9yZS5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9pbmRleGVkZGIvSURCT2Jq
ZWN0U3RvcmUuY3BwCkBAIC0zMzcsNyArMzM3LDcgQEAgcHJpdmF0ZToKICAgICAgICAgICAgIC8v
IE5vdyB0aGF0IHdlIGFyZSBkb25lIGluZGV4aW5nLCB0ZWxsIHRoZSBiYWNrZW5kIHRvIGdvCiAg
ICAgICAgICAgICAvLyBiYWNrIHRvIHByb2Nlc3NpbmcgdGFza3Mgb2YgdHlwZSBOb3JtYWxUYXNr
LgogICAgICAgICAgICAgbV9kYXRhYmFzZUJhY2tlbmQtPnNldEluZGV4ZXNSZWFkeShtX3RyYW5z
YWN0aW9uSWQsIG1fb2JqZWN0U3RvcmVJZCwgaW5kZXhJZHMpOwotICAgICAgICAgICAgbV9kYXRh
YmFzZUJhY2tlbmQuY2xlYXIoKTsKKyAgICAgICAgICAgIG1fZGF0YWJhc2VCYWNrZW5kID0gbnVs
bHB0cjsKICAgICAgICAgfQogCiAgICAgfQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvTW9k
dWxlcy9pbmRleGVkZGIvSURCT3BlbkRCUmVxdWVzdC5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1
bGVzL2luZGV4ZWRkYi9JREJPcGVuREJSZXF1ZXN0LmNwcAppbmRleCA2Mzc4MDdlYWQ5NGNiNzhj
OWM5ZDkzNThkZWQ2NzBmZmYyMDE3N2RjLi43MTU3OWIwNTk1NTYyNGUwM2YyYWUxNzI3ZmM1MDQ2
NzkyNTA0N2I0IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL2luZGV4ZWRkYi9J
REJPcGVuREJSZXF1ZXN0LmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL2luZGV4ZWRk
Yi9JREJPcGVuREJSZXF1ZXN0LmNwcApAQCAtMTQyLDcgKzE0Miw3IEBAIGJvb2wgSURCT3BlbkRC
UmVxdWVzdDo6ZGlzcGF0Y2hFdmVudChQYXNzUmVmUHRyPEV2ZW50PiBldmVudCkKICAgICAvLyBJ
ZiB0aGUgY29ubmVjdGlvbiBjbG9zZWQgYmV0d2VlbiBvblVwZ3JhZGVOZWVkZWQgYW5kIHRoZSBk
ZWxpdmVyeSBvZiB0aGUgInN1Y2Nlc3MiIGV2ZW50LAogICAgIC8vIGFuICJlcnJvciIgZXZlbnQg
c2hvdWxkIGJlIGZpcmVkIGluc3RlYWQuCiAgICAgaWYgKGV2ZW50LT50eXBlKCkgPT0gZXZlbnRO
YW1lcygpLnN1Y2Nlc3NFdmVudCAmJiBtX3Jlc3VsdC0+dHlwZSgpID09IElEQkFueTo6SURCRGF0
YWJhc2VUeXBlICYmIG1fcmVzdWx0LT5pZGJEYXRhYmFzZSgpLT5pc0Nsb3NlUGVuZGluZygpKSB7
Ci0gICAgICAgIG1fcmVzdWx0LmNsZWFyKCk7CisgICAgICAgIG1fcmVzdWx0ID0gbnVsbHB0cjsK
ICAgICAgICAgb25FcnJvcihJREJEYXRhYmFzZUVycm9yOjpjcmVhdGUoSURCRGF0YWJhc2VFeGNl
cHRpb246OkFib3J0RXJyb3IsICJUaGUgY29ubmVjdGlvbiB3YXMgY2xvc2VkLiIpKTsKICAgICAg
ICAgcmV0dXJuIGZhbHNlOwogICAgIH0KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL01vZHVs
ZXMvaW5kZXhlZGRiL0lEQlJlcXVlc3QuY3BwIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9pbmRl
eGVkZGIvSURCUmVxdWVzdC5jcHAKaW5kZXggOWU1MDFiNGY4NjI2YjA0MDE2ZGVjZDk1ODYxNmE4
MTUzZmE2NWFlZi4uODY0ZGU1MzU3NTMxMWIwOWUyODc4NGEzZGE2NWM4MWZmOGE4NDVhZiAxMDA2
NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9pbmRleGVkZGIvSURCUmVxdWVzdC5jcHAK
KysrIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9pbmRleGVkZGIvSURCUmVxdWVzdC5jcHAKQEAg
LTE3MCw5ICsxNzAsOSBAQCB2b2lkIElEQlJlcXVlc3Q6OmFib3J0KCkKICAgICBtX2VucXVldWVk
RXZlbnRzLmNsZWFyKCk7CiAKICAgICBtX2Vycm9yQ29kZSA9IDA7Ci0gICAgbV9lcnJvci5jbGVh
cigpOworICAgIG1fZXJyb3IgPSBudWxscHRyOwogICAgIG1fZXJyb3JNZXNzYWdlID0gU3RyaW5n
KCk7Ci0gICAgbV9yZXN1bHQuY2xlYXIoKTsKKyAgICBtX3Jlc3VsdCA9IG51bGxwdHI7CiAgICAg
b25FcnJvcihJREJEYXRhYmFzZUVycm9yOjpjcmVhdGUoSURCRGF0YWJhc2VFeGNlcHRpb246OkFi
b3J0RXJyb3IpKTsKICAgICBtX3JlcXVlc3RBYm9ydGVkID0gdHJ1ZTsKIH0KQEAgLTE5NCwxMCAr
MTk0LDEwIEBAIHZvaWQgSURCUmVxdWVzdDo6c2V0UGVuZGluZ0N1cnNvcihQYXNzUmVmUHRyPElE
QkN1cnNvcj4gY3Vyc29yKQogICAgIEFTU0VSVChjdXJzb3IgPT0gZ2V0UmVzdWx0Q3Vyc29yKCkp
OwogCiAgICAgbV9wZW5kaW5nQ3Vyc29yID0gY3Vyc29yOwotICAgIG1fcmVzdWx0LmNsZWFyKCk7
CisgICAgbV9yZXN1bHQgPSBudWxscHRyOwogICAgIG1fcmVhZHlTdGF0ZSA9IFBFTkRJTkc7CiAg
ICAgbV9lcnJvckNvZGUgPSAwOwotICAgIG1fZXJyb3IuY2xlYXIoKTsKKyAgICBtX2Vycm9yID0g
bnVsbHB0cjsKICAgICBtX2Vycm9yTWVzc2FnZSA9IFN0cmluZygpOwogICAgIG1fdHJhbnNhY3Rp
b24tPnJlZ2lzdGVyUmVxdWVzdCh0aGlzKTsKIH0KQEAgLTI1Niw3ICsyNTYsNyBAQCB2b2lkIElE
QlJlcXVlc3Q6Om9uRXJyb3IoUGFzc1JlZlB0cjxJREJEYXRhYmFzZUVycm9yPiBlcnJvcikKICAg
ICBtX2Vycm9yQ29kZSA9IGVycm9yLT5jb2RlKCk7CiAgICAgbV9lcnJvck1lc3NhZ2UgPSBlcnJv
ci0+bWVzc2FnZSgpOwogICAgIG1fZXJyb3IgPSBET01FcnJvcjo6Y3JlYXRlKElEQkRhdGFiYXNl
RXhjZXB0aW9uOjpnZXRFcnJvck5hbWUoZXJyb3ItPmlkYkNvZGUoKSkpOwotICAgIG1fcGVuZGlu
Z0N1cnNvci5jbGVhcigpOworICAgIG1fcGVuZGluZ0N1cnNvciA9IG51bGxwdHI7CiAgICAgZW5x
dWV1ZUV2ZW50KEV2ZW50OjpjcmVhdGUoZXZlbnROYW1lcygpLmVycm9yRXZlbnQsIHRydWUsIHRy
dWUpKTsKIH0KIApAQCAtNDA0LDcgKzQwNCw3IEBAIHZvaWQgSURCUmVxdWVzdDo6b25TdWNjZXNz
SW50ZXJuYWwoY29uc3QgRGVwcmVjYXRlZDo6U2NyaXB0VmFsdWUmIHZhbHVlKQogICAgIG1fcmVz
dWx0ID0gSURCQW55OjpjcmVhdGUodmFsdWUpOwogICAgIGlmIChtX3BlbmRpbmdDdXJzb3IpIHsK
ICAgICAgICAgbV9wZW5kaW5nQ3Vyc29yLT5jbG9zZSgpOwotICAgICAgICBtX3BlbmRpbmdDdXJz
b3IuY2xlYXIoKTsKKyAgICAgICAgbV9wZW5kaW5nQ3Vyc29yID0gbnVsbHB0cjsKICAgICB9CiAg
ICAgZW5xdWV1ZUV2ZW50KGNyZWF0ZVN1Y2Nlc3NFdmVudCgpKTsKIH0KQEAgLTU1Myw3ICs1NTMs
NyBAQCB2b2lkIElEQlJlcXVlc3Q6OnRyYW5zYWN0aW9uRGlkRmluaXNoQW5kRGlzcGF0Y2goKQog
ICAgIEFTU0VSVChtX3RyYW5zYWN0aW9uLT5pc1ZlcnNpb25DaGFuZ2UoKSk7CiAgICAgQVNTRVJU
KG1fcmVhZHlTdGF0ZSA9PSBET05FKTsKICAgICBBU1NFUlQoc2NyaXB0RXhlY3V0aW9uQ29udGV4
dCgpKTsKLSAgICBtX3RyYW5zYWN0aW9uLmNsZWFyKCk7CisgICAgbV90cmFuc2FjdGlvbiA9IG51
bGxwdHI7CiAgICAgbV9yZWFkeVN0YXRlID0gUEVORElORzsKIH0KIApkaWZmIC0tZ2l0IGEvU291
cmNlL1dlYkNvcmUvTW9kdWxlcy9pbmRleGVkZGIvSURCVHJhbnNhY3Rpb24uY3BwIGIvU291cmNl
L1dlYkNvcmUvTW9kdWxlcy9pbmRleGVkZGIvSURCVHJhbnNhY3Rpb24uY3BwCmluZGV4IDk5NDhi
YzcyYmIyNTJlYWQ4MDRlZDAzNzE1M2QyNDE0ZWE4YjFlYTcuLjZlYzI5ZmE2Nzg0Yzc4ZTdiMDRi
YTMwNGUyNDg2MzA3MzkyZWQ4OWEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMv
aW5kZXhlZGRiL0lEQlRyYW5zYWN0aW9uLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVz
L2luZGV4ZWRkYi9JREJUcmFuc2FjdGlvbi5jcHAKQEAgLTI0MCw3ICsyNDAsNyBAQCB2b2lkIElE
QlRyYW5zYWN0aW9uOjpPcGVuQ3Vyc29yTm90aWZpZXI6OmN1cnNvckZpbmlzaGVkKCkKICAgICBp
ZiAobV9jdXJzb3IpIHsKICAgICAgICAgbV90cmFuc2FjdGlvbi0+dW5yZWdpc3Rlck9wZW5DdXJz
b3IobV9jdXJzb3IpOwogICAgICAgICBtX2N1cnNvciA9IG51bGxwdHI7Ci0gICAgICAgIG1fdHJh
bnNhY3Rpb24uY2xlYXIoKTsKKyAgICAgICAgbV90cmFuc2FjdGlvbiA9IG51bGxwdHI7CiAgICAg
fQogfQogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL21lZGlhc291cmNlL01l
ZGlhU291cmNlLmNwcCBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvbWVkaWFzb3VyY2UvTWVkaWFT
b3VyY2UuY3BwCmluZGV4IDkxMTcwYWE0ZTgyYTAxNzVmZDJhNDAxZGFlNDU0OTc5ZTcwYmEyYjQu
LmM0MGQ2ZTMwMzY5ZTM5OTEzYzdmYTk3NzJjMWVkNmNmMzI0MDRlMTkgMTAwNjQ0Ci0tLSBhL1Nv
dXJjZS9XZWJDb3JlL01vZHVsZXMvbWVkaWFzb3VyY2UvTWVkaWFTb3VyY2UuY3BwCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL01vZHVsZXMvbWVkaWFzb3VyY2UvTWVkaWFTb3VyY2UuY3BwCkBAIC0zOTQs
NyArMzk0LDcgQEAgdm9pZCBNZWRpYVNvdXJjZTo6c2V0UmVhZHlTdGF0ZShjb25zdCBBdG9taWNT
dHJpbmcmIHN0YXRlKQogICAgIExPRyhNZWRpYVNvdXJjZSwgIk1lZGlhU291cmNlOjpzZXRSZWFk
eVN0YXRlKCVwKSA6ICVzIC0+ICVzIiwgdGhpcywgb2xkU3RhdGUuc3RyaW5nKCkuYXNjaWkoKS5k
YXRhKCksIHN0YXRlLnN0cmluZygpLmFzY2lpKCkuZGF0YSgpKTsKIAogICAgIGlmIChzdGF0ZSA9
PSBjbG9zZWRLZXl3b3JkKCkpIHsKLSAgICAgICAgbV9wcml2YXRlLmNsZWFyKCk7CisgICAgICAg
IG1fcHJpdmF0ZSA9IG51bGxwdHI7CiAgICAgICAgIG1fbWVkaWFFbGVtZW50ID0gbnVsbHB0cjsK
ICAgICAgICAgbV9kdXJhdGlvbiA9IE1lZGlhVGltZTo6aW52YWxpZFRpbWUoKTsKICAgICB9CkBA
IC04MTEsNyArODExLDcgQEAgdm9pZCBNZWRpYVNvdXJjZTo6c3RvcCgpCiAgICAgbV9hc3luY0V2
ZW50UXVldWUuY2xvc2UoKTsKICAgICBpZiAoIWlzQ2xvc2VkKCkpCiAgICAgICAgIHNldFJlYWR5
U3RhdGUoY2xvc2VkS2V5d29yZCgpKTsKLSAgICBtX3ByaXZhdGUuY2xlYXIoKTsKKyAgICBtX3By
aXZhdGUgPSBudWxscHRyOwogfQogCiBib29sIE1lZGlhU291cmNlOjpjYW5TdXNwZW5kRm9yUGFn
ZUNhY2hlKCkgY29uc3QKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvbWVkaWFz
dHJlYW0vUlRDU2Vzc2lvbkRlc2NyaXB0aW9uUmVxdWVzdEltcGwuY3BwIGIvU291cmNlL1dlYkNv
cmUvTW9kdWxlcy9tZWRpYXN0cmVhbS9SVENTZXNzaW9uRGVzY3JpcHRpb25SZXF1ZXN0SW1wbC5j
cHAKaW5kZXggZDcxMGRjMThmNWUyM2NiNmUxMzA4ZGYyOGY2NTZhNjg5YmNiMDZkNy4uMzAxMzM0
ZGNkNTEwODVkMzI1ZjUyNGY4ZWQ5OTRhZWNiOGU2ODQ0MyAxMDA2NDQKLS0tIGEvU291cmNlL1dl
YkNvcmUvTW9kdWxlcy9tZWRpYXN0cmVhbS9SVENTZXNzaW9uRGVzY3JpcHRpb25SZXF1ZXN0SW1w
bC5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9tZWRpYXN0cmVhbS9SVENTZXNzaW9u
RGVzY3JpcHRpb25SZXF1ZXN0SW1wbC5jcHAKQEAgLTk3LDggKzk3LDggQEAgYm9vbCBSVENTZXNz
aW9uRGVzY3JpcHRpb25SZXF1ZXN0SW1wbDo6Y2FuU3VzcGVuZEZvclBhZ2VDYWNoZSgpIGNvbnN0
CiAKIHZvaWQgUlRDU2Vzc2lvbkRlc2NyaXB0aW9uUmVxdWVzdEltcGw6OmNsZWFyKCkKIHsKLSAg
ICBtX3N1Y2Nlc3NDYWxsYmFjay5jbGVhcigpOwotICAgIG1fZXJyb3JDYWxsYmFjay5jbGVhcigp
OworICAgIG1fc3VjY2Vzc0NhbGxiYWNrID0gbnVsbHB0cjsKKyAgICBtX2Vycm9yQ2FsbGJhY2sg
PSBudWxscHRyOwogfQogCiB9IC8vIG5hbWVzcGFjZSBXZWJDb3JlCmRpZmYgLS1naXQgYS9Tb3Vy
Y2UvV2ViQ29yZS9Nb2R1bGVzL21lZGlhc3RyZWFtL1JUQ1N0YXRzUmVxdWVzdEltcGwuY3BwIGIv
U291cmNlL1dlYkNvcmUvTW9kdWxlcy9tZWRpYXN0cmVhbS9SVENTdGF0c1JlcXVlc3RJbXBsLmNw
cAppbmRleCBkZWIxOWE5YWY5MGRjZmM0NTYzNzM4NjhlMTVmODgzNWRmYmU0YzhmLi5kMDAwYjEx
ZGYxN2ZlZjEwMTBlMzg5OWI3NzAyMWNlNzkyMDFmN2U5IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2Vi
Q29yZS9Nb2R1bGVzL21lZGlhc3RyZWFtL1JUQ1N0YXRzUmVxdWVzdEltcGwuY3BwCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL01vZHVsZXMvbWVkaWFzdHJlYW0vUlRDU3RhdHNSZXF1ZXN0SW1wbC5jcHAK
QEAgLTEwNCw3ICsxMDQsNyBAQCBib29sIFJUQ1N0YXRzUmVxdWVzdEltcGw6OmNhblN1c3BlbmRG
b3JQYWdlQ2FjaGUoKSBjb25zdAogCiB2b2lkIFJUQ1N0YXRzUmVxdWVzdEltcGw6OmNsZWFyKCkK
IHsKLSAgICBtX3N1Y2Nlc3NDYWxsYmFjay5jbGVhcigpOworICAgIG1fc3VjY2Vzc0NhbGxiYWNr
ID0gbnVsbHB0cjsKIH0KIAogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL21l
ZGlhc3RyZWFtL1JUQ1ZvaWRSZXF1ZXN0SW1wbC5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVz
L21lZGlhc3RyZWFtL1JUQ1ZvaWRSZXF1ZXN0SW1wbC5jcHAKaW5kZXggODJmOGExMjJkZDMwOWUz
YWQwZTQzOTRlYzljYzM1ZWUwMDlkYWQzNy4uNzA2ZjkwNzU4ZmRjMTVkYzk3ZWZhMWE1ZDMxMTJj
NGUyYWI0OWRhNiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9tZWRpYXN0cmVh
bS9SVENWb2lkUmVxdWVzdEltcGwuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvbWVk
aWFzdHJlYW0vUlRDVm9pZFJlcXVlc3RJbXBsLmNwcApAQCAtOTQsOCArOTQsOCBAQCBib29sIFJU
Q1ZvaWRSZXF1ZXN0SW1wbDo6Y2FuU3VzcGVuZEZvclBhZ2VDYWNoZSgpIGNvbnN0CiAKIHZvaWQg
UlRDVm9pZFJlcXVlc3RJbXBsOjpjbGVhcigpCiB7Ci0gICAgbV9zdWNjZXNzQ2FsbGJhY2suY2xl
YXIoKTsKLSAgICBtX2Vycm9yQ2FsbGJhY2suY2xlYXIoKTsKKyAgICBtX3N1Y2Nlc3NDYWxsYmFj
ayA9IG51bGxwdHI7CisgICAgbV9lcnJvckNhbGxiYWNrID0gbnVsbHB0cjsKIH0KIAogfSAvLyBu
YW1lc3BhY2UgV2ViQ29yZQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy93ZWJh
dWRpby9BdWRpb0NvbnRleHQuY3BwIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy93ZWJhdWRpby9B
dWRpb0NvbnRleHQuY3BwCmluZGV4IDVhM2RlYTBhNTA3MWQ4ZGFmYmNkZmUwNTVhOGQwNWNkODAz
NDBkYWYuLmZhYTk5NmI3NGNmOGIwZmIyYjA0MzIyZGIxN2JhNjY4NjM2MGM5YjkgMTAwNjQ0Ci0t
LSBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvd2ViYXVkaW8vQXVkaW9Db250ZXh0LmNwcAorKysg
Yi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL3dlYmF1ZGlvL0F1ZGlvQ29udGV4dC5jcHAKQEAgLTIz
MSw3ICsyMzEsNyBAQCB2b2lkIEF1ZGlvQ29udGV4dDo6Y2xlYXIoKQogewogICAgIC8vIFdlIGhh
dmUgdG8gcmVsZWFzZSBvdXIgcmVmZXJlbmNlIHRvIHRoZSBkZXN0aW5hdGlvbiBub2RlIGJlZm9y
ZSB0aGUgY29udGV4dCB3aWxsIGV2ZXIgYmUgZGVsZXRlZCBzaW5jZSB0aGUgZGVzdGluYXRpb24g
bm9kZSBob2xkcyBhIHJlZmVyZW5jZSB0byB0aGUgY29udGV4dC4KICAgICBpZiAobV9kZXN0aW5h
dGlvbk5vZGUpCi0gICAgICAgIG1fZGVzdGluYXRpb25Ob2RlLmNsZWFyKCk7CisgICAgICAgIG1f
ZGVzdGluYXRpb25Ob2RlID0gbnVsbHB0cjsKIAogICAgIC8vIEF1ZGlvIHRocmVhZCBpcyBkZWFk
LiBOb2JvZHkgd2lsbCBzY2hlZHVsZSBub2RlIGRlbGV0aW9uIGFjdGlvbi4gTGV0J3MgZG8gaXQg
b3Vyc2VsdmVzLgogICAgIGRvIHsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMv
d2ViZGF0YWJhc2UvU1FMVHJhbnNhY3Rpb25CYWNrZW5kLmNwcCBiL1NvdXJjZS9XZWJDb3JlL01v
ZHVsZXMvd2ViZGF0YWJhc2UvU1FMVHJhbnNhY3Rpb25CYWNrZW5kLmNwcAppbmRleCBkYTI1NGI2
NTRmMjM1ZTVhMTgyZTRkN2Y4NGMzOWExNTVlNGU4MGQ2Li5kMzExMzgwZTQ0ODU4MWFkOWU0Mzdk
MjQ1ZWVhMjlmNmE5ZjljMDk2IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL3dl
YmRhdGFiYXNlL1NRTFRyYW5zYWN0aW9uQmFja2VuZC5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUv
TW9kdWxlcy93ZWJkYXRhYmFzZS9TUUxUcmFuc2FjdGlvbkJhY2tlbmQuY3BwCkBAIC04NDUsNyAr
ODQ1LDcgQEAgdm9pZCBTUUxUcmFuc2FjdGlvbkJhY2tlbmQ6OnJlbGVhc2VPcmlnaW5Mb2NrSWZO
ZWVkZWQoKQogewogICAgIGlmIChtX29yaWdpbkxvY2spIHsKICAgICAgICAgbV9vcmlnaW5Mb2Nr
LT51bmxvY2soKTsKLSAgICAgICAgbV9vcmlnaW5Mb2NrLmNsZWFyKCk7CisgICAgICAgIG1fb3Jp
Z2luTG9jayA9IG51bGxwdHI7CiAgICAgfQogfQogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29y
ZS9Nb2R1bGVzL3dlYnNvY2tldHMvV29ya2VyVGhyZWFkYWJsZVdlYlNvY2tldENoYW5uZWwuY3Bw
IGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy93ZWJzb2NrZXRzL1dvcmtlclRocmVhZGFibGVXZWJT
b2NrZXRDaGFubmVsLmNwcAppbmRleCBiY2JkYWY5NGM3MDExN2MzZDE0MzlhODQzZWE3Y2IwMzI4
YzJlZTg1Li4zNGI2NGQ3N2EwZjU4ZDhjNTdmYmMwODI2MmE5MjMzNTVhOGVkMWQ2IDEwMDY0NAot
LS0gYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL3dlYnNvY2tldHMvV29ya2VyVGhyZWFkYWJsZVdl
YlNvY2tldENoYW5uZWwuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvd2Vic29ja2V0
cy9Xb3JrZXJUaHJlYWRhYmxlV2ViU29ja2V0Q2hhbm5lbC5jcHAKQEAgLTEyNiw3ICsxMjYsNyBA
QCB2b2lkIFdvcmtlclRocmVhZGFibGVXZWJTb2NrZXRDaGFubmVsOjpmYWlsKGNvbnN0IFN0cmlu
ZyYgcmVhc29uKQogdm9pZCBXb3JrZXJUaHJlYWRhYmxlV2ViU29ja2V0Q2hhbm5lbDo6ZGlzY29u
bmVjdCgpCiB7CiAgICAgbV9icmlkZ2UtPmRpc2Nvbm5lY3QoKTsKLSAgICBtX2JyaWRnZS5jbGVh
cigpOworICAgIG1fYnJpZGdlID0gbnVsbHB0cjsKIH0KIAogdm9pZCBXb3JrZXJUaHJlYWRhYmxl
V2ViU29ja2V0Q2hhbm5lbDo6c3VzcGVuZCgpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9h
Y2Nlc3NpYmlsaXR5L2F0ay9BWE9iamVjdENhY2hlQXRrLmNwcCBiL1NvdXJjZS9XZWJDb3JlL2Fj
Y2Vzc2liaWxpdHkvYXRrL0FYT2JqZWN0Q2FjaGVBdGsuY3BwCmluZGV4IDJmMzVmNzQwOTc4ZTc4
MzU3NTIxNGM0OTVlNDNlYjQ1NWM5Mjc0YTQuLmJjMzg0MTE4MmFmYjA2NzEwOGExNjcyZTgxYTMy
OGE0ZGUyNGQ5MmQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2FjY2Vzc2liaWxpdHkvYXRr
L0FYT2JqZWN0Q2FjaGVBdGsuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2FjY2Vzc2liaWxpdHkv
YXRrL0FYT2JqZWN0Q2FjaGVBdGsuY3BwCkBAIC0xNTMsNyArMTUzLDcgQEAgc3RhdGljIHZvaWQg
bm90aWZ5Q2hpbGRyZW5TZWxlY3Rpb25DaGFuZ2UoQWNjZXNzaWJpbGl0eU9iamVjdCogb2JqZWN0
KQogCiAgICAgQWNjZXNzaWJpbGl0eU9iamVjdCogbGlzdE9iamVjdCA9IGdldExpc3RPYmplY3Qo
b2JqZWN0KTsKICAgICBpZiAoIWxpc3RPYmplY3QpIHsKLSAgICAgICAgb2xkTGlzdE9iamVjdC5n
ZXQoKSA9IDA7CisgICAgICAgIG9sZExpc3RPYmplY3QuZ2V0KCkgPSBudWxscHRyOwogICAgICAg
ICByZXR1cm47CiAgICAgfQogCkBAIC0xNjYsNyArMTY2LDcgQEAgc3RhdGljIHZvaWQgbm90aWZ5
Q2hpbGRyZW5TZWxlY3Rpb25DaGFuZ2UoQWNjZXNzaWJpbGl0eU9iamVjdCogb2JqZWN0KQogICAg
IC8vIGZ1cnRoZXIgY29tcGFyaXNvbnMgbWFrZSBzZW5zZS4gT3RoZXJ3aXNlLCBqdXN0IHJlc2V0
CiAgICAgLy8gb2xkRm9jdXNlZE9iamVjdCBzbyBpdCB3b24ndCBiZSB0YWtlbiBpbnRvIGFjY291
bnQuCiAgICAgaWYgKG9sZExpc3RPYmplY3QuZ2V0KCkgIT0gbGlzdE9iamVjdCkKLSAgICAgICAg
b2xkRm9jdXNlZE9iamVjdC5nZXQoKSA9IDA7CisgICAgICAgIG9sZEZvY3VzZWRPYmplY3QuZ2V0
KCkgPSBudWxscHRyOwogCiAgICAgQXRrT2JqZWN0KiBheEl0ZW0gPSBpdGVtID8gaXRlbS0+d3Jh
cHBlcigpIDogbnVsbHB0cjsKICAgICBBdGtPYmplY3QqIGF4T2xkRm9jdXNlZE9iamVjdCA9IG9s
ZEZvY3VzZWRPYmplY3QuZ2V0KCkgPyBvbGRGb2N1c2VkT2JqZWN0LmdldCgpLT53cmFwcGVyKCkg
OiBudWxscHRyOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvYmluZGluZ3MvanMvU2NyaXB0
Q29udHJvbGxlci5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9qcy9TY3JpcHRDb250cm9s
bGVyLmNwcAppbmRleCAzYWJkZDJiOWRiNWE2OWFhYzQxOGVhMTlkMjVhNDRmNWJmNTcwOGQzLi5j
NTE5OWNmZGY3OWJkZTQzY2U0ZTZmZjEwZDcwNTUxMGQ2NTQ3NTdkIDEwMDY0NAotLS0gYS9Tb3Vy
Y2UvV2ViQ29yZS9iaW5kaW5ncy9qcy9TY3JpcHRDb250cm9sbGVyLmNwcAorKysgYi9Tb3VyY2Uv
V2ViQ29yZS9iaW5kaW5ncy9qcy9TY3JpcHRDb250cm9sbGVyLmNwcApAQCAtMTAyLDcgKzEwMiw3
IEBAIFNjcmlwdENvbnRyb2xsZXI6On5TY3JpcHRDb250cm9sbGVyKCkKICAgICBpZiAobV9jYWNo
ZWFibGVCaW5kaW5nUm9vdE9iamVjdCkgewogICAgICAgICBKU0xvY2tIb2xkZXIgbG9jayhKU0RP
TVdpbmRvd0Jhc2U6OmNvbW1vblZNKCkpOwogICAgICAgICBtX2NhY2hlYWJsZUJpbmRpbmdSb290
T2JqZWN0LT5pbnZhbGlkYXRlKCk7Ci0gICAgICAgIG1fY2FjaGVhYmxlQmluZGluZ1Jvb3RPYmpl
Y3QgPSAwOworICAgICAgICBtX2NhY2hlYWJsZUJpbmRpbmdSb290T2JqZWN0ID0gbnVsbHB0cjsK
ICAgICB9CiAKICAgICAvLyBJdCdzIGxpa2VseSB0aGF0IGRlc3Ryb3lpbmcgbV93aW5kb3dTaGVs
bHMgd2lsbCBjcmVhdGUgYSBsb3Qgb2YgZ2FyYmFnZS4KQEAgLTQ4OSw3ICs0ODksNyBAQCB2b2lk
IFNjcmlwdENvbnRyb2xsZXI6OmNsZWFyU2NyaXB0T2JqZWN0cygpCiAKICAgICBpZiAobV9iaW5k
aW5nUm9vdE9iamVjdCkgewogICAgICAgICBtX2JpbmRpbmdSb290T2JqZWN0LT5pbnZhbGlkYXRl
KCk7Ci0gICAgICAgIG1fYmluZGluZ1Jvb3RPYmplY3QgPSAwOworICAgICAgICBtX2JpbmRpbmdS
b290T2JqZWN0ID0gbnVsbHB0cjsKICAgICB9CiAKICNpZiBFTkFCTEUoTkVUU0NBUEVfUExVR0lO
X0FQSSkKQEAgLTQ5OCw3ICs0OTgsNyBAQCB2b2lkIFNjcmlwdENvbnRyb2xsZXI6OmNsZWFyU2Ny
aXB0T2JqZWN0cygpCiAgICAgICAgIC8vIHNjcmlwdCBvYmplY3QgcHJvcGVybHkuCiAgICAgICAg
IC8vIFRoaXMgc2hvdWxkbid0IGNhdXNlIGFueSBwcm9ibGVtcyBmb3IgcGx1Z2lucyBzaW5jZSB0
aGV5IHNob3VsZCBoYXZlIGFscmVhZHkgYmVlbiBzdG9wcGVkIGFuZCBkZXN0cm95ZWQgYXQgdGhp
cyBwb2ludC4KICAgICAgICAgX05QTl9EZWFsbG9jYXRlT2JqZWN0KG1fd2luZG93U2NyaXB0TlBP
YmplY3QpOwotICAgICAgICBtX3dpbmRvd1NjcmlwdE5QT2JqZWN0ID0gMDsKKyAgICAgICAgbV93
aW5kb3dTY3JpcHROUE9iamVjdCA9IG51bGxwdHI7CiAgICAgfQogI2VuZGlmCiB9CmRpZmYgLS1n
aXQgYS9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9qcy9XZWJDb3JlSlNDbGllbnREYXRhLmggYi9T
b3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9qcy9XZWJDb3JlSlNDbGllbnREYXRhLmgKaW5kZXggNjU0
NTEzMzVkM2Q4YTkyMWY1ODE2MjJjMjllNDkwMDBiOWE2MzY2Yy4uNDMwMmQ2OGU1YzhjNmQ3ODdk
NDcyNjI0MTRiY2ViOThkMjJlMDE5ZSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvYmluZGlu
Z3MvanMvV2ViQ29yZUpTQ2xpZW50RGF0YS5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdz
L2pzL1dlYkNvcmVKU0NsaWVudERhdGEuaApAQCAtNDQsNyArNDQsNyBAQCBwdWJsaWM6CiAgICAg
ICAgIEFTU0VSVChtX3dvcmxkU2V0LmNvbnRhaW5zKG1fbm9ybWFsV29ybGQuZ2V0KCkpKTsKICAg
ICAgICAgQVNTRVJUKG1fd29ybGRTZXQuc2l6ZSgpID09IDEpOwogICAgICAgICBBU1NFUlQobV9u
b3JtYWxXb3JsZC0+aGFzT25lUmVmKCkpOwotICAgICAgICBtX25vcm1hbFdvcmxkLmNsZWFyKCk7
CisgICAgICAgIG1fbm9ybWFsV29ybGQgPSBudWxscHRyOwogICAgICAgICBBU1NFUlQobV93b3Js
ZFNldC5pc0VtcHR5KCkpOwogICAgIH0KIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvYmlu
ZGluZ3MvanMvV29ya2VyU2NyaXB0Q29udHJvbGxlci5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9iaW5k
aW5ncy9qcy9Xb3JrZXJTY3JpcHRDb250cm9sbGVyLmNwcAppbmRleCA5MGUwZmY1MTA4OGFhNjU0
OTNkZWVjZTVjOTRmOWEwZGMwMDdjZWNhLi4yOGM5ZWYwZjI3MDNmMzIzYzYxYzhmMjI0NTg5Y2M2
OWQ2ZGQ2YmU2IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9qcy9Xb3JrZXJT
Y3JpcHRDb250cm9sbGVyLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9qcy9Xb3Jr
ZXJTY3JpcHRDb250cm9sbGVyLmNwcApAQCAtNjIsNyArNjIsNyBAQCBXb3JrZXJTY3JpcHRDb250
cm9sbGVyOjp+V29ya2VyU2NyaXB0Q29udHJvbGxlcigpCiB7CiAgICAgSlNMb2NrSG9sZGVyIGxv
Y2sodm0oKSk7CiAgICAgbV93b3JrZXJHbG9iYWxTY29wZVdyYXBwZXIuY2xlYXIoKTsKLSAgICBt
X3ZtLmNsZWFyKCk7CisgICAgbV92bSA9IG51bGxwdHI7CiB9CiAKIHZvaWQgV29ya2VyU2NyaXB0
Q29udHJvbGxlcjo6aW5pdFNjcmlwdCgpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9icmlk
Z2UvcnVudGltZV9vYmplY3QuY3BwIGIvU291cmNlL1dlYkNvcmUvYnJpZGdlL3J1bnRpbWVfb2Jq
ZWN0LmNwcAppbmRleCA5MWYwN2JjNTM3Y2YwZjNmMjAzMGY1ZWQ0ZmVlYzYzMjcyNGViMjM4Li41
ZDBmYTRmODEyYTlhZGZiOGYyNmE5NzUxZTg5ZDZlYmRkZWZmZDYyIDEwMDY0NAotLS0gYS9Tb3Vy
Y2UvV2ViQ29yZS9icmlkZ2UvcnVudGltZV9vYmplY3QuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3Jl
L2JyaWRnZS9ydW50aW1lX29iamVjdC5jcHAKQEAgLTU5LDcgKzU5LDcgQEAgdm9pZCBSdW50aW1l
T2JqZWN0OjppbnZhbGlkYXRlKCkKICAgICBBU1NFUlQobV9pbnN0YW5jZSk7CiAgICAgaWYgKG1f
aW5zdGFuY2UpCiAgICAgICAgIG1faW5zdGFuY2UtPndpbGxJbnZhbGlkYXRlUnVudGltZU9iamVj
dCgpOwotICAgIG1faW5zdGFuY2UgPSAwOworICAgIG1faW5zdGFuY2UgPSBudWxscHRyOwogfQog
CiBFbmNvZGVkSlNWYWx1ZSBSdW50aW1lT2JqZWN0OjpmYWxsYmFja09iamVjdEdldHRlcihFeGVj
U3RhdGUqIGV4ZWMsIEpTT2JqZWN0KiBzbG90QmFzZSwgRW5jb2RlZEpTVmFsdWUsIFByb3BlcnR5
TmFtZSBwcm9wZXJ0eU5hbWUpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9jb250ZW50ZXh0
ZW5zaW9ucy9Db250ZW50RXh0ZW5zaW9uUGFyc2VyLmNwcCBiL1NvdXJjZS9XZWJDb3JlL2NvbnRl
bnRleHRlbnNpb25zL0NvbnRlbnRFeHRlbnNpb25QYXJzZXIuY3BwCmluZGV4IDAyMjY1MmIyZDY5
Zjg5MWNlYTczOTRhMTA5ZDdmYmRmNTAxMmFiMjUuLjdiZjU2ZTdkNGIyZTY3ODZjMzNmN2U4OTUy
ZmM4NTQ3Mjg4YjVmMmIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2NvbnRlbnRleHRlbnNp
b25zL0NvbnRlbnRFeHRlbnNpb25QYXJzZXIuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2NvbnRl
bnRleHRlbnNpb25zL0NvbnRlbnRFeHRlbnNpb25QYXJzZXIuY3BwCkBAIC0yNzcsNyArMjc3LDcg
QEAgc3RkOjplcnJvcl9jb2RlIHBhcnNlUnVsZUxpc3QoY29uc3QgU3RyaW5nJiBydWxlcywgVmVj
dG9yPENvbnRlbnRFeHRlbnNpb25SdWxlPiYKICAgICBFeGVjU3RhdGUqIGV4ZWMgPSBnbG9iYWxP
YmplY3QtPmdsb2JhbEV4ZWMoKTsKICAgICBhdXRvIGVycm9yID0gbG9hZEVuY29kZWRSdWxlcygq
ZXhlYywgcnVsZXMsIHJ1bGVMaXN0KTsKIAotICAgIHZtLmNsZWFyKCk7CisgICAgdm0gPSBudWxs
cHRyOwogCiAgICAgaWYgKGVycm9yKQogICAgICAgICByZXR1cm4gZXJyb3I7CmRpZmYgLS1naXQg
YS9Tb3VyY2UvV2ViQ29yZS9jc3MvQ1NTUGFyc2VyLmNwcCBiL1NvdXJjZS9XZWJDb3JlL2Nzcy9D
U1NQYXJzZXIuY3BwCmluZGV4IDVlOGYwNWNlMDgxNmU3MTYwZTUzZTQ0M2EwYjEzZTQ0Yjg0MmY1
NjcuLjljYzMwOGI0ZjgzYTA5MDlmZDMzYWQzMTA2ZjhmOTZjZDRlNTA3YTEgMTAwNjQ0Ci0tLSBh
L1NvdXJjZS9XZWJDb3JlL2Nzcy9DU1NQYXJzZXIuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2Nz
cy9DU1NQYXJzZXIuY3BwCkBAIC00NTAyLDE1ICs0NTAyLDE1IEBAIHZvaWQgQ1NTUGFyc2VyOjpw
YXJzZUZpbGxQb3NpdGlvbihDU1NQYXJzZXJWYWx1ZUxpc3QmIHZhbHVlTGlzdCwgUmVmUHRyPENT
U1ZhbHVlCiAgICAgaWYgKHZhbHVlMikKICAgICAgICAgdmFsdWVMaXN0Lm5leHQoKTsKICAgICBl
bHNlIHsKLSAgICAgICAgdmFsdWUxLmNsZWFyKCk7CisgICAgICAgIHZhbHVlMSA9IG51bGxwdHI7
CiAgICAgICAgIHJldHVybjsKICAgICB9CiAKICAgICBSZWZQdHI8Q1NTUHJpbWl0aXZlVmFsdWU+
IHBhcnNlZFZhbHVlMSA9IGRvd25jYXN0PENTU1ByaW1pdGl2ZVZhbHVlPih2YWx1ZTEuZ2V0KCkp
OwogICAgIFJlZlB0cjxDU1NQcmltaXRpdmVWYWx1ZT4gcGFyc2VkVmFsdWUyID0gZG93bmNhc3Q8
Q1NTUHJpbWl0aXZlVmFsdWU+KHZhbHVlMi5nZXQoKSk7CiAKLSAgICB2YWx1ZTEuY2xlYXIoKTsK
LSAgICB2YWx1ZTIuY2xlYXIoKTsKKyAgICB2YWx1ZTEgPSBudWxscHRyOworICAgIHZhbHVlMiA9
IG51bGxwdHI7CiAKICAgICAvLyBQZXIgQ1NTMyBzeW50YXgsIDxwb3NpdGlvbj4gY2FuJ3QgaGF2
ZSAnY2VudGVyJyBhcyBpdHMgc2Vjb25kIGtleXdvcmQgYXMgd2UgaGF2ZSBtb3JlIGFyZ3VtZW50
cyB0byBmb2xsb3cuCiAgICAgaWYgKHBhcnNlZFZhbHVlMi0+Z2V0VmFsdWVJRCgpID09IENTU1Zh
bHVlQ2VudGVyKQpAQCAtNDU0OSw3ICs0NTQ5LDcgQEAgdm9pZCBDU1NQYXJzZXI6OnBhcnNlMlZh
bHVlc0ZpbGxQb3NpdGlvbihDU1NQYXJzZXJWYWx1ZUxpc3QmIHZhbHVlTGlzdCwgUmVmUHRyPEMK
ICAgICAgICAgICAgIHZhbHVlTGlzdC5uZXh0KCk7CiAgICAgICAgIGVsc2UgewogICAgICAgICAg
ICAgaWYgKCFpblNob3J0aGFuZCgpKSB7Ci0gICAgICAgICAgICAgICAgdmFsdWUxLmNsZWFyKCk7
CisgICAgICAgICAgICAgICAgdmFsdWUxID0gbnVsbHB0cjsKICAgICAgICAgICAgICAgICByZXR1
cm47CiAgICAgICAgICAgICB9CiAgICAgICAgIH0KQEAgLTc1ODcsOCArNzU4Nyw4IEBAIHN0cnVj
dCBTaGFkb3dQYXJzZUNvbnRleHQgewogICAgICAgICB9CiAKICAgICAgICAgLy8gTm93IHJlc2V0
IGZvciB0aGUgbmV4dCBzaGFkb3cgdmFsdWUuCi0gICAgICAgIHggPSAwOwotICAgICAgICB5ID0g
MDsKKyAgICAgICAgeCA9IG51bGxwdHI7CisgICAgICAgIHkgPSBudWxscHRyOwogICAgICAgICBi
bHVyID0gbnVsbHB0cjsKICAgICAgICAgc3ByZWFkID0gbnVsbHB0cjsKICAgICAgICAgc3R5bGUg
PSBudWxscHRyOwpAQCAtMTIxODQsNyArMTIxODQsNyBAQCBQYXNzUmVmUHRyPENTU1J1bGVTb3Vy
Y2VEYXRhPiBDU1NQYXJzZXI6OnBvcFJ1bGVEYXRhKCkKICAgICAgICAgcmV0dXJuIG51bGxwdHI7
CiAKICAgICBBU1NFUlQoIW1fY3VycmVudFJ1bGVEYXRhU3RhY2stPmlzRW1wdHkoKSk7Ci0gICAg
bV9jdXJyZW50UnVsZURhdGEuY2xlYXIoKTsKKyAgICBtX2N1cnJlbnRSdWxlRGF0YSA9IG51bGxw
dHI7CiAgICAgUmVmUHRyPENTU1J1bGVTb3VyY2VEYXRhPiBkYXRhID0gbV9jdXJyZW50UnVsZURh
dGFTdGFjay0+bGFzdCgpOwogICAgIG1fY3VycmVudFJ1bGVEYXRhU3RhY2stPnJlbW92ZUxhc3Qo
KTsKICAgICByZXR1cm4gZGF0YS5yZWxlYXNlKCk7CkBAIC0xMjYwNSw3ICsxMjYwNSw3IEBAIHZv
aWQgQ1NTUGFyc2VyOjptYXJrUnVsZUJvZHlTdGFydCgpCiB7CiAgICAgaWYgKCFpc0V4dHJhY3Rp
bmdTb3VyY2VEYXRhKCkpCiAgICAgICAgIHJldHVybjsKLSAgICBtX2N1cnJlbnRSdWxlRGF0YS5j
bGVhcigpOworICAgIG1fY3VycmVudFJ1bGVEYXRhID0gbnVsbHB0cjsKICAgICB1bnNpZ25lZCBv
ZmZzZXQgPSB0b2tlblN0YXJ0T2Zmc2V0KCk7CiAgICAgaWYgKHRva2VuU3RhcnRDaGFyKCkgPT0g
J3snKQogICAgICAgICArK29mZnNldDsgLy8gU2tpcCB0aGUgcnVsZSBib2R5IG9wZW5pbmcgYnJh
Y2UuCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9jc3MvQ1NTVmFsdWVQb29sLmNwcCBiL1Nv
dXJjZS9XZWJDb3JlL2Nzcy9DU1NWYWx1ZVBvb2wuY3BwCmluZGV4IDFmNDEzMTE1YTM2ZDBmNDk0
M2NiNTM3YTk5NDY4OWRkYzg2ZmQ5ZDEuLmFlM2UwZmQ0YWViNjBkNmRjODg2ZGM5MWI5YjAwNGM1
ZjVjNDkxZGEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2Nzcy9DU1NWYWx1ZVBvb2wuY3Bw
CisrKyBiL1NvdXJjZS9XZWJDb3JlL2Nzcy9DU1NWYWx1ZVBvb2wuY3BwCkBAIC0xNTMsMTIgKzE1
MywxMiBAQCB2b2lkIENTU1ZhbHVlUG9vbDo6ZHJhaW4oKQogICAgIG1fZm9udEZhbWlseVZhbHVl
Q2FjaGUuY2xlYXIoKTsKIAogICAgIGZvciAoaW50IGkgPSAwOyBpIDwgbnVtQ1NTVmFsdWVLZXl3
b3JkczsgKytpKQotICAgICAgICBtX2lkZW50aWZpZXJWYWx1ZUNhY2hlW2ldID0gMDsKKyAgICAg
ICAgbV9pZGVudGlmaWVyVmFsdWVDYWNoZVtpXSA9IG51bGxwdHI7CiAKICAgICBmb3IgKGludCBp
ID0gMDsgaSA8IG1heGltdW1DYWNoZWFibGVJbnRlZ2VyVmFsdWU7ICsraSkgewotICAgICAgICBt
X3BpeGVsVmFsdWVDYWNoZVtpXSA9IDA7Ci0gICAgICAgIG1fcGVyY2VudFZhbHVlQ2FjaGVbaV0g
PSAwOwotICAgICAgICBtX251bWJlclZhbHVlQ2FjaGVbaV0gPSAwOworICAgICAgICBtX3BpeGVs
VmFsdWVDYWNoZVtpXSA9IG51bGxwdHI7CisgICAgICAgIG1fcGVyY2VudFZhbHVlQ2FjaGVbaV0g
PSBudWxscHRyOworICAgICAgICBtX251bWJlclZhbHVlQ2FjaGVbaV0gPSBudWxscHRyOwogICAg
IH0KIH0KIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvY3NzL1N0eWxlUHJvcGVydGllcy5j
cHAgYi9Tb3VyY2UvV2ViQ29yZS9jc3MvU3R5bGVQcm9wZXJ0aWVzLmNwcAppbmRleCBiOTA5MDhk
MzFkOGUxZGJmNmE1OTRkMDQ3Nzk4OTJkZDJhYTdhMDVjLi5kZWRkMDcwMDdhZTVlOTVlM2E0ZTQ4
ODQyMWU4OGE1YWVkMzdkMzY0IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9jc3MvU3R5bGVQ
cm9wZXJ0aWVzLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9jc3MvU3R5bGVQcm9wZXJ0aWVzLmNw
cApAQCAtMzk3LDkgKzM5Nyw5IEBAIFN0cmluZyBTdHlsZVByb3BlcnRpZXM6OmdldExheWVyZWRT
aG9ydGhhbmRWYWx1ZShjb25zdCBTdHlsZVByb3BlcnR5U2hvcnRoYW5kJiBzCiAgICAgICAgICAg
ICAgICAgICAgIC8vIENvbG9yIG9ubHkgYmVsb25ncyBpbiB0aGUgbGFzdCBsYXllci4KICAgICAg
ICAgICAgICAgICAgICAgaWYgKHNob3J0aGFuZC5wcm9wZXJ0aWVzKClbal0gPT0gQ1NTUHJvcGVy
dHlCYWNrZ3JvdW5kQ29sb3IpIHsKICAgICAgICAgICAgICAgICAgICAgICAgIGlmIChpICE9IG51
bUxheWVycyAtIDEpCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgdmFsdWUgPSAwOworICAg
ICAgICAgICAgICAgICAgICAgICAgICAgIHZhbHVlID0gbnVsbHB0cjsKICAgICAgICAgICAgICAg
ICAgICAgfSBlbHNlIGlmIChpKSAvLyBPdGhlciBzaW5nbGV0b25zIG9ubHkgYmVsb25nIGluIHRo
ZSBmaXJzdCBsYXllci4KLSAgICAgICAgICAgICAgICAgICAgICAgIHZhbHVlID0gMDsKKyAgICAg
ICAgICAgICAgICAgICAgICAgIHZhbHVlID0gbnVsbHB0cjsKICAgICAgICAgICAgICAgICB9CiAg
ICAgICAgICAgICB9CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2Nzcy9WaWV3cG9ydFN0
eWxlUmVzb2x2ZXIuY3BwIGIvU291cmNlL1dlYkNvcmUvY3NzL1ZpZXdwb3J0U3R5bGVSZXNvbHZl
ci5jcHAKaW5kZXggZjg5ZWZmMDA4NjNhYzg5ZGI3NzhkYjMyM2ZlNzg1MDE1NjZhZGYwOS4uZGJi
NmNjNGRmNDQwNDE1YTRiYzQwZTBjOWUwZGFhNmMxMmE1NjliYSAxMDA2NDQKLS0tIGEvU291cmNl
L1dlYkNvcmUvY3NzL1ZpZXdwb3J0U3R5bGVSZXNvbHZlci5jcHAKKysrIGIvU291cmNlL1dlYkNv
cmUvY3NzL1ZpZXdwb3J0U3R5bGVSZXNvbHZlci5jcHAKQEAgLTcxLDcgKzcxLDcgQEAgdm9pZCBW
aWV3cG9ydFN0eWxlUmVzb2x2ZXI6OmFkZFZpZXdwb3J0UnVsZShTdHlsZVJ1bGVWaWV3cG9ydCog
dmlld3BvcnRSdWxlKQogCiB2b2lkIFZpZXdwb3J0U3R5bGVSZXNvbHZlcjo6Y2xlYXJEb2N1bWVu
dCgpCiB7Ci0gICAgbV9kb2N1bWVudCA9IDA7CisgICAgbV9kb2N1bWVudCA9IG51bGxwdHI7CiB9
CiAKIHZvaWQgVmlld3BvcnRTdHlsZVJlc29sdmVyOjpyZXNvbHZlKCkKQEAgLTk0LDcgKzk0LDcg
QEAgdm9pZCBWaWV3cG9ydFN0eWxlUmVzb2x2ZXI6OnJlc29sdmUoKQogICAgIG1fZG9jdW1lbnQt
PnNldFZpZXdwb3J0QXJndW1lbnRzKGFyZ3VtZW50cyk7CiAgICAgbV9kb2N1bWVudC0+dXBkYXRl
Vmlld3BvcnRBcmd1bWVudHMoKTsKIAotICAgIG1fcHJvcGVydHlTZXQgPSAwOworICAgIG1fcHJv
cGVydHlTZXQgPSBudWxscHRyOwogfQogCiBmbG9hdCBWaWV3cG9ydFN0eWxlUmVzb2x2ZXI6Omdl
dFZpZXdwb3J0QXJndW1lbnRWYWx1ZShDU1NQcm9wZXJ0eUlEIGlkKSBjb25zdApkaWZmIC0tZ2l0
IGEvU291cmNlL1dlYkNvcmUvZG9tL0RvY3VtZW50LmNwcCBiL1NvdXJjZS9XZWJDb3JlL2RvbS9E
b2N1bWVudC5jcHAKaW5kZXggZTUwMjY2OTYxMmQ3YzRjNTgyODM0YTRjMWIxOWJiMDM4OTRlZGFm
OS4uZjY0MGI3Y2ZiZGYxNDE4OWMxZTk4OGY0ZWJhZGI0ZGM1MjhhZTFiYSAxMDA2NDQKLS0tIGEv
U291cmNlL1dlYkNvcmUvZG9tL0RvY3VtZW50LmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9kb20v
RG9jdW1lbnQuY3BwCkBAIC0yNDI0LDcgKzI0MjQsNyBAQCB2b2lkIERvY3VtZW50OjpkZXRhY2hQ
YXJzZXIoKQogICAgIGlmICghbV9wYXJzZXIpCiAgICAgICAgIHJldHVybjsKICAgICBtX3BhcnNl
ci0+ZGV0YWNoKCk7Ci0gICAgbV9wYXJzZXIuY2xlYXIoKTsKKyAgICBtX3BhcnNlciA9IG51bGxw
dHI7CiB9CiAKIHZvaWQgRG9jdW1lbnQ6OmNhbmNlbFBhcnNpbmcoKQpAQCAtNTg4Miw3ICs1ODgy
LDcgQEAgdm9pZCBEb2N1bWVudDo6Y2xlYXJTY3JpcHRlZEFuaW1hdGlvbkNvbnRyb2xsZXIoKQog
ICAgIC8vIEZJWE1FOiBjb25zaWRlciB1c2luZyBBY3RpdmVET01PYmplY3QuCiAgICAgaWYgKG1f
c2NyaXB0ZWRBbmltYXRpb25Db250cm9sbGVyKQogICAgICAgICBtX3NjcmlwdGVkQW5pbWF0aW9u
Q29udHJvbGxlci0+Y2xlYXJEb2N1bWVudFBvaW50ZXIoKTsKLSAgICBtX3NjcmlwdGVkQW5pbWF0
aW9uQ29udHJvbGxlci5jbGVhcigpOworICAgIG1fc2NyaXB0ZWRBbmltYXRpb25Db250cm9sbGVy
ID0gbnVsbHB0cjsKIH0KICNlbmRpZgogICAgIApAQCAtNjMwMCw3ICs2MzAwLDcgQEAgdm9pZCBE
b2N1bWVudDo6dXBkYXRlSG92ZXJBY3RpdmVTdGF0ZShjb25zdCBIaXRUZXN0UmVxdWVzdCYgcmVx
dWVzdCwgRWxlbWVudCogaW4KICAgICAgICAgICAgIGN1cnItPnNldEFjdGl2ZShmYWxzZSk7CiAg
ICAgICAgICAgICBtX3VzZXJBY3Rpb25FbGVtZW50cy5zZXRJbkFjdGl2ZUNoYWluKGN1cnIsIGZh
bHNlKTsKICAgICAgICAgfQotICAgICAgICBtX2FjdGl2ZUVsZW1lbnQuY2xlYXIoKTsKKyAgICAg
ICAgbV9hY3RpdmVFbGVtZW50ID0gbnVsbHB0cjsKICAgICB9IGVsc2UgewogICAgICAgICBFbGVt
ZW50KiBuZXdBY3RpdmVFbGVtZW50ID0gaW5uZXJFbGVtZW50SW5Eb2N1bWVudDsKICAgICAgICAg
aWYgKCFvbGRBY3RpdmVFbGVtZW50ICYmIG5ld0FjdGl2ZUVsZW1lbnQgJiYgcmVxdWVzdC5hY3Rp
dmUoKSAmJiAhcmVxdWVzdC50b3VjaE1vdmUoKSkgewpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNv
cmUvZG9tL0RvY3VtZW50TWFya2VyLmggYi9Tb3VyY2UvV2ViQ29yZS9kb20vRG9jdW1lbnRNYXJr
ZXIuaAppbmRleCA0Nzk0OWZlODBiZGQ5YjExZTY4ZGFlNjI1NmVhMmIzMzA2ZmJiNDYzLi5lYzUy
NDg5NDBjMTY3ZWQxYzZjYTAyYjMxZGM0ZTQ3Mzc5YTU1NDE5IDEwMDY0NAotLS0gYS9Tb3VyY2Uv
V2ViQ29yZS9kb20vRG9jdW1lbnRNYXJrZXIuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9kb20vRG9j
dW1lbnRNYXJrZXIuaApAQCAtMTMxLDcgKzEzMSw3IEBAIHB1YmxpYzoKICAgICBEb2N1bWVudE1h
cmtlckRldGFpbHMqIGRldGFpbHMoKSBjb25zdDsKIAogICAgIHZvaWQgc2V0QWN0aXZlTWF0Y2go
Ym9vbCk7Ci0gICAgdm9pZCBjbGVhckRldGFpbHMoKSB7IG1fZGV0YWlscy5jbGVhcigpOyB9Cisg
ICAgdm9pZCBjbGVhckRldGFpbHMoKSB7IG1fZGV0YWlscyA9IG51bGxwdHI7IH0KIAogICAgIC8v
IE9mZnNldCBtb2RpZmljYXRpb25zIGFyZSBkb25lIGJ5IERvY3VtZW50TWFya2VyQ29udHJvbGxl
ci4KICAgICAvLyBPdGhlciBjbGFzc2VzIHNob3VsZCBub3QgY2FsbCBmb2xsb3dpbmcgc2V0dGVy
cy4KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2RvbS9Eb2N1bWVudFN0eWxlU2hlZXRDb2xs
ZWN0aW9uLmNwcCBiL1NvdXJjZS9XZWJDb3JlL2RvbS9Eb2N1bWVudFN0eWxlU2hlZXRDb2xsZWN0
aW9uLmNwcAppbmRleCAxY2JiZTg1MTU1MjVlMGExNTMyYzIyODM2ZjBlN2IzYWEzYmVkZWJhLi4z
MjJhYzg0YmQzMWI2ZWMyZDAzMmQxOWJmYzJhY2JmMzkzM2ZiNGE0IDEwMDY0NAotLS0gYS9Tb3Vy
Y2UvV2ViQ29yZS9kb20vRG9jdW1lbnRTdHlsZVNoZWV0Q29sbGVjdGlvbi5jcHAKKysrIGIvU291
cmNlL1dlYkNvcmUvZG9tL0RvY3VtZW50U3R5bGVTaGVldENvbGxlY3Rpb24uY3BwCkBAIC0xMDQs
NyArMTA0LDcgQEAgQ1NTU3R5bGVTaGVldCogRG9jdW1lbnRTdHlsZVNoZWV0Q29sbGVjdGlvbjo6
cGFnZVVzZXJTaGVldCgpCiB2b2lkIERvY3VtZW50U3R5bGVTaGVldENvbGxlY3Rpb246OmNsZWFy
UGFnZVVzZXJTaGVldCgpCiB7CiAgICAgaWYgKG1fcGFnZVVzZXJTaGVldCkgewotICAgICAgICBt
X3BhZ2VVc2VyU2hlZXQgPSAwOworICAgICAgICBtX3BhZ2VVc2VyU2hlZXQgPSBudWxscHRyOwog
ICAgICAgICBtX2RvY3VtZW50LnN0eWxlUmVzb2x2ZXJDaGFuZ2VkKERlZmVyUmVjYWxjU3R5bGUp
OwogICAgIH0KIH0KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2RvbS9FbGVtZW50LmNwcCBi
L1NvdXJjZS9XZWJDb3JlL2RvbS9FbGVtZW50LmNwcAppbmRleCBiZTg4NGViNTcxYTQwMmZiYjg3
YjFlZGFmYzJkNWI0MzAyNGY4Mzk4Li42YzhjOWUxNzBiYzllYjYxYmM1N2IwMjAwMDk5OTBmYjMy
OGIzMjk0IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9kb20vRWxlbWVudC5jcHAKKysrIGIv
U291cmNlL1dlYkNvcmUvZG9tL0VsZW1lbnQuY3BwCkBAIC0zMjA3LDcgKzMyMDcsNyBAQCB2b2lk
IEVsZW1lbnQ6OmNsb25lQXR0cmlidXRlc0Zyb21FbGVtZW50KGNvbnN0IEVsZW1lbnQmIG90aGVy
KQogCiAgICAgb3RoZXIuc3luY2hyb25pemVBbGxBdHRyaWJ1dGVzKCk7CiAgICAgaWYgKCFvdGhl
ci5tX2VsZW1lbnREYXRhKSB7Ci0gICAgICAgIG1fZWxlbWVudERhdGEuY2xlYXIoKTsKKyAgICAg
ICAgbV9lbGVtZW50RGF0YSA9IG51bGxwdHI7CiAgICAgICAgIHJldHVybjsKICAgICB9CiAKZGlm
ZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2RvbS9NdXRhdGlvbk9ic2VydmVyUmVnaXN0cmF0aW9u
LmNwcCBiL1NvdXJjZS9XZWJDb3JlL2RvbS9NdXRhdGlvbk9ic2VydmVyUmVnaXN0cmF0aW9uLmNw
cAppbmRleCA0NGU4ZjcwZmNiNmM0ODRjYmIwMmE3OTgzN2EzMzI1YzIxNzNmZjE0Li43MGEzMWRl
Y2FjMzVmMWRlYWJmODhkMGU4YTg4NWZiN2ZhODM0MTNkIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2Vi
Q29yZS9kb20vTXV0YXRpb25PYnNlcnZlclJlZ2lzdHJhdGlvbi5jcHAKKysrIGIvU291cmNlL1dl
YkNvcmUvZG9tL011dGF0aW9uT2JzZXJ2ZXJSZWdpc3RyYXRpb24uY3BwCkBAIC04OSw3ICs4OSw3
IEBAIHZvaWQgTXV0YXRpb25PYnNlcnZlclJlZ2lzdHJhdGlvbjo6Y2xlYXJUcmFuc2llbnRSZWdp
c3RyYXRpb25zKCkKICAgICBtX3RyYW5zaWVudFJlZ2lzdHJhdGlvbk5vZGVzID0gbnVsbHB0cjsK
IAogICAgIEFTU0VSVChtX3JlZ2lzdHJhdGlvbk5vZGVLZWVwQWxpdmUpOwotICAgIG1fcmVnaXN0
cmF0aW9uTm9kZUtlZXBBbGl2ZSA9IDA7IC8vIEJhbGFuY2VkIGluIG9ic2VydmVTdWJ0cmVlTm9k
ZVdpbGxEZXRhY2guCisgICAgbV9yZWdpc3RyYXRpb25Ob2RlS2VlcEFsaXZlID0gbnVsbHB0cjsg
Ly8gQmFsYW5jZWQgaW4gb2JzZXJ2ZVN1YnRyZWVOb2RlV2lsbERldGFjaC4KIH0KIAogdm9pZCBN
dXRhdGlvbk9ic2VydmVyUmVnaXN0cmF0aW9uOjp1bnJlZ2lzdGVyQW5kRGVsZXRlKE11dGF0aW9u
T2JzZXJ2ZXJSZWdpc3RyYXRpb24qIHJlZ2lzdHJ5KQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNv
cmUvZG9tL05vZGVJdGVyYXRvci5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9kb20vTm9kZUl0ZXJhdG9y
LmNwcAppbmRleCA1OGIyYjlmNjRjNzZlN2VjNjhhNzRmY2U2ZWVjNDU3NzY4YzVmZmEzLi42MWFl
MjhmNmY4ZTk4OTdjNGVhNjAxYjM1M2NkYTA5MWY0MjE0Y2UyIDEwMDY0NAotLS0gYS9Tb3VyY2Uv
V2ViQ29yZS9kb20vTm9kZUl0ZXJhdG9yLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9kb20vTm9k
ZUl0ZXJhdG9yLmNwcApAQCAtNDUsNyArNDUsNyBAQCBOb2RlSXRlcmF0b3I6Ok5vZGVQb2ludGVy
OjpOb2RlUG9pbnRlcihQYXNzUmVmUHRyPE5vZGU+IG4sIGJvb2wgYikKIAogdm9pZCBOb2RlSXRl
cmF0b3I6Ok5vZGVQb2ludGVyOjpjbGVhcigpCiB7Ci0gICAgbm9kZS5jbGVhcigpOworICAgIG5v
ZGUgPSBudWxscHRyOwogfQogCiBib29sIE5vZGVJdGVyYXRvcjo6Tm9kZVBvaW50ZXI6Om1vdmVU
b05leHQoTm9kZSogcm9vdCkKQEAgLTE1MSw3ICsxNTEsNyBAQCB2b2lkIE5vZGVJdGVyYXRvcjo6
ZGV0YWNoKCkKIHsKICAgICByb290KCktPmRvY3VtZW50KCkuZGV0YWNoTm9kZUl0ZXJhdG9yKHRo
aXMpOwogICAgIG1fZGV0YWNoZWQgPSB0cnVlOwotICAgIG1fcmVmZXJlbmNlTm9kZS5ub2RlLmNs
ZWFyKCk7CisgICAgbV9yZWZlcmVuY2VOb2RlLm5vZGUgPSBudWxscHRyOwogfQogCiB2b2lkIE5v
ZGVJdGVyYXRvcjo6bm9kZVdpbGxCZVJlbW92ZWQoTm9kZSYgcmVtb3ZlZE5vZGUpCmRpZmYgLS1n
aXQgYS9Tb3VyY2UvV2ViQ29yZS9kb20vUG9zaXRpb24uaCBiL1NvdXJjZS9XZWJDb3JlL2RvbS9Q
b3NpdGlvbi5oCmluZGV4IDBmMzE2ZGE4NTg4YTUxOTI5ZmQ0NzUxYzlmY2IzM2I5OTE2NzMzZWIu
LjYwM2U4OGYzZWMxYjFhYzNhYTkyMjkwNWMwMTM4MTIzODQyMGRkZWIgMTAwNjQ0Ci0tLSBhL1Nv
dXJjZS9XZWJDb3JlL2RvbS9Qb3NpdGlvbi5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL2RvbS9Qb3Np
dGlvbi5oCkBAIC05Miw3ICs5Miw3IEBAIHB1YmxpYzoKIAogICAgIEFuY2hvclR5cGUgYW5jaG9y
VHlwZSgpIGNvbnN0IHsgcmV0dXJuIHN0YXRpY19jYXN0PEFuY2hvclR5cGU+KG1fYW5jaG9yVHlw
ZSk7IH0KIAotICAgIHZvaWQgY2xlYXIoKSB7IG1fYW5jaG9yTm9kZS5jbGVhcigpOyBtX29mZnNl
dCA9IDA7IG1fYW5jaG9yVHlwZSA9IFBvc2l0aW9uSXNPZmZzZXRJbkFuY2hvcjsgbV9pc0xlZ2Fj
eUVkaXRpbmdQb3NpdGlvbiA9IGZhbHNlOyB9CisgICAgdm9pZCBjbGVhcigpIHsgbV9hbmNob3JO
b2RlID0gbnVsbHB0cjsgbV9vZmZzZXQgPSAwOyBtX2FuY2hvclR5cGUgPSBQb3NpdGlvbklzT2Zm
c2V0SW5BbmNob3I7IG1faXNMZWdhY3lFZGl0aW5nUG9zaXRpb24gPSBmYWxzZTsgfQogCiAgICAg
Ly8gVGhlc2UgYXJlIGFsd2F5cyBET00gY29tcGxpYW50IHZhbHVlcy4gIEVkaXRpbmcgcG9zaXRp
b25zIGxpa2UgW2ltZywgMF0gKGFrYSBbaW1nLCBiZWZvcmVdKQogICAgIC8vIHdpbGwgcmV0dXJu
IGltZy0+cGFyZW50Tm9kZSgpIGFuZCBpbWctPmNvbXB1dGVOb2RlSW5kZXgoKSBmcm9tIHRoZXNl
IGZ1bmN0aW9ucy4KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2RvbS9Qcm9jZXNzaW5nSW5z
dHJ1Y3Rpb24uY3BwIGIvU291cmNlL1dlYkNvcmUvZG9tL1Byb2Nlc3NpbmdJbnN0cnVjdGlvbi5j
cHAKaW5kZXggM2VjYjY0NjM5Y2ZhYmE2MGE1ZDNiNjZlMmZhZGU1MGRkY2I3ZjFiMC4uYjM0M2Nh
M2EwMWFlOGVlZmRiNTk3ZTVkNGUyMmUyN2I5OTNmZWY5MCAxMDA2NDQKLS0tIGEvU291cmNlL1dl
YkNvcmUvZG9tL1Byb2Nlc3NpbmdJbnN0cnVjdGlvbi5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUv
ZG9tL1Byb2Nlc3NpbmdJbnN0cnVjdGlvbi5jcHAKQEAgLTI4MSw3ICsyODEsNyBAQCB2b2lkIFBy
b2Nlc3NpbmdJbnN0cnVjdGlvbjo6cmVtb3ZlZEZyb20oQ29udGFpbmVyTm9kZSYgaW5zZXJ0aW9u
UG9pbnQpCiAgICAgaWYgKG1fc2hlZXQpIHsKICAgICAgICAgQVNTRVJUKG1fc2hlZXQtPm93bmVy
Tm9kZSgpID09IHRoaXMpOwogICAgICAgICBtX3NoZWV0LT5jbGVhck93bmVyTm9kZSgpOwotICAg
ICAgICBtX3NoZWV0ID0gMDsKKyAgICAgICAgbV9zaGVldCA9IG51bGxwdHI7CiAgICAgfQogCiAg
ICAgLy8gSWYgd2UncmUgaW4gZG9jdW1lbnQgdGVhcmRvd24sIHRoZW4gd2UgZG9uJ3QgbmVlZCB0
byBkbyBhbnkgbm90aWZpY2F0aW9uIG9mIG91ciBzaGVldCdzIHJlbW92YWwuCmRpZmYgLS1naXQg
YS9Tb3VyY2UvV2ViQ29yZS9kb20vUmFuZ2VCb3VuZGFyeVBvaW50LmggYi9Tb3VyY2UvV2ViQ29y
ZS9kb20vUmFuZ2VCb3VuZGFyeVBvaW50LmgKaW5kZXggYjA0ZGMwOGI1NWJmMDIxY2NkZGZiMjZh
ZWU1ZDM4NGIxMTI2YWUwMy4uNWIxNGEzZGZjMWUyZTI5ZjE0NzliZjQ2YzljZThiYWQ3ZGJlZWIx
OSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvZG9tL1JhbmdlQm91bmRhcnlQb2ludC5oCisr
KyBiL1NvdXJjZS9XZWJDb3JlL2RvbS9SYW5nZUJvdW5kYXJ5UG9pbnQuaApAQCAtMTEyLDkgKzEx
Miw5IEBAIGlubGluZSBpbnQgUmFuZ2VCb3VuZGFyeVBvaW50OjpvZmZzZXQoKSBjb25zdAogCiBp
bmxpbmUgdm9pZCBSYW5nZUJvdW5kYXJ5UG9pbnQ6OmNsZWFyKCkKIHsKLSAgICBtX2NvbnRhaW5l
ck5vZGUuY2xlYXIoKTsKKyAgICBtX2NvbnRhaW5lck5vZGUgPSBudWxscHRyOwogICAgIG1fb2Zm
c2V0SW5Db250YWluZXIgPSAwOwotICAgIG1fY2hpbGRCZWZvcmVCb3VuZGFyeSA9IDA7CisgICAg
bV9jaGlsZEJlZm9yZUJvdW5kYXJ5ID0gbnVsbHB0cjsKIH0KIAogaW5saW5lIHZvaWQgUmFuZ2VC
b3VuZGFyeVBvaW50OjpzZXQoUGFzc1JlZlB0cjxOb2RlPiBjb250YWluZXIsIGludCBvZmZzZXQs
IE5vZGUqIGNoaWxkQmVmb3JlKQpAQCAtMTQ5LDcgKzE0OSw3IEBAIGlubGluZSB2b2lkIFJhbmdl
Qm91bmRhcnlQb2ludDo6c2V0VG9TdGFydE9mTm9kZShQYXNzUmVmUHRyPE5vZGU+IGNvbnRhaW5l
cikKICAgICBBU1NFUlQoY29udGFpbmVyKTsKICAgICBtX2NvbnRhaW5lck5vZGUgPSBjb250YWlu
ZXI7CiAgICAgbV9vZmZzZXRJbkNvbnRhaW5lciA9IDA7Ci0gICAgbV9jaGlsZEJlZm9yZUJvdW5k
YXJ5ID0gMDsKKyAgICBtX2NoaWxkQmVmb3JlQm91bmRhcnkgPSBudWxscHRyOwogfQogCiBpbmxp
bmUgdm9pZCBSYW5nZUJvdW5kYXJ5UG9pbnQ6OnNldFRvRW5kT2ZOb2RlKFBhc3NSZWZQdHI8Tm9k
ZT4gY29udGFpbmVyKQpAQCAtMTU4LDcgKzE1OCw3IEBAIGlubGluZSB2b2lkIFJhbmdlQm91bmRh
cnlQb2ludDo6c2V0VG9FbmRPZk5vZGUoUGFzc1JlZlB0cjxOb2RlPiBjb250YWluZXIpCiAgICAg
bV9jb250YWluZXJOb2RlID0gY29udGFpbmVyOwogICAgIGlmIChtX2NvbnRhaW5lck5vZGUtPm9m
ZnNldEluQ2hhcmFjdGVycygpKSB7CiAgICAgICAgIG1fb2Zmc2V0SW5Db250YWluZXIgPSBtX2Nv
bnRhaW5lck5vZGUtPm1heENoYXJhY3Rlck9mZnNldCgpOwotICAgICAgICBtX2NoaWxkQmVmb3Jl
Qm91bmRhcnkgPSAwOworICAgICAgICBtX2NoaWxkQmVmb3JlQm91bmRhcnkgPSBudWxscHRyOwog
ICAgIH0gZWxzZSB7CiAgICAgICAgIG1fY2hpbGRCZWZvcmVCb3VuZGFyeSA9IG1fY29udGFpbmVy
Tm9kZS0+bGFzdENoaWxkKCk7CiAgICAgICAgIG1fb2Zmc2V0SW5Db250YWluZXIgPSBtX2NoaWxk
QmVmb3JlQm91bmRhcnkgPyBpbnZhbGlkT2Zmc2V0IDogMDsKZGlmZiAtLWdpdCBhL1NvdXJjZS9X
ZWJDb3JlL2RvbS9TcGFjZVNwbGl0U3RyaW5nLmggYi9Tb3VyY2UvV2ViQ29yZS9kb20vU3BhY2VT
cGxpdFN0cmluZy5oCmluZGV4IGVmNTY4MDFhNzcxMWRmNWEyY2I1NTgxM2JlNTY3M2YxOTAzMjhl
NzMuLmY4NWI5NjQyMTJkMWRhOGU4MDJkMTY2MDg5NDZjMzc3YWUwYjc4NWQgMTAwNjQ0Ci0tLSBh
L1NvdXJjZS9XZWJDb3JlL2RvbS9TcGFjZVNwbGl0U3RyaW5nLmgKKysrIGIvU291cmNlL1dlYkNv
cmUvZG9tL1NwYWNlU3BsaXRTdHJpbmcuaApAQCAtMTA1LDcgKzEwNSw3IEBAIHB1YmxpYzoKICAg
ICBib29sIG9wZXJhdG9yIT0oY29uc3QgU3BhY2VTcGxpdFN0cmluZyYgb3RoZXIpIGNvbnN0IHsg
cmV0dXJuIG1fZGF0YSAhPSBvdGhlci5tX2RhdGE7IH0KIAogICAgIHZvaWQgc2V0KGNvbnN0IEF0
b21pY1N0cmluZyYsIGJvb2wgc2hvdWxkRm9sZENhc2UpOwotICAgIHZvaWQgY2xlYXIoKSB7IG1f
ZGF0YS5jbGVhcigpOyB9CisgICAgdm9pZCBjbGVhcigpIHsgbV9kYXRhID0gbnVsbHB0cjsgfQog
CiAgICAgYm9vbCBjb250YWlucyhjb25zdCBBdG9taWNTdHJpbmcmIHN0cmluZykgY29uc3QgeyBy
ZXR1cm4gbV9kYXRhICYmIG1fZGF0YS0+Y29udGFpbnMoc3RyaW5nKTsgfQogICAgIGJvb2wgY29u
dGFpbnNBbGwoY29uc3QgU3BhY2VTcGxpdFN0cmluZyYgbmFtZXMpIGNvbnN0IHsgcmV0dXJuICFu
YW1lcy5tX2RhdGEgfHwgKG1fZGF0YSAmJiBtX2RhdGEtPmNvbnRhaW5zQWxsKCpuYW1lcy5tX2Rh
dGEpKTsgfQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvZG9tL1N0eWxlZEVsZW1lbnQuY3Bw
IGIvU291cmNlL1dlYkNvcmUvZG9tL1N0eWxlZEVsZW1lbnQuY3BwCmluZGV4IDViMjY5NjZiNWMz
ODdiOWM4ODdmODAwNmUwZDI1MGE1OGY2OTNkMDkuLjBlYzBkN2Y1YTBlZWE5ZGNiMWU4ZTY1ZTU2
OWQ2MjBkYzJkMmNjMDQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2RvbS9TdHlsZWRFbGVt
ZW50LmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9kb20vU3R5bGVkRWxlbWVudC5jcHAKQEAgLTE4
NSw3ICsxODUsNyBAQCBpbmxpbmUgdm9pZCBTdHlsZWRFbGVtZW50OjpzZXRJbmxpbmVTdHlsZUZy
b21TdHJpbmcoY29uc3QgQXRvbWljU3RyaW5nJiBuZXdTdHlsZQogICAgIC8vIFdlIHJlY29uc3Ry
dWN0IHRoZSBwcm9wZXJ0eSBzZXQgaW5zdGVhZCBvZiBtdXRhdGluZyBpZiB0aGVyZSBpcyBubyBD
U1NPTSB3cmFwcGVyLgogICAgIC8vIFRoaXMgbWFrZXMgd3JhcHBlcmxlc3MgcHJvcGVydHkgc2V0
cyBpbW11dGFibGUgYW5kIHNvIGNhY2hlYWJsZS4KICAgICBpZiAoaW5saW5lU3R5bGUgJiYgIWlz
PE11dGFibGVTdHlsZVByb3BlcnRpZXM+KCppbmxpbmVTdHlsZSkpCi0gICAgICAgIGlubGluZVN0
eWxlLmNsZWFyKCk7CisgICAgICAgIGlubGluZVN0eWxlID0gbnVsbHB0cjsKIAogICAgIGlmICgh
aW5saW5lU3R5bGUpCiAgICAgICAgIGlubGluZVN0eWxlID0gQ1NTUGFyc2VyOjpwYXJzZUlubGlu
ZVN0eWxlRGVjbGFyYXRpb24obmV3U3R5bGVTdHJpbmcsIHRoaXMpOwpAQCAtMjAyLDcgKzIwMiw3
IEBAIHZvaWQgU3R5bGVkRWxlbWVudDo6c3R5bGVBdHRyaWJ1dGVDaGFuZ2VkKGNvbnN0IEF0b21p
Y1N0cmluZyYgbmV3U3R5bGVTdHJpbmcsIEF0CiAgICAgaWYgKG5ld1N0eWxlU3RyaW5nLmlzTnVs
bCgpKSB7CiAgICAgICAgIGlmIChQcm9wZXJ0eVNldENTU1N0eWxlRGVjbGFyYXRpb24qIGNzc29t
V3JhcHBlciA9IGlubGluZVN0eWxlQ1NTT01XcmFwcGVyKCkpCiAgICAgICAgICAgICBjc3NvbVdy
YXBwZXItPmNsZWFyUGFyZW50RWxlbWVudCgpOwotICAgICAgICBlbnN1cmVVbmlxdWVFbGVtZW50
RGF0YSgpLm1faW5saW5lU3R5bGUuY2xlYXIoKTsKKyAgICAgICAgZW5zdXJlVW5pcXVlRWxlbWVu
dERhdGEoKS5tX2lubGluZVN0eWxlID0gbnVsbHB0cjsKICAgICB9IGVsc2UgaWYgKHJlYXNvbiA9
PSBNb2RpZmllZEJ5Q2xvbmluZyB8fCBkb2N1bWVudCgpLmNvbnRlbnRTZWN1cml0eVBvbGljeSgp
LT5hbGxvd0lubGluZVN0eWxlKGRvY3VtZW50KCkudXJsKCksIHN0YXJ0TGluZU51bWJlcikpCiAg
ICAgICAgIHNldElubGluZVN0eWxlRnJvbVN0cmluZyhuZXdTdHlsZVN0cmluZyk7CiAKZGlmZiAt
LWdpdCBhL1NvdXJjZS9XZWJDb3JlL2RvbS9kZWZhdWx0L1BsYXRmb3JtTWVzc2FnZVBvcnRDaGFu
bmVsLmNwcCBiL1NvdXJjZS9XZWJDb3JlL2RvbS9kZWZhdWx0L1BsYXRmb3JtTWVzc2FnZVBvcnRD
aGFubmVsLmNwcAppbmRleCBjNjg2MTFmYzhmYzdiZWNmYWRmOGQ4NDgzYjE0ZmY5MDhjZjQ2MWZh
Li5jNDE3NDg2Mzc0OTE3MzY3MzNmN2MyOTFhNDZlNWE5ZDE3YjdkMjc2IDEwMDY0NAotLS0gYS9T
b3VyY2UvV2ViQ29yZS9kb20vZGVmYXVsdC9QbGF0Zm9ybU1lc3NhZ2VQb3J0Q2hhbm5lbC5jcHAK
KysrIGIvU291cmNlL1dlYkNvcmUvZG9tL2RlZmF1bHQvUGxhdGZvcm1NZXNzYWdlUG9ydENoYW5u
ZWwuY3BwCkBAIC0xODMsOSArMTgzLDkgQEAgdm9pZCBQbGF0Zm9ybU1lc3NhZ2VQb3J0Q2hhbm5l
bDo6Y2xvc2VJbnRlcm5hbCgpCiB7CiAgICAgTXV0ZXhMb2NrZXIgbG9jayhtX211dGV4KTsKICAg
ICAvLyBEaXNlbnRhbmdsZSBvdXJzZWx2ZXMgZnJvbSB0aGUgb3RoZXIgZW5kLiBXZSBzdGlsbCBt
YWludGFpbiBhIHJlZmVyZW5jZSB0byBvdXIgaW5jb21pbmcgcXVldWUsIHNpbmNlIHByZXZpb3Vz
bHktZXhpc3RpbmcgbWVzc2FnZXMgc2hvdWxkIHN0aWxsIGJlIGRlbGl2ZXJlZC4KLSAgICBtX3Jl
bW90ZVBvcnQgPSAwOwotICAgIG1fZW50YW5nbGVkQ2hhbm5lbCA9IDA7Ci0gICAgbV9vdXRnb2lu
Z1F1ZXVlID0gMDsKKyAgICBtX3JlbW90ZVBvcnQgPSBudWxscHRyOworICAgIG1fZW50YW5nbGVk
Q2hhbm5lbCA9IG51bGxwdHI7CisgICAgbV9vdXRnb2luZ1F1ZXVlID0gbnVsbHB0cjsKIH0KIAog
fSAvLyBuYW1lc3BhY2UgV2ViQ29yZQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvZWRpdGlu
Zy9BbHRlcm5hdGl2ZVRleHRDb250cm9sbGVyLmNwcCBiL1NvdXJjZS9XZWJDb3JlL2VkaXRpbmcv
QWx0ZXJuYXRpdmVUZXh0Q29udHJvbGxlci5jcHAKaW5kZXggZjViYzk0ODkxY2FmN2U3MDk3YTAz
ZTI3MjllNzI4ZjI2MzZmMDhiZC4uMjc1ZTQzMGViNzNjMTRjYTJjZmYzM2M2NTc3NjFlNDYxOWU1
ZWFlOSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvZWRpdGluZy9BbHRlcm5hdGl2ZVRleHRD
b250cm9sbGVyLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9lZGl0aW5nL0FsdGVybmF0aXZlVGV4
dENvbnRyb2xsZXIuY3BwCkBAIC0xNDcsNyArMTQ3LDcgQEAgdm9pZCBBbHRlcm5hdGl2ZVRleHRD
b250cm9sbGVyOjpzdGFydEFsdGVybmF0aXZlVGV4dFVJVGltZXIoQWx0ZXJuYXRpdmVUZXh0VHlw
ZQogCiAgICAgLy8gSWYgdHlwZSBpcyBQYW5lbFR5cGVSZXZlcnNpb24sIHRoZW4gdGhlIG5ldyBy
YW5nZSBoYXMgYmVlbiBzZXQuIFNvIHdlIHNob3VsZG4ndCBjbGVhciBpdC4KICAgICBpZiAodHlw
ZSA9PSBBbHRlcm5hdGl2ZVRleHRUeXBlQ29ycmVjdGlvbikKLSAgICAgICAgbV9hbHRlcm5hdGl2
ZVRleHRJbmZvLnJhbmdlV2l0aEFsdGVybmF0aXZlLmNsZWFyKCk7CisgICAgICAgIG1fYWx0ZXJu
YXRpdmVUZXh0SW5mby5yYW5nZVdpdGhBbHRlcm5hdGl2ZSA9IG51bGxwdHI7CiAgICAgbV9hbHRl
cm5hdGl2ZVRleHRJbmZvLnR5cGUgPSB0eXBlOwogICAgIG1fdGltZXIuc3RhcnRPbmVTaG90KGNv
cnJlY3Rpb25QYW5lbFRpbWVySW50ZXJ2YWwpOwogfQpAQCAtMTU1LDcgKzE1NSw3IEBAIHZvaWQg
QWx0ZXJuYXRpdmVUZXh0Q29udHJvbGxlcjo6c3RhcnRBbHRlcm5hdGl2ZVRleHRVSVRpbWVyKEFs
dGVybmF0aXZlVGV4dFR5cGUKIHZvaWQgQWx0ZXJuYXRpdmVUZXh0Q29udHJvbGxlcjo6c3RvcEFs
dGVybmF0aXZlVGV4dFVJVGltZXIoKQogewogICAgIG1fdGltZXIuc3RvcCgpOwotICAgIG1fYWx0
ZXJuYXRpdmVUZXh0SW5mby5yYW5nZVdpdGhBbHRlcm5hdGl2ZS5jbGVhcigpOworICAgIG1fYWx0
ZXJuYXRpdmVUZXh0SW5mby5yYW5nZVdpdGhBbHRlcm5hdGl2ZSA9IG51bGxwdHI7CiB9CiAKIHZv
aWQgQWx0ZXJuYXRpdmVUZXh0Q29udHJvbGxlcjo6c3RvcFBlbmRpbmdDb3JyZWN0aW9uKGNvbnN0
IFZpc2libGVTZWxlY3Rpb24mIG9sZFNlbGVjdGlvbikKQEAgLTE4Myw3ICsxODMsNyBAQCB2b2lk
IEFsdGVybmF0aXZlVGV4dENvbnRyb2xsZXI6OmFwcGx5UGVuZGluZ0NvcnJlY3Rpb24oY29uc3Qg
VmlzaWJsZVNlbGVjdGlvbiYgcwogICAgIGlmIChkb0FwcGx5Q29ycmVjdGlvbikKICAgICAgICAg
aGFuZGxlQWx0ZXJuYXRpdmVUZXh0VUlSZXN1bHQoZGlzbWlzc1Nvb24oUmVhc29uRm9yRGlzbWlz
c2luZ0FsdGVybmF0aXZlVGV4dEFjY2VwdGVkKSk7IAogICAgIGVsc2UKLSAgICAgICAgbV9hbHRl
cm5hdGl2ZVRleHRJbmZvLnJhbmdlV2l0aEFsdGVybmF0aXZlLmNsZWFyKCk7CisgICAgICAgIG1f
YWx0ZXJuYXRpdmVUZXh0SW5mby5yYW5nZVdpdGhBbHRlcm5hdGl2ZSA9IG51bGxwdHI7CiB9CiAK
IGJvb2wgQWx0ZXJuYXRpdmVUZXh0Q29udHJvbGxlcjo6aGFzUGVuZGluZ0NvcnJlY3Rpb24oKSBj
b25zdApAQCAtMzU5LDcgKzM1OSw3IEBAIHZvaWQgQWx0ZXJuYXRpdmVUZXh0Q29udHJvbGxlcjo6
dGltZXJGaXJlZCgpCiAgICAgICAgIFZlY3RvcjxTdHJpbmc+IHN1Z2dlc3Rpb25zOwogICAgICAg
ICB0ZXh0Q2hlY2tlcigpLT5nZXRHdWVzc2VzRm9yV29yZChtX2FsdGVybmF0aXZlVGV4dEluZm8u
b3JpZ2luYWxUZXh0LCBwYXJhZ3JhcGhUZXh0LCBzdWdnZXN0aW9ucyk7CiAgICAgICAgIGlmIChz
dWdnZXN0aW9ucy5pc0VtcHR5KCkpIHsKLSAgICAgICAgICAgIG1fYWx0ZXJuYXRpdmVUZXh0SW5m
by5yYW5nZVdpdGhBbHRlcm5hdGl2ZS5jbGVhcigpOworICAgICAgICAgICAgbV9hbHRlcm5hdGl2
ZVRleHRJbmZvLnJhbmdlV2l0aEFsdGVybmF0aXZlID0gbnVsbHB0cjsKICAgICAgICAgICAgIGJy
ZWFrOwogICAgICAgICB9CiAgICAgICAgIFN0cmluZyB0b3BTdWdnZXN0aW9uID0gc3VnZ2VzdGlv
bnMuZmlyc3QoKTsKQEAgLTQyMiw3ICs0MjIsNyBAQCB2b2lkIEFsdGVybmF0aXZlVGV4dENvbnRy
b2xsZXI6OmhhbmRsZUFsdGVybmF0aXZlVGV4dFVJUmVzdWx0KGNvbnN0IFN0cmluZyYgcmVzdQog
ICAgICAgICBicmVhazsKICAgICB9CiAKLSAgICBtX2FsdGVybmF0aXZlVGV4dEluZm8ucmFuZ2VX
aXRoQWx0ZXJuYXRpdmUuY2xlYXIoKTsKKyAgICBtX2FsdGVybmF0aXZlVGV4dEluZm8ucmFuZ2VX
aXRoQWx0ZXJuYXRpdmUgPSBudWxscHRyOwogfQogCiBib29sIEFsdGVybmF0aXZlVGV4dENvbnRy
b2xsZXI6OmlzQXV0b21hdGljU3BlbGxpbmdDb3JyZWN0aW9uRW5hYmxlZCgpCmRpZmYgLS1naXQg
YS9Tb3VyY2UvV2ViQ29yZS9lZGl0aW5nL0FwcGx5QmxvY2tFbGVtZW50Q29tbWFuZC5jcHAgYi9T
b3VyY2UvV2ViQ29yZS9lZGl0aW5nL0FwcGx5QmxvY2tFbGVtZW50Q29tbWFuZC5jcHAKaW5kZXgg
NDMzZTk1MzY2NGY3MDFkMTIxMjZmYjQwM2E2N2NiZmJhN2Y0ZjA4OC4uMjFhYmU3MWNjOGVkZDUw
ZjE2MzRmMDQzMzBhOGMxMmJjYzkxNjVlZSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvZWRp
dGluZy9BcHBseUJsb2NrRWxlbWVudENvbW1hbmQuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2Vk
aXRpbmcvQXBwbHlCbG9ja0VsZW1lbnRDb21tYW5kLmNwcApAQCAtMTQzLDcgKzE0Myw3IEBAIHZv
aWQgQXBwbHlCbG9ja0VsZW1lbnRDb21tYW5kOjpmb3JtYXRTZWxlY3Rpb24oY29uc3QgVmlzaWJs
ZVBvc2l0aW9uJiBzdGFydE9mU2VsCiAgICAgICAgIC8vIERvbid0IHB1dCB0aGUgbmV4dCBwYXJh
Z3JhcGggaW4gdGhlIGJsb2NrcXVvdGUgd2UganVzdCBjcmVhdGVkIGZvciB0aGlzIHBhcmFncmFw
aCB1bmxlc3MgCiAgICAgICAgIC8vIHRoZSBuZXh0IHBhcmFncmFwaCBpcyBpbiB0aGUgc2FtZSBj
ZWxsLgogICAgICAgICBpZiAoZW5jbG9zaW5nQ2VsbCAmJiBlbmNsb3NpbmdDZWxsICE9IGVuY2xv
c2luZ05vZGVPZlR5cGUoZW5kT2ZOZXh0UGFyYWdyYXBoLmRlZXBFcXVpdmFsZW50KCksICZpc1Rh
YmxlQ2VsbCkpCi0gICAgICAgICAgICBibG9ja3F1b3RlRm9yTmV4dEluZGVudCA9IDA7CisgICAg
ICAgICAgICBibG9ja3F1b3RlRm9yTmV4dEluZGVudCA9IG51bGxwdHI7CiAKICAgICAgICAgLy8g
aW5kZW50SW50b0Jsb2NrcXVvdGUgY291bGQgbW92ZSBtb3JlIHRoYW4gb25lIHBhcmFncmFwaCBp
ZiB0aGUgcGFyYWdyYXBoCiAgICAgICAgIC8vIGlzIGluIGEgbGlzdCBpdGVtIG9yIGEgdGFibGUu
IEFzIGEgcmVzdWx0LCBlbmRBZnRlclNlbGVjdGlvbiBjb3VsZCByZWZlciB0byBhIHBvc2l0aW9u
CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9lZGl0aW5nL0RlbGV0ZVNlbGVjdGlvbkNvbW1h
bmQuY3BwIGIvU291cmNlL1dlYkNvcmUvZWRpdGluZy9EZWxldGVTZWxlY3Rpb25Db21tYW5kLmNw
cAppbmRleCBlYjNhNWYzMGEwM2YyODRlMjI2MGZmNDhmYmE5ZjFiOTk5YWQ5OTI3Li5jNjQ5MWQy
NjkyNjVlNWFiNmNlOTY1ZWFhOTUzNDFiNjU0NDdkMWFlIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2Vi
Q29yZS9lZGl0aW5nL0RlbGV0ZVNlbGVjdGlvbkNvbW1hbmQuY3BwCisrKyBiL1NvdXJjZS9XZWJD
b3JlL2VkaXRpbmcvRGVsZXRlU2VsZWN0aW9uQ29tbWFuZC5jcHAKQEAgLTMwMiw3ICszMDIsNyBA
QCB2b2lkIERlbGV0ZVNlbGVjdGlvbkNvbW1hbmQ6OnNhdmVUeXBpbmdTdHlsZVN0YXRlKCkKICAg
ICBpZiAoZW5jbG9zaW5nTm9kZU9mVHlwZShtX3NlbGVjdGlvblRvRGVsZXRlLnN0YXJ0KCksIGlz
TWFpbEJsb2NrcXVvdGUpKQogICAgICAgICBtX2RlbGV0ZUludG9CbG9ja3F1b3RlU3R5bGUgPSBF
ZGl0aW5nU3R5bGU6OmNyZWF0ZShtX3NlbGVjdGlvblRvRGVsZXRlLmVuZCgpKTsKICAgICBlbHNl
Ci0gICAgICAgIG1fZGVsZXRlSW50b0Jsb2NrcXVvdGVTdHlsZSA9IDA7CisgICAgICAgIG1fZGVs
ZXRlSW50b0Jsb2NrcXVvdGVTdHlsZSA9IG51bGxwdHI7CiB9CiAKIGJvb2wgRGVsZXRlU2VsZWN0
aW9uQ29tbWFuZDo6aGFuZGxlU3BlY2lhbENhc2VCUkRlbGV0ZSgpCkBAIC03MjgsMTEgKzcyOCwx
MSBAQCB2b2lkIERlbGV0ZVNlbGVjdGlvbkNvbW1hbmQ6OmNhbGN1bGF0ZVR5cGluZ1N0eWxlQWZ0
ZXJEZWxldGUoKQogICAgIC8vIElmIHdlIGRlbGV0ZWQgaW50byBhIGJsb2NrcXVvdGUsIGJ1dCBh
cmUgbm93IG5vIGxvbmdlciBpbiBhIGJsb2NrcXVvdGUsIHVzZSB0aGUgYWx0ZXJuYXRlIHR5cGlu
ZyBzdHlsZQogICAgIGlmIChtX2RlbGV0ZUludG9CbG9ja3F1b3RlU3R5bGUgJiYgIWVuY2xvc2lu
Z05vZGVPZlR5cGUobV9lbmRpbmdQb3NpdGlvbiwgaXNNYWlsQmxvY2txdW90ZSwgQ2FuQ3Jvc3NF
ZGl0aW5nQm91bmRhcnkpKQogICAgICAgICBtX3R5cGluZ1N0eWxlID0gbV9kZWxldGVJbnRvQmxv
Y2txdW90ZVN0eWxlOwotICAgIG1fZGVsZXRlSW50b0Jsb2NrcXVvdGVTdHlsZSA9IDA7CisgICAg
bV9kZWxldGVJbnRvQmxvY2txdW90ZVN0eWxlID0gbnVsbHB0cjsKIAogICAgIG1fdHlwaW5nU3R5
bGUtPnByZXBhcmVUb0FwcGx5QXQobV9lbmRpbmdQb3NpdGlvbik7CiAgICAgaWYgKG1fdHlwaW5n
U3R5bGUtPmlzRW1wdHkoKSkKLSAgICAgICAgbV90eXBpbmdTdHlsZSA9IDA7CisgICAgICAgIG1f
dHlwaW5nU3R5bGUgPSBudWxscHRyOwogICAgIC8vIFRoaXMgaXMgd2hlcmUgd2UndmUgZGVsZXRl
ZCBhbGwgdHJhY2VzIG9mIGEgc3R5bGUgYnV0IG5vdCBhIHdob2xlIHBhcmFncmFwaCAodGhhdCdz
IGhhbmRsZWQgYWJvdmUpLgogICAgIC8vIEluIHRoaXMgY2FzZSBpZiB3ZSBzdGFydCB0eXBpbmcs
IHRoZSBuZXcgY2hhcmFjdGVycyBzaG91bGQgaGF2ZSB0aGUgc2FtZSBzdHlsZSBhcyB0aGUganVz
dCBkZWxldGVkIG9uZXMsCiAgICAgLy8gYnV0LCBpZiB3ZSBjaGFuZ2UgdGhlIHNlbGVjdGlvbiwg
Y29tZSBiYWNrIGFuZCBzdGFydCB0eXBpbmcgdGhhdCBzdHlsZSBzaG91bGQgYmUgbG9zdC4gIEFs
c28gc2VlIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvZWRpdGluZy9FZGl0aW5nU3R5bGUu
Y3BwIGIvU291cmNlL1dlYkNvcmUvZWRpdGluZy9FZGl0aW5nU3R5bGUuY3BwCmluZGV4IDVjZjEy
Y2Q5YjczOGExZGQ3NDBkNWVjZDU1YmQ1OTcyZDllZDI2NjEuLjE3YWFiMjk1YmE2YjkyZGFlMmE3
MjQ0ZGMxNTY4ZWZmMmY1NTc0N2EgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2VkaXRpbmcv
RWRpdGluZ1N0eWxlLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9lZGl0aW5nL0VkaXRpbmdTdHls
ZS5jcHAKQEAgLTYzOCw3ICs2MzgsNyBAQCB2b2lkIEVkaXRpbmdTdHlsZTo6b3ZlcnJpZGVUeXBp
bmdTdHlsZUF0KGNvbnN0IEVkaXRpbmdTdHlsZSYgc3R5bGUsIGNvbnN0IFBvc2l0aQogCiB2b2lk
IEVkaXRpbmdTdHlsZTo6Y2xlYXIoKQogewotICAgIG1fbXV0YWJsZVN0eWxlLmNsZWFyKCk7Cisg
ICAgbV9tdXRhYmxlU3R5bGUgPSBudWxscHRyOwogICAgIG1fc2hvdWxkVXNlRml4ZWREZWZhdWx0
Rm9udFNpemUgPSBmYWxzZTsKICAgICBtX2ZvbnRTaXplRGVsdGEgPSBOb0ZvbnREZWx0YTsKICAg
ICBzZXRVbmRlcmxpbmVDaGFuZ2UoVGV4dERlY29yYXRpb25DaGFuZ2U6Ok5vbmUpOwpkaWZmIC0t
Z2l0IGEvU291cmNlL1dlYkNvcmUvZWRpdGluZy9FZGl0b3IuY3BwIGIvU291cmNlL1dlYkNvcmUv
ZWRpdGluZy9FZGl0b3IuY3BwCmluZGV4IGEzYzNjOWMzYjQzNDQyOTc1MWY3M2VmMTkyOGM0MTlj
OTVkNWE5N2MuLmU3Njg3ZWMyNDY1MDA1ZGI1NzQ2ZmU2YzRhZGY2YzE1ODY4N2IzNzQgMTAwNjQ0
Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2VkaXRpbmcvRWRpdG9yLmNwcAorKysgYi9Tb3VyY2UvV2Vi
Q29yZS9lZGl0aW5nL0VkaXRvci5jcHAKQEAgLTgyOCw3ICs4MjgsNyBAQCB2b2lkIEVkaXRvcjo6
cmVtb3ZlRm9ybWF0dGluZ0FuZFN0eWxlKCkKIAogdm9pZCBFZGl0b3I6OmNsZWFyTGFzdEVkaXRD
b21tYW5kKCkgCiB7Ci0gICAgbV9sYXN0RWRpdENvbW1hbmQuY2xlYXIoKTsKKyAgICBtX2xhc3RF
ZGl0Q29tbWFuZCA9IG51bGxwdHI7CiB9CiAjaWYgUExBVEZPUk0oSU9TKQogLy8gSWYgdGhlIHNl
bGVjdGlvbiBpcyBhZGp1c3RlZCBmcm9tIFVJS2l0IHdpdGhvdXQgY2xvc2luZyB0aGUgdHlwaW5n
LCB0aGUgdHlwaW5nIGNvbW1hbmQgbWF5CkBAIC0xMDY2LDcgKzEwNjYsNyBAQCB2b2lkIEVkaXRv
cjo6dW5hcHBsaWVkRWRpdGluZyhQYXNzUmVmUHRyPEVkaXRDb21tYW5kQ29tcG9zaXRpb24+IGNt
ZCkKIAogICAgIG1fYWx0ZXJuYXRpdmVUZXh0Q29udHJvbGxlci0+cmVzcG9uZFRvVW5hcHBsaWVk
RWRpdGluZyhjbWQuZ2V0KCkpOwogCi0gICAgbV9sYXN0RWRpdENvbW1hbmQgPSAwOworICAgIG1f
bGFzdEVkaXRDb21tYW5kID0gbnVsbHB0cjsKICAgICBpZiAoY2xpZW50KCkpCiAgICAgICAgIGNs
aWVudCgpLT5yZWdpc3RlclJlZG9TdGVwKGNtZCk7CiAgICAgcmVzcG9uZFRvQ2hhbmdlZENvbnRl
bnRzKG5ld1NlbGVjdGlvbik7CkBAIC0xMDg0LDcgKzEwODQsNyBAQCB2b2lkIEVkaXRvcjo6cmVh
cHBsaWVkRWRpdGluZyhQYXNzUmVmUHRyPEVkaXRDb21tYW5kQ29tcG9zaXRpb24+IGNtZCkKICAg
ICAKICAgICB1cGRhdGVFZGl0b3JVSU5vd0lmU2NoZWR1bGVkKCk7CiAKLSAgICBtX2xhc3RFZGl0
Q29tbWFuZCA9IDA7CisgICAgbV9sYXN0RWRpdENvbW1hbmQgPSBudWxscHRyOwogICAgIGlmIChj
bGllbnQoKSkKICAgICAgICAgY2xpZW50KCktPnJlZ2lzdGVyVW5kb1N0ZXAoY21kKTsKICAgICBy
ZXNwb25kVG9DaGFuZ2VkQ29udGVudHMobmV3U2VsZWN0aW9uKTsKQEAgLTE3MjcsNyArMTcyNyw3
IEBAIHZvaWQgRWRpdG9yOjpzZXRDb21wb3NpdGlvbihjb25zdCBTdHJpbmcmIHRleHQsIFNldENv
bXBvc2l0aW9uTW9kZSBtb2RlKQogICAgIGlmICh0ZXh0LmlzRW1wdHkoKSAmJiBtb2RlICE9IENh
bmNlbENvbXBvc2l0aW9uKQogICAgICAgICBUeXBpbmdDb21tYW5kOjpkZWxldGVTZWxlY3Rpb24o
ZG9jdW1lbnQoKSwgMCk7CiAKLSAgICBtX2NvbXBvc2l0aW9uTm9kZSA9IDA7CisgICAgbV9jb21w
b3NpdGlvbk5vZGUgPSBudWxscHRyOwogICAgIG1fY3VzdG9tQ29tcG9zaXRpb25VbmRlcmxpbmVz
LmNsZWFyKCk7CiAKICAgICBpbnNlcnRUZXh0Rm9yQ29uZmlybWVkQ29tcG9zaXRpb24odGV4dCk7
CkBAIC0xODAyLDcgKzE4MDIsNyBAQCB2b2lkIEVkaXRvcjo6c2V0Q29tcG9zaXRpb24oY29uc3Qg
U3RyaW5nJiB0ZXh0LCBjb25zdCBWZWN0b3I8Q29tcG9zaXRpb25VbmRlcmxpbgogICAgIGlmICh0
ZXh0LmlzRW1wdHkoKSkKICAgICAgICAgVHlwaW5nQ29tbWFuZDo6ZGVsZXRlU2VsZWN0aW9uKGRv
Y3VtZW50KCksIFR5cGluZ0NvbW1hbmQ6OlByZXZlbnRTcGVsbENoZWNraW5nKTsKIAotICAgIG1f
Y29tcG9zaXRpb25Ob2RlID0gMDsKKyAgICBtX2NvbXBvc2l0aW9uTm9kZSA9IG51bGxwdHI7CiAg
ICAgbV9jdXN0b21Db21wb3NpdGlvblVuZGVybGluZXMuY2xlYXIoKTsKIAogICAgIGlmICghdGV4
dC5pc0VtcHR5KCkpIHsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2VkaXRpbmcvRnJhbWVT
ZWxlY3Rpb24uY3BwIGIvU291cmNlL1dlYkNvcmUvZWRpdGluZy9GcmFtZVNlbGVjdGlvbi5jcHAK
aW5kZXggYjBlMjUzNTg3ZmQ4YWRjZGUzNGQ4YmIyMWFiM2FlZmI4NjNkNmI4Mi4uZmEwODgzNzEy
NTM3MWExMWNiODc5OThmYTRhMTU3MWRkMTg0ZmIzMyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNv
cmUvZWRpdGluZy9GcmFtZVNlbGVjdGlvbi5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvZWRpdGlu
Zy9GcmFtZVNlbGVjdGlvbi5jcHAKQEAgLTEzNTksNyArMTM1OSw3IEBAIHZvaWQgRnJhbWVTZWxl
Y3Rpb246OnByZXBhcmVGb3JEZXN0cnVjdGlvbigpCiAgICAgICAgIHZpZXctPmNsZWFyU2VsZWN0
aW9uKCk7CiAKICAgICBzZXRTZWxlY3Rpb25XaXRob3V0VXBkYXRpbmdBcHBlYXJhbmNlKFZpc2li
bGVTZWxlY3Rpb24oKSwgZGVmYXVsdFNldFNlbGVjdGlvbk9wdGlvbnMoKSwgQWxpZ25DdXJzb3JP
blNjcm9sbElmTmVlZGVkLCBDaGFyYWN0ZXJHcmFudWxhcml0eSk7Ci0gICAgbV9wcmV2aW91c0Nh
cmV0Tm9kZS5jbGVhcigpOworICAgIG1fcHJldmlvdXNDYXJldE5vZGUgPSBudWxscHRyOwogfQog
CiB2b2lkIEZyYW1lU2VsZWN0aW9uOjpzZXRTdGFydChjb25zdCBWaXNpYmxlUG9zaXRpb24gJnBv
cywgRVVzZXJUcmlnZ2VyZWQgdHJpZ2dlcikKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2Vk
aXRpbmcvRnJhbWVTZWxlY3Rpb24uaCBiL1NvdXJjZS9XZWJDb3JlL2VkaXRpbmcvRnJhbWVTZWxl
Y3Rpb24uaAppbmRleCBlZDg3OTZlZjAzMTAyOGM3YmYyOTBiZTM0ODhkOTg2OWIyM2VlOWIyLi4z
MTBhNzRhYWI5ZDJmNTFkZmE3MWJkMWFkOTY2MzQ4MzdiNjEyNWMwIDEwMDY0NAotLS0gYS9Tb3Vy
Y2UvV2ViQ29yZS9lZGl0aW5nL0ZyYW1lU2VsZWN0aW9uLmgKKysrIGIvU291cmNlL1dlYkNvcmUv
ZWRpdGluZy9GcmFtZVNlbGVjdGlvbi5oCkBAIC0zNTksNyArMzU5LDcgQEAgaW5saW5lIEVkaXRp
bmdTdHlsZSogRnJhbWVTZWxlY3Rpb246OnR5cGluZ1N0eWxlKCkgY29uc3QKIAogaW5saW5lIHZv
aWQgRnJhbWVTZWxlY3Rpb246OmNsZWFyVHlwaW5nU3R5bGUoKQogewotICAgIG1fdHlwaW5nU3R5
bGUuY2xlYXIoKTsKKyAgICBtX3R5cGluZ1N0eWxlID0gbnVsbHB0cjsKIH0KIAogaW5saW5lIHZv
aWQgRnJhbWVTZWxlY3Rpb246OnNldFR5cGluZ1N0eWxlKFBhc3NSZWZQdHI8RWRpdGluZ1N0eWxl
PiBzdHlsZSkKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2VkaXRpbmcvSW5kZW50T3V0ZGVu
dENvbW1hbmQuY3BwIGIvU291cmNlL1dlYkNvcmUvZWRpdGluZy9JbmRlbnRPdXRkZW50Q29tbWFu
ZC5jcHAKaW5kZXggYjIzOGY4NzkzMTU2YzcyOTcyZTVhN2NkZTNhYWNkZTM5Y2UwMWIwZi4uZWM0
ZDI3MjQ0N2VjYWI3NTY1MDQxOTdkNjc1NTI3MmQ4YjhjZjYzMSAxMDA2NDQKLS0tIGEvU291cmNl
L1dlYkNvcmUvZWRpdGluZy9JbmRlbnRPdXRkZW50Q29tbWFuZC5jcHAKKysrIGIvU291cmNlL1dl
YkNvcmUvZWRpdGluZy9JbmRlbnRPdXRkZW50Q29tbWFuZC5jcHAKQEAgLTIzMiw3ICsyMzIsNyBA
QCB2b2lkIEluZGVudE91dGRlbnRDb21tYW5kOjpmb3JtYXRTZWxlY3Rpb24oY29uc3QgVmlzaWJs
ZVBvc2l0aW9uJiBzdGFydE9mU2VsZWN0aQogdm9pZCBJbmRlbnRPdXRkZW50Q29tbWFuZDo6Zm9y
bWF0UmFuZ2UoY29uc3QgUG9zaXRpb24mIHN0YXJ0LCBjb25zdCBQb3NpdGlvbiYgZW5kLCBjb25z
dCBQb3NpdGlvbiYsIFJlZlB0cjxFbGVtZW50PiYgYmxvY2txdW90ZUZvck5leHRJbmRlbnQpCiB7
CiAgICAgaWYgKHRyeUluZGVudGluZ0FzTGlzdEl0ZW0oc3RhcnQsIGVuZCkpCi0gICAgICAgIGJs
b2NrcXVvdGVGb3JOZXh0SW5kZW50ID0gMDsKKyAgICAgICAgYmxvY2txdW90ZUZvck5leHRJbmRl
bnQgPSBudWxscHRyOwogICAgIGVsc2UKICAgICAgICAgaW5kZW50SW50b0Jsb2NrcXVvdGUoc3Rh
cnQsIGVuZCwgYmxvY2txdW90ZUZvck5leHRJbmRlbnQpOwogfQpkaWZmIC0tZ2l0IGEvU291cmNl
L1dlYkNvcmUvZWRpdGluZy9SZXBsYWNlU2VsZWN0aW9uQ29tbWFuZC5jcHAgYi9Tb3VyY2UvV2Vi
Q29yZS9lZGl0aW5nL1JlcGxhY2VTZWxlY3Rpb25Db21tYW5kLmNwcAppbmRleCAyZTI1ZWVmMGVj
NjBiNTdmZWYyMzlkNDM5Y2IxZWU5MTQ2NjFjODAyLi5lZWUyMjBjODZmOThhNWU3ZDI4OTljNDMz
ZmE5MWYwMDAwNTQ2YmUzIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9lZGl0aW5nL1JlcGxh
Y2VTZWxlY3Rpb25Db21tYW5kLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9lZGl0aW5nL1JlcGxh
Y2VTZWxlY3Rpb25Db21tYW5kLmNwcApAQCAtMzU0LDggKzM1NCw4IEBAIGlubGluZSB2b2lkIFJl
cGxhY2VTZWxlY3Rpb25Db21tYW5kOjpJbnNlcnRlZE5vZGVzOjp3aWxsUmVtb3ZlTm9kZVByZXNl
cnZpbmdDaGlsCiBpbmxpbmUgdm9pZCBSZXBsYWNlU2VsZWN0aW9uQ29tbWFuZDo6SW5zZXJ0ZWRO
b2Rlczo6d2lsbFJlbW92ZU5vZGUoTm9kZSogbm9kZSkKIHsKICAgICBpZiAobV9maXJzdE5vZGVJ
bnNlcnRlZCA9PSBub2RlICYmIG1fbGFzdE5vZGVJbnNlcnRlZCA9PSBub2RlKSB7Ci0gICAgICAg
IG1fZmlyc3ROb2RlSW5zZXJ0ZWQgPSAwOwotICAgICAgICBtX2xhc3ROb2RlSW5zZXJ0ZWQgPSAw
OworICAgICAgICBtX2ZpcnN0Tm9kZUluc2VydGVkID0gbnVsbHB0cjsKKyAgICAgICAgbV9sYXN0
Tm9kZUluc2VydGVkID0gbnVsbHB0cjsKICAgICB9IGVsc2UgaWYgKG1fZmlyc3ROb2RlSW5zZXJ0
ZWQgPT0gbm9kZSkKICAgICAgICAgbV9maXJzdE5vZGVJbnNlcnRlZCA9IE5vZGVUcmF2ZXJzYWw6
Om5leHRTa2lwcGluZ0NoaWxkcmVuKCptX2ZpcnN0Tm9kZUluc2VydGVkKTsKICAgICBlbHNlIGlm
IChtX2xhc3ROb2RlSW5zZXJ0ZWQgPT0gbm9kZSkKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3Jl
L2VkaXRpbmcvU3BlbGxDaGVja2VyLmNwcCBiL1NvdXJjZS9XZWJDb3JlL2VkaXRpbmcvU3BlbGxD
aGVja2VyLmNwcAppbmRleCA4YjRkNTQxMTljMDEzYzQ4NWVmNDRlYjkzMzc1NzM5MjhjNjQ4MGRi
Li4wM2YyZTUxMDQ4MzUyMTUyMGQyOWI3N2U3NjhkZmM5M2JhYTQwNTkzIDEwMDY0NAotLS0gYS9T
b3VyY2UvV2ViQ29yZS9lZGl0aW5nL1NwZWxsQ2hlY2tlci5jcHAKKysrIGIvU291cmNlL1dlYkNv
cmUvZWRpdGluZy9TcGVsbENoZWNrZXIuY3BwCkBAIC0yMTQsNyArMjE0LDcgQEAgdm9pZCBTcGVs
bENoZWNrZXI6OmRpZENoZWNrKGludCBzZXF1ZW5jZSwgY29uc3QgVmVjdG9yPFRleHRDaGVja2lu
Z1Jlc3VsdD4mIHJlc3UKICAgICBpZiAobV9sYXN0UHJvY2Vzc2VkU2VxdWVuY2UgPCBzZXF1ZW5j
ZSkKICAgICAgICAgbV9sYXN0UHJvY2Vzc2VkU2VxdWVuY2UgPSBzZXF1ZW5jZTsKIAotICAgIG1f
cHJvY2Vzc2luZ1JlcXVlc3QuY2xlYXIoKTsKKyAgICBtX3Byb2Nlc3NpbmdSZXF1ZXN0ID0gbnVs
bHB0cjsKICAgICBpZiAoIW1fcmVxdWVzdFF1ZXVlLmlzRW1wdHkoKSkKICAgICAgICAgbV90aW1l
clRvUHJvY2Vzc1F1ZXVlZFJlcXVlc3Quc3RhcnRPbmVTaG90KDApOwogfQpkaWZmIC0tZ2l0IGEv
U291cmNlL1dlYkNvcmUvZWRpdGluZy9UZXh0Q2hlY2tpbmdIZWxwZXIuY3BwIGIvU291cmNlL1dl
YkNvcmUvZWRpdGluZy9UZXh0Q2hlY2tpbmdIZWxwZXIuY3BwCmluZGV4IDAyNGQyYWQ3YzI0ZjQx
NGU1MWZlMTY2NmNmOTA5MjcyMTNkZWYxNzAuLmU5NjEzNGQ3OGE5MmJiMDVlN2YyZWQ3NzA5Yjhj
Y2E0YzRhY2EzYjUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2VkaXRpbmcvVGV4dENoZWNr
aW5nSGVscGVyLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9lZGl0aW5nL1RleHRDaGVja2luZ0hl
bHBlci5jcHAKQEAgLTE0Niw3ICsxNDYsNyBAQCB2b2lkIFRleHRDaGVja2luZ1BhcmFncmFwaDo6
ZXhwYW5kUmFuZ2VUb05leHRFbmQoKQogdm9pZCBUZXh0Q2hlY2tpbmdQYXJhZ3JhcGg6OmludmFs
aWRhdGVQYXJhZ3JhcGhSYW5nZVZhbHVlcygpCiB7CiAgICAgbV9jaGVja2luZ1N0YXJ0ID0gbV9j
aGVja2luZ0VuZCA9IC0xOwotICAgIG1fb2Zmc2V0QXNSYW5nZSA9IDA7CisgICAgbV9vZmZzZXRB
c1JhbmdlID0gbnVsbHB0cjsKICAgICBtX3RleHQgPSBTdHJpbmcoKTsKIH0KIApkaWZmIC0tZ2l0
IGEvU291cmNlL1dlYkNvcmUvZmlsZWFwaS9GaWxlUmVhZGVyLmNwcCBiL1NvdXJjZS9XZWJDb3Jl
L2ZpbGVhcGkvRmlsZVJlYWRlci5jcHAKaW5kZXggN2Y0YzA1ZDI5MzU2NGY5ODRiZmI4YmQzMDJl
OWZhNDhiYzYzODY2NS4uNjFmYzJkZTYxYWVmOGEzZWJiMDg4NGQ3NDA3NmU2YjNiZDFkMGIxMyAx
MDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvZmlsZWFwaS9GaWxlUmVhZGVyLmNwcAorKysgYi9T
b3VyY2UvV2ViQ29yZS9maWxlYXBpL0ZpbGVSZWFkZXIuY3BwCkBAIC0xNDAsNyArMTQwLDcgQEAg
dm9pZCBGaWxlUmVhZGVyOjpyZWFkSW50ZXJuYWwoQmxvYiogYmxvYiwgRmlsZVJlYWRlckxvYWRl
cjo6UmVhZFR5cGUgdHlwZSwgRXhjZXAKICAgICBtX2Jsb2IgPSBibG9iOwogICAgIG1fcmVhZFR5
cGUgPSB0eXBlOwogICAgIG1fc3RhdGUgPSBMT0FESU5HOwotICAgIG1fZXJyb3IgPSAwOworICAg
IG1fZXJyb3IgPSBudWxscHRyOwogCiAgICAgbV9sb2FkZXIgPSBzdGQ6Om1ha2VfdW5pcXVlPEZp
bGVSZWFkZXJMb2FkZXI+KG1fcmVhZFR5cGUsIHRoaXMpOwogICAgIG1fbG9hZGVyLT5zZXRFbmNv
ZGluZyhtX2VuY29kaW5nKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2ZpbGVhcGkvRmls
ZVJlYWRlckxvYWRlci5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9maWxlYXBpL0ZpbGVSZWFkZXJMb2Fk
ZXIuY3BwCmluZGV4IDk0ZTBhNGE3Y2I0MTBiYWZlM2FlZWQzOGZiNmNlMmZjZTI5YWUyNmEuLmQ4
ZmZjMTAyMzM1ZjFiMjVkNTcyZGI2YjI3NWE3NDQ0NTI3ZWEyZDkgMTAwNjQ0Ci0tLSBhL1NvdXJj
ZS9XZWJDb3JlL2ZpbGVhcGkvRmlsZVJlYWRlckxvYWRlci5jcHAKKysrIGIvU291cmNlL1dlYkNv
cmUvZmlsZWFwaS9GaWxlUmVhZGVyTG9hZGVyLmNwcApAQCAtMTIxLDExICsxMjEsMTEgQEAgdm9p
ZCBGaWxlUmVhZGVyTG9hZGVyOjp0ZXJtaW5hdGUoKQogCiB2b2lkIEZpbGVSZWFkZXJMb2FkZXI6
OmNsZWFudXAoKQogewotICAgIG1fbG9hZGVyID0gMDsKKyAgICBtX2xvYWRlciA9IG51bGxwdHI7
CiAKICAgICAvLyBJZiB3ZSBnZXQgYW55IGVycm9yLCB3ZSBkbyBub3QgbmVlZCB0byBrZWVwIGEg
YnVmZmVyIGFyb3VuZC4KICAgICBpZiAobV9lcnJvckNvZGUpIHsKLSAgICAgICAgbV9yYXdEYXRh
ID0gMDsKKyAgICAgICAgbV9yYXdEYXRhID0gbnVsbHB0cjsKICAgICAgICAgbV9zdHJpbmdSZXN1
bHQgPSAiIjsKICAgICB9CiB9CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9oaXN0b3J5L0hp
c3RvcnlJdGVtLmNwcCBiL1NvdXJjZS9XZWJDb3JlL2hpc3RvcnkvSGlzdG9yeUl0ZW0uY3BwCmlu
ZGV4IDIyOWJhYjhlN2EyM2FjMDVjMGFkMDVlN2VkNDMxNTdkY2Q3ZThiMDMuLjgyOTU3M2Y3ZDc5
YjZhOTI3NTJiNmEwN2JiOGI1NzkwOTYzMmRiZDEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3Jl
L2hpc3RvcnkvSGlzdG9yeUl0ZW0uY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2hpc3RvcnkvSGlz
dG9yeUl0ZW0uY3BwCkBAIC0xOTYsMTAgKzE5NiwxMCBAQCB2b2lkIEhpc3RvcnlJdGVtOjpyZXNl
dCgpCiAKICAgICBtX2l0ZW1TZXF1ZW5jZU51bWJlciA9IGdlbmVyYXRlU2VxdWVuY2VOdW1iZXIo
KTsKIAotICAgIG1fc3RhdGVPYmplY3QgPSAwOworICAgIG1fc3RhdGVPYmplY3QgPSBudWxscHRy
OwogICAgIG1fZG9jdW1lbnRTZXF1ZW5jZU51bWJlciA9IGdlbmVyYXRlU2VxdWVuY2VOdW1iZXIo
KTsKIAotICAgIG1fZm9ybURhdGEgPSAwOworICAgIG1fZm9ybURhdGEgPSBudWxscHRyOwogICAg
IG1fZm9ybUNvbnRlbnRUeXBlID0gU3RyaW5nKCk7CiAKICAgICBjbGVhckNoaWxkcmVuKCk7CkBA
IC01MjQsNyArNTI0LDcgQEAgdm9pZCBIaXN0b3J5SXRlbTo6c2V0Rm9ybUluZm9Gcm9tUmVxdWVz
dChjb25zdCBSZXNvdXJjZVJlcXVlc3QmIHJlcXVlc3QpCiAgICAgICAgIG1fZm9ybURhdGEgPSBy
ZXF1ZXN0Lmh0dHBCb2R5KCk7CiAgICAgICAgIG1fZm9ybUNvbnRlbnRUeXBlID0gcmVxdWVzdC5o
dHRwQ29udGVudFR5cGUoKTsKICAgICB9IGVsc2UgewotICAgICAgICBtX2Zvcm1EYXRhID0gMDsK
KyAgICAgICAgbV9mb3JtRGF0YSA9IG51bGxwdHI7CiAgICAgICAgIG1fZm9ybUNvbnRlbnRUeXBl
ID0gU3RyaW5nKCk7CiAgICAgfQogfQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvaHRtbC9C
YXNlQ2hvb3Nlck9ubHlEYXRlQW5kVGltZUlucHV0VHlwZS5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9o
dG1sL0Jhc2VDaG9vc2VyT25seURhdGVBbmRUaW1lSW5wdXRUeXBlLmNwcAppbmRleCBlOWE2Y2Mw
MzkzYzUwNTU2OGQ1MTM0M2M2NTdhNmJkYmFkMWE5NTIzLi5kYmVhMGU5OWJkOTM0YzdkYmRlYTUy
ZDI1ZDAxYzJmODE3NWRjMWQwIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9odG1sL0Jhc2VD
aG9vc2VyT25seURhdGVBbmRUaW1lSW5wdXRUeXBlLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9o
dG1sL0Jhc2VDaG9vc2VyT25seURhdGVBbmRUaW1lSW5wdXRUeXBlLmNwcApAQCAtOTgsNyArOTgs
NyBAQCB2b2lkIEJhc2VDaG9vc2VyT25seURhdGVBbmRUaW1lSW5wdXRUeXBlOjpkaWRDaG9vc2VW
YWx1ZShjb25zdCBTdHJpbmcmIHZhbHVlKQogCiB2b2lkIEJhc2VDaG9vc2VyT25seURhdGVBbmRU
aW1lSW5wdXRUeXBlOjpkaWRFbmRDaG9vc2VyKCkKIHsKLSAgICBtX2RhdGVUaW1lQ2hvb3Nlci5j
bGVhcigpOworICAgIG1fZGF0ZVRpbWVDaG9vc2VyID0gbnVsbHB0cjsKIH0KIAogdm9pZCBCYXNl
Q2hvb3Nlck9ubHlEYXRlQW5kVGltZUlucHV0VHlwZTo6Y2xvc2VEYXRlVGltZUNob29zZXIoKQpk
aWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvaHRtbC9GVFBEaXJlY3RvcnlEb2N1bWVudC5jcHAg
Yi9Tb3VyY2UvV2ViQ29yZS9odG1sL0ZUUERpcmVjdG9yeURvY3VtZW50LmNwcAppbmRleCBlNzU1
M2Q3NDMwM2RkOTRkYjI2MTBkY2RkMmExODBmNGY4ZWIyMDllLi4wMGRlOWZmNTcxYThlMzhlMmMy
ZDhjYzVlOWMxYmM3YzIzOTdlZTY5IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9odG1sL0ZU
UERpcmVjdG9yeURvY3VtZW50LmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9odG1sL0ZUUERpcmVj
dG9yeURvY3VtZW50LmNwcApAQCAtNDExLDcgKzQxMSw3IEBAIHZvaWQgRlRQRGlyZWN0b3J5RG9j
dW1lbnRQYXJzZXI6OmZpbmlzaCgpCiAgICAgICAgIG1fY2FycnlPdmVyID0gU3RyaW5nKCk7CiAg
ICAgfQogCi0gICAgbV90YWJsZUVsZW1lbnQgPSAwOworICAgIG1fdGFibGVFbGVtZW50ID0gbnVs
bHB0cjsKICAgICBmYXN0RnJlZShtX2J1ZmZlcik7CiAKICAgICBIVE1MRG9jdW1lbnRQYXJzZXI6
OmZpbmlzaCgpOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvaHRtbC9GaWxlSW5wdXRUeXBl
LmNwcCBiL1NvdXJjZS9XZWJDb3JlL2h0bWwvRmlsZUlucHV0VHlwZS5jcHAKaW5kZXggYTNkM2I2
YjcxMWZmZTFlOGFhMWFmZGZmYzE4NmViYzBhZjUyYzE0Ny4uNDg5ZDc5OTM4ZmNmZDIyNmZjOTk0
YzI2MGU2ZTU1MzUzYzU0YWYyOSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvaHRtbC9GaWxl
SW5wdXRUeXBlLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9odG1sL0ZpbGVJbnB1dFR5cGUuY3Bw
CkBAIC0yNTAsNyArMjUwLDcgQEAgdm9pZCBGaWxlSW5wdXRUeXBlOjpzZXRWYWx1ZShjb25zdCBT
dHJpbmcmLCBib29sLCBUZXh0RmllbGRFdmVudEJlaGF2aW9yKQogewogICAgIC8vIEZJWE1FOiBT
aG91bGQgd2UgY2xlYXIgdGhlIGZpbGUgbGlzdCwgb3IgcmVwbGFjZSBpdCB3aXRoIGEgbmV3IGVt
cHR5IG9uZSBoZXJlPyBUaGlzIGlzIG9ic2VydmFibGUgZnJvbSBKYXZhU2NyaXB0IHRocm91Z2gg
Y3VzdG9tIHByb3BlcnRpZXMuCiAgICAgbV9maWxlTGlzdC0+Y2xlYXIoKTsKLSAgICBtX2ljb24u
Y2xlYXIoKTsKKyAgICBtX2ljb24gPSBudWxscHRyOwogICAgIGVsZW1lbnQoKS5zZXROZWVkc1N0
eWxlUmVjYWxjKCk7CiB9CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTENh
bnZhc0VsZW1lbnQuY3BwIGIvU291cmNlL1dlYkNvcmUvaHRtbC9IVE1MQ2FudmFzRWxlbWVudC5j
cHAKaW5kZXggODZkNDVhNDhhMGM3NjJkYWI3MjZmZDk5NmFmNzI0NmM4MTg3ODY2My4uY2U1ZDdi
MmE1ZjI3ZjRjNzZmNTEwZDZlZjU5NWUzMGFhMjU0YTMyYSAxMDA2NDQKLS0tIGEvU291cmNlL1dl
YkNvcmUvaHRtbC9IVE1MQ2FudmFzRWxlbWVudC5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvaHRt
bC9IVE1MQ2FudmFzRWxlbWVudC5jcHAKQEAgLTQyMyw3ICs0MjMsNyBAQCB2b2lkIEhUTUxDYW52
YXNFbGVtZW50OjptYWtlUHJlc2VudGF0aW9uQ29weSgpCiAKIHZvaWQgSFRNTENhbnZhc0VsZW1l
bnQ6OmNsZWFyUHJlc2VudGF0aW9uQ29weSgpCiB7Ci0gICAgbV9wcmVzZW50ZWRJbWFnZS5jbGVh
cigpOworICAgIG1fcHJlc2VudGVkSW1hZ2UgPSBudWxscHRyOwogfQogCiB2b2lkIEhUTUxDYW52
YXNFbGVtZW50OjpzZXRTdXJmYWNlU2l6ZShjb25zdCBJbnRTaXplJiBzaXplKQpAQCAtNjQ0LDcg
KzY0NCw3IEBAIHZvaWQgSFRNTENhbnZhc0VsZW1lbnQ6OmNsZWFySW1hZ2VCdWZmZXIoKSBjb25z
dAogCiB2b2lkIEhUTUxDYW52YXNFbGVtZW50OjpjbGVhckNvcGllZEltYWdlKCkKIHsKLSAgICBt
X2NvcGllZEltYWdlLmNsZWFyKCk7CisgICAgbV9jb3BpZWRJbWFnZSA9IG51bGxwdHI7CiAgICAg
bV9kaWRDbGVhckltYWdlQnVmZmVyID0gZmFsc2U7CiB9CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9X
ZWJDb3JlL2h0bWwvSFRNTExpbmtFbGVtZW50LmNwcCBiL1NvdXJjZS9XZWJDb3JlL2h0bWwvSFRN
TExpbmtFbGVtZW50LmNwcAppbmRleCBjMjNlZGZmM2EyYWFlY2YxYjBkYzBhNjVlOTg0OWQ1OTky
ZDZhYjI3Li5lNGUxMjgxMWM4NDUxMzIwMzhkODdjZjNiYzZjODQ0NjMzZjAwZWUxIDEwMDY0NAot
LS0gYS9Tb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxMaW5rRWxlbWVudC5jcHAKKysrIGIvU291cmNl
L1dlYkNvcmUvaHRtbC9IVE1MTGlua0VsZW1lbnQuY3BwCkBAIC0yNjQsNyArMjY0LDcgQEAgdm9p
ZCBIVE1MTGlua0VsZW1lbnQ6OmNsZWFyU2hlZXQoKQogICAgIEFTU0VSVChtX3NoZWV0KTsKICAg
ICBBU1NFUlQobV9zaGVldC0+b3duZXJOb2RlKCkgPT0gdGhpcyk7CiAgICAgbV9zaGVldC0+Y2xl
YXJPd25lck5vZGUoKTsKLSAgICBtX3NoZWV0ID0gMDsKKyAgICBtX3NoZWV0ID0gbnVsbHB0cjsK
IH0KIAogTm9kZTo6SW5zZXJ0aW9uTm90aWZpY2F0aW9uUmVxdWVzdCBIVE1MTGlua0VsZW1lbnQ6
Omluc2VydGVkSW50byhDb250YWluZXJOb2RlJiBpbnNlcnRpb25Qb2ludCkKZGlmZiAtLWdpdCBh
L1NvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTE1lZGlhRWxlbWVudC5jcHAgYi9Tb3VyY2UvV2ViQ29y
ZS9odG1sL0hUTUxNZWRpYUVsZW1lbnQuY3BwCmluZGV4IDRmZWFlYjk3Yzk5YzE4NTE1NGQ3ZjM5
OTM3ZjRiZTVjNmM0MzgzZTEuLmRkODg5MmYzY2I0Y2Q3OGRkNGZkZjc4MGZlMmUwNTFkYTJkYzQ5
NjYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTE1lZGlhRWxlbWVudC5jcHAK
KysrIGIvU291cmNlL1dlYkNvcmUvaHRtbC9IVE1MTWVkaWFFbGVtZW50LmNwcApAQCAtNDU3LDcg
KzQ1Nyw3IEBAIEhUTUxNZWRpYUVsZW1lbnQ6On5IVE1MTWVkaWFFbGVtZW50KCkKIAogICAgIGlm
IChtX21lZGlhQ29udHJvbGxlcikgewogICAgICAgICBtX21lZGlhQ29udHJvbGxlci0+cmVtb3Zl
TWVkaWFFbGVtZW50KHRoaXMpOwotICAgICAgICBtX21lZGlhQ29udHJvbGxlciA9IDA7CisgICAg
ICAgIG1fbWVkaWFDb250cm9sbGVyID0gbnVsbHB0cjsKICAgICB9CiAKICNpZiBFTkFCTEUoTUVE
SUFfU09VUkNFKQpAQCAtOTQyLDcgKzk0Miw3IEBAIHZvaWQgSFRNTE1lZGlhRWxlbWVudDo6cHJl
cGFyZUZvckxvYWQoKQogCiAgICAgLy8gMSAtIEFib3J0IGFueSBhbHJlYWR5LXJ1bm5pbmcgaW5z
dGFuY2Ugb2YgdGhlIHJlc291cmNlIHNlbGVjdGlvbiBhbGdvcml0aG0gZm9yIHRoaXMgZWxlbWVu
dC4KICAgICBtX2xvYWRTdGF0ZSA9IFdhaXRpbmdGb3JTb3VyY2U7Ci0gICAgbV9jdXJyZW50U291
cmNlTm9kZSA9IDA7CisgICAgbV9jdXJyZW50U291cmNlTm9kZSA9IG51bGxwdHI7CiAKICAgICAv
LyAyIC0gSWYgdGhlcmUgYXJlIGFueSB0YXNrcyBmcm9tIHRoZSBtZWRpYSBlbGVtZW50J3MgbWVk
aWEgZWxlbWVudCBldmVudCB0YXNrIHNvdXJjZSBpbiAKICAgICAvLyBvbmUgb2YgdGhlIHRhc2sg
cXVldWVzLCB0aGVuIHJlbW92ZSB0aG9zZSB0YXNrcy4KQEAgLTEwMDYsNyArMTAwNiw3IEBAIHZv
aWQgSFRNTE1lZGlhRWxlbWVudDo6cHJlcGFyZUZvckxvYWQoKQogICAgIHNldFBsYXliYWNrUmF0
ZShkZWZhdWx0UGxheWJhY2tSYXRlKCkpOwogCiAgICAgLy8gNiAtIFNldCB0aGUgZXJyb3IgYXR0
cmlidXRlIHRvIG51bGwgYW5kIHRoZSBhdXRvcGxheWluZyBmbGFnIHRvIHRydWUuCi0gICAgbV9l
cnJvciA9IDA7CisgICAgbV9lcnJvciA9IG51bGxwdHI7CiAgICAgbV9hdXRvcGxheWluZyA9IHRy
dWU7CiAKICAgICAvLyA3IC0gSW52b2tlIHRoZSBtZWRpYSBlbGVtZW50J3MgcmVzb3VyY2Ugc2Vs
ZWN0aW9uIGFsZ29yaXRobS4KQEAgLTExMDEsNyArMTEwMSw3IEBAIHZvaWQgSFRNTE1lZGlhRWxl
bWVudDo6c2VsZWN0TWVkaWFSZXNvdXJjZSgpCiAgICAgICAgIGlmIChhdXRvIGZpcnN0U291cmNl
ID0gY2hpbGRyZW5PZlR5cGU8SFRNTFNvdXJjZUVsZW1lbnQ+KCp0aGlzKS5maXJzdCgpKSB7CiAg
ICAgICAgICAgICBtb2RlID0gY2hpbGRyZW47CiAgICAgICAgICAgICBtX25leHRDaGlsZE5vZGVU
b0NvbnNpZGVyID0gZmlyc3RTb3VyY2U7Ci0gICAgICAgICAgICBtX2N1cnJlbnRTb3VyY2VOb2Rl
ID0gMDsKKyAgICAgICAgICAgIG1fY3VycmVudFNvdXJjZU5vZGUgPSBudWxscHRyOwogICAgICAg
ICB9IGVsc2UgewogICAgICAgICAgICAgLy8gT3RoZXJ3aXNlIHRoZSBtZWRpYSBlbGVtZW50IGhh
cyBuZWl0aGVyIGEgc3JjIGF0dHJpYnV0ZSBub3IgYSBzb3VyY2UgZWxlbWVudCAKICAgICAgICAg
ICAgIC8vIGNoaWxkOiBzZXQgdGhlIG5ldHdvcmtTdGF0ZSB0byBORVRXT1JLX0VNUFRZLCBhbmQg
YWJvcnQgdGhlc2Ugc3RlcHM7IHRoZSAKQEAgLTEyNzcsNyArMTI3Nyw3IEBAIHZvaWQgSFRNTE1l
ZGlhRWxlbWVudDo6bG9hZFJlc291cmNlKGNvbnN0IFVSTCYgaW5pdGlhbFVSTCwgQ29udGVudFR5
cGUmIGNvbnRlbnRUCiAgICAgICAgIGVsc2UgewogICAgICAgICAgICAgLy8gRm9yZ2V0IG91ciBy
ZWZlcmVuY2UgdG8gdGhlIE1lZGlhU291cmNlLCBzbyB3ZSBsZWF2ZSBpdCBhbG9uZQogICAgICAg
ICAgICAgLy8gd2hpbGUgcHJvY2Vzc2luZyByZW1haW5kZXIgb2YgbG9hZCBmYWlsdXJlLgotICAg
ICAgICAgICAgbV9tZWRpYVNvdXJjZSA9IDA7CisgICAgICAgICAgICBtX21lZGlhU291cmNlID0g
bnVsbHB0cjsKICAgICAgICAgICAgIG1lZGlhTG9hZGluZ0ZhaWxlZChNZWRpYVBsYXllcjo6Rm9y
bWF0RXJyb3IpOwogICAgICAgICB9CiAgICAgfSBlbHNlCkBAIC0xODAwLDcgKzE4MDAsNyBAQCB2
b2lkIEhUTUxNZWRpYUVsZW1lbnQ6Om5vbmVTdXBwb3J0ZWQoKQogCiAgICAgc3RvcFBlcmlvZGlj
VGltZXJzKCk7CiAgICAgbV9sb2FkU3RhdGUgPSBXYWl0aW5nRm9yU291cmNlOwotICAgIG1fY3Vy
cmVudFNvdXJjZU5vZGUgPSAwOworICAgIG1fY3VycmVudFNvdXJjZU5vZGUgPSBudWxscHRyOwog
CiAgICAgLy8gNC44LjEwLjUgCiAgICAgLy8gNiAtIFJlYWNoaW5nIHRoaXMgc3RlcCBpbmRpY2F0
ZXMgdGhhdCB0aGUgbWVkaWEgcmVzb3VyY2UgZmFpbGVkIHRvIGxvYWQgb3IgdGhhdCB0aGUgZ2l2
ZW4gCkBAIC0yOTM5LDcgKzI5MzksNyBAQCB2b2lkIEhUTUxNZWRpYUVsZW1lbnQ6OmNsb3NlTWVk
aWFTb3VyY2UoKQogICAgICAgICByZXR1cm47CiAKICAgICBtX21lZGlhU291cmNlLT5jbG9zZSgp
OwotICAgIG1fbWVkaWFTb3VyY2UgPSAwOworICAgIG1fbWVkaWFTb3VyY2UgPSBudWxscHRyOwog
fQogI2VuZGlmCiAKQEAgLTQxMTIsOCArNDExMiw4IEBAIGNoZWNrX2FnYWluOgogICAgICAgICBt
X2N1cnJlbnRTb3VyY2VOb2RlID0gc291cmNlOwogICAgICAgICBtX25leHRDaGlsZE5vZGVUb0Nv
bnNpZGVyID0gc291cmNlLT5uZXh0U2libGluZygpOwogICAgIH0gZWxzZSB7Ci0gICAgICAgIG1f
Y3VycmVudFNvdXJjZU5vZGUgPSAwOwotICAgICAgICBtX25leHRDaGlsZE5vZGVUb0NvbnNpZGVy
ID0gMDsKKyAgICAgICAgbV9jdXJyZW50U291cmNlTm9kZSA9IG51bGxwdHI7CisgICAgICAgIG1f
bmV4dENoaWxkTm9kZVRvQ29uc2lkZXIgPSBudWxscHRyOwogICAgIH0KIAogI2lmICFMT0dfRElT
QUJMRUQKQEAgLTQxOTMsNyArNDE5Myw3IEBAIHZvaWQgSFRNTE1lZGlhRWxlbWVudDo6c291cmNl
V2FzUmVtb3ZlZChIVE1MU291cmNlRWxlbWVudCogc291cmNlKQogICAgICAgICAvLyBDbGVhciB0
aGUgY3VycmVudCBzb3VyY2Ugbm9kZSBwb2ludGVyLCBidXQgZG9uJ3QgY2hhbmdlIHRoZSBtb3Zp
ZSBhcyB0aGUgc3BlYyBzYXlzOgogICAgICAgICAvLyA0LjguOCAtIER5bmFtaWNhbGx5IG1vZGlm
eWluZyBhIHNvdXJjZSBlbGVtZW50IGFuZCBpdHMgYXR0cmlidXRlIHdoZW4gdGhlIGVsZW1lbnQg
aXMgYWxyZWFkeSAKICAgICAgICAgLy8gaW5zZXJ0ZWQgaW4gYSB2aWRlbyBvciBhdWRpbyBlbGVt
ZW50IHdpbGwgaGF2ZSBubyBlZmZlY3QuCi0gICAgICAgIG1fY3VycmVudFNvdXJjZU5vZGUgPSAw
OworICAgICAgICBtX2N1cnJlbnRTb3VyY2VOb2RlID0gbnVsbHB0cjsKICAgICAgICAgTE9HKE1l
ZGlhLCAiSFRNTE1lZGlhRWxlbWVudDo6c291cmNlUmVtb3ZlZCglcCkgLSBtX2N1cnJlbnRTb3Vy
Y2VOb2RlIHNldCB0byAwIiwgdGhpcyk7CiAgICAgfQogfQpAQCAtNDc5NSw3ICs0Nzk1LDcgQEAg
dm9pZCBIVE1MTWVkaWFFbGVtZW50Ojp1c2VyQ2FuY2VsbGVkTG9hZCgpCiAgICAgc2V0U2hvdWxk
RGVsYXlMb2FkRXZlbnQoZmFsc2UpOwogCiAgICAgLy8gNiAtIEFib3J0IHRoZSBvdmVyYWxsIHJl
c291cmNlIHNlbGVjdGlvbiBhbGdvcml0aG0uCi0gICAgbV9jdXJyZW50U291cmNlTm9kZSA9IDA7
CisgICAgbV9jdXJyZW50U291cmNlTm9kZSA9IG51bGxwdHI7CiAKICAgICAvLyBSZXNldCBtX3Jl
YWR5U3RhdGUgc2luY2UgbV9wbGF5ZXIgaXMgZ29uZS4KICAgICBtX3JlYWR5U3RhdGUgPSBIQVZF
X05PVEhJTkc7CkBAIC00ODEyLDggKzQ4MTIsOCBAQCB2b2lkIEhUTUxNZWRpYUVsZW1lbnQ6OmNs
ZWFyTWVkaWFQbGF5ZXIoaW50IGZsYWdzKQogCiAjaWYgVVNFKFBMQVRGT1JNX1RFWFRfVFJBQ0tf
TUVOVSkKICAgICBpZiAocGxhdGZvcm1UZXh0VHJhY2tNZW51KCkpIHsKLSAgICAgICAgbV9wbGF0
Zm9ybU1lbnUtPnNldENsaWVudCgwKTsKLSAgICAgICAgbV9wbGF0Zm9ybU1lbnUgPSAwOworICAg
ICAgICBtX3BsYXRmb3JtTWVudS0+c2V0Q2xpZW50KG51bGxwdHIpOworICAgICAgICBtX3BsYXRm
b3JtTWVudSA9IG51bGxwdHI7CiAgICAgfQogI2VuZGlmCiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9X
ZWJDb3JlL2h0bWwvSFRNTFBsdWdJbkVsZW1lbnQuY3BwIGIvU291cmNlL1dlYkNvcmUvaHRtbC9I
VE1MUGx1Z0luRWxlbWVudC5jcHAKaW5kZXggMjIwNDZlYTg0MzU1NmM0ODBmMTNiNzk1NjMyZTc5
M2NmYTc0M2E5OS4uZDc4NmRmNGZlODcxMDNmNTIwMTNhYjdkNzc5OTcxMDQ1ZGEyYzk2MSAxMDA2
NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvaHRtbC9IVE1MUGx1Z0luRWxlbWVudC5jcHAKKysrIGIv
U291cmNlL1dlYkNvcmUvaHRtbC9IVE1MUGx1Z0luRWxlbWVudC5jcHAKQEAgLTEwNCw3ICsxMDQs
NyBAQCBib29sIEhUTUxQbHVnSW5FbGVtZW50Ojp3aWxsUmVzcG9uZFRvTW91c2VDbGlja0V2ZW50
cygpCiAKIHZvaWQgSFRNTFBsdWdJbkVsZW1lbnQ6OndpbGxEZXRhY2hSZW5kZXJlcnMoKQogewot
ICAgIG1faW5zdGFuY2UuY2xlYXIoKTsKKyAgICBtX2luc3RhbmNlID0gbnVsbHB0cjsKIAogICAg
IGlmIChtX2lzQ2FwdHVyaW5nTW91c2VFdmVudHMpIHsKICAgICAgICAgaWYgKEZyYW1lKiBmcmFt
ZSA9IGRvY3VtZW50KCkuZnJhbWUoKSkKQEAgLTEyMiw3ICsxMjIsNyBAQCB2b2lkIEhUTUxQbHVn
SW5FbGVtZW50Ojp3aWxsRGV0YWNoUmVuZGVyZXJzKCkKIAogdm9pZCBIVE1MUGx1Z0luRWxlbWVu
dDo6cmVzZXRJbnN0YW5jZSgpCiB7Ci0gICAgbV9pbnN0YW5jZS5jbGVhcigpOworICAgIG1faW5z
dGFuY2UgPSBudWxscHRyOwogfQogCiBQYXNzUmVmUHRyPEpTQzo6QmluZGluZ3M6Okluc3RhbmNl
PiBIVE1MUGx1Z0luRWxlbWVudDo6Z2V0SW5zdGFuY2UoKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dl
YkNvcmUvaHRtbC9IVE1MVGFibGVFbGVtZW50LmNwcCBiL1NvdXJjZS9XZWJDb3JlL2h0bWwvSFRN
TFRhYmxlRWxlbWVudC5jcHAKaW5kZXggNGZiNjU2OWFlMjFlOTU3MzYzNzAwMjM2MGNhMzNmOWI1
MTcyYzU1ZC4uNzQ1NzM2MWI2ZTEyNWVhZWY5NjVhZjU0NTMzYmYzM2Y2ODQ2ZWFhNyAxMDA2NDQK
LS0tIGEvU291cmNlL1dlYkNvcmUvaHRtbC9IVE1MVGFibGVFbGVtZW50LmNwcAorKysgYi9Tb3Vy
Y2UvV2ViQ29yZS9odG1sL0hUTUxUYWJsZUVsZW1lbnQuY3BwCkBAIC00MDIsNyArNDAyLDcgQEAg
dm9pZCBIVE1MVGFibGVFbGVtZW50OjpwYXJzZUF0dHJpYnV0ZShjb25zdCBRdWFsaWZpZWROYW1l
JiBuYW1lLCBjb25zdCBBdG9taWNTdHIKICAgICAgICAgSFRNTEVsZW1lbnQ6OnBhcnNlQXR0cmli
dXRlKG5hbWUsIHZhbHVlKTsKIAogICAgIGlmIChib3JkZXJzQmVmb3JlICE9IGNlbGxCb3JkZXJz
KCkgfHwgb2xkUGFkZGluZyAhPSBtX3BhZGRpbmcpIHsKLSAgICAgICAgbV9zaGFyZWRDZWxsU3R5
bGUgPSAwOworICAgICAgICBtX3NoYXJlZENlbGxTdHlsZSA9IG51bGxwdHI7CiAgICAgICAgIGJv
b2wgY2VsbENoYW5nZWQgPSBmYWxzZTsKICAgICAgICAgZm9yIChOb2RlKiBjaGlsZCA9IGZpcnN0
Q2hpbGQoKTsgY2hpbGQ7IGNoaWxkID0gY2hpbGQtPm5leHRTaWJsaW5nKCkpCiAgICAgICAgICAg
ICBjZWxsQ2hhbmdlZCB8PSBzZXRUYWJsZUNlbGxzQ2hhbmdlZChjaGlsZCk7CmRpZmYgLS1naXQg
YS9Tb3VyY2UvV2ViQ29yZS9odG1sL1BsdWdpbkRvY3VtZW50LmNwcCBiL1NvdXJjZS9XZWJDb3Jl
L2h0bWwvUGx1Z2luRG9jdW1lbnQuY3BwCmluZGV4IDc3OTZjMjdiM2RjMTg3MmNiNjExYjc4NjUx
ZDQyMjVlYTIzNjM0OTguLmU5Njc3MDkwZjRjMzg1M2E3Y2ZmMjA4YjIzYzMxZGM5ZDI1NDQ4MjEg
MTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2h0bWwvUGx1Z2luRG9jdW1lbnQuY3BwCisrKyBi
L1NvdXJjZS9XZWJDb3JlL2h0bWwvUGx1Z2luRG9jdW1lbnQuY3BwCkBAIC0xNjgsOCArMTY4LDgg
QEAgdm9pZCBQbHVnaW5Eb2N1bWVudDo6c2V0UGx1Z2luRWxlbWVudChQYXNzUmVmUHRyPEhUTUxQ
bHVnSW5FbGVtZW50PiBlbGVtZW50KQogdm9pZCBQbHVnaW5Eb2N1bWVudDo6ZGV0YWNoRnJvbVBs
dWdpbkVsZW1lbnQoKQogewogICAgIC8vIFJlbGVhc2UgdGhlIHBsdWdpbiBFbGVtZW50IHNvIHRo
YXQgd2UgZG9uJ3QgaGF2ZSBhIGNpcmN1bGFyIHJlZmVyZW5jZS4KLSAgICBtX3BsdWdpbkVsZW1l
bnQgPSAwOwotICAgIGZyYW1lKCktPmxvYWRlcigpLmNsaWVudCgpLnJlZGlyZWN0RGF0YVRvUGx1
Z2luKDApOworICAgIG1fcGx1Z2luRWxlbWVudCA9IG51bGxwdHI7CisgICAgZnJhbWUoKS0+bG9h
ZGVyKCkuY2xpZW50KCkucmVkaXJlY3REYXRhVG9QbHVnaW4obnVsbHB0cik7CiB9CiAKIHZvaWQg
UGx1Z2luRG9jdW1lbnQ6OmNhbmNlbE1hbnVhbFBsdWdpbkxvYWQoKQpkaWZmIC0tZ2l0IGEvU291
cmNlL1dlYkNvcmUvaHRtbC9UZXh0RmllbGRJbnB1dFR5cGUuY3BwIGIvU291cmNlL1dlYkNvcmUv
aHRtbC9UZXh0RmllbGRJbnB1dFR5cGUuY3BwCmluZGV4IDRiMjhhYThkYTJkMWE1NWRkOWVhNDIw
ZTQxNDJlMTRlNzMxYjc5YzUuLmVhZTNkYjI5ZWVlM2MyZGU5NWZlNzE4MGM1NDZmZjhlN2UyYTc2
N2UgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2h0bWwvVGV4dEZpZWxkSW5wdXRUeXBlLmNw
cAorKysgYi9Tb3VyY2UvV2ViQ29yZS9odG1sL1RleHRGaWVsZElucHV0VHlwZS5jcHAKQEAgLTQ2
Miw3ICs0NjIsNyBAQCB2b2lkIFRleHRGaWVsZElucHV0VHlwZTo6dXBkYXRlUGxhY2Vob2xkZXJU
ZXh0KCkKICAgICBpZiAocGxhY2Vob2xkZXJUZXh0LmlzRW1wdHkoKSkgewogICAgICAgICBpZiAo
bV9wbGFjZWhvbGRlcikgewogICAgICAgICAgICAgbV9wbGFjZWhvbGRlci0+cGFyZW50Tm9kZSgp
LT5yZW1vdmVDaGlsZChtX3BsYWNlaG9sZGVyLmdldCgpLCBBU1NFUlRfTk9fRVhDRVBUSU9OKTsK
LSAgICAgICAgICAgIG1fcGxhY2Vob2xkZXIuY2xlYXIoKTsKKyAgICAgICAgICAgIG1fcGxhY2Vo
b2xkZXIgPSBudWxscHRyOwogICAgICAgICB9CiAgICAgICAgIHJldHVybjsKICAgICB9CmRpZmYg
LS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9odG1sL1ZhbGlkYXRpb25NZXNzYWdlLmNwcCBiL1NvdXJj
ZS9XZWJDb3JlL2h0bWwvVmFsaWRhdGlvbk1lc3NhZ2UuY3BwCmluZGV4IDUzYjY3NWJjMmI0OTQ2
NzRlN2JmYzViYTM5YjY5YjY2Zjg5NWYwYjguLmY2MWUxYjVlZmUyNzA5MzFkYWIwZWMyZWVkZjBm
MzRiZDc3ODJiOTYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2h0bWwvVmFsaWRhdGlvbk1l
c3NhZ2UuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2h0bWwvVmFsaWRhdGlvbk1lc3NhZ2UuY3Bw
CkBAIC0yMzUsMTAgKzIzNSwxMCBAQCB2b2lkIFZhbGlkYXRpb25NZXNzYWdlOjpkZWxldGVCdWJi
bGVUcmVlKCkKIHsKICAgICBBU1NFUlQoIXZhbGlkYXRpb25NZXNzYWdlQ2xpZW50KCkpOwogICAg
IGlmIChtX2J1YmJsZSkgewotICAgICAgICBtX21lc3NhZ2VIZWFkaW5nID0gMDsKLSAgICAgICAg
bV9tZXNzYWdlQm9keSA9IDA7CisgICAgICAgIG1fbWVzc2FnZUhlYWRpbmcgPSBudWxscHRyOwor
ICAgICAgICBtX21lc3NhZ2VCb2R5ID0gbnVsbHB0cjsKICAgICAgICAgbV9lbGVtZW50LT51c2Vy
QWdlbnRTaGFkb3dSb290KCktPnJlbW92ZUNoaWxkKG1fYnViYmxlLmdldCgpLCBBU1NFUlRfTk9f
RVhDRVBUSU9OKTsKLSAgICAgICAgbV9idWJibGUgPSAwOworICAgICAgICBtX2J1YmJsZSA9IG51
bGxwdHI7CiAgICAgfQogICAgIG1fbWVzc2FnZSA9IFN0cmluZygpOwogfQpkaWZmIC0tZ2l0IGEv
U291cmNlL1dlYkNvcmUvaHRtbC9jYW52YXMvV2ViR0xQcm9ncmFtLmNwcCBiL1NvdXJjZS9XZWJD
b3JlL2h0bWwvY2FudmFzL1dlYkdMUHJvZ3JhbS5jcHAKaW5kZXggOTJjMDUxMTkwMWQzMDZjMzg1
MzlkNTUzMzk4ZjE1MDJiM2YwYWRhYy4uMWI3NTJlNmUwZmRiNGJhNjNjOTNiYzJlNzUzMDYyNTY1
YzJkNGNkNyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvaHRtbC9jYW52YXMvV2ViR0xQcm9n
cmFtLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9odG1sL2NhbnZhcy9XZWJHTFByb2dyYW0uY3Bw
CkBAIC01OCwxMSArNTgsMTEgQEAgdm9pZCBXZWJHTFByb2dyYW06OmRlbGV0ZU9iamVjdEltcGwo
R3JhcGhpY3NDb250ZXh0M0QqIGNvbnRleHQzZCwgUGxhdGZvcm0zRE9iamUKICAgICBjb250ZXh0
M2QtPmRlbGV0ZVByb2dyYW0ob2JqKTsKICAgICBpZiAobV92ZXJ0ZXhTaGFkZXIpIHsKICAgICAg
ICAgbV92ZXJ0ZXhTaGFkZXItPm9uRGV0YWNoZWQoY29udGV4dDNkKTsKLSAgICAgICAgbV92ZXJ0
ZXhTaGFkZXIgPSAwOworICAgICAgICBtX3ZlcnRleFNoYWRlciA9IG51bGxwdHI7CiAgICAgfQog
ICAgIGlmIChtX2ZyYWdtZW50U2hhZGVyKSB7CiAgICAgICAgIG1fZnJhZ21lbnRTaGFkZXItPm9u
RGV0YWNoZWQoY29udGV4dDNkKTsKLSAgICAgICAgbV9mcmFnbWVudFNoYWRlciA9IDA7CisgICAg
ICAgIG1fZnJhZ21lbnRTaGFkZXIgPSBudWxscHRyOwogICAgIH0KIH0KIApAQCAtMTQ4LDEyICsx
NDgsMTIgQEAgYm9vbCBXZWJHTFByb2dyYW06OmRldGFjaFNoYWRlcihXZWJHTFNoYWRlciogc2hh
ZGVyKQogICAgIGNhc2UgR3JhcGhpY3NDb250ZXh0M0Q6OlZFUlRFWF9TSEFERVI6CiAgICAgICAg
IGlmIChtX3ZlcnRleFNoYWRlciAhPSBzaGFkZXIpCiAgICAgICAgICAgICByZXR1cm4gZmFsc2U7
Ci0gICAgICAgIG1fdmVydGV4U2hhZGVyID0gMDsKKyAgICAgICAgbV92ZXJ0ZXhTaGFkZXIgPSBu
dWxscHRyOwogICAgICAgICByZXR1cm4gdHJ1ZTsKICAgICBjYXNlIEdyYXBoaWNzQ29udGV4dDNE
OjpGUkFHTUVOVF9TSEFERVI6CiAgICAgICAgIGlmIChtX2ZyYWdtZW50U2hhZGVyICE9IHNoYWRl
cikKICAgICAgICAgICAgIHJldHVybiBmYWxzZTsKLSAgICAgICAgbV9mcmFnbWVudFNoYWRlciA9
IDA7CisgICAgICAgIG1fZnJhZ21lbnRTaGFkZXIgPSBudWxscHRyOwogICAgICAgICByZXR1cm4g
dHJ1ZTsKICAgICBkZWZhdWx0OgogICAgICAgICByZXR1cm4gZmFsc2U7CmRpZmYgLS1naXQgYS9T
b3VyY2UvV2ViQ29yZS9odG1sL2NhbnZhcy9XZWJHTFJlbmRlcmluZ0NvbnRleHRCYXNlLmNwcCBi
L1NvdXJjZS9XZWJDb3JlL2h0bWwvY2FudmFzL1dlYkdMUmVuZGVyaW5nQ29udGV4dEJhc2UuY3Bw
CmluZGV4IGI2NmI2NjkwNGIxNGZmZGUyZjMzOWFkNmRhMjc2ZjZkNzZjMWI0YTMuLjdhMWNmZjNm
MjgzYTg4ODZjMTcyM2FhMDNmZGY5NzE5MWNlZGZlNTggMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJD
b3JlL2h0bWwvY2FudmFzL1dlYkdMUmVuZGVyaW5nQ29udGV4dEJhc2UuY3BwCisrKyBiL1NvdXJj
ZS9XZWJDb3JlL2h0bWwvY2FudmFzL1dlYkdMUmVuZGVyaW5nQ29udGV4dEJhc2UuY3BwCkBAIC00
OTQsMTAgKzQ5NCwxMCBAQCB2b2lkIFdlYkdMUmVuZGVyaW5nQ29udGV4dEJhc2U6OmluaXRpYWxp
emVOZXdDb250ZXh0KCkKICAgICBtX3VucGFja0ZsaXBZID0gZmFsc2U7CiAgICAgbV91bnBhY2tQ
cmVtdWx0aXBseUFscGhhID0gZmFsc2U7CiAgICAgbV91bnBhY2tDb2xvcnNwYWNlQ29udmVyc2lv
biA9IEdyYXBoaWNzQ29udGV4dDNEOjpCUk9XU0VSX0RFRkFVTFRfV0VCR0w7Ci0gICAgbV9ib3Vu
ZEFycmF5QnVmZmVyID0gMDsKLSAgICBtX2N1cnJlbnRQcm9ncmFtID0gMDsKLSAgICBtX2ZyYW1l
YnVmZmVyQmluZGluZyA9IDA7Ci0gICAgbV9yZW5kZXJidWZmZXJCaW5kaW5nID0gMDsKKyAgICBt
X2JvdW5kQXJyYXlCdWZmZXIgPSBudWxscHRyOworICAgIG1fY3VycmVudFByb2dyYW0gPSBudWxs
cHRyOworICAgIG1fZnJhbWVidWZmZXJCaW5kaW5nID0gbnVsbHB0cjsKKyAgICBtX3JlbmRlcmJ1
ZmZlckJpbmRpbmcgPSBudWxscHRyOwogICAgIG1fZGVwdGhNYXNrID0gdHJ1ZTsKICAgICBtX3N0
ZW5jaWxFbmFibGVkID0gZmFsc2U7CiAgICAgbV9zdGVuY2lsTWFzayA9IDB4RkZGRkZGRkY7CkBA
IC02MjMsNyArNjIzLDcgQEAgdm9pZCBXZWJHTFJlbmRlcmluZ0NvbnRleHRCYXNlOjpkZXN0cm95
R3JhcGhpY3NDb250ZXh0M0QoKQogICAgIGlmIChtX2NvbnRleHQpIHsKICAgICAgICAgbV9jb250
ZXh0LT5zZXRDb250ZXh0TG9zdENhbGxiYWNrKG51bGxwdHIpOwogICAgICAgICBtX2NvbnRleHQt
PnNldEVycm9yTWVzc2FnZUNhbGxiYWNrKG51bGxwdHIpOwotICAgICAgICBtX2NvbnRleHQuY2xl
YXIoKTsKKyAgICAgICAgbV9jb250ZXh0ID0gbnVsbHB0cjsKICAgICB9CiB9CiAKQEAgLTE0Nzks
NyArMTQ3OSw3IEBAIHZvaWQgV2ViR0xSZW5kZXJpbmdDb250ZXh0QmFzZTo6ZGVsZXRlQnVmZmVy
KFdlYkdMQnVmZmVyKiBidWZmZXIpCiAgICAgaWYgKCFkZWxldGVPYmplY3QoYnVmZmVyKSkKICAg
ICAgICAgcmV0dXJuOwogICAgIGlmIChtX2JvdW5kQXJyYXlCdWZmZXIgPT0gYnVmZmVyKQotICAg
ICAgICBtX2JvdW5kQXJyYXlCdWZmZXIgPSAwOworICAgICAgICBtX2JvdW5kQXJyYXlCdWZmZXIg
PSBudWxscHRyOwogCiAgICAgbV9ib3VuZFZlcnRleEFycmF5T2JqZWN0LT51bmJpbmRCdWZmZXIo
YnVmZmVyKTsKIH0KQEAgLTE0ODksNyArMTQ4OSw3IEBAIHZvaWQgV2ViR0xSZW5kZXJpbmdDb250
ZXh0QmFzZTo6ZGVsZXRlRnJhbWVidWZmZXIoV2ViR0xGcmFtZWJ1ZmZlciogZnJhbWVidWZmZXIp
CiAgICAgaWYgKCFkZWxldGVPYmplY3QoZnJhbWVidWZmZXIpKQogICAgICAgICByZXR1cm47CiAg
ICAgaWYgKGZyYW1lYnVmZmVyID09IG1fZnJhbWVidWZmZXJCaW5kaW5nKSB7Ci0gICAgICAgIG1f
ZnJhbWVidWZmZXJCaW5kaW5nID0gMDsKKyAgICAgICAgbV9mcmFtZWJ1ZmZlckJpbmRpbmcgPSBu
dWxscHRyOwogICAgICAgICBtX2NvbnRleHQtPmJpbmRGcmFtZWJ1ZmZlcihHcmFwaGljc0NvbnRl
eHQzRDo6RlJBTUVCVUZGRVIsIDApOwogICAgIH0KIH0KQEAgLTE1MDYsNyArMTUwNiw3IEBAIHZv
aWQgV2ViR0xSZW5kZXJpbmdDb250ZXh0QmFzZTo6ZGVsZXRlUmVuZGVyYnVmZmVyKFdlYkdMUmVu
ZGVyYnVmZmVyKiByZW5kZXJidWZmCiAgICAgaWYgKCFkZWxldGVPYmplY3QocmVuZGVyYnVmZmVy
KSkKICAgICAgICAgcmV0dXJuOwogICAgIGlmIChyZW5kZXJidWZmZXIgPT0gbV9yZW5kZXJidWZm
ZXJCaW5kaW5nKQotICAgICAgICBtX3JlbmRlcmJ1ZmZlckJpbmRpbmcgPSAwOworICAgICAgICBt
X3JlbmRlcmJ1ZmZlckJpbmRpbmcgPSBudWxscHRyOwogICAgIGlmIChtX2ZyYW1lYnVmZmVyQmlu
ZGluZykKICAgICAgICAgbV9mcmFtZWJ1ZmZlckJpbmRpbmctPnJlbW92ZUF0dGFjaG1lbnRGcm9t
Qm91bmRGcmFtZWJ1ZmZlcihyZW5kZXJidWZmZXIpOwogfQpkaWZmIC0tZ2l0IGEvU291cmNlL1dl
YkNvcmUvaHRtbC9jYW52YXMvV2ViR0xWZXJ0ZXhBcnJheU9iamVjdEJhc2UuY3BwIGIvU291cmNl
L1dlYkNvcmUvaHRtbC9jYW52YXMvV2ViR0xWZXJ0ZXhBcnJheU9iamVjdEJhc2UuY3BwCmluZGV4
IGY2ZDhkYTY2ZTgwMTQ3OTc4ZjgxNzU3YzYzYmU0NmVhYzY5NTU4NDkuLmYzOWMwZGRkMjI3Nzlk
MDVmMTYwZDE5Nzk1NjMxOGE2MDBlYjkzY2MgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2h0
bWwvY2FudmFzL1dlYkdMVmVydGV4QXJyYXlPYmplY3RCYXNlLmNwcAorKysgYi9Tb3VyY2UvV2Vi
Q29yZS9odG1sL2NhbnZhcy9XZWJHTFZlcnRleEFycmF5T2JqZWN0QmFzZS5jcHAKQEAgLTc2LDcg
Kzc2LDcgQEAgdm9pZCBXZWJHTFZlcnRleEFycmF5T2JqZWN0QmFzZTo6dW5iaW5kQnVmZmVyKFBh
c3NSZWZQdHI8V2ViR0xCdWZmZXI+IGJ1ZmZlcikKIHsKICAgICBpZiAobV9ib3VuZEVsZW1lbnRB
cnJheUJ1ZmZlciA9PSBidWZmZXIpIHsKICAgICAgICAgbV9ib3VuZEVsZW1lbnRBcnJheUJ1ZmZl
ci0+b25EZXRhY2hlZChjb250ZXh0KCktPmdyYXBoaWNzQ29udGV4dDNEKCkpOwotICAgICAgICBt
X2JvdW5kRWxlbWVudEFycmF5QnVmZmVyID0gMDsKKyAgICAgICAgbV9ib3VuZEVsZW1lbnRBcnJh
eUJ1ZmZlciA9IG51bGxwdHI7CiAgICAgfQogICAgIAogICAgIGZvciAoc2l6ZV90IGkgPSAwOyBp
IDwgbV92ZXJ0ZXhBdHRyaWJTdGF0ZS5zaXplKCk7ICsraSkgewpAQCAtOTUsNyArOTUsNyBAQCB2
b2lkIFdlYkdMVmVydGV4QXJyYXlPYmplY3RCYXNlOjp1bmJpbmRCdWZmZXIoUGFzc1JlZlB0cjxX
ZWJHTEJ1ZmZlcj4gYnVmZmVyKQogICAgICAgICAgICAgICAgIHN0YXRlLm9yaWdpbmFsU3RyaWRl
ID0gMDsKICAgICAgICAgICAgICAgICBzdGF0ZS5vZmZzZXQgPSAwOwogICAgICAgICAgICAgfSBl
bHNlCi0gICAgICAgICAgICAgICAgc3RhdGUuYnVmZmVyQmluZGluZyA9IDA7CisgICAgICAgICAg
ICAgICAgc3RhdGUuYnVmZmVyQmluZGluZyA9IG51bGxwdHI7CiAgICAgICAgIH0KICAgICB9CiB9
CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9odG1sL3RyYWNrL1RleHRUcmFjay5jcHAgYi9T
b3VyY2UvV2ViQ29yZS9odG1sL3RyYWNrL1RleHRUcmFjay5jcHAKaW5kZXggNzRlY2YxNmQ3MDk3
NjZmNGFmMWY0NWRjMjA2YzJkZWM2MzM2YTZmMS4uMmExMzNhNWZjZWFmZTNjN2IzYmMxODZhZDJi
ODU3MGY2MTJlZDMxOSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvaHRtbC90cmFjay9UZXh0
VHJhY2suY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2h0bWwvdHJhY2svVGV4dFRyYWNrLmNwcApA
QCAtMjQ1LDcgKzI0NSw3IEBAIFRleHRUcmFja0N1ZUxpc3QqIFRleHRUcmFjazo6Y3VlcygpCiAg
ICAgLy8gaHR0cDovL3d3dy53aGF0d2cub3JnL3NwZWNzL3dlYi1hcHBzL2N1cnJlbnQtd29yay8j
ZG9tLXRleHR0cmFjay1jdWVzCiAgICAgaWYgKG1fbW9kZSAhPSBkaXNhYmxlZEtleXdvcmQoKSkK
ICAgICAgICAgcmV0dXJuIGVuc3VyZVRleHRUcmFja0N1ZUxpc3QoKTsKLSAgICByZXR1cm4gMDsK
KyAgICByZXR1cm4gbnVsbHB0cjsKIH0KIAogdm9pZCBUZXh0VHJhY2s6OnJlbW92ZUFsbEN1ZXMo
KQpAQCAtMjU3LDkgKzI1Nyw5IEBAIHZvaWQgVGV4dFRyYWNrOjpyZW1vdmVBbGxDdWVzKCkKICAg
ICAgICAgbV9jbGllbnQtPnRleHRUcmFja1JlbW92ZUN1ZXModGhpcywgbV9jdWVzLmdldCgpKTsK
ICAgICAKICAgICBmb3IgKHNpemVfdCBpID0gMDsgaSA8IG1fY3Vlcy0+bGVuZ3RoKCk7ICsraSkK
LSAgICAgICAgbV9jdWVzLT5pdGVtKGkpLT5zZXRUcmFjaygwKTsKKyAgICAgICAgbV9jdWVzLT5p
dGVtKGkpLT5zZXRUcmFjayhudWxscHRyKTsKICAgICAKLSAgICBtX2N1ZXMgPSAwOworICAgIG1f
Y3VlcyA9IG51bGxwdHI7CiB9CiAKIFRleHRUcmFja0N1ZUxpc3QqIFRleHRUcmFjazo6YWN0aXZl
Q3VlcygpIGNvbnN0CkBAIC0yNzIsNyArMjcyLDcgQEAgVGV4dFRyYWNrQ3VlTGlzdCogVGV4dFRy
YWNrOjphY3RpdmVDdWVzKCkgY29uc3QKICAgICAvLyBodHRwOi8vd3d3LndoYXR3Zy5vcmcvc3Bl
Y3Mvd2ViLWFwcHMvY3VycmVudC13b3JrLyNkb20tdGV4dHRyYWNrLWFjdGl2ZWN1ZXMKICAgICBp
ZiAobV9jdWVzICYmIG1fbW9kZSAhPSBkaXNhYmxlZEtleXdvcmQoKSkKICAgICAgICAgcmV0dXJu
IG1fY3Vlcy0+YWN0aXZlQ3VlcygpOwotICAgIHJldHVybiAwOworICAgIHJldHVybiBudWxscHRy
OwogfQogCiB2b2lkIFRleHRUcmFjazo6YWRkQ3VlKFBhc3NSZWZQdHI8VGV4dFRyYWNrQ3VlPiBw
cnBDdWUsIEV4Y2VwdGlvbkNvZGUmIGVjKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvaHRt
bC90cmFjay9WVFRDdWUuY3BwIGIvU291cmNlL1dlYkNvcmUvaHRtbC90cmFjay9WVFRDdWUuY3Bw
CmluZGV4IDM0YTJlZTc5NmE4ODgwMDY5MDMyODgzYzMxZWI4ZmYxNWU3NDdiZDMuLjBiOWM3MTc5
MzBiZjA2N2I1ZWEyM2U1MTQzMWY5ZmNlYTk3ZDZiYjUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJD
b3JlL2h0bWwvdHJhY2svVlRUQ3VlLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9odG1sL3RyYWNr
L1ZUVEN1ZS5jcHAKQEAgLTQ4Miw3ICs0ODIsNyBAQCB2b2lkIFZUVEN1ZTo6c2V0VGV4dChjb25z
dCBTdHJpbmcmIHRleHQpCiAgICAgd2lsbENoYW5nZSgpOwogICAgIC8vIENsZWFyIHRoZSBkb2N1
bWVudCBmcmFnbWVudCBidXQgZG9uJ3QgYm90aGVyIHRvIGNyZWF0ZSBpdCBhZ2FpbiBqdXN0IHll
dCBhcyB3ZSBjYW4gZG8gdGhhdAogICAgIC8vIHdoZW4gaXQgaXMgcmVxdWVzdGVkLgotICAgIG1f
d2ViVlRUTm9kZVRyZWUgPSAwOworICAgIG1fd2ViVlRUTm9kZVRyZWUgPSBudWxscHRyOwogICAg
IG1fY29udGVudCA9IHRleHQ7CiAgICAgZGlkQ2hhbmdlKCk7CiB9CmRpZmYgLS1naXQgYS9Tb3Vy
Y2UvV2ViQ29yZS9pbnNwZWN0b3IvSW5zcGVjdG9yQXBwbGljYXRpb25DYWNoZUFnZW50LmNwcCBi
L1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9JbnNwZWN0b3JBcHBsaWNhdGlvbkNhY2hlQWdlbnQu
Y3BwCmluZGV4IGZkNGNhZjYyMTQxMTlhODQ0N2MwMjk0NTc0MDRmMWY1MmJjOGUzN2EuLjJkY2Qy
NmU5OWJmM2EwN2E2NzYwOGFhZTEyZDU3NDQzOTA1YTYyNjUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9X
ZWJDb3JlL2luc3BlY3Rvci9JbnNwZWN0b3JBcHBsaWNhdGlvbkNhY2hlQWdlbnQuY3BwCisrKyBi
L1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9JbnNwZWN0b3JBcHBsaWNhdGlvbkNhY2hlQWdlbnQu
Y3BwCkBAIC01OCw3ICs1OCw3IEBAIHZvaWQgSW5zcGVjdG9yQXBwbGljYXRpb25DYWNoZUFnZW50
OjpkaWRDcmVhdGVGcm9udGVuZEFuZEJhY2tlbmQoRnJvbnRlbmRDaGFubmVsCiB2b2lkIEluc3Bl
Y3RvckFwcGxpY2F0aW9uQ2FjaGVBZ2VudDo6d2lsbERlc3Ryb3lGcm9udGVuZEFuZEJhY2tlbmQo
SW5zcGVjdG9yOjpEaXNjb25uZWN0UmVhc29uKQogewogICAgIG1fZnJvbnRlbmREaXNwYXRjaGVy
ID0gbnVsbHB0cjsKLSAgICBtX2JhY2tlbmREaXNwYXRjaGVyLmNsZWFyKCk7CisgICAgbV9iYWNr
ZW5kRGlzcGF0Y2hlciA9IG51bGxwdHI7CiAKICAgICBtX2luc3RydW1lbnRpbmdBZ2VudHMtPnNl
dEluc3BlY3RvckFwcGxpY2F0aW9uQ2FjaGVBZ2VudChudWxscHRyKTsKIH0KZGlmZiAtLWdpdCBh
L1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9JbnNwZWN0b3JDU1NBZ2VudC5jcHAgYi9Tb3VyY2Uv
V2ViQ29yZS9pbnNwZWN0b3IvSW5zcGVjdG9yQ1NTQWdlbnQuY3BwCmluZGV4IGE5MDgzZDA4MTQy
N2I5YzAxOTE4OWU2YzQ5YjgxNDYyZWYzNjM1OWUuLjNkMDYyMDgzNGViMjhjZGZkMDZiNThjZDY2
MjZiYTNjMTQ4ZTcxOTEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9JbnNw
ZWN0b3JDU1NBZ2VudC5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL0luc3BlY3Rv
ckNTU0FnZW50LmNwcApAQCAtMzYwLDcgKzM2MCw3IEBAIHZvaWQgSW5zcGVjdG9yQ1NTQWdlbnQ6
OmRpZENyZWF0ZUZyb250ZW5kQW5kQmFja2VuZChJbnNwZWN0b3I6OkZyb250ZW5kQ2hhbm5lbCoK
IHZvaWQgSW5zcGVjdG9yQ1NTQWdlbnQ6OndpbGxEZXN0cm95RnJvbnRlbmRBbmRCYWNrZW5kKElu
c3BlY3Rvcjo6RGlzY29ubmVjdFJlYXNvbikKIHsKICAgICBtX2Zyb250ZW5kRGlzcGF0Y2hlciA9
IG51bGxwdHI7Ci0gICAgbV9iYWNrZW5kRGlzcGF0Y2hlci5jbGVhcigpOworICAgIG1fYmFja2Vu
ZERpc3BhdGNoZXIgPSBudWxscHRyOwogCiAgICAgcmVzZXROb25QZXJzaXN0ZW50RGF0YSgpOwog
fQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL0luc3BlY3RvckNvbnRyb2xs
ZXIuY3BwIGIvU291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL0luc3BlY3RvckNvbnRyb2xsZXIuY3Bw
CmluZGV4IGYyM2E1ZWEwZWU1NmQwNWUxNDQ1MTA2YTcyNWFjMWM5NmE0NjhlOTkuLmJjODBiY2Ey
OWM5NTE0Nzc3ZGEwNGRjMWNhZTFiNzUxY2Y5ZmY4YWYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJD
b3JlL2luc3BlY3Rvci9JbnNwZWN0b3JDb250cm9sbGVyLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29y
ZS9pbnNwZWN0b3IvSW5zcGVjdG9yQ29udHJvbGxlci5jcHAKQEAgLTI2Myw3ICsyNjMsNyBAQCB2
b2lkIEluc3BlY3RvckNvbnRyb2xsZXI6OmRpc2Nvbm5lY3RGcm9udGVuZChEaXNjb25uZWN0UmVh
c29uIHJlYXNvbikKICAgICBtX2FnZW50cy53aWxsRGVzdHJveUZyb250ZW5kQW5kQmFja2VuZChy
ZWFzb24pOwogCiAgICAgbV9iYWNrZW5kRGlzcGF0Y2hlci0+Y2xlYXJGcm9udGVuZCgpOwotICAg
IG1fYmFja2VuZERpc3BhdGNoZXIuY2xlYXIoKTsKKyAgICBtX2JhY2tlbmREaXNwYXRjaGVyID0g
bnVsbHB0cjsKICAgICBtX2Zyb250ZW5kQ2hhbm5lbCA9IG51bGxwdHI7CiAKICAgICBtX2lzQXV0
b21hdGljSW5zcGVjdGlvbiA9IGZhbHNlOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvaW5z
cGVjdG9yL0luc3BlY3RvckRPTUFnZW50LmNwcCBiL1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9J
bnNwZWN0b3JET01BZ2VudC5jcHAKaW5kZXggMGVkMmM1YzA0ZmFhM2IxY2M4YmIwNWQ0OWFkOTZh
NmQxOTcxMmNhMS4uNzE5Zjc2MWRlNTZkOTA5MTU0YWYxNjIxNjBlMDJhMTQ2Y2E2MjYyZCAxMDA2
NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL0luc3BlY3RvckRPTUFnZW50LmNwcAor
KysgYi9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvSW5zcGVjdG9yRE9NQWdlbnQuY3BwCkBAIC0y
MzgsNyArMjM4LDcgQEAgdm9pZCBJbnNwZWN0b3JET01BZ2VudDo6ZGlkQ3JlYXRlRnJvbnRlbmRB
bmRCYWNrZW5kKEluc3BlY3Rvcjo6RnJvbnRlbmRDaGFubmVsKgogdm9pZCBJbnNwZWN0b3JET01B
Z2VudDo6d2lsbERlc3Ryb3lGcm9udGVuZEFuZEJhY2tlbmQoSW5zcGVjdG9yOjpEaXNjb25uZWN0
UmVhc29uKQogewogICAgIG1fZnJvbnRlbmREaXNwYXRjaGVyID0gbnVsbHB0cjsKLSAgICBtX2Jh
Y2tlbmREaXNwYXRjaGVyLmNsZWFyKCk7CisgICAgbV9iYWNrZW5kRGlzcGF0Y2hlciA9IG51bGxw
dHI7CiAKICAgICBtX2hpc3RvcnkucmVzZXQoKTsKICAgICBtX2RvbUVkaXRvci5yZXNldCgpOwpA
QCAtMjcyLDcgKzI3Miw3IEBAIHZvaWQgSW5zcGVjdG9yRE9NQWdlbnQ6OnJlc2V0KCkKICAgICBk
aXNjYXJkQmluZGluZ3MoKTsKICAgICBpZiAobV9yZXZhbGlkYXRlU3R5bGVBdHRyVGFzaykKICAg
ICAgICAgbV9yZXZhbGlkYXRlU3R5bGVBdHRyVGFzay0+cmVzZXQoKTsKLSAgICBtX2RvY3VtZW50
ID0gMDsKKyAgICBtX2RvY3VtZW50ID0gbnVsbHB0cjsKIH0KIAogdm9pZCBJbnNwZWN0b3JET01B
Z2VudDo6c2V0RE9NTGlzdGVuZXIoRE9NTGlzdGVuZXIqIGxpc3RlbmVyKQpkaWZmIC0tZ2l0IGEv
U291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL0luc3BlY3RvckRPTURlYnVnZ2VyQWdlbnQuY3BwIGIv
U291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL0luc3BlY3RvckRPTURlYnVnZ2VyQWdlbnQuY3BwCmlu
ZGV4IGY3NzhkZDk2MmNiMmRkYzE2MDYzMTc0NmE5OTViZGRhMGE5YjI3OGIuLmQ1MWQ0YmVhZTkx
MjIzNTA3YjZjNDQ2Nzc5NDRjYjI3YmEzNmM0NjQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3Jl
L2luc3BlY3Rvci9JbnNwZWN0b3JET01EZWJ1Z2dlckFnZW50LmNwcAorKysgYi9Tb3VyY2UvV2Vi
Q29yZS9pbnNwZWN0b3IvSW5zcGVjdG9yRE9NRGVidWdnZXJBZ2VudC5jcHAKQEAgLTEwOSw3ICsx
MDksNyBAQCB2b2lkIEluc3BlY3RvckRPTURlYnVnZ2VyQWdlbnQ6OmRpZENyZWF0ZUZyb250ZW5k
QW5kQmFja2VuZChJbnNwZWN0b3I6OkZyb250ZW5kQwogCiB2b2lkIEluc3BlY3RvckRPTURlYnVn
Z2VyQWdlbnQ6OndpbGxEZXN0cm95RnJvbnRlbmRBbmRCYWNrZW5kKEluc3BlY3Rvcjo6RGlzY29u
bmVjdFJlYXNvbikKIHsKLSAgICBtX2JhY2tlbmREaXNwYXRjaGVyLmNsZWFyKCk7CisgICAgbV9i
YWNrZW5kRGlzcGF0Y2hlciA9IG51bGxwdHI7CiAKICAgICBkaXNhYmxlKCk7CiB9CmRpZmYgLS1n
aXQgYS9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvSW5zcGVjdG9yRE9NU3RvcmFnZUFnZW50LmNw
cCBiL1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9JbnNwZWN0b3JET01TdG9yYWdlQWdlbnQuY3Bw
CmluZGV4IGIxNjg3Y2Y1NDg1M2Y2MjJmNTJhNjc2OGM5MmNjZjQyNThlN2E1ZjEuLjA0YWY4OGJj
ZTNkYzAwNTE0ODViM2UyYTUwZDk3MTYwMTdjMmY2OWYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJD
b3JlL2luc3BlY3Rvci9JbnNwZWN0b3JET01TdG9yYWdlQWdlbnQuY3BwCisrKyBiL1NvdXJjZS9X
ZWJDb3JlL2luc3BlY3Rvci9JbnNwZWN0b3JET01TdG9yYWdlQWdlbnQuY3BwCkBAIC03Niw3ICs3
Niw3IEBAIHZvaWQgSW5zcGVjdG9yRE9NU3RvcmFnZUFnZW50OjpkaWRDcmVhdGVGcm9udGVuZEFu
ZEJhY2tlbmQoSW5zcGVjdG9yOjpGcm9udGVuZENoCiB2b2lkIEluc3BlY3RvckRPTVN0b3JhZ2VB
Z2VudDo6d2lsbERlc3Ryb3lGcm9udGVuZEFuZEJhY2tlbmQoSW5zcGVjdG9yOjpEaXNjb25uZWN0
UmVhc29uKQogewogICAgIG1fZnJvbnRlbmREaXNwYXRjaGVyID0gbnVsbHB0cjsKLSAgICBtX2Jh
Y2tlbmREaXNwYXRjaGVyLmNsZWFyKCk7CisgICAgbV9iYWNrZW5kRGlzcGF0Y2hlciA9IG51bGxw
dHI7CiAKICAgICBFcnJvclN0cmluZyB1bnVzZWQ7CiAgICAgZGlzYWJsZSh1bnVzZWQpOwpkaWZm
IC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL0luc3BlY3RvckRhdGFiYXNlQWdlbnQu
Y3BwIGIvU291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL0luc3BlY3RvckRhdGFiYXNlQWdlbnQuY3Bw
CmluZGV4IDkxMzRkZmU0N2M3OWM2YzZlZjQ0MTM0NDUyMGI3MDQ2ZTFkNWRjMTMuLmJlMjdmOTU2
MTQ0NTlmYmZmZDFiMDJkNDg1Y2YxZDc3ZGVkOTY2ZWQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJD
b3JlL2luc3BlY3Rvci9JbnNwZWN0b3JEYXRhYmFzZUFnZW50LmNwcAorKysgYi9Tb3VyY2UvV2Vi
Q29yZS9pbnNwZWN0b3IvSW5zcGVjdG9yRGF0YWJhc2VBZ2VudC5jcHAKQEAgLTIzMSw3ICsyMzEs
NyBAQCB2b2lkIEluc3BlY3RvckRhdGFiYXNlQWdlbnQ6OmRpZENyZWF0ZUZyb250ZW5kQW5kQmFj
a2VuZChJbnNwZWN0b3I6OkZyb250ZW5kQ2hhbgogdm9pZCBJbnNwZWN0b3JEYXRhYmFzZUFnZW50
Ojp3aWxsRGVzdHJveUZyb250ZW5kQW5kQmFja2VuZChJbnNwZWN0b3I6OkRpc2Nvbm5lY3RSZWFz
b24pCiB7CiAgICAgbV9mcm9udGVuZERpc3BhdGNoZXIgPSBudWxscHRyOwotICAgIG1fYmFja2Vu
ZERpc3BhdGNoZXIuY2xlYXIoKTsKKyAgICBtX2JhY2tlbmREaXNwYXRjaGVyID0gbnVsbHB0cjsK
IAogICAgIEVycm9yU3RyaW5nIHVudXNlZDsKICAgICBkaXNhYmxlKHVudXNlZCk7CmRpZmYgLS1n
aXQgYS9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvSW5zcGVjdG9ySW5kZXhlZERCQWdlbnQuY3Bw
IGIvU291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL0luc3BlY3RvckluZGV4ZWREQkFnZW50LmNwcApp
bmRleCA5YmYxMjkxMTZjNGRjODBhMDg2MzFjMDRkNzA3YjE4M2FiOGJjYWNmLi4xNzJmYjU4MTI4
MDIwYTNhZTU1ZDY1ZDRmMDhmNTdhZTE2YTBlY2Y3IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29y
ZS9pbnNwZWN0b3IvSW5zcGVjdG9ySW5kZXhlZERCQWdlbnQuY3BwCisrKyBiL1NvdXJjZS9XZWJD
b3JlL2luc3BlY3Rvci9JbnNwZWN0b3JJbmRleGVkREJBZ2VudC5jcHAKQEAgLTU4Miw3ICs1ODIs
NyBAQCB2b2lkIEluc3BlY3RvckluZGV4ZWREQkFnZW50OjpkaWRDcmVhdGVGcm9udGVuZEFuZEJh
Y2tlbmQoSW5zcGVjdG9yOjpGcm9udGVuZENoYQogCiB2b2lkIEluc3BlY3RvckluZGV4ZWREQkFn
ZW50Ojp3aWxsRGVzdHJveUZyb250ZW5kQW5kQmFja2VuZChJbnNwZWN0b3I6OkRpc2Nvbm5lY3RS
ZWFzb24pCiB7Ci0gICAgbV9iYWNrZW5kRGlzcGF0Y2hlci5jbGVhcigpOworICAgIG1fYmFja2Vu
ZERpc3BhdGNoZXIgPSBudWxscHRyOwogCiAgICAgRXJyb3JTdHJpbmcgdW51c2VkOwogICAgIGRp
c2FibGUodW51c2VkKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9JbnNw
ZWN0b3JMYXllclRyZWVBZ2VudC5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvSW5zcGVj
dG9yTGF5ZXJUcmVlQWdlbnQuY3BwCmluZGV4IGJlNjQ0OTZlNDYzOGQwMGMzZWMyODkwODY1NmFl
Njc3YTczODk3NTguLmY2ZTQxZmFjODI4YWM2YzRmNzc2MDY1YWRmN2EzZGJmOGQ3OGJlMDQgMTAw
NjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9JbnNwZWN0b3JMYXllclRyZWVBZ2Vu
dC5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL0luc3BlY3RvckxheWVyVHJlZUFn
ZW50LmNwcApAQCAtNjUsNyArNjUsNyBAQCB2b2lkIEluc3BlY3RvckxheWVyVHJlZUFnZW50Ojpk
aWRDcmVhdGVGcm9udGVuZEFuZEJhY2tlbmQoSW5zcGVjdG9yOjpGcm9udGVuZENoYQogdm9pZCBJ
bnNwZWN0b3JMYXllclRyZWVBZ2VudDo6d2lsbERlc3Ryb3lGcm9udGVuZEFuZEJhY2tlbmQoSW5z
cGVjdG9yOjpEaXNjb25uZWN0UmVhc29uKQogewogICAgIG1fZnJvbnRlbmREaXNwYXRjaGVyID0g
bnVsbHB0cjsKLSAgICBtX2JhY2tlbmREaXNwYXRjaGVyLmNsZWFyKCk7CisgICAgbV9iYWNrZW5k
RGlzcGF0Y2hlciA9IG51bGxwdHI7CiAKICAgICBFcnJvclN0cmluZyB1bnVzZWQ7CiAgICAgZGlz
YWJsZSh1bnVzZWQpOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL0luc3Bl
Y3Rvck92ZXJsYXkuY3BwIGIvU291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL0luc3BlY3Rvck92ZXJs
YXkuY3BwCmluZGV4IDZkM2EwZjNjYTcyNjVhMWFmZjhjMzI4YTVmM2Y2Yjc5YzMzMWQ4ZDQuLmZh
ZWE3Y2VmMmM2MzJlZTUxMDJjZGYyYjY1NDQ5N2FiODA3YmUxNzcgMTAwNjQ0Ci0tLSBhL1NvdXJj
ZS9XZWJDb3JlL2luc3BlY3Rvci9JbnNwZWN0b3JPdmVybGF5LmNwcAorKysgYi9Tb3VyY2UvV2Vi
Q29yZS9pbnNwZWN0b3IvSW5zcGVjdG9yT3ZlcmxheS5jcHAKQEAgLTI0Myw5ICsyNDMsOSBAQCB2
b2lkIEluc3BlY3Rvck92ZXJsYXk6OnNldFBhdXNlZEluRGVidWdnZXJNZXNzYWdlKGNvbnN0IFN0
cmluZyogbWVzc2FnZSkKIAogdm9pZCBJbnNwZWN0b3JPdmVybGF5OjpoaWRlSGlnaGxpZ2h0KCkK
IHsKLSAgICBtX2hpZ2hsaWdodE5vZGUuY2xlYXIoKTsKLSAgICBtX2hpZ2hsaWdodE5vZGVMaXN0
LmNsZWFyKCk7Ci0gICAgbV9oaWdobGlnaHRRdWFkLnJlc2V0KCk7CisgICAgbV9oaWdobGlnaHRO
b2RlID0gbnVsbHB0cjsKKyAgICBtX2hpZ2hsaWdodE5vZGVMaXN0ID0gbnVsbHB0cjsKKyAgICBt
X2hpZ2hsaWdodFF1YWQgPSBudWxscHRyOwogICAgIHVwZGF0ZSgpOwogfQogCkBAIC0yNTMsNyAr
MjUzLDcgQEAgdm9pZCBJbnNwZWN0b3JPdmVybGF5OjpoaWdobGlnaHROb2RlTGlzdChQYXNzUmVm
UHRyPE5vZGVMaXN0PiBub2RlcywgY29uc3QgSGlnaGwKIHsKICAgICBtX25vZGVIaWdobGlnaHRD
b25maWcgPSBoaWdobGlnaHRDb25maWc7CiAgICAgbV9oaWdobGlnaHROb2RlTGlzdCA9IG5vZGVz
OwotICAgIG1faGlnaGxpZ2h0Tm9kZS5jbGVhcigpOworICAgIG1faGlnaGxpZ2h0Tm9kZSA9IG51
bGxwdHI7CiAgICAgdXBkYXRlKCk7CiB9CiAKQEAgLTI2MSw3ICsyNjEsNyBAQCB2b2lkIEluc3Bl
Y3Rvck92ZXJsYXk6OmhpZ2hsaWdodE5vZGUoTm9kZSogbm9kZSwgY29uc3QgSGlnaGxpZ2h0Q29u
ZmlnJiBoaWdobGlnaAogewogICAgIG1fbm9kZUhpZ2hsaWdodENvbmZpZyA9IGhpZ2hsaWdodENv
bmZpZzsKICAgICBtX2hpZ2hsaWdodE5vZGUgPSBub2RlOwotICAgIG1faGlnaGxpZ2h0Tm9kZUxp
c3QuY2xlYXIoKTsKKyAgICBtX2hpZ2hsaWdodE5vZGVMaXN0ID0gbnVsbHB0cjsKICAgICB1cGRh
dGUoKTsKIH0KIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL0luc3BlY3Rv
clBhZ2VBZ2VudC5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvSW5zcGVjdG9yUGFnZUFn
ZW50LmNwcAppbmRleCA2ZjUyYmZhZTBiNTIzYzk2ZjE0ZTU3NDE3MjI2OTVhMTc1NTFjYThhLi4z
ZTlmZWJlZmI1NGZlNDQ4YWM4ODA3NmQ5OTZmOWE4YWQwN2E1YjlhIDEwMDY0NAotLS0gYS9Tb3Vy
Y2UvV2ViQ29yZS9pbnNwZWN0b3IvSW5zcGVjdG9yUGFnZUFnZW50LmNwcAorKysgYi9Tb3VyY2Uv
V2ViQ29yZS9pbnNwZWN0b3IvSW5zcGVjdG9yUGFnZUFnZW50LmNwcApAQCAtMzQ4LDcgKzM0OCw3
IEBAIHZvaWQgSW5zcGVjdG9yUGFnZUFnZW50OjpkaWRDcmVhdGVGcm9udGVuZEFuZEJhY2tlbmQo
SW5zcGVjdG9yOjpGcm9udGVuZENoYW5uZWwqCiB2b2lkIEluc3BlY3RvclBhZ2VBZ2VudDo6d2ls
bERlc3Ryb3lGcm9udGVuZEFuZEJhY2tlbmQoSW5zcGVjdG9yOjpEaXNjb25uZWN0UmVhc29uKQog
ewogICAgIG1fZnJvbnRlbmREaXNwYXRjaGVyID0gbnVsbHB0cjsKLSAgICBtX2JhY2tlbmREaXNw
YXRjaGVyLmNsZWFyKCk7CisgICAgbV9iYWNrZW5kRGlzcGF0Y2hlciA9IG51bGxwdHI7CiAKICAg
ICBFcnJvclN0cmluZyB1bnVzZWQ7CiAgICAgZGlzYWJsZSh1bnVzZWQpOwpAQCAtMzc0LDcgKzM3
NCw3IEBAIHZvaWQgSW5zcGVjdG9yUGFnZUFnZW50OjplbmFibGUoRXJyb3JTdHJpbmcmKQogdm9p
ZCBJbnNwZWN0b3JQYWdlQWdlbnQ6OmRpc2FibGUoRXJyb3JTdHJpbmcmKQogewogICAgIG1fZW5h
YmxlZCA9IGZhbHNlOwotICAgIG1fc2NyaXB0c1RvRXZhbHVhdGVPbkxvYWQuY2xlYXIoKTsKKyAg
ICBtX3NjcmlwdHNUb0V2YWx1YXRlT25Mb2FkID0gbnVsbHB0cjsKICAgICBtX2luc3RydW1lbnRp
bmdBZ2VudHMtPnNldEluc3BlY3RvclBhZ2VBZ2VudChudWxscHRyKTsKIAogICAgIEVycm9yU3Ry
aW5nIHVudXNlZDsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9JbnNwZWN0
b3JSZXBsYXlBZ2VudC5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvSW5zcGVjdG9yUmVw
bGF5QWdlbnQuY3BwCmluZGV4IDY0Y2I4MTE3Yzc5ODFkYWM0MzRmNDNjYmYzYmZkOWUzMzEyODQ3
YTEuLjE4MWE2MDk4MmFmNzI2YzI0NGE0YzFiMzNkNmJjODdjMjliNTA1ODUgMTAwNjQ0Ci0tLSBh
L1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9JbnNwZWN0b3JSZXBsYXlBZ2VudC5jcHAKKysrIGIv
U291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL0luc3BlY3RvclJlcGxheUFnZW50LmNwcApAQCAtMTkz
LDcgKzE5Myw3IEBAIHZvaWQgSW5zcGVjdG9yUmVwbGF5QWdlbnQ6OmRpZENyZWF0ZUZyb250ZW5k
QW5kQmFja2VuZChJbnNwZWN0b3I6OkZyb250ZW5kQ2hhbm5lCiB2b2lkIEluc3BlY3RvclJlcGxh
eUFnZW50Ojp3aWxsRGVzdHJveUZyb250ZW5kQW5kQmFja2VuZChJbnNwZWN0b3I6OkRpc2Nvbm5l
Y3RSZWFzb24pCiB7CiAgICAgbV9mcm9udGVuZERpc3BhdGNoZXIgPSBudWxscHRyOwotICAgIG1f
YmFja2VuZERpc3BhdGNoZXIuY2xlYXIoKTsKKyAgICBtX2JhY2tlbmREaXNwYXRjaGVyID0gbnVs
bHB0cjsKIAogICAgIG1faW5zdHJ1bWVudGluZ0FnZW50cy0+c2V0SW5zcGVjdG9yUmVwbGF5QWdl
bnQobnVsbHB0cik7CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9JbnNw
ZWN0b3JSZXNvdXJjZUFnZW50LmNwcCBiL1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9JbnNwZWN0
b3JSZXNvdXJjZUFnZW50LmNwcAppbmRleCA4NTQ0ODljMDRmOTc0ZDk3Y2QzNjY0YWVhYWQ0NWZl
MDFiYjFlZjAxLi43YjU2YTBmZjlkMTU4ZjZiYThiMTM1M2EwYmFiMmU0ZDBlODlhMWQ3IDEwMDY0
NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvSW5zcGVjdG9yUmVzb3VyY2VBZ2VudC5j
cHAKKysrIGIvU291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL0luc3BlY3RvclJlc291cmNlQWdlbnQu
Y3BwCkBAIC0xODEsNyArMTgxLDcgQEAgdm9pZCBJbnNwZWN0b3JSZXNvdXJjZUFnZW50OjpkaWRD
cmVhdGVGcm9udGVuZEFuZEJhY2tlbmQoSW5zcGVjdG9yOjpGcm9udGVuZENoYW4KIHZvaWQgSW5z
cGVjdG9yUmVzb3VyY2VBZ2VudDo6d2lsbERlc3Ryb3lGcm9udGVuZEFuZEJhY2tlbmQoSW5zcGVj
dG9yOjpEaXNjb25uZWN0UmVhc29uKQogewogICAgIG1fZnJvbnRlbmREaXNwYXRjaGVyID0gbnVs
bHB0cjsKLSAgICBtX2JhY2tlbmREaXNwYXRjaGVyLmNsZWFyKCk7CisgICAgbV9iYWNrZW5kRGlz
cGF0Y2hlciA9IG51bGxwdHI7CiAKICAgICBFcnJvclN0cmluZyB1bnVzZWQ7CiAgICAgZGlzYWJs
ZSh1bnVzZWQpOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL0luc3BlY3Rv
clN0eWxlU2hlZXQuY3BwIGIvU291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL0luc3BlY3RvclN0eWxl
U2hlZXQuY3BwCmluZGV4IGI0N2M2NTRkM2Q3NjJjZTQ1ZGNmZTRmMTQ0YjRjOTY1N2VjYzlmYzQu
LjA2ZWMxYjZmMmY2NDRjMmMxZDA2ZDNmZWU5YWJlMTI4ZmMwYTVmOGMgMTAwNjQ0Ci0tLSBhL1Nv
dXJjZS9XZWJDb3JlL2luc3BlY3Rvci9JbnNwZWN0b3JTdHlsZVNoZWV0LmNwcAorKysgYi9Tb3Vy
Y2UvV2ViQ29yZS9pbnNwZWN0b3IvSW5zcGVjdG9yU3R5bGVTaGVldC5jcHAKQEAgLTEyNjEsNyAr
MTI2MSw3IEBAIHZvaWQgSW5zcGVjdG9yU3R5bGVTaGVldEZvcklubGluZVN0eWxlOjpkaWRNb2Rp
ZnlFbGVtZW50QXR0cmlidXRlKCkKICAgICBtX2lzU3R5bGVUZXh0VmFsaWQgPSBmYWxzZTsKICAg
ICBpZiAobV9lbGVtZW50LT5pc1N0eWxlZEVsZW1lbnQoKSAmJiBtX2VsZW1lbnQtPnN0eWxlKCkg
IT0gbV9pbnNwZWN0b3JTdHlsZS0+Y3NzU3R5bGUoKSkKICAgICAgICAgbV9pbnNwZWN0b3JTdHls
ZSA9IEluc3BlY3RvclN0eWxlOjpjcmVhdGUoSW5zcGVjdG9yQ1NTSWQoaWQoKSwgMCksIGlubGlu
ZVN0eWxlKCksIHRoaXMpOwotICAgIG1fcnVsZVNvdXJjZURhdGEuY2xlYXIoKTsKKyAgICBtX3J1
bGVTb3VyY2VEYXRhID0gbnVsbHB0cjsKIH0KIAogYm9vbCBJbnNwZWN0b3JTdHlsZVNoZWV0Rm9y
SW5saW5lU3R5bGU6OmdldFRleHQoU3RyaW5nKiByZXN1bHQpIGNvbnN0CkBAIC0xMjg1LDcgKzEy
ODUsNyBAQCBib29sIEluc3BlY3RvclN0eWxlU2hlZXRGb3JJbmxpbmVTdHlsZTo6c2V0U3R5bGVU
ZXh0KENTU1N0eWxlRGVjbGFyYXRpb24qIHN0eWxlLAogCiAgICAgbV9zdHlsZVRleHQgPSB0ZXh0
OwogICAgIG1faXNTdHlsZVRleHRWYWxpZCA9IHRydWU7Ci0gICAgbV9ydWxlU291cmNlRGF0YS5j
bGVhcigpOworICAgIG1fcnVsZVNvdXJjZURhdGEgPSBudWxscHRyOwogICAgIHJldHVybiAhZWM7
CiB9CiAKQEAgLTEzMDQsNyArMTMwNCw3IEBAIGJvb2wgSW5zcGVjdG9yU3R5bGVTaGVldEZvcklu
bGluZVN0eWxlOjplbnN1cmVQYXJzZWREYXRhUmVhZHkoKQogICAgIC8vIFRoZSAic3R5bGUiIHBy
b3BlcnR5IHZhbHVlIGNhbiBnZXQgY2hhbmdlZCBpbmRpcmVjdGx5LCBlLmcuIHZpYSBlbGVtZW50
LnN0eWxlLmJvcmRlcldpZHRoID0gIjJweCIuCiAgICAgY29uc3QgU3RyaW5nJiBjdXJyZW50U3R5
bGVUZXh0ID0gZWxlbWVudFN0eWxlVGV4dCgpOwogICAgIGlmIChtX3N0eWxlVGV4dCAhPSBjdXJy
ZW50U3R5bGVUZXh0KSB7Ci0gICAgICAgIG1fcnVsZVNvdXJjZURhdGEuY2xlYXIoKTsKKyAgICAg
ICAgbV9ydWxlU291cmNlRGF0YSA9IG51bGxwdHI7CiAgICAgICAgIG1fc3R5bGVUZXh0ID0gY3Vy
cmVudFN0eWxlVGV4dDsKICAgICAgICAgbV9pc1N0eWxlVGV4dFZhbGlkID0gdHJ1ZTsKICAgICB9
CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvSW5zcGVjdG9yVGltZWxpbmVB
Z2VudC5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvSW5zcGVjdG9yVGltZWxpbmVBZ2Vu
dC5jcHAKaW5kZXggMGUzMmJjNWU2Mzg5OGFmZjhlZDJiMDZhYmIwZjdhMWJhOTgwMDhhNC4uZjU3
NTZhMmQxZWE4Mzg3MTE1MGQ1MjFmOGVmZjE0OWEyM2FjNzhjYiAxMDA2NDQKLS0tIGEvU291cmNl
L1dlYkNvcmUvaW5zcGVjdG9yL0luc3BlY3RvclRpbWVsaW5lQWdlbnQuY3BwCisrKyBiL1NvdXJj
ZS9XZWJDb3JlL2luc3BlY3Rvci9JbnNwZWN0b3JUaW1lbGluZUFnZW50LmNwcApAQCAtMTAzLDcg
KzEwMyw3IEBAIHZvaWQgSW5zcGVjdG9yVGltZWxpbmVBZ2VudDo6ZGlkQ3JlYXRlRnJvbnRlbmRB
bmRCYWNrZW5kKEluc3BlY3Rvcjo6RnJvbnRlbmRDaGFuCiB2b2lkIEluc3BlY3RvclRpbWVsaW5l
QWdlbnQ6OndpbGxEZXN0cm95RnJvbnRlbmRBbmRCYWNrZW5kKEluc3BlY3Rvcjo6RGlzY29ubmVj
dFJlYXNvbiByZWFzb24pCiB7CiAgICAgbV9mcm9udGVuZERpc3BhdGNoZXIgPSBudWxscHRyOwot
ICAgIG1fYmFja2VuZERpc3BhdGNoZXIuY2xlYXIoKTsKKyAgICBtX2JhY2tlbmREaXNwYXRjaGVy
ID0gbnVsbHB0cjsKIAogICAgIG1faW5zdHJ1bWVudGluZ0FnZW50cy0+c2V0UGVyc2lzdGVudElu
c3BlY3RvclRpbWVsaW5lQWdlbnQobnVsbHB0cik7CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJD
b3JlL2luc3BlY3Rvci9JbnNwZWN0b3JXb3JrZXJBZ2VudC5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9p
bnNwZWN0b3IvSW5zcGVjdG9yV29ya2VyQWdlbnQuY3BwCmluZGV4IGRlYmM2OTg3OTVkOThjNDJi
OGViMThjMTBmZGEyYTI1Zjg1ZjJlOWIuLjVlMjFmMzViYjQ4MDNiZWIxZWEyZDU5ODRiNDJkMDg2
NjQ1ZDkxODEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9JbnNwZWN0b3JX
b3JrZXJBZ2VudC5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL0luc3BlY3Rvcldv
cmtlckFnZW50LmNwcApAQCAtMTI3LDcgKzEyNyw3IEBAIHZvaWQgSW5zcGVjdG9yV29ya2VyQWdl
bnQ6OndpbGxEZXN0cm95RnJvbnRlbmRBbmRCYWNrZW5kKEluc3BlY3Rvcjo6RGlzY29ubmVjdFJl
CiAgICAgZGlzYWJsZSh1bnVzZWQpOwogCiAgICAgbV9mcm9udGVuZERpc3BhdGNoZXIgPSBudWxs
cHRyOwotICAgIG1fYmFja2VuZERpc3BhdGNoZXIuY2xlYXIoKTsKKyAgICBtX2JhY2tlbmREaXNw
YXRjaGVyID0gbnVsbHB0cjsKIH0KIAogdm9pZCBJbnNwZWN0b3JXb3JrZXJBZ2VudDo6ZW5hYmxl
KEVycm9yU3RyaW5nJikKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9QYWdl
UnVudGltZUFnZW50LmNwcCBiL1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9QYWdlUnVudGltZUFn
ZW50LmNwcAppbmRleCA5M2RiNTcyYTdmMDQ1NTA1YjllNTE1ZTUwOTBjNGZjMGI1MDIxZTJkLi5l
MjQ0NWFiZjQ0M2QwOGY0Mzg0YTAzOWJjOWU1NWQ4ZDVmM2Y3MTJiIDEwMDY0NAotLS0gYS9Tb3Vy
Y2UvV2ViQ29yZS9pbnNwZWN0b3IvUGFnZVJ1bnRpbWVBZ2VudC5jcHAKKysrIGIvU291cmNlL1dl
YkNvcmUvaW5zcGVjdG9yL1BhZ2VSdW50aW1lQWdlbnQuY3BwCkBAIC02OSw3ICs2OSw3IEBAIHZv
aWQgUGFnZVJ1bnRpbWVBZ2VudDo6ZGlkQ3JlYXRlRnJvbnRlbmRBbmRCYWNrZW5kKEluc3BlY3Rv
cjo6RnJvbnRlbmRDaGFubmVsKiBmCiB2b2lkIFBhZ2VSdW50aW1lQWdlbnQ6OndpbGxEZXN0cm95
RnJvbnRlbmRBbmRCYWNrZW5kKEluc3BlY3Rvcjo6RGlzY29ubmVjdFJlYXNvbiByZWFzb24pCiB7
CiAgICAgbV9mcm9udGVuZERpc3BhdGNoZXIgPSBudWxscHRyOwotICAgIG1fYmFja2VuZERpc3Bh
dGNoZXIuY2xlYXIoKTsKKyAgICBtX2JhY2tlbmREaXNwYXRjaGVyID0gbnVsbHB0cjsKIAogICAg
IFN0cmluZyB1bnVzZWQ7CiAgICAgZGlzYWJsZSh1bnVzZWQpOwpkaWZmIC0tZ2l0IGEvU291cmNl
L1dlYkNvcmUvaW5zcGVjdG9yL1dlYkluamVjdGVkU2NyaXB0TWFuYWdlci5jcHAgYi9Tb3VyY2Uv
V2ViQ29yZS9pbnNwZWN0b3IvV2ViSW5qZWN0ZWRTY3JpcHRNYW5hZ2VyLmNwcAppbmRleCA5ZjRh
ZjQyNjkzZWM1NzU5NTMxMzM5NDQ2MGIxOTA1ZGZlMGFkNTg3Li41NjE5NmYwYWUzNzFlZjQ0M2Mw
NTIzZWIzMWJiNmZjNWVhZjNlNWIxIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0
b3IvV2ViSW5qZWN0ZWRTY3JpcHRNYW5hZ2VyLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9pbnNw
ZWN0b3IvV2ViSW5qZWN0ZWRTY3JpcHRNYW5hZ2VyLmNwcApAQCAtNDQsNyArNDQsNyBAQCB2b2lk
IFdlYkluamVjdGVkU2NyaXB0TWFuYWdlcjo6ZGlzY29ubmVjdCgpCiAgICAgSW5qZWN0ZWRTY3Jp
cHRNYW5hZ2VyOjpkaXNjb25uZWN0KCk7CiAKICAgICBtX2NvbW1hbmRMaW5lQVBJSG9zdC0+ZGlz
Y29ubmVjdCgpOwotICAgIG1fY29tbWFuZExpbmVBUElIb3N0LmNsZWFyKCk7CisgICAgbV9jb21t
YW5kTGluZUFQSUhvc3QgPSBudWxscHRyOwogfQogCiB2b2lkIFdlYkluamVjdGVkU2NyaXB0TWFu
YWdlcjo6ZGlkQ3JlYXRlSW5qZWN0ZWRTY3JpcHQoSW5qZWN0ZWRTY3JpcHQgaW5qZWN0ZWRTY3Jp
cHQpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvV29ya2VySW5zcGVjdG9y
Q29udHJvbGxlci5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvV29ya2VySW5zcGVjdG9y
Q29udHJvbGxlci5jcHAKaW5kZXggZjFmZTQxMDA1YWRmZWE0YmMwMWUwYWQ1Yjc3ZjU4ZjBiOTZj
MjcwZC4uZDgzNGUwZWE5ZjVhMzAwYTgzMjRmNGFmMWQ2NjZkM2I5MDZhYzY1MiAxMDA2NDQKLS0t
IGEvU291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL1dvcmtlckluc3BlY3RvckNvbnRyb2xsZXIuY3Bw
CisrKyBiL1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9Xb3JrZXJJbnNwZWN0b3JDb250cm9sbGVy
LmNwcApAQCAtMTI2LDcgKzEyNiw3IEBAIHZvaWQgV29ya2VySW5zcGVjdG9yQ29udHJvbGxlcjo6
ZGlzY29ubmVjdEZyb250ZW5kKEluc3BlY3Rvcjo6RGlzY29ubmVjdFJlYXNvbiByCiAKICAgICBt
X2FnZW50cy53aWxsRGVzdHJveUZyb250ZW5kQW5kQmFja2VuZChyZWFzb24pOwogICAgIG1fYmFj
a2VuZERpc3BhdGNoZXItPmNsZWFyRnJvbnRlbmQoKTsKLSAgICBtX2JhY2tlbmREaXNwYXRjaGVy
LmNsZWFyKCk7CisgICAgbV9iYWNrZW5kRGlzcGF0Y2hlciA9IG51bGxwdHI7CiAgICAgbV9mcm9u
dGVuZENoYW5uZWwgPSBudWxscHRyOwogfQogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9p
bnNwZWN0b3IvV29ya2VyUnVudGltZUFnZW50LmNwcCBiL1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rv
ci9Xb3JrZXJSdW50aW1lQWdlbnQuY3BwCmluZGV4IDIwNmE0MWY1ZmI0MmNkMTVhMzM2Y2NiMzk0
YjJlYWM1MWRlNTRmZmEuLjEyMjJlNTUyNzk4YmI2MzczOTlmOGFlNzU3YjRmZjRmZGJkMmU1MGQg
MTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9Xb3JrZXJSdW50aW1lQWdlbnQu
Y3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9Xb3JrZXJSdW50aW1lQWdlbnQuY3Bw
CkBAIC02MCw3ICs2MCw3IEBAIHZvaWQgV29ya2VyUnVudGltZUFnZW50OjpkaWRDcmVhdGVGcm9u
dGVuZEFuZEJhY2tlbmQoSW5zcGVjdG9yOjpGcm9udGVuZENoYW5uZWwqCiAKIHZvaWQgV29ya2Vy
UnVudGltZUFnZW50Ojp3aWxsRGVzdHJveUZyb250ZW5kQW5kQmFja2VuZChJbnNwZWN0b3I6OkRp
c2Nvbm5lY3RSZWFzb24gcmVhc29uKQogewotICAgIG1fYmFja2VuZERpc3BhdGNoZXIuY2xlYXIo
KTsKKyAgICBtX2JhY2tlbmREaXNwYXRjaGVyID0gbnVsbHB0cjsKIAogICAgIEluc3BlY3RvclJ1
bnRpbWVBZ2VudDo6d2lsbERlc3Ryb3lGcm9udGVuZEFuZEJhY2tlbmQocmVhc29uKTsKIH0KZGlm
ZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2xvYWRlci9Eb2N1bWVudExvYWRlci5jcHAgYi9Tb3Vy
Y2UvV2ViQ29yZS9sb2FkZXIvRG9jdW1lbnRMb2FkZXIuY3BwCmluZGV4IDVlYzQ3YWMzMWYzMzVi
MzVhZWUyODc3MjJkYjYwYzU0NDZkMWJiOGEuLjdjYTFmMjM4NjZlNmQxNzc1YzA2YTUyYWNlMzIy
MmMyMTE1NGI0OTUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2xvYWRlci9Eb2N1bWVudExv
YWRlci5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvbG9hZGVyL0RvY3VtZW50TG9hZGVyLmNwcApA
QCAtMTUyNCw3ICsxNTI0LDcgQEAgdm9pZCBEb2N1bWVudExvYWRlcjo6Z2V0SWNvbkxvYWREZWNp
c2lvbkZvckljb25VUkwoY29uc3QgU3RyaW5nJiB1cmxTdHJpbmcpCiB2b2lkIERvY3VtZW50TG9h
ZGVyOjpjb250aW51ZUljb25Mb2FkV2l0aERlY2lzaW9uKEljb25Mb2FkRGVjaXNpb24gZGVjaXNp
b24pCiB7CiAgICAgQVNTRVJUKG1faWNvbkxvYWREZWNpc2lvbkNhbGxiYWNrKTsKLSAgICBtX2lj
b25Mb2FkRGVjaXNpb25DYWxsYmFjayA9IDA7CisgICAgbV9pY29uTG9hZERlY2lzaW9uQ2FsbGJh
Y2sgPSBudWxscHRyOwogICAgIGlmIChtX2ZyYW1lKQogICAgICAgICBtX2ZyYW1lLT5sb2FkZXIo
KS5pY29uKCkuY29udGludWVMb2FkV2l0aERlY2lzaW9uKGRlY2lzaW9uKTsKIH0KZGlmZiAtLWdp
dCBhL1NvdXJjZS9XZWJDb3JlL2xvYWRlci9Eb2N1bWVudFRocmVhZGFibGVMb2FkZXIuY3BwIGIv
U291cmNlL1dlYkNvcmUvbG9hZGVyL0RvY3VtZW50VGhyZWFkYWJsZUxvYWRlci5jcHAKaW5kZXgg
MWU4NmZhYzFiZGY4MjlhNjNlMTY5MGFmMmEzZTQ3NTI2MzIwN2QxYy4uYjBlNTg5OGJiY2Y4MGY5
ZmZhOWQyODY1NGIyNzRlY2ZhYjgyOWZmMSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvbG9h
ZGVyL0RvY3VtZW50VGhyZWFkYWJsZUxvYWRlci5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvbG9h
ZGVyL0RvY3VtZW50VGhyZWFkYWJsZUxvYWRlci5jcHAKQEAgLTY0LDcgKzY0LDcgQEAgUGFzc1Jl
ZlB0cjxEb2N1bWVudFRocmVhZGFibGVMb2FkZXI+IERvY3VtZW50VGhyZWFkYWJsZUxvYWRlcjo6
Y3JlYXRlKERvY3VtZW50JgogewogICAgIFJlZlB0cjxEb2N1bWVudFRocmVhZGFibGVMb2FkZXI+
IGxvYWRlciA9IGFkb3B0UmVmKG5ldyBEb2N1bWVudFRocmVhZGFibGVMb2FkZXIoZG9jdW1lbnQs
IGNsaWVudCwgTG9hZEFzeW5jaHJvbm91c2x5LCByZXF1ZXN0LCBvcHRpb25zKSk7CiAgICAgaWYg
KCFsb2FkZXItPm1fcmVzb3VyY2UpCi0gICAgICAgIGxvYWRlciA9IDA7CisgICAgICAgIGxvYWRl
ciA9IG51bGxwdHI7CiAgICAgcmV0dXJuIGxvYWRlci5yZWxlYXNlKCk7CiB9CiAKZGlmZiAtLWdp
dCBhL1NvdXJjZS9XZWJDb3JlL2xvYWRlci9Eb2N1bWVudFdyaXRlci5jcHAgYi9Tb3VyY2UvV2Vi
Q29yZS9sb2FkZXIvRG9jdW1lbnRXcml0ZXIuY3BwCmluZGV4IGNjNTEzOTNjMTBmNjM2YmQ3NmVk
MTA5OGIzZWJjYzM2YzQyMmMxMTEuLmExYzM3N2Y4ZTFiMzQ2MDdkMjU3NTQxNWFjZmE0YWJjZjkx
MGI0MzEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2xvYWRlci9Eb2N1bWVudFdyaXRlci5j
cHAKKysrIGIvU291cmNlL1dlYkNvcmUvbG9hZGVyL0RvY3VtZW50V3JpdGVyLmNwcApAQCAtOTAs
NyArOTAsNyBAQCB2b2lkIERvY3VtZW50V3JpdGVyOjpyZXBsYWNlRG9jdW1lbnQoY29uc3QgU3Ry
aW5nJiBzb3VyY2UsIERvY3VtZW50KiBvd25lckRvY3VtZQogCiB2b2lkIERvY3VtZW50V3JpdGVy
OjpjbGVhcigpCiB7Ci0gICAgbV9kZWNvZGVyID0gMDsKKyAgICBtX2RlY29kZXIgPSBudWxscHRy
OwogICAgIG1faGFzUmVjZWl2ZWRTb21lRGF0YSA9IGZhbHNlOwogICAgIGlmICghbV9lbmNvZGlu
Z1dhc0Nob3NlbkJ5VXNlcikKICAgICAgICAgbV9lbmNvZGluZyA9IFN0cmluZygpOwpAQCAtMjQ1
LDcgKzI0NSw3IEBAIHZvaWQgRG9jdW1lbnRXcml0ZXI6OmVuZCgpCiAgICAgaWYgKCFtX3BhcnNl
cikKICAgICAgICAgcmV0dXJuOwogICAgIG1fcGFyc2VyLT5maW5pc2goKTsKLSAgICBtX3BhcnNl
ciA9IDA7CisgICAgbV9wYXJzZXIgPSBudWxscHRyOwogfQogCiB2b2lkIERvY3VtZW50V3JpdGVy
OjpzZXRFbmNvZGluZyhjb25zdCBTdHJpbmcmIG5hbWUsIGJvb2wgdXNlckNob3NlbikKZGlmZiAt
LWdpdCBhL1NvdXJjZS9XZWJDb3JlL2xvYWRlci9GcmFtZUxvYWRlci5jcHAgYi9Tb3VyY2UvV2Vi
Q29yZS9sb2FkZXIvRnJhbWVMb2FkZXIuY3BwCmluZGV4IDUyMmIxNTdkYmNiZWMwYjUwMTFmOTVl
ODY2NjZhOWUyMGM2OWJmY2QuLjNiZGI2MjFkN2RhYjU2MzZlMDA5ZTk1YTFjM2IwYjdmOWNiZjM4
OGIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2xvYWRlci9GcmFtZUxvYWRlci5jcHAKKysr
IGIvU291cmNlL1dlYkNvcmUvbG9hZGVyL0ZyYW1lTG9hZGVyLmNwcApAQCAtNjkyLDcgKzY5Miw3
IEBAIHZvaWQgRnJhbWVMb2FkZXI6OmRpZEJlZ2luRG9jdW1lbnQoYm9vbCBkaXNwYXRjaCkKIAog
ICAgIGlmIChtX3BlbmRpbmdTdGF0ZU9iamVjdCkgewogICAgICAgICBtX2ZyYW1lLmRvY3VtZW50
KCktPnN0YXRlUG9wcGVkKG1fcGVuZGluZ1N0YXRlT2JqZWN0LmdldCgpKTsKLSAgICAgICAgbV9w
ZW5kaW5nU3RhdGVPYmplY3QuY2xlYXIoKTsKKyAgICAgICAgbV9wZW5kaW5nU3RhdGVPYmplY3Qg
PSBudWxscHRyOwogICAgIH0KIAogICAgIGlmIChkaXNwYXRjaCkKQEAgLTgxOCw3ICs4MTgsNyBA
QCB2b2lkIEZyYW1lTG9hZGVyOjpjaGVja0NvbXBsZXRlZCgpCiAKICAgICAvLyBPSywgY29tcGxl
dGVkLgogICAgIG1faXNDb21wbGV0ZSA9IHRydWU7Ci0gICAgbV9yZXF1ZXN0ZWRIaXN0b3J5SXRl
bSA9IDA7CisgICAgbV9yZXF1ZXN0ZWRIaXN0b3J5SXRlbSA9IG51bGxwdHI7CiAgICAgbV9mcmFt
ZS5kb2N1bWVudCgpLT5zZXRSZWFkeVN0YXRlKERvY3VtZW50OjpDb21wbGV0ZSk7CiAKICNpZiBQ
TEFURk9STShJT1MpCkBAIC0xMTM3LDcgKzExMzcsNyBAQCB2b2lkIEZyYW1lTG9hZGVyOjpzZXR1
cEZvclJlcGxhY2UoKQogICAgIG1fY2xpZW50LnJldmVydFRvUHJvdmlzaW9uYWxTdGF0ZShtX2Rv
Y3VtZW50TG9hZGVyLmdldCgpKTsKICAgICBzZXRTdGF0ZShGcmFtZVN0YXRlUHJvdmlzaW9uYWwp
OwogICAgIG1fcHJvdmlzaW9uYWxEb2N1bWVudExvYWRlciA9IG1fZG9jdW1lbnRMb2FkZXI7Ci0g
ICAgbV9kb2N1bWVudExvYWRlciA9IDA7CisgICAgbV9kb2N1bWVudExvYWRlciA9IG51bGxwdHI7
CiAgICAgZGV0YWNoQ2hpbGRyZW4oKTsKIH0KIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUv
bG9hZGVyL1Byb2dyZXNzVHJhY2tlci5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9sb2FkZXIvUHJvZ3Jl
c3NUcmFja2VyLmNwcAppbmRleCAwNDA1NGRlNGVhYjM5NTFmOTVlMDdlOWRlZDMyZGM5MTZmZDdl
ZTA2Li5kNTZjYTA1ZGI5OTBiMzBhNmIwN2QxMmZiMmMwOWU5OTZiNzk3MjBmIDEwMDY0NAotLS0g
YS9Tb3VyY2UvV2ViQ29yZS9sb2FkZXIvUHJvZ3Jlc3NUcmFja2VyLmNwcAorKysgYi9Tb3VyY2Uv
V2ViQ29yZS9sb2FkZXIvUHJvZ3Jlc3NUcmFja2VyLmNwcApAQCAtMTEzLDcgKzExMyw3IEBAIHZv
aWQgUHJvZ3Jlc3NUcmFja2VyOjpyZXNldCgpCiAgICAgbV9sYXN0Tm90aWZpZWRQcm9ncmVzc1Rp
bWUgPSBzdGQ6OmNocm9ubzo6c3RlYWR5X2Nsb2NrOjp0aW1lX3BvaW50KCk7CiAgICAgbV9maW5h
bFByb2dyZXNzQ2hhbmdlZFNlbnQgPSBmYWxzZTsKICAgICBtX251bVByb2dyZXNzVHJhY2tlZEZy
YW1lcyA9IDA7Ci0gICAgbV9vcmlnaW5hdGluZ1Byb2dyZXNzRnJhbWUgPSAwOworICAgIG1fb3Jp
Z2luYXRpbmdQcm9ncmVzc0ZyYW1lID0gbnVsbHB0cjsKIAogICAgIG1faGVhcnRiZWF0c1dpdGhO
b1Byb2dyZXNzID0gMDsKICAgICBtX3RvdGFsQnl0ZXNSZWNlaXZlZEJlZm9yZVByZXZpb3VzSGVh
cnRiZWF0ID0gMDsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2xvYWRlci9SZXNvdXJjZUxv
YWRlci5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9sb2FkZXIvUmVzb3VyY2VMb2FkZXIuY3BwCmluZGV4
IDQzMWEwY2IxZDQ0NWJlMmZmNTkwM2Q2MjM1NDc2NmFhY2NlNDM1MzYuLjE2NmE0NTRjMTA5MGJh
OGJkMmRkYzBjY2M3YmEyMDMxMzJhOTEzODAgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2xv
YWRlci9SZXNvdXJjZUxvYWRlci5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvbG9hZGVyL1Jlc291
cmNlTG9hZGVyLmNwcApAQCAtOTAsOCArOTAsOCBAQCB2b2lkIFJlc291cmNlTG9hZGVyOjpyZWxl
YXNlUmVzb3VyY2VzKCkKICAgICAvLyBoYXMgYmVlbiBkZWFsbG9jYXRlZCBhbmQgYWxzbyB0byBh
dm9pZCByZWVudGVyaW5nIHRoaXMgbWV0aG9kLgogICAgIFJlZjxSZXNvdXJjZUxvYWRlcj4gcHJv
dGVjdCgqdGhpcyk7CiAKLSAgICBtX2ZyYW1lID0gMDsKLSAgICBtX2RvY3VtZW50TG9hZGVyID0g
MDsKKyAgICBtX2ZyYW1lID0gbnVsbHB0cjsKKyAgICBtX2RvY3VtZW50TG9hZGVyID0gbnVsbHB0
cjsKICAgICAKICAgICAvLyBXZSBuZWVkIHRvIHNldCByZWFjaGVkVGVybWluYWxTdGF0ZSB0byB0
cnVlIGJlZm9yZSB3ZSByZWxlYXNlCiAgICAgLy8gdGhlIHJlc291cmNlcyB0byBwcmV2ZW50IGEg
ZG91YmxlIGRlYWxsb2Mgb2YgV2ViVmlldyA8cmRhcjovL3Byb2JsZW0vNDM3MjYyOD4KQEAgLTEw
NCwxMSArMTA0LDExIEBAIHZvaWQgUmVzb3VyY2VMb2FkZXI6OnJlbGVhc2VSZXNvdXJjZXMoKQog
ICAgICAgICAvLyBDbGVhciBvdXQgdGhlIFJlc291cmNlSGFuZGxlJ3MgY2xpZW50IHNvIHRoYXQg
aXQgZG9lc24ndCB0cnkgdG8gY2FsbAogICAgICAgICAvLyB1cyBiYWNrIGFmdGVyIHdlIHJlbGVh
c2UgaXQsIHVubGVzcyBpdCBoYXMgYmVlbiByZXBsYWNlZCBieSBzb21lb25lIGVsc2UuCiAgICAg
ICAgIGlmIChtX2hhbmRsZS0+Y2xpZW50KCkgPT0gdGhpcykKLSAgICAgICAgICAgIG1faGFuZGxl
LT5zZXRDbGllbnQoMCk7Ci0gICAgICAgIG1faGFuZGxlID0gMDsKKyAgICAgICAgICAgIG1faGFu
ZGxlLT5zZXRDbGllbnQobnVsbHB0cik7CisgICAgICAgIG1faGFuZGxlID0gbnVsbHB0cjsKICAg
ICB9CiAKLSAgICBtX3Jlc291cmNlRGF0YSA9IDA7CisgICAgbV9yZXNvdXJjZURhdGEgPSBudWxs
cHRyOwogICAgIG1fZGVmZXJyZWRSZXF1ZXN0ID0gUmVzb3VyY2VSZXF1ZXN0KCk7CiB9CiAKQEAg
LTIyNSw3ICsyMjUsNyBAQCB2b2lkIFJlc291cmNlTG9hZGVyOjpzZXREZWZlcnNMb2FkaW5nKGJv
b2wgZGVmZXJzKQogRnJhbWVMb2FkZXIqIFJlc291cmNlTG9hZGVyOjpmcmFtZUxvYWRlcigpIGNv
bnN0CiB7CiAgICAgaWYgKCFtX2ZyYW1lKQotICAgICAgICByZXR1cm4gMDsKKyAgICAgICAgcmV0
dXJuIG51bGxwdHI7CiAgICAgcmV0dXJuICZtX2ZyYW1lLT5sb2FkZXIoKTsKIH0KIApAQCAtMjQ0
LDcgKzI0NCw3IEBAIHZvaWQgUmVzb3VyY2VMb2FkZXI6OnNldERhdGFCdWZmZXJpbmdQb2xpY3ko
RGF0YUJ1ZmZlcmluZ1BvbGljeSBkYXRhQnVmZmVyaW5nUG9sCiAKICAgICAvLyBSZXNldCBhbnkg
YWxyZWFkeSBidWZmZXJlZCBkYXRhCiAgICAgaWYgKGRhdGFCdWZmZXJpbmdQb2xpY3kgPT0gRG9O
b3RCdWZmZXJEYXRhKQotICAgICAgICBtX3Jlc291cmNlRGF0YSA9IDA7CisgICAgICAgIG1fcmVz
b3VyY2VEYXRhID0gbnVsbHB0cjsKIH0KICAgICAKIHZvaWQgUmVzb3VyY2VMb2FkZXI6OndpbGxT
d2l0Y2hUb1N1YnN0aXR1dGVSZXNvdXJjZSgpCkBAIC01MzAsNyArNTMwLDcgQEAgdm9pZCBSZXNv
dXJjZUxvYWRlcjo6Y2FuY2VsKGNvbnN0IFJlc291cmNlRXJyb3ImIGVycm9yKQogICAgICAgICBt
X2RvY3VtZW50TG9hZGVyLT5jYW5jZWxQZW5kaW5nU3Vic3RpdHV0ZUxvYWQodGhpcyk7CiAgICAg
ICAgIGlmIChtX2hhbmRsZSkgewogICAgICAgICAgICAgbV9oYW5kbGUtPmNhbmNlbCgpOwotICAg
ICAgICAgICAgbV9oYW5kbGUgPSAwOworICAgICAgICAgICAgbV9oYW5kbGUgPSBudWxscHRyOwog
ICAgICAgICB9CiAgICAgICAgIGNsZWFudXBGb3JFcnJvcihub25OdWxsRXJyb3IpOwogICAgIH0K
ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2xvYWRlci9hcHBjYWNoZS9BcHBsaWNhdGlvbkNh
Y2hlR3JvdXAuY3BwIGIvU291cmNlL1dlYkNvcmUvbG9hZGVyL2FwcGNhY2hlL0FwcGxpY2F0aW9u
Q2FjaGVHcm91cC5jcHAKaW5kZXggNjI3YzBmZTc5ZTc1ZTA4MzljNjYxOWNhNzRhYjk3MDkxODk4
OTJhNi4uNTliY2FjOWExMDBiYmM1NDM4YWQ0MDMyN2ZmN2ZmY2QzOTg5NzA2MyAxMDA2NDQKLS0t
IGEvU291cmNlL1dlYkNvcmUvbG9hZGVyL2FwcGNhY2hlL0FwcGxpY2F0aW9uQ2FjaGVHcm91cC5j
cHAKKysrIGIvU291cmNlL1dlYkNvcmUvbG9hZGVyL2FwcGNhY2hlL0FwcGxpY2F0aW9uQ2FjaGVH
cm91cC5jcHAKQEAgLTMyNyw3ICszMjcsNyBAQCB2b2lkIEFwcGxpY2F0aW9uQ2FjaGVHcm91cDo6
c3RvcExvYWRpbmcoKQogICAgICAgICBtX21hbmlmZXN0SGFuZGxlLT5zZXRDbGllbnQoMCk7CiAK
ICAgICAgICAgbV9tYW5pZmVzdEhhbmRsZS0+Y2FuY2VsKCk7Ci0gICAgICAgIG1fbWFuaWZlc3RI
YW5kbGUgPSAwOworICAgICAgICBtX21hbmlmZXN0SGFuZGxlID0gbnVsbHB0cjsKICAgICB9CiAg
ICAgCiAgICAgaWYgKG1fY3VycmVudEhhbmRsZSkgewpAQCAtMzM4LDExICszMzgsMTEgQEAgdm9p
ZCBBcHBsaWNhdGlvbkNhY2hlR3JvdXA6OnN0b3BMb2FkaW5nKCkKICAgICAgICAgbV9jdXJyZW50
SGFuZGxlLT5zZXRDbGllbnQoMCk7CiAKICAgICAgICAgbV9jdXJyZW50SGFuZGxlLT5jYW5jZWwo
KTsKLSAgICAgICAgbV9jdXJyZW50SGFuZGxlID0gMDsKKyAgICAgICAgbV9jdXJyZW50SGFuZGxl
ID0gbnVsbHB0cjsKICAgICB9ICAgIAogCiAgICAgLy8gRklYTUU6IFJlc2V0dGluZyBqdXN0IGEg
dGlueSBwYXJ0IG9mIHRoZSBzdGF0ZSBpbiB0aGlzIGZ1bmN0aW9uIGlzIGNvbmZ1c2luZy4gQ2Fs
bGVycyBoYXZlIHRvIHRha2UgY2FyZSBvZiBhIGxvdCBtb3JlLgotICAgIG1fY2FjaGVCZWluZ1Vw
ZGF0ZWQgPSAwOworICAgIG1fY2FjaGVCZWluZ1VwZGF0ZWQgPSBudWxscHRyOwogICAgIG1fcGVu
ZGluZ0VudHJpZXMuY2xlYXIoKTsKIH0gICAgCiAKQEAgLTUyMSw3ICs1MjEsNyBAQCB2b2lkIEFw
cGxpY2F0aW9uQ2FjaGVHcm91cDo6ZGlkUmVjZWl2ZVJlc3BvbnNlKFJlc291cmNlSGFuZGxlKiBo
YW5kbGUsIGNvbnN0IFJlcwogICAgICAgICAgICAgbV9jYWNoZUJlaW5nVXBkYXRlZC0+YWRkUmVz
b3VyY2UoQXBwbGljYXRpb25DYWNoZVJlc291cmNlOjpjcmVhdGUodXJsLCBuZXdlc3RDYWNoZWRS
ZXNvdXJjZS0+cmVzcG9uc2UoKSwgdHlwZSwgbmV3ZXN0Q2FjaGVkUmVzb3VyY2UtPmRhdGEoKSwg
bmV3ZXN0Q2FjaGVkUmVzb3VyY2UtPnBhdGgoKSkpOwogICAgICAgICAgICAgbV9wZW5kaW5nRW50
cmllcy5yZW1vdmUobV9jdXJyZW50SGFuZGxlLT5maXJzdFJlcXVlc3QoKS51cmwoKSk7CiAgICAg
ICAgICAgICBtX2N1cnJlbnRIYW5kbGUtPmNhbmNlbCgpOwotICAgICAgICAgICAgbV9jdXJyZW50
SGFuZGxlID0gMDsKKyAgICAgICAgICAgIG1fY3VycmVudEhhbmRsZSA9IG51bGxwdHI7CiAgICAg
ICAgICAgICAvLyBMb2FkIHRoZSBuZXh0IHJlc291cmNlLCBpZiBhbnkuCiAgICAgICAgICAgICBz
dGFydExvYWRpbmdFbnRyeSgpOwogICAgICAgICAgICAgcmV0dXJuOwpAQCAtNTM4LDcgKzUzOCw3
IEBAIHZvaWQgQXBwbGljYXRpb25DYWNoZUdyb3VwOjpkaWRSZWNlaXZlUmVzcG9uc2UoUmVzb3Vy
Y2VIYW5kbGUqIGhhbmRsZSwgY29uc3QgUmVzCiAgICAgICAgIH0gZWxzZSBpZiAocmVzcG9uc2Uu
aHR0cFN0YXR1c0NvZGUoKSA9PSA0MDQgfHwgcmVzcG9uc2UuaHR0cFN0YXR1c0NvZGUoKSA9PSA0
MTApIHsKICAgICAgICAgICAgIC8vIFNraXAgdGhpcyByZXNvdXJjZS4gSXQgaXMgZHJvcHBlZCBm
cm9tIHRoZSBjYWNoZS4KICAgICAgICAgICAgIG1fY3VycmVudEhhbmRsZS0+Y2FuY2VsKCk7Ci0g
ICAgICAgICAgICBtX2N1cnJlbnRIYW5kbGUgPSAwOworICAgICAgICAgICAgbV9jdXJyZW50SGFu
ZGxlID0gbnVsbHB0cjsKICAgICAgICAgICAgIG1fcGVuZGluZ0VudHJpZXMucmVtb3ZlKHVybCk7
CiAgICAgICAgICAgICAvLyBMb2FkIHRoZSBuZXh0IHJlc291cmNlLCBpZiBhbnkuCiAgICAgICAg
ICAgICBzdGFydExvYWRpbmdFbnRyeSgpOwpAQCAtNTUxLDcgKzU1MSw3IEBAIHZvaWQgQXBwbGlj
YXRpb25DYWNoZUdyb3VwOjpkaWRSZWNlaXZlUmVzcG9uc2UoUmVzb3VyY2VIYW5kbGUqIGhhbmRs
ZSwgY29uc3QgUmVzCiAgICAgICAgICAgICBtX2NhY2hlQmVpbmdVcGRhdGVkLT5hZGRSZXNvdXJj
ZShBcHBsaWNhdGlvbkNhY2hlUmVzb3VyY2U6OmNyZWF0ZSh1cmwsIG5ld2VzdENhY2hlZFJlc291
cmNlLT5yZXNwb25zZSgpLCB0eXBlLCBuZXdlc3RDYWNoZWRSZXNvdXJjZS0+ZGF0YSgpLCBuZXdl
c3RDYWNoZWRSZXNvdXJjZS0+cGF0aCgpKSk7CiAgICAgICAgICAgICBtX3BlbmRpbmdFbnRyaWVz
LnJlbW92ZShtX2N1cnJlbnRIYW5kbGUtPmZpcnN0UmVxdWVzdCgpLnVybCgpKTsKICAgICAgICAg
ICAgIG1fY3VycmVudEhhbmRsZS0+Y2FuY2VsKCk7Ci0gICAgICAgICAgICBtX2N1cnJlbnRIYW5k
bGUgPSAwOworICAgICAgICAgICAgbV9jdXJyZW50SGFuZGxlID0gbnVsbHB0cjsKICAgICAgICAg
ICAgIC8vIExvYWQgdGhlIG5leHQgcmVzb3VyY2UsIGlmIGFueS4KICAgICAgICAgICAgIHN0YXJ0
TG9hZGluZ0VudHJ5KCk7CiAgICAgICAgIH0KQEAgLTU5NSw3ICs1OTUsNyBAQCB2b2lkIEFwcGxp
Y2F0aW9uQ2FjaGVHcm91cDo6ZGlkRmluaXNoTG9hZGluZyhSZXNvdXJjZUhhbmRsZSogaGFuZGxl
LCBkb3VibGUgZmluaQogICAgIEFTU0VSVChtX2NhY2hlQmVpbmdVcGRhdGVkKTsKIAogICAgIG1f
Y2FjaGVCZWluZ1VwZGF0ZWQtPmFkZFJlc291cmNlKG1fY3VycmVudFJlc291cmNlLnJlbGVhc2Uo
KSk7Ci0gICAgbV9jdXJyZW50SGFuZGxlID0gMDsKKyAgICBtX2N1cnJlbnRIYW5kbGUgPSBudWxs
cHRyOwogCiAgICAgLy8gV2hpbGUgZG93bmxvYWRpbmcgY2hlY2sgdG8gc2VlIGlmIHdlIGhhdmUg
ZXhjZWVkZWQgdGhlIGF2YWlsYWJsZSBxdW90YS4KICAgICAvLyBXZSBjYW4gc3RvcCBpbW1lZGlh
dGVseSBpZiB3ZSBoYXZlIGFscmVhZHkgcHJldmlvdXNseSBmYWlsZWQKQEAgLTYwMyw3ICs2MDMs
NyBAQCB2b2lkIEFwcGxpY2F0aW9uQ2FjaGVHcm91cDo6ZGlkRmluaXNoTG9hZGluZyhSZXNvdXJj
ZUhhbmRsZSogaGFuZGxlLCBkb3VibGUgZmluaQogICAgIC8vIG9mIHRoZSBxdW90YSBiZWluZyBy
ZWFjaGVkIGFuZCBkZWNpZGVkIG5vdCB0byBpbmNyZWFzZSBpdCB0aGVuLgogICAgIC8vIEZJWE1F
OiBTaG91bGQgd2UgYnJlYWsgZWFybGllciBhbmQgcHJldmVudCByZWRvd25sb2FkaW5nIG9uIGxh
dGVyIHBhZ2UgbG9hZHM/CiAgICAgaWYgKG1fb3JpZ2luUXVvdGFFeGNlZWRlZFByZXZpb3VzbHkg
JiYgbV9hdmFpbGFibGVTcGFjZUluUXVvdGEgPCBtX2NhY2hlQmVpbmdVcGRhdGVkLT5lc3RpbWF0
ZWRTaXplSW5TdG9yYWdlKCkpIHsKLSAgICAgICAgbV9jdXJyZW50UmVzb3VyY2UgPSAwOworICAg
ICAgICBtX2N1cnJlbnRSZXNvdXJjZSA9IG51bGxwdHI7CiAgICAgICAgIG1fZnJhbWUtPmRvY3Vt
ZW50KCktPmFkZENvbnNvbGVNZXNzYWdlKE1lc3NhZ2VTb3VyY2U6OkFwcENhY2hlLCBNZXNzYWdl
TGV2ZWw6OkVycm9yLCBBU0NJSUxpdGVyYWwoIkFwcGxpY2F0aW9uIENhY2hlIHVwZGF0ZSBmYWls
ZWQsIGJlY2F1c2Ugc2l6ZSBxdW90YSB3YXMgZXhjZWVkZWQuIikpOwogICAgICAgICBjYWNoZVVw
ZGF0ZUZhaWxlZCgpOwogICAgICAgICByZXR1cm47CkBAIC02MzEsNyArNjMxLDcgQEAgdm9pZCBB
cHBsaWNhdGlvbkNhY2hlR3JvdXA6OmRpZEZhaWwoUmVzb3VyY2VIYW5kbGUqIGhhbmRsZSwgY29u
c3QgUmVzb3VyY2VFcnJvciYKICAgICAgICAgdXJsLnJlbW92ZUZyYWdtZW50SWRlbnRpZmllcigp
OwogCiAgICAgQVNTRVJUKCFtX2N1cnJlbnRSZXNvdXJjZSB8fCAhbV9wZW5kaW5nRW50cmllcy5j
b250YWlucyh1cmwpKTsKLSAgICBtX2N1cnJlbnRSZXNvdXJjZSA9IDA7CisgICAgbV9jdXJyZW50
UmVzb3VyY2UgPSBudWxscHRyOwogICAgIG1fcGVuZGluZ0VudHJpZXMucmVtb3ZlKHVybCk7CiAK
ICAgICBpZiAoKHR5cGUgJiBBcHBsaWNhdGlvbkNhY2hlUmVzb3VyY2U6OkV4cGxpY2l0KSB8fCAo
dHlwZSAmIEFwcGxpY2F0aW9uQ2FjaGVSZXNvdXJjZTo6RmFsbGJhY2spKSB7CkBAIC02OTUsNyAr
Njk1LDcgQEAgdm9pZCBBcHBsaWNhdGlvbkNhY2hlR3JvdXA6OmRpZEZpbmlzaExvYWRpbmdNYW5p
ZmVzdCgpCiAgICAgICAgIHJldHVybjsKICAgICB9CiAKLSAgICBtX21hbmlmZXN0SGFuZGxlID0g
MDsKKyAgICBtX21hbmlmZXN0SGFuZGxlID0gbnVsbHB0cjsKIAogICAgIC8vIENoZWNrIGlmIHRo
ZSBtYW5pZmVzdCB3YXMgbm90IG1vZGlmaWVkLgogICAgIGlmIChpc1VwZ3JhZGVBdHRlbXB0KSB7
CkBAIC03MDYsNyArNzA2LDcgQEAgdm9pZCBBcHBsaWNhdGlvbkNhY2hlR3JvdXA6OmRpZEZpbmlz
aExvYWRpbmdNYW5pZmVzdCgpCiAgICAgICAgICAgICAobmV3ZXN0TWFuaWZlc3QtPmRhdGEoKS0+
c2l6ZSgpID09IG1fbWFuaWZlc3RSZXNvdXJjZS0+ZGF0YSgpLT5zaXplKCkgJiYgIW1lbWNtcChu
ZXdlc3RNYW5pZmVzdC0+ZGF0YSgpLT5kYXRhKCksIG1fbWFuaWZlc3RSZXNvdXJjZS0+ZGF0YSgp
LT5kYXRhKCksIG5ld2VzdE1hbmlmZXN0LT5kYXRhKCktPnNpemUoKSkpKSB7CiAKICAgICAgICAg
ICAgIG1fY29tcGxldGlvblR5cGUgPSBOb1VwZGF0ZTsKLSAgICAgICAgICAgIG1fbWFuaWZlc3RS
ZXNvdXJjZSA9IDA7CisgICAgICAgICAgICBtX21hbmlmZXN0UmVzb3VyY2UgPSBudWxscHRyOwog
ICAgICAgICAgICAgZGVsaXZlckRlbGF5ZWRNYWluUmVzb3VyY2VzKCk7CiAKICAgICAgICAgICAg
IHJldHVybjsKQEAgLTc4Miw3ICs3ODIsNyBAQCB2b2lkIEFwcGxpY2F0aW9uQ2FjaGVHcm91cDo6
ZGlkUmVhY2hPcmlnaW5RdW90YShpbnQ2NF90IHRvdGFsU3BhY2VOZWVkZWQpCiB2b2lkIEFwcGxp
Y2F0aW9uQ2FjaGVHcm91cDo6Y2FjaGVVcGRhdGVGYWlsZWQoKQogewogICAgIHN0b3BMb2FkaW5n
KCk7Ci0gICAgbV9tYW5pZmVzdFJlc291cmNlID0gMDsKKyAgICBtX21hbmlmZXN0UmVzb3VyY2Ug
PSBudWxscHRyOwogCiAgICAgLy8gV2FpdCBmb3IgbWFzdGVyIHJlc291cmNlIGxvYWRzIHRvIGZp
bmlzaC4KICAgICBtX2NvbXBsZXRpb25UeXBlID0gRmFpbHVyZTsKQEAgLTgwNyw3ICs4MDcsNyBA
QCB2b2lkIEFwcGxpY2F0aW9uQ2FjaGVHcm91cDo6bWFuaWZlc3ROb3RGb3VuZCgpCiAgICAgc3Rv
cExvYWRpbmcoKTsKIAogICAgIEFTU0VSVChtX3BlbmRpbmdFbnRyaWVzLmlzRW1wdHkoKSk7Ci0g
ICAgbV9tYW5pZmVzdFJlc291cmNlID0gMDsKKyAgICBtX21hbmlmZXN0UmVzb3VyY2UgPSBudWxs
cHRyOwogCiAgICAgd2hpbGUgKCFtX3BlbmRpbmdNYXN0ZXJSZXNvdXJjZUxvYWRlcnMuaXNFbXB0
eSgpKSB7CiAgICAgICAgIEhhc2hTZXQ8RG9jdW1lbnRMb2FkZXIqPjo6aXRlcmF0b3IgaXQgPSBt
X3BlbmRpbmdNYXN0ZXJSZXNvdXJjZUxvYWRlcnMuYmVnaW4oKTsKZGlmZiAtLWdpdCBhL1NvdXJj
ZS9XZWJDb3JlL2xvYWRlci9jYWNoZS9DYWNoZWRDU1NTdHlsZVNoZWV0LmNwcCBiL1NvdXJjZS9X
ZWJDb3JlL2xvYWRlci9jYWNoZS9DYWNoZWRDU1NTdHlsZVNoZWV0LmNwcAppbmRleCA3YzJmZTdk
ODkyNGY0ZjkwZWNkZDU4MjA2NmFmZTI3YzA5ZjMwOGMxLi42ZDExODgwMWFmODI2ODQ1ZmI2MTk5
MjcwNDRhZjliMmIyZDIzNmM0IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9sb2FkZXIvY2Fj
aGUvQ2FjaGVkQ1NTU3R5bGVTaGVldC5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvbG9hZGVyL2Nh
Y2hlL0NhY2hlZENTU1N0eWxlU2hlZXQuY3BwCkBAIC0xMzgsNyArMTM4LDcgQEAgdm9pZCBDYWNo
ZWRDU1NTdHlsZVNoZWV0OjpkZXN0cm95RGVjb2RlZERhdGEoKQogICAgICAgICByZXR1cm47CiAK
ICAgICBtX3BhcnNlZFN0eWxlU2hlZXRDYWNoZS0+cmVtb3ZlZEZyb21NZW1vcnlDYWNoZSgpOwot
ICAgIG1fcGFyc2VkU3R5bGVTaGVldENhY2hlLmNsZWFyKCk7CisgICAgbV9wYXJzZWRTdHlsZVNo
ZWV0Q2FjaGUgPSBudWxscHRyOwogCiAgICAgc2V0RGVjb2RlZFNpemUoMCk7CiB9CkBAIC0xNDYs
MTEgKzE0NiwxMSBAQCB2b2lkIENhY2hlZENTU1N0eWxlU2hlZXQ6OmRlc3Ryb3lEZWNvZGVkRGF0
YSgpCiBQYXNzUmVmUHRyPFN0eWxlU2hlZXRDb250ZW50cz4gQ2FjaGVkQ1NTU3R5bGVTaGVldDo6
cmVzdG9yZVBhcnNlZFN0eWxlU2hlZXQoY29uc3QgQ1NTUGFyc2VyQ29udGV4dCYgY29udGV4dCwg
Q2FjaGVQb2xpY3kgY2FjaGVQb2xpY3kpCiB7CiAgICAgaWYgKCFtX3BhcnNlZFN0eWxlU2hlZXRD
YWNoZSkKLSAgICAgICAgcmV0dXJuIDA7CisgICAgICAgIHJldHVybiBudWxscHRyOwogICAgIGlm
ICghbV9wYXJzZWRTdHlsZVNoZWV0Q2FjaGUtPnN1YnJlc291cmNlc0FsbG93UmV1c2UoY2FjaGVQ
b2xpY3kpKSB7CiAgICAgICAgIG1fcGFyc2VkU3R5bGVTaGVldENhY2hlLT5yZW1vdmVkRnJvbU1l
bW9yeUNhY2hlKCk7Ci0gICAgICAgIG1fcGFyc2VkU3R5bGVTaGVldENhY2hlLmNsZWFyKCk7Ci0g
ICAgICAgIHJldHVybiAwOworICAgICAgICBtX3BhcnNlZFN0eWxlU2hlZXRDYWNoZSA9IG51bGxw
dHI7CisgICAgICAgIHJldHVybiBudWxscHRyOwogICAgIH0KIAogICAgIEFTU0VSVChtX3BhcnNl
ZFN0eWxlU2hlZXRDYWNoZS0+aXNDYWNoZWFibGUoKSk7CkBAIC0xNTgsNyArMTU4LDcgQEAgUGFz
c1JlZlB0cjxTdHlsZVNoZWV0Q29udGVudHM+IENhY2hlZENTU1N0eWxlU2hlZXQ6OnJlc3RvcmVQ
YXJzZWRTdHlsZVNoZWV0KGNvbnMKIAogICAgIC8vIENvbnRleHRzIG11c3QgYmUgaWRlbnRpY2Fs
IHNvIHdlIGtub3cgd2Ugd291bGQgZ2V0IHRoZSBzYW1lIGV4YWN0IHJlc3VsdCBpZiB3ZSBwYXJz
ZWQgYWdhaW4uCiAgICAgaWYgKG1fcGFyc2VkU3R5bGVTaGVldENhY2hlLT5wYXJzZXJDb250ZXh0
KCkgIT0gY29udGV4dCkKLSAgICAgICAgcmV0dXJuIDA7CisgICAgICAgIHJldHVybiBudWxscHRy
OwogCiAgICAgZGlkQWNjZXNzRGVjb2RlZERhdGEobW9ub3RvbmljYWxseUluY3JlYXNpbmdUaW1l
KCkpOwogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9sb2FkZXIvY2FjaGUvQ2FjaGVkSW1h
Z2UuY3BwIGIvU291cmNlL1dlYkNvcmUvbG9hZGVyL2NhY2hlL0NhY2hlZEltYWdlLmNwcAppbmRl
eCA1Mjc2OWRiOTZjZTE3ZGVhZDcyMDQxYTc2ODFiYTZmMmEwYWQ1OTg5Li5kZjMzNjc1YzYzYjVk
YjRhZjAzZTMyOTM3YzkxYTlkNzM0MDRhNzBhIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9s
b2FkZXIvY2FjaGUvQ2FjaGVkSW1hZ2UuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2xvYWRlci9j
YWNoZS9DYWNoZWRJbWFnZS5jcHAKQEAgLTM2NSw4ICszNjUsOCBAQCBpbmxpbmUgdm9pZCBDYWNo
ZWRJbWFnZTo6Y2xlYXJJbWFnZSgpCiAgICAgLy8gSWYgb3VyIEltYWdlIGhhcyBhbiBvYnNlcnZl
ciwgaXQncyBhbHdheXMgdXMgc28gd2UgbmVlZCB0byBjbGVhciB0aGUgYmFjayBwb2ludGVyCiAg
ICAgLy8gYmVmb3JlIGRyb3BwaW5nIG91ciByZWZlcmVuY2UuCiAgICAgaWYgKG1faW1hZ2UpCi0g
ICAgICAgIG1faW1hZ2UtPnNldEltYWdlT2JzZXJ2ZXIoMCk7Ci0gICAgbV9pbWFnZS5jbGVhcigp
OworICAgICAgICBtX2ltYWdlLT5zZXRJbWFnZU9ic2VydmVyKG51bGxwdHIpOworICAgIG1faW1h
Z2UgPSBudWxscHRyOwogfQogCiB2b2lkIENhY2hlZEltYWdlOjphZGRJbmNyZW1lbnRhbERhdGFC
dWZmZXIoU2hhcmVkQnVmZmVyJiBkYXRhKQpAQCAtNDU4LDcgKzQ1OCw3IEBAIHZvaWQgQ2FjaGVk
SW1hZ2U6OmRlc3Ryb3lEZWNvZGVkRGF0YSgpCiB7CiAgICAgYm9vbCBjYW5EZWxldGVJbWFnZSA9
ICFtX2ltYWdlIHx8IChtX2ltYWdlLT5oYXNPbmVSZWYoKSAmJiBtX2ltYWdlLT5pc0JpdG1hcElt
YWdlKCkpOwogICAgIGlmIChjYW5EZWxldGVJbWFnZSAmJiAhaXNMb2FkaW5nKCkgJiYgIWhhc0Ns
aWVudHMoKSkgewotICAgICAgICBtX2ltYWdlID0gMDsKKyAgICAgICAgbV9pbWFnZSA9IG51bGxw
dHI7CiAgICAgICAgIHNldERlY29kZWRTaXplKDApOwogICAgIH0gZWxzZSBpZiAobV9pbWFnZSAm
JiAhZXJyb3JPY2N1cnJlZCgpKQogICAgICAgICBtX2ltYWdlLT5kZXN0cm95RGVjb2RlZERhdGEo
KTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2xvYWRlci9jYWNoZS9DYWNoZWRSYXdSZXNv
dXJjZS5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9sb2FkZXIvY2FjaGUvQ2FjaGVkUmF3UmVzb3VyY2Uu
Y3BwCmluZGV4IDNjMWIyOTU1NGIxOWMwNWUyZmU5MWViMDdlMGU1NTJjMmY5OGE4ZjQuLjU0YmJk
ZTFhYzhlYzg3MTQ4YTk1M2QzZGQ3NzgyYTdiM2UzMjQ1NjUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9X
ZWJDb3JlL2xvYWRlci9jYWNoZS9DYWNoZWRSYXdSZXNvdXJjZS5jcHAKKysrIGIvU291cmNlL1dl
YkNvcmUvbG9hZGVyL2NhY2hlL0NhY2hlZFJhd1Jlc291cmNlLmNwcApAQCAtMjY4LDcgKzI2OCw3
IEBAIGJvb2wgQ2FjaGVkUmF3UmVzb3VyY2U6OmNhblJldXNlKGNvbnN0IFJlc291cmNlUmVxdWVz
dCYgbmV3UmVxdWVzdCkgY29uc3QKIAogdm9pZCBDYWNoZWRSYXdSZXNvdXJjZTo6Y2xlYXIoKQog
ewotICAgIG1fZGF0YS5jbGVhcigpOworICAgIG1fZGF0YSA9IG51bGxwdHI7CiAgICAgc2V0RW5j
b2RlZFNpemUoMCk7CiAgICAgaWYgKG1fbG9hZGVyKQogICAgICAgICBtX2xvYWRlci0+Y2xlYXJS
ZXNvdXJjZURhdGEoKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2xvYWRlci9jYWNoZS9D
YWNoZWRSZXNvdXJjZS5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9sb2FkZXIvY2FjaGUvQ2FjaGVkUmVz
b3VyY2UuY3BwCmluZGV4IGY0NDMxYmYzZGRhZmNkMmZiNzAzODM3YzZmN2NjZDAxMzA3NTExZjAu
LjNiZWYyMWU4ZDk4OTg4YTAzOGRlYjdlMTBlMGVmNGUzY2VmNDNhNmIgMTAwNjQ0Ci0tLSBhL1Nv
dXJjZS9XZWJDb3JlL2xvYWRlci9jYWNoZS9DYWNoZWRSZXNvdXJjZS5jcHAKKysrIGIvU291cmNl
L1dlYkNvcmUvbG9hZGVyL2NhY2hlL0NhY2hlZFJlc291cmNlLmNwcApAQCAtMzE3LDcgKzMxNyw3
IEBAIHZvaWQgQ2FjaGVkUmVzb3VyY2U6OmVycm9yKENhY2hlZFJlc291cmNlOjpTdGF0dXMgc3Rh
dHVzKQogewogICAgIHNldFN0YXR1cyhzdGF0dXMpOwogICAgIEFTU0VSVChlcnJvck9jY3VycmVk
KCkpOwotICAgIG1fZGF0YS5jbGVhcigpOworICAgIG1fZGF0YSA9IG51bGxwdHI7CiAKICAgICBz
ZXRMb2FkaW5nKGZhbHNlKTsKICAgICBjaGVja05vdGlmeSgpOwpkaWZmIC0tZ2l0IGEvU291cmNl
L1dlYkNvcmUvbG9hZGVyL2ljb24vSWNvblJlY29yZC5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9sb2Fk
ZXIvaWNvbi9JY29uUmVjb3JkLmNwcAppbmRleCBkNGJjMGQxYTE5ZjM3MDYyYmY3Y2E1OGVkYzY0
MmJmZWU2MjA1YTg4Li5lN2YxZDRiMjMzNDYxMDY5NGRkMzFlZTdlYzQ0MDQ3ZjgzNzNiNzY1IDEw
MDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9sb2FkZXIvaWNvbi9JY29uUmVjb3JkLmNwcAorKysg
Yi9Tb3VyY2UvV2ViQ29yZS9sb2FkZXIvaWNvbi9JY29uUmVjb3JkLmNwcApAQCAtNzEsNyArNzEs
NyBAQCB2b2lkIEljb25SZWNvcmQ6OnNldEltYWdlRGF0YShQYXNzUmVmUHRyPFNoYXJlZEJ1ZmZl
cj4gZGF0YSkKICAgICAvLyBDb3B5IHRoZSBwcm92aWRlZCBkYXRhIGludG8gdGhlIGJ1ZmZlciBv
ZiB0aGUgbmV3IEltYWdlIG9iamVjdC4KICAgICBpZiAoIW1faW1hZ2UtPnNldERhdGEoZGF0YSwg
dHJ1ZSkpIHsKICAgICAgICAgTE9HKEljb25EYXRhYmFzZSwgIk1hbnVhbCBpbWFnZSBkYXRhIGZv
ciBpY29uVVJMICclcycgRkFJTEVEIC0gaXQgd2FzIHByb2JhYmx5IGludmFsaWQgaW1hZ2UgZGF0
YSIsIG1faWNvblVSTC5hc2NpaSgpLmRhdGEoKSk7Ci0gICAgICAgIG1faW1hZ2UuY2xlYXIoKTsK
KyAgICAgICAgbV9pbWFnZSA9IG51bGxwdHI7CiAgICAgfQogICAgIAogICAgIG1fZGF0YVNldCA9
IHRydWU7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wYWdlL0V2ZW50SGFuZGxlci5jcHAg
Yi9Tb3VyY2UvV2ViQ29yZS9wYWdlL0V2ZW50SGFuZGxlci5jcHAKaW5kZXggNjU0YTRmZWM3NzM3
OTcyM2Q3YjYxZjM2MTY3YWJhMjVlODk0NTA5Yy4uM2FhNjZkOWJjODE0ZWMzYmZkYmQzNGM5ZDc1
ZTNlNzM1NjExNTRlMyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGFnZS9FdmVudEhhbmRs
ZXIuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BhZ2UvRXZlbnRIYW5kbGVyLmNwcApAQCAtNDg1
LDcgKzQ4NSw3IEBAIHZvaWQgRXZlbnRIYW5kbGVyOjpjbGVhcigpCiAgICAgbV9tb3VzZVBvc2l0
aW9uSXNVbmtub3duID0gdHJ1ZTsKICAgICBtX2xhc3RLbm93bk1vdXNlUG9zaXRpb24gPSBJbnRQ
b2ludCgpOwogICAgIG1fbGFzdEtub3duTW91c2VHbG9iYWxQb3NpdGlvbiA9IEludFBvaW50KCk7
Ci0gICAgbV9tb3VzZVByZXNzTm9kZSA9IDA7CisgICAgbV9tb3VzZVByZXNzTm9kZSA9IG51bGxw
dHI7CiAgICAgbV9tb3VzZVByZXNzZWQgPSBmYWxzZTsKICAgICBtX2NhcHR1cmVzRHJhZ2dpbmcg
PSBmYWxzZTsKICAgICBtX2NhcHR1cmluZ01vdXNlRXZlbnRzRWxlbWVudCA9IG51bGxwdHI7CkBA
IC00OTQsNyArNDk0LDcgQEAgdm9pZCBFdmVudEhhbmRsZXI6OmNsZWFyKCkKICNlbmRpZgogI2lm
IEVOQUJMRShUT1VDSF9FVkVOVFMpICYmICFFTkFCTEUoSU9TX1RPVUNIX0VWRU5UUykKICAgICBt
X29yaWdpbmF0aW5nVG91Y2hQb2ludFRhcmdldHMuY2xlYXIoKTsKLSAgICBtX29yaWdpbmF0aW5n
VG91Y2hQb2ludERvY3VtZW50LmNsZWFyKCk7CisgICAgbV9vcmlnaW5hdGluZ1RvdWNoUG9pbnRE
b2N1bWVudCA9IG51bGxwdHI7CiAgICAgbV9vcmlnaW5hdGluZ1RvdWNoUG9pbnRUYXJnZXRLZXkg
PSAwOwogI2VuZGlmCiAgICAgbV9tYXhNb3VzZU1vdmVkRHVyYXRpb24gPSAwOwpAQCAtMzk5NCw3
ICszOTk0LDcgQEAgYm9vbCBFdmVudEhhbmRsZXI6OmhhbmRsZVRvdWNoRXZlbnQoY29uc3QgUGxh
dGZvcm1Ub3VjaEV2ZW50JiBldmVudCkKICAgICB9CiAgICAgbV90b3VjaFByZXNzZWQgPSB0b3Vj
aGVzLT5sZW5ndGgoKSA+IDA7CiAgICAgaWYgKGFsbFRvdWNoUmVsZWFzZWQpCi0gICAgICAgIG1f
b3JpZ2luYXRpbmdUb3VjaFBvaW50RG9jdW1lbnQuY2xlYXIoKTsKKyAgICAgICAgbV9vcmlnaW5h
dGluZ1RvdWNoUG9pbnREb2N1bWVudCA9IG51bGxwdHI7CiAKICAgICAvLyBOb3cgaXRlcmF0ZSB0
aGUgY2hhbmdlZFRvdWNoZXMgbGlzdCBhbmQgbV90YXJnZXRzIHdpdGhpbiBpdCwgc2VuZGluZyBl
dmVudHMgdG8gdGhlIHRhcmdldHMgYXMgcmVxdWlyZWQuCiAgICAgYm9vbCBzd2FsbG93ZWRFdmVu
dCA9IGZhbHNlOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGFnZS9QYWdlLmNwcCBiL1Nv
dXJjZS9XZWJDb3JlL3BhZ2UvUGFnZS5jcHAKaW5kZXggMWQzZGNjMmI1NjM5NjIxNGU5ZjgwZjcy
YzhlMzNlYTE4OWI5M2FkMi4uZjg2ZDgxZmQwNTMwYTAzYzYyNjIyMTE2YzkwYmZlOTA1NjcxNjdi
MCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGFnZS9QYWdlLmNwcAorKysgYi9Tb3VyY2Uv
V2ViQ29yZS9wYWdlL1BhZ2UuY3BwCkBAIC01MTYsNyArNTE2LDcgQEAgdm9pZCBQYWdlOjpyZWZy
ZXNoUGx1Z2lucyhib29sIHJlbG9hZCkKICAgICBWZWN0b3I8UmVmPEZyYW1lPj4gZnJhbWVzTmVl
ZGluZ1JlbG9hZDsKIAogICAgIGZvciAoYXV0byYgcGFnZSA6ICphbGxQYWdlcykgewotICAgICAg
ICBwYWdlLT5tX3BsdWdpbkRhdGEuY2xlYXIoKTsKKyAgICAgICAgcGFnZS0+bV9wbHVnaW5EYXRh
ID0gbnVsbHB0cjsKIAogICAgICAgICBpZiAoIXJlbG9hZCkKICAgICAgICAgICAgIGNvbnRpbnVl
OwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vYXVkaW8vbWFjL0NBUmluZ0J1
ZmZlci5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9hdWRpby9tYWMvQ0FSaW5nQnVmZmVy
LmNwcAppbmRleCBmNzZlOGRmOTA2YjVhNjFlNTdjNzc1YzRjZTZkMmNjNDRiYzhhYTUyLi4wNTQ0
MmFkYzQ1ZTk3Nzg5OTMxNTIwNWMzNzJlNjE5NjAxMjc5ZDM3IDEwMDY0NAotLS0gYS9Tb3VyY2Uv
V2ViQ29yZS9wbGF0Zm9ybS9hdWRpby9tYWMvQ0FSaW5nQnVmZmVyLmNwcAorKysgYi9Tb3VyY2Uv
V2ViQ29yZS9wbGF0Zm9ybS9hdWRpby9tYWMvQ0FSaW5nQnVmZmVyLmNwcApAQCAtODYsNyArODYs
NyBAQCB2b2lkIENBUmluZ0J1ZmZlcjo6YWxsb2NhdGUodWludDMyX3QgY2hhbm5lbENvdW50LCBz
aXplX3QgYnl0ZXNQZXJGcmFtZSwgc2l6ZV90CiB2b2lkIENBUmluZ0J1ZmZlcjo6ZGVhbGxvY2F0
ZSgpCiB7CiAgICAgaWYgKG1fYnVmZmVycykKLSAgICAgICAgbV9idWZmZXJzLmNsZWFyKCk7Cisg
ICAgICAgIG1fYnVmZmVycyA9IG51bGxwdHI7CiAKICAgICBtX2NoYW5uZWxDb3VudCA9IDA7CiAg
ICAgbV9jYXBhY2l0eUJ5dGVzID0gMDsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRm
b3JtL2dyYXBoaWNzL0ZvbnQuY3BwIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3Mv
Rm9udC5jcHAKaW5kZXggNjAzZWJhODFmMDEwZmVmMGIwOWVhOTQ3YWU4ODZhNTE5OThiNWFjYy4u
ZDkyNjViNThkMmJlMjRhZDcxNDczYWJhNWIyM2I1MjZkMDkxMzcyZSAxMDA2NDQKLS0tIGEvU291
cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvRm9udC5jcHAKKysrIGIvU291cmNlL1dlYkNv
cmUvcGxhdGZvcm0vZ3JhcGhpY3MvRm9udC5jcHAKQEAgLTM2Myw3ICszNjMsNyBAQCBjb25zdCBP
cGVuVHlwZU1hdGhEYXRhKiBGb250OjptYXRoRGF0YSgpIGNvbnN0CiAgICAgaWYgKCFtX21hdGhE
YXRhKSB7CiAgICAgICAgIG1fbWF0aERhdGEgPSBPcGVuVHlwZU1hdGhEYXRhOjpjcmVhdGUobV9w
bGF0Zm9ybURhdGEpOwogICAgICAgICBpZiAoIW1fbWF0aERhdGEtPmhhc01hdGhEYXRhKCkpCi0g
ICAgICAgICAgICBtX21hdGhEYXRhLmNsZWFyKCk7CisgICAgICAgICAgICBtX21hdGhEYXRhID0g
bnVsbHB0cjsKICAgICB9CiAgICAgcmV0dXJuIG1fbWF0aERhdGEuZ2V0KCk7CiB9CmRpZmYgLS1n
aXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9Gb250Q2FjaGUuY3BwIGIvU291
cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvRm9udENhY2hlLmNwcAppbmRleCBhNmM0MDQ5
OTQ4Y2YzNjMyMWI3M2RkNTExYjkxOGEyYThhYWUwNDVjLi44ZDFhODM1OWQ2OWNiNzBlNGMyMGI1
ZWE4MzI4NzY1YTZiY2Q0NjM0IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9n
cmFwaGljcy9Gb250Q2FjaGUuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBo
aWNzL0ZvbnRDYWNoZS5jcHAKQEAgLTMyMCw3ICszMjAsNyBAQCBQYXNzUmVmUHRyPE9wZW5UeXBl
VmVydGljYWxEYXRhPiBGb250Q2FjaGU6OmdldFZlcnRpY2FsRGF0YShjb25zdCBGb250RmlsZUtl
eSYgawogCiAgICAgUmVmUHRyPE9wZW5UeXBlVmVydGljYWxEYXRhPiB2ZXJ0aWNhbERhdGEgPSBP
cGVuVHlwZVZlcnRpY2FsRGF0YTo6Y3JlYXRlKHBsYXRmb3JtRGF0YSk7CiAgICAgaWYgKCF2ZXJ0
aWNhbERhdGEtPmlzT3BlblR5cGUoKSkKLSAgICAgICAgdmVydGljYWxEYXRhLmNsZWFyKCk7Cisg
ICAgICAgIHZlcnRpY2FsRGF0YSA9IG51bGxwdHI7CiAgICAgZm9udFZlcnRpY2FsRGF0YUNhY2hl
LnNldChrZXksIHZlcnRpY2FsRGF0YSk7CiAgICAgcmV0dXJuIHZlcnRpY2FsRGF0YTsKIH0KZGlm
ZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL0dyYXBoaWNzQ29udGV4
dC5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9HcmFwaGljc0NvbnRleHQu
Y3BwCmluZGV4IGQzOGMxZmFmNzc1MjU4MzNmMzdlM2NiNjE3OGJiNGM2ZjY3Y2MzOTkuLmU2YjM3
ZmRlNWY5NWVjMDJjMmY3ZDY4YTYxZjQwZjQ3YTc3ZjI3MzEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9X
ZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL0dyYXBoaWNzQ29udGV4dC5jcHAKKysrIGIvU291cmNl
L1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvR3JhcGhpY3NDb250ZXh0LmNwcApAQCAtMTc4LDgg
KzE3OCw4IEBAIHZvaWQgR3JhcGhpY3NDb250ZXh0OjpzZXRTdHJva2VDb2xvcihjb25zdCBDb2xv
ciYgY29sb3IsIENvbG9yU3BhY2UgY29sb3JTcGFjZSkKIHsKICAgICBtX3N0YXRlLnN0cm9rZUNv
bG9yID0gY29sb3I7CiAgICAgbV9zdGF0ZS5zdHJva2VDb2xvclNwYWNlID0gY29sb3JTcGFjZTsK
LSAgICBtX3N0YXRlLnN0cm9rZUdyYWRpZW50LmNsZWFyKCk7Ci0gICAgbV9zdGF0ZS5zdHJva2VQ
YXR0ZXJuLmNsZWFyKCk7CisgICAgbV9zdGF0ZS5zdHJva2VHcmFkaWVudCA9IG51bGxwdHI7Cisg
ICAgbV9zdGF0ZS5zdHJva2VQYXR0ZXJuID0gbnVsbHB0cjsKICAgICBzZXRQbGF0Zm9ybVN0cm9r
ZUNvbG9yKGNvbG9yLCBjb2xvclNwYWNlKTsKIH0KIApAQCAtMjQ1LDggKzI0NSw4IEBAIHZvaWQg
R3JhcGhpY3NDb250ZXh0OjpzZXRGaWxsQ29sb3IoY29uc3QgQ29sb3ImIGNvbG9yLCBDb2xvclNw
YWNlIGNvbG9yU3BhY2UpCiB7CiAgICAgbV9zdGF0ZS5maWxsQ29sb3IgPSBjb2xvcjsKICAgICBt
X3N0YXRlLmZpbGxDb2xvclNwYWNlID0gY29sb3JTcGFjZTsKLSAgICBtX3N0YXRlLmZpbGxHcmFk
aWVudC5jbGVhcigpOwotICAgIG1fc3RhdGUuZmlsbFBhdHRlcm4uY2xlYXIoKTsKKyAgICBtX3N0
YXRlLmZpbGxHcmFkaWVudCA9IG51bGxwdHI7CisgICAgbV9zdGF0ZS5maWxsUGF0dGVybiA9IG51
bGxwdHI7CiAgICAgc2V0UGxhdGZvcm1GaWxsQ29sb3IoY29sb3IsIGNvbG9yU3BhY2UpOwogfQog
CkBAIC0yNjksMjYgKzI2OSwyNiBAQCB2b2lkIEdyYXBoaWNzQ29udGV4dDo6c2V0QW50aWFsaWFz
ZWRGb250RGlsYXRpb25FbmFibGVkKGJvb2wgYW50aWFsaWFzZWRGb250RGlsYQogCiB2b2lkIEdy
YXBoaWNzQ29udGV4dDo6c2V0U3Ryb2tlUGF0dGVybihSZWY8UGF0dGVybj4mJiBwYXR0ZXJuKQog
ewotICAgIG1fc3RhdGUuc3Ryb2tlR3JhZGllbnQuY2xlYXIoKTsKKyAgICBtX3N0YXRlLnN0cm9r
ZUdyYWRpZW50ID0gbnVsbHB0cjsKICAgICBtX3N0YXRlLnN0cm9rZVBhdHRlcm4gPSBXVEY6Om1v
dmUocGF0dGVybik7CiB9CiAKIHZvaWQgR3JhcGhpY3NDb250ZXh0OjpzZXRGaWxsUGF0dGVybihS
ZWY8UGF0dGVybj4mJiBwYXR0ZXJuKQogewotICAgIG1fc3RhdGUuZmlsbEdyYWRpZW50LmNsZWFy
KCk7CisgICAgbV9zdGF0ZS5maWxsR3JhZGllbnQgPSBudWxscHRyOwogICAgIG1fc3RhdGUuZmls
bFBhdHRlcm4gPSBXVEY6Om1vdmUocGF0dGVybik7CiB9CiAKIHZvaWQgR3JhcGhpY3NDb250ZXh0
OjpzZXRTdHJva2VHcmFkaWVudChSZWY8R3JhZGllbnQ+JiYgZ3JhZGllbnQpCiB7CiAgICAgbV9z
dGF0ZS5zdHJva2VHcmFkaWVudCA9IFdURjo6bW92ZShncmFkaWVudCk7Ci0gICAgbV9zdGF0ZS5z
dHJva2VQYXR0ZXJuLmNsZWFyKCk7CisgICAgbV9zdGF0ZS5zdHJva2VQYXR0ZXJuID0gbnVsbHB0
cjsKIH0KIAogdm9pZCBHcmFwaGljc0NvbnRleHQ6OnNldEZpbGxHcmFkaWVudChSZWY8R3JhZGll
bnQ+JiYgZ3JhZGllbnQpCiB7CiAgICAgbV9zdGF0ZS5maWxsR3JhZGllbnQgPSBXVEY6Om1vdmUo
Z3JhZGllbnQpOwotICAgIG1fc3RhdGUuZmlsbFBhdHRlcm4uY2xlYXIoKTsKKyAgICBtX3N0YXRl
LmZpbGxQYXR0ZXJuID0gbnVsbHB0cjsKIH0KIAogdm9pZCBHcmFwaGljc0NvbnRleHQ6OmJlZ2lu
VHJhbnNwYXJlbmN5TGF5ZXIoZmxvYXQgb3BhY2l0eSkKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJD
b3JlL3BsYXRmb3JtL2dyYXBoaWNzL01lZGlhUGxheWVyLmNwcCBiL1NvdXJjZS9XZWJDb3JlL3Bs
YXRmb3JtL2dyYXBoaWNzL01lZGlhUGxheWVyLmNwcAppbmRleCAyOTRhNzZkOWY4NmVmMmU3NzUw
ZDM2YTgzYTk4N2Q3NjBkNDBiMWQyLi4wMTI3OTVlNDY1YmVhMDRkMGY4N2U3Mjc3ZTc0ZTBmZTVi
NTg3MmIxIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9NZWRp
YVBsYXllci5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvTWVkaWFQ
bGF5ZXIuY3BwCkBAIC0zMTQsMTAgKzMxNCwxMCBAQCBib29sIE1lZGlhUGxheWVyOjpsb2FkKGNv
bnN0IFVSTCYgdXJsLCBjb25zdCBDb250ZW50VHlwZSYgY29udGVudFR5cGUsIGNvbnN0IFN0cgog
ICAgIG1fY29udGVudE1JTUVUeXBlV2FzSW5mZXJyZWRGcm9tRXh0ZW5zaW9uID0gZmFsc2U7CiAK
ICNpZiBFTkFCTEUoTUVESUFfU09VUkNFKQotICAgIG1fbWVkaWFTb3VyY2UgPSAwOworICAgIG1f
bWVkaWFTb3VyY2UgPSBudWxscHRyOwogI2VuZGlmCiAjaWYgRU5BQkxFKE1FRElBX1NUUkVBTSkK
LSAgICBtX21lZGlhU3RyZWFtID0gMDsKKyAgICBtX21lZGlhU3RyZWFtID0gbnVsbHB0cjsKICNl
bmRpZgogCiAgICAgLy8gSWYgdGhlIE1JTUUgdHlwZSBpcyBtaXNzaW5nIG9yIGlzIG5vdCBtZWFu
aW5nZnVsLCB0cnkgdG8gZmlndXJlIGl0IG91dCBmcm9tIHRoZSBVUkwuCmRpZmYgLS1naXQgYS9T
b3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9jYS9HcmFwaGljc0xheWVyQ0EuY3BwIGIv
U291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvY2EvR3JhcGhpY3NMYXllckNBLmNwcApp
bmRleCA4MmMwNzY5MTI3YmY5ZTUxNjlkYWU0OGRmYjRiMjg5MDJmZTkwNmMwLi4zNGY0Y2UxMDNh
OTM2ZTNhMDExYjg1Y2ZiNGRmZWVjZDYxNTJjOGU4IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29y
ZS9wbGF0Zm9ybS9ncmFwaGljcy9jYS9HcmFwaGljc0xheWVyQ0EuY3BwCisrKyBiL1NvdXJjZS9X
ZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2NhL0dyYXBoaWNzTGF5ZXJDQS5jcHAKQEAgLTIyMDgs
NyArMjIwOCw3IEBAIHZvaWQgR3JhcGhpY3NMYXllckNBOjp1cGRhdGVDb250ZW50c0ltYWdlKCkK
ICAgICB9IGVsc2UgewogICAgICAgICAvLyBObyBpbWFnZS4KICAgICAgICAgLy8gbV9jb250ZW50
c0xheWVyIHdpbGwgYmUgcmVtb3ZlZCB2aWEgdXBkYXRlU3VibGF5ZXJMaXN0LgotICAgICAgICBt
X2NvbnRlbnRzTGF5ZXIgPSAwOworICAgICAgICBtX2NvbnRlbnRzTGF5ZXIgPSBudWxscHRyOwog
ICAgIH0KIH0KIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3Mv
Y2Fpcm8vQmFja2luZ1N0b3JlQmFja2VuZENhaXJvWDExLmNwcCBiL1NvdXJjZS9XZWJDb3JlL3Bs
YXRmb3JtL2dyYXBoaWNzL2NhaXJvL0JhY2tpbmdTdG9yZUJhY2tlbmRDYWlyb1gxMS5jcHAKaW5k
ZXggN2I4NjMxYWYwYTlkOGY0YWU5MDYzYjI3OWU0MGNlZTM0NTQ5Y2ZhNC4uNDM3ZGFmYzgyZmQy
MmVjYmYwNjA0N2EzYzI4Njg5ZWJlMDIyMzZkMiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUv
cGxhdGZvcm0vZ3JhcGhpY3MvY2Fpcm8vQmFja2luZ1N0b3JlQmFja2VuZENhaXJvWDExLmNwcAor
KysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9jYWlyby9CYWNraW5nU3RvcmVC
YWNrZW5kQ2Fpcm9YMTEuY3BwCkBAIC00Myw3ICs0Myw3IEBAIEJhY2tpbmdTdG9yZUJhY2tlbmRD
YWlyb1gxMTo6QmFja2luZ1N0b3JlQmFja2VuZENhaXJvWDExKHVuc2lnbmVkIGxvbmcgcm9vdFdp
bmRvCiBCYWNraW5nU3RvcmVCYWNrZW5kQ2Fpcm9YMTE6On5CYWNraW5nU3RvcmVCYWNrZW5kQ2Fp
cm9YMTEoKQogewogICAgIC8vIFRoZSBwaXhtYXAgbmVlZHMgdG8gZXhpc3Qgd2hlbiB0aGUgc3Vy
ZmFjZSBpcyBkZXN0cm95ZWQsIHNvIGJlZ2luIGJ5IGNsZWFyaW5nIGl0LgotICAgIG1fc3VyZmFj
ZS5jbGVhcigpOworICAgIG1fc3VyZmFjZSA9IG51bGxwdHI7CiB9CiAKIHZvaWQgQmFja2luZ1N0
b3JlQmFja2VuZENhaXJvWDExOjpzY3JvbGwoY29uc3QgSW50UmVjdCYgc2Nyb2xsUmVjdCwgY29u
c3QgSW50U2l6ZSYgc2Nyb2xsT2Zmc2V0KQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxh
dGZvcm0vZ3JhcGhpY3MvY2Fpcm8vQml0bWFwSW1hZ2VDYWlyby5jcHAgYi9Tb3VyY2UvV2ViQ29y
ZS9wbGF0Zm9ybS9ncmFwaGljcy9jYWlyby9CaXRtYXBJbWFnZUNhaXJvLmNwcAppbmRleCAyNmRm
NWRmM2FiYTQ5MDc2MDEyNzg5YzI2NmZhOTYwMjc3NWJlMmRlLi5mMGQzYTdhNzJkYjkyZmRlMWQx
YjVmOTkzOGIzYzBjMWU3YWQ2MWYxIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9y
bS9ncmFwaGljcy9jYWlyby9CaXRtYXBJbWFnZUNhaXJvLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29y
ZS9wbGF0Zm9ybS9ncmFwaGljcy9jYWlyby9CaXRtYXBJbWFnZUNhaXJvLmNwcApAQCAtMTU5LDcg
KzE1OSw3IEBAIGJvb2wgRnJhbWVEYXRhOjpjbGVhcihib29sIGNsZWFyTWV0YWRhdGEpCiAgICAg
ICAgIG1faGF2ZU1ldGFkYXRhID0gZmFsc2U7CiAKICAgICBpZiAobV9mcmFtZSkgewotICAgICAg
ICBtX2ZyYW1lLmNsZWFyKCk7CisgICAgICAgIG1fZnJhbWUgPSBudWxscHRyOwogICAgICAgICBy
ZXR1cm4gdHJ1ZTsKICAgICB9CiAgICAgcmV0dXJuIGZhbHNlOwpkaWZmIC0tZ2l0IGEvU291cmNl
L1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvZmlsdGVycy9GaWx0ZXJFZmZlY3QuY3BwIGIvU291
cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvZmlsdGVycy9GaWx0ZXJFZmZlY3QuY3BwCmlu
ZGV4IDc2MjcwMDgwMzBkN2VmYWU2ZTA4MGU2ODc1OGRjMTYwZWFjMmMwYjkuLmM5OGQ1Yjk4NWFm
M2JiMWU1YjBjMGMyMjZiYjQ1ZmM2MDU0ZjQzM2MgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3Jl
L3BsYXRmb3JtL2dyYXBoaWNzL2ZpbHRlcnMvRmlsdGVyRWZmZWN0LmNwcAorKysgYi9Tb3VyY2Uv
V2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9maWx0ZXJzL0ZpbHRlckVmZmVjdC5jcHAKQEAgLTI0
NSwxMiArMjQ1LDEyIEBAIHZvaWQgRmlsdGVyRWZmZWN0OjpjbGVhclJlc3VsdCgpCiAgICAgaWYg
KG1faW1hZ2VCdWZmZXJSZXN1bHQpCiAgICAgICAgIG1faW1hZ2VCdWZmZXJSZXN1bHQucmVzZXQo
KTsKICAgICBpZiAobV91bm11bHRpcGxpZWRJbWFnZVJlc3VsdCkKLSAgICAgICAgbV91bm11bHRp
cGxpZWRJbWFnZVJlc3VsdC5jbGVhcigpOworICAgICAgICBtX3VubXVsdGlwbGllZEltYWdlUmVz
dWx0ID0gbnVsbHB0cjsKICAgICBpZiAobV9wcmVtdWx0aXBsaWVkSW1hZ2VSZXN1bHQpCi0gICAg
ICAgIG1fcHJlbXVsdGlwbGllZEltYWdlUmVzdWx0LmNsZWFyKCk7CisgICAgICAgIG1fcHJlbXVs
dGlwbGllZEltYWdlUmVzdWx0ID0gbnVsbHB0cjsKICNpZiBFTkFCTEUoT1BFTkNMKQogICAgIGlm
IChtX29wZW5DTEltYWdlUmVzdWx0KQotICAgICAgICBtX29wZW5DTEltYWdlUmVzdWx0LmNsZWFy
KCk7CisgICAgICAgIG1fb3BlbkNMSW1hZ2VSZXN1bHQgPSBudWxscHRyOwogI2VuZGlmCiB9CiAK
QEAgLTU0MCw3ICs1NDAsNyBAQCB2b2lkIEZpbHRlckVmZmVjdDo6dHJhbnNmb3JtUmVzdWx0Q29s
b3JTcGFjZShDb2xvclNwYWNlIGRzdENvbG9yU3BhY2UpCiAjaWYgRU5BQkxFKE9QRU5DTCkKICAg
ICBpZiAob3BlbkNMSW1hZ2UoKSkgewogICAgICAgICBpZiAobV9pbWFnZUJ1ZmZlclJlc3VsdCkK
LSAgICAgICAgICAgIG1faW1hZ2VCdWZmZXJSZXN1bHQuY2xlYXIoKTsKKyAgICAgICAgICAgIG1f
aW1hZ2VCdWZmZXJSZXN1bHQgPSBudWxscHRyOwogICAgICAgICBGaWx0ZXJDb250ZXh0T3BlbkNM
KiBjb250ZXh0ID0gRmlsdGVyQ29udGV4dE9wZW5DTDo6Y29udGV4dCgpOwogICAgICAgICBBU1NF
UlQoY29udGV4dCk7CiAgICAgICAgIGNvbnRleHQtPm9wZW5DTFRyYW5zZm9ybUNvbG9yU3BhY2Uo
bV9vcGVuQ0xJbWFnZVJlc3VsdCwgYWJzb2x1dGVQYWludFJlY3QoKSwgbV9yZXN1bHRDb2xvclNw
YWNlLCBkc3RDb2xvclNwYWNlKTsKQEAgLTU1OCw5ICs1NTgsOSBAQCB2b2lkIEZpbHRlckVmZmVj
dDo6dHJhbnNmb3JtUmVzdWx0Q29sb3JTcGFjZShDb2xvclNwYWNlIGRzdENvbG9yU3BhY2UpCiAg
ICAgbV9yZXN1bHRDb2xvclNwYWNlID0gZHN0Q29sb3JTcGFjZTsKIAogICAgIGlmIChtX3VubXVs
dGlwbGllZEltYWdlUmVzdWx0KQotICAgICAgICBtX3VubXVsdGlwbGllZEltYWdlUmVzdWx0LmNs
ZWFyKCk7CisgICAgICAgIG1fdW5tdWx0aXBsaWVkSW1hZ2VSZXN1bHQgPSBudWxscHRyOwogICAg
IGlmIChtX3ByZW11bHRpcGxpZWRJbWFnZVJlc3VsdCkKLSAgICAgICAgbV9wcmVtdWx0aXBsaWVk
SW1hZ2VSZXN1bHQuY2xlYXIoKTsKKyAgICAgICAgbV9wcmVtdWx0aXBsaWVkSW1hZ2VSZXN1bHQg
PSBudWxscHRyOwogI2VuZGlmCiB9CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRm
b3JtL2dyYXBoaWNzL2dzdHJlYW1lci9JbWFnZUdTdHJlYW1lckNhaXJvLmNwcCBiL1NvdXJjZS9X
ZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2dzdHJlYW1lci9JbWFnZUdTdHJlYW1lckNhaXJvLmNw
cAppbmRleCAwNmZhZWNhMTliYTI1M2VhNzgzNzBmNTg1NDRhYmYxYWNiMmU1MjVlLi5lZTI3Mjc3
ZmYwYjdlOTAzM2Y0YjkzMzYwMjhhY2Y0MjE4YjIwYTVmIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2Vi
Q29yZS9wbGF0Zm9ybS9ncmFwaGljcy9nc3RyZWFtZXIvSW1hZ2VHU3RyZWFtZXJDYWlyby5jcHAK
KysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvZ3N0cmVhbWVyL0ltYWdlR1N0
cmVhbWVyQ2Fpcm8uY3BwCkBAIC03MSw5ICs3MSw3IEBAIEltYWdlR1N0cmVhbWVyOjpJbWFnZUdT
dHJlYW1lcihHc3RTYW1wbGUqIHNhbXBsZSkKIEltYWdlR1N0cmVhbWVyOjp+SW1hZ2VHU3RyZWFt
ZXIoKQogewogICAgIGlmIChtX2ltYWdlKQotICAgICAgICBtX2ltYWdlLmNsZWFyKCk7Ci0KLSAg
ICBtX2ltYWdlID0gMDsKKyAgICAgICAgbV9pbWFnZSA9IG51bGxwdHI7CiAKICAgICAvLyBXZSBr
ZWVwIHRoZSBidWZmZXIgbWVtb3J5IG1hcHBlZCB1bnRpbCB0aGUgaW1hZ2UgaXMgZGVzdHJveWVk
IGJlY2F1c2UgdGhlIGludGVybmFsCiAgICAgLy8gY2Fpcm9fc3VyZmFjZV90IHdhcyBjcmVhdGVk
IHVzaW5nIGNhaXJvX2ltYWdlX3N1cmZhY2VfY3JlYXRlX2Zvcl9kYXRhKCkuCmRpZmYgLS1naXQg
YS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy90ZXhtYXAvQml0bWFwVGV4dHVyZUdM
LmNwcCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL3RleG1hcC9CaXRtYXBUZXh0
dXJlR0wuY3BwCmluZGV4IDk3NWMzOGYyZmY0YjE5MTgyOGQ3ZDFlY2UxNmU0ZDYwOWIwOTBiZjYu
LjBlNTJkN2I0YjI1ODQ1YTYwMzhkYjQ1ZWQ4ZjhhOWFiZDRhZWY5OTQgMTAwNjQ0Ci0tLSBhL1Nv
dXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL3RleG1hcC9CaXRtYXBUZXh0dXJlR0wuY3Bw
CisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL3RleG1hcC9CaXRtYXBUZXh0
dXJlR0wuY3BwCkBAIC0yNzgsNyArMjc4LDcgQEAgUGFzc1JlZlB0cjxCaXRtYXBUZXh0dXJlPiBC
aXRtYXBUZXh0dXJlR0w6OmFwcGx5RmlsdGVycyhUZXh0dXJlTWFwcGVyKiB0ZXh0dXJlTWEKICAg
ICAgICAgICAgIHRleG1hcEdMLT5kcmF3RmlsdGVyZWQoKnJlc3VsdFN1cmZhY2UuZ2V0KCksIHNw
YXJlU3VyZmFjZS5nZXQoKSwgKmZpbHRlciwgaik7CiAgICAgICAgICAgICBpZiAoIWogJiYgZmls
dGVyLT50eXBlKCkgPT0gRmlsdGVyT3BlcmF0aW9uOjpEUk9QX1NIQURPVykgewogICAgICAgICAg
ICAgICAgIHNwYXJlU3VyZmFjZSA9IHJlc3VsdFN1cmZhY2U7Ci0gICAgICAgICAgICAgICAgcmVz
dWx0U3VyZmFjZS5jbGVhcigpOworICAgICAgICAgICAgICAgIHJlc3VsdFN1cmZhY2UgPSBudWxs
cHRyOwogICAgICAgICAgICAgfQogICAgICAgICAgICAgc3RkOjpzd2FwKHJlc3VsdFN1cmZhY2Us
IGludGVybWVkaWF0ZVN1cmZhY2UpOwogICAgICAgICB9CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2Vi
Q29yZS9wbGF0Zm9ybS9ncmFwaGljcy90ZXhtYXAvVGV4dHVyZU1hcHBlckdMLmNwcCBiL1NvdXJj
ZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL3RleG1hcC9UZXh0dXJlTWFwcGVyR0wuY3BwCmlu
ZGV4IDBiY2U4Yzc0MjBkN2QwYTQ0YjMwOWUyNmY1NjZhOTIxOTNlNDg2MGEuLjRjNTQ4MDU2MjM1
ZTM5OGZhYzk4MzYwZmU5Y2JmNjI1Yzc1YTFkMDUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3Jl
L3BsYXRmb3JtL2dyYXBoaWNzL3RleG1hcC9UZXh0dXJlTWFwcGVyR0wuY3BwCisrKyBiL1NvdXJj
ZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL3RleG1hcC9UZXh0dXJlTWFwcGVyR0wuY3BwCkBA
IC02OTEsNyArNjkxLDcgQEAgdm9pZCBUZXh0dXJlTWFwcGVyR0w6OmJpbmREZWZhdWx0U3VyZmFj
ZSgpCiAgICAgZGF0YSgpLnByb2plY3Rpb25NYXRyaXggPSBjcmVhdGVQcm9qZWN0aW9uTWF0cml4
KHZpZXdwb3J0U2l6ZSwgZGF0YSgpLlBhaW50RmxhZ3MgJiBQYWludGluZ01pcnJvcmVkKTsKICAg
ICBtX2NvbnRleHQzRC0+dmlld3BvcnQoZGF0YSgpLnZpZXdwb3J0WzBdLCBkYXRhKCkudmlld3Bv
cnRbMV0sIHZpZXdwb3J0U2l6ZS53aWR0aCgpLCB2aWV3cG9ydFNpemUuaGVpZ2h0KCkpOwogICAg
IG1fY2xpcFN0YWNrLmFwcGx5KG1fY29udGV4dDNELmdldCgpKTsKLSAgICBkYXRhKCkuY3VycmVu
dFN1cmZhY2UuY2xlYXIoKTsKKyAgICBkYXRhKCkuY3VycmVudFN1cmZhY2UgPSBudWxscHRyOwog
fQogCiB2b2lkIFRleHR1cmVNYXBwZXJHTDo6YmluZFN1cmZhY2UoQml0bWFwVGV4dHVyZSAqc3Vy
ZmFjZSkKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL3RleG1h
cC9UZXh0dXJlTWFwcGVyTGF5ZXIuY3BwIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhp
Y3MvdGV4bWFwL1RleHR1cmVNYXBwZXJMYXllci5jcHAKaW5kZXggYzg2NDIwMjJhM2FjMTQ2NTc3
MDg4MWYxMjQ4N2ZmN2RkYmI1NDRkOC4uMzQ1NTM5ODcwMjRhNmU3NWZkOWQxZTM5MDY4MTc4Yjll
ZDcyM2EyYiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvdGV4
bWFwL1RleHR1cmVNYXBwZXJMYXllci5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0v
Z3JhcGhpY3MvdGV4bWFwL1RleHR1cmVNYXBwZXJMYXllci5jcHAKQEAgLTQwOCw3ICs0MDgsNyBA
QCB2b2lkIFRleHR1cmVNYXBwZXJMYXllcjo6cGFpbnRXaXRoSW50ZXJtZWRpYXRlU3VyZmFjZShj
b25zdCBUZXh0dXJlTWFwcGVyUGFpbnRPcAogCiAgICAgaWYgKHJlcGxpY2FTdXJmYWNlICYmIG9w
dGlvbnMub3BhY2l0eSA9PSAxKSB7CiAgICAgICAgIGNvbW1pdFN1cmZhY2Uob3B0aW9ucywgcmVw
bGljYVN1cmZhY2UsIHJlY3QsIDEpOwotICAgICAgICByZXBsaWNhU3VyZmFjZS5jbGVhcigpOwor
ICAgICAgICByZXBsaWNhU3VyZmFjZSA9IG51bGxwdHI7CiAgICAgfQogCiAgICAgbWFpblN1cmZh
Y2UgPSBwYWludEludG9TdXJmYWNlKHBhaW50T3B0aW9ucywgcmVjdC5zaXplKCkpOwpkaWZmIC0t
Z2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvdGV4bWFwL1RleHR1cmVNYXBw
ZXJUaWxlZEJhY2tpbmdTdG9yZS5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGlj
cy90ZXhtYXAvVGV4dHVyZU1hcHBlclRpbGVkQmFja2luZ1N0b3JlLmNwcAppbmRleCAyMDgwNDYy
MzkzYmRiYjljYjAxNDgyMjgzOTRlOGIyZjY1ZjBjNmQ3Li5kMzU3MTBhNjkyODFhODIwNjE2ZGUz
MTIxMzNjNGQzYzdmZjkxN2U4IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9n
cmFwaGljcy90ZXhtYXAvVGV4dHVyZU1hcHBlclRpbGVkQmFja2luZ1N0b3JlLmNwcAorKysgYi9T
b3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy90ZXhtYXAvVGV4dHVyZU1hcHBlclRpbGVk
QmFja2luZ1N0b3JlLmNwcApAQCAtMzksNyArMzksNyBAQCB2b2lkIFRleHR1cmVNYXBwZXJUaWxl
ZEJhY2tpbmdTdG9yZTo6dXBkYXRlQ29udGVudHNGcm9tSW1hZ2VJZk5lZWRlZChUZXh0dXJlTWFw
cAogICAgICAgICByZXR1cm47CiAKICAgICB1cGRhdGVDb250ZW50cyh0ZXh0dXJlTWFwcGVyLCBt
X2ltYWdlLmdldCgpLCBtX2ltYWdlLT5zaXplKCksIGVuY2xvc2luZ0ludFJlY3QobV9pbWFnZS0+
cmVjdCgpKSwgQml0bWFwVGV4dHVyZTo6VXBkYXRlQ2Fubm90TW9kaWZ5T3JpZ2luYWxJbWFnZURh
dGEpOwotICAgIG1faW1hZ2UuY2xlYXIoKTsKKyAgICBtX2ltYWdlID0gbnVsbHB0cjsKIH0KIAog
VHJhbnNmb3JtYXRpb25NYXRyaXggVGV4dHVyZU1hcHBlclRpbGVkQmFja2luZ1N0b3JlOjphZGp1
c3RlZFRyYW5zZm9ybUZvclJlY3QoY29uc3QgRmxvYXRSZWN0JiB0YXJnZXRSZWN0KQpkaWZmIC0t
Z2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvdGV4bWFwL2Nvb3JkaW5hdGVk
L0Nvb3JkaW5hdGVkR3JhcGhpY3NMYXllci5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9n
cmFwaGljcy90ZXhtYXAvY29vcmRpbmF0ZWQvQ29vcmRpbmF0ZWRHcmFwaGljc0xheWVyLmNwcApp
bmRleCBlMmUxZjRhYjhmYTE5OTY0ZmY2ZGZjZDUyYzdiN2Q3ZWQ5MThjYWIwLi5hNzBlN2EwNzdk
N2RlMDc3MzNlMDhmMjA2MmFiNjlmZjBlNGMxZjc4IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29y
ZS9wbGF0Zm9ybS9ncmFwaGljcy90ZXhtYXAvY29vcmRpbmF0ZWQvQ29vcmRpbmF0ZWRHcmFwaGlj
c0xheWVyLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy90ZXhtYXAv
Y29vcmRpbmF0ZWQvQ29vcmRpbmF0ZWRHcmFwaGljc0xheWVyLmNwcApAQCAtODIwLDcgKzgyMCw3
IEBAIHZvaWQgQ29vcmRpbmF0ZWRHcmFwaGljc0xheWVyOjpyZWxlYXNlSW1hZ2VCYWNraW5nSWZO
ZWVkZWQoKQogCiAgICAgQVNTRVJUKG1fY29vcmRpbmF0b3IpOwogICAgIG1fY29vcmRpbmF0ZWRJ
bWFnZUJhY2tpbmctPnJlbW92ZUhvc3QodGhpcyk7Ci0gICAgbV9jb29yZGluYXRlZEltYWdlQmFj
a2luZy5jbGVhcigpOworICAgIG1fY29vcmRpbmF0ZWRJbWFnZUJhY2tpbmcgPSBudWxscHRyOwog
ICAgIG1fbGF5ZXJTdGF0ZS5pbWFnZUlEID0gSW52YWxpZENvb3JkaW5hdGVkSW1hZ2VCYWNraW5n
SUQ7CiAgICAgbV9sYXllclN0YXRlLmltYWdlQ2hhbmdlZCA9IHRydWU7CiB9CmRpZmYgLS1naXQg
YS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy90ZXhtYXAvY29vcmRpbmF0ZWQvQ29v
cmRpbmF0ZWRJbWFnZUJhY2tpbmcuY3BwIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhp
Y3MvdGV4bWFwL2Nvb3JkaW5hdGVkL0Nvb3JkaW5hdGVkSW1hZ2VCYWNraW5nLmNwcAppbmRleCBk
MjJiMTVlZGQzMGFmOWVhMDljMjQ2ODU2MjJiMDM5M2I1YjU1MjkzLi5lMjYxNTBmZWVlOWUyNzli
YTMzMjA3MGRlODRiZjQyNDlmZjIzMWU3IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0
Zm9ybS9ncmFwaGljcy90ZXhtYXAvY29vcmRpbmF0ZWQvQ29vcmRpbmF0ZWRJbWFnZUJhY2tpbmcu
Y3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL3RleG1hcC9jb29yZGlu
YXRlZC9Db29yZGluYXRlZEltYWdlQmFja2luZy5jcHAKQEAgLTE0MSw3ICsxNDEsNyBAQCB2b2lk
IENvb3JkaW5hdGVkSW1hZ2VCYWNraW5nOjpyZWxlYXNlU3VyZmFjZUlmTmVlZGVkKCkKIHsKICAg
ICAvLyBXZSBtdXN0IGtlZXAgbV9zdXJmYWNlIHVudGlsIFVJIFByb2Nlc3MgcmVhZHMgbV9zdXJm
YWNlLgogICAgIC8vIElmIG1fc3VyZmFjZSBleGlzdHMsIGl0IHdhcyBjcmVhdGVkIGluIHRoZSBw
cmV2aW91cyB1cGRhdGUuCi0gICAgbV9zdXJmYWNlLmNsZWFyKCk7CisgICAgbV9zdXJmYWNlID0g
bnVsbHB0cjsKIH0KIAogc3RhdGljIGNvbnN0IGRvdWJsZSBjbGVhckNvbnRlbnRzVGltZXJJbnRl
cnZhbCA9IDM7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ndGsvR2FtZXBh
ZHNHdGsuY3BwIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3RrL0dhbWVwYWRzR3RrLmNwcApp
bmRleCAyNmY5YmU2MmM3NjQ2M2M2ZTA4MWZjZWZlNzk2YjJlYWYxNzU5NThkLi45ZmIyOWYyYjk1
NDZmYzE4MzljNGVhOGViNTc4NGE4YTU2MjMyMzQ5IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29y
ZS9wbGF0Zm9ybS9ndGsvR2FtZXBhZHNHdGsuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRm
b3JtL2d0ay9HYW1lcGFkc0d0ay5jcHAKQEAgLTE1NSw3ICsxNTUsNyBAQCB2b2lkIEdhbWVwYWRz
R3RrOjp1bnJlZ2lzdGVyRGV2aWNlKFN0cmluZyBkZXZpY2VGaWxlKQogICAgIHNpemVfdCBpbmRl
eCA9IG1fc2xvdHMuZmluZChnYW1lcGFkRGV2aWNlKTsKICAgICBBU1NFUlQoaW5kZXggIT0gbm90
Rm91bmQpOwogCi0gICAgbV9zbG90c1tpbmRleF0uY2xlYXIoKTsKKyAgICBtX3Nsb3RzW2luZGV4
XSA9IG51bGxwdHI7CiB9CiAKIHZvaWQgR2FtZXBhZHNHdGs6OnVwZGF0ZUdhbWVwYWRMaXN0KEdh
bWVwYWRMaXN0KiBpbnRvKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vaW9z
L1BsYXRmb3JtU3BlZWNoU3ludGhlc2l6ZXJJT1MubW0gYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9y
bS9pb3MvUGxhdGZvcm1TcGVlY2hTeW50aGVzaXplcklPUy5tbQppbmRleCBhYjE0YzcwOTA1Mjky
ODJkYjRjNTUzZGYxYTVlNTU1MWNiZTgyNzE2Li5kYzBjYWE4OGEwNWUwODRlYTA5OGNlNDEwYmE2
ZDJhYmQzOGQ5MGM3IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9pb3MvUGxh
dGZvcm1TcGVlY2hTeW50aGVzaXplcklPUy5tbQorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9y
bS9pb3MvUGxhdGZvcm1TcGVlY2hTeW50aGVzaXplcklPUy5tbQpAQCAtMTc5LDcgKzE3OSw3IEBA
IC0gKHZvaWQpc3BlZWNoU3ludGhlc2l6ZXI6KEFWU3BlZWNoU3ludGhlc2l6ZXIgKilzeW50aGVz
aXplciBkaWRGaW5pc2hTcGVlY2hVdHRlCiAgICAgCiAgICAgLy8gQ2xlYXIgdGhlIG1fdXR0ZXJh
bmNlIHZhcmlhYmxlIGluIGNhc2UgZmluaXNoIHNwZWFraW5nIGtpY2tzIG9mZiBhIG5ldyBzcGVh
a2luZyBqb2IgaW1tZWRpYXRlbHkuCiAgICAgUmVmUHRyPFdlYkNvcmU6OlBsYXRmb3JtU3BlZWNo
U3ludGhlc2lzVXR0ZXJhbmNlPiBwbGF0Zm9ybVV0dGVyYW5jZSA9IG1fdXR0ZXJhbmNlOwotICAg
IG1fdXR0ZXJhbmNlID0gMDsKKyAgICBtX3V0dGVyYW5jZSA9IG51bGxwdHI7CiAgICAgCiAgICAg
bV9zeW50aGVzaXplck9iamVjdC0+Y2xpZW50KCktPmRpZEZpbmlzaFNwZWFraW5nKHBsYXRmb3Jt
VXR0ZXJhbmNlKTsKIH0KQEAgLTIxMyw3ICsyMTMsNyBAQCAtICh2b2lkKXNwZWVjaFN5bnRoZXNp
emVyOihBVlNwZWVjaFN5bnRoZXNpemVyICopc3ludGhlc2l6ZXIgZGlkQ2FuY2VsU3BlZWNoVXR0
ZQogICAgIAogICAgIC8vIENsZWFyIHRoZSBtX3V0dGVyYW5jZSB2YXJpYWJsZSBpbiBjYXNlIGZp
bmlzaCBzcGVha2luZyBraWNrcyBvZmYgYSBuZXcgc3BlYWtpbmcgam9iIGltbWVkaWF0ZWx5Lgog
ICAgIFJlZlB0cjxXZWJDb3JlOjpQbGF0Zm9ybVNwZWVjaFN5bnRoZXNpc1V0dGVyYW5jZT4gcGxh
dGZvcm1VdHRlcmFuY2UgPSBtX3V0dGVyYW5jZTsKLSAgICBtX3V0dGVyYW5jZSA9IDA7CisgICAg
bV91dHRlcmFuY2UgPSBudWxscHRyOwogICAgIAogICAgIG1fc3ludGhlc2l6ZXJPYmplY3QtPmNs
aWVudCgpLT5kaWRGaW5pc2hTcGVha2luZyhwbGF0Zm9ybVV0dGVyYW5jZSk7CiB9CmRpZmYgLS1n
aXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9tb2NrL0dlb2xvY2F0aW9uQ2xpZW50TW9jay5j
cHAgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9tb2NrL0dlb2xvY2F0aW9uQ2xpZW50TW9jay5j
cHAKaW5kZXggODE4NmE2YTUyMzNlZTg1YmU2NTI2OGI2OGYwNTQ0N2U4NTUyMzMwMC4uYjdjZmI5
YmUwNmRjYmZmYzdjMTZiM2NmZTc0NjUwMTMwZmE3MDBlNSAxMDA2NDQKLS0tIGEvU291cmNlL1dl
YkNvcmUvcGxhdGZvcm0vbW9jay9HZW9sb2NhdGlvbkNsaWVudE1vY2suY3BwCisrKyBiL1NvdXJj
ZS9XZWJDb3JlL3BsYXRmb3JtL21vY2svR2VvbG9jYXRpb25DbGllbnRNb2NrLmNwcApAQCAtMTI2
LDcgKzEyNiw3IEBAIHZvaWQgR2VvbG9jYXRpb25DbGllbnRNb2NrOjpwZXJtaXNzaW9uVGltZXJG
aXJlZCgpCiAKIHZvaWQgR2VvbG9jYXRpb25DbGllbnRNb2NrOjpyZXNldCgpCiB7Ci0gICAgbV9s
YXN0UG9zaXRpb24gPSAwOworICAgIG1fbGFzdFBvc2l0aW9uID0gbnVsbHB0cjsKICAgICBjbGVh
ckVycm9yKCk7CiAgICAgbV9wZXJtaXNzaW9uU3RhdGUgPSBQZXJtaXNzaW9uU3RhdGVVbnNldDsK
IH0KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL21vY2svUGxhdGZvcm1TcGVl
Y2hTeW50aGVzaXplck1vY2suY3BwIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbW9jay9QbGF0
Zm9ybVNwZWVjaFN5bnRoZXNpemVyTW9jay5jcHAKaW5kZXggMzgzODM3MmM1Nzc4ZWMyNzJjOGI1
NWY4MzE1MDY1Mzg0ZDljZjg3NC4uYzBiNGRmYTJjNmYyMjQ0ZWFhNGRhODg2NGQ1YzRiMzI2MzI1
OTJkYyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbW9jay9QbGF0Zm9ybVNw
ZWVjaFN5bnRoZXNpemVyTW9jay5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbW9j
ay9QbGF0Zm9ybVNwZWVjaFN5bnRoZXNpemVyTW9jay5jcHAKQEAgLTQ1LDcgKzQ1LDcgQEAgdm9p
ZCBQbGF0Zm9ybVNwZWVjaFN5bnRoZXNpemVyTW9jazo6c3BlYWtpbmdGaW5pc2hlZCgpCiB7CiAg
ICAgQVNTRVJUKG1fdXR0ZXJhbmNlLmdldCgpKTsKICAgICBSZWZQdHI8UGxhdGZvcm1TcGVlY2hT
eW50aGVzaXNVdHRlcmFuY2U+IHByb3RlY3QobV91dHRlcmFuY2UpOwotICAgIG1fdXR0ZXJhbmNl
ID0gMDsKKyAgICBtX3V0dGVyYW5jZSA9IG51bGxwdHI7CiAgICAgCiAgICAgY2xpZW50KCktPmRp
ZEZpbmlzaFNwZWFraW5nKHByb3RlY3QpOwogfQpAQCAtNzgsNyArNzgsNyBAQCB2b2lkIFBsYXRm
b3JtU3BlZWNoU3ludGhlc2l6ZXJNb2NrOjpjYW5jZWwoKQogICAgIAogICAgIG1fc3BlYWtpbmdG
aW5pc2hlZFRpbWVyLnN0b3AoKTsKICAgICBjbGllbnQoKS0+c3BlYWtpbmdFcnJvck9jY3VycmVk
KG1fdXR0ZXJhbmNlKTsKLSAgICBtX3V0dGVyYW5jZSA9IDA7CisgICAgbV91dHRlcmFuY2UgPSBu
dWxscHRyOwogfQogCiB2b2lkIFBsYXRmb3JtU3BlZWNoU3ludGhlc2l6ZXJNb2NrOjpwYXVzZSgp
CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9uZXR3b3JrL2NmL1Jlc291cmNl
UmVxdWVzdENGTmV0LmNwcCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL25ldHdvcmsvY2YvUmVz
b3VyY2VSZXF1ZXN0Q0ZOZXQuY3BwCmluZGV4IGNkYzdkNzM0NmQ1YTdiZmUxOTcyY2ZiNzg2YmVj
Y2YyZTNkMzllOWUuLmE0ZDQzZGYzYzBhNDI4ZjE3MDYxODJlOGE4YWFiYzA1ZGRhMjNhOWUgMTAw
NjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL25ldHdvcmsvY2YvUmVzb3VyY2VSZXF1
ZXN0Q0ZOZXQuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL25ldHdvcmsvY2YvUmVz
b3VyY2VSZXF1ZXN0Q0ZOZXQuY3BwCkBAIC0yOTUsNyArMjk1LDcgQEAgdm9pZCBSZXNvdXJjZVJl
cXVlc3Q6OmRvVXBkYXRlUmVzb3VyY2VSZXF1ZXN0KCkKIHZvaWQgUmVzb3VyY2VSZXF1ZXN0Ojpk
b1VwZGF0ZVJlc291cmNlSFRUUEJvZHkoKQogewogICAgIGlmICghbV9jZlJlcXVlc3QpIHsKLSAg
ICAgICAgbV9odHRwQm9keSA9IDA7CisgICAgICAgIG1faHR0cEJvZHkgPSBudWxscHRyOwogICAg
ICAgICByZXR1cm47CiAgICAgfQogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJp
bmcvSW5saW5lRmxvd0JveC5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvSW5saW5lRmxv
d0JveC5jcHAKaW5kZXggNDE2ODJjOGUyYjYwY2I5MjhlNDYxYjRlZmZhYTNiZjc5YzM2MWMyOC4u
MmQ2ZmI2OTQ0OGY4ZjFiYjU5NDRjMTBiYTU0OTAxMTU2N2Q2NzczNyAxMDA2NDQKLS0tIGEvU291
cmNlL1dlYkNvcmUvcmVuZGVyaW5nL0lubGluZUZsb3dCb3guY3BwCisrKyBiL1NvdXJjZS9XZWJD
b3JlL3JlbmRlcmluZy9JbmxpbmVGbG93Qm94LmNwcApAQCAtOTU0LDcgKzk1NCw3IEBAIHZvaWQg
SW5saW5lRmxvd0JveDo6Y29tcHV0ZU92ZXJmbG93KExheW91dFVuaXQgbGluZVRvcCwgTGF5b3V0
VW5pdCBsaW5lQm90dG9tLCBHCiAgICAgICAgIHJldHVybjsKIAogICAgIGlmIChtX292ZXJmbG93
KQotICAgICAgICBtX292ZXJmbG93LmNsZWFyKCk7CisgICAgICAgIG1fb3ZlcmZsb3cgPSBudWxs
cHRyOwogCiAgICAgLy8gVmlzdWFsIG92ZXJmbG93IGp1c3QgaW5jbHVkZXMgb3ZlcmZsb3cgZm9y
IHN0dWZmIHdlIG5lZWQgdG8gcmVwYWludCBvdXJzZWx2ZXMuICBTZWxmLXBhaW50aW5nIGxheWVy
cyBhcmUgaWdub3JlZC4KICAgICAvLyBMYXlvdXQgb3ZlcmZsb3cgaXMgdXNlZCB0byBkZXRlcm1p
bmUgc2Nyb2xsaW5nIGV4dGVudCwgc28gaXQgc3RpbGwgaW5jbHVkZXMgY2hpbGQgbGF5ZXJzIGFu
ZCBhbHNvIGZhY3RvcnMgaW4KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9S
ZW5kZXJCb3guY3BwIGIvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlckJveC5jcHAKaW5k
ZXggNTAyZGY2NmMwZDBkZTk4YTlhNDJjZDk0ZjcwYjIwYjRlMGIyYWNiYy4uNjE3MWRiNWUwYThh
OTIyNTdjYmUyZDMwN2Q2Zjc2ZGEzNjlhZGIyNCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUv
cmVuZGVyaW5nL1JlbmRlckJveC5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1Jl
bmRlckJveC5jcHAKQEAgLTQ0OTcsNyArNDQ5Nyw3IEBAIHZvaWQgUmVuZGVyQm94OjphZGRWaXN1
YWxPdmVyZmxvdyhjb25zdCBMYXlvdXRSZWN0JiByZWN0KQogCiB2b2lkIFJlbmRlckJveDo6Y2xl
YXJPdmVyZmxvdygpCiB7Ci0gICAgbV9vdmVyZmxvdy5jbGVhcigpOworICAgIG1fb3ZlcmZsb3cg
PSBudWxscHRyOwogICAgIFJlbmRlckZsb3dUaHJlYWQqIGZsb3dUaHJlYWQgPSBmbG93VGhyZWFk
Q29udGFpbmluZ0Jsb2NrKCk7CiAgICAgaWYgKGZsb3dUaHJlYWQpCiAgICAgICAgIGZsb3dUaHJl
YWQtPmNsZWFyUmVnaW9uc092ZXJmbG93KHRoaXMpOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNv
cmUvcmVuZGVyaW5nL1JlbmRlckJveFJlZ2lvbkluZm8uaCBiL1NvdXJjZS9XZWJDb3JlL3JlbmRl
cmluZy9SZW5kZXJCb3hSZWdpb25JbmZvLmgKaW5kZXggNjIzNjA4ZDY3NWRjYzY5MTFlMjdkYWYy
NGFjYjg0MDlkNDZlMThhZi4uZWEyM2MxZWM4ZWUzNzVlN2E2MTFjMTRlYzA0MTlmNjU2ZGExOTdi
MiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlckJveFJlZ2lvbklu
Zm8uaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyQm94UmVnaW9uSW5mby5o
CkBAIC01Myw3ICs1Myw3IEBAIHB1YmxpYzoKICAgICB2b2lkIGNsZWFyT3ZlcmZsb3coKQogICAg
IHsKICAgICAgICAgaWYgKG1fb3ZlcmZsb3cpCi0gICAgICAgICAgICBtX292ZXJmbG93LmNsZWFy
KCk7CisgICAgICAgICAgICBtX292ZXJmbG93ID0gbnVsbHB0cjsKICAgICB9CiAKIHByaXZhdGU6
CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyQ291bnRlci5jcHAg
Yi9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyQ291bnRlci5jcHAKaW5kZXggOTE4YTRm
ODhhMjNkOTZkOGFlNWUyMzY2OTU2NzE3ODBhMDkzNjI3ZS4uYzc0NTYzOWY4YTBhYmU0ZDhmZGY2
ODEwNTRjMTY4NTIyOTg2ZWYzNiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5n
L1JlbmRlckNvdW50ZXIuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJD
b3VudGVyLmNwcApAQCAtMTg2LDggKzE4Niw4IEBAIHN0YXRpYyBib29sIGZpbmRQbGFjZUZvckNv
dW50ZXIoUmVuZGVyRWxlbWVudCYgY291bnRlck93bmVyLCBjb25zdCBBdG9taWNTdHJpbmcmCiAg
ICAgLy8gdG93YXJkcyB0aGUgYmVnaW5pbmcgb2YgdGhlIGRvY3VtZW50IGZvciBjb3VudGVycyB3
aXRoIHRoZSBzYW1lIGlkZW50aWZpZXIgYXMgdGhlIG9uZQogICAgIC8vIHdlIGFyZSB0cnlpbmcg
dG8gZmluZCBhIHBsYWNlIGZvci4gVGhpcyBpcyB0aGUgbmV4dCByZW5kZXJlciB0byBiZSBjaGVj
a2VkLgogICAgIFJlbmRlckVsZW1lbnQqIGN1cnJlbnRSZW5kZXJlciA9IHByZXZpb3VzSW5QcmVP
cmRlcihjb3VudGVyT3duZXIpOwotICAgIHByZXZpb3VzU2libGluZyA9IDA7Ci0gICAgUmVmUHRy
PENvdW50ZXJOb2RlPiBwcmV2aW91c1NpYmxpbmdQcm90ZWN0b3IgPSAwOworICAgIHByZXZpb3Vz
U2libGluZyA9IG51bGxwdHI7CisgICAgUmVmUHRyPENvdW50ZXJOb2RlPiBwcmV2aW91c1NpYmxp
bmdQcm90ZWN0b3I7CiAKICAgICB3aGlsZSAoY3VycmVudFJlbmRlcmVyKSB7CiAgICAgICAgIENv
dW50ZXJOb2RlKiBjdXJyZW50Q291bnRlciA9IG1ha2VDb3VudGVyTm9kZSgqY3VycmVudFJlbmRl
cmVyLCBpZGVudGlmaWVyLCBmYWxzZSk7CkBAIC0yMDMsNyArMjAzLDcgQEAgc3RhdGljIGJvb2wg
ZmluZFBsYWNlRm9yQ291bnRlcihSZW5kZXJFbGVtZW50JiBjb3VudGVyT3duZXIsIGNvbnN0IEF0
b21pY1N0cmluZyYKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAvLyBoZW5jZSB3ZSBhcmUg
dGhlIG5leHQgc2libGluZyBvZiB0aGF0IGNvdW50ZXIgaWYgdGhhdCByZXNldCBpcyBub3QgYSBy
b290IG9yCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLy8gd2UgYXJlIGEgcm9vdCBub2Rl
IGlmIHRoYXQgcmVzZXQgaXMgYSByb290LgogICAgICAgICAgICAgICAgICAgICAgICAgICAgIHBh
cmVudCA9IGN1cnJlbnRDb3VudGVyLT5wYXJlbnQoKTsKLSAgICAgICAgICAgICAgICAgICAgICAg
ICAgICBwcmV2aW91c1NpYmxpbmcgPSBwYXJlbnQgPyBjdXJyZW50Q291bnRlciA6IDA7CisgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgcHJldmlvdXNTaWJsaW5nID0gcGFyZW50ID8gY3VycmVu
dENvdW50ZXIgOiBudWxscHRyOwogICAgICAgICAgICAgICAgICAgICAgICAgICAgIHJldHVybiBw
YXJlbnQ7CiAgICAgICAgICAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgICAgICAgICAgICAg
ICAvLyBXZSBhcmUgbm90IGEgcmVzZXQgbm9kZSBvciB0aGUgcHJldmlvdXMgcmVzZXQgbXVzdCBi
ZSBvbiBhbiBhbmNlc3RvciBvZiBvdXIgb3duZXIgcmVuZGVyZXIKQEAgLTIxMyw3ICsyMTMsNyBA
QCBzdGF0aWMgYm9vbCBmaW5kUGxhY2VGb3JDb3VudGVyKFJlbmRlckVsZW1lbnQmIGNvdW50ZXJP
d25lciwgY29uc3QgQXRvbWljU3RyaW5nJgogICAgICAgICAgICAgICAgICAgICAgICAgLy8gSW4g
dGhlc2UgY2FzZXMgdGhlIGlkZW50aWZpZWQgcHJldmlvdXNTaWJsaW5nIHdpbGwgYmUgaW52YWxp
ZCBhcyBpdHMgcGFyZW50IGlzIGRpZmZlcmVudCBmcm9tCiAgICAgICAgICAgICAgICAgICAgICAg
ICAvLyBvdXIgaWRlbnRpZmllZCBwYXJlbnQuCiAgICAgICAgICAgICAgICAgICAgICAgICBpZiAo
cHJldmlvdXNTaWJsaW5nUHJvdGVjdG9yLT5wYXJlbnQoKSAhPSBjdXJyZW50Q291bnRlcikKLSAg
ICAgICAgICAgICAgICAgICAgICAgICAgICBwcmV2aW91c1NpYmxpbmdQcm90ZWN0b3IgPSAwOwor
ICAgICAgICAgICAgICAgICAgICAgICAgICAgIHByZXZpb3VzU2libGluZ1Byb3RlY3RvciA9IG51
bGxwdHI7CiAKICAgICAgICAgICAgICAgICAgICAgICAgIHByZXZpb3VzU2libGluZyA9IHByZXZp
b3VzU2libGluZ1Byb3RlY3Rvci5nZXQoKTsKICAgICAgICAgICAgICAgICAgICAgICAgIHJldHVy
biB0cnVlOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlck1lbnVM
aXN0LmNwcCBiL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJNZW51TGlzdC5jcHAKaW5k
ZXggZmY5YTJjNTg2YmJkOWJlOTljNzc1NWUyMjJlMDAzODY0NmMxNzRkNi4uZGI5OTQ5OWNiZGZm
MDNhNTUxMDFkMmFkODZlMTgzNzZjZmFmYTI4YiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUv
cmVuZGVyaW5nL1JlbmRlck1lbnVMaXN0LmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJp
bmcvUmVuZGVyTWVudUxpc3QuY3BwCkBAIC04OCw3ICs4OCw3IEBAIFJlbmRlck1lbnVMaXN0Ojp+
UmVuZGVyTWVudUxpc3QoKQogI2lmICFQTEFURk9STShJT1MpCiAgICAgaWYgKG1fcG9wdXApCiAg
ICAgICAgIG1fcG9wdXAtPmRpc2Nvbm5lY3RDbGllbnQoKTsKLSAgICBtX3BvcHVwID0gMDsKKyAg
ICBtX3BvcHVwID0gbnVsbHB0cjsKICNlbmRpZgogfQogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2Vi
Q29yZS9yZW5kZXJpbmcvUmVuZGVyU2VhcmNoRmllbGQuY3BwIGIvU291cmNlL1dlYkNvcmUvcmVu
ZGVyaW5nL1JlbmRlclNlYXJjaEZpZWxkLmNwcAppbmRleCBmYTZlMzk2NzMxNjQ4ZWEwNTFjNjgw
NmMxOTI0ZGMyY2Y4YmU0YzAwLi44OWRjMzRjNGY0NDRkY2M1YzZjOWUwNzVlMTdkNzdjNmVkMmQ0
ODA1IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyU2VhcmNoRmll
bGQuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJTZWFyY2hGaWVsZC5j
cHAKQEAgLTYyLDcgKzYyLDcgQEAgUmVuZGVyU2VhcmNoRmllbGQ6On5SZW5kZXJTZWFyY2hGaWVs
ZCgpCiB7CiAgICAgaWYgKG1fc2VhcmNoUG9wdXApIHsKICAgICAgICAgbV9zZWFyY2hQb3B1cC0+
cG9wdXBNZW51KCktPmRpc2Nvbm5lY3RDbGllbnQoKTsKLSAgICAgICAgbV9zZWFyY2hQb3B1cCA9
IDA7CisgICAgICAgIG1fc2VhcmNoUG9wdXAgPSBudWxscHRyOwogICAgIH0KIH0KIApkaWZmIC0t
Z2l0IGEvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL3N0eWxlL0ZpbGxMYXllci5oIGIvU291cmNl
L1dlYkNvcmUvcmVuZGVyaW5nL3N0eWxlL0ZpbGxMYXllci5oCmluZGV4IDhiMDZjZTNiN2U4Nzdl
MjU1NmY2NzY4OGEzNDNhYWZjMmQxMzE4ZjkuLjAzMDk4NjNkYWU2MGU3OGU3Njk0YjE2OWU2NmJi
Y2U1ZjE5Y2M4MDQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9zdHlsZS9G
aWxsTGF5ZXIuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvc3R5bGUvRmlsbExheWVy
LmgKQEAgLTEyMSw4ICsxMjEsOCBAQCBwdWJsaWM6CiAgICAgdm9pZCBzZXRTaXplKEZpbGxTaXpl
IGYpIHsgbV9zaXplVHlwZSA9IGYudHlwZTsgbV9zaXplTGVuZ3RoID0gZi5zaXplOyB9CiAgICAg
dm9pZCBzZXRNYXNrU291cmNlVHlwZShFTWFza1NvdXJjZVR5cGUgbSkgeyBtX21hc2tTb3VyY2VU
eXBlID0gbTsgbV9tYXNrU291cmNlVHlwZVNldCA9IHRydWU7IH0KIAotICAgIHZvaWQgY2xlYXJN
YXNrSW1hZ2UoKSB7IG1fbWFza0ltYWdlT3BlcmF0aW9uLmNsZWFyKCk7IH0KLSAgICB2b2lkIGNs
ZWFySW1hZ2UoKSB7IG1faW1hZ2UuY2xlYXIoKTsgbV9pbWFnZVNldCA9IGZhbHNlOyB9CisgICAg
dm9pZCBjbGVhck1hc2tJbWFnZSgpIHsgbV9tYXNrSW1hZ2VPcGVyYXRpb24gPSBudWxscHRyOyB9
CisgICAgdm9pZCBjbGVhckltYWdlKCkgeyBtX2ltYWdlID0gbnVsbHB0cjsgbV9pbWFnZVNldCA9
IGZhbHNlOyB9CiAgICAgdm9pZCBjbGVhclhQb3NpdGlvbigpIHsgbV94UG9zU2V0ID0gZmFsc2U7
IG1fYmFja2dyb3VuZE9yaWdpblNldCA9IGZhbHNlOyB9CiAgICAgdm9pZCBjbGVhcllQb3NpdGlv
bigpIHsgbV95UG9zU2V0ID0gZmFsc2U7IG1fYmFja2dyb3VuZE9yaWdpblNldCA9IGZhbHNlOyB9
CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9zdHlsZS9SZW5kZXJTdHls
ZS5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvc3R5bGUvUmVuZGVyU3R5bGUuY3BwCmlu
ZGV4IDg3YzU4ZTliZmM3ZjQ0ZTRmMmI5YzI2ZjFlZjU5ZDY4ZjEyMDlmZGMuLjQ3ZmVlODk1MWNj
ODY5ZmY5OWJiMjJmNjU5N2MwN2YyNGFmZjFlMTEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3Jl
L3JlbmRlcmluZy9zdHlsZS9SZW5kZXJTdHlsZS5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvcmVu
ZGVyaW5nL3N0eWxlL1JlbmRlclN0eWxlLmNwcApAQCAtOTUwLDcgKzk1MCw3IEBAIHZvaWQgUmVu
ZGVyU3R5bGU6OnNldFF1b3RlcyhQYXNzUmVmUHRyPFF1b3Rlc0RhdGE+IHEpCiB2b2lkIFJlbmRl
clN0eWxlOjpjbGVhckN1cnNvckxpc3QoKQogewogICAgIGlmIChyYXJlSW5oZXJpdGVkRGF0YS0+
Y3Vyc29yRGF0YSkKLSAgICAgICAgcmFyZUluaGVyaXRlZERhdGEuYWNjZXNzKCktPmN1cnNvckRh
dGEgPSAwOworICAgICAgICByYXJlSW5oZXJpdGVkRGF0YS5hY2Nlc3MoKS0+Y3Vyc29yRGF0YSA9
IG51bGxwdHI7CiB9CiAKIHZvaWQgUmVuZGVyU3R5bGU6OmNsZWFyQ29udGVudCgpCmRpZmYgLS1n
aXQgYS9Tb3VyY2UvV2ViQ29yZS9zdmcvU1ZHVFJlZkVsZW1lbnQuY3BwIGIvU291cmNlL1dlYkNv
cmUvc3ZnL1NWR1RSZWZFbGVtZW50LmNwcAppbmRleCAyMjVhMzA0NmE0OTkyYzk3MDViYTc5NTA5
OTU2MWIzYjllYmFmZmJkLi5lM2ZhZDhkNTkwYzU0ZGU2YmU5NDY3OWM5NTcxN2I5ODVhYzc0YTIx
IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9zdmcvU1ZHVFJlZkVsZW1lbnQuY3BwCisrKyBi
L1NvdXJjZS9XZWJDb3JlL3N2Zy9TVkdUUmVmRWxlbWVudC5jcHAKQEAgLTEwNCw3ICsxMDQsNyBA
QCB2b2lkIFNWR1RSZWZUYXJnZXRFdmVudExpc3RlbmVyOjpkZXRhY2goKQogCiAgICAgbV90YXJn
ZXQtPnJlbW92ZUV2ZW50TGlzdGVuZXIoZXZlbnROYW1lcygpLkRPTVN1YnRyZWVNb2RpZmllZEV2
ZW50LCB0aGlzLCBmYWxzZSk7CiAgICAgbV90YXJnZXQtPnJlbW92ZUV2ZW50TGlzdGVuZXIoZXZl
bnROYW1lcygpLkRPTU5vZGVSZW1vdmVkRnJvbURvY3VtZW50RXZlbnQsIHRoaXMsIGZhbHNlKTsK
LSAgICBtX3RhcmdldC5jbGVhcigpOworICAgIG1fdGFyZ2V0ID0gbnVsbHB0cjsKIH0KIAogYm9v
bCBTVkdUUmVmVGFyZ2V0RXZlbnRMaXN0ZW5lcjo6b3BlcmF0b3I9PShjb25zdCBFdmVudExpc3Rl
bmVyJiBsaXN0ZW5lcikKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3Rlc3RpbmcvSW50ZXJu
YWxzLmNwcCBiL1NvdXJjZS9XZWJDb3JlL3Rlc3RpbmcvSW50ZXJuYWxzLmNwcAppbmRleCAxYTEw
NTE3NDc5ZThlOGU5ODFhNzQ1M2FiZGE2ZmRjMjQ3NTc1MWI3Li40NzZkMWUyNzU5ZTYwNmYyMDc2
NDU4MjEwZGI0OTMzYzgyMzA2ZTgyIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS90ZXN0aW5n
L0ludGVybmFscy5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvdGVzdGluZy9JbnRlcm5hbHMuY3Bw
CkBAIC0xNzIzLDcgKzE3MjMsNyBAQCB2b2lkIEludGVybmFsczo6Y2xvc2VEdW1teUluc3BlY3Rv
ckZyb250ZW5kKCkKICAgICBtX2Zyb250ZW5kQ2hhbm5lbCA9IG51bGxwdHI7CiAKICAgICBtX2Zy
b250ZW5kV2luZG93LT5jbG9zZShtX2Zyb250ZW5kV2luZG93LT5zY3JpcHRFeGVjdXRpb25Db250
ZXh0KCkpOwotICAgIG1fZnJvbnRlbmRXaW5kb3cuY2xlYXIoKTsKKyAgICBtX2Zyb250ZW5kV2lu
ZG93ID0gbnVsbHB0cjsKIH0KIAogdm9pZCBJbnRlcm5hbHM6OnNldEphdmFTY3JpcHRQcm9maWxp
bmdFbmFibGVkKGJvb2wgZW5hYmxlZCwgRXhjZXB0aW9uQ29kZSYgZWMpCmRpZmYgLS1naXQgYS9T
b3VyY2UvV2ViQ29yZS93b3JrZXJzL1dvcmtlckV2ZW50UXVldWUuY3BwIGIvU291cmNlL1dlYkNv
cmUvd29ya2Vycy9Xb3JrZXJFdmVudFF1ZXVlLmNwcAppbmRleCBmNTIwYzFkZWVmYWIxZWIxNGYx
YjdmZDkyNDBmZTg2NDdhYzI0YTg5Li4wNzIxMDc2OWZkMDZiYTljZTg3YWM0NjUyYzk5ZTJjMTc4
ZDI4NGYxIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS93b3JrZXJzL1dvcmtlckV2ZW50UXVl
dWUuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3dvcmtlcnMvV29ya2VyRXZlbnRRdWV1ZS5jcHAK
QEAgLTY4LDEzICs2OCwxMyBAQCBwdWJsaWM6CiAgICAgICAgICAgICByZXR1cm47CiAgICAgICAg
IG1fZXZlbnRRdWV1ZS5tX2V2ZW50RGlzcGF0Y2hlck1hcC5yZW1vdmUobV9ldmVudC5nZXQoKSk7
CiAgICAgICAgIG1fZXZlbnQtPnRhcmdldCgpLT5kaXNwYXRjaEV2ZW50KG1fZXZlbnQpOwotICAg
ICAgICBtX2V2ZW50LmNsZWFyKCk7CisgICAgICAgIG1fZXZlbnQgPSBudWxscHRyOwogICAgIH0K
IAogICAgIHZvaWQgY2FuY2VsKCkKICAgICB7CiAgICAgICAgIG1faXNDYW5jZWxsZWQgPSB0cnVl
OwotICAgICAgICBtX2V2ZW50LmNsZWFyKCk7CisgICAgICAgIG1fZXZlbnQgPSBudWxscHRyOwog
ICAgIH0KIAogcHJpdmF0ZToKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3dvcmtlcnMvV29y
a2VyTWVzc2FnaW5nUHJveHkuY3BwIGIvU291cmNlL1dlYkNvcmUvd29ya2Vycy9Xb3JrZXJNZXNz
YWdpbmdQcm94eS5jcHAKaW5kZXggNzg0NWI2MWZhOGRjZmFmOWY2N2ZhYTBkOTQyNWQwZjliMmI1
ZDYxNS4uYmQ3NGVhY2UwMmNkM2MxMDZmZGVhYmM3ZTRjZGY2MTY4YTNkYmUxZSAxMDA2NDQKLS0t
IGEvU291cmNlL1dlYkNvcmUvd29ya2Vycy9Xb3JrZXJNZXNzYWdpbmdQcm94eS5jcHAKKysrIGIv
U291cmNlL1dlYkNvcmUvd29ya2Vycy9Xb3JrZXJNZXNzYWdpbmdQcm94eS5jcHAKQEAgLTI2NCw3
ICsyNjQsNyBAQCB2b2lkIFdvcmtlck1lc3NhZ2luZ1Byb3h5Ojp3b3JrZXJHbG9iYWxTY29wZURl
c3Ryb3llZEludGVybmFsKCkKICAgICAvLyBXb3JrZXJHbG9iYWxTY29wZURlc3Ryb3llZFRhc2sg
aXMgYWx3YXlzIHRoZSBsYXN0IHRvIGJlIHBlcmZvcm1lZCwgc28gdGhlIHByb3h5IGlzIG5vdCBu
ZWVkZWQgZm9yIGNvbW11bmljYXRpb24KICAgICAvLyBpbiBlaXRoZXIgc2lkZSBhbnkgbW9yZS4g
SG93ZXZlciwgdGhlIFdvcmtlciBvYmplY3QgbWF5IHN0aWxsIGV4aXN0LCBhbmQgaXQgYXNzdW1l
cyB0aGF0IHRoZSBwcm94eSBleGlzdHMsIHRvby4KICAgICBtX2Fza2VkVG9UZXJtaW5hdGUgPSB0
cnVlOwotICAgIG1fd29ya2VyVGhyZWFkID0gMDsKKyAgICBtX3dvcmtlclRocmVhZCA9IG51bGxw
dHI7CiAKICAgICBJbnNwZWN0b3JJbnN0cnVtZW50YXRpb246Ondvcmtlckdsb2JhbFNjb3BlVGVy
bWluYXRlZChtX3NjcmlwdEV4ZWN1dGlvbkNvbnRleHQuZ2V0KCksIHRoaXMpOwogCmRpZmYgLS1n
aXQgYS9Tb3VyY2UvV2ViQ29yZS93b3JrZXJzL1dvcmtlclRocmVhZC5jcHAgYi9Tb3VyY2UvV2Vi
Q29yZS93b3JrZXJzL1dvcmtlclRocmVhZC5jcHAKaW5kZXggODczYzgyOTZlNmUyZWYxMTcxNDJl
MDVkZjg5ZjRiYzQ2YTE0ZDkwNC4uZTUxNTU1MjZjOThlOTEwMjk3ZTAxYjg2ZmVkMjhiMTJmNGQw
MjI5MCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvd29ya2Vycy9Xb3JrZXJUaHJlYWQuY3Bw
CisrKyBiL1NvdXJjZS9XZWJDb3JlL3dvcmtlcnMvV29ya2VyVGhyZWFkLmNwcApAQCAtMTcxLDcg
KzE3MSw3IEBAIHZvaWQgV29ya2VyVGhyZWFkOjp3b3JrZXJUaHJlYWQoKQogCiAgICAgLy8gVGhl
IGJlbG93IGFzc2lnbm1lbnQgd2lsbCBkZXN0cm95IHRoZSBjb250ZXh0LCB3aGljaCB3aWxsIGlu
IHR1cm4gbm90aWZ5IG1lc3NhZ2luZyBwcm94eS4KICAgICAvLyBXZSBjYW5ub3QgbGV0IGFueSBv
YmplY3RzIHN1cnZpdmUgcGFzdCB0aHJlYWQgZXhpdCwgYmVjYXVzZSBubyBvdGhlciB0aHJlYWQg
d2lsbCBydW4gR0Mgb3Igb3RoZXJ3aXNlIGRlc3Ryb3kgdGhlbS4KLSAgICBtX3dvcmtlckdsb2Jh
bFNjb3BlID0gMDsKKyAgICBtX3dvcmtlckdsb2JhbFNjb3BlID0gbnVsbHB0cjsKIAogICAgIC8v
IENsZWFuIHVwIFdlYkNvcmU6OlRocmVhZEdsb2JhbERhdGEgYmVmb3JlIFdURjo6V1RGVGhyZWFk
RGF0YSBnb2VzIGF3YXkhCiAgICAgdGhyZWFkR2xvYmFsRGF0YSgpLmRlc3Ryb3koKTsKZGlmZiAt
LWdpdCBhL1NvdXJjZS9XZWJDb3JlL3htbC9YTUxIdHRwUmVxdWVzdC5jcHAgYi9Tb3VyY2UvV2Vi
Q29yZS94bWwvWE1MSHR0cFJlcXVlc3QuY3BwCmluZGV4IGM3ZThjMGIyYjBmZGQzYTc5YmEwOWQy
ZmQ5MTVmMzIxNWZlNmM3MjkuLjQ3NWQ2ZmI0ZDU2YmY2NTc1ZWY1MGMxYzU0NGQ1ODgzNTA1Yjk0
NzUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3htbC9YTUxIdHRwUmVxdWVzdC5jcHAKKysr
IGIvU291cmNlL1dlYkNvcmUveG1sL1hNTEh0dHBSZXF1ZXN0LmNwcApAQCAtMjQ1LDcgKzI0NSw3
IEBAIEJsb2IqIFhNTEh0dHBSZXF1ZXN0OjpyZXNwb25zZUJsb2IoKQogICAgICAgICAgICAgZGF0
YS5hcHBlbmQobV9iaW5hcnlSZXNwb25zZUJ1aWxkZXItPmRhdGEoKSwgbV9iaW5hcnlSZXNwb25z
ZUJ1aWxkZXItPnNpemUoKSk7CiAgICAgICAgICAgICBTdHJpbmcgbm9ybWFsaXplZENvbnRlbnRU
eXBlID0gQmxvYjo6bm9ybWFsaXplZENvbnRlbnRUeXBlKHJlc3BvbnNlTUlNRVR5cGUoKSk7IC8v
IHJlc3BvbnNlTUlNRVR5cGUgZGVmYXVsdHMgdG8gdGV4dC94bWwgd2hpY2ggbWF5IGJlIGluY29y
cmVjdC4KICAgICAgICAgICAgIG1fcmVzcG9uc2VCbG9iID0gQmxvYjo6Y3JlYXRlKFdURjo6bW92
ZShkYXRhKSwgbm9ybWFsaXplZENvbnRlbnRUeXBlKTsKLSAgICAgICAgICAgIG1fYmluYXJ5UmVz
cG9uc2VCdWlsZGVyLmNsZWFyKCk7CisgICAgICAgICAgICBtX2JpbmFyeVJlc3BvbnNlQnVpbGRl
ciA9IG51bGxwdHI7CiAgICAgICAgIH0gZWxzZSB7CiAgICAgICAgICAgICAvLyBJZiB3ZSBlcnJv
cmVkIG91dCBvciBnb3Qgbm8gZGF0YSwgd2Ugc3RpbGwgcmV0dXJuIGEgYmxvYiwganVzdCBhbiBl
bXB0eSBvbmUuCiAgICAgICAgICAgICBtX3Jlc3BvbnNlQmxvYiA9IEJsb2I6OmNyZWF0ZSgpOwpA
QCAtMjY1LDcgKzI2NSw3IEBAIEFycmF5QnVmZmVyKiBYTUxIdHRwUmVxdWVzdDo6cmVzcG9uc2VB
cnJheUJ1ZmZlcigpCiAgICAgICAgICAgICBtX3Jlc3BvbnNlQXJyYXlCdWZmZXIgPSBtX2JpbmFy
eVJlc3BvbnNlQnVpbGRlci0+Y3JlYXRlQXJyYXlCdWZmZXIoKTsKICAgICAgICAgZWxzZQogICAg
ICAgICAgICAgbV9yZXNwb25zZUFycmF5QnVmZmVyID0gQXJyYXlCdWZmZXI6OmNyZWF0ZShudWxs
cHRyLCAwKTsKLSAgICAgICAgbV9iaW5hcnlSZXNwb25zZUJ1aWxkZXIuY2xlYXIoKTsKKyAgICAg
ICAgbV9iaW5hcnlSZXNwb25zZUJ1aWxkZXIgPSBudWxscHRyOwogICAgIH0KIAogICAgIHJldHVy
biBtX3Jlc3BvbnNlQXJyYXlCdWZmZXIuZ2V0KCk7CkBAIC04NjgsOCArODY4LDggQEAgdm9pZCBY
TUxIdHRwUmVxdWVzdDo6Y2xlYXJSZXNwb25zZUJ1ZmZlcnMoKQogICAgIG1fY3JlYXRlZERvY3Vt
ZW50ID0gZmFsc2U7CiAgICAgbV9yZXNwb25zZURvY3VtZW50ID0gbnVsbHB0cjsKICAgICBtX3Jl
c3BvbnNlQmxvYiA9IG51bGxwdHI7Ci0gICAgbV9iaW5hcnlSZXNwb25zZUJ1aWxkZXIuY2xlYXIo
KTsKLSAgICBtX3Jlc3BvbnNlQXJyYXlCdWZmZXIuY2xlYXIoKTsKKyAgICBtX2JpbmFyeVJlc3Bv
bnNlQnVpbGRlciA9IG51bGxwdHI7CisgICAgbV9yZXNwb25zZUFycmF5QnVmZmVyID0gbnVsbHB0
cjsKICAgICBtX3Jlc3BvbnNlQ2FjaGVJc1ZhbGlkID0gZmFsc2U7CiB9CiAKZGlmZiAtLWdpdCBh
L1NvdXJjZS9XZWJDb3JlL3htbC9YU0xUUHJvY2Vzc29yLmNwcCBiL1NvdXJjZS9XZWJDb3JlL3ht
bC9YU0xUUHJvY2Vzc29yLmNwcAppbmRleCAwNjljY2VjYjdiZjJjOTQwMDZkZTk0ODVkMTYzMjg0
ZTg0MDc5MWZiLi40OTFmMTJjOTlkOGE1YjQyMGFmZmMyOTA3N2M0YjNkZTIxM2Q1NDA4IDEwMDY0
NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS94bWwvWFNMVFByb2Nlc3Nvci5jcHAKKysrIGIvU291cmNl
L1dlYkNvcmUveG1sL1hTTFRQcm9jZXNzb3IuY3BwCkBAIC0xNjIsOCArMTYyLDggQEAgdm9pZCBY
U0xUUHJvY2Vzc29yOjpyZW1vdmVQYXJhbWV0ZXIoY29uc3QgU3RyaW5nJiAvKm5hbWVzcGFjZVVS
SSovLCBjb25zdCBTdHJpbmcKIAogdm9pZCBYU0xUUHJvY2Vzc29yOjpyZXNldCgpCiB7Ci0gICAg
bV9zdHlsZXNoZWV0LmNsZWFyKCk7Ci0gICAgbV9zdHlsZXNoZWV0Um9vdE5vZGUuY2xlYXIoKTsK
KyAgICBtX3N0eWxlc2hlZXQgPSBudWxscHRyOworICAgIG1fc3R5bGVzaGVldFJvb3ROb2RlID0g
bnVsbHB0cjsKICAgICBtX3BhcmFtZXRlcnMuY2xlYXIoKTsKIH0KIApkaWZmIC0tZ2l0IGEvU291
cmNlL1dlYktpdC9TdG9yYWdlL1N0b3JhZ2VBcmVhU3luYy5jcHAgYi9Tb3VyY2UvV2ViS2l0L1N0
b3JhZ2UvU3RvcmFnZUFyZWFTeW5jLmNwcAppbmRleCBkMWViMzJhMGRhNGNkM2JiZWI2Zjg4Yzc2
MTVlMmJmZDliOTc3MTg2Li5iYTE3ZjE4OTgxZTNiZTZmMTg0MGY5MDk4YThiMWFiMTkwMDUzZjU5
IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1N0b3JhZ2UvU3RvcmFnZUFyZWFTeW5jLmNwcAor
KysgYi9Tb3VyY2UvV2ViS2l0L1N0b3JhZ2UvU3RvcmFnZUFyZWFTeW5jLmNwcApAQCAtODgsNyAr
ODgsNyBAQCB2b2lkIFN0b3JhZ2VBcmVhU3luYzo6c2NoZWR1bGVGaW5hbFN5bmMoKQogICAgIEFT
U0VSVChpc01haW5UaHJlYWQoKSk7CiAgICAgLy8gRklYTUU6IFdlIGRvIHRoaXMgdG8gYXZvaWQg
cmFjZXMsIGJ1dCBpdCdkIGJlIGJldHRlciB0byBtYWtlIHRoaW5ncyBzYWZlIHdpdGhvdXQgYmxv
Y2tpbmcuCiAgICAgYmxvY2tVbnRpbEltcG9ydENvbXBsZXRlKCk7Ci0gICAgbV9zdG9yYWdlQXJl
YSA9IDA7ICAvLyBUaGlzIGlzIGRvbmUgaW4gYmxvY2tVbnRpbEltcG9ydENvbXBsZXRlKCkgYnV0
IHRoaXMgaXMgaGVyZSBhcyBhIGZvcm0gb2YgZG9jdW1lbnRhdGlvbiB0aGF0IHdlIG11c3QgYmUg
YWJzb2x1dGVseSBzdXJlIHRoZSByZWYgY291bnQgY3ljbGUgaXMgYnJva2VuLgorICAgIG1fc3Rv
cmFnZUFyZWEgPSBudWxscHRyOyAvLyBUaGlzIGlzIGRvbmUgaW4gYmxvY2tVbnRpbEltcG9ydENv
bXBsZXRlKCkgYnV0IHRoaXMgaXMgaGVyZSBhcyBhIGZvcm0gb2YgZG9jdW1lbnRhdGlvbiB0aGF0
IHdlIG11c3QgYmUgYWJzb2x1dGVseSBzdXJlIHRoZSByZWYgY291bnQgY3ljbGUgaXMgYnJva2Vu
LgogCiAgICAgaWYgKG1fc3luY1RpbWVyLmlzQWN0aXZlKCkpCiAgICAgICAgIG1fc3luY1RpbWVy
LnN0b3AoKTsKQEAgLTM3NSw3ICszNzUsNyBAQCB2b2lkIFN0b3JhZ2VBcmVhU3luYzo6YmxvY2tV
bnRpbEltcG9ydENvbXBsZXRlKCkKICAgICBNdXRleExvY2tlciBsb2NrZXIobV9pbXBvcnRMb2Nr
KTsKICAgICB3aGlsZSAoIW1faW1wb3J0Q29tcGxldGUpCiAgICAgICAgIG1faW1wb3J0Q29uZGl0
aW9uLndhaXQobV9pbXBvcnRMb2NrKTsKLSAgICBtX3N0b3JhZ2VBcmVhID0gMDsKKyAgICBtX3N0
b3JhZ2VBcmVhID0gbnVsbHB0cjsKIH0KIAogdm9pZCBTdG9yYWdlQXJlYVN5bmM6OnN5bmMoYm9v
bCBjbGVhckl0ZW1zLCBjb25zdCBIYXNoTWFwPFN0cmluZywgU3RyaW5nPiYgaXRlbXMpCmRpZmYg
LS1naXQgYS9Tb3VyY2UvV2ViS2l0L21hYy9QbHVnaW5zL0hvc3RlZC9XZWJIb3N0ZWROZXRzY2Fw
ZVBsdWdpblZpZXcubW0gYi9Tb3VyY2UvV2ViS2l0L21hYy9QbHVnaW5zL0hvc3RlZC9XZWJIb3N0
ZWROZXRzY2FwZVBsdWdpblZpZXcubW0KaW5kZXggNzYwMDU4MzY5MGQ3OTYwYzVkOGE1OWE3M2U3
MmQwMjVkYjJjZmYzNy4uYWM0MzRlYzFhOWYzNDhjNzA1YzhiYjAxMmNlNmE0ZWM4OTdlZjMwYSAx
MDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9tYWMvUGx1Z2lucy9Ib3N0ZWQvV2ViSG9zdGVkTmV0
c2NhcGVQbHVnaW5WaWV3Lm1tCisrKyBiL1NvdXJjZS9XZWJLaXQvbWFjL1BsdWdpbnMvSG9zdGVk
L1dlYkhvc3RlZE5ldHNjYXBlUGx1Z2luVmlldy5tbQpAQCAtMjgxLDcgKzI4MSw3IEBAIC0gKHZv
aWQpZGVzdHJveVBsdWdpbgogICAgICAgICB9CiAgICAgICAgIAogICAgICAgICBfcHJveHktPmRl
c3Ryb3koKTsKLSAgICAgICAgX3Byb3h5ID0gMDsKKyAgICAgICAgX3Byb3h5ID0gbnVsbHB0cjsK
ICAgICB9CiAgICAgCiAgICAgX3BsdWdpbkxheWVyID0gMDsKQEAgLTQzMiw3ICs0MzIsNyBAQCAt
ICh2b2lkKXBsdWdpbkhvc3REaWVkCiAgICAgICAgIGRvd25jYXN0PFJlbmRlckVtYmVkZGVkT2Jq
ZWN0PigqX2VsZW1lbnQtPnJlbmRlcmVyKCkpLnNldFBsdWdpblVuYXZhaWxhYmlsaXR5UmVhc29u
KFJlbmRlckVtYmVkZGVkT2JqZWN0OjpQbHVnaW5DcmFzaGVkKTsKIAogICAgIF9wbHVnaW5MYXll
ciA9IG5pbDsKLSAgICBfcHJveHkgPSAwOworICAgIF9wcm94eSA9IG51bGxwdHI7CiAgICAgCiAg
ICAgLy8gTm8gbmVlZCBmb3IgdXMgdG8gYmUgbGF5ZXIgYmFja2VkIGFueW1vcmUKICAgICBzZWxm
LndhbnRzTGF5ZXIgPSBOTzsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvbWFjL1dlYkNvcmVT
dXBwb3J0L1dlYkVkaXRvckNsaWVudC5tbSBiL1NvdXJjZS9XZWJLaXQvbWFjL1dlYkNvcmVTdXBw
b3J0L1dlYkVkaXRvckNsaWVudC5tbQppbmRleCA2Y2VkMTk0MTM4NmIwYzY5MTA2MjY3ZjFjZDc0
ZDhlYzNhMTlkOTU2Li5jMTg4YjlkNzM5NTdhNGEyMzAzZDg3MDIxODMxMzA2Y2Q2MDEzYjI5IDEw
MDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L21hYy9XZWJDb3JlU3VwcG9ydC9XZWJFZGl0b3JDbGll
bnQubW0KKysrIGIvU291cmNlL1dlYktpdC9tYWMvV2ViQ29yZVN1cHBvcnQvV2ViRWRpdG9yQ2xp
ZW50Lm1tCkBAIC0xMTQzLDcgKzExNDMsNyBAQCB2b2lkIFdlYkVkaXRvckNsaWVudDo6ZGlkQ2hl
Y2tTdWNjZWVkKGludCBzZXF1ZW5jZSwgTlNBcnJheSogcmVzdWx0cykKIHsKICAgICBBU1NFUlRf
VU5VU0VEKHNlcXVlbmNlLCBzZXF1ZW5jZSA9PSBtX3RleHRDaGVja2luZ1JlcXVlc3QtPmRhdGEo
KS5zZXF1ZW5jZSgpKTsKICAgICBtX3RleHRDaGVja2luZ1JlcXVlc3QtPmRpZFN1Y2NlZWQoY29y
ZShyZXN1bHRzLCBtX3RleHRDaGVja2luZ1JlcXVlc3QtPmRhdGEoKS5tYXNrKCkpKTsKLSAgICBt
X3RleHRDaGVja2luZ1JlcXVlc3QuY2xlYXIoKTsKKyAgICBtX3RleHRDaGVja2luZ1JlcXVlc3Qg
PSBudWxscHRyOwogfQogI2VuZGlmCiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvbWFjL1dl
YkNvcmVTdXBwb3J0L1dlYlVzZXJNZWRpYUNsaWVudC5tbSBiL1NvdXJjZS9XZWJLaXQvbWFjL1dl
YkNvcmVTdXBwb3J0L1dlYlVzZXJNZWRpYUNsaWVudC5tbQppbmRleCA2MjJiZDlkZDNhZmUwODky
YjFkYzJkZjUwYmE3ZTRiNDMyMmIxNTlkLi4xN2YxNjQ3M2VkNWI5ZDQzNDgzMGVkN2M3MjY5ODY1
ZDdhNWIzNTNmIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L21hYy9XZWJDb3JlU3VwcG9ydC9X
ZWJVc2VyTWVkaWFDbGllbnQubW0KKysrIGIvU291cmNlL1dlYktpdC9tYWMvV2ViQ29yZVN1cHBv
cnQvV2ViVXNlck1lZGlhQ2xpZW50Lm1tCkBAIC0xNDIsNyArMTQyLDcgQEAgLSAodm9pZCljYW5j
ZWxSZXF1ZXN0CiAgICAgaWYgKCFfcmVxdWVzdCkKICAgICAgICAgcmV0dXJuOwogCi0gICAgX3Jl
cXVlc3QgPSAwOworICAgIF9yZXF1ZXN0ID0gbnVsbHB0cjsKICNlbmRpZgogICAgIAogfQpkaWZm
IC0tZ2l0IGEvU291cmNlL1dlYktpdC93aW4vV2ViVmlldy5jcHAgYi9Tb3VyY2UvV2ViS2l0L3dp
bi9XZWJWaWV3LmNwcAppbmRleCA0Mzc1MjcxMjhkMTU0MWZjNjllODdkMDU4Y2I5ZTkwNjJiNjM2
MjNkLi5iNzllNjNjNTQ2NTViMTczMGYwNGU2ZDZhOGUwNzQ3NGQ2ZGFiYjAxIDEwMDY0NAotLS0g
YS9Tb3VyY2UvV2ViS2l0L3dpbi9XZWJWaWV3LmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0L3dpbi9X
ZWJWaWV3LmNwcApAQCAtODUxLDggKzg1MSw4IEBAIHZvaWQgV2ViVmlldzo6ZGVsZXRlQmFja2lu
Z1N0b3JlKCkKICAgICAgICAgS2lsbFRpbWVyKG1fdmlld1dpbmRvdywgRGVsZXRlQmFja2luZ1N0
b3JlVGltZXIpOwogICAgICAgICBtX2RlbGV0ZUJhY2tpbmdTdG9yZVRpbWVyQWN0aXZlID0gZmFs
c2U7CiAgICAgfQotICAgIG1fYmFja2luZ1N0b3JlQml0bWFwLmNsZWFyKCk7Ci0gICAgbV9iYWNr
aW5nU3RvcmVEaXJ0eVJlZ2lvbi5jbGVhcigpOworICAgIG1fYmFja2luZ1N0b3JlQml0bWFwID0g
bnVsbHB0cjsKKyAgICBtX2JhY2tpbmdTdG9yZURpcnR5UmVnaW9uID0gbnVsbHB0cjsKICAgICBt
X2JhY2tpbmdTdG9yZVNpemUuY3ggPSBtX2JhY2tpbmdTdG9yZVNpemUuY3kgPSAwOwogfQogCkBA
IC0xMDc5LDcgKzEwNzksNyBAQCB2b2lkIFdlYlZpZXc6OnVwZGF0ZUJhY2tpbmdTdG9yZShGcmFt
ZVZpZXcqIGZyYW1lVmlldywgSERDIGRjLCBib29sIGJhY2tpbmdTdG9yZQogICAgICAgICBpZiAo
bV91aURlbGVnYXRlUHJpdmF0ZSkKICAgICAgICAgICAgIG1fdWlEZWxlZ2F0ZVByaXZhdGUtPndl
YlZpZXdQYWludGVkKHRoaXMpOwogCi0gICAgICAgIG1fYmFja2luZ1N0b3JlRGlydHlSZWdpb24u
Y2xlYXIoKTsKKyAgICAgICAgbV9iYWNraW5nU3RvcmVEaXJ0eVJlZ2lvbiA9IG51bGxwdHI7CiAg
ICAgfQogCiAgICAgaWYgKCFkYykKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL0RhdGFiYXNl
UHJvY2Vzcy9JbmRleGVkREIvVW5pcXVlSURCRGF0YWJhc2UuY3BwIGIvU291cmNlL1dlYktpdDIv
RGF0YWJhc2VQcm9jZXNzL0luZGV4ZWREQi9VbmlxdWVJREJEYXRhYmFzZS5jcHAKaW5kZXggNjE5
ODA1Y2Q5YTI2MWU3MTViMjc4ODhjMWIxYmVmMTE5MzJlM2VjZC4uM2QyY2E1YmJiZmFjNjRhZWI4
MTY4MGJhODc1ZjYwN2M4NGU0YmQxZCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdDIvRGF0YWJh
c2VQcm9jZXNzL0luZGV4ZWREQi9VbmlxdWVJREJEYXRhYmFzZS5jcHAKKysrIGIvU291cmNlL1dl
YktpdDIvRGF0YWJhc2VQcm9jZXNzL0luZGV4ZWREQi9VbmlxdWVJREJEYXRhYmFzZS5jcHAKQEAg
LTE0Nyw3ICsxNDcsNyBAQCB2b2lkIFVuaXF1ZUlEQkRhdGFiYXNlOjpzaHV0ZG93bkJhY2tpbmdT
dG9yZShVbmlxdWVJREJEYXRhYmFzZVNodXRkb3duVHlwZSB0eXBlLAogewogICAgIEFTU0VSVCgh
UnVuTG9vcDo6aXNNYWluKCkpOwogCi0gICAgbV9iYWNraW5nU3RvcmUuY2xlYXIoKTsKKyAgICBt
X2JhY2tpbmdTdG9yZSA9IG51bGxwdHI7CiAKICAgICBpZiAodHlwZSA9PSBVbmlxdWVJREJEYXRh
YmFzZVNodXRkb3duVHlwZTo6RGVsZXRlU2h1dGRvd24pIHsKICAgICAgICAgU3RyaW5nIGRiRmls
ZW5hbWUgPSBVbmlxdWVJREJEYXRhYmFzZTo6Y2FsY3VsYXRlQWJzb2x1dGVEYXRhYmFzZUZpbGVu
YW1lKGRhdGFiYXNlRGlyZWN0b3J5KTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL1BsdWdp
blByb2Nlc3MvUGx1Z2luQ29udHJvbGxlclByb3h5LmNwcCBiL1NvdXJjZS9XZWJLaXQyL1BsdWdp
blByb2Nlc3MvUGx1Z2luQ29udHJvbGxlclByb3h5LmNwcAppbmRleCA4OGQ2ZDE3N2RhODQ2MWVm
OGY0ZTMyM2NjNmM2MmZmOWRjZjRjMTgxLi40YTlmNDY3ZTg3OGRlODFjNjYxYmRlZDM1ZDc2MTY2
MzA2MTFjNDdjIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0Mi9QbHVnaW5Qcm9jZXNzL1BsdWdp
bkNvbnRyb2xsZXJQcm94eS5jcHAKKysrIGIvU291cmNlL1dlYktpdDIvUGx1Z2luUHJvY2Vzcy9Q
bHVnaW5Db250cm9sbGVyUHJveHkuY3BwCkBAIC0xMjYsNyArMTI2LDcgQEAgYm9vbCBQbHVnaW5D
b250cm9sbGVyUHJveHk6OmluaXRpYWxpemUoY29uc3QgUGx1Z2luQ3JlYXRpb25QYXJhbWV0ZXJz
JiBjcmVhdGlvblAKICAgICAgICAgLy8gdXNlZCBhcyBhbiBpZGVudGlmaWVyIHNvIGl0J3MgT0sg
dG8ganVzdCBnZXQgYSB3ZWFrIHJlZmVyZW5jZS4KICAgICAgICAgUGx1Z2luKiBwbHVnaW4gPSBt
X3BsdWdpbi5nZXQoKTsKICAgICAgICAgCi0gICAgICAgIG1fcGx1Z2luID0gMDsKKyAgICAgICAg
bV9wbHVnaW4gPSBudWxscHRyOwogCiAgICAgICAgIC8vIFRoaXMgd2lsbCBkZWxldGUgdGhlIHBs
dWctaW4gY29udHJvbGxlciBwcm94eSBvYmplY3QuCiAgICAgICAgIG1fY29ubmVjdGlvbi0+cmVt
b3ZlUGx1Z2luQ29udHJvbGxlclByb3h5KHRoaXMsIHBsdWdpbik7CkBAIC0xNTYsNyArMTU2LDcg
QEAgdm9pZCBQbHVnaW5Db250cm9sbGVyUHJveHk6OmRlc3Ryb3koKQogICAgIFBsdWdpbiogcGx1
Z2luID0gbV9wbHVnaW4uZ2V0KCk7CiAKICAgICBtX3BsdWdpbi0+ZGVzdHJveVBsdWdpbigpOwot
ICAgIG1fcGx1Z2luID0gMDsKKyAgICBtX3BsdWdpbiA9IG51bGxwdHI7CiAKICAgICBwbGF0Zm9y
bURlc3Ryb3koKTsKIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdDIvU2hhcmVkL0NoaWxkUHJv
Y2Vzc1Byb3h5LmNwcCBiL1NvdXJjZS9XZWJLaXQyL1NoYXJlZC9DaGlsZFByb2Nlc3NQcm94eS5j
cHAKaW5kZXggMzkzMDk4OTc5ZTY4ZWMxMjQ0MGUxMjVmY2MzYTI0MmIwN2U2ODk3ZC4uZDllMDdl
ZjRjN2Q2MmRlODZkZmM2OThmNzA1NGY4OGM0YTg1MzM4NSAxMDA2NDQKLS0tIGEvU291cmNlL1dl
YktpdDIvU2hhcmVkL0NoaWxkUHJvY2Vzc1Byb3h5LmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0Mi9T
aGFyZWQvQ2hpbGRQcm9jZXNzUHJveHkuY3BwCkBAIC00Miw3ICs0Miw3IEBAIENoaWxkUHJvY2Vz
c1Byb3h5Ojp+Q2hpbGRQcm9jZXNzUHJveHkoKQogCiAgICAgaWYgKG1fcHJvY2Vzc0xhdW5jaGVy
KSB7CiAgICAgICAgIG1fcHJvY2Vzc0xhdW5jaGVyLT5pbnZhbGlkYXRlKCk7Ci0gICAgICAgIG1f
cHJvY2Vzc0xhdW5jaGVyID0gMDsKKyAgICAgICAgbV9wcm9jZXNzTGF1bmNoZXIgPSBudWxscHRy
OwogICAgIH0KIH0KIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdDIvU2hhcmVkL0Nvb3JkaW5h
dGVkR3JhcGhpY3MvQ29vcmRpbmF0ZWRCYWNraW5nU3RvcmUuY3BwIGIvU291cmNlL1dlYktpdDIv
U2hhcmVkL0Nvb3JkaW5hdGVkR3JhcGhpY3MvQ29vcmRpbmF0ZWRCYWNraW5nU3RvcmUuY3BwCmlu
ZGV4IGI5YTA1ZjkwNmU5YzExZjAyN2VhMWExNTI1ZWU0M2VjZmQ1YzUzZDcuLmM2NmQyOGI3NTM5
NzRhMDU3NDBjYjZhZjY4ZTJjNDg0ODFkOTNjMzIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQy
L1NoYXJlZC9Db29yZGluYXRlZEdyYXBoaWNzL0Nvb3JkaW5hdGVkQmFja2luZ1N0b3JlLmNwcAor
KysgYi9Tb3VyY2UvV2ViS2l0Mi9TaGFyZWQvQ29vcmRpbmF0ZWRHcmFwaGljcy9Db29yZGluYXRl
ZEJhY2tpbmdTdG9yZS5jcHAKQEAgLTU1LDcgKzU1LDcgQEAgdm9pZCBDb29yZGluYXRlZEJhY2tp
bmdTdG9yZVRpbGU6OnN3YXBCdWZmZXJzKFRleHR1cmVNYXBwZXIqIHRleHR1cmVNYXBwZXIpCiAg
ICAgICAgIHRleHR1cmUtPnJlc2V0KG1fdGlsZVJlY3Quc2l6ZSgpLCBtX3N1cmZhY2UtPnN1cHBv
cnRzQWxwaGEoKSk7CiAKICAgICBtX3N1cmZhY2UtPmNvcHlUb1RleHR1cmUodGV4dHVyZSwgbV9z
b3VyY2VSZWN0LCBtX3N1cmZhY2VPZmZzZXQpOwotICAgIG1fc3VyZmFjZS5jbGVhcigpOworICAg
IG1fc3VyZmFjZSA9IG51bGxwdHI7CiB9CiAKIHZvaWQgQ29vcmRpbmF0ZWRCYWNraW5nU3RvcmVU
aWxlOjpzZXRCYWNrQnVmZmVyKGNvbnN0IEludFJlY3QmIHRpbGVSZWN0LCBjb25zdCBJbnRSZWN0
JiBzb3VyY2VSZWN0LCBQYXNzUmVmUHRyPENvb3JkaW5hdGVkU3VyZmFjZT4gYnVmZmVyLCBjb25z
dCBJbnRQb2ludCYgb2Zmc2V0KQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdDIvVUlQcm9jZXNz
L0FQSS9lZmwvRXdrVmlldy5jcHAgYi9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvQVBJL2VmbC9F
d2tWaWV3LmNwcAppbmRleCA3N2I1MDFhODRkZjY0M2UxYmRlZTdlNTc0NWZmMTk0NDE0MjVhZjU5
Li40NTg4NDY0NTc4NzM3NDczN2Q4M2JiYzQwNWVlOGM3YmZlNzQ1ZmM5IDEwMDY0NAotLS0gYS9T
b3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvQVBJL2VmbC9Fd2tWaWV3LmNwcAorKysgYi9Tb3VyY2Uv
V2ViS2l0Mi9VSVByb2Nlc3MvQVBJL2VmbC9Fd2tWaWV3LmNwcApAQCAtOTQwLDcgKzk0MCw3IEBA
IHZvaWQgRXdrVmlldzo6aGlkZUNvbnRleHRNZW51KCkKICAgICBpZiAoc2QtPmFwaS0+Y29udGV4
dF9tZW51X2hpZGUpCiAgICAgICAgIHNkLT5hcGktPmNvbnRleHRfbWVudV9oaWRlKHNkKTsKIAot
ICAgIG1fY29udGV4dE1lbnUuY2xlYXIoKTsKKyAgICBtX2NvbnRleHRNZW51ID0gbnVsbHB0cjsK
IH0KIAogdm9pZCBFd2tWaWV3OjpyZXF1ZXN0UG9wdXBNZW51KFdLUG9wdXBNZW51TGlzdGVuZXJS
ZWYgcG9wdXBNZW51TGlzdGVuZXIsIGNvbnN0IFdLUmVjdCYgcmVjdCwgV0tQb3B1cEl0ZW1UZXh0
RGlyZWN0aW9uIHRleHREaXJlY3Rpb24sIGRvdWJsZSBwYWdlU2NhbGVGYWN0b3IsIFdLQXJyYXlS
ZWYgaXRlbXMsIGludDMyX3Qgc2VsZWN0ZWRJbmRleCkKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJL
aXQyL1VJUHJvY2Vzcy9BUEkvbWFjL1dLVmlldy5tbSBiL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vz
cy9BUEkvbWFjL1dLVmlldy5tbQppbmRleCBkNTUxNWFlMWZjM2Y0Mjk5ZGExMjQzMWE0MWE3NDdl
MzhhM2U0NjU3Li5lOGQyNDQ5NThmMDlkZTVmZGVjOWUxYmMzYjE0YTI2MTAyMmUzMmE2IDEwMDY0
NAotLS0gYS9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvQVBJL21hYy9XS1ZpZXcubW0KKysrIGIv
U291cmNlL1dlYktpdDIvVUlQcm9jZXNzL0FQSS9tYWMvV0tWaWV3Lm1tCkBAIC0zNTIwLDcgKzM1
MjAsNyBAQCAtICh2b2lkKV9zZXRQcm9taXNlZERhdGFGb3JBdHRhY2htZW50OihOU1N0cmluZyAq
KWZpbGVuYW1lIHdpdGhFeHRlbnNpb246KE5TU3RyaQogCiAtICh2b2lkKXBhc3RlYm9hcmRDaGFu
Z2VkT3duZXI6KE5TUGFzdGVib2FyZCAqKXBhc3RlYm9hcmQKIHsKLSAgICBfZGF0YS0+X3Byb21p
c2VkSW1hZ2UgPSAwOworICAgIF9kYXRhLT5fcHJvbWlzZWRJbWFnZSA9IG51bGxwdHI7CiAgICAg
X2RhdGEtPl9wcm9taXNlZEZpbGVuYW1lID0gIiI7CiAgICAgX2RhdGEtPl9wcm9taXNlZFVSTCA9
ICIiOwogfQpAQCAtMzUzMSw3ICszNTMxLDcgQEAgLSAodm9pZClwYXN0ZWJvYXJkOihOU1Bhc3Rl
Ym9hcmQgKilwYXN0ZWJvYXJkIHByb3ZpZGVEYXRhRm9yVHlwZTooTlNTdHJpbmcgKil0eXAKIAog
ICAgIGlmIChbdHlwZSBpc0VxdWFsOk5TVElGRlBib2FyZFR5cGVdICYmIF9kYXRhLT5fcHJvbWlz
ZWRJbWFnZSkgewogICAgICAgICBbcGFzdGVib2FyZCBzZXREYXRhOihOU0RhdGEgKilfZGF0YS0+
X3Byb21pc2VkSW1hZ2UtPmdldFRJRkZSZXByZXNlbnRhdGlvbigpIGZvclR5cGU6TlNUSUZGUGJv
YXJkVHlwZV07Ci0gICAgICAgIF9kYXRhLT5fcHJvbWlzZWRJbWFnZSA9IDA7CisgICAgICAgIF9k
YXRhLT5fcHJvbWlzZWRJbWFnZSA9IG51bGxwdHI7CiAgICAgfQogfQogCmRpZmYgLS1naXQgYS9T
b3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvSW5zcGVjdG9yU2VydmVyL1dlYlNvY2tldFNlcnZlckNv
bm5lY3Rpb24uY3BwIGIvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL0luc3BlY3RvclNlcnZlci9X
ZWJTb2NrZXRTZXJ2ZXJDb25uZWN0aW9uLmNwcAppbmRleCA4MDk3YWMxYTRjYzFlMGRkYmZhZGZm
OTkwYzNlNGU1Mjc3YmZlNDA2Li45NGEyNGM5MGMzODY2YWY1OTdlYjBkNTkxZjM2OWY3MTBkZjYw
N2M4IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvSW5zcGVjdG9yU2VydmVy
L1dlYlNvY2tldFNlcnZlckNvbm5lY3Rpb24uY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQyL1VJUHJv
Y2Vzcy9JbnNwZWN0b3JTZXJ2ZXIvV2ViU29ja2V0U2VydmVyQ29ubmVjdGlvbi5jcHAKQEAgLTEy
Niw3ICsxMjYsNyBAQCB2b2lkIFdlYlNvY2tldFNlcnZlckNvbm5lY3Rpb246OnNlbmRSYXdEYXRh
KGNvbnN0IGNoYXIqIGRhdGEsIHNpemVfdCBsZW5ndGgpCiB2b2lkIFdlYlNvY2tldFNlcnZlckNv
bm5lY3Rpb246OmRpZENsb3NlU29ja2V0U3RyZWFtKFNvY2tldFN0cmVhbUhhbmRsZSopCiB7CiAg
ICAgLy8gRGVzdHJveSB0aGUgU29ja2V0U3RyZWFtSGFuZGxlIG5vdyB0byBwcmV2ZW50IGNsb3Np
bmcgYW4gYWxyZWFkeSBjbG9zZWQgc29ja2V0IGxhdGVyLgotICAgIG1fc29ja2V0LmNsZWFyKCk7
CisgICAgbV9zb2NrZXQgPSBudWxscHRyOwogCiAgICAgLy8gV2ViIFNvY2tldCBNb2RlLgogICAg
IGlmIChtX21vZGUgPT0gV2ViU29ja2V0KQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdDIvVUlQ
cm9jZXNzL05ldHdvcmsvQ3VzdG9tUHJvdG9jb2xzL21hYy9DdXN0b21Qcm90b2NvbE1hbmFnZXJQ
cm94eU1hYy5tbSBiL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9OZXR3b3JrL0N1c3RvbVByb3Rv
Y29scy9tYWMvQ3VzdG9tUHJvdG9jb2xNYW5hZ2VyUHJveHlNYWMubW0KaW5kZXggOTQyNTI5OWEy
ZWM3M2Y4YmUwZDE5OWExMTNhMmQ2YmJhOGI2MTk3NC4uNTEzYjFlMGNmZjk3ZmIxNmZlNGFiZTkx
ZWE4YmZhNGRkZWMxMmJhNCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL05l
dHdvcmsvQ3VzdG9tUHJvdG9jb2xzL21hYy9DdXN0b21Qcm90b2NvbE1hbmFnZXJQcm94eU1hYy5t
bQorKysgYi9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvTmV0d29yay9DdXN0b21Qcm90b2NvbHMv
bWFjL0N1c3RvbVByb3RvY29sTWFuYWdlclByb3h5TWFjLm1tCkBAIC03Niw3ICs3Niw3IEBAIC0g
KGlkKWluaXRXaXRoQ3VzdG9tUHJvdG9jb2xNYW5hZ2VyUHJveHk6KEN1c3RvbVByb3RvY29sTWFu
YWdlclByb3h5KiljdXN0b21Qcm90CiAKIC0gKHZvaWQpZGVhbGxvYwogewotICAgIF9jb25uZWN0
aW9uLmNsZWFyKCk7CisgICAgX2Nvbm5lY3Rpb24gPSBudWxscHRyOwogICAgIFtfdXJsQ29ubmVj
dGlvbiBjYW5jZWxdOwogICAgIFtfdXJsQ29ubmVjdGlvbiByZWxlYXNlXTsKICAgICBbc3VwZXIg
ZGVhbGxvY107CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvU3RhdGlzdGlj
c1JlcXVlc3QuY3BwIGIvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL1N0YXRpc3RpY3NSZXF1ZXN0
LmNwcAppbmRleCBjMGVjNDhlZTNiYjk2NTJkZDc4ODdlODRlODQ4ZjIyNGUyZmJmYjIwLi44MDZl
MTBmMDBmZjNmMTQ0ZjE3ZmI3YjAyNjhlMTFmYWNhMTZmMTU5IDEwMDY0NAotLS0gYS9Tb3VyY2Uv
V2ViS2l0Mi9VSVByb2Nlc3MvU3RhdGlzdGljc1JlcXVlc3QuY3BwCisrKyBiL1NvdXJjZS9XZWJL
aXQyL1VJUHJvY2Vzcy9TdGF0aXN0aWNzUmVxdWVzdC5jcHAKQEAgLTk1LDcgKzk1LDcgQEAgdm9p
ZCBTdGF0aXN0aWNzUmVxdWVzdDo6Y29tcGxldGVkUmVxdWVzdCh1aW50NjRfdCByZXF1ZXN0SUQs
IGNvbnN0IFN0YXRpc3RpY3NEYXQKIAogICAgIGlmIChtX291dHN0YW5kaW5nUmVxdWVzdHMuaXNF
bXB0eSgpKSB7CiAgICAgICAgIG1fY2FsbGJhY2stPnBlcmZvcm1DYWxsYmFja1dpdGhSZXR1cm5W
YWx1ZShtX3Jlc3BvbnNlRGljdGlvbmFyeS5nZXQoKSk7Ci0gICAgICAgIG1fY2FsbGJhY2sgPSAw
OworICAgICAgICBtX2NhbGxiYWNrID0gbnVsbHB0cjsKICAgICB9CiB9CiAKZGlmZiAtLWdpdCBh
L1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9XZWJGcmFtZUxpc3RlbmVyUHJveHkuY3BwIGIvU291
cmNlL1dlYktpdDIvVUlQcm9jZXNzL1dlYkZyYW1lTGlzdGVuZXJQcm94eS5jcHAKaW5kZXggZTgw
MTBlNWI2MjY5MDUxYjIzNWUwYmMzYTIzZjcwZGU5MGY3MjM0Zi4uNDA2MWRkNTI5MTM0ZWQ4ZDhk
MjVkNjhkMGNjOWM1ZTk2ZTg2OTY2MCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdDIvVUlQcm9j
ZXNzL1dlYkZyYW1lTGlzdGVuZXJQcm94eS5jcHAKKysrIGIvU291cmNlL1dlYktpdDIvVUlQcm9j
ZXNzL1dlYkZyYW1lTGlzdGVuZXJQcm94eS5jcHAKQEAgLTQyLDcgKzQyLDcgQEAgV2ViRnJhbWVM
aXN0ZW5lclByb3h5Ojp+V2ViRnJhbWVMaXN0ZW5lclByb3h5KCkKIAogdm9pZCBXZWJGcmFtZUxp
c3RlbmVyUHJveHk6OmludmFsaWRhdGUoKQogewotICAgIG1fZnJhbWUgPSAwOworICAgIG1fZnJh
bWUgPSBudWxscHRyOwogfQogCiB2b2lkIFdlYkZyYW1lTGlzdGVuZXJQcm94eTo6cmVjZWl2ZWRQ
b2xpY3lEZWNpc2lvbihXZWJDb3JlOjpQb2xpY3lBY3Rpb24gYWN0aW9uKQpAQCAtNTEsNyArNTEs
NyBAQCB2b2lkIFdlYkZyYW1lTGlzdGVuZXJQcm94eTo6cmVjZWl2ZWRQb2xpY3lEZWNpc2lvbihX
ZWJDb3JlOjpQb2xpY3lBY3Rpb24gYWN0aW9uKQogICAgICAgICByZXR1cm47CiAKICAgICBtX2Zy
YW1lLT5yZWNlaXZlZFBvbGljeURlY2lzaW9uKGFjdGlvbiwgbV9saXN0ZW5lcklELCBtX25hdmln
YXRpb24uZ2V0KCkpOwotICAgIG1fZnJhbWUgPSAwOworICAgIG1fZnJhbWUgPSBudWxscHRyOwog
fQogCiB9IC8vIG5hbWVzcGFjZSBXZWJLaXQKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL1VJ
UHJvY2Vzcy9XZWJGcmFtZVByb3h5LmNwcCBiL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9XZWJG
cmFtZVByb3h5LmNwcAppbmRleCA0MWJiOTFhMTM2MWI4ODRhMjhkMTk0YzkyYjE3NjI4YmQ0MDZk
MjE0Li42OTI4YWZiYzcwMmM3MGJkZjA5NzYzZDczZTA2ZTYyY2IzY2EzNDIxIDEwMDY0NAotLS0g
YS9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvV2ViRnJhbWVQcm94eS5jcHAKKysrIGIvU291cmNl
L1dlYktpdDIvVUlQcm9jZXNzL1dlYkZyYW1lUHJveHkuY3BwCkBAIC01NywxMSArNTcsMTEgQEAg
V2ViRnJhbWVQcm94eTo6fldlYkZyYW1lUHJveHkoKQogCiB2b2lkIFdlYkZyYW1lUHJveHk6Ondl
YlByb2Nlc3NXaWxsU2h1dERvd24oKQogewotICAgIG1fcGFnZSA9IDA7CisgICAgbV9wYWdlID0g
bnVsbHB0cjsKIAogICAgIGlmIChtX2FjdGl2ZUxpc3RlbmVyKSB7CiAgICAgICAgIG1fYWN0aXZl
TGlzdGVuZXItPmludmFsaWRhdGUoKTsKLSAgICAgICAgbV9hY3RpdmVMaXN0ZW5lciA9IDA7Cisg
ICAgICAgIG1fYWN0aXZlTGlzdGVuZXIgPSBudWxscHRyOwogICAgIH0KIH0KIApkaWZmIC0tZ2l0
IGEvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL1dlYk9wZW5QYW5lbFJlc3VsdExpc3RlbmVyUHJv
eHkuY3BwIGIvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL1dlYk9wZW5QYW5lbFJlc3VsdExpc3Rl
bmVyUHJveHkuY3BwCmluZGV4IGRkNjY2NzExMThkMjQ4Zjg2MjFjMmI5ODhlZTM4YjFjZmIwM2Y5
NjAuLmEzNzdlNGFmMDhlMjk3ZjNjMmZhNzQ2MDZjOWU1OTQ4YWU3ZDQyZTggMTAwNjQ0Ci0tLSBh
L1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9XZWJPcGVuUGFuZWxSZXN1bHRMaXN0ZW5lclByb3h5
LmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvV2ViT3BlblBhbmVsUmVzdWx0TGlz
dGVuZXJQcm94eS5jcHAKQEAgLTg5LDcgKzg5LDcgQEAgdm9pZCBXZWJPcGVuUGFuZWxSZXN1bHRM
aXN0ZW5lclByb3h5OjpjYW5jZWwoKQogCiB2b2lkIFdlYk9wZW5QYW5lbFJlc3VsdExpc3RlbmVy
UHJveHk6OmludmFsaWRhdGUoKQogewotICAgIG1fcGFnZSA9IDA7CisgICAgbV9wYWdlID0gbnVs
bHB0cjsKIH0KIAogfSAvLyBuYW1lc3BhY2UgV2ViS2l0CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2Vi
S2l0Mi9VSVByb2Nlc3MvV2ViUGFnZVByb3h5LmNwcCBiL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vz
cy9XZWJQYWdlUHJveHkuY3BwCmluZGV4IGJkMTNhMzNiMTY5MjRmNzQzYWQ2ODZlN2M4ZjI0NjAw
MWFhZTNkOGMuLjc5ZDIzZTA1ODRmMjk0MDM0OTBiNjdlMDA5MWIwZWFkMzdmYTM1YWYgMTAwNjQ0
Ci0tLSBhL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9XZWJQYWdlUHJveHkuY3BwCisrKyBiL1Nv
dXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9XZWJQYWdlUHJveHkuY3BwCkBAIC0zNzA2LDcgKzM3MDYs
NyBAQCB2b2lkIFdlYlBhZ2VQcm94eTo6cnVuT3BlblBhbmVsKHVpbnQ2NF90IGZyYW1lSUQsIGNv
bnN0IEZpbGVDaG9vc2VyU2V0dGluZ3MmIHNldAogewogICAgIGlmIChtX29wZW5QYW5lbFJlc3Vs
dExpc3RlbmVyKSB7CiAgICAgICAgIG1fb3BlblBhbmVsUmVzdWx0TGlzdGVuZXItPmludmFsaWRh
dGUoKTsKLSAgICAgICAgbV9vcGVuUGFuZWxSZXN1bHRMaXN0ZW5lciA9IDA7CisgICAgICAgIG1f
b3BlblBhbmVsUmVzdWx0TGlzdGVuZXIgPSBudWxscHRyOwogICAgIH0KIAogICAgIFdlYkZyYW1l
UHJveHkqIGZyYW1lID0gbV9wcm9jZXNzLT53ZWJGcmFtZShmcmFtZUlEKTsKQEAgLTM4MDgsNyAr
MzgwOCw3IEBAIHZvaWQgV2ViUGFnZVByb3h5OjpzaG93Q29sb3JQaWNrZXIoY29uc3QgV2ViQ29y
ZTo6Q29sb3ImIGluaXRpYWxDb2xvciwgY29uc3QgSW50CiAjaWYgRU5BQkxFKElOUFVUX1RZUEVf
Q09MT1JfUE9QT1ZFUikKICAgICAvLyBBIG5ldyBwb3BvdmVyIGNvbG9yIHdlbGwgbmVlZHMgdG8g
YmUgY3JlYXRlZCAoYW5kIHRoZSBwcmV2aW91cyBvbmUgZGVzdHJveWVkKSBmb3IKICAgICAvLyBl
YWNoIGFjdGl2YXRpb24gb2YgYSBjb2xvciBlbGVtZW50LgotICAgIG1fY29sb3JQaWNrZXIgPSAw
OworICAgIG1fY29sb3JQaWNrZXIgPSBudWxscHRyOwogI2VuZGlmCiAgICAgaWYgKCFtX2NvbG9y
UGlja2VyKQogICAgICAgICBtX2NvbG9yUGlja2VyID0gbV9wYWdlQ2xpZW50LmNyZWF0ZUNvbG9y
UGlja2VyKHRoaXMsIGluaXRpYWxDb2xvciwgZWxlbWVudFJlY3QpOwpAQCAtNDMwMCw3ICs0MzAw
LDcgQEAgdm9pZCBXZWJQYWdlUHJveHk6OmRpZENob29zZUZpbGVzRm9yT3BlblBhbmVsKGNvbnN0
IFZlY3RvcjxTdHJpbmc+JiBmaWxlVVJMcykKICAgICBtX3Byb2Nlc3MtPnNlbmQoTWVzc2FnZXM6
OldlYlBhZ2U6OkRpZENob29zZUZpbGVzRm9yT3BlblBhbmVsKGZpbGVVUkxzKSwgbV9wYWdlSUQp
OwogCiAgICAgbV9vcGVuUGFuZWxSZXN1bHRMaXN0ZW5lci0+aW52YWxpZGF0ZSgpOwotICAgIG1f
b3BlblBhbmVsUmVzdWx0TGlzdGVuZXIgPSAwOworICAgIG1fb3BlblBhbmVsUmVzdWx0TGlzdGVu
ZXIgPSBudWxscHRyOwogfQogCiB2b2lkIFdlYlBhZ2VQcm94eTo6ZGlkQ2FuY2VsRm9yT3BlblBh
bmVsKCkKQEAgLTQzMTEsNyArNDMxMSw3IEBAIHZvaWQgV2ViUGFnZVByb3h5OjpkaWRDYW5jZWxG
b3JPcGVuUGFuZWwoKQogICAgIG1fcHJvY2Vzcy0+c2VuZChNZXNzYWdlczo6V2ViUGFnZTo6RGlk
Q2FuY2VsRm9yT3BlblBhbmVsKCksIG1fcGFnZUlEKTsKICAgICAKICAgICBtX29wZW5QYW5lbFJl
c3VsdExpc3RlbmVyLT5pbnZhbGlkYXRlKCk7Ci0gICAgbV9vcGVuUGFuZWxSZXN1bHRMaXN0ZW5l
ciA9IDA7CisgICAgbV9vcGVuUGFuZWxSZXN1bHRMaXN0ZW5lciA9IG51bGxwdHI7CiB9CiAKIHZv
aWQgV2ViUGFnZVByb3h5OjphZHZhbmNlVG9OZXh0TWlzc3BlbGxpbmcoYm9vbCBzdGFydEJlZm9y
ZVNlbGVjdGlvbikKQEAgLTQ3NjcsNyArNDc2Nyw3IEBAIHZvaWQgV2ViUGFnZVByb3h5Ojpwcmlu
dEZpbmlzaGVkQ2FsbGJhY2soY29uc3QgUmVzb3VyY2VFcnJvciYgcHJpbnRFcnJvciwgdWludDY0
CiB2b2lkIFdlYlBhZ2VQcm94eTo6Zm9jdXNlZEZyYW1lQ2hhbmdlZCh1aW50NjRfdCBmcmFtZUlE
KQogewogICAgIGlmICghZnJhbWVJRCkgewotICAgICAgICBtX2ZvY3VzZWRGcmFtZSA9IDA7Cisg
ICAgICAgIG1fZm9jdXNlZEZyYW1lID0gbnVsbHB0cjsKICAgICAgICAgcmV0dXJuOwogICAgIH0K
IApAQCAtNDc4MCw3ICs0NzgwLDcgQEAgdm9pZCBXZWJQYWdlUHJveHk6OmZvY3VzZWRGcmFtZUNo
YW5nZWQodWludDY0X3QgZnJhbWVJRCkKIHZvaWQgV2ViUGFnZVByb3h5OjpmcmFtZVNldExhcmdl
c3RGcmFtZUNoYW5nZWQodWludDY0X3QgZnJhbWVJRCkKIHsKICAgICBpZiAoIWZyYW1lSUQpIHsK
LSAgICAgICAgbV9mcmFtZVNldExhcmdlc3RGcmFtZSA9IDA7CisgICAgICAgIG1fZnJhbWVTZXRM
YXJnZXN0RnJhbWUgPSBudWxscHRyOwogICAgICAgICByZXR1cm47CiAgICAgfQogCmRpZmYgLS1n
aXQgYS9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvaW9zL1dLR2VvbG9jYXRpb25Qcm92aWRlcklP
Uy5tbSBiL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9pb3MvV0tHZW9sb2NhdGlvblByb3ZpZGVy
SU9TLm1tCmluZGV4IGJiNmJiNjA1NGY3Zjg2YjljNjNkNjg1ZTY1ZWY3OWY5MjFhM2FiMWUuLmJk
ZDExNGEyNDQ4ZGZhYWE5NzE5MWE2MjVkN2NhMWJiMjY3NzYwMjkgMTAwNjQ0Ci0tLSBhL1NvdXJj
ZS9XZWJLaXQyL1VJUHJvY2Vzcy9pb3MvV0tHZW9sb2NhdGlvblByb3ZpZGVySU9TLm1tCisrKyBi
L1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9pb3MvV0tHZW9sb2NhdGlvblByb3ZpZGVySU9TLm1t
CkBAIC0xMTgsNyArMTE4LDcgQEAgLSh2b2lkKV9zdG9wVXBkYXRpbmcKIHsKICAgICBfaXNXZWJD
b3JlR2VvbG9jYXRpb25BY3RpdmUgPSBOTzsKICAgICBbX2NvcmVMb2NhdGlvblByb3ZpZGVyIHN0
b3BdOwotICAgIF9sYXN0QWN0aXZlUG9zaXRpb24uY2xlYXIoKTsKKyAgICBfbGFzdEFjdGl2ZVBv
c2l0aW9uID0gbnVsbHB0cjsKIH0KIAogLSh2b2lkKV9zZXRFbmFibGVIaWdoQWNjdXJhY3k6KEJP
T0wpZW5hYmxlSGlnaEFjY3VyYWN5CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9j
ZXNzL0luamVjdGVkQnVuZGxlL21hYy9JbmplY3RlZEJ1bmRsZU1hYy5tbSBiL1NvdXJjZS9XZWJL
aXQyL1dlYlByb2Nlc3MvSW5qZWN0ZWRCdW5kbGUvbWFjL0luamVjdGVkQnVuZGxlTWFjLm1tCmlu
ZGV4IDRlODZhZjE5ZDVjOWFjZTE2MmQ0MGUyNmQwMDQyNzkwZWQxYzQ4YTIuLjI4NTc1ZWY3NDli
MmRkYjNkOTBmZTI5NGRiYTM3MTJlNTU0ZTg4ZDkgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQy
L1dlYlByb2Nlc3MvSW5qZWN0ZWRCdW5kbGUvbWFjL0luamVjdGVkQnVuZGxlTWFjLm1tCisrKyBi
L1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvSW5qZWN0ZWRCdW5kbGUvbWFjL0luamVjdGVkQnVu
ZGxlTWFjLm1tCkBAIC01NSw3ICs1NSw3IEBAIGJvb2wgSW5qZWN0ZWRCdW5kbGU6OmluaXRpYWxp
emUoY29uc3QgV2ViUHJvY2Vzc0NyZWF0aW9uUGFyYW1ldGVycyYgcGFyYW1ldGVycywKICAgICAg
ICAgICAgIHJldHVybiBmYWxzZTsKICAgICAgICAgfQogCi0gICAgICAgIG1fc2FuZGJveEV4dGVu
c2lvbiA9IDA7CisgICAgICAgIG1fc2FuZGJveEV4dGVuc2lvbiA9IG51bGxwdHI7CiAgICAgfQog
ICAgIAogICAgIFJldGFpblB0cjxDRlN0cmluZ1JlZj4gaW5qZWN0ZWRCdW5kbGVQYXRoU3RyID0g
bV9wYXRoLmNyZWF0ZUNGU3RyaW5nKCk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9XZWJQ
cm9jZXNzL05ldHdvcmsvV2ViUmVzb3VyY2VMb2FkZXIuY3BwIGIvU291cmNlL1dlYktpdDIvV2Vi
UHJvY2Vzcy9OZXR3b3JrL1dlYlJlc291cmNlTG9hZGVyLmNwcAppbmRleCA4M2Q2Y2E4YWFhZmY2
MjU4MzJlMzgyMDAxY2Y2YjAwODA2MmQ2NDllLi4yNTM5N2MzYmM4ZTY3MWNiZDU1MDIwZTNjZDY5
NzNjNmJhMGEyOWU3IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL05ldHdv
cmsvV2ViUmVzb3VyY2VMb2FkZXIuY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3Mv
TmV0d29yay9XZWJSZXNvdXJjZUxvYWRlci5jcHAKQEAgLTc2LDcgKzc2LDcgQEAgdm9pZCBXZWJS
ZXNvdXJjZUxvYWRlcjo6Y2FuY2VsUmVzb3VyY2VMb2FkZXIoKQogCiB2b2lkIFdlYlJlc291cmNl
TG9hZGVyOjpkZXRhY2hGcm9tQ29yZUxvYWRlcigpCiB7Ci0gICAgbV9jb3JlTG9hZGVyID0gMDsK
KyAgICBtX2NvcmVMb2FkZXIgPSBudWxscHRyOwogfQogCiB2b2lkIFdlYlJlc291cmNlTG9hZGVy
Ojp3aWxsU2VuZFJlcXVlc3QoY29uc3QgUmVzb3VyY2VSZXF1ZXN0JiBwcm9wb3NlZFJlcXVlc3Qs
IGNvbnN0IFJlc291cmNlUmVzcG9uc2UmIHJlZGlyZWN0UmVzcG9uc2UpCmRpZmYgLS1naXQgYS9T
b3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL1BsdWdpbnMvTmV0c2NhcGUvTmV0c2NhcGVQbHVnaW4u
Y3BwIGIvU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9QbHVnaW5zL05ldHNjYXBlL05ldHNjYXBl
UGx1Z2luLmNwcAppbmRleCAwYTdiNzRkZTVjNWM2NjJiZDdkMTE4NGM0NjNmYzk2MjZhYjQxZWNk
Li5hMzZlNGI0MTM0NWRlYjAxMzUwYTI0OTBlNzA1ODA4Zjk1MzQ5MDY3IDEwMDY0NAotLS0gYS9T
b3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL1BsdWdpbnMvTmV0c2NhcGUvTmV0c2NhcGVQbHVnaW4u
Y3BwCisrKyBiL1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvUGx1Z2lucy9OZXRzY2FwZS9OZXRz
Y2FwZVBsdWdpbi5jcHAKQEAgLTI3Nyw3ICsyNzcsNyBAQCB2b2lkIE5ldHNjYXBlUGx1Z2luOjpj
YW5jZWxTdHJlYW1Mb2FkKE5ldHNjYXBlUGx1Z2luU3RyZWFtKiBwbHVnaW5TdHJlYW0pCiB2b2lk
IE5ldHNjYXBlUGx1Z2luOjpyZW1vdmVQbHVnaW5TdHJlYW0oTmV0c2NhcGVQbHVnaW5TdHJlYW0q
IHBsdWdpblN0cmVhbSkKIHsKICAgICBpZiAocGx1Z2luU3RyZWFtID09IG1fbWFudWFsU3RyZWFt
KSB7Ci0gICAgICAgIG1fbWFudWFsU3RyZWFtID0gMDsKKyAgICAgICAgbV9tYW51YWxTdHJlYW0g
PSBudWxscHRyOwogICAgICAgICByZXR1cm47CiAgICAgfQogCmRpZmYgLS1naXQgYS9Tb3VyY2Uv
V2ViS2l0Mi9XZWJQcm9jZXNzL1BsdWdpbnMvUERGL1BERlBsdWdpbi5tbSBiL1NvdXJjZS9XZWJL
aXQyL1dlYlByb2Nlc3MvUGx1Z2lucy9QREYvUERGUGx1Z2luLm1tCmluZGV4IGRjY2M1NDEwNWZi
YTg3MTllNWZjMzhkZjRjNTAyZGRkMjcyOWVlY2QuLjQ3MDYxZDZkNjE0ZDI2MWQ3MzM5ZjU3MGZl
NmI1ODAwMDk2ZjNlOTQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvUGx1
Z2lucy9QREYvUERGUGx1Z2luLm1tCisrKyBiL1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvUGx1
Z2lucy9QREYvUERGUGx1Z2luLm1tCkBAIC0xMTAzLDggKzExMDMsOCBAQCB2b2lkIFBERlBsdWdp
bjo6ZGVzdHJveSgpCiAgICAgICAgICAgICBmcmFtZVZpZXctPnJlbW92ZVNjcm9sbGFibGVBcmVh
KHRoaXMpOwogICAgIH0KIAotICAgIG1fYWN0aXZlQW5ub3RhdGlvbiA9IDA7Ci0gICAgbV9hbm5v
dGF0aW9uQ29udGFpbmVyID0gMDsKKyAgICBtX2FjdGl2ZUFubm90YXRpb24gPSBudWxscHRyOwor
ICAgIG1fYW5ub3RhdGlvbkNvbnRhaW5lciA9IG51bGxwdHI7CiAKICAgICBkZXN0cm95U2Nyb2xs
YmFyKEhvcml6b250YWxTY3JvbGxiYXIpOwogICAgIGRlc3Ryb3lTY3JvbGxiYXIoVmVydGljYWxT
Y3JvbGxiYXIpOwpAQCAtMTYwNCwxNCArMTYwNCwxNCBAQCB2b2lkIFBERlBsdWdpbjo6c2V0QWN0
aXZlQW5ub3RhdGlvbihQREZBbm5vdGF0aW9uICphbm5vdGF0aW9uKQogCiAgICAgaWYgKGFubm90
YXRpb24pIHsKICAgICAgICAgaWYgKFthbm5vdGF0aW9uIGlzS2luZE9mQ2xhc3M6cGRmQW5ub3Rh
dGlvblRleHRXaWRnZXRDbGFzcygpXSAmJiBzdGF0aWNfY2FzdDxQREZBbm5vdGF0aW9uVGV4dFdp
ZGdldCAqPihhbm5vdGF0aW9uKS5pc1JlYWRPbmx5KSB7Ci0gICAgICAgICAgICBtX2FjdGl2ZUFu
bm90YXRpb24gPSAwOworICAgICAgICAgICAgbV9hY3RpdmVBbm5vdGF0aW9uID0gbnVsbHB0cjsK
ICAgICAgICAgICAgIHJldHVybjsKICAgICAgICAgfQogCiAgICAgICAgIG1fYWN0aXZlQW5ub3Rh
dGlvbiA9IFBERlBsdWdpbkFubm90YXRpb246OmNyZWF0ZShhbm5vdGF0aW9uLCBtX3BkZkxheWVy
Q29udHJvbGxlci5nZXQoKSwgdGhpcyk7CiAgICAgICAgIG1fYWN0aXZlQW5ub3RhdGlvbi0+YXR0
YWNoKG1fYW5ub3RhdGlvbkNvbnRhaW5lci5nZXQoKSk7CiAgICAgfSBlbHNlCi0gICAgICAgIG1f
YWN0aXZlQW5ub3RhdGlvbiA9IDA7CisgICAgICAgIG1fYWN0aXZlQW5ub3RhdGlvbiA9IG51bGxw
dHI7CiB9CiAKIGJvb2wgUERGUGx1Z2luOjpzdXBwb3J0c0Zvcm1zKCkKZGlmZiAtLWdpdCBhL1Nv
dXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvUGx1Z2lucy9QbHVnaW5WaWV3LmNwcCBiL1NvdXJjZS9X
ZWJLaXQyL1dlYlByb2Nlc3MvUGx1Z2lucy9QbHVnaW5WaWV3LmNwcAppbmRleCA2YTgzM2YxMzEx
MTM1MzA3NmFjYWUxMjgxNDMzYjJmNTExOWJiMjQ2Li4yYTBmZDk3MzEzMGIyMTI2NzhiMDU1NGM3
ZDhiZWI1NWM2ODU5NjhkIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL1Bs
dWdpbnMvUGx1Z2luVmlldy5jcHAKKysrIGIvU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9QbHVn
aW5zL1BsdWdpblZpZXcuY3BwCkBAIC0xNjYsNyArMTY2LDcgQEAgdm9pZCBQbHVnaW5WaWV3OjpT
dHJlYW06OmNhbmNlbCgpCiAKICAgICBtX3N0cmVhbVdhc0NhbmNlbGxlZCA9IHRydWU7CiAgICAg
bV9sb2FkZXItPmNhbmNlbChtX2xvYWRlci0+Y2FuY2VsbGVkRXJyb3IoKSk7Ci0gICAgbV9sb2Fk
ZXIgPSAwOworICAgIG1fbG9hZGVyID0gbnVsbHB0cjsKIH0KIAogc3RhdGljIFN0cmluZyBidWls
ZEhUVFBIZWFkZXJzKGNvbnN0IFJlc291cmNlUmVzcG9uc2UmIHJlc3BvbnNlLCBsb25nIGxvbmcm
IGV4cGVjdGVkQ29udGVudExlbmd0aCkKQEAgLTYwNCw3ICs2MDQsNyBAQCB2b2lkIFBsdWdpblZp
ZXc6OmluaXRpYWxpemVQbHVnaW4oKQogCiB2b2lkIFBsdWdpblZpZXc6OmRpZEZhaWxUb0luaXRp
YWxpemVQbHVnaW4oKQogewotICAgIG1fcGx1Z2luID0gMDsKKyAgICBtX3BsdWdpbiA9IG51bGxw
dHI7CiAKICNpZiBFTkFCTEUoTkVUU0NBUEVfUExVR0lOX0FQSSkKICAgICBTdHJpbmcgZnJhbWVV
UkxTdHJpbmcgPSBmcmFtZSgpLT5sb2FkZXIoKS5kb2N1bWVudExvYWRlcigpLT5yZXNwb25zZVVS
TCgpLnN0cmluZygpOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9XZWJQ
YWdlL1dlYlBhZ2UuY3BwIGIvU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9XZWJQYWdlL1dlYlBh
Z2UuY3BwCmluZGV4IDE1NTRkYmNmNzQ5NmM3NmQ5NzIwMzNiOGQzOTEzNjRhYjZmZTFlYjguLjdi
OGE5MjYwMDdkZDE4MDc4ODVkYTI4MTE2YzgyYjk4YjMxODMyNjQgMTAwNjQ0Ci0tLSBhL1NvdXJj
ZS9XZWJLaXQyL1dlYlByb2Nlc3MvV2ViUGFnZS9XZWJQYWdlLmNwcAorKysgYi9Tb3VyY2UvV2Vi
S2l0Mi9XZWJQcm9jZXNzL1dlYlBhZ2UvV2ViUGFnZS5jcHAKQEAgLTkzMCwyMyArOTMwLDIzIEBA
IHZvaWQgV2ViUGFnZTo6Y2xvc2UoKQogICAgIH0KIAogI2lmIEVOQUJMRShGVUxMU0NSRUVOX0FQ
SSkKLSAgICBtX2Z1bGxTY3JlZW5NYW5hZ2VyID0gMDsKKyAgICBtX2Z1bGxTY3JlZW5NYW5hZ2Vy
ID0gbnVsbHB0cjsKICNlbmRpZgogCiAgICAgaWYgKG1fYWN0aXZlUG9wdXBNZW51KSB7CiAgICAg
ICAgIG1fYWN0aXZlUG9wdXBNZW51LT5kaXNjb25uZWN0RnJvbVBhZ2UoKTsKLSAgICAgICAgbV9h
Y3RpdmVQb3B1cE1lbnUgPSAwOworICAgICAgICBtX2FjdGl2ZVBvcHVwTWVudSA9IG51bGxwdHI7
CiAgICAgfQogCiAgICAgaWYgKG1fYWN0aXZlT3BlblBhbmVsUmVzdWx0TGlzdGVuZXIpIHsKICAg
ICAgICAgbV9hY3RpdmVPcGVuUGFuZWxSZXN1bHRMaXN0ZW5lci0+ZGlzY29ubmVjdEZyb21QYWdl
KCk7Ci0gICAgICAgIG1fYWN0aXZlT3BlblBhbmVsUmVzdWx0TGlzdGVuZXIgPSAwOworICAgICAg
ICBtX2FjdGl2ZU9wZW5QYW5lbFJlc3VsdExpc3RlbmVyID0gbnVsbHB0cjsKICAgICB9CiAKICNp
ZiBFTkFCTEUoSU5QVVRfVFlQRV9DT0xPUikKICAgICBpZiAobV9hY3RpdmVDb2xvckNob29zZXIp
IHsKICAgICAgICAgbV9hY3RpdmVDb2xvckNob29zZXItPmRpc2Nvbm5lY3RGcm9tUGFnZSgpOwot
ICAgICAgICBtX2FjdGl2ZUNvbG9yQ2hvb3NlciA9IDA7CisgICAgICAgIG1fYWN0aXZlQ29sb3JD
aG9vc2VyID0gbnVsbHB0cjsKICAgICB9CiAjZW5kaWYKIApAQCAtMzI3MCw3ICszMjcwLDcgQEAg
dm9pZCBXZWJQYWdlOjpjb3VudFN0cmluZ01hdGNoZXMoY29uc3QgU3RyaW5nJiBzdHJpbmcsIHVp
bnQzMl90IG9wdGlvbnMsIHVpbnQzMl8KIHZvaWQgV2ViUGFnZTo6ZGlkQ2hhbmdlU2VsZWN0ZWRJ
bmRleEZvckFjdGl2ZVBvcHVwTWVudShpbnQzMl90IG5ld0luZGV4KQogewogICAgIGNoYW5nZVNl
bGVjdGVkSW5kZXgobmV3SW5kZXgpOwotICAgIG1fYWN0aXZlUG9wdXBNZW51ID0gMDsKKyAgICBt
X2FjdGl2ZVBvcHVwTWVudSA9IG51bGxwdHI7CiB9CiAKIHZvaWQgV2ViUGFnZTo6Y2hhbmdlU2Vs
ZWN0ZWRJbmRleChpbnQzMl90IGluZGV4KQpAQCAtMzMwNiwxMiArMzMwNiwxMiBAQCB2b2lkIFdl
YlBhZ2U6OmRpZENob29zZUZpbGVzRm9yT3BlblBhbmVsKGNvbnN0IFZlY3RvcjxTdHJpbmc+JiBm
aWxlcykKICAgICAgICAgcmV0dXJuOwogCiAgICAgbV9hY3RpdmVPcGVuUGFuZWxSZXN1bHRMaXN0
ZW5lci0+ZGlkQ2hvb3NlRmlsZXMoZmlsZXMpOwotICAgIG1fYWN0aXZlT3BlblBhbmVsUmVzdWx0
TGlzdGVuZXIgPSAwOworICAgIG1fYWN0aXZlT3BlblBhbmVsUmVzdWx0TGlzdGVuZXIgPSBudWxs
cHRyOwogfQogCiB2b2lkIFdlYlBhZ2U6OmRpZENhbmNlbEZvck9wZW5QYW5lbCgpCiB7Ci0gICAg
bV9hY3RpdmVPcGVuUGFuZWxSZXN1bHRMaXN0ZW5lciA9IDA7CisgICAgbV9hY3RpdmVPcGVuUGFu
ZWxSZXN1bHRMaXN0ZW5lciA9IG51bGxwdHI7CiB9CiAKICNpZiBFTkFCTEUoU0FOREJPWF9FWFRF
TlNJT05TKQpAQCAtMzQxNSw3ICszNDE1LDcgQEAgdm9pZCBXZWJQYWdlOjpkaWRTZWxlY3RJdGVt
RnJvbUFjdGl2ZUNvbnRleHRNZW51KGNvbnN0IFdlYkNvbnRleHRNZW51SXRlbURhdGEmIGkKICAg
ICAgICAgcmV0dXJuOwogCiAgICAgbV9jb250ZXh0TWVudS0+aXRlbVNlbGVjdGVkKGl0ZW0pOwot
ICAgIG1fY29udGV4dE1lbnUgPSAwOworICAgIG1fY29udGV4dE1lbnUgPSBudWxscHRyOwogfQog
I2VuZGlmCiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvV2ViUGFnZS9p
b3MvV2ViUGFnZUlPUy5tbSBiL1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvV2ViUGFnZS9pb3Mv
V2ViUGFnZUlPUy5tbQppbmRleCAyM2RlODNlZmFkNjg5NDYyNDc1NjBmODExZDA4OGNkMjk3NTJh
NmE3Li45ZjRjZWM3MjMxZGQ0NjI3MTU2M2Q1MmI2YTRlMmI5ZDMyNzg4N2M2IDEwMDY0NAotLS0g
YS9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL1dlYlBhZ2UvaW9zL1dlYlBhZ2VJT1MubW0KKysr
IGIvU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9XZWJQYWdlL2lvcy9XZWJQYWdlSU9TLm1tCkBA
IC0xOTc4LDcgKzE5NzgsNyBAQCB2b2lkIFdlYlBhZ2U6OnN5bmNBcHBseUF1dG9jb3JyZWN0aW9u
KGNvbnN0IFN0cmluZyYgY29ycmVjdGlvbiwgY29uc3QgU3RyaW5nJiBvcgogICAgICAgICB3aGls
ZSAodGV4dEZvclJhbmdlLmxlbmd0aCgpICYmIHRleHRGb3JSYW5nZS5sZW5ndGgoKSA+IG9yaWdp
bmFsVGV4dC5sZW5ndGgoKSAmJiBsb29wQ291bnQgPCBtYXhQb3NpdGlvbnNBdHRlbXB0cykgewog
ICAgICAgICAgICAgcG9zaXRpb24gPSBwb3NpdGlvbi5uZXh0KCk7CiAgICAgICAgICAgICBpZiAo
cG9zaXRpb24uaXNOb3ROdWxsKCkgJiYgcG9zaXRpb24gPj0gZnJhbWUuc2VsZWN0aW9uKCkuc2Vs
ZWN0aW9uKCkuc3RhcnQoKSkKLSAgICAgICAgICAgICAgICByYW5nZSA9IE5VTEw7CisgICAgICAg
ICAgICAgICAgcmFuZ2UgPSBudWxscHRyOwogICAgICAgICAgICAgZWxzZQogICAgICAgICAgICAg
ICAgIHJhbmdlID0gUmFuZ2U6OmNyZWF0ZSgqZnJhbWUuZG9jdW1lbnQoKSwgcG9zaXRpb24sIGZy
YW1lLnNlbGVjdGlvbigpLnNlbGVjdGlvbigpLnN0YXJ0KCkpOwogICAgICAgICAgICAgdGV4dEZv
clJhbmdlID0gKHJhbmdlKSA/IHBsYWluVGV4dFJlcGxhY2luZ05vQnJlYWtTcGFjZShyYW5nZS5n
ZXQoKSkgOiBlbXB0eVN0cmluZygpOwpAQCAtMjQ1OCw3ICsyNDU4LDcgQEAgdm9pZCBXZWJQYWdl
OjplbGVtZW50RGlkQmx1cihXZWJDb3JlOjpOb2RlKiBub2RlKQogICAgICAgICAgICAgICAgIHNl
bmQoTWVzc2FnZXM6OldlYlBhZ2VQcm94eTo6U3RvcEFzc2lzdGluZ05vZGUoKSk7CiAgICAgICAg
ICAgICBtX2hhc1BlbmRpbmdCbHVyTm90aWZpY2F0aW9uID0gZmFsc2U7CiAgICAgICAgIH0pOwot
ICAgICAgICBtX2Fzc2lzdGVkTm9kZSA9IDA7CisgICAgICAgIG1fYXNzaXN0ZWROb2RlID0gbnVs
bHB0cjsKICAgICB9CiB9CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3Mv
V2ViUHJvY2Vzcy5jcHAgYi9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL1dlYlByb2Nlc3MuY3Bw
CmluZGV4IGE5N2JjMjFhOTgxNTQ5YWNjZDdmZWRmYjI4MzNhZWM4NGVlZGQwN2EuLmI0YzllMGVl
ODgxZmU3MzEwNWQzNWUxZjEwMjQ0NTFhM2EyYjkwZWEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJL
aXQyL1dlYlByb2Nlc3MvV2ViUHJvY2Vzcy5jcHAKKysrIGIvU291cmNlL1dlYktpdDIvV2ViUHJv
Y2Vzcy9XZWJQcm9jZXNzLmNwcApAQCAtMTAzNCw3ICsxMDM0LDcgQEAgdm9pZCBXZWJQcm9jZXNz
OjpuZXR3b3JrUHJvY2Vzc0Nvbm5lY3Rpb25DbG9zZWQoTmV0d29ya1Byb2Nlc3NDb25uZWN0aW9u
KiBjb25uZWMKICAgICBBU1NFUlQobV9uZXR3b3JrUHJvY2Vzc0Nvbm5lY3Rpb24pOwogICAgIEFT
U0VSVF9VTlVTRUQoY29ubmVjdGlvbiwgbV9uZXR3b3JrUHJvY2Vzc0Nvbm5lY3Rpb24gPT0gY29u
bmVjdGlvbik7CiAKLSAgICBtX25ldHdvcmtQcm9jZXNzQ29ubmVjdGlvbiA9IDA7CisgICAgbV9u
ZXR3b3JrUHJvY2Vzc0Nvbm5lY3Rpb24gPSBudWxscHRyOwogICAgIAogICAgIG1fd2ViUmVzb3Vy
Y2VMb2FkU2NoZWR1bGVyLT5uZXR3b3JrUHJvY2Vzc0NyYXNoZWQoKTsKIH0KQEAgLTEwNTEsNyAr
MTA1MSw3IEBAIHZvaWQgV2ViUHJvY2Vzczo6d2ViVG9EYXRhYmFzZVByb2Nlc3NDb25uZWN0aW9u
Q2xvc2VkKFdlYlRvRGF0YWJhc2VQcm9jZXNzQ29ubmVjCiAgICAgQVNTRVJUKG1fd2ViVG9EYXRh
YmFzZVByb2Nlc3NDb25uZWN0aW9uKTsKICAgICBBU1NFUlQobV93ZWJUb0RhdGFiYXNlUHJvY2Vz
c0Nvbm5lY3Rpb24gPT0gY29ubmVjdGlvbik7CiAKLSAgICBtX3dlYlRvRGF0YWJhc2VQcm9jZXNz
Q29ubmVjdGlvbiA9IDA7CisgICAgbV93ZWJUb0RhdGFiYXNlUHJvY2Vzc0Nvbm5lY3Rpb24gPSBu
dWxscHRyOwogfQogCiBXZWJUb0RhdGFiYXNlUHJvY2Vzc0Nvbm5lY3Rpb24qIFdlYlByb2Nlc3M6
OndlYlRvRGF0YWJhc2VQcm9jZXNzQ29ubmVjdGlvbigpCmRpZmYgLS1naXQgYS9Ub29scy9DaGFu
Z2VMb2cgYi9Ub29scy9DaGFuZ2VMb2cKaW5kZXggOTg3NjBjY2Y1YTQxOTc0YjA4YzgyMDk4ZTU0
ZDI4ODhhZjQ3MTdhOC4uNjllZWZjZjg4M2ZkMzE4YzYxMTdkZWUwZmFmMGVhYzdiMzY2ZDNmMSAx
MDA2NDQKLS0tIGEvVG9vbHMvQ2hhbmdlTG9nCisrKyBiL1Rvb2xzL0NoYW5nZUxvZwpAQCAtMSwz
ICsxLDEyIEBACisyMDE1LTA3LTAzICBDaHJpcyBEdW1leiAgPGNkdW1lekBhcHBsZS5jb20+CisK
KyAgICAgICAgRHJvcCBSZWZQdHI6OmNsZWFyKCkgbWV0aG9kCisgICAgICAgIGh0dHBzOi8vYnVn
cy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0xNDY1NTYKKworICAgICAgICBSZXZpZXdlZCBi
eSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICBEcm9wIFJlZlB0cjo6Y2xlYXIoKSBtZXRob2Qg
aW4gZmF2b3Igb2YgIj0gbnVsbHB0cjsiIHBhdHRlcm4uCisKIDIwMTUtMDctMDMgIERhbiBCZXJu
c3RlaW4gIDxtaXR6QGFwcGxlLmNvbT4KIAogICAgICAgICBbWGNvZGVdIFVwZGF0ZSBzb21lIGJ1
aWxkIHNldHRpbmdzIGFzIHJlY29tbWVuZGVkIGJ5IFhjb2RlIDcKZGlmZiAtLWdpdCBhL1Rvb2xz
L0R1bXBSZW5kZXJUcmVlL21hYy9EdW1wUmVuZGVyVHJlZS5tbSBiL1Rvb2xzL0R1bXBSZW5kZXJU
cmVlL21hYy9EdW1wUmVuZGVyVHJlZS5tbQppbmRleCBiY2NkNGE5MTEyZTY3MmMxY2MyYjJkOTMw
ZmYwYTNlZTAzYjAzZTA2Li4yNzZkZjhiODkyZWM1MjdhNzQ2YmYzZmE2ZGRjNjRlYWQzNzc3YzE1
IDEwMDY0NAotLS0gYS9Ub29scy9EdW1wUmVuZGVyVHJlZS9tYWMvRHVtcFJlbmRlclRyZWUubW0K
KysrIGIvVG9vbHMvRHVtcFJlbmRlclRyZWUvbWFjL0R1bXBSZW5kZXJUcmVlLm1tCkBAIC0yMDY0
LDcgKzIwNjQsNyBAQCBzdGF0aWMgdm9pZCBydW5UZXN0KGNvbnN0IHN0cmluZyYgaW5wdXRMaW5l
KQogICAgIEFTU0VSVChDRkFycmF5R2V0Q291bnQob3BlbldpbmRvd3NSZWYpID09IDEpOwogICAg
IEFTU0VSVChDRkFycmF5R2V0VmFsdWVBdEluZGV4KG9wZW5XaW5kb3dzUmVmLCAwKSA9PSBbW21h
aW5GcmFtZSB3ZWJWaWV3XSB3aW5kb3ddKTsKIAotICAgIGdUZXN0UnVubmVyLmNsZWFyKCk7Cisg
ICAgZ1Rlc3RSdW5uZXIgPSBudWxscHRyOwogCiAgICAgaWYgKGlnbm9yZVdlYkNvcmVOb2RlTGVh
a3MpCiAgICAgICAgIFtXZWJDb3JlU3RhdGlzdGljcyBzdG9wSWdub3JpbmdXZWJDb3JlTm9kZUxl
YWtzXTsKZGlmZiAtLWdpdCBhL1Rvb2xzL0R1bXBSZW5kZXJUcmVlL3dpbi9EdW1wUmVuZGVyVHJl
ZS5jcHAgYi9Ub29scy9EdW1wUmVuZGVyVHJlZS93aW4vRHVtcFJlbmRlclRyZWUuY3BwCmluZGV4
IGQ5ODZjYmZkMzczNDAyNDY2ZjQwYjhlNjVhNDA0NjliZWNlMGE4ZGMuLmM4NDM1NDcyM2NiYTk1
ZjRhMTVhNDE2MDc2MzI5M2JkNjc2NjhmMjkgMTAwNjQ0Ci0tLSBhL1Rvb2xzL0R1bXBSZW5kZXJU
cmVlL3dpbi9EdW1wUmVuZGVyVHJlZS5jcHAKKysrIGIvVG9vbHMvRHVtcFJlbmRlclRyZWUvd2lu
L0R1bXBSZW5kZXJUcmVlLmNwcApAQCAtMTE4Myw3ICsxMTgzLDcgQEAgc3RhdGljIHZvaWQgcnVu
VGVzdChjb25zdCBzdHJpbmcmIGlucHV0TGluZSkKIAogZXhpdDoKICAgICByZW1vdmVGb250RmFs
bGJhY2tJZlByZXNlbnQoZmFsbGJhY2tQYXRoKTsKLSAgICA6OmdUZXN0UnVubmVyLmNsZWFyKCk7
CisgICAgOjpnVGVzdFJ1bm5lciA9IG51bGxwdHI7CiAKICAgICBmcHV0cygiI0VPRlxuIiwgc3Rk
ZXJyKTsKICAgICBmZmx1c2goc3RkZXJyKTsKZGlmZiAtLWdpdCBhL1Rvb2xzL1Rlc3RXZWJLaXRB
UEkvVGVzdHMvV1RGL1JlZlB0ci5jcHAgYi9Ub29scy9UZXN0V2ViS2l0QVBJL1Rlc3RzL1dURi9S
ZWZQdHIuY3BwCmluZGV4IGZjOTIyNDY3Mjc4NDY0MWQxZDM3NDljMjA3OWUxNWJiZDNlODcyNmMu
LmI3MjZkN2RkZjAzY2MyZmQ2YTIwZTE0ZDliNDAyM2NmMjZhN2Q0MzggMTAwNjQ0Ci0tLSBhL1Rv
b2xzL1Rlc3RXZWJLaXRBUEkvVGVzdHMvV1RGL1JlZlB0ci5jcHAKKysrIGIvVG9vbHMvVGVzdFdl
YktpdEFQSS9UZXN0cy9XVEYvUmVmUHRyLmNwcApAQCAtMTAyLDcgKzEwMiw3IEBAIFRFU1QoV1RG
X1JlZlB0ciwgQmFzaWMpCiAgICAgewogICAgICAgICBSZWZQdHI8UmVmTG9nZ2VyPiBwdHIoJmEp
OwogICAgICAgICBBU1NFUlRfRVEoJmEsIHB0ci5nZXQoKSk7Ci0gICAgICAgIHB0ci5jbGVhcigp
OworICAgICAgICBwdHIgPSBudWxscHRyOwogICAgICAgICBBU1NFUlRfRVEobnVsbHB0ciwgcHRy
LmdldCgpKTsKICAgICB9CiAgICAgQVNTRVJUX1NUUkVRKCJyZWYoYSkgZGVyZWYoYSkgIiwgdGFr
ZUxvZ1N0cigpLmNfc3RyKCkpOwo=
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>256130</attachid>
            <date>2015-07-03 20:36:29 -0700</date>
            <delta_ts>2015-07-03 20:40:38 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-146556-20150703203533.patch</filename>
            <type>text/plain</type>
            <size>181990</size>
            <attacher name="Chris Dumez">cdumez</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTg2MjcxCmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlw
dENvcmUvQ2hhbmdlTG9nIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL0NoYW5nZUxvZwppbmRleCA3
NThjNmEzYWY4NTAzMTIzOGRiZjUzY2ZjMjg4NTc5ODM0OGUzYTJiLi4xMDE2ZTQ4ODM0ODAxMjg3
MDYxYjUxMzZjNmU4MzkxZWE4NGQxMzk2IDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENv
cmUvQ2hhbmdlTG9nCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9DaGFuZ2VMb2cKQEAgLTEs
MyArMSwxMiBAQAorMjAxNS0wNy0wMyAgQ2hyaXMgRHVtZXogIDxjZHVtZXpAYXBwbGUuY29tPgor
CisgICAgICAgIERyb3AgUmVmUHRyOjpjbGVhcigpIG1ldGhvZAorICAgICAgICBodHRwczovL2J1
Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTQ2NTU2CisKKyAgICAgICAgUmV2aWV3ZWQg
YnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgRHJvcCBSZWZQdHI6OmNsZWFyKCkgbWV0aG9k
IGluIGZhdm9yIG9mICI9IG51bGxwdHI7IiBwYXR0ZXJuLgorCiAyMDE1LTA3LTAzICBEYW4gQmVy
bnN0ZWluICA8bWl0ekBhcHBsZS5jb20+CiAKICAgICAgICAgW1hjb2RlXSBVcGRhdGUgc29tZSBi
dWlsZCBzZXR0aW5ncyBhcyByZWNvbW1lbmRlZCBieSBYY29kZSA3CmRpZmYgLS1naXQgYS9Tb3Vy
Y2UvV1RGL0NoYW5nZUxvZyBiL1NvdXJjZS9XVEYvQ2hhbmdlTG9nCmluZGV4IDcxMDIyNmE3ZTZj
Nzg3NjQ2YWZhMDllN2ViYmNlZDA4ZDg1M2I0N2MuLjlhNDkxMmEwMDJkYjcwYmUxMTk5M2UxNTcw
YzU0YmIzMjQ4MDBjYjggMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XVEYvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XVEYvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMTYgQEAKKzIwMTUtMDctMDMgIENocmlzIER1
bWV6ICA8Y2R1bWV6QGFwcGxlLmNvbT4KKworICAgICAgICBEcm9wIFJlZlB0cjo6Y2xlYXIoKSBt
ZXRob2QKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTE0
NjU1NgorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIERy
b3AgUmVmUHRyOjpjbGVhcigpIG1ldGhvZCBpbiBmYXZvciBvZiAiPSBudWxscHRyOyIgcGF0dGVy
bi4KKyAgICAgICAgQWxzbyBtYWRlIHRoZSAiPSBudWxscHRyOyIgcGF0dGVybiBhcyBlZmZpY2ll
bnQgYXMgY2xlYXIoKQorICAgICAgICBieSBwcm92aWRpbmcgYSBvcGVyYXRvcj0obnVsbHB0cl90
KSBvdmVybG9hZC4gTG9jYWwgbWljcm8tCisgICAgICAgIGJlbmNobWFya2luZyBzaG93ZWQgdGhh
dCAiPSBudWxscHRyOyIgdXNlZCB0byBiZSB+MS43JSBzbG93ZXIKKyAgICAgICAgdGhhbiBjbGVh
cigpLgorCiAyMDE1LTA3LTAzICBEYW4gQmVybnN0ZWluICA8bWl0ekBhcHBsZS5jb20+CiAKICAg
ICAgICAgW1hjb2RlXSBVcGRhdGUgc29tZSBidWlsZCBzZXR0aW5ncyBhcyByZWNvbW1lbmRlZCBi
eSBYY29kZSA3CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cgYi9Tb3VyY2Uv
V2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggY2ZhNDExOWI1YWM2NmMxMDk1YjRmMzY5MDZmYjliYWQ5
YTA4MmRjNy4uNzkzMzE4N2M3YzIxYTNhMzhmYjZhMWUyZWMzN2JmNjZhZGFiYzdlYiAxMDA2NDQK
LS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1NvdXJjZS9XZWJDb3JlL0NoYW5n
ZUxvZwpAQCAtMSwzICsxLDIzMiBAQAorMjAxNS0wNy0wMyAgQ2hyaXMgRHVtZXogIDxjZHVtZXpA
YXBwbGUuY29tPgorCisgICAgICAgIERyb3AgUmVmUHRyOjpjbGVhcigpIG1ldGhvZAorICAgICAg
ICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTQ2NTU2CisKKyAgICAg
ICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgRHJvcCBSZWZQdHI6OmNs
ZWFyKCkgbWV0aG9kIGluIGZhdm9yIG9mICI9IG51bGxwdHI7IiBwYXR0ZXJuLgorCisyMDE1LTA3
LTAyICBDaHJpcyBEdW1leiAgPGNkdW1lekBhcHBsZS5jb20+CisKKyAgICAgICAgRHJvcCBSZWZQ
dHI6OmNsZWFyKCkgbWV0aG9kCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3df
YnVnLmNnaT9pZD0xNDY1NTYKKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4K
KworICAgICAgICAqIE1vZHVsZXMvaW5kZXhlZGRiL0lEQkN1cnNvci5jcHA6CisgICAgICAgIChX
ZWJDb3JlOjpJREJDdXJzb3I6OmNsb3NlKToKKyAgICAgICAgKiBNb2R1bGVzL2luZGV4ZWRkYi9J
REJEYXRhYmFzZUJhY2tlbmQuY3BwOgorICAgICAgICAoV2ViQ29yZTo6SURCRGF0YWJhc2VCYWNr
ZW5kOjp0cmFuc2FjdGlvbkZpbmlzaGVkKToKKyAgICAgICAgKiBNb2R1bGVzL2luZGV4ZWRkYi9J
REJPYmplY3RTdG9yZS5jcHA6CisgICAgICAgICogTW9kdWxlcy9pbmRleGVkZGIvSURCT3BlbkRC
UmVxdWVzdC5jcHA6CisgICAgICAgIChXZWJDb3JlOjpJREJPcGVuREJSZXF1ZXN0OjpkaXNwYXRj
aEV2ZW50KToKKyAgICAgICAgKiBNb2R1bGVzL2luZGV4ZWRkYi9JREJSZXF1ZXN0LmNwcDoKKyAg
ICAgICAgKFdlYkNvcmU6OklEQlJlcXVlc3Q6OmFib3J0KToKKyAgICAgICAgKFdlYkNvcmU6OklE
QlJlcXVlc3Q6OnNldFBlbmRpbmdDdXJzb3IpOgorICAgICAgICAoV2ViQ29yZTo6SURCUmVxdWVz
dDo6b25FcnJvcik6CisgICAgICAgIChXZWJDb3JlOjpJREJSZXF1ZXN0OjpvblN1Y2Nlc3NJbnRl
cm5hbCk6CisgICAgICAgIChXZWJDb3JlOjpJREJSZXF1ZXN0Ojp0cmFuc2FjdGlvbkRpZEZpbmlz
aEFuZERpc3BhdGNoKToKKyAgICAgICAgKiBNb2R1bGVzL2luZGV4ZWRkYi9JREJUcmFuc2FjdGlv
bi5jcHA6CisgICAgICAgIChXZWJDb3JlOjpJREJUcmFuc2FjdGlvbjo6T3BlbkN1cnNvck5vdGlm
aWVyOjpjdXJzb3JGaW5pc2hlZCk6CisgICAgICAgICogTW9kdWxlcy9tZWRpYXNvdXJjZS9NZWRp
YVNvdXJjZS5jcHA6CisgICAgICAgIChXZWJDb3JlOjpNZWRpYVNvdXJjZTo6c2V0UmVhZHlTdGF0
ZSk6CisgICAgICAgIChXZWJDb3JlOjpNZWRpYVNvdXJjZTo6c3RvcCk6CisgICAgICAgICogTW9k
dWxlcy9tZWRpYXN0cmVhbS9SVENTZXNzaW9uRGVzY3JpcHRpb25SZXF1ZXN0SW1wbC5jcHA6Cisg
ICAgICAgIChXZWJDb3JlOjpSVENTZXNzaW9uRGVzY3JpcHRpb25SZXF1ZXN0SW1wbDo6Y2xlYXIp
OgorICAgICAgICAqIE1vZHVsZXMvbWVkaWFzdHJlYW0vUlRDU3RhdHNSZXF1ZXN0SW1wbC5jcHA6
CisgICAgICAgIChXZWJDb3JlOjpSVENTdGF0c1JlcXVlc3RJbXBsOjpjbGVhcik6CisgICAgICAg
ICogTW9kdWxlcy9tZWRpYXN0cmVhbS9SVENWb2lkUmVxdWVzdEltcGwuY3BwOgorICAgICAgICAo
V2ViQ29yZTo6UlRDVm9pZFJlcXVlc3RJbXBsOjpjbGVhcik6CisgICAgICAgICogTW9kdWxlcy93
ZWJhdWRpby9BdWRpb0NvbnRleHQuY3BwOgorICAgICAgICAoV2ViQ29yZTo6QXVkaW9Db250ZXh0
OjpjbGVhcik6CisgICAgICAgICogTW9kdWxlcy93ZWJkYXRhYmFzZS9TUUxUcmFuc2FjdGlvbkJh
Y2tlbmQuY3BwOgorICAgICAgICAoV2ViQ29yZTo6U1FMVHJhbnNhY3Rpb25CYWNrZW5kOjpyZWxl
YXNlT3JpZ2luTG9ja0lmTmVlZGVkKToKKyAgICAgICAgKiBNb2R1bGVzL3dlYnNvY2tldHMvV29y
a2VyVGhyZWFkYWJsZVdlYlNvY2tldENoYW5uZWwuY3BwOgorICAgICAgICAoV2ViQ29yZTo6V29y
a2VyVGhyZWFkYWJsZVdlYlNvY2tldENoYW5uZWw6OmRpc2Nvbm5lY3QpOgorICAgICAgICAqIGJp
bmRpbmdzL2pzL1dlYkNvcmVKU0NsaWVudERhdGEuaDoKKyAgICAgICAgKFdlYkNvcmU6OldlYkNv
cmVKU0NsaWVudERhdGE6On5XZWJDb3JlSlNDbGllbnREYXRhKToKKyAgICAgICAgKiBiaW5kaW5n
cy9qcy9Xb3JrZXJTY3JpcHRDb250cm9sbGVyLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6Oldvcmtl
clNjcmlwdENvbnRyb2xsZXI6On5Xb3JrZXJTY3JpcHRDb250cm9sbGVyKToKKyAgICAgICAgKiBj
b250ZW50ZXh0ZW5zaW9ucy9Db250ZW50RXh0ZW5zaW9uUGFyc2VyLmNwcDoKKyAgICAgICAgKFdl
YkNvcmU6OkNvbnRlbnRFeHRlbnNpb25zOjpwYXJzZVJ1bGVMaXN0KToKKyAgICAgICAgKiBjc3Mv
Q1NTUGFyc2VyLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OkNTU1BhcnNlcjo6cGFyc2VGaWxsUG9z
aXRpb24pOgorICAgICAgICAoV2ViQ29yZTo6Q1NTUGFyc2VyOjpwYXJzZTJWYWx1ZXNGaWxsUG9z
aXRpb24pOgorICAgICAgICAoV2ViQ29yZTo6Q1NTUGFyc2VyOjpwb3BSdWxlRGF0YSk6CisgICAg
ICAgIChXZWJDb3JlOjpDU1NQYXJzZXI6Om1hcmtSdWxlQm9keVN0YXJ0KToKKyAgICAgICAgKiBk
b20vRG9jdW1lbnQuY3BwOgorICAgICAgICAoV2ViQ29yZTo6RG9jdW1lbnQ6OmRldGFjaFBhcnNl
cik6CisgICAgICAgIChXZWJDb3JlOjpEb2N1bWVudDo6Y2xlYXJTY3JpcHRlZEFuaW1hdGlvbkNv
bnRyb2xsZXIpOgorICAgICAgICAoV2ViQ29yZTo6RG9jdW1lbnQ6OnVwZGF0ZUhvdmVyQWN0aXZl
U3RhdGUpOgorICAgICAgICAqIGRvbS9Eb2N1bWVudE1hcmtlci5oOgorICAgICAgICAoV2ViQ29y
ZTo6RG9jdW1lbnRNYXJrZXI6OmNsZWFyRGV0YWlscyk6CisgICAgICAgICogZG9tL0VsZW1lbnQu
Y3BwOgorICAgICAgICAoV2ViQ29yZTo6RWxlbWVudDo6Y2xvbmVBdHRyaWJ1dGVzRnJvbUVsZW1l
bnQpOgorICAgICAgICAqIGRvbS9Ob2RlSXRlcmF0b3IuY3BwOgorICAgICAgICAoV2ViQ29yZTo6
Tm9kZUl0ZXJhdG9yOjpOb2RlUG9pbnRlcjo6Y2xlYXIpOgorICAgICAgICAoV2ViQ29yZTo6Tm9k
ZUl0ZXJhdG9yOjpkZXRhY2gpOgorICAgICAgICAqIGRvbS9Qb3NpdGlvbi5oOgorICAgICAgICAo
V2ViQ29yZTo6UG9zaXRpb246OmNsZWFyKToKKyAgICAgICAgKiBkb20vUmFuZ2VCb3VuZGFyeVBv
aW50Lmg6CisgICAgICAgIChXZWJDb3JlOjpSYW5nZUJvdW5kYXJ5UG9pbnQ6OmNsZWFyKToKKyAg
ICAgICAgKiBkb20vU3BhY2VTcGxpdFN0cmluZy5oOgorICAgICAgICAoV2ViQ29yZTo6U3BhY2VT
cGxpdFN0cmluZzo6Y2xlYXIpOgorICAgICAgICAqIGRvbS9TdHlsZWRFbGVtZW50LmNwcDoKKyAg
ICAgICAgKFdlYkNvcmU6OlN0eWxlZEVsZW1lbnQ6OnNldElubGluZVN0eWxlRnJvbVN0cmluZyk6
CisgICAgICAgIChXZWJDb3JlOjpTdHlsZWRFbGVtZW50OjpzdHlsZUF0dHJpYnV0ZUNoYW5nZWQp
OgorICAgICAgICAqIGVkaXRpbmcvQWx0ZXJuYXRpdmVUZXh0Q29udHJvbGxlci5jcHA6CisgICAg
ICAgIChXZWJDb3JlOjpBbHRlcm5hdGl2ZVRleHRDb250cm9sbGVyOjpzdGFydEFsdGVybmF0aXZl
VGV4dFVJVGltZXIpOgorICAgICAgICAoV2ViQ29yZTo6QWx0ZXJuYXRpdmVUZXh0Q29udHJvbGxl
cjo6c3RvcEFsdGVybmF0aXZlVGV4dFVJVGltZXIpOgorICAgICAgICAoV2ViQ29yZTo6QWx0ZXJu
YXRpdmVUZXh0Q29udHJvbGxlcjo6YXBwbHlQZW5kaW5nQ29ycmVjdGlvbik6CisgICAgICAgIChX
ZWJDb3JlOjpBbHRlcm5hdGl2ZVRleHRDb250cm9sbGVyOjp0aW1lckZpcmVkKToKKyAgICAgICAg
KFdlYkNvcmU6OkFsdGVybmF0aXZlVGV4dENvbnRyb2xsZXI6OmhhbmRsZUFsdGVybmF0aXZlVGV4
dFVJUmVzdWx0KToKKyAgICAgICAgKiBlZGl0aW5nL0VkaXRpbmdTdHlsZS5jcHA6CisgICAgICAg
IChXZWJDb3JlOjpFZGl0aW5nU3R5bGU6OmNsZWFyKToKKyAgICAgICAgKiBlZGl0aW5nL0VkaXRv
ci5jcHA6CisgICAgICAgIChXZWJDb3JlOjpFZGl0b3I6OmNsZWFyTGFzdEVkaXRDb21tYW5kKToK
KyAgICAgICAgKiBlZGl0aW5nL0ZyYW1lU2VsZWN0aW9uLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6
OkZyYW1lU2VsZWN0aW9uOjpwcmVwYXJlRm9yRGVzdHJ1Y3Rpb24pOgorICAgICAgICAqIGVkaXRp
bmcvRnJhbWVTZWxlY3Rpb24uaDoKKyAgICAgICAgKFdlYkNvcmU6OkZyYW1lU2VsZWN0aW9uOjpj
bGVhclR5cGluZ1N0eWxlKToKKyAgICAgICAgKiBlZGl0aW5nL1NwZWxsQ2hlY2tlci5jcHA6Cisg
ICAgICAgIChXZWJDb3JlOjpTcGVsbENoZWNrZXI6OmRpZENoZWNrKToKKyAgICAgICAgKiBodG1s
L0Jhc2VDaG9vc2VyT25seURhdGVBbmRUaW1lSW5wdXRUeXBlLmNwcDoKKyAgICAgICAgKFdlYkNv
cmU6OkJhc2VDaG9vc2VyT25seURhdGVBbmRUaW1lSW5wdXRUeXBlOjpkaWRFbmRDaG9vc2VyKToK
KyAgICAgICAgKiBodG1sL0ZpbGVJbnB1dFR5cGUuY3BwOgorICAgICAgICAoV2ViQ29yZTo6Rmls
ZUlucHV0VHlwZTo6c2V0VmFsdWUpOgorICAgICAgICAqIGh0bWwvSFRNTENhbnZhc0VsZW1lbnQu
Y3BwOgorICAgICAgICAoV2ViQ29yZTo6SFRNTENhbnZhc0VsZW1lbnQ6OmNsZWFyUHJlc2VudGF0
aW9uQ29weSk6CisgICAgICAgIChXZWJDb3JlOjpIVE1MQ2FudmFzRWxlbWVudDo6Y2xlYXJDb3Bp
ZWRJbWFnZSk6CisgICAgICAgICogaHRtbC9IVE1MUGx1Z0luRWxlbWVudC5jcHA6CisgICAgICAg
IChXZWJDb3JlOjpIVE1MUGx1Z0luRWxlbWVudDo6d2lsbERldGFjaFJlbmRlcmVycyk6CisgICAg
ICAgIChXZWJDb3JlOjpIVE1MUGx1Z0luRWxlbWVudDo6cmVzZXRJbnN0YW5jZSk6CisgICAgICAg
ICogaHRtbC9UZXh0RmllbGRJbnB1dFR5cGUuY3BwOgorICAgICAgICAoV2ViQ29yZTo6VGV4dEZp
ZWxkSW5wdXRUeXBlOjp1cGRhdGVQbGFjZWhvbGRlclRleHQpOgorICAgICAgICAqIGh0bWwvY2Fu
dmFzL1dlYkdMUmVuZGVyaW5nQ29udGV4dEJhc2UuY3BwOgorICAgICAgICAoV2ViQ29yZTo6V2Vi
R0xSZW5kZXJpbmdDb250ZXh0QmFzZTo6ZGVzdHJveUdyYXBoaWNzQ29udGV4dDNEKToKKyAgICAg
ICAgKiBpbnNwZWN0b3IvSW5zcGVjdG9yQXBwbGljYXRpb25DYWNoZUFnZW50LmNwcDoKKyAgICAg
ICAgKFdlYkNvcmU6Okluc3BlY3RvckFwcGxpY2F0aW9uQ2FjaGVBZ2VudDo6d2lsbERlc3Ryb3lG
cm9udGVuZEFuZEJhY2tlbmQpOgorICAgICAgICAqIGluc3BlY3Rvci9JbnNwZWN0b3JDU1NBZ2Vu
dC5jcHA6CisgICAgICAgIChXZWJDb3JlOjpJbnNwZWN0b3JDU1NBZ2VudDo6d2lsbERlc3Ryb3lG
cm9udGVuZEFuZEJhY2tlbmQpOgorICAgICAgICAqIGluc3BlY3Rvci9JbnNwZWN0b3JDb250cm9s
bGVyLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6Okluc3BlY3RvckNvbnRyb2xsZXI6OmRpc2Nvbm5l
Y3RGcm9udGVuZCk6CisgICAgICAgICogaW5zcGVjdG9yL0luc3BlY3RvckRPTUFnZW50LmNwcDoK
KyAgICAgICAgKFdlYkNvcmU6Okluc3BlY3RvckRPTUFnZW50Ojp3aWxsRGVzdHJveUZyb250ZW5k
QW5kQmFja2VuZCk6CisgICAgICAgICogaW5zcGVjdG9yL0luc3BlY3RvckRPTURlYnVnZ2VyQWdl
bnQuY3BwOgorICAgICAgICAoV2ViQ29yZTo6SW5zcGVjdG9yRE9NRGVidWdnZXJBZ2VudDo6d2ls
bERlc3Ryb3lGcm9udGVuZEFuZEJhY2tlbmQpOgorICAgICAgICAqIGluc3BlY3Rvci9JbnNwZWN0
b3JET01TdG9yYWdlQWdlbnQuY3BwOgorICAgICAgICAoV2ViQ29yZTo6SW5zcGVjdG9yRE9NU3Rv
cmFnZUFnZW50Ojp3aWxsRGVzdHJveUZyb250ZW5kQW5kQmFja2VuZCk6CisgICAgICAgICogaW5z
cGVjdG9yL0luc3BlY3RvckRhdGFiYXNlQWdlbnQuY3BwOgorICAgICAgICAoV2ViQ29yZTo6SW5z
cGVjdG9yRGF0YWJhc2VBZ2VudDo6d2lsbERlc3Ryb3lGcm9udGVuZEFuZEJhY2tlbmQpOgorICAg
ICAgICAqIGluc3BlY3Rvci9JbnNwZWN0b3JJbmRleGVkREJBZ2VudC5jcHA6CisgICAgICAgIChX
ZWJDb3JlOjpJbnNwZWN0b3JJbmRleGVkREJBZ2VudDo6d2lsbERlc3Ryb3lGcm9udGVuZEFuZEJh
Y2tlbmQpOgorICAgICAgICAqIGluc3BlY3Rvci9JbnNwZWN0b3JMYXllclRyZWVBZ2VudC5jcHA6
CisgICAgICAgIChXZWJDb3JlOjpJbnNwZWN0b3JMYXllclRyZWVBZ2VudDo6d2lsbERlc3Ryb3lG
cm9udGVuZEFuZEJhY2tlbmQpOgorICAgICAgICAqIGluc3BlY3Rvci9JbnNwZWN0b3JPdmVybGF5
LmNwcDoKKyAgICAgICAgKFdlYkNvcmU6Okluc3BlY3Rvck92ZXJsYXk6OmhpZGVIaWdobGlnaHQp
OgorICAgICAgICAoV2ViQ29yZTo6SW5zcGVjdG9yT3ZlcmxheTo6aGlnaGxpZ2h0Tm9kZUxpc3Qp
OgorICAgICAgICAoV2ViQ29yZTo6SW5zcGVjdG9yT3ZlcmxheTo6aGlnaGxpZ2h0Tm9kZSk6Cisg
ICAgICAgICogaW5zcGVjdG9yL0luc3BlY3RvclBhZ2VBZ2VudC5jcHA6CisgICAgICAgIChXZWJD
b3JlOjpJbnNwZWN0b3JQYWdlQWdlbnQ6OndpbGxEZXN0cm95RnJvbnRlbmRBbmRCYWNrZW5kKToK
KyAgICAgICAgKFdlYkNvcmU6Okluc3BlY3RvclBhZ2VBZ2VudDo6ZGlzYWJsZSk6CisgICAgICAg
ICogaW5zcGVjdG9yL0luc3BlY3RvclJlcGxheUFnZW50LmNwcDoKKyAgICAgICAgKFdlYkNvcmU6
Okluc3BlY3RvclJlcGxheUFnZW50Ojp3aWxsRGVzdHJveUZyb250ZW5kQW5kQmFja2VuZCk6Cisg
ICAgICAgICogaW5zcGVjdG9yL0luc3BlY3RvclJlc291cmNlQWdlbnQuY3BwOgorICAgICAgICAo
V2ViQ29yZTo6SW5zcGVjdG9yUmVzb3VyY2VBZ2VudDo6d2lsbERlc3Ryb3lGcm9udGVuZEFuZEJh
Y2tlbmQpOgorICAgICAgICAqIGluc3BlY3Rvci9JbnNwZWN0b3JTdHlsZVNoZWV0LmNwcDoKKyAg
ICAgICAgKFdlYkNvcmU6Okluc3BlY3RvclN0eWxlU2hlZXRGb3JJbmxpbmVTdHlsZTo6ZGlkTW9k
aWZ5RWxlbWVudEF0dHJpYnV0ZSk6CisgICAgICAgIChXZWJDb3JlOjpJbnNwZWN0b3JTdHlsZVNo
ZWV0Rm9ySW5saW5lU3R5bGU6OnNldFN0eWxlVGV4dCk6CisgICAgICAgIChXZWJDb3JlOjpJbnNw
ZWN0b3JTdHlsZVNoZWV0Rm9ySW5saW5lU3R5bGU6OmVuc3VyZVBhcnNlZERhdGFSZWFkeSk6Cisg
ICAgICAgICogaW5zcGVjdG9yL0luc3BlY3RvclRpbWVsaW5lQWdlbnQuY3BwOgorICAgICAgICAo
V2ViQ29yZTo6SW5zcGVjdG9yVGltZWxpbmVBZ2VudDo6d2lsbERlc3Ryb3lGcm9udGVuZEFuZEJh
Y2tlbmQpOgorICAgICAgICAqIGluc3BlY3Rvci9JbnNwZWN0b3JXb3JrZXJBZ2VudC5jcHA6Cisg
ICAgICAgIChXZWJDb3JlOjpJbnNwZWN0b3JXb3JrZXJBZ2VudDo6d2lsbERlc3Ryb3lGcm9udGVu
ZEFuZEJhY2tlbmQpOgorICAgICAgICAqIGluc3BlY3Rvci9QYWdlUnVudGltZUFnZW50LmNwcDoK
KyAgICAgICAgKFdlYkNvcmU6OlBhZ2VSdW50aW1lQWdlbnQ6OndpbGxEZXN0cm95RnJvbnRlbmRB
bmRCYWNrZW5kKToKKyAgICAgICAgKiBpbnNwZWN0b3IvV2ViSW5qZWN0ZWRTY3JpcHRNYW5hZ2Vy
LmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OldlYkluamVjdGVkU2NyaXB0TWFuYWdlcjo6ZGlzY29u
bmVjdCk6CisgICAgICAgICogaW5zcGVjdG9yL1dvcmtlckluc3BlY3RvckNvbnRyb2xsZXIuY3Bw
OgorICAgICAgICAoV2ViQ29yZTo6V29ya2VySW5zcGVjdG9yQ29udHJvbGxlcjo6ZGlzY29ubmVj
dEZyb250ZW5kKToKKyAgICAgICAgKiBpbnNwZWN0b3IvV29ya2VyUnVudGltZUFnZW50LmNwcDoK
KyAgICAgICAgKFdlYkNvcmU6OldvcmtlclJ1bnRpbWVBZ2VudDo6d2lsbERlc3Ryb3lGcm9udGVu
ZEFuZEJhY2tlbmQpOgorICAgICAgICAqIGxvYWRlci9GcmFtZUxvYWRlci5jcHA6CisgICAgICAg
IChXZWJDb3JlOjpGcmFtZUxvYWRlcjo6ZGlkQmVnaW5Eb2N1bWVudCk6CisgICAgICAgICogbG9h
ZGVyL2NhY2hlL0NhY2hlZENTU1N0eWxlU2hlZXQuY3BwOgorICAgICAgICAoV2ViQ29yZTo6Q2Fj
aGVkQ1NTU3R5bGVTaGVldDo6ZGVzdHJveURlY29kZWREYXRhKToKKyAgICAgICAgKFdlYkNvcmU6
OkNhY2hlZENTU1N0eWxlU2hlZXQ6OnJlc3RvcmVQYXJzZWRTdHlsZVNoZWV0KToKKyAgICAgICAg
KiBsb2FkZXIvY2FjaGUvQ2FjaGVkSW1hZ2UuY3BwOgorICAgICAgICAoV2ViQ29yZTo6Q2FjaGVk
SW1hZ2U6OmNsZWFySW1hZ2UpOgorICAgICAgICAqIGxvYWRlci9jYWNoZS9DYWNoZWRSYXdSZXNv
dXJjZS5jcHA6CisgICAgICAgIChXZWJDb3JlOjpDYWNoZWRSYXdSZXNvdXJjZTo6Y2xlYXIpOgor
ICAgICAgICAqIGxvYWRlci9jYWNoZS9DYWNoZWRSZXNvdXJjZS5jcHA6CisgICAgICAgIChXZWJD
b3JlOjpDYWNoZWRSZXNvdXJjZTo6ZXJyb3IpOgorICAgICAgICAqIGxvYWRlci9pY29uL0ljb25S
ZWNvcmQuY3BwOgorICAgICAgICAoV2ViQ29yZTo6SWNvblJlY29yZDo6c2V0SW1hZ2VEYXRhKToK
KyAgICAgICAgKiBwYWdlL0V2ZW50SGFuZGxlci5jcHA6CisgICAgICAgIChXZWJDb3JlOjpFdmVu
dEhhbmRsZXI6OmNsZWFyKToKKyAgICAgICAgKFdlYkNvcmU6OkV2ZW50SGFuZGxlcjo6aGFuZGxl
VG91Y2hFdmVudCk6CisgICAgICAgICogcGFnZS9QYWdlLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6
OlBhZ2U6OnJlZnJlc2hQbHVnaW5zKToKKyAgICAgICAgKiBwbGF0Zm9ybS9hdWRpby9tYWMvQ0FS
aW5nQnVmZmVyLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OkNBUmluZ0J1ZmZlcjo6ZGVhbGxvY2F0
ZSk6CisgICAgICAgICogcGxhdGZvcm0vZ3JhcGhpY3MvRm9udC5jcHA6CisgICAgICAgIChXZWJD
b3JlOjpGb250OjptYXRoRGF0YSk6CisgICAgICAgICogcGxhdGZvcm0vZ3JhcGhpY3MvRm9udENh
Y2hlLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OkZvbnRDYWNoZTo6Z2V0VmVydGljYWxEYXRhKToK
KyAgICAgICAgKiBwbGF0Zm9ybS9ncmFwaGljcy9HcmFwaGljc0NvbnRleHQuY3BwOgorICAgICAg
ICAoV2ViQ29yZTo6R3JhcGhpY3NDb250ZXh0OjpzZXRTdHJva2VDb2xvcik6CisgICAgICAgIChX
ZWJDb3JlOjpHcmFwaGljc0NvbnRleHQ6OnNldEZpbGxDb2xvcik6CisgICAgICAgIChXZWJDb3Jl
OjpHcmFwaGljc0NvbnRleHQ6OnNldFN0cm9rZVBhdHRlcm4pOgorICAgICAgICAoV2ViQ29yZTo6
R3JhcGhpY3NDb250ZXh0OjpzZXRGaWxsUGF0dGVybik6CisgICAgICAgIChXZWJDb3JlOjpHcmFw
aGljc0NvbnRleHQ6OnNldFN0cm9rZUdyYWRpZW50KToKKyAgICAgICAgKFdlYkNvcmU6OkdyYXBo
aWNzQ29udGV4dDo6c2V0RmlsbEdyYWRpZW50KToKKyAgICAgICAgKiBwbGF0Zm9ybS9ncmFwaGlj
cy9jYWlyby9CYWNraW5nU3RvcmVCYWNrZW5kQ2Fpcm9YMTEuY3BwOgorICAgICAgICAoV2ViQ29y
ZTo6QmFja2luZ1N0b3JlQmFja2VuZENhaXJvWDExOjp+QmFja2luZ1N0b3JlQmFja2VuZENhaXJv
WDExKToKKyAgICAgICAgKiBwbGF0Zm9ybS9ncmFwaGljcy9jYWlyby9CaXRtYXBJbWFnZUNhaXJv
LmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OkZyYW1lRGF0YTo6Y2xlYXIpOgorICAgICAgICAqIHBs
YXRmb3JtL2dyYXBoaWNzL2ZpbHRlcnMvRmlsdGVyRWZmZWN0LmNwcDoKKyAgICAgICAgKFdlYkNv
cmU6OkZpbHRlckVmZmVjdDo6Y2xlYXJSZXN1bHQpOgorICAgICAgICAoV2ViQ29yZTo6RmlsdGVy
RWZmZWN0Ojp0cmFuc2Zvcm1SZXN1bHRDb2xvclNwYWNlKToKKyAgICAgICAgKiBwbGF0Zm9ybS9n
cmFwaGljcy9nc3RyZWFtZXIvSW1hZ2VHU3RyZWFtZXJDYWlyby5jcHA6CisgICAgICAgIChJbWFn
ZUdTdHJlYW1lcjo6fkltYWdlR1N0cmVhbWVyKToKKyAgICAgICAgKiBwbGF0Zm9ybS9ncmFwaGlj
cy90ZXhtYXAvQml0bWFwVGV4dHVyZUdMLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OkJpdG1hcFRl
eHR1cmVHTDo6YXBwbHlGaWx0ZXJzKToKKyAgICAgICAgKiBwbGF0Zm9ybS9ncmFwaGljcy90ZXht
YXAvVGV4dHVyZU1hcHBlckdMLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OlRleHR1cmVNYXBwZXJH
TDo6YmluZERlZmF1bHRTdXJmYWNlKToKKyAgICAgICAgKiBwbGF0Zm9ybS9ncmFwaGljcy90ZXht
YXAvVGV4dHVyZU1hcHBlckxheWVyLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OlRleHR1cmVNYXBw
ZXJMYXllcjo6cGFpbnRXaXRoSW50ZXJtZWRpYXRlU3VyZmFjZSk6CisgICAgICAgICogcGxhdGZv
cm0vZ3JhcGhpY3MvdGV4bWFwL1RleHR1cmVNYXBwZXJUaWxlZEJhY2tpbmdTdG9yZS5jcHA6Cisg
ICAgICAgIChXZWJDb3JlOjpUZXh0dXJlTWFwcGVyVGlsZWRCYWNraW5nU3RvcmU6OnVwZGF0ZUNv
bnRlbnRzRnJvbUltYWdlSWZOZWVkZWQpOgorICAgICAgICAqIHBsYXRmb3JtL2dyYXBoaWNzL3Rl
eG1hcC9jb29yZGluYXRlZC9Db29yZGluYXRlZEdyYXBoaWNzTGF5ZXIuY3BwOgorICAgICAgICAo
V2ViQ29yZTo6Q29vcmRpbmF0ZWRHcmFwaGljc0xheWVyOjpyZWxlYXNlSW1hZ2VCYWNraW5nSWZO
ZWVkZWQpOgorICAgICAgICAqIHBsYXRmb3JtL2dyYXBoaWNzL3RleG1hcC9jb29yZGluYXRlZC9D
b29yZGluYXRlZEltYWdlQmFja2luZy5jcHA6CisgICAgICAgIChXZWJDb3JlOjpDb29yZGluYXRl
ZEltYWdlQmFja2luZzo6cmVsZWFzZVN1cmZhY2VJZk5lZWRlZCk6CisgICAgICAgICogcGxhdGZv
cm0vZ3RrL0dhbWVwYWRzR3RrLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OkdhbWVwYWRzR3RrOjp1
bnJlZ2lzdGVyRGV2aWNlKToKKyAgICAgICAgKiByZW5kZXJpbmcvSW5saW5lRmxvd0JveC5jcHA6
CisgICAgICAgIChXZWJDb3JlOjpJbmxpbmVGbG93Qm94Ojpjb21wdXRlT3ZlcmZsb3cpOgorICAg
ICAgICAqIHJlbmRlcmluZy9SZW5kZXJCb3guY3BwOgorICAgICAgICAoV2ViQ29yZTo6UmVuZGVy
Qm94OjpjbGVhck92ZXJmbG93KToKKyAgICAgICAgKiByZW5kZXJpbmcvUmVuZGVyQm94UmVnaW9u
SW5mby5oOgorICAgICAgICAoV2ViQ29yZTo6UmVuZGVyQm94UmVnaW9uSW5mbzo6Y2xlYXJPdmVy
Zmxvdyk6CisgICAgICAgICogcmVuZGVyaW5nL3N0eWxlL0ZpbGxMYXllci5oOgorICAgICAgICAo
V2ViQ29yZTo6RmlsbExheWVyOjpjbGVhck1hc2tJbWFnZSk6CisgICAgICAgIChXZWJDb3JlOjpG
aWxsTGF5ZXI6OmNsZWFySW1hZ2UpOgorICAgICAgICAqIHN2Zy9TVkdUUmVmRWxlbWVudC5jcHA6
CisgICAgICAgIChXZWJDb3JlOjpTVkdUUmVmVGFyZ2V0RXZlbnRMaXN0ZW5lcjo6ZGV0YWNoKToK
KyAgICAgICAgKiB0ZXN0aW5nL0ludGVybmFscy5jcHA6CisgICAgICAgIChXZWJDb3JlOjpJbnRl
cm5hbHM6OmNsb3NlRHVtbXlJbnNwZWN0b3JGcm9udGVuZCk6CisgICAgICAgICogd29ya2Vycy9X
b3JrZXJFdmVudFF1ZXVlLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OldvcmtlckV2ZW50UXVldWU6
OkV2ZW50RGlzcGF0Y2hlcjo6ZGlzcGF0Y2gpOgorICAgICAgICAoV2ViQ29yZTo6V29ya2VyRXZl
bnRRdWV1ZTo6RXZlbnREaXNwYXRjaGVyOjpjYW5jZWwpOgorICAgICAgICAqIHhtbC9YTUxIdHRw
UmVxdWVzdC5jcHA6CisgICAgICAgIChXZWJDb3JlOjpYTUxIdHRwUmVxdWVzdDo6cmVzcG9uc2VC
bG9iKToKKyAgICAgICAgKFdlYkNvcmU6OlhNTEh0dHBSZXF1ZXN0OjpyZXNwb25zZUFycmF5QnVm
ZmVyKToKKyAgICAgICAgKFdlYkNvcmU6OlhNTEh0dHBSZXF1ZXN0OjpjbGVhclJlc3BvbnNlQnVm
ZmVycyk6CisgICAgICAgICogeG1sL1hTTFRQcm9jZXNzb3IuY3BwOgorICAgICAgICAoV2ViQ29y
ZTo6WFNMVFByb2Nlc3Nvcjo6cmVzZXQpOgorCiAyMDE1LTA3LTAzICBEYW4gQmVybnN0ZWluICA8
bWl0ekBhcHBsZS5jb20+CiAKICAgICAgICAgVHJpZWQgdG8gZml4IHRoZSBpT1MgYnVpbGQuCmRp
ZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L0NoYW5nZUxvZyBiL1NvdXJjZS9XZWJLaXQvQ2hhbmdl
TG9nCmluZGV4IDczYWQ1MDA2MTlmNWZkMDliZDU1MTFjZTRmZTUzMjIyMTlkMmMyMmYuLjg2ODY4
MjE3Mjc1MDE5MmM2ZmZkNDMyNmMwOTg2ZTFkOGI5ODMzNGMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9X
ZWJLaXQvQ2hhbmdlTG9nCisrKyBiL1NvdXJjZS9XZWJLaXQvQ2hhbmdlTG9nCkBAIC0xLDMgKzEs
MTIgQEAKKzIwMTUtMDctMDMgIENocmlzIER1bWV6ICA8Y2R1bWV6QGFwcGxlLmNvbT4KKworICAg
ICAgICBEcm9wIFJlZlB0cjo6Y2xlYXIoKSBtZXRob2QKKyAgICAgICAgaHR0cHM6Ly9idWdzLndl
YmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTE0NjU1NgorCisgICAgICAgIFJldmlld2VkIGJ5IE5P
Qk9EWSAoT09QUyEpLgorCisgICAgICAgIERyb3AgUmVmUHRyOjpjbGVhcigpIG1ldGhvZCBpbiBm
YXZvciBvZiAiPSBudWxscHRyOyIgcGF0dGVybi4KKwogMjAxNS0wNy0wMyAgRGFuIEJlcm5zdGVp
biAgPG1pdHpAYXBwbGUuY29tPgogCiAgICAgICAgIFtYY29kZV0gVXBkYXRlIHNvbWUgYnVpbGQg
c2V0dGluZ3MgYXMgcmVjb21tZW5kZWQgYnkgWGNvZGUgNwpkaWZmIC0tZ2l0IGEvU291cmNlL1dl
YktpdC9tYWMvQ2hhbmdlTG9nIGIvU291cmNlL1dlYktpdC9tYWMvQ2hhbmdlTG9nCmluZGV4IGIx
YzA4YzQ3MmE2OTA1YzZiYzhlMmI5MTkzZmRiNTRkOGY5OGE0NDcuLmI5MTg0YzVjZWM4MGY4NWEx
MmFlMWI2YTYwODI1ZTc4YTQ0MmNkYWIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvbWFjL0No
YW5nZUxvZworKysgYi9Tb3VyY2UvV2ViS2l0L21hYy9DaGFuZ2VMb2cKQEAgLTEsMyArMSwxMiBA
QAorMjAxNS0wNy0wMyAgQ2hyaXMgRHVtZXogIDxjZHVtZXpAYXBwbGUuY29tPgorCisgICAgICAg
IERyb3AgUmVmUHRyOjpjbGVhcigpIG1ldGhvZAorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0
Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTQ2NTU2CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZ
IChPT1BTISkuCisKKyAgICAgICAgRHJvcCBSZWZQdHI6OmNsZWFyKCkgbWV0aG9kIGluIGZhdm9y
IG9mICI9IG51bGxwdHI7IiBwYXR0ZXJuLgorCiAyMDE1LTA3LTAzICBEYW4gQmVybnN0ZWluICA8
bWl0ekBhcHBsZS5jb20+CiAKICAgICAgICAgW1hjb2RlXSBVcGRhdGUgc29tZSBidWlsZCBzZXR0
aW5ncyBhcyByZWNvbW1lbmRlZCBieSBYY29kZSA3CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0
L3dpbi9DaGFuZ2VMb2cgYi9Tb3VyY2UvV2ViS2l0L3dpbi9DaGFuZ2VMb2cKaW5kZXggMTE0Mjg1
OGFjOTRiNTY2YzRiMGZjMzliYjg1Y2Q0ZWIwN2Q5OWVmZC4uNTYyYTEyYmY0NTgyMTEyN2E2YjE4
OWI0ZGU1YzY2M2Y2NmI3ZjllNiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC93aW4vQ2hhbmdl
TG9nCisrKyBiL1NvdXJjZS9XZWJLaXQvd2luL0NoYW5nZUxvZwpAQCAtMSwzICsxLDEyIEBACisy
MDE1LTA3LTAzICBDaHJpcyBEdW1leiAgPGNkdW1lekBhcHBsZS5jb20+CisKKyAgICAgICAgRHJv
cCBSZWZQdHI6OmNsZWFyKCkgbWV0aG9kCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3Jn
L3Nob3dfYnVnLmNnaT9pZD0xNDY1NTYKKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9P
UFMhKS4KKworICAgICAgICBEcm9wIFJlZlB0cjo6Y2xlYXIoKSBtZXRob2QgaW4gZmF2b3Igb2Yg
Ij0gbnVsbHB0cjsiIHBhdHRlcm4uCisKIDIwMTUtMDYtMzAgIFNpbW9uIEZyYXNlciAgPHNpbW9u
LmZyYXNlckBhcHBsZS5jb20+CiAKICAgICAgICAgRml4IE1hYyBhbmQgV2luZG93cyBidWlsZHMu
CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9DaGFuZ2VMb2cgYi9Tb3VyY2UvV2ViS2l0Mi9D
aGFuZ2VMb2cKaW5kZXggODE3MGFjODI1ZTEyY2Y0NTM3MjA3MzMxOTE2ZWU3Zjc1ZTRiNjljMi4u
OTMyYzRiNzI4N2VlOGZlMGEwNzYwZmQwZmE0NzdjOTY4OTEwOGEyYiAxMDA2NDQKLS0tIGEvU291
cmNlL1dlYktpdDIvQ2hhbmdlTG9nCisrKyBiL1NvdXJjZS9XZWJLaXQyL0NoYW5nZUxvZwpAQCAt
MSwzICsxLDEyIEBACisyMDE1LTA3LTAzICBDaHJpcyBEdW1leiAgPGNkdW1lekBhcHBsZS5jb20+
CisKKyAgICAgICAgRHJvcCBSZWZQdHI6OmNsZWFyKCkgbWV0aG9kCisgICAgICAgIGh0dHBzOi8v
YnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0xNDY1NTYKKworICAgICAgICBSZXZpZXdl
ZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICBEcm9wIFJlZlB0cjo6Y2xlYXIoKSBtZXRo
b2QgaW4gZmF2b3Igb2YgIj0gbnVsbHB0cjsiIHBhdHRlcm4uICAgICAgICAKKwogMjAxNS0wNy0w
MyAgRGFuIEJlcm5zdGVpbiAgPG1pdHpAYXBwbGUuY29tPgogCiAgICAgICAgIFtYY29kZV0gVXBk
YXRlIHNvbWUgYnVpbGQgc2V0dGluZ3MgYXMgcmVjb21tZW5kZWQgYnkgWGNvZGUgNwpkaWZmIC0t
Z2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL0FQSS9KU1ZhbHVlUmVmLmNwcCBiL1NvdXJjZS9K
YXZhU2NyaXB0Q29yZS9BUEkvSlNWYWx1ZVJlZi5jcHAKaW5kZXggNzU5YTY1YTljN2RlM2M1NjYx
OWFiNDc0NTQ4MzQ4Njg4ZGNjNDdjMS4uNTQ0MDVlMmFmNTk3YzI0ODIzNmRlZjc2OWU4YmJjNjAy
ODk3OWQyNiAxMDA2NDQKLS0tIGEvU291cmNlL0phdmFTY3JpcHRDb3JlL0FQSS9KU1ZhbHVlUmVm
LmNwcAorKysgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvQVBJL0pTVmFsdWVSZWYuY3BwCkBAIC00
MjIsNyArNDIyLDcgQEAgSlNTdHJpbmdSZWYgSlNWYWx1ZVRvU3RyaW5nQ29weShKU0NvbnRleHRS
ZWYgY3R4LCBKU1ZhbHVlUmVmIHZhbHVlLCBKU1ZhbHVlUmVmKgogICAgIAogICAgIFJlZlB0cjxP
cGFxdWVKU1N0cmluZz4gc3RyaW5nUmVmKE9wYXF1ZUpTU3RyaW5nOjpjcmVhdGUoanNWYWx1ZS50
b1N0cmluZyhleGVjKS0+dmFsdWUoZXhlYykpKTsKICAgICBpZiAoaGFuZGxlRXhjZXB0aW9uSWZO
ZWVkZWQoZXhlYywgZXhjZXB0aW9uKSA9PSBFeGNlcHRpb25TdGF0dXM6OkRpZFRocm93KQotICAg
ICAgICBzdHJpbmdSZWYuY2xlYXIoKTsKKyAgICAgICAgc3RyaW5nUmVmID0gbnVsbHB0cjsKICAg
ICByZXR1cm4gc3RyaW5nUmVmLnJlbGVhc2UoKS5sZWFrUmVmKCk7CiB9CiAKZGlmZiAtLWdpdCBh
L1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ieXRlY29kZS9DYWxsTGlua0luZm8uY3BwIGIvU291cmNl
L0phdmFTY3JpcHRDb3JlL2J5dGVjb2RlL0NhbGxMaW5rSW5mby5jcHAKaW5kZXggNzJhMGMyNDFk
ZmNjZDE2NWQ5MDMwZDVmYTg0ZWZiNjhmODFmNGIzOC4uZDkyMDA5ODc0YTkzODU3NzcyYzQzNjZm
NGQwMDliNTQ2YTMzYjlhYyAxMDA2NDQKLS0tIGEvU291cmNlL0phdmFTY3JpcHRDb3JlL2J5dGVj
b2RlL0NhbGxMaW5rSW5mby5jcHAKKysrIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL2J5dGVjb2Rl
L0NhbGxMaW5rSW5mby5jcHAKQEAgLTQzLDcgKzQzLDcgQEAgdm9pZCBDYWxsTGlua0luZm86OmNs
ZWFyU3R1YigpCiAgICAgICAgIHJldHVybjsKIAogICAgIG1fc3R1Yi0+Y2xlYXJDYWxsTm9kZXNG
b3IodGhpcyk7Ci0gICAgbV9zdHViLmNsZWFyKCk7CisgICAgbV9zdHViID0gbnVsbHB0cjsKIH0K
IAogdm9pZCBDYWxsTGlua0luZm86OnVubGluayhSZXBhdGNoQnVmZmVyJiByZXBhdGNoQnVmZmVy
KQpkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL2J5dGVjb2RlL1N0cnVjdHVyZVN0
dWJJbmZvLmggYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvYnl0ZWNvZGUvU3RydWN0dXJlU3R1Yklu
Zm8uaAppbmRleCBlYzhiNzljMWYyODUyNWJiNDg0OTVkZDFiZWM2ZjE5ZjE2MjU3NGVmLi5kNDAy
YWNlZTU3OTNiYjRmNzg2Njk1MTcxNjQxNDhlOGE3YTI3MWM4IDEwMDY0NAotLS0gYS9Tb3VyY2Uv
SmF2YVNjcmlwdENvcmUvYnl0ZWNvZGUvU3RydWN0dXJlU3R1YkluZm8uaAorKysgYi9Tb3VyY2Uv
SmF2YVNjcmlwdENvcmUvYnl0ZWNvZGUvU3RydWN0dXJlU3R1YkluZm8uaApAQCAtMTQ5LDggKzE0
OSw4IEBAIHN0cnVjdCBTdHJ1Y3R1cmVTdHViSW5mbyB7CiAgICAgewogICAgICAgICBkZXJlZigp
OwogICAgICAgICBhY2Nlc3NUeXBlID0gYWNjZXNzX3Vuc2V0OwotICAgICAgICBzdHViUm91dGlu
ZS5jbGVhcigpOwotICAgICAgICB3YXRjaHBvaW50cy5jbGVhcigpOworICAgICAgICBzdHViUm91
dGluZSA9IG51bGxwdHI7CisgICAgICAgIHdhdGNocG9pbnRzID0gbnVsbHB0cjsKICAgICB9CiAK
ICAgICB2b2lkIGRlcmVmKCk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvZGVi
dWdnZXIvRGVidWdnZXIuY3BwIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL2RlYnVnZ2VyL0RlYnVn
Z2VyLmNwcAppbmRleCA1NzQxMDY5MmUwMDgwMDc3OTc4YjM3ZWIxNjc3MDMyMzM1YzRiNGMyLi5i
YzFiNTdlNTkzYTc5OTMwNzEyODkyZGU2NTA5MzEwNmEzYWE0N2QxIDEwMDY0NAotLS0gYS9Tb3Vy
Y2UvSmF2YVNjcmlwdENvcmUvZGVidWdnZXIvRGVidWdnZXIuY3BwCisrKyBiL1NvdXJjZS9KYXZh
U2NyaXB0Q29yZS9kZWJ1Z2dlci9EZWJ1Z2dlci5jcHAKQEAgLTExNyw3ICsxMTcsNyBAQCBwdWJs
aWM6CiAgICAgewogICAgICAgICBpZiAobV9kZWJ1Z2dlci5tX2N1cnJlbnREZWJ1Z2dlckNhbGxG
cmFtZSkgewogICAgICAgICAgICAgbV9kZWJ1Z2dlci5tX2N1cnJlbnREZWJ1Z2dlckNhbGxGcmFt
ZS0+aW52YWxpZGF0ZSgpOwotICAgICAgICAgICAgbV9kZWJ1Z2dlci5tX2N1cnJlbnREZWJ1Z2dl
ckNhbGxGcmFtZSA9IDA7CisgICAgICAgICAgICBtX2RlYnVnZ2VyLm1fY3VycmVudERlYnVnZ2Vy
Q2FsbEZyYW1lID0gbnVsbHB0cjsKICAgICAgICAgfQogICAgIH0KIApkaWZmIC0tZ2l0IGEvU291
cmNlL0phdmFTY3JpcHRDb3JlL2RmZy9ERkdHcmFwaC5oIGIvU291cmNlL0phdmFTY3JpcHRDb3Jl
L2RmZy9ERkdHcmFwaC5oCmluZGV4IDJjZTdkNjBiMmEyZjhhZjdhMzM1YzU2NTEwNjk4ZDk5ZTY3
Mjg0MWIuLjUxNDhjMjZkOGUzN2U3NzMyNDRlOGQ5YjI0NDM1YjIzYWEzMDJlMjQgMTAwNjQ0Ci0t
LSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9kZmcvREZHR3JhcGguaAorKysgYi9Tb3VyY2UvSmF2
YVNjcmlwdENvcmUvZGZnL0RGR0dyYXBoLmgKQEAgLTQ0NCw3ICs0NDQsNyBAQCBwdWJsaWM6CiAg
ICAgCiAgICAgdm9pZCBraWxsQmxvY2soQmxvY2tJbmRleCBibG9ja0luZGV4KQogICAgIHsKLSAg
ICAgICAgbV9ibG9ja3NbYmxvY2tJbmRleF0uY2xlYXIoKTsKKyAgICAgICAgbV9ibG9ja3NbYmxv
Y2tJbmRleF0gPSBudWxscHRyOwogICAgIH0KICAgICAKICAgICB2b2lkIGtpbGxCbG9jayhCYXNp
Y0Jsb2NrKiBiYXNpY0Jsb2NrKQpkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL2Rm
Zy9ERkdPcGVyYXRpb25zLmNwcCBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9kZmcvREZHT3BlcmF0
aW9ucy5jcHAKaW5kZXggYTk5YTNmYTEwMjAxOGNiZTg0ZTRkMTM3NDUwZDcyNTBkNDg3ZWUwOC4u
NmY5NTEyYmE1MzRjNDkwZDRiZjk5OGFmNWQwODI0NDEyZGJiOTE0ZSAxMDA2NDQKLS0tIGEvU291
cmNlL0phdmFTY3JpcHRDb3JlL2RmZy9ERkdPcGVyYXRpb25zLmNwcAorKysgYi9Tb3VyY2UvSmF2
YVNjcmlwdENvcmUvZGZnL0RGR09wZXJhdGlvbnMuY3BwCkBAIC0xNDQ3LDcgKzE0NDcsNyBAQCBj
aGFyKiBKSVRfT1BFUkFUSU9OIHRyaWdnZXJPU1JFbnRyeU5vdygKICAgICAgICAgCiAgICAgICAg
IC8vIE9TUiBlbnRyeSBmYWlsZWQuIE9oIG5vISBUaGlzIGltcGxpZXMgdGhhdCB3ZSBuZWVkIHRv
IHJldHJ5LiBXZSByZXRyeQogICAgICAgICAvLyB3aXRob3V0IGV4cG9uZW50aWFsIGJhY2tvZmYg
YW5kIHdlIG9ubHkgZG8gdGhpcyBmb3IgdGhlIGVudHJ5IGNvZGUgYmxvY2suCi0gICAgICAgIGpp
dENvZGUtPm9zckVudHJ5QmxvY2suY2xlYXIoKTsKKyAgICAgICAgaml0Q29kZS0+b3NyRW50cnlC
bG9jayA9IG51bGxwdHI7CiAgICAgICAgIGppdENvZGUtPm9zckVudHJ5UmV0cnkgPSAwOwogICAg
ICAgICByZXR1cm4gMDsKICAgICB9CmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUv
aW5zcGVjdG9yL0NvbnNvbGVNZXNzYWdlLmNwcCBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9pbnNw
ZWN0b3IvQ29uc29sZU1lc3NhZ2UuY3BwCmluZGV4IGEwNGE5N2RjM2I0NTE0ODU2Nzc2NGY0ZDI4
ZDBmM2IyYzM4ZDFlMDYuLjlhYzBkZGVlMmRjOTBiYWY4MThmYWUzYTJkNDE2ZGQ1OGFhOTE0NDUg
MTAwNjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9pbnNwZWN0b3IvQ29uc29sZU1lc3Nh
Z2UuY3BwCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9pbnNwZWN0b3IvQ29uc29sZU1lc3Nh
Z2UuY3BwCkBAIC0yNzMsNyArMjczLDcgQEAgdm9pZCBDb25zb2xlTWVzc2FnZTo6Y2xlYXIoKQog
ICAgICAgICBtX21lc3NhZ2UgPSBBU0NJSUxpdGVyYWwoIjxtZXNzYWdlIGNvbGxlY3RlZD4iKTsK
IAogICAgIGlmIChtX2FyZ3VtZW50cykKLSAgICAgICAgbV9hcmd1bWVudHMuY2xlYXIoKTsKKyAg
ICAgICAgbV9hcmd1bWVudHMgPSBudWxscHRyOwogfQogCiBKU0M6OkV4ZWNTdGF0ZSogQ29uc29s
ZU1lc3NhZ2U6OnNjcmlwdFN0YXRlKCkgY29uc3QKZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2Ny
aXB0Q29yZS9pbnNwZWN0b3IvSlNHbG9iYWxPYmplY3RJbnNwZWN0b3JDb250cm9sbGVyLmNwcCBi
L1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9pbnNwZWN0b3IvSlNHbG9iYWxPYmplY3RJbnNwZWN0b3JD
b250cm9sbGVyLmNwcAppbmRleCA1N2Y1MmM1NTU0N2E2Mzg4NzljODJmNDBiNjhlYzNkMjJiMzJh
MDM5Li4xMWQ4NmVkMzI5NzUwMzE3MzcxNmE4NWQ5MzU4MDhmYzY3N2I1ZDQ4IDEwMDY0NAotLS0g
YS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvaW5zcGVjdG9yL0pTR2xvYmFsT2JqZWN0SW5zcGVjdG9y
Q29udHJvbGxlci5jcHAKKysrIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL2luc3BlY3Rvci9KU0ds
b2JhbE9iamVjdEluc3BlY3RvckNvbnRyb2xsZXIuY3BwCkBAIC0xMzEsNyArMTMxLDcgQEAgdm9p
ZCBKU0dsb2JhbE9iamVjdEluc3BlY3RvckNvbnRyb2xsZXI6OmRpc2Nvbm5lY3RGcm9udGVuZChE
aXNjb25uZWN0UmVhc29uIHJlYXMKICAgICBtX2FnZW50cy53aWxsRGVzdHJveUZyb250ZW5kQW5k
QmFja2VuZChyZWFzb24pOwogCiAgICAgbV9iYWNrZW5kRGlzcGF0Y2hlci0+Y2xlYXJGcm9udGVu
ZCgpOwotICAgIG1fYmFja2VuZERpc3BhdGNoZXIuY2xlYXIoKTsKKyAgICBtX2JhY2tlbmREaXNw
YXRjaGVyID0gbnVsbHB0cjsKICAgICBtX2Zyb250ZW5kQ2hhbm5lbCA9IG51bGxwdHI7CiAKICAg
ICBtX2lzQXV0b21hdGljSW5zcGVjdGlvbiA9IGZhbHNlOwpkaWZmIC0tZ2l0IGEvU291cmNlL0ph
dmFTY3JpcHRDb3JlL2luc3BlY3Rvci9hZ2VudHMvSW5zcGVjdG9yQWdlbnQuY3BwIGIvU291cmNl
L0phdmFTY3JpcHRDb3JlL2luc3BlY3Rvci9hZ2VudHMvSW5zcGVjdG9yQWdlbnQuY3BwCmluZGV4
IGJmMjQxYmE3NzgyZDljMDljYTZkYWQzNjA5MmI4MjFhNzJhODM4YWEuLjA1Mzg2OTAxZTYxZTdm
YmNkZWNlMGJjMTUyOTBkOWY1YmFjZTAxODggMTAwNjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0
Q29yZS9pbnNwZWN0b3IvYWdlbnRzL0luc3BlY3RvckFnZW50LmNwcAorKysgYi9Tb3VyY2UvSmF2
YVNjcmlwdENvcmUvaW5zcGVjdG9yL2FnZW50cy9JbnNwZWN0b3JBZ2VudC5jcHAKQEAgLTU3LDcg
KzU3LDcgQEAgdm9pZCBJbnNwZWN0b3JBZ2VudDo6ZGlkQ3JlYXRlRnJvbnRlbmRBbmRCYWNrZW5k
KEZyb250ZW5kQ2hhbm5lbCogZnJvbnRlbmRDaGFubmUKIHZvaWQgSW5zcGVjdG9yQWdlbnQ6Ondp
bGxEZXN0cm95RnJvbnRlbmRBbmRCYWNrZW5kKERpc2Nvbm5lY3RSZWFzb24pCiB7CiAgICAgbV9m
cm9udGVuZERpc3BhdGNoZXIgPSBudWxscHRyOwotICAgIG1fYmFja2VuZERpc3BhdGNoZXIuY2xl
YXIoKTsKKyAgICBtX2JhY2tlbmREaXNwYXRjaGVyID0gbnVsbHB0cjsKIAogICAgIG1fcGVuZGlu
Z0V2YWx1YXRlVGVzdENvbW1hbmRzLmNsZWFyKCk7CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZh
U2NyaXB0Q29yZS9pbnNwZWN0b3IvYWdlbnRzL0luc3BlY3RvckNvbnNvbGVBZ2VudC5jcHAgYi9T
b3VyY2UvSmF2YVNjcmlwdENvcmUvaW5zcGVjdG9yL2FnZW50cy9JbnNwZWN0b3JDb25zb2xlQWdl
bnQuY3BwCmluZGV4IDgxNGEwYzExY2Y2MDhlYzY5ODk5Y2ViZjFiYWMxNGVhYmMxOWJhZDYuLjlm
ZmQwNDg0ZjI4MDYyYzI5YmNhZGI0YjliOWQzNzBiMWY3MTEzN2YgMTAwNjQ0Ci0tLSBhL1NvdXJj
ZS9KYXZhU2NyaXB0Q29yZS9pbnNwZWN0b3IvYWdlbnRzL0luc3BlY3RvckNvbnNvbGVBZ2VudC5j
cHAKKysrIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL2luc3BlY3Rvci9hZ2VudHMvSW5zcGVjdG9y
Q29uc29sZUFnZW50LmNwcApAQCAtNjQsNyArNjQsNyBAQCB2b2lkIEluc3BlY3RvckNvbnNvbGVB
Z2VudDo6ZGlkQ3JlYXRlRnJvbnRlbmRBbmRCYWNrZW5kKEZyb250ZW5kQ2hhbm5lbCogZnJvbnRl
bgogdm9pZCBJbnNwZWN0b3JDb25zb2xlQWdlbnQ6OndpbGxEZXN0cm95RnJvbnRlbmRBbmRCYWNr
ZW5kKERpc2Nvbm5lY3RSZWFzb24pCiB7CiAgICAgbV9mcm9udGVuZERpc3BhdGNoZXIgPSBudWxs
cHRyOwotICAgIG1fYmFja2VuZERpc3BhdGNoZXIuY2xlYXIoKTsKKyAgICBtX2JhY2tlbmREaXNw
YXRjaGVyID0gbnVsbHB0cjsKIAogICAgIFN0cmluZyBlcnJvclN0cmluZzsKICAgICBkaXNhYmxl
KGVycm9yU3RyaW5nKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9pbnNwZWN0
b3IvYWdlbnRzL0luc3BlY3RvckRlYnVnZ2VyQWdlbnQuY3BwIGIvU291cmNlL0phdmFTY3JpcHRD
b3JlL2luc3BlY3Rvci9hZ2VudHMvSW5zcGVjdG9yRGVidWdnZXJBZ2VudC5jcHAKaW5kZXggYTc1
ZTBiMmI2ZWM3ZThjOWRkZDY3N2ZmOTQ4NWM5ZThmZTlkYmU0ZC4uZjBmMGI0OGRkNGQ0N2NkZTNh
MGYyYTg4MjJjNDYzMjVkZTVhYWI0ZiAxMDA2NDQKLS0tIGEvU291cmNlL0phdmFTY3JpcHRDb3Jl
L2luc3BlY3Rvci9hZ2VudHMvSW5zcGVjdG9yRGVidWdnZXJBZ2VudC5jcHAKKysrIGIvU291cmNl
L0phdmFTY3JpcHRDb3JlL2luc3BlY3Rvci9hZ2VudHMvSW5zcGVjdG9yRGVidWdnZXJBZ2VudC5j
cHAKQEAgLTc3LDcgKzc3LDcgQEAgdm9pZCBJbnNwZWN0b3JEZWJ1Z2dlckFnZW50OjpkaWRDcmVh
dGVGcm9udGVuZEFuZEJhY2tlbmQoRnJvbnRlbmRDaGFubmVsKiBmcm9udGUKIHZvaWQgSW5zcGVj
dG9yRGVidWdnZXJBZ2VudDo6d2lsbERlc3Ryb3lGcm9udGVuZEFuZEJhY2tlbmQoRGlzY29ubmVj
dFJlYXNvbiByZWFzb24pCiB7CiAgICAgbV9mcm9udGVuZERpc3BhdGNoZXIgPSBudWxscHRyOwot
ICAgIG1fYmFja2VuZERpc3BhdGNoZXIuY2xlYXIoKTsKKyAgICBtX2JhY2tlbmREaXNwYXRjaGVy
ID0gbnVsbHB0cjsKIAogICAgIGJvb2wgc2tpcFJlY29tcGlsZSA9IHJlYXNvbiA9PSBEaXNjb25u
ZWN0UmVhc29uOjpJbnNwZWN0ZWRUYXJnZXREZXN0cm95ZWQ7CiAgICAgZGlzYWJsZShza2lwUmVj
b21waWxlKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9pbnNwZWN0b3IvYWdl
bnRzL0pTR2xvYmFsT2JqZWN0UnVudGltZUFnZW50LmNwcCBiL1NvdXJjZS9KYXZhU2NyaXB0Q29y
ZS9pbnNwZWN0b3IvYWdlbnRzL0pTR2xvYmFsT2JqZWN0UnVudGltZUFnZW50LmNwcAppbmRleCA2
NThjNjdhYjE1Zjg5NTIwNWM1NWJiNTI4OWMwYjlkMmU0ZTQwYzYwLi40NjA0OWY1NmM3NWFkNzM5
OGYzYzlkMDc1ODQ2Y2U3YTFjMTI4MjY4IDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENv
cmUvaW5zcGVjdG9yL2FnZW50cy9KU0dsb2JhbE9iamVjdFJ1bnRpbWVBZ2VudC5jcHAKKysrIGIv
U291cmNlL0phdmFTY3JpcHRDb3JlL2luc3BlY3Rvci9hZ2VudHMvSlNHbG9iYWxPYmplY3RSdW50
aW1lQWdlbnQuY3BwCkBAIC00OSw3ICs0OSw3IEBAIHZvaWQgSlNHbG9iYWxPYmplY3RSdW50aW1l
QWdlbnQ6OmRpZENyZWF0ZUZyb250ZW5kQW5kQmFja2VuZChGcm9udGVuZENoYW5uZWwqIGZyCiB2
b2lkIEpTR2xvYmFsT2JqZWN0UnVudGltZUFnZW50Ojp3aWxsRGVzdHJveUZyb250ZW5kQW5kQmFj
a2VuZChEaXNjb25uZWN0UmVhc29uIHJlYXNvbikKIHsKICAgICBtX2Zyb250ZW5kRGlzcGF0Y2hl
ciA9IG51bGxwdHI7Ci0gICAgbV9iYWNrZW5kRGlzcGF0Y2hlci5jbGVhcigpOworICAgIG1fYmFj
a2VuZERpc3BhdGNoZXIgPSBudWxscHRyOwogCiAgICAgSW5zcGVjdG9yUnVudGltZUFnZW50Ojp3
aWxsRGVzdHJveUZyb250ZW5kQW5kQmFja2VuZChyZWFzb24pOwogfQpkaWZmIC0tZ2l0IGEvU291
cmNlL0phdmFTY3JpcHRDb3JlL3BhcnNlci9QYXJzZXIuY3BwIGIvU291cmNlL0phdmFTY3JpcHRD
b3JlL3BhcnNlci9QYXJzZXIuY3BwCmluZGV4IGRjMGY1NWYxMzJmYTBlMThmODQ3YTg1NGM4Y2Zm
NTZiMGE2MDk0OWYuLmEzYzVlMzEyMThiMDM5MmVlNzYxNmZlZDYxZDlkMzk1MmI0YTQ4ZTYgMTAw
NjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9wYXJzZXIvUGFyc2VyLmNwcAorKysgYi9T
b3VyY2UvSmF2YVNjcmlwdENvcmUvcGFyc2VyL1BhcnNlci5jcHAKQEAgLTQ5MSw3ICs0OTEsNyBA
QCB0ZW1wbGF0ZSA8Y2xhc3MgVHJlZUJ1aWxkZXI+IFRyZWVFeHByZXNzaW9uIFBhcnNlcjxMZXhl
clR5cGU+OjpwYXJzZVZhckRlY2xhcmF0aQogICAgIEpTVG9rZW4gbGFzdElkZW50VG9rZW47IAog
ICAgIGRvIHsKICAgICAgICAgbGFzdElkZW50ID0gMDsKLSAgICAgICAgbGFzdFBhdHRlcm4gPSAw
OworICAgICAgICBsYXN0UGF0dGVybiA9IFRyZWVEZXN0cnVjdHVyaW5nUGF0dGVybigwKTsKICAg
ICAgICAgSlNUb2tlbkxvY2F0aW9uIGxvY2F0aW9uKHRva2VuTG9jYXRpb24oKSk7CiAgICAgICAg
IG5leHQoKTsKICAgICAgICAgVHJlZUV4cHJlc3Npb24gbm9kZSA9IDA7CkBAIC04OTQsNyArODk0
LDcgQEAgdGVtcGxhdGUgPGNsYXNzIFRyZWVCdWlsZGVyPiBUcmVlU3RhdGVtZW50IFBhcnNlcjxM
ZXhlclR5cGU+OjpwYXJzZUZvclN0YXRlbWVudCgKICAgICAgICAgICAgIGRlY2xzRW5kID0gbGFz
dFRva2VuRW5kUG9zaXRpb24oKTsKICAgICAgICAgICAgIGlmIChwYXR0ZXJuICYmIChtYXRjaChJ
TlRPS0VOKSB8fCAobWF0Y2goSURFTlQpICYmICptX3Rva2VuLm1fZGF0YS5pZGVudCA9PSBtX3Zt
LT5wcm9wZXJ0eU5hbWVzLT5vZikpKQogICAgICAgICAgICAgICAgIGdvdG8gZW51bWVyYXRpb25M
b29wOwotICAgICAgICAgICAgcGF0dGVybiA9IDA7CisgICAgICAgICAgICBwYXR0ZXJuID0gVHJl
ZURlc3RydWN0dXJpbmdQYXR0ZXJuKDApOwogICAgICAgICAgICAgcmVzdG9yZVNhdmVQb2ludChz
YXZlUG9pbnQpOwogICAgICAgICB9CiAgICAgICAgIG1fYWxsb3dzSW4gPSBmYWxzZTsKZGlmZiAt
LWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0V4ZWN1dGFibGUuY3BwIGIvU291
cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvRXhlY3V0YWJsZS5jcHAKaW5kZXggNmNiMDliMDFi
MzgyNWI4NDU2ZTk1YzFhYmM5ZGZmMmI4MDZlNDExOC4uNTUyNDBmZDkxZjdiYzc4NDJmMTNlNTky
ODFkMTBkMjFkODZjNGY1MCAxMDA2NDQKLS0tIGEvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRp
bWUvRXhlY3V0YWJsZS5jcHAKKysrIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvRXhl
Y3V0YWJsZS5jcHAKQEAgLTUyLDggKzUyLDggQEAgdm9pZCBFeGVjdXRhYmxlQmFzZTo6ZGVzdHJv
eShKU0NlbGwqIGNlbGwpCiB2b2lkIEV4ZWN1dGFibGVCYXNlOjpjbGVhckNvZGUoKQogewogI2lm
IEVOQUJMRShKSVQpCi0gICAgbV9qaXRDb2RlRm9yQ2FsbC5jbGVhcigpOwotICAgIG1faml0Q29k
ZUZvckNvbnN0cnVjdC5jbGVhcigpOworICAgIG1faml0Q29kZUZvckNhbGwgPSBudWxscHRyOwor
ICAgIG1faml0Q29kZUZvckNvbnN0cnVjdCA9IG51bGxwdHI7CiAgICAgbV9qaXRDb2RlRm9yQ2Fs
bFdpdGhBcml0eUNoZWNrID0gTWFjcm9Bc3NlbWJsZXJDb2RlUHRyKCk7CiAgICAgbV9qaXRDb2Rl
Rm9yQ29uc3RydWN0V2l0aEFyaXR5Q2hlY2sgPSBNYWNyb0Fzc2VtYmxlckNvZGVQdHIoKTsKICAg
ICBtX2ppdENvZGVGb3JDYWxsV2l0aEFyaXR5Q2hlY2tBbmRQcmVzZXJ2ZVJlZ3MgPSBNYWNyb0Fz
c2VtYmxlckNvZGVQdHIoKTsKQEAgLTQ2NCw3ICs0NjQsNyBAQCB2b2lkIEV2YWxFeGVjdXRhYmxl
Ojp1bmxpbmtDYWxscygpCiAKIHZvaWQgRXZhbEV4ZWN1dGFibGU6OmNsZWFyQ29kZSgpCiB7Ci0g
ICAgbV9ldmFsQ29kZUJsb2NrLmNsZWFyKCk7CisgICAgbV9ldmFsQ29kZUJsb2NrID0gbnVsbHB0
cjsKICAgICBtX3VubGlua2VkRXZhbENvZGVCbG9jay5jbGVhcigpOwogICAgIEJhc2U6OmNsZWFy
Q29kZSgpOwogfQpAQCAtNTQzLDcgKzU0Myw3IEBAIHZvaWQgUHJvZ3JhbUV4ZWN1dGFibGU6OnZp
c2l0Q2hpbGRyZW4oSlNDZWxsKiBjZWxsLCBTbG90VmlzaXRvciYgdmlzaXRvcikKIAogdm9pZCBQ
cm9ncmFtRXhlY3V0YWJsZTo6Y2xlYXJDb2RlKCkKIHsKLSAgICBtX3Byb2dyYW1Db2RlQmxvY2su
Y2xlYXIoKTsKKyAgICBtX3Byb2dyYW1Db2RlQmxvY2sgPSBudWxscHRyOwogICAgIG1fdW5saW5r
ZWRQcm9ncmFtQ29kZUJsb2NrLmNsZWFyKCk7CiAgICAgQmFzZTo6Y2xlYXJDb2RlKCk7CiB9CkBA
IC01ODcsOCArNTg3LDggQEAgdm9pZCBGdW5jdGlvbkV4ZWN1dGFibGU6OmNsZWFyVW5saW5rZWRD
b2RlRm9yUmVjb21waWxhdGlvbigpCiAKIHZvaWQgRnVuY3Rpb25FeGVjdXRhYmxlOjpjbGVhckNv
ZGUoKQogewotICAgIG1fY29kZUJsb2NrRm9yQ2FsbC5jbGVhcigpOwotICAgIG1fY29kZUJsb2Nr
Rm9yQ29uc3RydWN0LmNsZWFyKCk7CisgICAgbV9jb2RlQmxvY2tGb3JDYWxsID0gbnVsbHB0cjsK
KyAgICBtX2NvZGVCbG9ja0ZvckNvbnN0cnVjdCA9IG51bGxwdHI7CiAgICAgQmFzZTo6Y2xlYXJD
b2RlKCk7CiB9CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0pT
TG9jay5jcHAgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9KU0xvY2suY3BwCmluZGV4
IDJlNzk5NGNmMjdjM2M1NGQ1ZDU3YzM3MDAwZGQxODBlYzRkZjlmMDUuLmMyZWUwYTU1MzJjMGI1
MTkzNjg3MTA5ZDlhMzJlYzRhMTQ0NWQ4YmQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0
Q29yZS9ydW50aW1lL0pTTG9jay5jcHAKKysrIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRp
bWUvSlNMb2NrLmNwcApAQCAtNzMsNyArNzMsNyBAQCB2b2lkIEpTTG9ja0hvbGRlcjo6aW5pdCgp
CiBKU0xvY2tIb2xkZXI6On5KU0xvY2tIb2xkZXIoKQogewogICAgIFJlZlB0cjxKU0xvY2s+IGFw
aUxvY2soJm1fdm0tPmFwaUxvY2soKSk7Ci0gICAgbV92bS5jbGVhcigpOworICAgIG1fdm0gPSBu
dWxscHRyOwogICAgIGFwaUxvY2stPnVubG9jaygpOwogfQogCmRpZmYgLS1naXQgYS9Tb3VyY2Uv
SmF2YVNjcmlwdENvcmUvcnVudGltZS9TdHJ1Y3R1cmUuY3BwIGIvU291cmNlL0phdmFTY3JpcHRD
b3JlL3J1bnRpbWUvU3RydWN0dXJlLmNwcAppbmRleCBmNzcxYjYwYmNiNjVkZThlNTRjNmE2MTFj
N2QyNmY4NjU5OGIwNzRkLi4zOTg1ODA1Y2Y1NWM4M2MxZGE2NTRhMTM1YzQ1MTBjNzUwMTcwYjE5
IDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9TdHJ1Y3R1cmUuY3Bw
CisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL1N0cnVjdHVyZS5jcHAKQEAgLTcz
Nyw3ICs3MzcsNyBAQCB2b2lkIFN0cnVjdHVyZTo6cGluKCkKICAgICBBU1NFUlQocHJvcGVydHlU
YWJsZSgpKTsKICAgICBzZXRJc1Bpbm5lZFByb3BlcnR5VGFibGUodHJ1ZSk7CiAgICAgY2xlYXJQ
cmV2aW91c0lEKCk7Ci0gICAgbV9uYW1lSW5QcmV2aW91cy5jbGVhcigpOworICAgIG1fbmFtZUlu
UHJldmlvdXMgPSBudWxscHRyOwogfQogCiB2b2lkIFN0cnVjdHVyZTo6YWxsb2NhdGVSYXJlRGF0
YShWTSYgdm0pCmRpZmYgLS1naXQgYS9Tb3VyY2UvV1RGL3d0Zi9SZWZQdHIuaCBiL1NvdXJjZS9X
VEYvd3RmL1JlZlB0ci5oCmluZGV4IDI5MTFmMGRhOTA2MmI3NmNjZDJhZDE1NDQwYjljZDI1ODVk
NTg4ODYuLjdjODMwNWUzOGVkNzJiNDQ3N2RhNWYyZTIyNzUwNzY0YTc4M2UyNjQgMTAwNjQ0Ci0t
LSBhL1NvdXJjZS9XVEYvd3RmL1JlZlB0ci5oCisrKyBiL1NvdXJjZS9XVEYvd3RmL1JlZlB0ci5o
CkBAIC02MCw3ICs2MCw2IEBAIHB1YmxpYzoKIAogICAgIFQqIGdldCgpIGNvbnN0IHsgcmV0dXJu
IG1fcHRyOyB9CiAgICAgCi0gICAgdm9pZCBjbGVhcigpOwogICAgIFBhc3NSZWZQdHI8VD4gcmVs
ZWFzZSgpIHsgUGFzc1JlZlB0cjxUPiB0bXAgPSBhZG9wdFJlZihtX3B0cik7IG1fcHRyID0gbnVs
bHB0cjsgcmV0dXJuIHRtcDsgfQogICAgIFJlZjxUPiByZWxlYXNlTm9uTnVsbCgpIHsgQVNTRVJU
KG1fcHRyKTsgUmVmPFQ+IHRtcChhZG9wdFJlZigqbV9wdHIpKTsgbV9wdHIgPSBudWxscHRyOyBy
ZXR1cm4gdG1wOyB9CiAKQEAgLTc3LDYgKzc2LDcgQEAgcHVibGljOgogICAgIAogICAgIFJlZlB0
ciYgb3BlcmF0b3I9KGNvbnN0IFJlZlB0ciYpOwogICAgIFJlZlB0ciYgb3BlcmF0b3I9KFQqKTsK
KyAgICBSZWZQdHImIG9wZXJhdG9yPShzdGQ6Om51bGxwdHJfdCk7CiAgICAgUmVmUHRyJiBvcGVy
YXRvcj0oY29uc3QgUGFzc1JlZlB0cjxUPiYpOwogICAgIHRlbXBsYXRlPHR5cGVuYW1lIFU+IFJl
ZlB0ciYgb3BlcmF0b3I9KGNvbnN0IFJlZlB0cjxVPiYpOwogICAgIHRlbXBsYXRlPHR5cGVuYW1l
IFU+IFJlZlB0ciYgb3BlcmF0b3I9KGNvbnN0IFBhc3NSZWZQdHI8VT4mKTsKQEAgLTEwOSwxMSAr
MTA5LDYgQEAgdGVtcGxhdGU8dHlwZW5hbWUgVD4gdGVtcGxhdGU8dHlwZW5hbWUgVT4gaW5saW5l
IFJlZlB0cjxUPjo6UmVmUHRyKFJlZjxVPiYmIHJlZmUKIHsKIH0KIAotdGVtcGxhdGU8dHlwZW5h
bWUgVD4gaW5saW5lIHZvaWQgUmVmUHRyPFQ+OjpjbGVhcigpCi17Ci0gICAgZGVyZWZJZk5vdE51
bGwoc3RkOjpleGNoYW5nZShtX3B0ciwgbnVsbHB0cikpOwotfQotCiB0ZW1wbGF0ZTx0eXBlbmFt
ZSBUPgogaW5saW5lIFQqIFJlZlB0cjxUPjo6bGVha1JlZigpCiB7CkBAIC0xNDEsNiArMTM2LDEy
IEBAIHRlbXBsYXRlPHR5cGVuYW1lIFQ+IGlubGluZSBSZWZQdHI8VD4mIFJlZlB0cjxUPjo6b3Bl
cmF0b3I9KFQqIG9wdHIpCiAgICAgcmV0dXJuICp0aGlzOwogfQogCit0ZW1wbGF0ZTx0eXBlbmFt
ZSBUPiBpbmxpbmUgUmVmUHRyPFQ+JiBSZWZQdHI8VD46Om9wZXJhdG9yPShzdGQ6Om51bGxwdHJf
dCkKK3sKKyAgICBkZXJlZklmTm90TnVsbChzdGQ6OmV4Y2hhbmdlKG1fcHRyLCBudWxscHRyKSk7
CisgICAgcmV0dXJuICp0aGlzOworfQorCiB0ZW1wbGF0ZTx0eXBlbmFtZSBUPiBpbmxpbmUgUmVm
UHRyPFQ+JiBSZWZQdHI8VD46Om9wZXJhdG9yPShjb25zdCBQYXNzUmVmUHRyPFQ+JiBvKQogewog
ICAgIFJlZlB0ciBwdHIgPSBvOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dURi93dGYvdGV4dC9TdHJp
bmdCdWlsZGVyLmggYi9Tb3VyY2UvV1RGL3d0Zi90ZXh0L1N0cmluZ0J1aWxkZXIuaAppbmRleCBi
ZTVjMTE3MmNjY2I5OThhNDEwNTgwMzQ1YWY0MGMyOWNiMTM0OThlLi4xZGM0YWM2MjI5NDBjMGE1
MzQyZDc2YzkyMmEzNmRkNjE4MmE5MWY4IDEwMDY0NAotLS0gYS9Tb3VyY2UvV1RGL3d0Zi90ZXh0
L1N0cmluZ0J1aWxkZXIuaAorKysgYi9Tb3VyY2UvV1RGL3d0Zi90ZXh0L1N0cmluZ0J1aWxkZXIu
aApAQCAtMjY0LDcgKzI2NCw3IEBAIHB1YmxpYzoKICAgICB7CiAgICAgICAgIG1fbGVuZ3RoID0g
MDsKICAgICAgICAgbV9zdHJpbmcgPSBTdHJpbmcoKTsKLSAgICAgICAgbV9idWZmZXIgPSAwOwor
ICAgICAgICBtX2J1ZmZlciA9IG51bGxwdHI7CiAgICAgICAgIG1fYnVmZmVyQ2hhcmFjdGVyczgg
PSAwOwogICAgICAgICBtX2lzOEJpdCA9IHRydWU7CiAgICAgfQpkaWZmIC0tZ2l0IGEvU291cmNl
L1dlYkNvcmUvTW9kdWxlcy9pbmRleGVkZGIvSURCQ3Vyc29yLmNwcCBiL1NvdXJjZS9XZWJDb3Jl
L01vZHVsZXMvaW5kZXhlZGRiL0lEQkN1cnNvci5jcHAKaW5kZXggYTIwZTFlMWFjZTI0OTk0ODRk
Zjc0NTkxOThhMTExZTE4NDI5MGU2ZC4uYzQwMTFkYzI3NTU1ZjQ4ZmNlMmQ2ZDJlMTY0MDhmMWQ3
YTc2MTM2ZiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9pbmRleGVkZGIvSURC
Q3Vyc29yLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL2luZGV4ZWRkYi9JREJDdXJz
b3IuY3BwCkBAIC0yNTksNyArMjU5LDcgQEAgdm9pZCBJREJDdXJzb3I6OmNsb3NlKCkKICAgICBt
X3RyYW5zYWN0aW9uTm90aWZpZXIuY3Vyc29yRmluaXNoZWQoKTsKICAgICBpZiAobV9yZXF1ZXN0
KSB7CiAgICAgICAgIG1fcmVxdWVzdC0+ZmluaXNoQ3Vyc29yKCk7Ci0gICAgICAgIG1fcmVxdWVz
dC5jbGVhcigpOworICAgICAgICBtX3JlcXVlc3QgPSBudWxscHRyOwogICAgIH0KIH0KIApkaWZm
IC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9pbmRleGVkZGIvSURCRGF0YWJhc2VCYWNr
ZW5kLmNwcCBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvaW5kZXhlZGRiL0lEQkRhdGFiYXNlQmFj
a2VuZC5jcHAKaW5kZXggZmMyMzEwMmRkYWE5YTM3NzA5NDBlZjRlYjA0YzEzODAzODM0ZGMzZi4u
MDllNGUyN2I4ZjkwOWUxNzgwOWI0OWQwMzRlM2I4YzRlNDVlZjUzNyAxMDA2NDQKLS0tIGEvU291
cmNlL1dlYkNvcmUvTW9kdWxlcy9pbmRleGVkZGIvSURCRGF0YWJhc2VCYWNrZW5kLmNwcAorKysg
Yi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL2luZGV4ZWRkYi9JREJEYXRhYmFzZUJhY2tlbmQuY3Bw
CkBAIC0zMzMsNyArMzMzLDcgQEAgdm9pZCBJREJEYXRhYmFzZUJhY2tlbmQ6OnRyYW5zYWN0aW9u
RmluaXNoZWQoSURCVHJhbnNhY3Rpb25CYWNrZW5kKiByYXdUcmFuc2FjdGkKICAgICBtX3RyYW5z
YWN0aW9ucy5yZW1vdmUodHJhbnNhY3Rpb24tPmlkKCkpOwogICAgIGlmICh0cmFuc2FjdGlvbi0+
bW9kZSgpID09IEluZGV4ZWREQjo6VHJhbnNhY3Rpb25Nb2RlOjpWZXJzaW9uQ2hhbmdlKSB7CiAg
ICAgICAgIEFTU0VSVCh0cmFuc2FjdGlvbi5nZXQoKSA9PSBtX3J1bm5pbmdWZXJzaW9uQ2hhbmdl
VHJhbnNhY3Rpb24uZ2V0KCkpOwotICAgICAgICBtX3J1bm5pbmdWZXJzaW9uQ2hhbmdlVHJhbnNh
Y3Rpb24uY2xlYXIoKTsKKyAgICAgICAgbV9ydW5uaW5nVmVyc2lvbkNoYW5nZVRyYW5zYWN0aW9u
ID0gbnVsbHB0cjsKICAgICB9CiB9CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL01vZHVs
ZXMvaW5kZXhlZGRiL0lEQk9iamVjdFN0b3JlLmNwcCBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMv
aW5kZXhlZGRiL0lEQk9iamVjdFN0b3JlLmNwcAppbmRleCBlOGJmOWRkZWZlNDk3YjU2M2Q5OGYw
ODUwZWFlOGQ0ODdlYjIyNWI5Li5hNmQyODE0MmY2MjIyMjJmOTQzZjhkNGUxMzViNDI0ODMxMjAz
MDE5IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL2luZGV4ZWRkYi9JREJPYmpl
Y3RTdG9yZS5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9pbmRleGVkZGIvSURCT2Jq
ZWN0U3RvcmUuY3BwCkBAIC0zMzcsNyArMzM3LDcgQEAgcHJpdmF0ZToKICAgICAgICAgICAgIC8v
IE5vdyB0aGF0IHdlIGFyZSBkb25lIGluZGV4aW5nLCB0ZWxsIHRoZSBiYWNrZW5kIHRvIGdvCiAg
ICAgICAgICAgICAvLyBiYWNrIHRvIHByb2Nlc3NpbmcgdGFza3Mgb2YgdHlwZSBOb3JtYWxUYXNr
LgogICAgICAgICAgICAgbV9kYXRhYmFzZUJhY2tlbmQtPnNldEluZGV4ZXNSZWFkeShtX3RyYW5z
YWN0aW9uSWQsIG1fb2JqZWN0U3RvcmVJZCwgaW5kZXhJZHMpOwotICAgICAgICAgICAgbV9kYXRh
YmFzZUJhY2tlbmQuY2xlYXIoKTsKKyAgICAgICAgICAgIG1fZGF0YWJhc2VCYWNrZW5kID0gbnVs
bHB0cjsKICAgICAgICAgfQogCiAgICAgfQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvTW9k
dWxlcy9pbmRleGVkZGIvSURCT3BlbkRCUmVxdWVzdC5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1
bGVzL2luZGV4ZWRkYi9JREJPcGVuREJSZXF1ZXN0LmNwcAppbmRleCA2Mzc4MDdlYWQ5NGNiNzhj
OWM5ZDkzNThkZWQ2NzBmZmYyMDE3N2RjLi43MTU3OWIwNTk1NTYyNGUwM2YyYWUxNzI3ZmM1MDQ2
NzkyNTA0N2I0IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL2luZGV4ZWRkYi9J
REJPcGVuREJSZXF1ZXN0LmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL2luZGV4ZWRk
Yi9JREJPcGVuREJSZXF1ZXN0LmNwcApAQCAtMTQyLDcgKzE0Miw3IEBAIGJvb2wgSURCT3BlbkRC
UmVxdWVzdDo6ZGlzcGF0Y2hFdmVudChQYXNzUmVmUHRyPEV2ZW50PiBldmVudCkKICAgICAvLyBJ
ZiB0aGUgY29ubmVjdGlvbiBjbG9zZWQgYmV0d2VlbiBvblVwZ3JhZGVOZWVkZWQgYW5kIHRoZSBk
ZWxpdmVyeSBvZiB0aGUgInN1Y2Nlc3MiIGV2ZW50LAogICAgIC8vIGFuICJlcnJvciIgZXZlbnQg
c2hvdWxkIGJlIGZpcmVkIGluc3RlYWQuCiAgICAgaWYgKGV2ZW50LT50eXBlKCkgPT0gZXZlbnRO
YW1lcygpLnN1Y2Nlc3NFdmVudCAmJiBtX3Jlc3VsdC0+dHlwZSgpID09IElEQkFueTo6SURCRGF0
YWJhc2VUeXBlICYmIG1fcmVzdWx0LT5pZGJEYXRhYmFzZSgpLT5pc0Nsb3NlUGVuZGluZygpKSB7
Ci0gICAgICAgIG1fcmVzdWx0LmNsZWFyKCk7CisgICAgICAgIG1fcmVzdWx0ID0gbnVsbHB0cjsK
ICAgICAgICAgb25FcnJvcihJREJEYXRhYmFzZUVycm9yOjpjcmVhdGUoSURCRGF0YWJhc2VFeGNl
cHRpb246OkFib3J0RXJyb3IsICJUaGUgY29ubmVjdGlvbiB3YXMgY2xvc2VkLiIpKTsKICAgICAg
ICAgcmV0dXJuIGZhbHNlOwogICAgIH0KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL01vZHVs
ZXMvaW5kZXhlZGRiL0lEQlJlcXVlc3QuY3BwIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9pbmRl
eGVkZGIvSURCUmVxdWVzdC5jcHAKaW5kZXggOWU1MDFiNGY4NjI2YjA0MDE2ZGVjZDk1ODYxNmE4
MTUzZmE2NWFlZi4uODY0ZGU1MzU3NTMxMWIwOWUyODc4NGEzZGE2NWM4MWZmOGE4NDVhZiAxMDA2
NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9pbmRleGVkZGIvSURCUmVxdWVzdC5jcHAK
KysrIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9pbmRleGVkZGIvSURCUmVxdWVzdC5jcHAKQEAg
LTE3MCw5ICsxNzAsOSBAQCB2b2lkIElEQlJlcXVlc3Q6OmFib3J0KCkKICAgICBtX2VucXVldWVk
RXZlbnRzLmNsZWFyKCk7CiAKICAgICBtX2Vycm9yQ29kZSA9IDA7Ci0gICAgbV9lcnJvci5jbGVh
cigpOworICAgIG1fZXJyb3IgPSBudWxscHRyOwogICAgIG1fZXJyb3JNZXNzYWdlID0gU3RyaW5n
KCk7Ci0gICAgbV9yZXN1bHQuY2xlYXIoKTsKKyAgICBtX3Jlc3VsdCA9IG51bGxwdHI7CiAgICAg
b25FcnJvcihJREJEYXRhYmFzZUVycm9yOjpjcmVhdGUoSURCRGF0YWJhc2VFeGNlcHRpb246OkFi
b3J0RXJyb3IpKTsKICAgICBtX3JlcXVlc3RBYm9ydGVkID0gdHJ1ZTsKIH0KQEAgLTE5NCwxMCAr
MTk0LDEwIEBAIHZvaWQgSURCUmVxdWVzdDo6c2V0UGVuZGluZ0N1cnNvcihQYXNzUmVmUHRyPElE
QkN1cnNvcj4gY3Vyc29yKQogICAgIEFTU0VSVChjdXJzb3IgPT0gZ2V0UmVzdWx0Q3Vyc29yKCkp
OwogCiAgICAgbV9wZW5kaW5nQ3Vyc29yID0gY3Vyc29yOwotICAgIG1fcmVzdWx0LmNsZWFyKCk7
CisgICAgbV9yZXN1bHQgPSBudWxscHRyOwogICAgIG1fcmVhZHlTdGF0ZSA9IFBFTkRJTkc7CiAg
ICAgbV9lcnJvckNvZGUgPSAwOwotICAgIG1fZXJyb3IuY2xlYXIoKTsKKyAgICBtX2Vycm9yID0g
bnVsbHB0cjsKICAgICBtX2Vycm9yTWVzc2FnZSA9IFN0cmluZygpOwogICAgIG1fdHJhbnNhY3Rp
b24tPnJlZ2lzdGVyUmVxdWVzdCh0aGlzKTsKIH0KQEAgLTI1Niw3ICsyNTYsNyBAQCB2b2lkIElE
QlJlcXVlc3Q6Om9uRXJyb3IoUGFzc1JlZlB0cjxJREJEYXRhYmFzZUVycm9yPiBlcnJvcikKICAg
ICBtX2Vycm9yQ29kZSA9IGVycm9yLT5jb2RlKCk7CiAgICAgbV9lcnJvck1lc3NhZ2UgPSBlcnJv
ci0+bWVzc2FnZSgpOwogICAgIG1fZXJyb3IgPSBET01FcnJvcjo6Y3JlYXRlKElEQkRhdGFiYXNl
RXhjZXB0aW9uOjpnZXRFcnJvck5hbWUoZXJyb3ItPmlkYkNvZGUoKSkpOwotICAgIG1fcGVuZGlu
Z0N1cnNvci5jbGVhcigpOworICAgIG1fcGVuZGluZ0N1cnNvciA9IG51bGxwdHI7CiAgICAgZW5x
dWV1ZUV2ZW50KEV2ZW50OjpjcmVhdGUoZXZlbnROYW1lcygpLmVycm9yRXZlbnQsIHRydWUsIHRy
dWUpKTsKIH0KIApAQCAtNDA0LDcgKzQwNCw3IEBAIHZvaWQgSURCUmVxdWVzdDo6b25TdWNjZXNz
SW50ZXJuYWwoY29uc3QgRGVwcmVjYXRlZDo6U2NyaXB0VmFsdWUmIHZhbHVlKQogICAgIG1fcmVz
dWx0ID0gSURCQW55OjpjcmVhdGUodmFsdWUpOwogICAgIGlmIChtX3BlbmRpbmdDdXJzb3IpIHsK
ICAgICAgICAgbV9wZW5kaW5nQ3Vyc29yLT5jbG9zZSgpOwotICAgICAgICBtX3BlbmRpbmdDdXJz
b3IuY2xlYXIoKTsKKyAgICAgICAgbV9wZW5kaW5nQ3Vyc29yID0gbnVsbHB0cjsKICAgICB9CiAg
ICAgZW5xdWV1ZUV2ZW50KGNyZWF0ZVN1Y2Nlc3NFdmVudCgpKTsKIH0KQEAgLTU1Myw3ICs1NTMs
NyBAQCB2b2lkIElEQlJlcXVlc3Q6OnRyYW5zYWN0aW9uRGlkRmluaXNoQW5kRGlzcGF0Y2goKQog
ICAgIEFTU0VSVChtX3RyYW5zYWN0aW9uLT5pc1ZlcnNpb25DaGFuZ2UoKSk7CiAgICAgQVNTRVJU
KG1fcmVhZHlTdGF0ZSA9PSBET05FKTsKICAgICBBU1NFUlQoc2NyaXB0RXhlY3V0aW9uQ29udGV4
dCgpKTsKLSAgICBtX3RyYW5zYWN0aW9uLmNsZWFyKCk7CisgICAgbV90cmFuc2FjdGlvbiA9IG51
bGxwdHI7CiAgICAgbV9yZWFkeVN0YXRlID0gUEVORElORzsKIH0KIApkaWZmIC0tZ2l0IGEvU291
cmNlL1dlYkNvcmUvTW9kdWxlcy9pbmRleGVkZGIvSURCVHJhbnNhY3Rpb24uY3BwIGIvU291cmNl
L1dlYkNvcmUvTW9kdWxlcy9pbmRleGVkZGIvSURCVHJhbnNhY3Rpb24uY3BwCmluZGV4IDk5NDhi
YzcyYmIyNTJlYWQ4MDRlZDAzNzE1M2QyNDE0ZWE4YjFlYTcuLjZlYzI5ZmE2Nzg0Yzc4ZTdiMDRi
YTMwNGUyNDg2MzA3MzkyZWQ4OWEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMv
aW5kZXhlZGRiL0lEQlRyYW5zYWN0aW9uLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVz
L2luZGV4ZWRkYi9JREJUcmFuc2FjdGlvbi5jcHAKQEAgLTI0MCw3ICsyNDAsNyBAQCB2b2lkIElE
QlRyYW5zYWN0aW9uOjpPcGVuQ3Vyc29yTm90aWZpZXI6OmN1cnNvckZpbmlzaGVkKCkKICAgICBp
ZiAobV9jdXJzb3IpIHsKICAgICAgICAgbV90cmFuc2FjdGlvbi0+dW5yZWdpc3Rlck9wZW5DdXJz
b3IobV9jdXJzb3IpOwogICAgICAgICBtX2N1cnNvciA9IG51bGxwdHI7Ci0gICAgICAgIG1fdHJh
bnNhY3Rpb24uY2xlYXIoKTsKKyAgICAgICAgbV90cmFuc2FjdGlvbiA9IG51bGxwdHI7CiAgICAg
fQogfQogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL21lZGlhc291cmNlL01l
ZGlhU291cmNlLmNwcCBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvbWVkaWFzb3VyY2UvTWVkaWFT
b3VyY2UuY3BwCmluZGV4IDkxMTcwYWE0ZTgyYTAxNzVmZDJhNDAxZGFlNDU0OTc5ZTcwYmEyYjQu
LmM0MGQ2ZTMwMzY5ZTM5OTEzYzdmYTk3NzJjMWVkNmNmMzI0MDRlMTkgMTAwNjQ0Ci0tLSBhL1Nv
dXJjZS9XZWJDb3JlL01vZHVsZXMvbWVkaWFzb3VyY2UvTWVkaWFTb3VyY2UuY3BwCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL01vZHVsZXMvbWVkaWFzb3VyY2UvTWVkaWFTb3VyY2UuY3BwCkBAIC0zOTQs
NyArMzk0LDcgQEAgdm9pZCBNZWRpYVNvdXJjZTo6c2V0UmVhZHlTdGF0ZShjb25zdCBBdG9taWNT
dHJpbmcmIHN0YXRlKQogICAgIExPRyhNZWRpYVNvdXJjZSwgIk1lZGlhU291cmNlOjpzZXRSZWFk
eVN0YXRlKCVwKSA6ICVzIC0+ICVzIiwgdGhpcywgb2xkU3RhdGUuc3RyaW5nKCkuYXNjaWkoKS5k
YXRhKCksIHN0YXRlLnN0cmluZygpLmFzY2lpKCkuZGF0YSgpKTsKIAogICAgIGlmIChzdGF0ZSA9
PSBjbG9zZWRLZXl3b3JkKCkpIHsKLSAgICAgICAgbV9wcml2YXRlLmNsZWFyKCk7CisgICAgICAg
IG1fcHJpdmF0ZSA9IG51bGxwdHI7CiAgICAgICAgIG1fbWVkaWFFbGVtZW50ID0gbnVsbHB0cjsK
ICAgICAgICAgbV9kdXJhdGlvbiA9IE1lZGlhVGltZTo6aW52YWxpZFRpbWUoKTsKICAgICB9CkBA
IC04MTEsNyArODExLDcgQEAgdm9pZCBNZWRpYVNvdXJjZTo6c3RvcCgpCiAgICAgbV9hc3luY0V2
ZW50UXVldWUuY2xvc2UoKTsKICAgICBpZiAoIWlzQ2xvc2VkKCkpCiAgICAgICAgIHNldFJlYWR5
U3RhdGUoY2xvc2VkS2V5d29yZCgpKTsKLSAgICBtX3ByaXZhdGUuY2xlYXIoKTsKKyAgICBtX3By
aXZhdGUgPSBudWxscHRyOwogfQogCiBib29sIE1lZGlhU291cmNlOjpjYW5TdXNwZW5kRm9yUGFn
ZUNhY2hlKCkgY29uc3QKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvbWVkaWFz
dHJlYW0vUlRDU2Vzc2lvbkRlc2NyaXB0aW9uUmVxdWVzdEltcGwuY3BwIGIvU291cmNlL1dlYkNv
cmUvTW9kdWxlcy9tZWRpYXN0cmVhbS9SVENTZXNzaW9uRGVzY3JpcHRpb25SZXF1ZXN0SW1wbC5j
cHAKaW5kZXggZDcxMGRjMThmNWUyM2NiNmUxMzA4ZGYyOGY2NTZhNjg5YmNiMDZkNy4uMzAxMzM0
ZGNkNTEwODVkMzI1ZjUyNGY4ZWQ5OTRhZWNiOGU2ODQ0MyAxMDA2NDQKLS0tIGEvU291cmNlL1dl
YkNvcmUvTW9kdWxlcy9tZWRpYXN0cmVhbS9SVENTZXNzaW9uRGVzY3JpcHRpb25SZXF1ZXN0SW1w
bC5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9tZWRpYXN0cmVhbS9SVENTZXNzaW9u
RGVzY3JpcHRpb25SZXF1ZXN0SW1wbC5jcHAKQEAgLTk3LDggKzk3LDggQEAgYm9vbCBSVENTZXNz
aW9uRGVzY3JpcHRpb25SZXF1ZXN0SW1wbDo6Y2FuU3VzcGVuZEZvclBhZ2VDYWNoZSgpIGNvbnN0
CiAKIHZvaWQgUlRDU2Vzc2lvbkRlc2NyaXB0aW9uUmVxdWVzdEltcGw6OmNsZWFyKCkKIHsKLSAg
ICBtX3N1Y2Nlc3NDYWxsYmFjay5jbGVhcigpOwotICAgIG1fZXJyb3JDYWxsYmFjay5jbGVhcigp
OworICAgIG1fc3VjY2Vzc0NhbGxiYWNrID0gbnVsbHB0cjsKKyAgICBtX2Vycm9yQ2FsbGJhY2sg
PSBudWxscHRyOwogfQogCiB9IC8vIG5hbWVzcGFjZSBXZWJDb3JlCmRpZmYgLS1naXQgYS9Tb3Vy
Y2UvV2ViQ29yZS9Nb2R1bGVzL21lZGlhc3RyZWFtL1JUQ1N0YXRzUmVxdWVzdEltcGwuY3BwIGIv
U291cmNlL1dlYkNvcmUvTW9kdWxlcy9tZWRpYXN0cmVhbS9SVENTdGF0c1JlcXVlc3RJbXBsLmNw
cAppbmRleCBkZWIxOWE5YWY5MGRjZmM0NTYzNzM4NjhlMTVmODgzNWRmYmU0YzhmLi5kMDAwYjEx
ZGYxN2ZlZjEwMTBlMzg5OWI3NzAyMWNlNzkyMDFmN2U5IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2Vi
Q29yZS9Nb2R1bGVzL21lZGlhc3RyZWFtL1JUQ1N0YXRzUmVxdWVzdEltcGwuY3BwCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL01vZHVsZXMvbWVkaWFzdHJlYW0vUlRDU3RhdHNSZXF1ZXN0SW1wbC5jcHAK
QEAgLTEwNCw3ICsxMDQsNyBAQCBib29sIFJUQ1N0YXRzUmVxdWVzdEltcGw6OmNhblN1c3BlbmRG
b3JQYWdlQ2FjaGUoKSBjb25zdAogCiB2b2lkIFJUQ1N0YXRzUmVxdWVzdEltcGw6OmNsZWFyKCkK
IHsKLSAgICBtX3N1Y2Nlc3NDYWxsYmFjay5jbGVhcigpOworICAgIG1fc3VjY2Vzc0NhbGxiYWNr
ID0gbnVsbHB0cjsKIH0KIAogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL21l
ZGlhc3RyZWFtL1JUQ1ZvaWRSZXF1ZXN0SW1wbC5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVz
L21lZGlhc3RyZWFtL1JUQ1ZvaWRSZXF1ZXN0SW1wbC5jcHAKaW5kZXggODJmOGExMjJkZDMwOWUz
YWQwZTQzOTRlYzljYzM1ZWUwMDlkYWQzNy4uNzA2ZjkwNzU4ZmRjMTVkYzk3ZWZhMWE1ZDMxMTJj
NGUyYWI0OWRhNiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9tZWRpYXN0cmVh
bS9SVENWb2lkUmVxdWVzdEltcGwuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvbWVk
aWFzdHJlYW0vUlRDVm9pZFJlcXVlc3RJbXBsLmNwcApAQCAtOTQsOCArOTQsOCBAQCBib29sIFJU
Q1ZvaWRSZXF1ZXN0SW1wbDo6Y2FuU3VzcGVuZEZvclBhZ2VDYWNoZSgpIGNvbnN0CiAKIHZvaWQg
UlRDVm9pZFJlcXVlc3RJbXBsOjpjbGVhcigpCiB7Ci0gICAgbV9zdWNjZXNzQ2FsbGJhY2suY2xl
YXIoKTsKLSAgICBtX2Vycm9yQ2FsbGJhY2suY2xlYXIoKTsKKyAgICBtX3N1Y2Nlc3NDYWxsYmFj
ayA9IG51bGxwdHI7CisgICAgbV9lcnJvckNhbGxiYWNrID0gbnVsbHB0cjsKIH0KIAogfSAvLyBu
YW1lc3BhY2UgV2ViQ29yZQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy93ZWJh
dWRpby9BdWRpb0NvbnRleHQuY3BwIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy93ZWJhdWRpby9B
dWRpb0NvbnRleHQuY3BwCmluZGV4IDVhM2RlYTBhNTA3MWQ4ZGFmYmNkZmUwNTVhOGQwNWNkODAz
NDBkYWYuLmZhYTk5NmI3NGNmOGIwZmIyYjA0MzIyZGIxN2JhNjY4NjM2MGM5YjkgMTAwNjQ0Ci0t
LSBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvd2ViYXVkaW8vQXVkaW9Db250ZXh0LmNwcAorKysg
Yi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL3dlYmF1ZGlvL0F1ZGlvQ29udGV4dC5jcHAKQEAgLTIz
MSw3ICsyMzEsNyBAQCB2b2lkIEF1ZGlvQ29udGV4dDo6Y2xlYXIoKQogewogICAgIC8vIFdlIGhh
dmUgdG8gcmVsZWFzZSBvdXIgcmVmZXJlbmNlIHRvIHRoZSBkZXN0aW5hdGlvbiBub2RlIGJlZm9y
ZSB0aGUgY29udGV4dCB3aWxsIGV2ZXIgYmUgZGVsZXRlZCBzaW5jZSB0aGUgZGVzdGluYXRpb24g
bm9kZSBob2xkcyBhIHJlZmVyZW5jZSB0byB0aGUgY29udGV4dC4KICAgICBpZiAobV9kZXN0aW5h
dGlvbk5vZGUpCi0gICAgICAgIG1fZGVzdGluYXRpb25Ob2RlLmNsZWFyKCk7CisgICAgICAgIG1f
ZGVzdGluYXRpb25Ob2RlID0gbnVsbHB0cjsKIAogICAgIC8vIEF1ZGlvIHRocmVhZCBpcyBkZWFk
LiBOb2JvZHkgd2lsbCBzY2hlZHVsZSBub2RlIGRlbGV0aW9uIGFjdGlvbi4gTGV0J3MgZG8gaXQg
b3Vyc2VsdmVzLgogICAgIGRvIHsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMv
d2ViZGF0YWJhc2UvU1FMVHJhbnNhY3Rpb25CYWNrZW5kLmNwcCBiL1NvdXJjZS9XZWJDb3JlL01v
ZHVsZXMvd2ViZGF0YWJhc2UvU1FMVHJhbnNhY3Rpb25CYWNrZW5kLmNwcAppbmRleCBkYTI1NGI2
NTRmMjM1ZTVhMTgyZTRkN2Y4NGMzOWExNTVlNGU4MGQ2Li5kMzExMzgwZTQ0ODU4MWFkOWU0Mzdk
MjQ1ZWVhMjlmNmE5ZjljMDk2IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL3dl
YmRhdGFiYXNlL1NRTFRyYW5zYWN0aW9uQmFja2VuZC5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUv
TW9kdWxlcy93ZWJkYXRhYmFzZS9TUUxUcmFuc2FjdGlvbkJhY2tlbmQuY3BwCkBAIC04NDUsNyAr
ODQ1LDcgQEAgdm9pZCBTUUxUcmFuc2FjdGlvbkJhY2tlbmQ6OnJlbGVhc2VPcmlnaW5Mb2NrSWZO
ZWVkZWQoKQogewogICAgIGlmIChtX29yaWdpbkxvY2spIHsKICAgICAgICAgbV9vcmlnaW5Mb2Nr
LT51bmxvY2soKTsKLSAgICAgICAgbV9vcmlnaW5Mb2NrLmNsZWFyKCk7CisgICAgICAgIG1fb3Jp
Z2luTG9jayA9IG51bGxwdHI7CiAgICAgfQogfQogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29y
ZS9Nb2R1bGVzL3dlYnNvY2tldHMvV29ya2VyVGhyZWFkYWJsZVdlYlNvY2tldENoYW5uZWwuY3Bw
IGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy93ZWJzb2NrZXRzL1dvcmtlclRocmVhZGFibGVXZWJT
b2NrZXRDaGFubmVsLmNwcAppbmRleCBiY2JkYWY5NGM3MDExN2MzZDE0MzlhODQzZWE3Y2IwMzI4
YzJlZTg1Li4zNGI2NGQ3N2EwZjU4ZDhjNTdmYmMwODI2MmE5MjMzNTVhOGVkMWQ2IDEwMDY0NAot
LS0gYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL3dlYnNvY2tldHMvV29ya2VyVGhyZWFkYWJsZVdl
YlNvY2tldENoYW5uZWwuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvd2Vic29ja2V0
cy9Xb3JrZXJUaHJlYWRhYmxlV2ViU29ja2V0Q2hhbm5lbC5jcHAKQEAgLTEyNiw3ICsxMjYsNyBA
QCB2b2lkIFdvcmtlclRocmVhZGFibGVXZWJTb2NrZXRDaGFubmVsOjpmYWlsKGNvbnN0IFN0cmlu
ZyYgcmVhc29uKQogdm9pZCBXb3JrZXJUaHJlYWRhYmxlV2ViU29ja2V0Q2hhbm5lbDo6ZGlzY29u
bmVjdCgpCiB7CiAgICAgbV9icmlkZ2UtPmRpc2Nvbm5lY3QoKTsKLSAgICBtX2JyaWRnZS5jbGVh
cigpOworICAgIG1fYnJpZGdlID0gbnVsbHB0cjsKIH0KIAogdm9pZCBXb3JrZXJUaHJlYWRhYmxl
V2ViU29ja2V0Q2hhbm5lbDo6c3VzcGVuZCgpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9h
Y2Nlc3NpYmlsaXR5L2F0ay9BWE9iamVjdENhY2hlQXRrLmNwcCBiL1NvdXJjZS9XZWJDb3JlL2Fj
Y2Vzc2liaWxpdHkvYXRrL0FYT2JqZWN0Q2FjaGVBdGsuY3BwCmluZGV4IDJmMzVmNzQwOTc4ZTc4
MzU3NTIxNGM0OTVlNDNlYjQ1NWM5Mjc0YTQuLmJjMzg0MTE4MmFmYjA2NzEwOGExNjcyZTgxYTMy
OGE0ZGUyNGQ5MmQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2FjY2Vzc2liaWxpdHkvYXRr
L0FYT2JqZWN0Q2FjaGVBdGsuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2FjY2Vzc2liaWxpdHkv
YXRrL0FYT2JqZWN0Q2FjaGVBdGsuY3BwCkBAIC0xNTMsNyArMTUzLDcgQEAgc3RhdGljIHZvaWQg
bm90aWZ5Q2hpbGRyZW5TZWxlY3Rpb25DaGFuZ2UoQWNjZXNzaWJpbGl0eU9iamVjdCogb2JqZWN0
KQogCiAgICAgQWNjZXNzaWJpbGl0eU9iamVjdCogbGlzdE9iamVjdCA9IGdldExpc3RPYmplY3Qo
b2JqZWN0KTsKICAgICBpZiAoIWxpc3RPYmplY3QpIHsKLSAgICAgICAgb2xkTGlzdE9iamVjdC5n
ZXQoKSA9IDA7CisgICAgICAgIG9sZExpc3RPYmplY3QuZ2V0KCkgPSBudWxscHRyOwogICAgICAg
ICByZXR1cm47CiAgICAgfQogCkBAIC0xNjYsNyArMTY2LDcgQEAgc3RhdGljIHZvaWQgbm90aWZ5
Q2hpbGRyZW5TZWxlY3Rpb25DaGFuZ2UoQWNjZXNzaWJpbGl0eU9iamVjdCogb2JqZWN0KQogICAg
IC8vIGZ1cnRoZXIgY29tcGFyaXNvbnMgbWFrZSBzZW5zZS4gT3RoZXJ3aXNlLCBqdXN0IHJlc2V0
CiAgICAgLy8gb2xkRm9jdXNlZE9iamVjdCBzbyBpdCB3b24ndCBiZSB0YWtlbiBpbnRvIGFjY291
bnQuCiAgICAgaWYgKG9sZExpc3RPYmplY3QuZ2V0KCkgIT0gbGlzdE9iamVjdCkKLSAgICAgICAg
b2xkRm9jdXNlZE9iamVjdC5nZXQoKSA9IDA7CisgICAgICAgIG9sZEZvY3VzZWRPYmplY3QuZ2V0
KCkgPSBudWxscHRyOwogCiAgICAgQXRrT2JqZWN0KiBheEl0ZW0gPSBpdGVtID8gaXRlbS0+d3Jh
cHBlcigpIDogbnVsbHB0cjsKICAgICBBdGtPYmplY3QqIGF4T2xkRm9jdXNlZE9iamVjdCA9IG9s
ZEZvY3VzZWRPYmplY3QuZ2V0KCkgPyBvbGRGb2N1c2VkT2JqZWN0LmdldCgpLT53cmFwcGVyKCkg
OiBudWxscHRyOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvYmluZGluZ3MvanMvU2NyaXB0
Q29udHJvbGxlci5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9qcy9TY3JpcHRDb250cm9s
bGVyLmNwcAppbmRleCAzYWJkZDJiOWRiNWE2OWFhYzQxOGVhMTlkMjVhNDRmNWJmNTcwOGQzLi5j
NTE5OWNmZGY3OWJkZTQzY2U0ZTZmZjEwZDcwNTUxMGQ2NTQ3NTdkIDEwMDY0NAotLS0gYS9Tb3Vy
Y2UvV2ViQ29yZS9iaW5kaW5ncy9qcy9TY3JpcHRDb250cm9sbGVyLmNwcAorKysgYi9Tb3VyY2Uv
V2ViQ29yZS9iaW5kaW5ncy9qcy9TY3JpcHRDb250cm9sbGVyLmNwcApAQCAtMTAyLDcgKzEwMiw3
IEBAIFNjcmlwdENvbnRyb2xsZXI6On5TY3JpcHRDb250cm9sbGVyKCkKICAgICBpZiAobV9jYWNo
ZWFibGVCaW5kaW5nUm9vdE9iamVjdCkgewogICAgICAgICBKU0xvY2tIb2xkZXIgbG9jayhKU0RP
TVdpbmRvd0Jhc2U6OmNvbW1vblZNKCkpOwogICAgICAgICBtX2NhY2hlYWJsZUJpbmRpbmdSb290
T2JqZWN0LT5pbnZhbGlkYXRlKCk7Ci0gICAgICAgIG1fY2FjaGVhYmxlQmluZGluZ1Jvb3RPYmpl
Y3QgPSAwOworICAgICAgICBtX2NhY2hlYWJsZUJpbmRpbmdSb290T2JqZWN0ID0gbnVsbHB0cjsK
ICAgICB9CiAKICAgICAvLyBJdCdzIGxpa2VseSB0aGF0IGRlc3Ryb3lpbmcgbV93aW5kb3dTaGVs
bHMgd2lsbCBjcmVhdGUgYSBsb3Qgb2YgZ2FyYmFnZS4KQEAgLTQ4OSw3ICs0ODksNyBAQCB2b2lk
IFNjcmlwdENvbnRyb2xsZXI6OmNsZWFyU2NyaXB0T2JqZWN0cygpCiAKICAgICBpZiAobV9iaW5k
aW5nUm9vdE9iamVjdCkgewogICAgICAgICBtX2JpbmRpbmdSb290T2JqZWN0LT5pbnZhbGlkYXRl
KCk7Ci0gICAgICAgIG1fYmluZGluZ1Jvb3RPYmplY3QgPSAwOworICAgICAgICBtX2JpbmRpbmdS
b290T2JqZWN0ID0gbnVsbHB0cjsKICAgICB9CiAKICNpZiBFTkFCTEUoTkVUU0NBUEVfUExVR0lO
X0FQSSkKQEAgLTQ5OCw3ICs0OTgsNyBAQCB2b2lkIFNjcmlwdENvbnRyb2xsZXI6OmNsZWFyU2Ny
aXB0T2JqZWN0cygpCiAgICAgICAgIC8vIHNjcmlwdCBvYmplY3QgcHJvcGVybHkuCiAgICAgICAg
IC8vIFRoaXMgc2hvdWxkbid0IGNhdXNlIGFueSBwcm9ibGVtcyBmb3IgcGx1Z2lucyBzaW5jZSB0
aGV5IHNob3VsZCBoYXZlIGFscmVhZHkgYmVlbiBzdG9wcGVkIGFuZCBkZXN0cm95ZWQgYXQgdGhp
cyBwb2ludC4KICAgICAgICAgX05QTl9EZWFsbG9jYXRlT2JqZWN0KG1fd2luZG93U2NyaXB0TlBP
YmplY3QpOwotICAgICAgICBtX3dpbmRvd1NjcmlwdE5QT2JqZWN0ID0gMDsKKyAgICAgICAgbV93
aW5kb3dTY3JpcHROUE9iamVjdCA9IG51bGxwdHI7CiAgICAgfQogI2VuZGlmCiB9CmRpZmYgLS1n
aXQgYS9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9qcy9XZWJDb3JlSlNDbGllbnREYXRhLmggYi9T
b3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9qcy9XZWJDb3JlSlNDbGllbnREYXRhLmgKaW5kZXggNjU0
NTEzMzVkM2Q4YTkyMWY1ODE2MjJjMjllNDkwMDBiOWE2MzY2Yy4uNDMwMmQ2OGU1YzhjNmQ3ODdk
NDcyNjI0MTRiY2ViOThkMjJlMDE5ZSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvYmluZGlu
Z3MvanMvV2ViQ29yZUpTQ2xpZW50RGF0YS5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdz
L2pzL1dlYkNvcmVKU0NsaWVudERhdGEuaApAQCAtNDQsNyArNDQsNyBAQCBwdWJsaWM6CiAgICAg
ICAgIEFTU0VSVChtX3dvcmxkU2V0LmNvbnRhaW5zKG1fbm9ybWFsV29ybGQuZ2V0KCkpKTsKICAg
ICAgICAgQVNTRVJUKG1fd29ybGRTZXQuc2l6ZSgpID09IDEpOwogICAgICAgICBBU1NFUlQobV9u
b3JtYWxXb3JsZC0+aGFzT25lUmVmKCkpOwotICAgICAgICBtX25vcm1hbFdvcmxkLmNsZWFyKCk7
CisgICAgICAgIG1fbm9ybWFsV29ybGQgPSBudWxscHRyOwogICAgICAgICBBU1NFUlQobV93b3Js
ZFNldC5pc0VtcHR5KCkpOwogICAgIH0KIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvYmlu
ZGluZ3MvanMvV29ya2VyU2NyaXB0Q29udHJvbGxlci5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9iaW5k
aW5ncy9qcy9Xb3JrZXJTY3JpcHRDb250cm9sbGVyLmNwcAppbmRleCA5MGUwZmY1MTA4OGFhNjU0
OTNkZWVjZTVjOTRmOWEwZGMwMDdjZWNhLi4yOGM5ZWYwZjI3MDNmMzIzYzYxYzhmMjI0NTg5Y2M2
OWQ2ZGQ2YmU2IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9qcy9Xb3JrZXJT
Y3JpcHRDb250cm9sbGVyLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9qcy9Xb3Jr
ZXJTY3JpcHRDb250cm9sbGVyLmNwcApAQCAtNjIsNyArNjIsNyBAQCBXb3JrZXJTY3JpcHRDb250
cm9sbGVyOjp+V29ya2VyU2NyaXB0Q29udHJvbGxlcigpCiB7CiAgICAgSlNMb2NrSG9sZGVyIGxv
Y2sodm0oKSk7CiAgICAgbV93b3JrZXJHbG9iYWxTY29wZVdyYXBwZXIuY2xlYXIoKTsKLSAgICBt
X3ZtLmNsZWFyKCk7CisgICAgbV92bSA9IG51bGxwdHI7CiB9CiAKIHZvaWQgV29ya2VyU2NyaXB0
Q29udHJvbGxlcjo6aW5pdFNjcmlwdCgpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9icmlk
Z2UvcnVudGltZV9vYmplY3QuY3BwIGIvU291cmNlL1dlYkNvcmUvYnJpZGdlL3J1bnRpbWVfb2Jq
ZWN0LmNwcAppbmRleCA5MWYwN2JjNTM3Y2YwZjNmMjAzMGY1ZWQ0ZmVlYzYzMjcyNGViMjM4Li41
ZDBmYTRmODEyYTlhZGZiOGYyNmE5NzUxZTg5ZDZlYmRkZWZmZDYyIDEwMDY0NAotLS0gYS9Tb3Vy
Y2UvV2ViQ29yZS9icmlkZ2UvcnVudGltZV9vYmplY3QuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3Jl
L2JyaWRnZS9ydW50aW1lX29iamVjdC5jcHAKQEAgLTU5LDcgKzU5LDcgQEAgdm9pZCBSdW50aW1l
T2JqZWN0OjppbnZhbGlkYXRlKCkKICAgICBBU1NFUlQobV9pbnN0YW5jZSk7CiAgICAgaWYgKG1f
aW5zdGFuY2UpCiAgICAgICAgIG1faW5zdGFuY2UtPndpbGxJbnZhbGlkYXRlUnVudGltZU9iamVj
dCgpOwotICAgIG1faW5zdGFuY2UgPSAwOworICAgIG1faW5zdGFuY2UgPSBudWxscHRyOwogfQog
CiBFbmNvZGVkSlNWYWx1ZSBSdW50aW1lT2JqZWN0OjpmYWxsYmFja09iamVjdEdldHRlcihFeGVj
U3RhdGUqIGV4ZWMsIEpTT2JqZWN0KiBzbG90QmFzZSwgRW5jb2RlZEpTVmFsdWUsIFByb3BlcnR5
TmFtZSBwcm9wZXJ0eU5hbWUpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9jb250ZW50ZXh0
ZW5zaW9ucy9Db250ZW50RXh0ZW5zaW9uUGFyc2VyLmNwcCBiL1NvdXJjZS9XZWJDb3JlL2NvbnRl
bnRleHRlbnNpb25zL0NvbnRlbnRFeHRlbnNpb25QYXJzZXIuY3BwCmluZGV4IDAyMjY1MmIyZDY5
Zjg5MWNlYTczOTRhMTA5ZDdmYmRmNTAxMmFiMjUuLjdiZjU2ZTdkNGIyZTY3ODZjMzNmN2U4OTUy
ZmM4NTQ3Mjg4YjVmMmIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2NvbnRlbnRleHRlbnNp
b25zL0NvbnRlbnRFeHRlbnNpb25QYXJzZXIuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2NvbnRl
bnRleHRlbnNpb25zL0NvbnRlbnRFeHRlbnNpb25QYXJzZXIuY3BwCkBAIC0yNzcsNyArMjc3LDcg
QEAgc3RkOjplcnJvcl9jb2RlIHBhcnNlUnVsZUxpc3QoY29uc3QgU3RyaW5nJiBydWxlcywgVmVj
dG9yPENvbnRlbnRFeHRlbnNpb25SdWxlPiYKICAgICBFeGVjU3RhdGUqIGV4ZWMgPSBnbG9iYWxP
YmplY3QtPmdsb2JhbEV4ZWMoKTsKICAgICBhdXRvIGVycm9yID0gbG9hZEVuY29kZWRSdWxlcygq
ZXhlYywgcnVsZXMsIHJ1bGVMaXN0KTsKIAotICAgIHZtLmNsZWFyKCk7CisgICAgdm0gPSBudWxs
cHRyOwogCiAgICAgaWYgKGVycm9yKQogICAgICAgICByZXR1cm4gZXJyb3I7CmRpZmYgLS1naXQg
YS9Tb3VyY2UvV2ViQ29yZS9jc3MvQ1NTUGFyc2VyLmNwcCBiL1NvdXJjZS9XZWJDb3JlL2Nzcy9D
U1NQYXJzZXIuY3BwCmluZGV4IDVlOGYwNWNlMDgxNmU3MTYwZTUzZTQ0M2EwYjEzZTQ0Yjg0MmY1
NjcuLjljYzMwOGI0ZjgzYTA5MDlmZDMzYWQzMTA2ZjhmOTZjZDRlNTA3YTEgMTAwNjQ0Ci0tLSBh
L1NvdXJjZS9XZWJDb3JlL2Nzcy9DU1NQYXJzZXIuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2Nz
cy9DU1NQYXJzZXIuY3BwCkBAIC00NTAyLDE1ICs0NTAyLDE1IEBAIHZvaWQgQ1NTUGFyc2VyOjpw
YXJzZUZpbGxQb3NpdGlvbihDU1NQYXJzZXJWYWx1ZUxpc3QmIHZhbHVlTGlzdCwgUmVmUHRyPENT
U1ZhbHVlCiAgICAgaWYgKHZhbHVlMikKICAgICAgICAgdmFsdWVMaXN0Lm5leHQoKTsKICAgICBl
bHNlIHsKLSAgICAgICAgdmFsdWUxLmNsZWFyKCk7CisgICAgICAgIHZhbHVlMSA9IG51bGxwdHI7
CiAgICAgICAgIHJldHVybjsKICAgICB9CiAKICAgICBSZWZQdHI8Q1NTUHJpbWl0aXZlVmFsdWU+
IHBhcnNlZFZhbHVlMSA9IGRvd25jYXN0PENTU1ByaW1pdGl2ZVZhbHVlPih2YWx1ZTEuZ2V0KCkp
OwogICAgIFJlZlB0cjxDU1NQcmltaXRpdmVWYWx1ZT4gcGFyc2VkVmFsdWUyID0gZG93bmNhc3Q8
Q1NTUHJpbWl0aXZlVmFsdWU+KHZhbHVlMi5nZXQoKSk7CiAKLSAgICB2YWx1ZTEuY2xlYXIoKTsK
LSAgICB2YWx1ZTIuY2xlYXIoKTsKKyAgICB2YWx1ZTEgPSBudWxscHRyOworICAgIHZhbHVlMiA9
IG51bGxwdHI7CiAKICAgICAvLyBQZXIgQ1NTMyBzeW50YXgsIDxwb3NpdGlvbj4gY2FuJ3QgaGF2
ZSAnY2VudGVyJyBhcyBpdHMgc2Vjb25kIGtleXdvcmQgYXMgd2UgaGF2ZSBtb3JlIGFyZ3VtZW50
cyB0byBmb2xsb3cuCiAgICAgaWYgKHBhcnNlZFZhbHVlMi0+Z2V0VmFsdWVJRCgpID09IENTU1Zh
bHVlQ2VudGVyKQpAQCAtNDU0OSw3ICs0NTQ5LDcgQEAgdm9pZCBDU1NQYXJzZXI6OnBhcnNlMlZh
bHVlc0ZpbGxQb3NpdGlvbihDU1NQYXJzZXJWYWx1ZUxpc3QmIHZhbHVlTGlzdCwgUmVmUHRyPEMK
ICAgICAgICAgICAgIHZhbHVlTGlzdC5uZXh0KCk7CiAgICAgICAgIGVsc2UgewogICAgICAgICAg
ICAgaWYgKCFpblNob3J0aGFuZCgpKSB7Ci0gICAgICAgICAgICAgICAgdmFsdWUxLmNsZWFyKCk7
CisgICAgICAgICAgICAgICAgdmFsdWUxID0gbnVsbHB0cjsKICAgICAgICAgICAgICAgICByZXR1
cm47CiAgICAgICAgICAgICB9CiAgICAgICAgIH0KQEAgLTc1ODcsOCArNzU4Nyw4IEBAIHN0cnVj
dCBTaGFkb3dQYXJzZUNvbnRleHQgewogICAgICAgICB9CiAKICAgICAgICAgLy8gTm93IHJlc2V0
IGZvciB0aGUgbmV4dCBzaGFkb3cgdmFsdWUuCi0gICAgICAgIHggPSAwOwotICAgICAgICB5ID0g
MDsKKyAgICAgICAgeCA9IG51bGxwdHI7CisgICAgICAgIHkgPSBudWxscHRyOwogICAgICAgICBi
bHVyID0gbnVsbHB0cjsKICAgICAgICAgc3ByZWFkID0gbnVsbHB0cjsKICAgICAgICAgc3R5bGUg
PSBudWxscHRyOwpAQCAtMTIxODQsNyArMTIxODQsNyBAQCBQYXNzUmVmUHRyPENTU1J1bGVTb3Vy
Y2VEYXRhPiBDU1NQYXJzZXI6OnBvcFJ1bGVEYXRhKCkKICAgICAgICAgcmV0dXJuIG51bGxwdHI7
CiAKICAgICBBU1NFUlQoIW1fY3VycmVudFJ1bGVEYXRhU3RhY2stPmlzRW1wdHkoKSk7Ci0gICAg
bV9jdXJyZW50UnVsZURhdGEuY2xlYXIoKTsKKyAgICBtX2N1cnJlbnRSdWxlRGF0YSA9IG51bGxw
dHI7CiAgICAgUmVmUHRyPENTU1J1bGVTb3VyY2VEYXRhPiBkYXRhID0gbV9jdXJyZW50UnVsZURh
dGFTdGFjay0+bGFzdCgpOwogICAgIG1fY3VycmVudFJ1bGVEYXRhU3RhY2stPnJlbW92ZUxhc3Qo
KTsKICAgICByZXR1cm4gZGF0YS5yZWxlYXNlKCk7CkBAIC0xMjYwNSw3ICsxMjYwNSw3IEBAIHZv
aWQgQ1NTUGFyc2VyOjptYXJrUnVsZUJvZHlTdGFydCgpCiB7CiAgICAgaWYgKCFpc0V4dHJhY3Rp
bmdTb3VyY2VEYXRhKCkpCiAgICAgICAgIHJldHVybjsKLSAgICBtX2N1cnJlbnRSdWxlRGF0YS5j
bGVhcigpOworICAgIG1fY3VycmVudFJ1bGVEYXRhID0gbnVsbHB0cjsKICAgICB1bnNpZ25lZCBv
ZmZzZXQgPSB0b2tlblN0YXJ0T2Zmc2V0KCk7CiAgICAgaWYgKHRva2VuU3RhcnRDaGFyKCkgPT0g
J3snKQogICAgICAgICArK29mZnNldDsgLy8gU2tpcCB0aGUgcnVsZSBib2R5IG9wZW5pbmcgYnJh
Y2UuCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9jc3MvQ1NTVmFsdWVQb29sLmNwcCBiL1Nv
dXJjZS9XZWJDb3JlL2Nzcy9DU1NWYWx1ZVBvb2wuY3BwCmluZGV4IDFmNDEzMTE1YTM2ZDBmNDk0
M2NiNTM3YTk5NDY4OWRkYzg2ZmQ5ZDEuLmFlM2UwZmQ0YWViNjBkNmRjODg2ZGM5MWI5YjAwNGM1
ZjVjNDkxZGEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2Nzcy9DU1NWYWx1ZVBvb2wuY3Bw
CisrKyBiL1NvdXJjZS9XZWJDb3JlL2Nzcy9DU1NWYWx1ZVBvb2wuY3BwCkBAIC0xNTMsMTIgKzE1
MywxMiBAQCB2b2lkIENTU1ZhbHVlUG9vbDo6ZHJhaW4oKQogICAgIG1fZm9udEZhbWlseVZhbHVl
Q2FjaGUuY2xlYXIoKTsKIAogICAgIGZvciAoaW50IGkgPSAwOyBpIDwgbnVtQ1NTVmFsdWVLZXl3
b3JkczsgKytpKQotICAgICAgICBtX2lkZW50aWZpZXJWYWx1ZUNhY2hlW2ldID0gMDsKKyAgICAg
ICAgbV9pZGVudGlmaWVyVmFsdWVDYWNoZVtpXSA9IG51bGxwdHI7CiAKICAgICBmb3IgKGludCBp
ID0gMDsgaSA8IG1heGltdW1DYWNoZWFibGVJbnRlZ2VyVmFsdWU7ICsraSkgewotICAgICAgICBt
X3BpeGVsVmFsdWVDYWNoZVtpXSA9IDA7Ci0gICAgICAgIG1fcGVyY2VudFZhbHVlQ2FjaGVbaV0g
PSAwOwotICAgICAgICBtX251bWJlclZhbHVlQ2FjaGVbaV0gPSAwOworICAgICAgICBtX3BpeGVs
VmFsdWVDYWNoZVtpXSA9IG51bGxwdHI7CisgICAgICAgIG1fcGVyY2VudFZhbHVlQ2FjaGVbaV0g
PSBudWxscHRyOworICAgICAgICBtX251bWJlclZhbHVlQ2FjaGVbaV0gPSBudWxscHRyOwogICAg
IH0KIH0KIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvY3NzL1N0eWxlUHJvcGVydGllcy5j
cHAgYi9Tb3VyY2UvV2ViQ29yZS9jc3MvU3R5bGVQcm9wZXJ0aWVzLmNwcAppbmRleCBiOTA5MDhk
MzFkOGUxZGJmNmE1OTRkMDQ3Nzk4OTJkZDJhYTdhMDVjLi5kZWRkMDcwMDdhZTVlOTVlM2E0ZTQ4
ODQyMWU4OGE1YWVkMzdkMzY0IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9jc3MvU3R5bGVQ
cm9wZXJ0aWVzLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9jc3MvU3R5bGVQcm9wZXJ0aWVzLmNw
cApAQCAtMzk3LDkgKzM5Nyw5IEBAIFN0cmluZyBTdHlsZVByb3BlcnRpZXM6OmdldExheWVyZWRT
aG9ydGhhbmRWYWx1ZShjb25zdCBTdHlsZVByb3BlcnR5U2hvcnRoYW5kJiBzCiAgICAgICAgICAg
ICAgICAgICAgIC8vIENvbG9yIG9ubHkgYmVsb25ncyBpbiB0aGUgbGFzdCBsYXllci4KICAgICAg
ICAgICAgICAgICAgICAgaWYgKHNob3J0aGFuZC5wcm9wZXJ0aWVzKClbal0gPT0gQ1NTUHJvcGVy
dHlCYWNrZ3JvdW5kQ29sb3IpIHsKICAgICAgICAgICAgICAgICAgICAgICAgIGlmIChpICE9IG51
bUxheWVycyAtIDEpCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgdmFsdWUgPSAwOworICAg
ICAgICAgICAgICAgICAgICAgICAgICAgIHZhbHVlID0gbnVsbHB0cjsKICAgICAgICAgICAgICAg
ICAgICAgfSBlbHNlIGlmIChpKSAvLyBPdGhlciBzaW5nbGV0b25zIG9ubHkgYmVsb25nIGluIHRo
ZSBmaXJzdCBsYXllci4KLSAgICAgICAgICAgICAgICAgICAgICAgIHZhbHVlID0gMDsKKyAgICAg
ICAgICAgICAgICAgICAgICAgIHZhbHVlID0gbnVsbHB0cjsKICAgICAgICAgICAgICAgICB9CiAg
ICAgICAgICAgICB9CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2Nzcy9WaWV3cG9ydFN0
eWxlUmVzb2x2ZXIuY3BwIGIvU291cmNlL1dlYkNvcmUvY3NzL1ZpZXdwb3J0U3R5bGVSZXNvbHZl
ci5jcHAKaW5kZXggZjg5ZWZmMDA4NjNhYzg5ZGI3NzhkYjMyM2ZlNzg1MDE1NjZhZGYwOS4uZGJi
NmNjNGRmNDQwNDE1YTRiYzQwZTBjOWUwZGFhNmMxMmE1NjliYSAxMDA2NDQKLS0tIGEvU291cmNl
L1dlYkNvcmUvY3NzL1ZpZXdwb3J0U3R5bGVSZXNvbHZlci5jcHAKKysrIGIvU291cmNlL1dlYkNv
cmUvY3NzL1ZpZXdwb3J0U3R5bGVSZXNvbHZlci5jcHAKQEAgLTcxLDcgKzcxLDcgQEAgdm9pZCBW
aWV3cG9ydFN0eWxlUmVzb2x2ZXI6OmFkZFZpZXdwb3J0UnVsZShTdHlsZVJ1bGVWaWV3cG9ydCog
dmlld3BvcnRSdWxlKQogCiB2b2lkIFZpZXdwb3J0U3R5bGVSZXNvbHZlcjo6Y2xlYXJEb2N1bWVu
dCgpCiB7Ci0gICAgbV9kb2N1bWVudCA9IDA7CisgICAgbV9kb2N1bWVudCA9IG51bGxwdHI7CiB9
CiAKIHZvaWQgVmlld3BvcnRTdHlsZVJlc29sdmVyOjpyZXNvbHZlKCkKQEAgLTk0LDcgKzk0LDcg
QEAgdm9pZCBWaWV3cG9ydFN0eWxlUmVzb2x2ZXI6OnJlc29sdmUoKQogICAgIG1fZG9jdW1lbnQt
PnNldFZpZXdwb3J0QXJndW1lbnRzKGFyZ3VtZW50cyk7CiAgICAgbV9kb2N1bWVudC0+dXBkYXRl
Vmlld3BvcnRBcmd1bWVudHMoKTsKIAotICAgIG1fcHJvcGVydHlTZXQgPSAwOworICAgIG1fcHJv
cGVydHlTZXQgPSBudWxscHRyOwogfQogCiBmbG9hdCBWaWV3cG9ydFN0eWxlUmVzb2x2ZXI6Omdl
dFZpZXdwb3J0QXJndW1lbnRWYWx1ZShDU1NQcm9wZXJ0eUlEIGlkKSBjb25zdApkaWZmIC0tZ2l0
IGEvU291cmNlL1dlYkNvcmUvZG9tL0RvY3VtZW50LmNwcCBiL1NvdXJjZS9XZWJDb3JlL2RvbS9E
b2N1bWVudC5jcHAKaW5kZXggZTUwMjY2OTYxMmQ3YzRjNTgyODM0YTRjMWIxOWJiMDM4OTRlZGFm
OS4uZjY0MGI3Y2ZiZGYxNDE4OWMxZTk4OGY0ZWJhZGI0ZGM1MjhhZTFiYSAxMDA2NDQKLS0tIGEv
U291cmNlL1dlYkNvcmUvZG9tL0RvY3VtZW50LmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9kb20v
RG9jdW1lbnQuY3BwCkBAIC0yNDI0LDcgKzI0MjQsNyBAQCB2b2lkIERvY3VtZW50OjpkZXRhY2hQ
YXJzZXIoKQogICAgIGlmICghbV9wYXJzZXIpCiAgICAgICAgIHJldHVybjsKICAgICBtX3BhcnNl
ci0+ZGV0YWNoKCk7Ci0gICAgbV9wYXJzZXIuY2xlYXIoKTsKKyAgICBtX3BhcnNlciA9IG51bGxw
dHI7CiB9CiAKIHZvaWQgRG9jdW1lbnQ6OmNhbmNlbFBhcnNpbmcoKQpAQCAtNTg4Miw3ICs1ODgy
LDcgQEAgdm9pZCBEb2N1bWVudDo6Y2xlYXJTY3JpcHRlZEFuaW1hdGlvbkNvbnRyb2xsZXIoKQog
ICAgIC8vIEZJWE1FOiBjb25zaWRlciB1c2luZyBBY3RpdmVET01PYmplY3QuCiAgICAgaWYgKG1f
c2NyaXB0ZWRBbmltYXRpb25Db250cm9sbGVyKQogICAgICAgICBtX3NjcmlwdGVkQW5pbWF0aW9u
Q29udHJvbGxlci0+Y2xlYXJEb2N1bWVudFBvaW50ZXIoKTsKLSAgICBtX3NjcmlwdGVkQW5pbWF0
aW9uQ29udHJvbGxlci5jbGVhcigpOworICAgIG1fc2NyaXB0ZWRBbmltYXRpb25Db250cm9sbGVy
ID0gbnVsbHB0cjsKIH0KICNlbmRpZgogICAgIApAQCAtNjMwMCw3ICs2MzAwLDcgQEAgdm9pZCBE
b2N1bWVudDo6dXBkYXRlSG92ZXJBY3RpdmVTdGF0ZShjb25zdCBIaXRUZXN0UmVxdWVzdCYgcmVx
dWVzdCwgRWxlbWVudCogaW4KICAgICAgICAgICAgIGN1cnItPnNldEFjdGl2ZShmYWxzZSk7CiAg
ICAgICAgICAgICBtX3VzZXJBY3Rpb25FbGVtZW50cy5zZXRJbkFjdGl2ZUNoYWluKGN1cnIsIGZh
bHNlKTsKICAgICAgICAgfQotICAgICAgICBtX2FjdGl2ZUVsZW1lbnQuY2xlYXIoKTsKKyAgICAg
ICAgbV9hY3RpdmVFbGVtZW50ID0gbnVsbHB0cjsKICAgICB9IGVsc2UgewogICAgICAgICBFbGVt
ZW50KiBuZXdBY3RpdmVFbGVtZW50ID0gaW5uZXJFbGVtZW50SW5Eb2N1bWVudDsKICAgICAgICAg
aWYgKCFvbGRBY3RpdmVFbGVtZW50ICYmIG5ld0FjdGl2ZUVsZW1lbnQgJiYgcmVxdWVzdC5hY3Rp
dmUoKSAmJiAhcmVxdWVzdC50b3VjaE1vdmUoKSkgewpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNv
cmUvZG9tL0RvY3VtZW50TWFya2VyLmggYi9Tb3VyY2UvV2ViQ29yZS9kb20vRG9jdW1lbnRNYXJr
ZXIuaAppbmRleCA0Nzk0OWZlODBiZGQ5YjExZTY4ZGFlNjI1NmVhMmIzMzA2ZmJiNDYzLi5lYzUy
NDg5NDBjMTY3ZWQxYzZjYTAyYjMxZGM0ZTQ3Mzc5YTU1NDE5IDEwMDY0NAotLS0gYS9Tb3VyY2Uv
V2ViQ29yZS9kb20vRG9jdW1lbnRNYXJrZXIuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9kb20vRG9j
dW1lbnRNYXJrZXIuaApAQCAtMTMxLDcgKzEzMSw3IEBAIHB1YmxpYzoKICAgICBEb2N1bWVudE1h
cmtlckRldGFpbHMqIGRldGFpbHMoKSBjb25zdDsKIAogICAgIHZvaWQgc2V0QWN0aXZlTWF0Y2go
Ym9vbCk7Ci0gICAgdm9pZCBjbGVhckRldGFpbHMoKSB7IG1fZGV0YWlscy5jbGVhcigpOyB9Cisg
ICAgdm9pZCBjbGVhckRldGFpbHMoKSB7IG1fZGV0YWlscyA9IG51bGxwdHI7IH0KIAogICAgIC8v
IE9mZnNldCBtb2RpZmljYXRpb25zIGFyZSBkb25lIGJ5IERvY3VtZW50TWFya2VyQ29udHJvbGxl
ci4KICAgICAvLyBPdGhlciBjbGFzc2VzIHNob3VsZCBub3QgY2FsbCBmb2xsb3dpbmcgc2V0dGVy
cy4KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2RvbS9Eb2N1bWVudFN0eWxlU2hlZXRDb2xs
ZWN0aW9uLmNwcCBiL1NvdXJjZS9XZWJDb3JlL2RvbS9Eb2N1bWVudFN0eWxlU2hlZXRDb2xsZWN0
aW9uLmNwcAppbmRleCAxY2JiZTg1MTU1MjVlMGExNTMyYzIyODM2ZjBlN2IzYWEzYmVkZWJhLi4z
MjJhYzg0YmQzMWI2ZWMyZDAzMmQxOWJmYzJhY2JmMzkzM2ZiNGE0IDEwMDY0NAotLS0gYS9Tb3Vy
Y2UvV2ViQ29yZS9kb20vRG9jdW1lbnRTdHlsZVNoZWV0Q29sbGVjdGlvbi5jcHAKKysrIGIvU291
cmNlL1dlYkNvcmUvZG9tL0RvY3VtZW50U3R5bGVTaGVldENvbGxlY3Rpb24uY3BwCkBAIC0xMDQs
NyArMTA0LDcgQEAgQ1NTU3R5bGVTaGVldCogRG9jdW1lbnRTdHlsZVNoZWV0Q29sbGVjdGlvbjo6
cGFnZVVzZXJTaGVldCgpCiB2b2lkIERvY3VtZW50U3R5bGVTaGVldENvbGxlY3Rpb246OmNsZWFy
UGFnZVVzZXJTaGVldCgpCiB7CiAgICAgaWYgKG1fcGFnZVVzZXJTaGVldCkgewotICAgICAgICBt
X3BhZ2VVc2VyU2hlZXQgPSAwOworICAgICAgICBtX3BhZ2VVc2VyU2hlZXQgPSBudWxscHRyOwog
ICAgICAgICBtX2RvY3VtZW50LnN0eWxlUmVzb2x2ZXJDaGFuZ2VkKERlZmVyUmVjYWxjU3R5bGUp
OwogICAgIH0KIH0KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2RvbS9FbGVtZW50LmNwcCBi
L1NvdXJjZS9XZWJDb3JlL2RvbS9FbGVtZW50LmNwcAppbmRleCBiZTg4NGViNTcxYTQwMmZiYjg3
YjFlZGFmYzJkNWI0MzAyNGY4Mzk4Li42YzhjOWUxNzBiYzllYjYxYmM1N2IwMjAwMDk5OTBmYjMy
OGIzMjk0IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9kb20vRWxlbWVudC5jcHAKKysrIGIv
U291cmNlL1dlYkNvcmUvZG9tL0VsZW1lbnQuY3BwCkBAIC0zMjA3LDcgKzMyMDcsNyBAQCB2b2lk
IEVsZW1lbnQ6OmNsb25lQXR0cmlidXRlc0Zyb21FbGVtZW50KGNvbnN0IEVsZW1lbnQmIG90aGVy
KQogCiAgICAgb3RoZXIuc3luY2hyb25pemVBbGxBdHRyaWJ1dGVzKCk7CiAgICAgaWYgKCFvdGhl
ci5tX2VsZW1lbnREYXRhKSB7Ci0gICAgICAgIG1fZWxlbWVudERhdGEuY2xlYXIoKTsKKyAgICAg
ICAgbV9lbGVtZW50RGF0YSA9IG51bGxwdHI7CiAgICAgICAgIHJldHVybjsKICAgICB9CiAKZGlm
ZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2RvbS9NdXRhdGlvbk9ic2VydmVyUmVnaXN0cmF0aW9u
LmNwcCBiL1NvdXJjZS9XZWJDb3JlL2RvbS9NdXRhdGlvbk9ic2VydmVyUmVnaXN0cmF0aW9uLmNw
cAppbmRleCA0NGU4ZjcwZmNiNmM0ODRjYmIwMmE3OTgzN2EzMzI1YzIxNzNmZjE0Li43MGEzMWRl
Y2FjMzVmMWRlYWJmODhkMGU4YTg4NWZiN2ZhODM0MTNkIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2Vi
Q29yZS9kb20vTXV0YXRpb25PYnNlcnZlclJlZ2lzdHJhdGlvbi5jcHAKKysrIGIvU291cmNlL1dl
YkNvcmUvZG9tL011dGF0aW9uT2JzZXJ2ZXJSZWdpc3RyYXRpb24uY3BwCkBAIC04OSw3ICs4OSw3
IEBAIHZvaWQgTXV0YXRpb25PYnNlcnZlclJlZ2lzdHJhdGlvbjo6Y2xlYXJUcmFuc2llbnRSZWdp
c3RyYXRpb25zKCkKICAgICBtX3RyYW5zaWVudFJlZ2lzdHJhdGlvbk5vZGVzID0gbnVsbHB0cjsK
IAogICAgIEFTU0VSVChtX3JlZ2lzdHJhdGlvbk5vZGVLZWVwQWxpdmUpOwotICAgIG1fcmVnaXN0
cmF0aW9uTm9kZUtlZXBBbGl2ZSA9IDA7IC8vIEJhbGFuY2VkIGluIG9ic2VydmVTdWJ0cmVlTm9k
ZVdpbGxEZXRhY2guCisgICAgbV9yZWdpc3RyYXRpb25Ob2RlS2VlcEFsaXZlID0gbnVsbHB0cjsg
Ly8gQmFsYW5jZWQgaW4gb2JzZXJ2ZVN1YnRyZWVOb2RlV2lsbERldGFjaC4KIH0KIAogdm9pZCBN
dXRhdGlvbk9ic2VydmVyUmVnaXN0cmF0aW9uOjp1bnJlZ2lzdGVyQW5kRGVsZXRlKE11dGF0aW9u
T2JzZXJ2ZXJSZWdpc3RyYXRpb24qIHJlZ2lzdHJ5KQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNv
cmUvZG9tL05vZGVJdGVyYXRvci5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9kb20vTm9kZUl0ZXJhdG9y
LmNwcAppbmRleCA1OGIyYjlmNjRjNzZlN2VjNjhhNzRmY2U2ZWVjNDU3NzY4YzVmZmEzLi42MWFl
MjhmNmY4ZTk4OTdjNGVhNjAxYjM1M2NkYTA5MWY0MjE0Y2UyIDEwMDY0NAotLS0gYS9Tb3VyY2Uv
V2ViQ29yZS9kb20vTm9kZUl0ZXJhdG9yLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9kb20vTm9k
ZUl0ZXJhdG9yLmNwcApAQCAtNDUsNyArNDUsNyBAQCBOb2RlSXRlcmF0b3I6Ok5vZGVQb2ludGVy
OjpOb2RlUG9pbnRlcihQYXNzUmVmUHRyPE5vZGU+IG4sIGJvb2wgYikKIAogdm9pZCBOb2RlSXRl
cmF0b3I6Ok5vZGVQb2ludGVyOjpjbGVhcigpCiB7Ci0gICAgbm9kZS5jbGVhcigpOworICAgIG5v
ZGUgPSBudWxscHRyOwogfQogCiBib29sIE5vZGVJdGVyYXRvcjo6Tm9kZVBvaW50ZXI6Om1vdmVU
b05leHQoTm9kZSogcm9vdCkKQEAgLTE1MSw3ICsxNTEsNyBAQCB2b2lkIE5vZGVJdGVyYXRvcjo6
ZGV0YWNoKCkKIHsKICAgICByb290KCktPmRvY3VtZW50KCkuZGV0YWNoTm9kZUl0ZXJhdG9yKHRo
aXMpOwogICAgIG1fZGV0YWNoZWQgPSB0cnVlOwotICAgIG1fcmVmZXJlbmNlTm9kZS5ub2RlLmNs
ZWFyKCk7CisgICAgbV9yZWZlcmVuY2VOb2RlLm5vZGUgPSBudWxscHRyOwogfQogCiB2b2lkIE5v
ZGVJdGVyYXRvcjo6bm9kZVdpbGxCZVJlbW92ZWQoTm9kZSYgcmVtb3ZlZE5vZGUpCmRpZmYgLS1n
aXQgYS9Tb3VyY2UvV2ViQ29yZS9kb20vUG9zaXRpb24uaCBiL1NvdXJjZS9XZWJDb3JlL2RvbS9Q
b3NpdGlvbi5oCmluZGV4IDBmMzE2ZGE4NTg4YTUxOTI5ZmQ0NzUxYzlmY2IzM2I5OTE2NzMzZWIu
LjYwM2U4OGYzZWMxYjFhYzNhYTkyMjkwNWMwMTM4MTIzODQyMGRkZWIgMTAwNjQ0Ci0tLSBhL1Nv
dXJjZS9XZWJDb3JlL2RvbS9Qb3NpdGlvbi5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL2RvbS9Qb3Np
dGlvbi5oCkBAIC05Miw3ICs5Miw3IEBAIHB1YmxpYzoKIAogICAgIEFuY2hvclR5cGUgYW5jaG9y
VHlwZSgpIGNvbnN0IHsgcmV0dXJuIHN0YXRpY19jYXN0PEFuY2hvclR5cGU+KG1fYW5jaG9yVHlw
ZSk7IH0KIAotICAgIHZvaWQgY2xlYXIoKSB7IG1fYW5jaG9yTm9kZS5jbGVhcigpOyBtX29mZnNl
dCA9IDA7IG1fYW5jaG9yVHlwZSA9IFBvc2l0aW9uSXNPZmZzZXRJbkFuY2hvcjsgbV9pc0xlZ2Fj
eUVkaXRpbmdQb3NpdGlvbiA9IGZhbHNlOyB9CisgICAgdm9pZCBjbGVhcigpIHsgbV9hbmNob3JO
b2RlID0gbnVsbHB0cjsgbV9vZmZzZXQgPSAwOyBtX2FuY2hvclR5cGUgPSBQb3NpdGlvbklzT2Zm
c2V0SW5BbmNob3I7IG1faXNMZWdhY3lFZGl0aW5nUG9zaXRpb24gPSBmYWxzZTsgfQogCiAgICAg
Ly8gVGhlc2UgYXJlIGFsd2F5cyBET00gY29tcGxpYW50IHZhbHVlcy4gIEVkaXRpbmcgcG9zaXRp
b25zIGxpa2UgW2ltZywgMF0gKGFrYSBbaW1nLCBiZWZvcmVdKQogICAgIC8vIHdpbGwgcmV0dXJu
IGltZy0+cGFyZW50Tm9kZSgpIGFuZCBpbWctPmNvbXB1dGVOb2RlSW5kZXgoKSBmcm9tIHRoZXNl
IGZ1bmN0aW9ucy4KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2RvbS9Qcm9jZXNzaW5nSW5z
dHJ1Y3Rpb24uY3BwIGIvU291cmNlL1dlYkNvcmUvZG9tL1Byb2Nlc3NpbmdJbnN0cnVjdGlvbi5j
cHAKaW5kZXggM2VjYjY0NjM5Y2ZhYmE2MGE1ZDNiNjZlMmZhZGU1MGRkY2I3ZjFiMC4uYjM0M2Nh
M2EwMWFlOGVlZmRiNTk3ZTVkNGUyMmUyN2I5OTNmZWY5MCAxMDA2NDQKLS0tIGEvU291cmNlL1dl
YkNvcmUvZG9tL1Byb2Nlc3NpbmdJbnN0cnVjdGlvbi5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUv
ZG9tL1Byb2Nlc3NpbmdJbnN0cnVjdGlvbi5jcHAKQEAgLTI4MSw3ICsyODEsNyBAQCB2b2lkIFBy
b2Nlc3NpbmdJbnN0cnVjdGlvbjo6cmVtb3ZlZEZyb20oQ29udGFpbmVyTm9kZSYgaW5zZXJ0aW9u
UG9pbnQpCiAgICAgaWYgKG1fc2hlZXQpIHsKICAgICAgICAgQVNTRVJUKG1fc2hlZXQtPm93bmVy
Tm9kZSgpID09IHRoaXMpOwogICAgICAgICBtX3NoZWV0LT5jbGVhck93bmVyTm9kZSgpOwotICAg
ICAgICBtX3NoZWV0ID0gMDsKKyAgICAgICAgbV9zaGVldCA9IG51bGxwdHI7CiAgICAgfQogCiAg
ICAgLy8gSWYgd2UncmUgaW4gZG9jdW1lbnQgdGVhcmRvd24sIHRoZW4gd2UgZG9uJ3QgbmVlZCB0
byBkbyBhbnkgbm90aWZpY2F0aW9uIG9mIG91ciBzaGVldCdzIHJlbW92YWwuCmRpZmYgLS1naXQg
YS9Tb3VyY2UvV2ViQ29yZS9kb20vUmFuZ2VCb3VuZGFyeVBvaW50LmggYi9Tb3VyY2UvV2ViQ29y
ZS9kb20vUmFuZ2VCb3VuZGFyeVBvaW50LmgKaW5kZXggYjA0ZGMwOGI1NWJmMDIxY2NkZGZiMjZh
ZWU1ZDM4NGIxMTI2YWUwMy4uNWIxNGEzZGZjMWUyZTI5ZjE0NzliZjQ2YzljZThiYWQ3ZGJlZWIx
OSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvZG9tL1JhbmdlQm91bmRhcnlQb2ludC5oCisr
KyBiL1NvdXJjZS9XZWJDb3JlL2RvbS9SYW5nZUJvdW5kYXJ5UG9pbnQuaApAQCAtMTEyLDkgKzEx
Miw5IEBAIGlubGluZSBpbnQgUmFuZ2VCb3VuZGFyeVBvaW50OjpvZmZzZXQoKSBjb25zdAogCiBp
bmxpbmUgdm9pZCBSYW5nZUJvdW5kYXJ5UG9pbnQ6OmNsZWFyKCkKIHsKLSAgICBtX2NvbnRhaW5l
ck5vZGUuY2xlYXIoKTsKKyAgICBtX2NvbnRhaW5lck5vZGUgPSBudWxscHRyOwogICAgIG1fb2Zm
c2V0SW5Db250YWluZXIgPSAwOwotICAgIG1fY2hpbGRCZWZvcmVCb3VuZGFyeSA9IDA7CisgICAg
bV9jaGlsZEJlZm9yZUJvdW5kYXJ5ID0gbnVsbHB0cjsKIH0KIAogaW5saW5lIHZvaWQgUmFuZ2VC
b3VuZGFyeVBvaW50OjpzZXQoUGFzc1JlZlB0cjxOb2RlPiBjb250YWluZXIsIGludCBvZmZzZXQs
IE5vZGUqIGNoaWxkQmVmb3JlKQpAQCAtMTQ5LDcgKzE0OSw3IEBAIGlubGluZSB2b2lkIFJhbmdl
Qm91bmRhcnlQb2ludDo6c2V0VG9TdGFydE9mTm9kZShQYXNzUmVmUHRyPE5vZGU+IGNvbnRhaW5l
cikKICAgICBBU1NFUlQoY29udGFpbmVyKTsKICAgICBtX2NvbnRhaW5lck5vZGUgPSBjb250YWlu
ZXI7CiAgICAgbV9vZmZzZXRJbkNvbnRhaW5lciA9IDA7Ci0gICAgbV9jaGlsZEJlZm9yZUJvdW5k
YXJ5ID0gMDsKKyAgICBtX2NoaWxkQmVmb3JlQm91bmRhcnkgPSBudWxscHRyOwogfQogCiBpbmxp
bmUgdm9pZCBSYW5nZUJvdW5kYXJ5UG9pbnQ6OnNldFRvRW5kT2ZOb2RlKFBhc3NSZWZQdHI8Tm9k
ZT4gY29udGFpbmVyKQpAQCAtMTU4LDcgKzE1OCw3IEBAIGlubGluZSB2b2lkIFJhbmdlQm91bmRh
cnlQb2ludDo6c2V0VG9FbmRPZk5vZGUoUGFzc1JlZlB0cjxOb2RlPiBjb250YWluZXIpCiAgICAg
bV9jb250YWluZXJOb2RlID0gY29udGFpbmVyOwogICAgIGlmIChtX2NvbnRhaW5lck5vZGUtPm9m
ZnNldEluQ2hhcmFjdGVycygpKSB7CiAgICAgICAgIG1fb2Zmc2V0SW5Db250YWluZXIgPSBtX2Nv
bnRhaW5lck5vZGUtPm1heENoYXJhY3Rlck9mZnNldCgpOwotICAgICAgICBtX2NoaWxkQmVmb3Jl
Qm91bmRhcnkgPSAwOworICAgICAgICBtX2NoaWxkQmVmb3JlQm91bmRhcnkgPSBudWxscHRyOwog
ICAgIH0gZWxzZSB7CiAgICAgICAgIG1fY2hpbGRCZWZvcmVCb3VuZGFyeSA9IG1fY29udGFpbmVy
Tm9kZS0+bGFzdENoaWxkKCk7CiAgICAgICAgIG1fb2Zmc2V0SW5Db250YWluZXIgPSBtX2NoaWxk
QmVmb3JlQm91bmRhcnkgPyBpbnZhbGlkT2Zmc2V0IDogMDsKZGlmZiAtLWdpdCBhL1NvdXJjZS9X
ZWJDb3JlL2RvbS9TcGFjZVNwbGl0U3RyaW5nLmggYi9Tb3VyY2UvV2ViQ29yZS9kb20vU3BhY2VT
cGxpdFN0cmluZy5oCmluZGV4IGVmNTY4MDFhNzcxMWRmNWEyY2I1NTgxM2JlNTY3M2YxOTAzMjhl
NzMuLmY4NWI5NjQyMTJkMWRhOGU4MDJkMTY2MDg5NDZjMzc3YWUwYjc4NWQgMTAwNjQ0Ci0tLSBh
L1NvdXJjZS9XZWJDb3JlL2RvbS9TcGFjZVNwbGl0U3RyaW5nLmgKKysrIGIvU291cmNlL1dlYkNv
cmUvZG9tL1NwYWNlU3BsaXRTdHJpbmcuaApAQCAtMTA1LDcgKzEwNSw3IEBAIHB1YmxpYzoKICAg
ICBib29sIG9wZXJhdG9yIT0oY29uc3QgU3BhY2VTcGxpdFN0cmluZyYgb3RoZXIpIGNvbnN0IHsg
cmV0dXJuIG1fZGF0YSAhPSBvdGhlci5tX2RhdGE7IH0KIAogICAgIHZvaWQgc2V0KGNvbnN0IEF0
b21pY1N0cmluZyYsIGJvb2wgc2hvdWxkRm9sZENhc2UpOwotICAgIHZvaWQgY2xlYXIoKSB7IG1f
ZGF0YS5jbGVhcigpOyB9CisgICAgdm9pZCBjbGVhcigpIHsgbV9kYXRhID0gbnVsbHB0cjsgfQog
CiAgICAgYm9vbCBjb250YWlucyhjb25zdCBBdG9taWNTdHJpbmcmIHN0cmluZykgY29uc3QgeyBy
ZXR1cm4gbV9kYXRhICYmIG1fZGF0YS0+Y29udGFpbnMoc3RyaW5nKTsgfQogICAgIGJvb2wgY29u
dGFpbnNBbGwoY29uc3QgU3BhY2VTcGxpdFN0cmluZyYgbmFtZXMpIGNvbnN0IHsgcmV0dXJuICFu
YW1lcy5tX2RhdGEgfHwgKG1fZGF0YSAmJiBtX2RhdGEtPmNvbnRhaW5zQWxsKCpuYW1lcy5tX2Rh
dGEpKTsgfQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvZG9tL1N0eWxlZEVsZW1lbnQuY3Bw
IGIvU291cmNlL1dlYkNvcmUvZG9tL1N0eWxlZEVsZW1lbnQuY3BwCmluZGV4IDViMjY5NjZiNWMz
ODdiOWM4ODdmODAwNmUwZDI1MGE1OGY2OTNkMDkuLjBlYzBkN2Y1YTBlZWE5ZGNiMWU4ZTY1ZTU2
OWQ2MjBkYzJkMmNjMDQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2RvbS9TdHlsZWRFbGVt
ZW50LmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9kb20vU3R5bGVkRWxlbWVudC5jcHAKQEAgLTE4
NSw3ICsxODUsNyBAQCBpbmxpbmUgdm9pZCBTdHlsZWRFbGVtZW50OjpzZXRJbmxpbmVTdHlsZUZy
b21TdHJpbmcoY29uc3QgQXRvbWljU3RyaW5nJiBuZXdTdHlsZQogICAgIC8vIFdlIHJlY29uc3Ry
dWN0IHRoZSBwcm9wZXJ0eSBzZXQgaW5zdGVhZCBvZiBtdXRhdGluZyBpZiB0aGVyZSBpcyBubyBD
U1NPTSB3cmFwcGVyLgogICAgIC8vIFRoaXMgbWFrZXMgd3JhcHBlcmxlc3MgcHJvcGVydHkgc2V0
cyBpbW11dGFibGUgYW5kIHNvIGNhY2hlYWJsZS4KICAgICBpZiAoaW5saW5lU3R5bGUgJiYgIWlz
PE11dGFibGVTdHlsZVByb3BlcnRpZXM+KCppbmxpbmVTdHlsZSkpCi0gICAgICAgIGlubGluZVN0
eWxlLmNsZWFyKCk7CisgICAgICAgIGlubGluZVN0eWxlID0gbnVsbHB0cjsKIAogICAgIGlmICgh
aW5saW5lU3R5bGUpCiAgICAgICAgIGlubGluZVN0eWxlID0gQ1NTUGFyc2VyOjpwYXJzZUlubGlu
ZVN0eWxlRGVjbGFyYXRpb24obmV3U3R5bGVTdHJpbmcsIHRoaXMpOwpAQCAtMjAyLDcgKzIwMiw3
IEBAIHZvaWQgU3R5bGVkRWxlbWVudDo6c3R5bGVBdHRyaWJ1dGVDaGFuZ2VkKGNvbnN0IEF0b21p
Y1N0cmluZyYgbmV3U3R5bGVTdHJpbmcsIEF0CiAgICAgaWYgKG5ld1N0eWxlU3RyaW5nLmlzTnVs
bCgpKSB7CiAgICAgICAgIGlmIChQcm9wZXJ0eVNldENTU1N0eWxlRGVjbGFyYXRpb24qIGNzc29t
V3JhcHBlciA9IGlubGluZVN0eWxlQ1NTT01XcmFwcGVyKCkpCiAgICAgICAgICAgICBjc3NvbVdy
YXBwZXItPmNsZWFyUGFyZW50RWxlbWVudCgpOwotICAgICAgICBlbnN1cmVVbmlxdWVFbGVtZW50
RGF0YSgpLm1faW5saW5lU3R5bGUuY2xlYXIoKTsKKyAgICAgICAgZW5zdXJlVW5pcXVlRWxlbWVu
dERhdGEoKS5tX2lubGluZVN0eWxlID0gbnVsbHB0cjsKICAgICB9IGVsc2UgaWYgKHJlYXNvbiA9
PSBNb2RpZmllZEJ5Q2xvbmluZyB8fCBkb2N1bWVudCgpLmNvbnRlbnRTZWN1cml0eVBvbGljeSgp
LT5hbGxvd0lubGluZVN0eWxlKGRvY3VtZW50KCkudXJsKCksIHN0YXJ0TGluZU51bWJlcikpCiAg
ICAgICAgIHNldElubGluZVN0eWxlRnJvbVN0cmluZyhuZXdTdHlsZVN0cmluZyk7CiAKZGlmZiAt
LWdpdCBhL1NvdXJjZS9XZWJDb3JlL2RvbS9kZWZhdWx0L1BsYXRmb3JtTWVzc2FnZVBvcnRDaGFu
bmVsLmNwcCBiL1NvdXJjZS9XZWJDb3JlL2RvbS9kZWZhdWx0L1BsYXRmb3JtTWVzc2FnZVBvcnRD
aGFubmVsLmNwcAppbmRleCBjNjg2MTFmYzhmYzdiZWNmYWRmOGQ4NDgzYjE0ZmY5MDhjZjQ2MWZh
Li5jNDE3NDg2Mzc0OTE3MzY3MzNmN2MyOTFhNDZlNWE5ZDE3YjdkMjc2IDEwMDY0NAotLS0gYS9T
b3VyY2UvV2ViQ29yZS9kb20vZGVmYXVsdC9QbGF0Zm9ybU1lc3NhZ2VQb3J0Q2hhbm5lbC5jcHAK
KysrIGIvU291cmNlL1dlYkNvcmUvZG9tL2RlZmF1bHQvUGxhdGZvcm1NZXNzYWdlUG9ydENoYW5u
ZWwuY3BwCkBAIC0xODMsOSArMTgzLDkgQEAgdm9pZCBQbGF0Zm9ybU1lc3NhZ2VQb3J0Q2hhbm5l
bDo6Y2xvc2VJbnRlcm5hbCgpCiB7CiAgICAgTXV0ZXhMb2NrZXIgbG9jayhtX211dGV4KTsKICAg
ICAvLyBEaXNlbnRhbmdsZSBvdXJzZWx2ZXMgZnJvbSB0aGUgb3RoZXIgZW5kLiBXZSBzdGlsbCBt
YWludGFpbiBhIHJlZmVyZW5jZSB0byBvdXIgaW5jb21pbmcgcXVldWUsIHNpbmNlIHByZXZpb3Vz
bHktZXhpc3RpbmcgbWVzc2FnZXMgc2hvdWxkIHN0aWxsIGJlIGRlbGl2ZXJlZC4KLSAgICBtX3Jl
bW90ZVBvcnQgPSAwOwotICAgIG1fZW50YW5nbGVkQ2hhbm5lbCA9IDA7Ci0gICAgbV9vdXRnb2lu
Z1F1ZXVlID0gMDsKKyAgICBtX3JlbW90ZVBvcnQgPSBudWxscHRyOworICAgIG1fZW50YW5nbGVk
Q2hhbm5lbCA9IG51bGxwdHI7CisgICAgbV9vdXRnb2luZ1F1ZXVlID0gbnVsbHB0cjsKIH0KIAog
fSAvLyBuYW1lc3BhY2UgV2ViQ29yZQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvZWRpdGlu
Zy9BbHRlcm5hdGl2ZVRleHRDb250cm9sbGVyLmNwcCBiL1NvdXJjZS9XZWJDb3JlL2VkaXRpbmcv
QWx0ZXJuYXRpdmVUZXh0Q29udHJvbGxlci5jcHAKaW5kZXggZjViYzk0ODkxY2FmN2U3MDk3YTAz
ZTI3MjllNzI4ZjI2MzZmMDhiZC4uMjc1ZTQzMGViNzNjMTRjYTJjZmYzM2M2NTc3NjFlNDYxOWU1
ZWFlOSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvZWRpdGluZy9BbHRlcm5hdGl2ZVRleHRD
b250cm9sbGVyLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9lZGl0aW5nL0FsdGVybmF0aXZlVGV4
dENvbnRyb2xsZXIuY3BwCkBAIC0xNDcsNyArMTQ3LDcgQEAgdm9pZCBBbHRlcm5hdGl2ZVRleHRD
b250cm9sbGVyOjpzdGFydEFsdGVybmF0aXZlVGV4dFVJVGltZXIoQWx0ZXJuYXRpdmVUZXh0VHlw
ZQogCiAgICAgLy8gSWYgdHlwZSBpcyBQYW5lbFR5cGVSZXZlcnNpb24sIHRoZW4gdGhlIG5ldyBy
YW5nZSBoYXMgYmVlbiBzZXQuIFNvIHdlIHNob3VsZG4ndCBjbGVhciBpdC4KICAgICBpZiAodHlw
ZSA9PSBBbHRlcm5hdGl2ZVRleHRUeXBlQ29ycmVjdGlvbikKLSAgICAgICAgbV9hbHRlcm5hdGl2
ZVRleHRJbmZvLnJhbmdlV2l0aEFsdGVybmF0aXZlLmNsZWFyKCk7CisgICAgICAgIG1fYWx0ZXJu
YXRpdmVUZXh0SW5mby5yYW5nZVdpdGhBbHRlcm5hdGl2ZSA9IG51bGxwdHI7CiAgICAgbV9hbHRl
cm5hdGl2ZVRleHRJbmZvLnR5cGUgPSB0eXBlOwogICAgIG1fdGltZXIuc3RhcnRPbmVTaG90KGNv
cnJlY3Rpb25QYW5lbFRpbWVySW50ZXJ2YWwpOwogfQpAQCAtMTU1LDcgKzE1NSw3IEBAIHZvaWQg
QWx0ZXJuYXRpdmVUZXh0Q29udHJvbGxlcjo6c3RhcnRBbHRlcm5hdGl2ZVRleHRVSVRpbWVyKEFs
dGVybmF0aXZlVGV4dFR5cGUKIHZvaWQgQWx0ZXJuYXRpdmVUZXh0Q29udHJvbGxlcjo6c3RvcEFs
dGVybmF0aXZlVGV4dFVJVGltZXIoKQogewogICAgIG1fdGltZXIuc3RvcCgpOwotICAgIG1fYWx0
ZXJuYXRpdmVUZXh0SW5mby5yYW5nZVdpdGhBbHRlcm5hdGl2ZS5jbGVhcigpOworICAgIG1fYWx0
ZXJuYXRpdmVUZXh0SW5mby5yYW5nZVdpdGhBbHRlcm5hdGl2ZSA9IG51bGxwdHI7CiB9CiAKIHZv
aWQgQWx0ZXJuYXRpdmVUZXh0Q29udHJvbGxlcjo6c3RvcFBlbmRpbmdDb3JyZWN0aW9uKGNvbnN0
IFZpc2libGVTZWxlY3Rpb24mIG9sZFNlbGVjdGlvbikKQEAgLTE4Myw3ICsxODMsNyBAQCB2b2lk
IEFsdGVybmF0aXZlVGV4dENvbnRyb2xsZXI6OmFwcGx5UGVuZGluZ0NvcnJlY3Rpb24oY29uc3Qg
VmlzaWJsZVNlbGVjdGlvbiYgcwogICAgIGlmIChkb0FwcGx5Q29ycmVjdGlvbikKICAgICAgICAg
aGFuZGxlQWx0ZXJuYXRpdmVUZXh0VUlSZXN1bHQoZGlzbWlzc1Nvb24oUmVhc29uRm9yRGlzbWlz
c2luZ0FsdGVybmF0aXZlVGV4dEFjY2VwdGVkKSk7IAogICAgIGVsc2UKLSAgICAgICAgbV9hbHRl
cm5hdGl2ZVRleHRJbmZvLnJhbmdlV2l0aEFsdGVybmF0aXZlLmNsZWFyKCk7CisgICAgICAgIG1f
YWx0ZXJuYXRpdmVUZXh0SW5mby5yYW5nZVdpdGhBbHRlcm5hdGl2ZSA9IG51bGxwdHI7CiB9CiAK
IGJvb2wgQWx0ZXJuYXRpdmVUZXh0Q29udHJvbGxlcjo6aGFzUGVuZGluZ0NvcnJlY3Rpb24oKSBj
b25zdApAQCAtMzU5LDcgKzM1OSw3IEBAIHZvaWQgQWx0ZXJuYXRpdmVUZXh0Q29udHJvbGxlcjo6
dGltZXJGaXJlZCgpCiAgICAgICAgIFZlY3RvcjxTdHJpbmc+IHN1Z2dlc3Rpb25zOwogICAgICAg
ICB0ZXh0Q2hlY2tlcigpLT5nZXRHdWVzc2VzRm9yV29yZChtX2FsdGVybmF0aXZlVGV4dEluZm8u
b3JpZ2luYWxUZXh0LCBwYXJhZ3JhcGhUZXh0LCBzdWdnZXN0aW9ucyk7CiAgICAgICAgIGlmIChz
dWdnZXN0aW9ucy5pc0VtcHR5KCkpIHsKLSAgICAgICAgICAgIG1fYWx0ZXJuYXRpdmVUZXh0SW5m
by5yYW5nZVdpdGhBbHRlcm5hdGl2ZS5jbGVhcigpOworICAgICAgICAgICAgbV9hbHRlcm5hdGl2
ZVRleHRJbmZvLnJhbmdlV2l0aEFsdGVybmF0aXZlID0gbnVsbHB0cjsKICAgICAgICAgICAgIGJy
ZWFrOwogICAgICAgICB9CiAgICAgICAgIFN0cmluZyB0b3BTdWdnZXN0aW9uID0gc3VnZ2VzdGlv
bnMuZmlyc3QoKTsKQEAgLTQyMiw3ICs0MjIsNyBAQCB2b2lkIEFsdGVybmF0aXZlVGV4dENvbnRy
b2xsZXI6OmhhbmRsZUFsdGVybmF0aXZlVGV4dFVJUmVzdWx0KGNvbnN0IFN0cmluZyYgcmVzdQog
ICAgICAgICBicmVhazsKICAgICB9CiAKLSAgICBtX2FsdGVybmF0aXZlVGV4dEluZm8ucmFuZ2VX
aXRoQWx0ZXJuYXRpdmUuY2xlYXIoKTsKKyAgICBtX2FsdGVybmF0aXZlVGV4dEluZm8ucmFuZ2VX
aXRoQWx0ZXJuYXRpdmUgPSBudWxscHRyOwogfQogCiBib29sIEFsdGVybmF0aXZlVGV4dENvbnRy
b2xsZXI6OmlzQXV0b21hdGljU3BlbGxpbmdDb3JyZWN0aW9uRW5hYmxlZCgpCmRpZmYgLS1naXQg
YS9Tb3VyY2UvV2ViQ29yZS9lZGl0aW5nL0FwcGx5QmxvY2tFbGVtZW50Q29tbWFuZC5jcHAgYi9T
b3VyY2UvV2ViQ29yZS9lZGl0aW5nL0FwcGx5QmxvY2tFbGVtZW50Q29tbWFuZC5jcHAKaW5kZXgg
NDMzZTk1MzY2NGY3MDFkMTIxMjZmYjQwM2E2N2NiZmJhN2Y0ZjA4OC4uMjFhYmU3MWNjOGVkZDUw
ZjE2MzRmMDQzMzBhOGMxMmJjYzkxNjVlZSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvZWRp
dGluZy9BcHBseUJsb2NrRWxlbWVudENvbW1hbmQuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2Vk
aXRpbmcvQXBwbHlCbG9ja0VsZW1lbnRDb21tYW5kLmNwcApAQCAtMTQzLDcgKzE0Myw3IEBAIHZv
aWQgQXBwbHlCbG9ja0VsZW1lbnRDb21tYW5kOjpmb3JtYXRTZWxlY3Rpb24oY29uc3QgVmlzaWJs
ZVBvc2l0aW9uJiBzdGFydE9mU2VsCiAgICAgICAgIC8vIERvbid0IHB1dCB0aGUgbmV4dCBwYXJh
Z3JhcGggaW4gdGhlIGJsb2NrcXVvdGUgd2UganVzdCBjcmVhdGVkIGZvciB0aGlzIHBhcmFncmFw
aCB1bmxlc3MgCiAgICAgICAgIC8vIHRoZSBuZXh0IHBhcmFncmFwaCBpcyBpbiB0aGUgc2FtZSBj
ZWxsLgogICAgICAgICBpZiAoZW5jbG9zaW5nQ2VsbCAmJiBlbmNsb3NpbmdDZWxsICE9IGVuY2xv
c2luZ05vZGVPZlR5cGUoZW5kT2ZOZXh0UGFyYWdyYXBoLmRlZXBFcXVpdmFsZW50KCksICZpc1Rh
YmxlQ2VsbCkpCi0gICAgICAgICAgICBibG9ja3F1b3RlRm9yTmV4dEluZGVudCA9IDA7CisgICAg
ICAgICAgICBibG9ja3F1b3RlRm9yTmV4dEluZGVudCA9IG51bGxwdHI7CiAKICAgICAgICAgLy8g
aW5kZW50SW50b0Jsb2NrcXVvdGUgY291bGQgbW92ZSBtb3JlIHRoYW4gb25lIHBhcmFncmFwaCBp
ZiB0aGUgcGFyYWdyYXBoCiAgICAgICAgIC8vIGlzIGluIGEgbGlzdCBpdGVtIG9yIGEgdGFibGUu
IEFzIGEgcmVzdWx0LCBlbmRBZnRlclNlbGVjdGlvbiBjb3VsZCByZWZlciB0byBhIHBvc2l0aW9u
CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9lZGl0aW5nL0RlbGV0ZVNlbGVjdGlvbkNvbW1h
bmQuY3BwIGIvU291cmNlL1dlYkNvcmUvZWRpdGluZy9EZWxldGVTZWxlY3Rpb25Db21tYW5kLmNw
cAppbmRleCBlYjNhNWYzMGEwM2YyODRlMjI2MGZmNDhmYmE5ZjFiOTk5YWQ5OTI3Li5jNjQ5MWQy
NjkyNjVlNWFiNmNlOTY1ZWFhOTUzNDFiNjU0NDdkMWFlIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2Vi
Q29yZS9lZGl0aW5nL0RlbGV0ZVNlbGVjdGlvbkNvbW1hbmQuY3BwCisrKyBiL1NvdXJjZS9XZWJD
b3JlL2VkaXRpbmcvRGVsZXRlU2VsZWN0aW9uQ29tbWFuZC5jcHAKQEAgLTMwMiw3ICszMDIsNyBA
QCB2b2lkIERlbGV0ZVNlbGVjdGlvbkNvbW1hbmQ6OnNhdmVUeXBpbmdTdHlsZVN0YXRlKCkKICAg
ICBpZiAoZW5jbG9zaW5nTm9kZU9mVHlwZShtX3NlbGVjdGlvblRvRGVsZXRlLnN0YXJ0KCksIGlz
TWFpbEJsb2NrcXVvdGUpKQogICAgICAgICBtX2RlbGV0ZUludG9CbG9ja3F1b3RlU3R5bGUgPSBF
ZGl0aW5nU3R5bGU6OmNyZWF0ZShtX3NlbGVjdGlvblRvRGVsZXRlLmVuZCgpKTsKICAgICBlbHNl
Ci0gICAgICAgIG1fZGVsZXRlSW50b0Jsb2NrcXVvdGVTdHlsZSA9IDA7CisgICAgICAgIG1fZGVs
ZXRlSW50b0Jsb2NrcXVvdGVTdHlsZSA9IG51bGxwdHI7CiB9CiAKIGJvb2wgRGVsZXRlU2VsZWN0
aW9uQ29tbWFuZDo6aGFuZGxlU3BlY2lhbENhc2VCUkRlbGV0ZSgpCkBAIC03MjgsMTEgKzcyOCwx
MSBAQCB2b2lkIERlbGV0ZVNlbGVjdGlvbkNvbW1hbmQ6OmNhbGN1bGF0ZVR5cGluZ1N0eWxlQWZ0
ZXJEZWxldGUoKQogICAgIC8vIElmIHdlIGRlbGV0ZWQgaW50byBhIGJsb2NrcXVvdGUsIGJ1dCBh
cmUgbm93IG5vIGxvbmdlciBpbiBhIGJsb2NrcXVvdGUsIHVzZSB0aGUgYWx0ZXJuYXRlIHR5cGlu
ZyBzdHlsZQogICAgIGlmIChtX2RlbGV0ZUludG9CbG9ja3F1b3RlU3R5bGUgJiYgIWVuY2xvc2lu
Z05vZGVPZlR5cGUobV9lbmRpbmdQb3NpdGlvbiwgaXNNYWlsQmxvY2txdW90ZSwgQ2FuQ3Jvc3NF
ZGl0aW5nQm91bmRhcnkpKQogICAgICAgICBtX3R5cGluZ1N0eWxlID0gbV9kZWxldGVJbnRvQmxv
Y2txdW90ZVN0eWxlOwotICAgIG1fZGVsZXRlSW50b0Jsb2NrcXVvdGVTdHlsZSA9IDA7CisgICAg
bV9kZWxldGVJbnRvQmxvY2txdW90ZVN0eWxlID0gbnVsbHB0cjsKIAogICAgIG1fdHlwaW5nU3R5
bGUtPnByZXBhcmVUb0FwcGx5QXQobV9lbmRpbmdQb3NpdGlvbik7CiAgICAgaWYgKG1fdHlwaW5n
U3R5bGUtPmlzRW1wdHkoKSkKLSAgICAgICAgbV90eXBpbmdTdHlsZSA9IDA7CisgICAgICAgIG1f
dHlwaW5nU3R5bGUgPSBudWxscHRyOwogICAgIC8vIFRoaXMgaXMgd2hlcmUgd2UndmUgZGVsZXRl
ZCBhbGwgdHJhY2VzIG9mIGEgc3R5bGUgYnV0IG5vdCBhIHdob2xlIHBhcmFncmFwaCAodGhhdCdz
IGhhbmRsZWQgYWJvdmUpLgogICAgIC8vIEluIHRoaXMgY2FzZSBpZiB3ZSBzdGFydCB0eXBpbmcs
IHRoZSBuZXcgY2hhcmFjdGVycyBzaG91bGQgaGF2ZSB0aGUgc2FtZSBzdHlsZSBhcyB0aGUganVz
dCBkZWxldGVkIG9uZXMsCiAgICAgLy8gYnV0LCBpZiB3ZSBjaGFuZ2UgdGhlIHNlbGVjdGlvbiwg
Y29tZSBiYWNrIGFuZCBzdGFydCB0eXBpbmcgdGhhdCBzdHlsZSBzaG91bGQgYmUgbG9zdC4gIEFs
c28gc2VlIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvZWRpdGluZy9FZGl0aW5nU3R5bGUu
Y3BwIGIvU291cmNlL1dlYkNvcmUvZWRpdGluZy9FZGl0aW5nU3R5bGUuY3BwCmluZGV4IDVjZjEy
Y2Q5YjczOGExZGQ3NDBkNWVjZDU1YmQ1OTcyZDllZDI2NjEuLjE3YWFiMjk1YmE2YjkyZGFlMmE3
MjQ0ZGMxNTY4ZWZmMmY1NTc0N2EgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2VkaXRpbmcv
RWRpdGluZ1N0eWxlLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9lZGl0aW5nL0VkaXRpbmdTdHls
ZS5jcHAKQEAgLTYzOCw3ICs2MzgsNyBAQCB2b2lkIEVkaXRpbmdTdHlsZTo6b3ZlcnJpZGVUeXBp
bmdTdHlsZUF0KGNvbnN0IEVkaXRpbmdTdHlsZSYgc3R5bGUsIGNvbnN0IFBvc2l0aQogCiB2b2lk
IEVkaXRpbmdTdHlsZTo6Y2xlYXIoKQogewotICAgIG1fbXV0YWJsZVN0eWxlLmNsZWFyKCk7Cisg
ICAgbV9tdXRhYmxlU3R5bGUgPSBudWxscHRyOwogICAgIG1fc2hvdWxkVXNlRml4ZWREZWZhdWx0
Rm9udFNpemUgPSBmYWxzZTsKICAgICBtX2ZvbnRTaXplRGVsdGEgPSBOb0ZvbnREZWx0YTsKICAg
ICBzZXRVbmRlcmxpbmVDaGFuZ2UoVGV4dERlY29yYXRpb25DaGFuZ2U6Ok5vbmUpOwpkaWZmIC0t
Z2l0IGEvU291cmNlL1dlYkNvcmUvZWRpdGluZy9FZGl0b3IuY3BwIGIvU291cmNlL1dlYkNvcmUv
ZWRpdGluZy9FZGl0b3IuY3BwCmluZGV4IGEzYzNjOWMzYjQzNDQyOTc1MWY3M2VmMTkyOGM0MTlj
OTVkNWE5N2MuLmU3Njg3ZWMyNDY1MDA1ZGI1NzQ2ZmU2YzRhZGY2YzE1ODY4N2IzNzQgMTAwNjQ0
Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2VkaXRpbmcvRWRpdG9yLmNwcAorKysgYi9Tb3VyY2UvV2Vi
Q29yZS9lZGl0aW5nL0VkaXRvci5jcHAKQEAgLTgyOCw3ICs4MjgsNyBAQCB2b2lkIEVkaXRvcjo6
cmVtb3ZlRm9ybWF0dGluZ0FuZFN0eWxlKCkKIAogdm9pZCBFZGl0b3I6OmNsZWFyTGFzdEVkaXRD
b21tYW5kKCkgCiB7Ci0gICAgbV9sYXN0RWRpdENvbW1hbmQuY2xlYXIoKTsKKyAgICBtX2xhc3RF
ZGl0Q29tbWFuZCA9IG51bGxwdHI7CiB9CiAjaWYgUExBVEZPUk0oSU9TKQogLy8gSWYgdGhlIHNl
bGVjdGlvbiBpcyBhZGp1c3RlZCBmcm9tIFVJS2l0IHdpdGhvdXQgY2xvc2luZyB0aGUgdHlwaW5n
LCB0aGUgdHlwaW5nIGNvbW1hbmQgbWF5CkBAIC0xMDY2LDcgKzEwNjYsNyBAQCB2b2lkIEVkaXRv
cjo6dW5hcHBsaWVkRWRpdGluZyhQYXNzUmVmUHRyPEVkaXRDb21tYW5kQ29tcG9zaXRpb24+IGNt
ZCkKIAogICAgIG1fYWx0ZXJuYXRpdmVUZXh0Q29udHJvbGxlci0+cmVzcG9uZFRvVW5hcHBsaWVk
RWRpdGluZyhjbWQuZ2V0KCkpOwogCi0gICAgbV9sYXN0RWRpdENvbW1hbmQgPSAwOworICAgIG1f
bGFzdEVkaXRDb21tYW5kID0gbnVsbHB0cjsKICAgICBpZiAoY2xpZW50KCkpCiAgICAgICAgIGNs
aWVudCgpLT5yZWdpc3RlclJlZG9TdGVwKGNtZCk7CiAgICAgcmVzcG9uZFRvQ2hhbmdlZENvbnRl
bnRzKG5ld1NlbGVjdGlvbik7CkBAIC0xMDg0LDcgKzEwODQsNyBAQCB2b2lkIEVkaXRvcjo6cmVh
cHBsaWVkRWRpdGluZyhQYXNzUmVmUHRyPEVkaXRDb21tYW5kQ29tcG9zaXRpb24+IGNtZCkKICAg
ICAKICAgICB1cGRhdGVFZGl0b3JVSU5vd0lmU2NoZWR1bGVkKCk7CiAKLSAgICBtX2xhc3RFZGl0
Q29tbWFuZCA9IDA7CisgICAgbV9sYXN0RWRpdENvbW1hbmQgPSBudWxscHRyOwogICAgIGlmIChj
bGllbnQoKSkKICAgICAgICAgY2xpZW50KCktPnJlZ2lzdGVyVW5kb1N0ZXAoY21kKTsKICAgICBy
ZXNwb25kVG9DaGFuZ2VkQ29udGVudHMobmV3U2VsZWN0aW9uKTsKQEAgLTE3MjcsNyArMTcyNyw3
IEBAIHZvaWQgRWRpdG9yOjpzZXRDb21wb3NpdGlvbihjb25zdCBTdHJpbmcmIHRleHQsIFNldENv
bXBvc2l0aW9uTW9kZSBtb2RlKQogICAgIGlmICh0ZXh0LmlzRW1wdHkoKSAmJiBtb2RlICE9IENh
bmNlbENvbXBvc2l0aW9uKQogICAgICAgICBUeXBpbmdDb21tYW5kOjpkZWxldGVTZWxlY3Rpb24o
ZG9jdW1lbnQoKSwgMCk7CiAKLSAgICBtX2NvbXBvc2l0aW9uTm9kZSA9IDA7CisgICAgbV9jb21w
b3NpdGlvbk5vZGUgPSBudWxscHRyOwogICAgIG1fY3VzdG9tQ29tcG9zaXRpb25VbmRlcmxpbmVz
LmNsZWFyKCk7CiAKICAgICBpbnNlcnRUZXh0Rm9yQ29uZmlybWVkQ29tcG9zaXRpb24odGV4dCk7
CkBAIC0xODAyLDcgKzE4MDIsNyBAQCB2b2lkIEVkaXRvcjo6c2V0Q29tcG9zaXRpb24oY29uc3Qg
U3RyaW5nJiB0ZXh0LCBjb25zdCBWZWN0b3I8Q29tcG9zaXRpb25VbmRlcmxpbgogICAgIGlmICh0
ZXh0LmlzRW1wdHkoKSkKICAgICAgICAgVHlwaW5nQ29tbWFuZDo6ZGVsZXRlU2VsZWN0aW9uKGRv
Y3VtZW50KCksIFR5cGluZ0NvbW1hbmQ6OlByZXZlbnRTcGVsbENoZWNraW5nKTsKIAotICAgIG1f
Y29tcG9zaXRpb25Ob2RlID0gMDsKKyAgICBtX2NvbXBvc2l0aW9uTm9kZSA9IG51bGxwdHI7CiAg
ICAgbV9jdXN0b21Db21wb3NpdGlvblVuZGVybGluZXMuY2xlYXIoKTsKIAogICAgIGlmICghdGV4
dC5pc0VtcHR5KCkpIHsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2VkaXRpbmcvRnJhbWVT
ZWxlY3Rpb24uY3BwIGIvU291cmNlL1dlYkNvcmUvZWRpdGluZy9GcmFtZVNlbGVjdGlvbi5jcHAK
aW5kZXggYjBlMjUzNTg3ZmQ4YWRjZGUzNGQ4YmIyMWFiM2FlZmI4NjNkNmI4Mi4uZmEwODgzNzEy
NTM3MWExMWNiODc5OThmYTRhMTU3MWRkMTg0ZmIzMyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNv
cmUvZWRpdGluZy9GcmFtZVNlbGVjdGlvbi5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvZWRpdGlu
Zy9GcmFtZVNlbGVjdGlvbi5jcHAKQEAgLTEzNTksNyArMTM1OSw3IEBAIHZvaWQgRnJhbWVTZWxl
Y3Rpb246OnByZXBhcmVGb3JEZXN0cnVjdGlvbigpCiAgICAgICAgIHZpZXctPmNsZWFyU2VsZWN0
aW9uKCk7CiAKICAgICBzZXRTZWxlY3Rpb25XaXRob3V0VXBkYXRpbmdBcHBlYXJhbmNlKFZpc2li
bGVTZWxlY3Rpb24oKSwgZGVmYXVsdFNldFNlbGVjdGlvbk9wdGlvbnMoKSwgQWxpZ25DdXJzb3JP
blNjcm9sbElmTmVlZGVkLCBDaGFyYWN0ZXJHcmFudWxhcml0eSk7Ci0gICAgbV9wcmV2aW91c0Nh
cmV0Tm9kZS5jbGVhcigpOworICAgIG1fcHJldmlvdXNDYXJldE5vZGUgPSBudWxscHRyOwogfQog
CiB2b2lkIEZyYW1lU2VsZWN0aW9uOjpzZXRTdGFydChjb25zdCBWaXNpYmxlUG9zaXRpb24gJnBv
cywgRVVzZXJUcmlnZ2VyZWQgdHJpZ2dlcikKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2Vk
aXRpbmcvRnJhbWVTZWxlY3Rpb24uaCBiL1NvdXJjZS9XZWJDb3JlL2VkaXRpbmcvRnJhbWVTZWxl
Y3Rpb24uaAppbmRleCBlZDg3OTZlZjAzMTAyOGM3YmYyOTBiZTM0ODhkOTg2OWIyM2VlOWIyLi4z
MTBhNzRhYWI5ZDJmNTFkZmE3MWJkMWFkOTY2MzQ4MzdiNjEyNWMwIDEwMDY0NAotLS0gYS9Tb3Vy
Y2UvV2ViQ29yZS9lZGl0aW5nL0ZyYW1lU2VsZWN0aW9uLmgKKysrIGIvU291cmNlL1dlYkNvcmUv
ZWRpdGluZy9GcmFtZVNlbGVjdGlvbi5oCkBAIC0zNTksNyArMzU5LDcgQEAgaW5saW5lIEVkaXRp
bmdTdHlsZSogRnJhbWVTZWxlY3Rpb246OnR5cGluZ1N0eWxlKCkgY29uc3QKIAogaW5saW5lIHZv
aWQgRnJhbWVTZWxlY3Rpb246OmNsZWFyVHlwaW5nU3R5bGUoKQogewotICAgIG1fdHlwaW5nU3R5
bGUuY2xlYXIoKTsKKyAgICBtX3R5cGluZ1N0eWxlID0gbnVsbHB0cjsKIH0KIAogaW5saW5lIHZv
aWQgRnJhbWVTZWxlY3Rpb246OnNldFR5cGluZ1N0eWxlKFBhc3NSZWZQdHI8RWRpdGluZ1N0eWxl
PiBzdHlsZSkKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2VkaXRpbmcvSW5kZW50T3V0ZGVu
dENvbW1hbmQuY3BwIGIvU291cmNlL1dlYkNvcmUvZWRpdGluZy9JbmRlbnRPdXRkZW50Q29tbWFu
ZC5jcHAKaW5kZXggYjIzOGY4NzkzMTU2YzcyOTcyZTVhN2NkZTNhYWNkZTM5Y2UwMWIwZi4uZWM0
ZDI3MjQ0N2VjYWI3NTY1MDQxOTdkNjc1NTI3MmQ4YjhjZjYzMSAxMDA2NDQKLS0tIGEvU291cmNl
L1dlYkNvcmUvZWRpdGluZy9JbmRlbnRPdXRkZW50Q29tbWFuZC5jcHAKKysrIGIvU291cmNlL1dl
YkNvcmUvZWRpdGluZy9JbmRlbnRPdXRkZW50Q29tbWFuZC5jcHAKQEAgLTIzMiw3ICsyMzIsNyBA
QCB2b2lkIEluZGVudE91dGRlbnRDb21tYW5kOjpmb3JtYXRTZWxlY3Rpb24oY29uc3QgVmlzaWJs
ZVBvc2l0aW9uJiBzdGFydE9mU2VsZWN0aQogdm9pZCBJbmRlbnRPdXRkZW50Q29tbWFuZDo6Zm9y
bWF0UmFuZ2UoY29uc3QgUG9zaXRpb24mIHN0YXJ0LCBjb25zdCBQb3NpdGlvbiYgZW5kLCBjb25z
dCBQb3NpdGlvbiYsIFJlZlB0cjxFbGVtZW50PiYgYmxvY2txdW90ZUZvck5leHRJbmRlbnQpCiB7
CiAgICAgaWYgKHRyeUluZGVudGluZ0FzTGlzdEl0ZW0oc3RhcnQsIGVuZCkpCi0gICAgICAgIGJs
b2NrcXVvdGVGb3JOZXh0SW5kZW50ID0gMDsKKyAgICAgICAgYmxvY2txdW90ZUZvck5leHRJbmRl
bnQgPSBudWxscHRyOwogICAgIGVsc2UKICAgICAgICAgaW5kZW50SW50b0Jsb2NrcXVvdGUoc3Rh
cnQsIGVuZCwgYmxvY2txdW90ZUZvck5leHRJbmRlbnQpOwogfQpkaWZmIC0tZ2l0IGEvU291cmNl
L1dlYkNvcmUvZWRpdGluZy9SZXBsYWNlU2VsZWN0aW9uQ29tbWFuZC5jcHAgYi9Tb3VyY2UvV2Vi
Q29yZS9lZGl0aW5nL1JlcGxhY2VTZWxlY3Rpb25Db21tYW5kLmNwcAppbmRleCAyZTI1ZWVmMGVj
NjBiNTdmZWYyMzlkNDM5Y2IxZWU5MTQ2NjFjODAyLi5lZWUyMjBjODZmOThhNWU3ZDI4OTljNDMz
ZmE5MWYwMDAwNTQ2YmUzIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9lZGl0aW5nL1JlcGxh
Y2VTZWxlY3Rpb25Db21tYW5kLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9lZGl0aW5nL1JlcGxh
Y2VTZWxlY3Rpb25Db21tYW5kLmNwcApAQCAtMzU0LDggKzM1NCw4IEBAIGlubGluZSB2b2lkIFJl
cGxhY2VTZWxlY3Rpb25Db21tYW5kOjpJbnNlcnRlZE5vZGVzOjp3aWxsUmVtb3ZlTm9kZVByZXNl
cnZpbmdDaGlsCiBpbmxpbmUgdm9pZCBSZXBsYWNlU2VsZWN0aW9uQ29tbWFuZDo6SW5zZXJ0ZWRO
b2Rlczo6d2lsbFJlbW92ZU5vZGUoTm9kZSogbm9kZSkKIHsKICAgICBpZiAobV9maXJzdE5vZGVJ
bnNlcnRlZCA9PSBub2RlICYmIG1fbGFzdE5vZGVJbnNlcnRlZCA9PSBub2RlKSB7Ci0gICAgICAg
IG1fZmlyc3ROb2RlSW5zZXJ0ZWQgPSAwOwotICAgICAgICBtX2xhc3ROb2RlSW5zZXJ0ZWQgPSAw
OworICAgICAgICBtX2ZpcnN0Tm9kZUluc2VydGVkID0gbnVsbHB0cjsKKyAgICAgICAgbV9sYXN0
Tm9kZUluc2VydGVkID0gbnVsbHB0cjsKICAgICB9IGVsc2UgaWYgKG1fZmlyc3ROb2RlSW5zZXJ0
ZWQgPT0gbm9kZSkKICAgICAgICAgbV9maXJzdE5vZGVJbnNlcnRlZCA9IE5vZGVUcmF2ZXJzYWw6
Om5leHRTa2lwcGluZ0NoaWxkcmVuKCptX2ZpcnN0Tm9kZUluc2VydGVkKTsKICAgICBlbHNlIGlm
IChtX2xhc3ROb2RlSW5zZXJ0ZWQgPT0gbm9kZSkKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3Jl
L2VkaXRpbmcvU3BlbGxDaGVja2VyLmNwcCBiL1NvdXJjZS9XZWJDb3JlL2VkaXRpbmcvU3BlbGxD
aGVja2VyLmNwcAppbmRleCA4YjRkNTQxMTljMDEzYzQ4NWVmNDRlYjkzMzc1NzM5MjhjNjQ4MGRi
Li4wM2YyZTUxMDQ4MzUyMTUyMGQyOWI3N2U3NjhkZmM5M2JhYTQwNTkzIDEwMDY0NAotLS0gYS9T
b3VyY2UvV2ViQ29yZS9lZGl0aW5nL1NwZWxsQ2hlY2tlci5jcHAKKysrIGIvU291cmNlL1dlYkNv
cmUvZWRpdGluZy9TcGVsbENoZWNrZXIuY3BwCkBAIC0yMTQsNyArMjE0LDcgQEAgdm9pZCBTcGVs
bENoZWNrZXI6OmRpZENoZWNrKGludCBzZXF1ZW5jZSwgY29uc3QgVmVjdG9yPFRleHRDaGVja2lu
Z1Jlc3VsdD4mIHJlc3UKICAgICBpZiAobV9sYXN0UHJvY2Vzc2VkU2VxdWVuY2UgPCBzZXF1ZW5j
ZSkKICAgICAgICAgbV9sYXN0UHJvY2Vzc2VkU2VxdWVuY2UgPSBzZXF1ZW5jZTsKIAotICAgIG1f
cHJvY2Vzc2luZ1JlcXVlc3QuY2xlYXIoKTsKKyAgICBtX3Byb2Nlc3NpbmdSZXF1ZXN0ID0gbnVs
bHB0cjsKICAgICBpZiAoIW1fcmVxdWVzdFF1ZXVlLmlzRW1wdHkoKSkKICAgICAgICAgbV90aW1l
clRvUHJvY2Vzc1F1ZXVlZFJlcXVlc3Quc3RhcnRPbmVTaG90KDApOwogfQpkaWZmIC0tZ2l0IGEv
U291cmNlL1dlYkNvcmUvZWRpdGluZy9UZXh0Q2hlY2tpbmdIZWxwZXIuY3BwIGIvU291cmNlL1dl
YkNvcmUvZWRpdGluZy9UZXh0Q2hlY2tpbmdIZWxwZXIuY3BwCmluZGV4IDAyNGQyYWQ3YzI0ZjQx
NGU1MWZlMTY2NmNmOTA5MjcyMTNkZWYxNzAuLmU5NjEzNGQ3OGE5MmJiMDVlN2YyZWQ3NzA5Yjhj
Y2E0YzRhY2EzYjUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2VkaXRpbmcvVGV4dENoZWNr
aW5nSGVscGVyLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9lZGl0aW5nL1RleHRDaGVja2luZ0hl
bHBlci5jcHAKQEAgLTE0Niw3ICsxNDYsNyBAQCB2b2lkIFRleHRDaGVja2luZ1BhcmFncmFwaDo6
ZXhwYW5kUmFuZ2VUb05leHRFbmQoKQogdm9pZCBUZXh0Q2hlY2tpbmdQYXJhZ3JhcGg6OmludmFs
aWRhdGVQYXJhZ3JhcGhSYW5nZVZhbHVlcygpCiB7CiAgICAgbV9jaGVja2luZ1N0YXJ0ID0gbV9j
aGVja2luZ0VuZCA9IC0xOwotICAgIG1fb2Zmc2V0QXNSYW5nZSA9IDA7CisgICAgbV9vZmZzZXRB
c1JhbmdlID0gbnVsbHB0cjsKICAgICBtX3RleHQgPSBTdHJpbmcoKTsKIH0KIApkaWZmIC0tZ2l0
IGEvU291cmNlL1dlYkNvcmUvZmlsZWFwaS9GaWxlUmVhZGVyLmNwcCBiL1NvdXJjZS9XZWJDb3Jl
L2ZpbGVhcGkvRmlsZVJlYWRlci5jcHAKaW5kZXggN2Y0YzA1ZDI5MzU2NGY5ODRiZmI4YmQzMDJl
OWZhNDhiYzYzODY2NS4uNjFmYzJkZTYxYWVmOGEzZWJiMDg4NGQ3NDA3NmU2YjNiZDFkMGIxMyAx
MDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvZmlsZWFwaS9GaWxlUmVhZGVyLmNwcAorKysgYi9T
b3VyY2UvV2ViQ29yZS9maWxlYXBpL0ZpbGVSZWFkZXIuY3BwCkBAIC0xNDAsNyArMTQwLDcgQEAg
dm9pZCBGaWxlUmVhZGVyOjpyZWFkSW50ZXJuYWwoQmxvYiogYmxvYiwgRmlsZVJlYWRlckxvYWRl
cjo6UmVhZFR5cGUgdHlwZSwgRXhjZXAKICAgICBtX2Jsb2IgPSBibG9iOwogICAgIG1fcmVhZFR5
cGUgPSB0eXBlOwogICAgIG1fc3RhdGUgPSBMT0FESU5HOwotICAgIG1fZXJyb3IgPSAwOworICAg
IG1fZXJyb3IgPSBudWxscHRyOwogCiAgICAgbV9sb2FkZXIgPSBzdGQ6Om1ha2VfdW5pcXVlPEZp
bGVSZWFkZXJMb2FkZXI+KG1fcmVhZFR5cGUsIHRoaXMpOwogICAgIG1fbG9hZGVyLT5zZXRFbmNv
ZGluZyhtX2VuY29kaW5nKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2ZpbGVhcGkvRmls
ZVJlYWRlckxvYWRlci5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9maWxlYXBpL0ZpbGVSZWFkZXJMb2Fk
ZXIuY3BwCmluZGV4IDk0ZTBhNGE3Y2I0MTBiYWZlM2FlZWQzOGZiNmNlMmZjZTI5YWUyNmEuLmQ4
ZmZjMTAyMzM1ZjFiMjVkNTcyZGI2YjI3NWE3NDQ0NTI3ZWEyZDkgMTAwNjQ0Ci0tLSBhL1NvdXJj
ZS9XZWJDb3JlL2ZpbGVhcGkvRmlsZVJlYWRlckxvYWRlci5jcHAKKysrIGIvU291cmNlL1dlYkNv
cmUvZmlsZWFwaS9GaWxlUmVhZGVyTG9hZGVyLmNwcApAQCAtMTIxLDExICsxMjEsMTEgQEAgdm9p
ZCBGaWxlUmVhZGVyTG9hZGVyOjp0ZXJtaW5hdGUoKQogCiB2b2lkIEZpbGVSZWFkZXJMb2FkZXI6
OmNsZWFudXAoKQogewotICAgIG1fbG9hZGVyID0gMDsKKyAgICBtX2xvYWRlciA9IG51bGxwdHI7
CiAKICAgICAvLyBJZiB3ZSBnZXQgYW55IGVycm9yLCB3ZSBkbyBub3QgbmVlZCB0byBrZWVwIGEg
YnVmZmVyIGFyb3VuZC4KICAgICBpZiAobV9lcnJvckNvZGUpIHsKLSAgICAgICAgbV9yYXdEYXRh
ID0gMDsKKyAgICAgICAgbV9yYXdEYXRhID0gbnVsbHB0cjsKICAgICAgICAgbV9zdHJpbmdSZXN1
bHQgPSAiIjsKICAgICB9CiB9CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9oaXN0b3J5L0hp
c3RvcnlJdGVtLmNwcCBiL1NvdXJjZS9XZWJDb3JlL2hpc3RvcnkvSGlzdG9yeUl0ZW0uY3BwCmlu
ZGV4IDIyOWJhYjhlN2EyM2FjMDVjMGFkMDVlN2VkNDMxNTdkY2Q3ZThiMDMuLjgyOTU3M2Y3ZDc5
YjZhOTI3NTJiNmEwN2JiOGI1NzkwOTYzMmRiZDEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3Jl
L2hpc3RvcnkvSGlzdG9yeUl0ZW0uY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2hpc3RvcnkvSGlz
dG9yeUl0ZW0uY3BwCkBAIC0xOTYsMTAgKzE5NiwxMCBAQCB2b2lkIEhpc3RvcnlJdGVtOjpyZXNl
dCgpCiAKICAgICBtX2l0ZW1TZXF1ZW5jZU51bWJlciA9IGdlbmVyYXRlU2VxdWVuY2VOdW1iZXIo
KTsKIAotICAgIG1fc3RhdGVPYmplY3QgPSAwOworICAgIG1fc3RhdGVPYmplY3QgPSBudWxscHRy
OwogICAgIG1fZG9jdW1lbnRTZXF1ZW5jZU51bWJlciA9IGdlbmVyYXRlU2VxdWVuY2VOdW1iZXIo
KTsKIAotICAgIG1fZm9ybURhdGEgPSAwOworICAgIG1fZm9ybURhdGEgPSBudWxscHRyOwogICAg
IG1fZm9ybUNvbnRlbnRUeXBlID0gU3RyaW5nKCk7CiAKICAgICBjbGVhckNoaWxkcmVuKCk7CkBA
IC01MjQsNyArNTI0LDcgQEAgdm9pZCBIaXN0b3J5SXRlbTo6c2V0Rm9ybUluZm9Gcm9tUmVxdWVz
dChjb25zdCBSZXNvdXJjZVJlcXVlc3QmIHJlcXVlc3QpCiAgICAgICAgIG1fZm9ybURhdGEgPSBy
ZXF1ZXN0Lmh0dHBCb2R5KCk7CiAgICAgICAgIG1fZm9ybUNvbnRlbnRUeXBlID0gcmVxdWVzdC5o
dHRwQ29udGVudFR5cGUoKTsKICAgICB9IGVsc2UgewotICAgICAgICBtX2Zvcm1EYXRhID0gMDsK
KyAgICAgICAgbV9mb3JtRGF0YSA9IG51bGxwdHI7CiAgICAgICAgIG1fZm9ybUNvbnRlbnRUeXBl
ID0gU3RyaW5nKCk7CiAgICAgfQogfQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvaHRtbC9C
YXNlQ2hvb3Nlck9ubHlEYXRlQW5kVGltZUlucHV0VHlwZS5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9o
dG1sL0Jhc2VDaG9vc2VyT25seURhdGVBbmRUaW1lSW5wdXRUeXBlLmNwcAppbmRleCBlOWE2Y2Mw
MzkzYzUwNTU2OGQ1MTM0M2M2NTdhNmJkYmFkMWE5NTIzLi5kYmVhMGU5OWJkOTM0YzdkYmRlYTUy
ZDI1ZDAxYzJmODE3NWRjMWQwIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9odG1sL0Jhc2VD
aG9vc2VyT25seURhdGVBbmRUaW1lSW5wdXRUeXBlLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9o
dG1sL0Jhc2VDaG9vc2VyT25seURhdGVBbmRUaW1lSW5wdXRUeXBlLmNwcApAQCAtOTgsNyArOTgs
NyBAQCB2b2lkIEJhc2VDaG9vc2VyT25seURhdGVBbmRUaW1lSW5wdXRUeXBlOjpkaWRDaG9vc2VW
YWx1ZShjb25zdCBTdHJpbmcmIHZhbHVlKQogCiB2b2lkIEJhc2VDaG9vc2VyT25seURhdGVBbmRU
aW1lSW5wdXRUeXBlOjpkaWRFbmRDaG9vc2VyKCkKIHsKLSAgICBtX2RhdGVUaW1lQ2hvb3Nlci5j
bGVhcigpOworICAgIG1fZGF0ZVRpbWVDaG9vc2VyID0gbnVsbHB0cjsKIH0KIAogdm9pZCBCYXNl
Q2hvb3Nlck9ubHlEYXRlQW5kVGltZUlucHV0VHlwZTo6Y2xvc2VEYXRlVGltZUNob29zZXIoKQpk
aWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvaHRtbC9GVFBEaXJlY3RvcnlEb2N1bWVudC5jcHAg
Yi9Tb3VyY2UvV2ViQ29yZS9odG1sL0ZUUERpcmVjdG9yeURvY3VtZW50LmNwcAppbmRleCBlNzU1
M2Q3NDMwM2RkOTRkYjI2MTBkY2RkMmExODBmNGY4ZWIyMDllLi4wMGRlOWZmNTcxYThlMzhlMmMy
ZDhjYzVlOWMxYmM3YzIzOTdlZTY5IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9odG1sL0ZU
UERpcmVjdG9yeURvY3VtZW50LmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9odG1sL0ZUUERpcmVj
dG9yeURvY3VtZW50LmNwcApAQCAtNDExLDcgKzQxMSw3IEBAIHZvaWQgRlRQRGlyZWN0b3J5RG9j
dW1lbnRQYXJzZXI6OmZpbmlzaCgpCiAgICAgICAgIG1fY2FycnlPdmVyID0gU3RyaW5nKCk7CiAg
ICAgfQogCi0gICAgbV90YWJsZUVsZW1lbnQgPSAwOworICAgIG1fdGFibGVFbGVtZW50ID0gbnVs
bHB0cjsKICAgICBmYXN0RnJlZShtX2J1ZmZlcik7CiAKICAgICBIVE1MRG9jdW1lbnRQYXJzZXI6
OmZpbmlzaCgpOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvaHRtbC9GaWxlSW5wdXRUeXBl
LmNwcCBiL1NvdXJjZS9XZWJDb3JlL2h0bWwvRmlsZUlucHV0VHlwZS5jcHAKaW5kZXggYTNkM2I2
YjcxMWZmZTFlOGFhMWFmZGZmYzE4NmViYzBhZjUyYzE0Ny4uNDg5ZDc5OTM4ZmNmZDIyNmZjOTk0
YzI2MGU2ZTU1MzUzYzU0YWYyOSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvaHRtbC9GaWxl
SW5wdXRUeXBlLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9odG1sL0ZpbGVJbnB1dFR5cGUuY3Bw
CkBAIC0yNTAsNyArMjUwLDcgQEAgdm9pZCBGaWxlSW5wdXRUeXBlOjpzZXRWYWx1ZShjb25zdCBT
dHJpbmcmLCBib29sLCBUZXh0RmllbGRFdmVudEJlaGF2aW9yKQogewogICAgIC8vIEZJWE1FOiBT
aG91bGQgd2UgY2xlYXIgdGhlIGZpbGUgbGlzdCwgb3IgcmVwbGFjZSBpdCB3aXRoIGEgbmV3IGVt
cHR5IG9uZSBoZXJlPyBUaGlzIGlzIG9ic2VydmFibGUgZnJvbSBKYXZhU2NyaXB0IHRocm91Z2gg
Y3VzdG9tIHByb3BlcnRpZXMuCiAgICAgbV9maWxlTGlzdC0+Y2xlYXIoKTsKLSAgICBtX2ljb24u
Y2xlYXIoKTsKKyAgICBtX2ljb24gPSBudWxscHRyOwogICAgIGVsZW1lbnQoKS5zZXROZWVkc1N0
eWxlUmVjYWxjKCk7CiB9CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTENh
bnZhc0VsZW1lbnQuY3BwIGIvU291cmNlL1dlYkNvcmUvaHRtbC9IVE1MQ2FudmFzRWxlbWVudC5j
cHAKaW5kZXggODZkNDVhNDhhMGM3NjJkYWI3MjZmZDk5NmFmNzI0NmM4MTg3ODY2My4uY2U1ZDdi
MmE1ZjI3ZjRjNzZmNTEwZDZlZjU5NWUzMGFhMjU0YTMyYSAxMDA2NDQKLS0tIGEvU291cmNlL1dl
YkNvcmUvaHRtbC9IVE1MQ2FudmFzRWxlbWVudC5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvaHRt
bC9IVE1MQ2FudmFzRWxlbWVudC5jcHAKQEAgLTQyMyw3ICs0MjMsNyBAQCB2b2lkIEhUTUxDYW52
YXNFbGVtZW50OjptYWtlUHJlc2VudGF0aW9uQ29weSgpCiAKIHZvaWQgSFRNTENhbnZhc0VsZW1l
bnQ6OmNsZWFyUHJlc2VudGF0aW9uQ29weSgpCiB7Ci0gICAgbV9wcmVzZW50ZWRJbWFnZS5jbGVh
cigpOworICAgIG1fcHJlc2VudGVkSW1hZ2UgPSBudWxscHRyOwogfQogCiB2b2lkIEhUTUxDYW52
YXNFbGVtZW50OjpzZXRTdXJmYWNlU2l6ZShjb25zdCBJbnRTaXplJiBzaXplKQpAQCAtNjQ0LDcg
KzY0NCw3IEBAIHZvaWQgSFRNTENhbnZhc0VsZW1lbnQ6OmNsZWFySW1hZ2VCdWZmZXIoKSBjb25z
dAogCiB2b2lkIEhUTUxDYW52YXNFbGVtZW50OjpjbGVhckNvcGllZEltYWdlKCkKIHsKLSAgICBt
X2NvcGllZEltYWdlLmNsZWFyKCk7CisgICAgbV9jb3BpZWRJbWFnZSA9IG51bGxwdHI7CiAgICAg
bV9kaWRDbGVhckltYWdlQnVmZmVyID0gZmFsc2U7CiB9CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9X
ZWJDb3JlL2h0bWwvSFRNTExpbmtFbGVtZW50LmNwcCBiL1NvdXJjZS9XZWJDb3JlL2h0bWwvSFRN
TExpbmtFbGVtZW50LmNwcAppbmRleCBjMjNlZGZmM2EyYWFlY2YxYjBkYzBhNjVlOTg0OWQ1OTky
ZDZhYjI3Li5lNGUxMjgxMWM4NDUxMzIwMzhkODdjZjNiYzZjODQ0NjMzZjAwZWUxIDEwMDY0NAot
LS0gYS9Tb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxMaW5rRWxlbWVudC5jcHAKKysrIGIvU291cmNl
L1dlYkNvcmUvaHRtbC9IVE1MTGlua0VsZW1lbnQuY3BwCkBAIC0yNjQsNyArMjY0LDcgQEAgdm9p
ZCBIVE1MTGlua0VsZW1lbnQ6OmNsZWFyU2hlZXQoKQogICAgIEFTU0VSVChtX3NoZWV0KTsKICAg
ICBBU1NFUlQobV9zaGVldC0+b3duZXJOb2RlKCkgPT0gdGhpcyk7CiAgICAgbV9zaGVldC0+Y2xl
YXJPd25lck5vZGUoKTsKLSAgICBtX3NoZWV0ID0gMDsKKyAgICBtX3NoZWV0ID0gbnVsbHB0cjsK
IH0KIAogTm9kZTo6SW5zZXJ0aW9uTm90aWZpY2F0aW9uUmVxdWVzdCBIVE1MTGlua0VsZW1lbnQ6
Omluc2VydGVkSW50byhDb250YWluZXJOb2RlJiBpbnNlcnRpb25Qb2ludCkKZGlmZiAtLWdpdCBh
L1NvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTE1lZGlhRWxlbWVudC5jcHAgYi9Tb3VyY2UvV2ViQ29y
ZS9odG1sL0hUTUxNZWRpYUVsZW1lbnQuY3BwCmluZGV4IDRmZWFlYjk3Yzk5YzE4NTE1NGQ3ZjM5
OTM3ZjRiZTVjNmM0MzgzZTEuLmRkODg5MmYzY2I0Y2Q3OGRkNGZkZjc4MGZlMmUwNTFkYTJkYzQ5
NjYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTE1lZGlhRWxlbWVudC5jcHAK
KysrIGIvU291cmNlL1dlYkNvcmUvaHRtbC9IVE1MTWVkaWFFbGVtZW50LmNwcApAQCAtNDU3LDcg
KzQ1Nyw3IEBAIEhUTUxNZWRpYUVsZW1lbnQ6On5IVE1MTWVkaWFFbGVtZW50KCkKIAogICAgIGlm
IChtX21lZGlhQ29udHJvbGxlcikgewogICAgICAgICBtX21lZGlhQ29udHJvbGxlci0+cmVtb3Zl
TWVkaWFFbGVtZW50KHRoaXMpOwotICAgICAgICBtX21lZGlhQ29udHJvbGxlciA9IDA7CisgICAg
ICAgIG1fbWVkaWFDb250cm9sbGVyID0gbnVsbHB0cjsKICAgICB9CiAKICNpZiBFTkFCTEUoTUVE
SUFfU09VUkNFKQpAQCAtOTQyLDcgKzk0Miw3IEBAIHZvaWQgSFRNTE1lZGlhRWxlbWVudDo6cHJl
cGFyZUZvckxvYWQoKQogCiAgICAgLy8gMSAtIEFib3J0IGFueSBhbHJlYWR5LXJ1bm5pbmcgaW5z
dGFuY2Ugb2YgdGhlIHJlc291cmNlIHNlbGVjdGlvbiBhbGdvcml0aG0gZm9yIHRoaXMgZWxlbWVu
dC4KICAgICBtX2xvYWRTdGF0ZSA9IFdhaXRpbmdGb3JTb3VyY2U7Ci0gICAgbV9jdXJyZW50U291
cmNlTm9kZSA9IDA7CisgICAgbV9jdXJyZW50U291cmNlTm9kZSA9IG51bGxwdHI7CiAKICAgICAv
LyAyIC0gSWYgdGhlcmUgYXJlIGFueSB0YXNrcyBmcm9tIHRoZSBtZWRpYSBlbGVtZW50J3MgbWVk
aWEgZWxlbWVudCBldmVudCB0YXNrIHNvdXJjZSBpbiAKICAgICAvLyBvbmUgb2YgdGhlIHRhc2sg
cXVldWVzLCB0aGVuIHJlbW92ZSB0aG9zZSB0YXNrcy4KQEAgLTEwMDYsNyArMTAwNiw3IEBAIHZv
aWQgSFRNTE1lZGlhRWxlbWVudDo6cHJlcGFyZUZvckxvYWQoKQogICAgIHNldFBsYXliYWNrUmF0
ZShkZWZhdWx0UGxheWJhY2tSYXRlKCkpOwogCiAgICAgLy8gNiAtIFNldCB0aGUgZXJyb3IgYXR0
cmlidXRlIHRvIG51bGwgYW5kIHRoZSBhdXRvcGxheWluZyBmbGFnIHRvIHRydWUuCi0gICAgbV9l
cnJvciA9IDA7CisgICAgbV9lcnJvciA9IG51bGxwdHI7CiAgICAgbV9hdXRvcGxheWluZyA9IHRy
dWU7CiAKICAgICAvLyA3IC0gSW52b2tlIHRoZSBtZWRpYSBlbGVtZW50J3MgcmVzb3VyY2Ugc2Vs
ZWN0aW9uIGFsZ29yaXRobS4KQEAgLTExMDEsNyArMTEwMSw3IEBAIHZvaWQgSFRNTE1lZGlhRWxl
bWVudDo6c2VsZWN0TWVkaWFSZXNvdXJjZSgpCiAgICAgICAgIGlmIChhdXRvIGZpcnN0U291cmNl
ID0gY2hpbGRyZW5PZlR5cGU8SFRNTFNvdXJjZUVsZW1lbnQ+KCp0aGlzKS5maXJzdCgpKSB7CiAg
ICAgICAgICAgICBtb2RlID0gY2hpbGRyZW47CiAgICAgICAgICAgICBtX25leHRDaGlsZE5vZGVU
b0NvbnNpZGVyID0gZmlyc3RTb3VyY2U7Ci0gICAgICAgICAgICBtX2N1cnJlbnRTb3VyY2VOb2Rl
ID0gMDsKKyAgICAgICAgICAgIG1fY3VycmVudFNvdXJjZU5vZGUgPSBudWxscHRyOwogICAgICAg
ICB9IGVsc2UgewogICAgICAgICAgICAgLy8gT3RoZXJ3aXNlIHRoZSBtZWRpYSBlbGVtZW50IGhh
cyBuZWl0aGVyIGEgc3JjIGF0dHJpYnV0ZSBub3IgYSBzb3VyY2UgZWxlbWVudCAKICAgICAgICAg
ICAgIC8vIGNoaWxkOiBzZXQgdGhlIG5ldHdvcmtTdGF0ZSB0byBORVRXT1JLX0VNUFRZLCBhbmQg
YWJvcnQgdGhlc2Ugc3RlcHM7IHRoZSAKQEAgLTEyNzcsNyArMTI3Nyw3IEBAIHZvaWQgSFRNTE1l
ZGlhRWxlbWVudDo6bG9hZFJlc291cmNlKGNvbnN0IFVSTCYgaW5pdGlhbFVSTCwgQ29udGVudFR5
cGUmIGNvbnRlbnRUCiAgICAgICAgIGVsc2UgewogICAgICAgICAgICAgLy8gRm9yZ2V0IG91ciBy
ZWZlcmVuY2UgdG8gdGhlIE1lZGlhU291cmNlLCBzbyB3ZSBsZWF2ZSBpdCBhbG9uZQogICAgICAg
ICAgICAgLy8gd2hpbGUgcHJvY2Vzc2luZyByZW1haW5kZXIgb2YgbG9hZCBmYWlsdXJlLgotICAg
ICAgICAgICAgbV9tZWRpYVNvdXJjZSA9IDA7CisgICAgICAgICAgICBtX21lZGlhU291cmNlID0g
bnVsbHB0cjsKICAgICAgICAgICAgIG1lZGlhTG9hZGluZ0ZhaWxlZChNZWRpYVBsYXllcjo6Rm9y
bWF0RXJyb3IpOwogICAgICAgICB9CiAgICAgfSBlbHNlCkBAIC0xODAwLDcgKzE4MDAsNyBAQCB2
b2lkIEhUTUxNZWRpYUVsZW1lbnQ6Om5vbmVTdXBwb3J0ZWQoKQogCiAgICAgc3RvcFBlcmlvZGlj
VGltZXJzKCk7CiAgICAgbV9sb2FkU3RhdGUgPSBXYWl0aW5nRm9yU291cmNlOwotICAgIG1fY3Vy
cmVudFNvdXJjZU5vZGUgPSAwOworICAgIG1fY3VycmVudFNvdXJjZU5vZGUgPSBudWxscHRyOwog
CiAgICAgLy8gNC44LjEwLjUgCiAgICAgLy8gNiAtIFJlYWNoaW5nIHRoaXMgc3RlcCBpbmRpY2F0
ZXMgdGhhdCB0aGUgbWVkaWEgcmVzb3VyY2UgZmFpbGVkIHRvIGxvYWQgb3IgdGhhdCB0aGUgZ2l2
ZW4gCkBAIC0yOTM5LDcgKzI5MzksNyBAQCB2b2lkIEhUTUxNZWRpYUVsZW1lbnQ6OmNsb3NlTWVk
aWFTb3VyY2UoKQogICAgICAgICByZXR1cm47CiAKICAgICBtX21lZGlhU291cmNlLT5jbG9zZSgp
OwotICAgIG1fbWVkaWFTb3VyY2UgPSAwOworICAgIG1fbWVkaWFTb3VyY2UgPSBudWxscHRyOwog
fQogI2VuZGlmCiAKQEAgLTQxMTIsOCArNDExMiw4IEBAIGNoZWNrX2FnYWluOgogICAgICAgICBt
X2N1cnJlbnRTb3VyY2VOb2RlID0gc291cmNlOwogICAgICAgICBtX25leHRDaGlsZE5vZGVUb0Nv
bnNpZGVyID0gc291cmNlLT5uZXh0U2libGluZygpOwogICAgIH0gZWxzZSB7Ci0gICAgICAgIG1f
Y3VycmVudFNvdXJjZU5vZGUgPSAwOwotICAgICAgICBtX25leHRDaGlsZE5vZGVUb0NvbnNpZGVy
ID0gMDsKKyAgICAgICAgbV9jdXJyZW50U291cmNlTm9kZSA9IG51bGxwdHI7CisgICAgICAgIG1f
bmV4dENoaWxkTm9kZVRvQ29uc2lkZXIgPSBudWxscHRyOwogICAgIH0KIAogI2lmICFMT0dfRElT
QUJMRUQKQEAgLTQxOTMsNyArNDE5Myw3IEBAIHZvaWQgSFRNTE1lZGlhRWxlbWVudDo6c291cmNl
V2FzUmVtb3ZlZChIVE1MU291cmNlRWxlbWVudCogc291cmNlKQogICAgICAgICAvLyBDbGVhciB0
aGUgY3VycmVudCBzb3VyY2Ugbm9kZSBwb2ludGVyLCBidXQgZG9uJ3QgY2hhbmdlIHRoZSBtb3Zp
ZSBhcyB0aGUgc3BlYyBzYXlzOgogICAgICAgICAvLyA0LjguOCAtIER5bmFtaWNhbGx5IG1vZGlm
eWluZyBhIHNvdXJjZSBlbGVtZW50IGFuZCBpdHMgYXR0cmlidXRlIHdoZW4gdGhlIGVsZW1lbnQg
aXMgYWxyZWFkeSAKICAgICAgICAgLy8gaW5zZXJ0ZWQgaW4gYSB2aWRlbyBvciBhdWRpbyBlbGVt
ZW50IHdpbGwgaGF2ZSBubyBlZmZlY3QuCi0gICAgICAgIG1fY3VycmVudFNvdXJjZU5vZGUgPSAw
OworICAgICAgICBtX2N1cnJlbnRTb3VyY2VOb2RlID0gbnVsbHB0cjsKICAgICAgICAgTE9HKE1l
ZGlhLCAiSFRNTE1lZGlhRWxlbWVudDo6c291cmNlUmVtb3ZlZCglcCkgLSBtX2N1cnJlbnRTb3Vy
Y2VOb2RlIHNldCB0byAwIiwgdGhpcyk7CiAgICAgfQogfQpAQCAtNDc5NSw3ICs0Nzk1LDcgQEAg
dm9pZCBIVE1MTWVkaWFFbGVtZW50Ojp1c2VyQ2FuY2VsbGVkTG9hZCgpCiAgICAgc2V0U2hvdWxk
RGVsYXlMb2FkRXZlbnQoZmFsc2UpOwogCiAgICAgLy8gNiAtIEFib3J0IHRoZSBvdmVyYWxsIHJl
c291cmNlIHNlbGVjdGlvbiBhbGdvcml0aG0uCi0gICAgbV9jdXJyZW50U291cmNlTm9kZSA9IDA7
CisgICAgbV9jdXJyZW50U291cmNlTm9kZSA9IG51bGxwdHI7CiAKICAgICAvLyBSZXNldCBtX3Jl
YWR5U3RhdGUgc2luY2UgbV9wbGF5ZXIgaXMgZ29uZS4KICAgICBtX3JlYWR5U3RhdGUgPSBIQVZF
X05PVEhJTkc7CkBAIC00ODEyLDggKzQ4MTIsOCBAQCB2b2lkIEhUTUxNZWRpYUVsZW1lbnQ6OmNs
ZWFyTWVkaWFQbGF5ZXIoaW50IGZsYWdzKQogCiAjaWYgVVNFKFBMQVRGT1JNX1RFWFRfVFJBQ0tf
TUVOVSkKICAgICBpZiAocGxhdGZvcm1UZXh0VHJhY2tNZW51KCkpIHsKLSAgICAgICAgbV9wbGF0
Zm9ybU1lbnUtPnNldENsaWVudCgwKTsKLSAgICAgICAgbV9wbGF0Zm9ybU1lbnUgPSAwOworICAg
ICAgICBtX3BsYXRmb3JtTWVudS0+c2V0Q2xpZW50KG51bGxwdHIpOworICAgICAgICBtX3BsYXRm
b3JtTWVudSA9IG51bGxwdHI7CiAgICAgfQogI2VuZGlmCiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9X
ZWJDb3JlL2h0bWwvSFRNTFBsdWdJbkVsZW1lbnQuY3BwIGIvU291cmNlL1dlYkNvcmUvaHRtbC9I
VE1MUGx1Z0luRWxlbWVudC5jcHAKaW5kZXggMjIwNDZlYTg0MzU1NmM0ODBmMTNiNzk1NjMyZTc5
M2NmYTc0M2E5OS4uZDc4NmRmNGZlODcxMDNmNTIwMTNhYjdkNzc5OTcxMDQ1ZGEyYzk2MSAxMDA2
NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvaHRtbC9IVE1MUGx1Z0luRWxlbWVudC5jcHAKKysrIGIv
U291cmNlL1dlYkNvcmUvaHRtbC9IVE1MUGx1Z0luRWxlbWVudC5jcHAKQEAgLTEwNCw3ICsxMDQs
NyBAQCBib29sIEhUTUxQbHVnSW5FbGVtZW50Ojp3aWxsUmVzcG9uZFRvTW91c2VDbGlja0V2ZW50
cygpCiAKIHZvaWQgSFRNTFBsdWdJbkVsZW1lbnQ6OndpbGxEZXRhY2hSZW5kZXJlcnMoKQogewot
ICAgIG1faW5zdGFuY2UuY2xlYXIoKTsKKyAgICBtX2luc3RhbmNlID0gbnVsbHB0cjsKIAogICAg
IGlmIChtX2lzQ2FwdHVyaW5nTW91c2VFdmVudHMpIHsKICAgICAgICAgaWYgKEZyYW1lKiBmcmFt
ZSA9IGRvY3VtZW50KCkuZnJhbWUoKSkKQEAgLTEyMiw3ICsxMjIsNyBAQCB2b2lkIEhUTUxQbHVn
SW5FbGVtZW50Ojp3aWxsRGV0YWNoUmVuZGVyZXJzKCkKIAogdm9pZCBIVE1MUGx1Z0luRWxlbWVu
dDo6cmVzZXRJbnN0YW5jZSgpCiB7Ci0gICAgbV9pbnN0YW5jZS5jbGVhcigpOworICAgIG1faW5z
dGFuY2UgPSBudWxscHRyOwogfQogCiBQYXNzUmVmUHRyPEpTQzo6QmluZGluZ3M6Okluc3RhbmNl
PiBIVE1MUGx1Z0luRWxlbWVudDo6Z2V0SW5zdGFuY2UoKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dl
YkNvcmUvaHRtbC9IVE1MVGFibGVFbGVtZW50LmNwcCBiL1NvdXJjZS9XZWJDb3JlL2h0bWwvSFRN
TFRhYmxlRWxlbWVudC5jcHAKaW5kZXggNGZiNjU2OWFlMjFlOTU3MzYzNzAwMjM2MGNhMzNmOWI1
MTcyYzU1ZC4uNzQ1NzM2MWI2ZTEyNWVhZWY5NjVhZjU0NTMzYmYzM2Y2ODQ2ZWFhNyAxMDA2NDQK
LS0tIGEvU291cmNlL1dlYkNvcmUvaHRtbC9IVE1MVGFibGVFbGVtZW50LmNwcAorKysgYi9Tb3Vy
Y2UvV2ViQ29yZS9odG1sL0hUTUxUYWJsZUVsZW1lbnQuY3BwCkBAIC00MDIsNyArNDAyLDcgQEAg
dm9pZCBIVE1MVGFibGVFbGVtZW50OjpwYXJzZUF0dHJpYnV0ZShjb25zdCBRdWFsaWZpZWROYW1l
JiBuYW1lLCBjb25zdCBBdG9taWNTdHIKICAgICAgICAgSFRNTEVsZW1lbnQ6OnBhcnNlQXR0cmli
dXRlKG5hbWUsIHZhbHVlKTsKIAogICAgIGlmIChib3JkZXJzQmVmb3JlICE9IGNlbGxCb3JkZXJz
KCkgfHwgb2xkUGFkZGluZyAhPSBtX3BhZGRpbmcpIHsKLSAgICAgICAgbV9zaGFyZWRDZWxsU3R5
bGUgPSAwOworICAgICAgICBtX3NoYXJlZENlbGxTdHlsZSA9IG51bGxwdHI7CiAgICAgICAgIGJv
b2wgY2VsbENoYW5nZWQgPSBmYWxzZTsKICAgICAgICAgZm9yIChOb2RlKiBjaGlsZCA9IGZpcnN0
Q2hpbGQoKTsgY2hpbGQ7IGNoaWxkID0gY2hpbGQtPm5leHRTaWJsaW5nKCkpCiAgICAgICAgICAg
ICBjZWxsQ2hhbmdlZCB8PSBzZXRUYWJsZUNlbGxzQ2hhbmdlZChjaGlsZCk7CmRpZmYgLS1naXQg
YS9Tb3VyY2UvV2ViQ29yZS9odG1sL1BsdWdpbkRvY3VtZW50LmNwcCBiL1NvdXJjZS9XZWJDb3Jl
L2h0bWwvUGx1Z2luRG9jdW1lbnQuY3BwCmluZGV4IDc3OTZjMjdiM2RjMTg3MmNiNjExYjc4NjUx
ZDQyMjVlYTIzNjM0OTguLmU5Njc3MDkwZjRjMzg1M2E3Y2ZmMjA4YjIzYzMxZGM5ZDI1NDQ4MjEg
MTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2h0bWwvUGx1Z2luRG9jdW1lbnQuY3BwCisrKyBi
L1NvdXJjZS9XZWJDb3JlL2h0bWwvUGx1Z2luRG9jdW1lbnQuY3BwCkBAIC0xNjgsOCArMTY4LDgg
QEAgdm9pZCBQbHVnaW5Eb2N1bWVudDo6c2V0UGx1Z2luRWxlbWVudChQYXNzUmVmUHRyPEhUTUxQ
bHVnSW5FbGVtZW50PiBlbGVtZW50KQogdm9pZCBQbHVnaW5Eb2N1bWVudDo6ZGV0YWNoRnJvbVBs
dWdpbkVsZW1lbnQoKQogewogICAgIC8vIFJlbGVhc2UgdGhlIHBsdWdpbiBFbGVtZW50IHNvIHRo
YXQgd2UgZG9uJ3QgaGF2ZSBhIGNpcmN1bGFyIHJlZmVyZW5jZS4KLSAgICBtX3BsdWdpbkVsZW1l
bnQgPSAwOwotICAgIGZyYW1lKCktPmxvYWRlcigpLmNsaWVudCgpLnJlZGlyZWN0RGF0YVRvUGx1
Z2luKDApOworICAgIG1fcGx1Z2luRWxlbWVudCA9IG51bGxwdHI7CisgICAgZnJhbWUoKS0+bG9h
ZGVyKCkuY2xpZW50KCkucmVkaXJlY3REYXRhVG9QbHVnaW4obnVsbHB0cik7CiB9CiAKIHZvaWQg
UGx1Z2luRG9jdW1lbnQ6OmNhbmNlbE1hbnVhbFBsdWdpbkxvYWQoKQpkaWZmIC0tZ2l0IGEvU291
cmNlL1dlYkNvcmUvaHRtbC9UZXh0RmllbGRJbnB1dFR5cGUuY3BwIGIvU291cmNlL1dlYkNvcmUv
aHRtbC9UZXh0RmllbGRJbnB1dFR5cGUuY3BwCmluZGV4IDRiMjhhYThkYTJkMWE1NWRkOWVhNDIw
ZTQxNDJlMTRlNzMxYjc5YzUuLmVhZTNkYjI5ZWVlM2MyZGU5NWZlNzE4MGM1NDZmZjhlN2UyYTc2
N2UgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2h0bWwvVGV4dEZpZWxkSW5wdXRUeXBlLmNw
cAorKysgYi9Tb3VyY2UvV2ViQ29yZS9odG1sL1RleHRGaWVsZElucHV0VHlwZS5jcHAKQEAgLTQ2
Miw3ICs0NjIsNyBAQCB2b2lkIFRleHRGaWVsZElucHV0VHlwZTo6dXBkYXRlUGxhY2Vob2xkZXJU
ZXh0KCkKICAgICBpZiAocGxhY2Vob2xkZXJUZXh0LmlzRW1wdHkoKSkgewogICAgICAgICBpZiAo
bV9wbGFjZWhvbGRlcikgewogICAgICAgICAgICAgbV9wbGFjZWhvbGRlci0+cGFyZW50Tm9kZSgp
LT5yZW1vdmVDaGlsZChtX3BsYWNlaG9sZGVyLmdldCgpLCBBU1NFUlRfTk9fRVhDRVBUSU9OKTsK
LSAgICAgICAgICAgIG1fcGxhY2Vob2xkZXIuY2xlYXIoKTsKKyAgICAgICAgICAgIG1fcGxhY2Vo
b2xkZXIgPSBudWxscHRyOwogICAgICAgICB9CiAgICAgICAgIHJldHVybjsKICAgICB9CmRpZmYg
LS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9odG1sL1ZhbGlkYXRpb25NZXNzYWdlLmNwcCBiL1NvdXJj
ZS9XZWJDb3JlL2h0bWwvVmFsaWRhdGlvbk1lc3NhZ2UuY3BwCmluZGV4IDUzYjY3NWJjMmI0OTQ2
NzRlN2JmYzViYTM5YjY5YjY2Zjg5NWYwYjguLmY2MWUxYjVlZmUyNzA5MzFkYWIwZWMyZWVkZjBm
MzRiZDc3ODJiOTYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2h0bWwvVmFsaWRhdGlvbk1l
c3NhZ2UuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2h0bWwvVmFsaWRhdGlvbk1lc3NhZ2UuY3Bw
CkBAIC0yMzUsMTAgKzIzNSwxMCBAQCB2b2lkIFZhbGlkYXRpb25NZXNzYWdlOjpkZWxldGVCdWJi
bGVUcmVlKCkKIHsKICAgICBBU1NFUlQoIXZhbGlkYXRpb25NZXNzYWdlQ2xpZW50KCkpOwogICAg
IGlmIChtX2J1YmJsZSkgewotICAgICAgICBtX21lc3NhZ2VIZWFkaW5nID0gMDsKLSAgICAgICAg
bV9tZXNzYWdlQm9keSA9IDA7CisgICAgICAgIG1fbWVzc2FnZUhlYWRpbmcgPSBudWxscHRyOwor
ICAgICAgICBtX21lc3NhZ2VCb2R5ID0gbnVsbHB0cjsKICAgICAgICAgbV9lbGVtZW50LT51c2Vy
QWdlbnRTaGFkb3dSb290KCktPnJlbW92ZUNoaWxkKG1fYnViYmxlLmdldCgpLCBBU1NFUlRfTk9f
RVhDRVBUSU9OKTsKLSAgICAgICAgbV9idWJibGUgPSAwOworICAgICAgICBtX2J1YmJsZSA9IG51
bGxwdHI7CiAgICAgfQogICAgIG1fbWVzc2FnZSA9IFN0cmluZygpOwogfQpkaWZmIC0tZ2l0IGEv
U291cmNlL1dlYkNvcmUvaHRtbC9jYW52YXMvV2ViR0xQcm9ncmFtLmNwcCBiL1NvdXJjZS9XZWJD
b3JlL2h0bWwvY2FudmFzL1dlYkdMUHJvZ3JhbS5jcHAKaW5kZXggOTJjMDUxMTkwMWQzMDZjMzg1
MzlkNTUzMzk4ZjE1MDJiM2YwYWRhYy4uMWI3NTJlNmUwZmRiNGJhNjNjOTNiYzJlNzUzMDYyNTY1
YzJkNGNkNyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvaHRtbC9jYW52YXMvV2ViR0xQcm9n
cmFtLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9odG1sL2NhbnZhcy9XZWJHTFByb2dyYW0uY3Bw
CkBAIC01OCwxMSArNTgsMTEgQEAgdm9pZCBXZWJHTFByb2dyYW06OmRlbGV0ZU9iamVjdEltcGwo
R3JhcGhpY3NDb250ZXh0M0QqIGNvbnRleHQzZCwgUGxhdGZvcm0zRE9iamUKICAgICBjb250ZXh0
M2QtPmRlbGV0ZVByb2dyYW0ob2JqKTsKICAgICBpZiAobV92ZXJ0ZXhTaGFkZXIpIHsKICAgICAg
ICAgbV92ZXJ0ZXhTaGFkZXItPm9uRGV0YWNoZWQoY29udGV4dDNkKTsKLSAgICAgICAgbV92ZXJ0
ZXhTaGFkZXIgPSAwOworICAgICAgICBtX3ZlcnRleFNoYWRlciA9IG51bGxwdHI7CiAgICAgfQog
ICAgIGlmIChtX2ZyYWdtZW50U2hhZGVyKSB7CiAgICAgICAgIG1fZnJhZ21lbnRTaGFkZXItPm9u
RGV0YWNoZWQoY29udGV4dDNkKTsKLSAgICAgICAgbV9mcmFnbWVudFNoYWRlciA9IDA7CisgICAg
ICAgIG1fZnJhZ21lbnRTaGFkZXIgPSBudWxscHRyOwogICAgIH0KIH0KIApAQCAtMTQ4LDEyICsx
NDgsMTIgQEAgYm9vbCBXZWJHTFByb2dyYW06OmRldGFjaFNoYWRlcihXZWJHTFNoYWRlciogc2hh
ZGVyKQogICAgIGNhc2UgR3JhcGhpY3NDb250ZXh0M0Q6OlZFUlRFWF9TSEFERVI6CiAgICAgICAg
IGlmIChtX3ZlcnRleFNoYWRlciAhPSBzaGFkZXIpCiAgICAgICAgICAgICByZXR1cm4gZmFsc2U7
Ci0gICAgICAgIG1fdmVydGV4U2hhZGVyID0gMDsKKyAgICAgICAgbV92ZXJ0ZXhTaGFkZXIgPSBu
dWxscHRyOwogICAgICAgICByZXR1cm4gdHJ1ZTsKICAgICBjYXNlIEdyYXBoaWNzQ29udGV4dDNE
OjpGUkFHTUVOVF9TSEFERVI6CiAgICAgICAgIGlmIChtX2ZyYWdtZW50U2hhZGVyICE9IHNoYWRl
cikKICAgICAgICAgICAgIHJldHVybiBmYWxzZTsKLSAgICAgICAgbV9mcmFnbWVudFNoYWRlciA9
IDA7CisgICAgICAgIG1fZnJhZ21lbnRTaGFkZXIgPSBudWxscHRyOwogICAgICAgICByZXR1cm4g
dHJ1ZTsKICAgICBkZWZhdWx0OgogICAgICAgICByZXR1cm4gZmFsc2U7CmRpZmYgLS1naXQgYS9T
b3VyY2UvV2ViQ29yZS9odG1sL2NhbnZhcy9XZWJHTFJlbmRlcmluZ0NvbnRleHRCYXNlLmNwcCBi
L1NvdXJjZS9XZWJDb3JlL2h0bWwvY2FudmFzL1dlYkdMUmVuZGVyaW5nQ29udGV4dEJhc2UuY3Bw
CmluZGV4IGI2NmI2NjkwNGIxNGZmZGUyZjMzOWFkNmRhMjc2ZjZkNzZjMWI0YTMuLjdhMWNmZjNm
MjgzYTg4ODZjMTcyM2FhMDNmZGY5NzE5MWNlZGZlNTggMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJD
b3JlL2h0bWwvY2FudmFzL1dlYkdMUmVuZGVyaW5nQ29udGV4dEJhc2UuY3BwCisrKyBiL1NvdXJj
ZS9XZWJDb3JlL2h0bWwvY2FudmFzL1dlYkdMUmVuZGVyaW5nQ29udGV4dEJhc2UuY3BwCkBAIC00
OTQsMTAgKzQ5NCwxMCBAQCB2b2lkIFdlYkdMUmVuZGVyaW5nQ29udGV4dEJhc2U6OmluaXRpYWxp
emVOZXdDb250ZXh0KCkKICAgICBtX3VucGFja0ZsaXBZID0gZmFsc2U7CiAgICAgbV91bnBhY2tQ
cmVtdWx0aXBseUFscGhhID0gZmFsc2U7CiAgICAgbV91bnBhY2tDb2xvcnNwYWNlQ29udmVyc2lv
biA9IEdyYXBoaWNzQ29udGV4dDNEOjpCUk9XU0VSX0RFRkFVTFRfV0VCR0w7Ci0gICAgbV9ib3Vu
ZEFycmF5QnVmZmVyID0gMDsKLSAgICBtX2N1cnJlbnRQcm9ncmFtID0gMDsKLSAgICBtX2ZyYW1l
YnVmZmVyQmluZGluZyA9IDA7Ci0gICAgbV9yZW5kZXJidWZmZXJCaW5kaW5nID0gMDsKKyAgICBt
X2JvdW5kQXJyYXlCdWZmZXIgPSBudWxscHRyOworICAgIG1fY3VycmVudFByb2dyYW0gPSBudWxs
cHRyOworICAgIG1fZnJhbWVidWZmZXJCaW5kaW5nID0gbnVsbHB0cjsKKyAgICBtX3JlbmRlcmJ1
ZmZlckJpbmRpbmcgPSBudWxscHRyOwogICAgIG1fZGVwdGhNYXNrID0gdHJ1ZTsKICAgICBtX3N0
ZW5jaWxFbmFibGVkID0gZmFsc2U7CiAgICAgbV9zdGVuY2lsTWFzayA9IDB4RkZGRkZGRkY7CkBA
IC02MjMsNyArNjIzLDcgQEAgdm9pZCBXZWJHTFJlbmRlcmluZ0NvbnRleHRCYXNlOjpkZXN0cm95
R3JhcGhpY3NDb250ZXh0M0QoKQogICAgIGlmIChtX2NvbnRleHQpIHsKICAgICAgICAgbV9jb250
ZXh0LT5zZXRDb250ZXh0TG9zdENhbGxiYWNrKG51bGxwdHIpOwogICAgICAgICBtX2NvbnRleHQt
PnNldEVycm9yTWVzc2FnZUNhbGxiYWNrKG51bGxwdHIpOwotICAgICAgICBtX2NvbnRleHQuY2xl
YXIoKTsKKyAgICAgICAgbV9jb250ZXh0ID0gbnVsbHB0cjsKICAgICB9CiB9CiAKQEAgLTE0Nzks
NyArMTQ3OSw3IEBAIHZvaWQgV2ViR0xSZW5kZXJpbmdDb250ZXh0QmFzZTo6ZGVsZXRlQnVmZmVy
KFdlYkdMQnVmZmVyKiBidWZmZXIpCiAgICAgaWYgKCFkZWxldGVPYmplY3QoYnVmZmVyKSkKICAg
ICAgICAgcmV0dXJuOwogICAgIGlmIChtX2JvdW5kQXJyYXlCdWZmZXIgPT0gYnVmZmVyKQotICAg
ICAgICBtX2JvdW5kQXJyYXlCdWZmZXIgPSAwOworICAgICAgICBtX2JvdW5kQXJyYXlCdWZmZXIg
PSBudWxscHRyOwogCiAgICAgbV9ib3VuZFZlcnRleEFycmF5T2JqZWN0LT51bmJpbmRCdWZmZXIo
YnVmZmVyKTsKIH0KQEAgLTE0ODksNyArMTQ4OSw3IEBAIHZvaWQgV2ViR0xSZW5kZXJpbmdDb250
ZXh0QmFzZTo6ZGVsZXRlRnJhbWVidWZmZXIoV2ViR0xGcmFtZWJ1ZmZlciogZnJhbWVidWZmZXIp
CiAgICAgaWYgKCFkZWxldGVPYmplY3QoZnJhbWVidWZmZXIpKQogICAgICAgICByZXR1cm47CiAg
ICAgaWYgKGZyYW1lYnVmZmVyID09IG1fZnJhbWVidWZmZXJCaW5kaW5nKSB7Ci0gICAgICAgIG1f
ZnJhbWVidWZmZXJCaW5kaW5nID0gMDsKKyAgICAgICAgbV9mcmFtZWJ1ZmZlckJpbmRpbmcgPSBu
dWxscHRyOwogICAgICAgICBtX2NvbnRleHQtPmJpbmRGcmFtZWJ1ZmZlcihHcmFwaGljc0NvbnRl
eHQzRDo6RlJBTUVCVUZGRVIsIDApOwogICAgIH0KIH0KQEAgLTE1MDYsNyArMTUwNiw3IEBAIHZv
aWQgV2ViR0xSZW5kZXJpbmdDb250ZXh0QmFzZTo6ZGVsZXRlUmVuZGVyYnVmZmVyKFdlYkdMUmVu
ZGVyYnVmZmVyKiByZW5kZXJidWZmCiAgICAgaWYgKCFkZWxldGVPYmplY3QocmVuZGVyYnVmZmVy
KSkKICAgICAgICAgcmV0dXJuOwogICAgIGlmIChyZW5kZXJidWZmZXIgPT0gbV9yZW5kZXJidWZm
ZXJCaW5kaW5nKQotICAgICAgICBtX3JlbmRlcmJ1ZmZlckJpbmRpbmcgPSAwOworICAgICAgICBt
X3JlbmRlcmJ1ZmZlckJpbmRpbmcgPSBudWxscHRyOwogICAgIGlmIChtX2ZyYW1lYnVmZmVyQmlu
ZGluZykKICAgICAgICAgbV9mcmFtZWJ1ZmZlckJpbmRpbmctPnJlbW92ZUF0dGFjaG1lbnRGcm9t
Qm91bmRGcmFtZWJ1ZmZlcihyZW5kZXJidWZmZXIpOwogfQpkaWZmIC0tZ2l0IGEvU291cmNlL1dl
YkNvcmUvaHRtbC9jYW52YXMvV2ViR0xWZXJ0ZXhBcnJheU9iamVjdEJhc2UuY3BwIGIvU291cmNl
L1dlYkNvcmUvaHRtbC9jYW52YXMvV2ViR0xWZXJ0ZXhBcnJheU9iamVjdEJhc2UuY3BwCmluZGV4
IGY2ZDhkYTY2ZTgwMTQ3OTc4ZjgxNzU3YzYzYmU0NmVhYzY5NTU4NDkuLmYzOWMwZGRkMjI3Nzlk
MDVmMTYwZDE5Nzk1NjMxOGE2MDBlYjkzY2MgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2h0
bWwvY2FudmFzL1dlYkdMVmVydGV4QXJyYXlPYmplY3RCYXNlLmNwcAorKysgYi9Tb3VyY2UvV2Vi
Q29yZS9odG1sL2NhbnZhcy9XZWJHTFZlcnRleEFycmF5T2JqZWN0QmFzZS5jcHAKQEAgLTc2LDcg
Kzc2LDcgQEAgdm9pZCBXZWJHTFZlcnRleEFycmF5T2JqZWN0QmFzZTo6dW5iaW5kQnVmZmVyKFBh
c3NSZWZQdHI8V2ViR0xCdWZmZXI+IGJ1ZmZlcikKIHsKICAgICBpZiAobV9ib3VuZEVsZW1lbnRB
cnJheUJ1ZmZlciA9PSBidWZmZXIpIHsKICAgICAgICAgbV9ib3VuZEVsZW1lbnRBcnJheUJ1ZmZl
ci0+b25EZXRhY2hlZChjb250ZXh0KCktPmdyYXBoaWNzQ29udGV4dDNEKCkpOwotICAgICAgICBt
X2JvdW5kRWxlbWVudEFycmF5QnVmZmVyID0gMDsKKyAgICAgICAgbV9ib3VuZEVsZW1lbnRBcnJh
eUJ1ZmZlciA9IG51bGxwdHI7CiAgICAgfQogICAgIAogICAgIGZvciAoc2l6ZV90IGkgPSAwOyBp
IDwgbV92ZXJ0ZXhBdHRyaWJTdGF0ZS5zaXplKCk7ICsraSkgewpAQCAtOTUsNyArOTUsNyBAQCB2
b2lkIFdlYkdMVmVydGV4QXJyYXlPYmplY3RCYXNlOjp1bmJpbmRCdWZmZXIoUGFzc1JlZlB0cjxX
ZWJHTEJ1ZmZlcj4gYnVmZmVyKQogICAgICAgICAgICAgICAgIHN0YXRlLm9yaWdpbmFsU3RyaWRl
ID0gMDsKICAgICAgICAgICAgICAgICBzdGF0ZS5vZmZzZXQgPSAwOwogICAgICAgICAgICAgfSBl
bHNlCi0gICAgICAgICAgICAgICAgc3RhdGUuYnVmZmVyQmluZGluZyA9IDA7CisgICAgICAgICAg
ICAgICAgc3RhdGUuYnVmZmVyQmluZGluZyA9IG51bGxwdHI7CiAgICAgICAgIH0KICAgICB9CiB9
CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9odG1sL3RyYWNrL1RleHRUcmFjay5jcHAgYi9T
b3VyY2UvV2ViQ29yZS9odG1sL3RyYWNrL1RleHRUcmFjay5jcHAKaW5kZXggNzRlY2YxNmQ3MDk3
NjZmNGFmMWY0NWRjMjA2YzJkZWM2MzM2YTZmMS4uMmExMzNhNWZjZWFmZTNjN2IzYmMxODZhZDJi
ODU3MGY2MTJlZDMxOSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvaHRtbC90cmFjay9UZXh0
VHJhY2suY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2h0bWwvdHJhY2svVGV4dFRyYWNrLmNwcApA
QCAtMjQ1LDcgKzI0NSw3IEBAIFRleHRUcmFja0N1ZUxpc3QqIFRleHRUcmFjazo6Y3VlcygpCiAg
ICAgLy8gaHR0cDovL3d3dy53aGF0d2cub3JnL3NwZWNzL3dlYi1hcHBzL2N1cnJlbnQtd29yay8j
ZG9tLXRleHR0cmFjay1jdWVzCiAgICAgaWYgKG1fbW9kZSAhPSBkaXNhYmxlZEtleXdvcmQoKSkK
ICAgICAgICAgcmV0dXJuIGVuc3VyZVRleHRUcmFja0N1ZUxpc3QoKTsKLSAgICByZXR1cm4gMDsK
KyAgICByZXR1cm4gbnVsbHB0cjsKIH0KIAogdm9pZCBUZXh0VHJhY2s6OnJlbW92ZUFsbEN1ZXMo
KQpAQCAtMjU3LDkgKzI1Nyw5IEBAIHZvaWQgVGV4dFRyYWNrOjpyZW1vdmVBbGxDdWVzKCkKICAg
ICAgICAgbV9jbGllbnQtPnRleHRUcmFja1JlbW92ZUN1ZXModGhpcywgbV9jdWVzLmdldCgpKTsK
ICAgICAKICAgICBmb3IgKHNpemVfdCBpID0gMDsgaSA8IG1fY3Vlcy0+bGVuZ3RoKCk7ICsraSkK
LSAgICAgICAgbV9jdWVzLT5pdGVtKGkpLT5zZXRUcmFjaygwKTsKKyAgICAgICAgbV9jdWVzLT5p
dGVtKGkpLT5zZXRUcmFjayhudWxscHRyKTsKICAgICAKLSAgICBtX2N1ZXMgPSAwOworICAgIG1f
Y3VlcyA9IG51bGxwdHI7CiB9CiAKIFRleHRUcmFja0N1ZUxpc3QqIFRleHRUcmFjazo6YWN0aXZl
Q3VlcygpIGNvbnN0CkBAIC0yNzIsNyArMjcyLDcgQEAgVGV4dFRyYWNrQ3VlTGlzdCogVGV4dFRy
YWNrOjphY3RpdmVDdWVzKCkgY29uc3QKICAgICAvLyBodHRwOi8vd3d3LndoYXR3Zy5vcmcvc3Bl
Y3Mvd2ViLWFwcHMvY3VycmVudC13b3JrLyNkb20tdGV4dHRyYWNrLWFjdGl2ZWN1ZXMKICAgICBp
ZiAobV9jdWVzICYmIG1fbW9kZSAhPSBkaXNhYmxlZEtleXdvcmQoKSkKICAgICAgICAgcmV0dXJu
IG1fY3Vlcy0+YWN0aXZlQ3VlcygpOwotICAgIHJldHVybiAwOworICAgIHJldHVybiBudWxscHRy
OwogfQogCiB2b2lkIFRleHRUcmFjazo6YWRkQ3VlKFBhc3NSZWZQdHI8VGV4dFRyYWNrQ3VlPiBw
cnBDdWUsIEV4Y2VwdGlvbkNvZGUmIGVjKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvaHRt
bC90cmFjay9WVFRDdWUuY3BwIGIvU291cmNlL1dlYkNvcmUvaHRtbC90cmFjay9WVFRDdWUuY3Bw
CmluZGV4IDM0YTJlZTc5NmE4ODgwMDY5MDMyODgzYzMxZWI4ZmYxNWU3NDdiZDMuLjBiOWM3MTc5
MzBiZjA2N2I1ZWEyM2U1MTQzMWY5ZmNlYTk3ZDZiYjUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJD
b3JlL2h0bWwvdHJhY2svVlRUQ3VlLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9odG1sL3RyYWNr
L1ZUVEN1ZS5jcHAKQEAgLTQ4Miw3ICs0ODIsNyBAQCB2b2lkIFZUVEN1ZTo6c2V0VGV4dChjb25z
dCBTdHJpbmcmIHRleHQpCiAgICAgd2lsbENoYW5nZSgpOwogICAgIC8vIENsZWFyIHRoZSBkb2N1
bWVudCBmcmFnbWVudCBidXQgZG9uJ3QgYm90aGVyIHRvIGNyZWF0ZSBpdCBhZ2FpbiBqdXN0IHll
dCBhcyB3ZSBjYW4gZG8gdGhhdAogICAgIC8vIHdoZW4gaXQgaXMgcmVxdWVzdGVkLgotICAgIG1f
d2ViVlRUTm9kZVRyZWUgPSAwOworICAgIG1fd2ViVlRUTm9kZVRyZWUgPSBudWxscHRyOwogICAg
IG1fY29udGVudCA9IHRleHQ7CiAgICAgZGlkQ2hhbmdlKCk7CiB9CmRpZmYgLS1naXQgYS9Tb3Vy
Y2UvV2ViQ29yZS9pbnNwZWN0b3IvSW5zcGVjdG9yQXBwbGljYXRpb25DYWNoZUFnZW50LmNwcCBi
L1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9JbnNwZWN0b3JBcHBsaWNhdGlvbkNhY2hlQWdlbnQu
Y3BwCmluZGV4IGZkNGNhZjYyMTQxMTlhODQ0N2MwMjk0NTc0MDRmMWY1MmJjOGUzN2EuLjJkY2Qy
NmU5OWJmM2EwN2E2NzYwOGFhZTEyZDU3NDQzOTA1YTYyNjUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9X
ZWJDb3JlL2luc3BlY3Rvci9JbnNwZWN0b3JBcHBsaWNhdGlvbkNhY2hlQWdlbnQuY3BwCisrKyBi
L1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9JbnNwZWN0b3JBcHBsaWNhdGlvbkNhY2hlQWdlbnQu
Y3BwCkBAIC01OCw3ICs1OCw3IEBAIHZvaWQgSW5zcGVjdG9yQXBwbGljYXRpb25DYWNoZUFnZW50
OjpkaWRDcmVhdGVGcm9udGVuZEFuZEJhY2tlbmQoRnJvbnRlbmRDaGFubmVsCiB2b2lkIEluc3Bl
Y3RvckFwcGxpY2F0aW9uQ2FjaGVBZ2VudDo6d2lsbERlc3Ryb3lGcm9udGVuZEFuZEJhY2tlbmQo
SW5zcGVjdG9yOjpEaXNjb25uZWN0UmVhc29uKQogewogICAgIG1fZnJvbnRlbmREaXNwYXRjaGVy
ID0gbnVsbHB0cjsKLSAgICBtX2JhY2tlbmREaXNwYXRjaGVyLmNsZWFyKCk7CisgICAgbV9iYWNr
ZW5kRGlzcGF0Y2hlciA9IG51bGxwdHI7CiAKICAgICBtX2luc3RydW1lbnRpbmdBZ2VudHMtPnNl
dEluc3BlY3RvckFwcGxpY2F0aW9uQ2FjaGVBZ2VudChudWxscHRyKTsKIH0KZGlmZiAtLWdpdCBh
L1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9JbnNwZWN0b3JDU1NBZ2VudC5jcHAgYi9Tb3VyY2Uv
V2ViQ29yZS9pbnNwZWN0b3IvSW5zcGVjdG9yQ1NTQWdlbnQuY3BwCmluZGV4IGE5MDgzZDA4MTQy
N2I5YzAxOTE4OWU2YzQ5YjgxNDYyZWYzNjM1OWUuLjNkMDYyMDgzNGViMjhjZGZkMDZiNThjZDY2
MjZiYTNjMTQ4ZTcxOTEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9JbnNw
ZWN0b3JDU1NBZ2VudC5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL0luc3BlY3Rv
ckNTU0FnZW50LmNwcApAQCAtMzYwLDcgKzM2MCw3IEBAIHZvaWQgSW5zcGVjdG9yQ1NTQWdlbnQ6
OmRpZENyZWF0ZUZyb250ZW5kQW5kQmFja2VuZChJbnNwZWN0b3I6OkZyb250ZW5kQ2hhbm5lbCoK
IHZvaWQgSW5zcGVjdG9yQ1NTQWdlbnQ6OndpbGxEZXN0cm95RnJvbnRlbmRBbmRCYWNrZW5kKElu
c3BlY3Rvcjo6RGlzY29ubmVjdFJlYXNvbikKIHsKICAgICBtX2Zyb250ZW5kRGlzcGF0Y2hlciA9
IG51bGxwdHI7Ci0gICAgbV9iYWNrZW5kRGlzcGF0Y2hlci5jbGVhcigpOworICAgIG1fYmFja2Vu
ZERpc3BhdGNoZXIgPSBudWxscHRyOwogCiAgICAgcmVzZXROb25QZXJzaXN0ZW50RGF0YSgpOwog
fQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL0luc3BlY3RvckNvbnRyb2xs
ZXIuY3BwIGIvU291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL0luc3BlY3RvckNvbnRyb2xsZXIuY3Bw
CmluZGV4IGYyM2E1ZWEwZWU1NmQwNWUxNDQ1MTA2YTcyNWFjMWM5NmE0NjhlOTkuLmJjODBiY2Ey
OWM5NTE0Nzc3ZGEwNGRjMWNhZTFiNzUxY2Y5ZmY4YWYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJD
b3JlL2luc3BlY3Rvci9JbnNwZWN0b3JDb250cm9sbGVyLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29y
ZS9pbnNwZWN0b3IvSW5zcGVjdG9yQ29udHJvbGxlci5jcHAKQEAgLTI2Myw3ICsyNjMsNyBAQCB2
b2lkIEluc3BlY3RvckNvbnRyb2xsZXI6OmRpc2Nvbm5lY3RGcm9udGVuZChEaXNjb25uZWN0UmVh
c29uIHJlYXNvbikKICAgICBtX2FnZW50cy53aWxsRGVzdHJveUZyb250ZW5kQW5kQmFja2VuZChy
ZWFzb24pOwogCiAgICAgbV9iYWNrZW5kRGlzcGF0Y2hlci0+Y2xlYXJGcm9udGVuZCgpOwotICAg
IG1fYmFja2VuZERpc3BhdGNoZXIuY2xlYXIoKTsKKyAgICBtX2JhY2tlbmREaXNwYXRjaGVyID0g
bnVsbHB0cjsKICAgICBtX2Zyb250ZW5kQ2hhbm5lbCA9IG51bGxwdHI7CiAKICAgICBtX2lzQXV0
b21hdGljSW5zcGVjdGlvbiA9IGZhbHNlOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvaW5z
cGVjdG9yL0luc3BlY3RvckRPTUFnZW50LmNwcCBiL1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9J
bnNwZWN0b3JET01BZ2VudC5jcHAKaW5kZXggMGVkMmM1YzA0ZmFhM2IxY2M4YmIwNWQ0OWFkOTZh
NmQxOTcxMmNhMS4uNzE5Zjc2MWRlNTZkOTA5MTU0YWYxNjIxNjBlMDJhMTQ2Y2E2MjYyZCAxMDA2
NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL0luc3BlY3RvckRPTUFnZW50LmNwcAor
KysgYi9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvSW5zcGVjdG9yRE9NQWdlbnQuY3BwCkBAIC0y
MzgsNyArMjM4LDcgQEAgdm9pZCBJbnNwZWN0b3JET01BZ2VudDo6ZGlkQ3JlYXRlRnJvbnRlbmRB
bmRCYWNrZW5kKEluc3BlY3Rvcjo6RnJvbnRlbmRDaGFubmVsKgogdm9pZCBJbnNwZWN0b3JET01B
Z2VudDo6d2lsbERlc3Ryb3lGcm9udGVuZEFuZEJhY2tlbmQoSW5zcGVjdG9yOjpEaXNjb25uZWN0
UmVhc29uKQogewogICAgIG1fZnJvbnRlbmREaXNwYXRjaGVyID0gbnVsbHB0cjsKLSAgICBtX2Jh
Y2tlbmREaXNwYXRjaGVyLmNsZWFyKCk7CisgICAgbV9iYWNrZW5kRGlzcGF0Y2hlciA9IG51bGxw
dHI7CiAKICAgICBtX2hpc3RvcnkucmVzZXQoKTsKICAgICBtX2RvbUVkaXRvci5yZXNldCgpOwpA
QCAtMjcyLDcgKzI3Miw3IEBAIHZvaWQgSW5zcGVjdG9yRE9NQWdlbnQ6OnJlc2V0KCkKICAgICBk
aXNjYXJkQmluZGluZ3MoKTsKICAgICBpZiAobV9yZXZhbGlkYXRlU3R5bGVBdHRyVGFzaykKICAg
ICAgICAgbV9yZXZhbGlkYXRlU3R5bGVBdHRyVGFzay0+cmVzZXQoKTsKLSAgICBtX2RvY3VtZW50
ID0gMDsKKyAgICBtX2RvY3VtZW50ID0gbnVsbHB0cjsKIH0KIAogdm9pZCBJbnNwZWN0b3JET01B
Z2VudDo6c2V0RE9NTGlzdGVuZXIoRE9NTGlzdGVuZXIqIGxpc3RlbmVyKQpkaWZmIC0tZ2l0IGEv
U291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL0luc3BlY3RvckRPTURlYnVnZ2VyQWdlbnQuY3BwIGIv
U291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL0luc3BlY3RvckRPTURlYnVnZ2VyQWdlbnQuY3BwCmlu
ZGV4IGY3NzhkZDk2MmNiMmRkYzE2MDYzMTc0NmE5OTViZGRhMGE5YjI3OGIuLmQ1MWQ0YmVhZTkx
MjIzNTA3YjZjNDQ2Nzc5NDRjYjI3YmEzNmM0NjQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3Jl
L2luc3BlY3Rvci9JbnNwZWN0b3JET01EZWJ1Z2dlckFnZW50LmNwcAorKysgYi9Tb3VyY2UvV2Vi
Q29yZS9pbnNwZWN0b3IvSW5zcGVjdG9yRE9NRGVidWdnZXJBZ2VudC5jcHAKQEAgLTEwOSw3ICsx
MDksNyBAQCB2b2lkIEluc3BlY3RvckRPTURlYnVnZ2VyQWdlbnQ6OmRpZENyZWF0ZUZyb250ZW5k
QW5kQmFja2VuZChJbnNwZWN0b3I6OkZyb250ZW5kQwogCiB2b2lkIEluc3BlY3RvckRPTURlYnVn
Z2VyQWdlbnQ6OndpbGxEZXN0cm95RnJvbnRlbmRBbmRCYWNrZW5kKEluc3BlY3Rvcjo6RGlzY29u
bmVjdFJlYXNvbikKIHsKLSAgICBtX2JhY2tlbmREaXNwYXRjaGVyLmNsZWFyKCk7CisgICAgbV9i
YWNrZW5kRGlzcGF0Y2hlciA9IG51bGxwdHI7CiAKICAgICBkaXNhYmxlKCk7CiB9CmRpZmYgLS1n
aXQgYS9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvSW5zcGVjdG9yRE9NU3RvcmFnZUFnZW50LmNw
cCBiL1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9JbnNwZWN0b3JET01TdG9yYWdlQWdlbnQuY3Bw
CmluZGV4IGIxNjg3Y2Y1NDg1M2Y2MjJmNTJhNjc2OGM5MmNjZjQyNThlN2E1ZjEuLjA0YWY4OGJj
ZTNkYzAwNTE0ODViM2UyYTUwZDk3MTYwMTdjMmY2OWYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJD
b3JlL2luc3BlY3Rvci9JbnNwZWN0b3JET01TdG9yYWdlQWdlbnQuY3BwCisrKyBiL1NvdXJjZS9X
ZWJDb3JlL2luc3BlY3Rvci9JbnNwZWN0b3JET01TdG9yYWdlQWdlbnQuY3BwCkBAIC03Niw3ICs3
Niw3IEBAIHZvaWQgSW5zcGVjdG9yRE9NU3RvcmFnZUFnZW50OjpkaWRDcmVhdGVGcm9udGVuZEFu
ZEJhY2tlbmQoSW5zcGVjdG9yOjpGcm9udGVuZENoCiB2b2lkIEluc3BlY3RvckRPTVN0b3JhZ2VB
Z2VudDo6d2lsbERlc3Ryb3lGcm9udGVuZEFuZEJhY2tlbmQoSW5zcGVjdG9yOjpEaXNjb25uZWN0
UmVhc29uKQogewogICAgIG1fZnJvbnRlbmREaXNwYXRjaGVyID0gbnVsbHB0cjsKLSAgICBtX2Jh
Y2tlbmREaXNwYXRjaGVyLmNsZWFyKCk7CisgICAgbV9iYWNrZW5kRGlzcGF0Y2hlciA9IG51bGxw
dHI7CiAKICAgICBFcnJvclN0cmluZyB1bnVzZWQ7CiAgICAgZGlzYWJsZSh1bnVzZWQpOwpkaWZm
IC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL0luc3BlY3RvckRhdGFiYXNlQWdlbnQu
Y3BwIGIvU291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL0luc3BlY3RvckRhdGFiYXNlQWdlbnQuY3Bw
CmluZGV4IDkxMzRkZmU0N2M3OWM2YzZlZjQ0MTM0NDUyMGI3MDQ2ZTFkNWRjMTMuLmJlMjdmOTU2
MTQ0NTlmYmZmZDFiMDJkNDg1Y2YxZDc3ZGVkOTY2ZWQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJD
b3JlL2luc3BlY3Rvci9JbnNwZWN0b3JEYXRhYmFzZUFnZW50LmNwcAorKysgYi9Tb3VyY2UvV2Vi
Q29yZS9pbnNwZWN0b3IvSW5zcGVjdG9yRGF0YWJhc2VBZ2VudC5jcHAKQEAgLTIzMSw3ICsyMzEs
NyBAQCB2b2lkIEluc3BlY3RvckRhdGFiYXNlQWdlbnQ6OmRpZENyZWF0ZUZyb250ZW5kQW5kQmFj
a2VuZChJbnNwZWN0b3I6OkZyb250ZW5kQ2hhbgogdm9pZCBJbnNwZWN0b3JEYXRhYmFzZUFnZW50
Ojp3aWxsRGVzdHJveUZyb250ZW5kQW5kQmFja2VuZChJbnNwZWN0b3I6OkRpc2Nvbm5lY3RSZWFz
b24pCiB7CiAgICAgbV9mcm9udGVuZERpc3BhdGNoZXIgPSBudWxscHRyOwotICAgIG1fYmFja2Vu
ZERpc3BhdGNoZXIuY2xlYXIoKTsKKyAgICBtX2JhY2tlbmREaXNwYXRjaGVyID0gbnVsbHB0cjsK
IAogICAgIEVycm9yU3RyaW5nIHVudXNlZDsKICAgICBkaXNhYmxlKHVudXNlZCk7CmRpZmYgLS1n
aXQgYS9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvSW5zcGVjdG9ySW5kZXhlZERCQWdlbnQuY3Bw
IGIvU291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL0luc3BlY3RvckluZGV4ZWREQkFnZW50LmNwcApp
bmRleCA5YmYxMjkxMTZjNGRjODBhMDg2MzFjMDRkNzA3YjE4M2FiOGJjYWNmLi4xNzJmYjU4MTI4
MDIwYTNhZTU1ZDY1ZDRmMDhmNTdhZTE2YTBlY2Y3IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29y
ZS9pbnNwZWN0b3IvSW5zcGVjdG9ySW5kZXhlZERCQWdlbnQuY3BwCisrKyBiL1NvdXJjZS9XZWJD
b3JlL2luc3BlY3Rvci9JbnNwZWN0b3JJbmRleGVkREJBZ2VudC5jcHAKQEAgLTU4Miw3ICs1ODIs
NyBAQCB2b2lkIEluc3BlY3RvckluZGV4ZWREQkFnZW50OjpkaWRDcmVhdGVGcm9udGVuZEFuZEJh
Y2tlbmQoSW5zcGVjdG9yOjpGcm9udGVuZENoYQogCiB2b2lkIEluc3BlY3RvckluZGV4ZWREQkFn
ZW50Ojp3aWxsRGVzdHJveUZyb250ZW5kQW5kQmFja2VuZChJbnNwZWN0b3I6OkRpc2Nvbm5lY3RS
ZWFzb24pCiB7Ci0gICAgbV9iYWNrZW5kRGlzcGF0Y2hlci5jbGVhcigpOworICAgIG1fYmFja2Vu
ZERpc3BhdGNoZXIgPSBudWxscHRyOwogCiAgICAgRXJyb3JTdHJpbmcgdW51c2VkOwogICAgIGRp
c2FibGUodW51c2VkKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9JbnNw
ZWN0b3JMYXllclRyZWVBZ2VudC5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvSW5zcGVj
dG9yTGF5ZXJUcmVlQWdlbnQuY3BwCmluZGV4IGJlNjQ0OTZlNDYzOGQwMGMzZWMyODkwODY1NmFl
Njc3YTczODk3NTguLmY2ZTQxZmFjODI4YWM2YzRmNzc2MDY1YWRmN2EzZGJmOGQ3OGJlMDQgMTAw
NjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9JbnNwZWN0b3JMYXllclRyZWVBZ2Vu
dC5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL0luc3BlY3RvckxheWVyVHJlZUFn
ZW50LmNwcApAQCAtNjUsNyArNjUsNyBAQCB2b2lkIEluc3BlY3RvckxheWVyVHJlZUFnZW50Ojpk
aWRDcmVhdGVGcm9udGVuZEFuZEJhY2tlbmQoSW5zcGVjdG9yOjpGcm9udGVuZENoYQogdm9pZCBJ
bnNwZWN0b3JMYXllclRyZWVBZ2VudDo6d2lsbERlc3Ryb3lGcm9udGVuZEFuZEJhY2tlbmQoSW5z
cGVjdG9yOjpEaXNjb25uZWN0UmVhc29uKQogewogICAgIG1fZnJvbnRlbmREaXNwYXRjaGVyID0g
bnVsbHB0cjsKLSAgICBtX2JhY2tlbmREaXNwYXRjaGVyLmNsZWFyKCk7CisgICAgbV9iYWNrZW5k
RGlzcGF0Y2hlciA9IG51bGxwdHI7CiAKICAgICBFcnJvclN0cmluZyB1bnVzZWQ7CiAgICAgZGlz
YWJsZSh1bnVzZWQpOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL0luc3Bl
Y3Rvck92ZXJsYXkuY3BwIGIvU291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL0luc3BlY3Rvck92ZXJs
YXkuY3BwCmluZGV4IDZkM2EwZjNjYTcyNjVhMWFmZjhjMzI4YTVmM2Y2Yjc5YzMzMWQ4ZDQuLmZh
ZWE3Y2VmMmM2MzJlZTUxMDJjZGYyYjY1NDQ5N2FiODA3YmUxNzcgMTAwNjQ0Ci0tLSBhL1NvdXJj
ZS9XZWJDb3JlL2luc3BlY3Rvci9JbnNwZWN0b3JPdmVybGF5LmNwcAorKysgYi9Tb3VyY2UvV2Vi
Q29yZS9pbnNwZWN0b3IvSW5zcGVjdG9yT3ZlcmxheS5jcHAKQEAgLTI0Myw5ICsyNDMsOSBAQCB2
b2lkIEluc3BlY3Rvck92ZXJsYXk6OnNldFBhdXNlZEluRGVidWdnZXJNZXNzYWdlKGNvbnN0IFN0
cmluZyogbWVzc2FnZSkKIAogdm9pZCBJbnNwZWN0b3JPdmVybGF5OjpoaWRlSGlnaGxpZ2h0KCkK
IHsKLSAgICBtX2hpZ2hsaWdodE5vZGUuY2xlYXIoKTsKLSAgICBtX2hpZ2hsaWdodE5vZGVMaXN0
LmNsZWFyKCk7Ci0gICAgbV9oaWdobGlnaHRRdWFkLnJlc2V0KCk7CisgICAgbV9oaWdobGlnaHRO
b2RlID0gbnVsbHB0cjsKKyAgICBtX2hpZ2hsaWdodE5vZGVMaXN0ID0gbnVsbHB0cjsKKyAgICBt
X2hpZ2hsaWdodFF1YWQgPSBudWxscHRyOwogICAgIHVwZGF0ZSgpOwogfQogCkBAIC0yNTMsNyAr
MjUzLDcgQEAgdm9pZCBJbnNwZWN0b3JPdmVybGF5OjpoaWdobGlnaHROb2RlTGlzdChQYXNzUmVm
UHRyPE5vZGVMaXN0PiBub2RlcywgY29uc3QgSGlnaGwKIHsKICAgICBtX25vZGVIaWdobGlnaHRD
b25maWcgPSBoaWdobGlnaHRDb25maWc7CiAgICAgbV9oaWdobGlnaHROb2RlTGlzdCA9IG5vZGVz
OwotICAgIG1faGlnaGxpZ2h0Tm9kZS5jbGVhcigpOworICAgIG1faGlnaGxpZ2h0Tm9kZSA9IG51
bGxwdHI7CiAgICAgdXBkYXRlKCk7CiB9CiAKQEAgLTI2MSw3ICsyNjEsNyBAQCB2b2lkIEluc3Bl
Y3Rvck92ZXJsYXk6OmhpZ2hsaWdodE5vZGUoTm9kZSogbm9kZSwgY29uc3QgSGlnaGxpZ2h0Q29u
ZmlnJiBoaWdobGlnaAogewogICAgIG1fbm9kZUhpZ2hsaWdodENvbmZpZyA9IGhpZ2hsaWdodENv
bmZpZzsKICAgICBtX2hpZ2hsaWdodE5vZGUgPSBub2RlOwotICAgIG1faGlnaGxpZ2h0Tm9kZUxp
c3QuY2xlYXIoKTsKKyAgICBtX2hpZ2hsaWdodE5vZGVMaXN0ID0gbnVsbHB0cjsKICAgICB1cGRh
dGUoKTsKIH0KIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL0luc3BlY3Rv
clBhZ2VBZ2VudC5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvSW5zcGVjdG9yUGFnZUFn
ZW50LmNwcAppbmRleCA2ZjUyYmZhZTBiNTIzYzk2ZjE0ZTU3NDE3MjI2OTVhMTc1NTFjYThhLi4z
ZTlmZWJlZmI1NGZlNDQ4YWM4ODA3NmQ5OTZmOWE4YWQwN2E1YjlhIDEwMDY0NAotLS0gYS9Tb3Vy
Y2UvV2ViQ29yZS9pbnNwZWN0b3IvSW5zcGVjdG9yUGFnZUFnZW50LmNwcAorKysgYi9Tb3VyY2Uv
V2ViQ29yZS9pbnNwZWN0b3IvSW5zcGVjdG9yUGFnZUFnZW50LmNwcApAQCAtMzQ4LDcgKzM0OCw3
IEBAIHZvaWQgSW5zcGVjdG9yUGFnZUFnZW50OjpkaWRDcmVhdGVGcm9udGVuZEFuZEJhY2tlbmQo
SW5zcGVjdG9yOjpGcm9udGVuZENoYW5uZWwqCiB2b2lkIEluc3BlY3RvclBhZ2VBZ2VudDo6d2ls
bERlc3Ryb3lGcm9udGVuZEFuZEJhY2tlbmQoSW5zcGVjdG9yOjpEaXNjb25uZWN0UmVhc29uKQog
ewogICAgIG1fZnJvbnRlbmREaXNwYXRjaGVyID0gbnVsbHB0cjsKLSAgICBtX2JhY2tlbmREaXNw
YXRjaGVyLmNsZWFyKCk7CisgICAgbV9iYWNrZW5kRGlzcGF0Y2hlciA9IG51bGxwdHI7CiAKICAg
ICBFcnJvclN0cmluZyB1bnVzZWQ7CiAgICAgZGlzYWJsZSh1bnVzZWQpOwpAQCAtMzc0LDcgKzM3
NCw3IEBAIHZvaWQgSW5zcGVjdG9yUGFnZUFnZW50OjplbmFibGUoRXJyb3JTdHJpbmcmKQogdm9p
ZCBJbnNwZWN0b3JQYWdlQWdlbnQ6OmRpc2FibGUoRXJyb3JTdHJpbmcmKQogewogICAgIG1fZW5h
YmxlZCA9IGZhbHNlOwotICAgIG1fc2NyaXB0c1RvRXZhbHVhdGVPbkxvYWQuY2xlYXIoKTsKKyAg
ICBtX3NjcmlwdHNUb0V2YWx1YXRlT25Mb2FkID0gbnVsbHB0cjsKICAgICBtX2luc3RydW1lbnRp
bmdBZ2VudHMtPnNldEluc3BlY3RvclBhZ2VBZ2VudChudWxscHRyKTsKIAogICAgIEVycm9yU3Ry
aW5nIHVudXNlZDsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9JbnNwZWN0
b3JSZXBsYXlBZ2VudC5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvSW5zcGVjdG9yUmVw
bGF5QWdlbnQuY3BwCmluZGV4IDY0Y2I4MTE3Yzc5ODFkYWM0MzRmNDNjYmYzYmZkOWUzMzEyODQ3
YTEuLjE4MWE2MDk4MmFmNzI2YzI0NGE0YzFiMzNkNmJjODdjMjliNTA1ODUgMTAwNjQ0Ci0tLSBh
L1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9JbnNwZWN0b3JSZXBsYXlBZ2VudC5jcHAKKysrIGIv
U291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL0luc3BlY3RvclJlcGxheUFnZW50LmNwcApAQCAtMTkz
LDcgKzE5Myw3IEBAIHZvaWQgSW5zcGVjdG9yUmVwbGF5QWdlbnQ6OmRpZENyZWF0ZUZyb250ZW5k
QW5kQmFja2VuZChJbnNwZWN0b3I6OkZyb250ZW5kQ2hhbm5lCiB2b2lkIEluc3BlY3RvclJlcGxh
eUFnZW50Ojp3aWxsRGVzdHJveUZyb250ZW5kQW5kQmFja2VuZChJbnNwZWN0b3I6OkRpc2Nvbm5l
Y3RSZWFzb24pCiB7CiAgICAgbV9mcm9udGVuZERpc3BhdGNoZXIgPSBudWxscHRyOwotICAgIG1f
YmFja2VuZERpc3BhdGNoZXIuY2xlYXIoKTsKKyAgICBtX2JhY2tlbmREaXNwYXRjaGVyID0gbnVs
bHB0cjsKIAogICAgIG1faW5zdHJ1bWVudGluZ0FnZW50cy0+c2V0SW5zcGVjdG9yUmVwbGF5QWdl
bnQobnVsbHB0cik7CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9JbnNw
ZWN0b3JSZXNvdXJjZUFnZW50LmNwcCBiL1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9JbnNwZWN0
b3JSZXNvdXJjZUFnZW50LmNwcAppbmRleCA4NTQ0ODljMDRmOTc0ZDk3Y2QzNjY0YWVhYWQ0NWZl
MDFiYjFlZjAxLi43YjU2YTBmZjlkMTU4ZjZiYThiMTM1M2EwYmFiMmU0ZDBlODlhMWQ3IDEwMDY0
NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvSW5zcGVjdG9yUmVzb3VyY2VBZ2VudC5j
cHAKKysrIGIvU291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL0luc3BlY3RvclJlc291cmNlQWdlbnQu
Y3BwCkBAIC0xODEsNyArMTgxLDcgQEAgdm9pZCBJbnNwZWN0b3JSZXNvdXJjZUFnZW50OjpkaWRD
cmVhdGVGcm9udGVuZEFuZEJhY2tlbmQoSW5zcGVjdG9yOjpGcm9udGVuZENoYW4KIHZvaWQgSW5z
cGVjdG9yUmVzb3VyY2VBZ2VudDo6d2lsbERlc3Ryb3lGcm9udGVuZEFuZEJhY2tlbmQoSW5zcGVj
dG9yOjpEaXNjb25uZWN0UmVhc29uKQogewogICAgIG1fZnJvbnRlbmREaXNwYXRjaGVyID0gbnVs
bHB0cjsKLSAgICBtX2JhY2tlbmREaXNwYXRjaGVyLmNsZWFyKCk7CisgICAgbV9iYWNrZW5kRGlz
cGF0Y2hlciA9IG51bGxwdHI7CiAKICAgICBFcnJvclN0cmluZyB1bnVzZWQ7CiAgICAgZGlzYWJs
ZSh1bnVzZWQpOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL0luc3BlY3Rv
clN0eWxlU2hlZXQuY3BwIGIvU291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL0luc3BlY3RvclN0eWxl
U2hlZXQuY3BwCmluZGV4IGI0N2M2NTRkM2Q3NjJjZTQ1ZGNmZTRmMTQ0YjRjOTY1N2VjYzlmYzQu
LjA2ZWMxYjZmMmY2NDRjMmMxZDA2ZDNmZWU5YWJlMTI4ZmMwYTVmOGMgMTAwNjQ0Ci0tLSBhL1Nv
dXJjZS9XZWJDb3JlL2luc3BlY3Rvci9JbnNwZWN0b3JTdHlsZVNoZWV0LmNwcAorKysgYi9Tb3Vy
Y2UvV2ViQ29yZS9pbnNwZWN0b3IvSW5zcGVjdG9yU3R5bGVTaGVldC5jcHAKQEAgLTEyNjEsNyAr
MTI2MSw3IEBAIHZvaWQgSW5zcGVjdG9yU3R5bGVTaGVldEZvcklubGluZVN0eWxlOjpkaWRNb2Rp
ZnlFbGVtZW50QXR0cmlidXRlKCkKICAgICBtX2lzU3R5bGVUZXh0VmFsaWQgPSBmYWxzZTsKICAg
ICBpZiAobV9lbGVtZW50LT5pc1N0eWxlZEVsZW1lbnQoKSAmJiBtX2VsZW1lbnQtPnN0eWxlKCkg
IT0gbV9pbnNwZWN0b3JTdHlsZS0+Y3NzU3R5bGUoKSkKICAgICAgICAgbV9pbnNwZWN0b3JTdHls
ZSA9IEluc3BlY3RvclN0eWxlOjpjcmVhdGUoSW5zcGVjdG9yQ1NTSWQoaWQoKSwgMCksIGlubGlu
ZVN0eWxlKCksIHRoaXMpOwotICAgIG1fcnVsZVNvdXJjZURhdGEuY2xlYXIoKTsKKyAgICBtX3J1
bGVTb3VyY2VEYXRhID0gbnVsbHB0cjsKIH0KIAogYm9vbCBJbnNwZWN0b3JTdHlsZVNoZWV0Rm9y
SW5saW5lU3R5bGU6OmdldFRleHQoU3RyaW5nKiByZXN1bHQpIGNvbnN0CkBAIC0xMjg1LDcgKzEy
ODUsNyBAQCBib29sIEluc3BlY3RvclN0eWxlU2hlZXRGb3JJbmxpbmVTdHlsZTo6c2V0U3R5bGVU
ZXh0KENTU1N0eWxlRGVjbGFyYXRpb24qIHN0eWxlLAogCiAgICAgbV9zdHlsZVRleHQgPSB0ZXh0
OwogICAgIG1faXNTdHlsZVRleHRWYWxpZCA9IHRydWU7Ci0gICAgbV9ydWxlU291cmNlRGF0YS5j
bGVhcigpOworICAgIG1fcnVsZVNvdXJjZURhdGEgPSBudWxscHRyOwogICAgIHJldHVybiAhZWM7
CiB9CiAKQEAgLTEzMDQsNyArMTMwNCw3IEBAIGJvb2wgSW5zcGVjdG9yU3R5bGVTaGVldEZvcklu
bGluZVN0eWxlOjplbnN1cmVQYXJzZWREYXRhUmVhZHkoKQogICAgIC8vIFRoZSAic3R5bGUiIHBy
b3BlcnR5IHZhbHVlIGNhbiBnZXQgY2hhbmdlZCBpbmRpcmVjdGx5LCBlLmcuIHZpYSBlbGVtZW50
LnN0eWxlLmJvcmRlcldpZHRoID0gIjJweCIuCiAgICAgY29uc3QgU3RyaW5nJiBjdXJyZW50U3R5
bGVUZXh0ID0gZWxlbWVudFN0eWxlVGV4dCgpOwogICAgIGlmIChtX3N0eWxlVGV4dCAhPSBjdXJy
ZW50U3R5bGVUZXh0KSB7Ci0gICAgICAgIG1fcnVsZVNvdXJjZURhdGEuY2xlYXIoKTsKKyAgICAg
ICAgbV9ydWxlU291cmNlRGF0YSA9IG51bGxwdHI7CiAgICAgICAgIG1fc3R5bGVUZXh0ID0gY3Vy
cmVudFN0eWxlVGV4dDsKICAgICAgICAgbV9pc1N0eWxlVGV4dFZhbGlkID0gdHJ1ZTsKICAgICB9
CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvSW5zcGVjdG9yVGltZWxpbmVB
Z2VudC5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvSW5zcGVjdG9yVGltZWxpbmVBZ2Vu
dC5jcHAKaW5kZXggMGUzMmJjNWU2Mzg5OGFmZjhlZDJiMDZhYmIwZjdhMWJhOTgwMDhhNC4uZjU3
NTZhMmQxZWE4Mzg3MTE1MGQ1MjFmOGVmZjE0OWEyM2FjNzhjYiAxMDA2NDQKLS0tIGEvU291cmNl
L1dlYkNvcmUvaW5zcGVjdG9yL0luc3BlY3RvclRpbWVsaW5lQWdlbnQuY3BwCisrKyBiL1NvdXJj
ZS9XZWJDb3JlL2luc3BlY3Rvci9JbnNwZWN0b3JUaW1lbGluZUFnZW50LmNwcApAQCAtMTAzLDcg
KzEwMyw3IEBAIHZvaWQgSW5zcGVjdG9yVGltZWxpbmVBZ2VudDo6ZGlkQ3JlYXRlRnJvbnRlbmRB
bmRCYWNrZW5kKEluc3BlY3Rvcjo6RnJvbnRlbmRDaGFuCiB2b2lkIEluc3BlY3RvclRpbWVsaW5l
QWdlbnQ6OndpbGxEZXN0cm95RnJvbnRlbmRBbmRCYWNrZW5kKEluc3BlY3Rvcjo6RGlzY29ubmVj
dFJlYXNvbiByZWFzb24pCiB7CiAgICAgbV9mcm9udGVuZERpc3BhdGNoZXIgPSBudWxscHRyOwot
ICAgIG1fYmFja2VuZERpc3BhdGNoZXIuY2xlYXIoKTsKKyAgICBtX2JhY2tlbmREaXNwYXRjaGVy
ID0gbnVsbHB0cjsKIAogICAgIG1faW5zdHJ1bWVudGluZ0FnZW50cy0+c2V0UGVyc2lzdGVudElu
c3BlY3RvclRpbWVsaW5lQWdlbnQobnVsbHB0cik7CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJD
b3JlL2luc3BlY3Rvci9JbnNwZWN0b3JXb3JrZXJBZ2VudC5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9p
bnNwZWN0b3IvSW5zcGVjdG9yV29ya2VyQWdlbnQuY3BwCmluZGV4IGRlYmM2OTg3OTVkOThjNDJi
OGViMThjMTBmZGEyYTI1Zjg1ZjJlOWIuLjVlMjFmMzViYjQ4MDNiZWIxZWEyZDU5ODRiNDJkMDg2
NjQ1ZDkxODEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9JbnNwZWN0b3JX
b3JrZXJBZ2VudC5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL0luc3BlY3Rvcldv
cmtlckFnZW50LmNwcApAQCAtMTI3LDcgKzEyNyw3IEBAIHZvaWQgSW5zcGVjdG9yV29ya2VyQWdl
bnQ6OndpbGxEZXN0cm95RnJvbnRlbmRBbmRCYWNrZW5kKEluc3BlY3Rvcjo6RGlzY29ubmVjdFJl
CiAgICAgZGlzYWJsZSh1bnVzZWQpOwogCiAgICAgbV9mcm9udGVuZERpc3BhdGNoZXIgPSBudWxs
cHRyOwotICAgIG1fYmFja2VuZERpc3BhdGNoZXIuY2xlYXIoKTsKKyAgICBtX2JhY2tlbmREaXNw
YXRjaGVyID0gbnVsbHB0cjsKIH0KIAogdm9pZCBJbnNwZWN0b3JXb3JrZXJBZ2VudDo6ZW5hYmxl
KEVycm9yU3RyaW5nJikKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9QYWdl
UnVudGltZUFnZW50LmNwcCBiL1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9QYWdlUnVudGltZUFn
ZW50LmNwcAppbmRleCA5M2RiNTcyYTdmMDQ1NTA1YjllNTE1ZTUwOTBjNGZjMGI1MDIxZTJkLi5l
MjQ0NWFiZjQ0M2QwOGY0Mzg0YTAzOWJjOWU1NWQ4ZDVmM2Y3MTJiIDEwMDY0NAotLS0gYS9Tb3Vy
Y2UvV2ViQ29yZS9pbnNwZWN0b3IvUGFnZVJ1bnRpbWVBZ2VudC5jcHAKKysrIGIvU291cmNlL1dl
YkNvcmUvaW5zcGVjdG9yL1BhZ2VSdW50aW1lQWdlbnQuY3BwCkBAIC02OSw3ICs2OSw3IEBAIHZv
aWQgUGFnZVJ1bnRpbWVBZ2VudDo6ZGlkQ3JlYXRlRnJvbnRlbmRBbmRCYWNrZW5kKEluc3BlY3Rv
cjo6RnJvbnRlbmRDaGFubmVsKiBmCiB2b2lkIFBhZ2VSdW50aW1lQWdlbnQ6OndpbGxEZXN0cm95
RnJvbnRlbmRBbmRCYWNrZW5kKEluc3BlY3Rvcjo6RGlzY29ubmVjdFJlYXNvbiByZWFzb24pCiB7
CiAgICAgbV9mcm9udGVuZERpc3BhdGNoZXIgPSBudWxscHRyOwotICAgIG1fYmFja2VuZERpc3Bh
dGNoZXIuY2xlYXIoKTsKKyAgICBtX2JhY2tlbmREaXNwYXRjaGVyID0gbnVsbHB0cjsKIAogICAg
IFN0cmluZyB1bnVzZWQ7CiAgICAgZGlzYWJsZSh1bnVzZWQpOwpkaWZmIC0tZ2l0IGEvU291cmNl
L1dlYkNvcmUvaW5zcGVjdG9yL1dlYkluamVjdGVkU2NyaXB0TWFuYWdlci5jcHAgYi9Tb3VyY2Uv
V2ViQ29yZS9pbnNwZWN0b3IvV2ViSW5qZWN0ZWRTY3JpcHRNYW5hZ2VyLmNwcAppbmRleCA5ZjRh
ZjQyNjkzZWM1NzU5NTMxMzM5NDQ2MGIxOTA1ZGZlMGFkNTg3Li41NjE5NmYwYWUzNzFlZjQ0M2Mw
NTIzZWIzMWJiNmZjNWVhZjNlNWIxIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0
b3IvV2ViSW5qZWN0ZWRTY3JpcHRNYW5hZ2VyLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9pbnNw
ZWN0b3IvV2ViSW5qZWN0ZWRTY3JpcHRNYW5hZ2VyLmNwcApAQCAtNDQsNyArNDQsNyBAQCB2b2lk
IFdlYkluamVjdGVkU2NyaXB0TWFuYWdlcjo6ZGlzY29ubmVjdCgpCiAgICAgSW5qZWN0ZWRTY3Jp
cHRNYW5hZ2VyOjpkaXNjb25uZWN0KCk7CiAKICAgICBtX2NvbW1hbmRMaW5lQVBJSG9zdC0+ZGlz
Y29ubmVjdCgpOwotICAgIG1fY29tbWFuZExpbmVBUElIb3N0LmNsZWFyKCk7CisgICAgbV9jb21t
YW5kTGluZUFQSUhvc3QgPSBudWxscHRyOwogfQogCiB2b2lkIFdlYkluamVjdGVkU2NyaXB0TWFu
YWdlcjo6ZGlkQ3JlYXRlSW5qZWN0ZWRTY3JpcHQoSW5qZWN0ZWRTY3JpcHQgaW5qZWN0ZWRTY3Jp
cHQpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvV29ya2VySW5zcGVjdG9y
Q29udHJvbGxlci5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvV29ya2VySW5zcGVjdG9y
Q29udHJvbGxlci5jcHAKaW5kZXggZjFmZTQxMDA1YWRmZWE0YmMwMWUwYWQ1Yjc3ZjU4ZjBiOTZj
MjcwZC4uZDgzNGUwZWE5ZjVhMzAwYTgzMjRmNGFmMWQ2NjZkM2I5MDZhYzY1MiAxMDA2NDQKLS0t
IGEvU291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL1dvcmtlckluc3BlY3RvckNvbnRyb2xsZXIuY3Bw
CisrKyBiL1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9Xb3JrZXJJbnNwZWN0b3JDb250cm9sbGVy
LmNwcApAQCAtMTI2LDcgKzEyNiw3IEBAIHZvaWQgV29ya2VySW5zcGVjdG9yQ29udHJvbGxlcjo6
ZGlzY29ubmVjdEZyb250ZW5kKEluc3BlY3Rvcjo6RGlzY29ubmVjdFJlYXNvbiByCiAKICAgICBt
X2FnZW50cy53aWxsRGVzdHJveUZyb250ZW5kQW5kQmFja2VuZChyZWFzb24pOwogICAgIG1fYmFj
a2VuZERpc3BhdGNoZXItPmNsZWFyRnJvbnRlbmQoKTsKLSAgICBtX2JhY2tlbmREaXNwYXRjaGVy
LmNsZWFyKCk7CisgICAgbV9iYWNrZW5kRGlzcGF0Y2hlciA9IG51bGxwdHI7CiAgICAgbV9mcm9u
dGVuZENoYW5uZWwgPSBudWxscHRyOwogfQogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9p
bnNwZWN0b3IvV29ya2VyUnVudGltZUFnZW50LmNwcCBiL1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rv
ci9Xb3JrZXJSdW50aW1lQWdlbnQuY3BwCmluZGV4IDIwNmE0MWY1ZmI0MmNkMTVhMzM2Y2NiMzk0
YjJlYWM1MWRlNTRmZmEuLjEyMjJlNTUyNzk4YmI2MzczOTlmOGFlNzU3YjRmZjRmZGJkMmU1MGQg
MTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9Xb3JrZXJSdW50aW1lQWdlbnQu
Y3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9Xb3JrZXJSdW50aW1lQWdlbnQuY3Bw
CkBAIC02MCw3ICs2MCw3IEBAIHZvaWQgV29ya2VyUnVudGltZUFnZW50OjpkaWRDcmVhdGVGcm9u
dGVuZEFuZEJhY2tlbmQoSW5zcGVjdG9yOjpGcm9udGVuZENoYW5uZWwqCiAKIHZvaWQgV29ya2Vy
UnVudGltZUFnZW50Ojp3aWxsRGVzdHJveUZyb250ZW5kQW5kQmFja2VuZChJbnNwZWN0b3I6OkRp
c2Nvbm5lY3RSZWFzb24gcmVhc29uKQogewotICAgIG1fYmFja2VuZERpc3BhdGNoZXIuY2xlYXIo
KTsKKyAgICBtX2JhY2tlbmREaXNwYXRjaGVyID0gbnVsbHB0cjsKIAogICAgIEluc3BlY3RvclJ1
bnRpbWVBZ2VudDo6d2lsbERlc3Ryb3lGcm9udGVuZEFuZEJhY2tlbmQocmVhc29uKTsKIH0KZGlm
ZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2xvYWRlci9Eb2N1bWVudExvYWRlci5jcHAgYi9Tb3Vy
Y2UvV2ViQ29yZS9sb2FkZXIvRG9jdW1lbnRMb2FkZXIuY3BwCmluZGV4IDVlYzQ3YWMzMWYzMzVi
MzVhZWUyODc3MjJkYjYwYzU0NDZkMWJiOGEuLjdjYTFmMjM4NjZlNmQxNzc1YzA2YTUyYWNlMzIy
MmMyMTE1NGI0OTUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2xvYWRlci9Eb2N1bWVudExv
YWRlci5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvbG9hZGVyL0RvY3VtZW50TG9hZGVyLmNwcApA
QCAtMTUyNCw3ICsxNTI0LDcgQEAgdm9pZCBEb2N1bWVudExvYWRlcjo6Z2V0SWNvbkxvYWREZWNp
c2lvbkZvckljb25VUkwoY29uc3QgU3RyaW5nJiB1cmxTdHJpbmcpCiB2b2lkIERvY3VtZW50TG9h
ZGVyOjpjb250aW51ZUljb25Mb2FkV2l0aERlY2lzaW9uKEljb25Mb2FkRGVjaXNpb24gZGVjaXNp
b24pCiB7CiAgICAgQVNTRVJUKG1faWNvbkxvYWREZWNpc2lvbkNhbGxiYWNrKTsKLSAgICBtX2lj
b25Mb2FkRGVjaXNpb25DYWxsYmFjayA9IDA7CisgICAgbV9pY29uTG9hZERlY2lzaW9uQ2FsbGJh
Y2sgPSBudWxscHRyOwogICAgIGlmIChtX2ZyYW1lKQogICAgICAgICBtX2ZyYW1lLT5sb2FkZXIo
KS5pY29uKCkuY29udGludWVMb2FkV2l0aERlY2lzaW9uKGRlY2lzaW9uKTsKIH0KZGlmZiAtLWdp
dCBhL1NvdXJjZS9XZWJDb3JlL2xvYWRlci9Eb2N1bWVudFRocmVhZGFibGVMb2FkZXIuY3BwIGIv
U291cmNlL1dlYkNvcmUvbG9hZGVyL0RvY3VtZW50VGhyZWFkYWJsZUxvYWRlci5jcHAKaW5kZXgg
MWU4NmZhYzFiZGY4MjlhNjNlMTY5MGFmMmEzZTQ3NTI2MzIwN2QxYy4uYjBlNTg5OGJiY2Y4MGY5
ZmZhOWQyODY1NGIyNzRlY2ZhYjgyOWZmMSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvbG9h
ZGVyL0RvY3VtZW50VGhyZWFkYWJsZUxvYWRlci5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvbG9h
ZGVyL0RvY3VtZW50VGhyZWFkYWJsZUxvYWRlci5jcHAKQEAgLTY0LDcgKzY0LDcgQEAgUGFzc1Jl
ZlB0cjxEb2N1bWVudFRocmVhZGFibGVMb2FkZXI+IERvY3VtZW50VGhyZWFkYWJsZUxvYWRlcjo6
Y3JlYXRlKERvY3VtZW50JgogewogICAgIFJlZlB0cjxEb2N1bWVudFRocmVhZGFibGVMb2FkZXI+
IGxvYWRlciA9IGFkb3B0UmVmKG5ldyBEb2N1bWVudFRocmVhZGFibGVMb2FkZXIoZG9jdW1lbnQs
IGNsaWVudCwgTG9hZEFzeW5jaHJvbm91c2x5LCByZXF1ZXN0LCBvcHRpb25zKSk7CiAgICAgaWYg
KCFsb2FkZXItPm1fcmVzb3VyY2UpCi0gICAgICAgIGxvYWRlciA9IDA7CisgICAgICAgIGxvYWRl
ciA9IG51bGxwdHI7CiAgICAgcmV0dXJuIGxvYWRlci5yZWxlYXNlKCk7CiB9CiAKZGlmZiAtLWdp
dCBhL1NvdXJjZS9XZWJDb3JlL2xvYWRlci9Eb2N1bWVudFdyaXRlci5jcHAgYi9Tb3VyY2UvV2Vi
Q29yZS9sb2FkZXIvRG9jdW1lbnRXcml0ZXIuY3BwCmluZGV4IGNjNTEzOTNjMTBmNjM2YmQ3NmVk
MTA5OGIzZWJjYzM2YzQyMmMxMTEuLmExYzM3N2Y4ZTFiMzQ2MDdkMjU3NTQxNWFjZmE0YWJjZjkx
MGI0MzEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2xvYWRlci9Eb2N1bWVudFdyaXRlci5j
cHAKKysrIGIvU291cmNlL1dlYkNvcmUvbG9hZGVyL0RvY3VtZW50V3JpdGVyLmNwcApAQCAtOTAs
NyArOTAsNyBAQCB2b2lkIERvY3VtZW50V3JpdGVyOjpyZXBsYWNlRG9jdW1lbnQoY29uc3QgU3Ry
aW5nJiBzb3VyY2UsIERvY3VtZW50KiBvd25lckRvY3VtZQogCiB2b2lkIERvY3VtZW50V3JpdGVy
OjpjbGVhcigpCiB7Ci0gICAgbV9kZWNvZGVyID0gMDsKKyAgICBtX2RlY29kZXIgPSBudWxscHRy
OwogICAgIG1faGFzUmVjZWl2ZWRTb21lRGF0YSA9IGZhbHNlOwogICAgIGlmICghbV9lbmNvZGlu
Z1dhc0Nob3NlbkJ5VXNlcikKICAgICAgICAgbV9lbmNvZGluZyA9IFN0cmluZygpOwpAQCAtMjQ1
LDcgKzI0NSw3IEBAIHZvaWQgRG9jdW1lbnRXcml0ZXI6OmVuZCgpCiAgICAgaWYgKCFtX3BhcnNl
cikKICAgICAgICAgcmV0dXJuOwogICAgIG1fcGFyc2VyLT5maW5pc2goKTsKLSAgICBtX3BhcnNl
ciA9IDA7CisgICAgbV9wYXJzZXIgPSBudWxscHRyOwogfQogCiB2b2lkIERvY3VtZW50V3JpdGVy
OjpzZXRFbmNvZGluZyhjb25zdCBTdHJpbmcmIG5hbWUsIGJvb2wgdXNlckNob3NlbikKZGlmZiAt
LWdpdCBhL1NvdXJjZS9XZWJDb3JlL2xvYWRlci9GcmFtZUxvYWRlci5jcHAgYi9Tb3VyY2UvV2Vi
Q29yZS9sb2FkZXIvRnJhbWVMb2FkZXIuY3BwCmluZGV4IDUyMmIxNTdkYmNiZWMwYjUwMTFmOTVl
ODY2NjZhOWUyMGM2OWJmY2QuLjNiZGI2MjFkN2RhYjU2MzZlMDA5ZTk1YTFjM2IwYjdmOWNiZjM4
OGIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2xvYWRlci9GcmFtZUxvYWRlci5jcHAKKysr
IGIvU291cmNlL1dlYkNvcmUvbG9hZGVyL0ZyYW1lTG9hZGVyLmNwcApAQCAtNjkyLDcgKzY5Miw3
IEBAIHZvaWQgRnJhbWVMb2FkZXI6OmRpZEJlZ2luRG9jdW1lbnQoYm9vbCBkaXNwYXRjaCkKIAog
ICAgIGlmIChtX3BlbmRpbmdTdGF0ZU9iamVjdCkgewogICAgICAgICBtX2ZyYW1lLmRvY3VtZW50
KCktPnN0YXRlUG9wcGVkKG1fcGVuZGluZ1N0YXRlT2JqZWN0LmdldCgpKTsKLSAgICAgICAgbV9w
ZW5kaW5nU3RhdGVPYmplY3QuY2xlYXIoKTsKKyAgICAgICAgbV9wZW5kaW5nU3RhdGVPYmplY3Qg
PSBudWxscHRyOwogICAgIH0KIAogICAgIGlmIChkaXNwYXRjaCkKQEAgLTgxOCw3ICs4MTgsNyBA
QCB2b2lkIEZyYW1lTG9hZGVyOjpjaGVja0NvbXBsZXRlZCgpCiAKICAgICAvLyBPSywgY29tcGxl
dGVkLgogICAgIG1faXNDb21wbGV0ZSA9IHRydWU7Ci0gICAgbV9yZXF1ZXN0ZWRIaXN0b3J5SXRl
bSA9IDA7CisgICAgbV9yZXF1ZXN0ZWRIaXN0b3J5SXRlbSA9IG51bGxwdHI7CiAgICAgbV9mcmFt
ZS5kb2N1bWVudCgpLT5zZXRSZWFkeVN0YXRlKERvY3VtZW50OjpDb21wbGV0ZSk7CiAKICNpZiBQ
TEFURk9STShJT1MpCkBAIC0xMTM3LDcgKzExMzcsNyBAQCB2b2lkIEZyYW1lTG9hZGVyOjpzZXR1
cEZvclJlcGxhY2UoKQogICAgIG1fY2xpZW50LnJldmVydFRvUHJvdmlzaW9uYWxTdGF0ZShtX2Rv
Y3VtZW50TG9hZGVyLmdldCgpKTsKICAgICBzZXRTdGF0ZShGcmFtZVN0YXRlUHJvdmlzaW9uYWwp
OwogICAgIG1fcHJvdmlzaW9uYWxEb2N1bWVudExvYWRlciA9IG1fZG9jdW1lbnRMb2FkZXI7Ci0g
ICAgbV9kb2N1bWVudExvYWRlciA9IDA7CisgICAgbV9kb2N1bWVudExvYWRlciA9IG51bGxwdHI7
CiAgICAgZGV0YWNoQ2hpbGRyZW4oKTsKIH0KIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUv
bG9hZGVyL1Byb2dyZXNzVHJhY2tlci5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9sb2FkZXIvUHJvZ3Jl
c3NUcmFja2VyLmNwcAppbmRleCAwNDA1NGRlNGVhYjM5NTFmOTVlMDdlOWRlZDMyZGM5MTZmZDdl
ZTA2Li5kNTZjYTA1ZGI5OTBiMzBhNmIwN2QxMmZiMmMwOWU5OTZiNzk3MjBmIDEwMDY0NAotLS0g
YS9Tb3VyY2UvV2ViQ29yZS9sb2FkZXIvUHJvZ3Jlc3NUcmFja2VyLmNwcAorKysgYi9Tb3VyY2Uv
V2ViQ29yZS9sb2FkZXIvUHJvZ3Jlc3NUcmFja2VyLmNwcApAQCAtMTEzLDcgKzExMyw3IEBAIHZv
aWQgUHJvZ3Jlc3NUcmFja2VyOjpyZXNldCgpCiAgICAgbV9sYXN0Tm90aWZpZWRQcm9ncmVzc1Rp
bWUgPSBzdGQ6OmNocm9ubzo6c3RlYWR5X2Nsb2NrOjp0aW1lX3BvaW50KCk7CiAgICAgbV9maW5h
bFByb2dyZXNzQ2hhbmdlZFNlbnQgPSBmYWxzZTsKICAgICBtX251bVByb2dyZXNzVHJhY2tlZEZy
YW1lcyA9IDA7Ci0gICAgbV9vcmlnaW5hdGluZ1Byb2dyZXNzRnJhbWUgPSAwOworICAgIG1fb3Jp
Z2luYXRpbmdQcm9ncmVzc0ZyYW1lID0gbnVsbHB0cjsKIAogICAgIG1faGVhcnRiZWF0c1dpdGhO
b1Byb2dyZXNzID0gMDsKICAgICBtX3RvdGFsQnl0ZXNSZWNlaXZlZEJlZm9yZVByZXZpb3VzSGVh
cnRiZWF0ID0gMDsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2xvYWRlci9SZXNvdXJjZUxv
YWRlci5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9sb2FkZXIvUmVzb3VyY2VMb2FkZXIuY3BwCmluZGV4
IDQzMWEwY2IxZDQ0NWJlMmZmNTkwM2Q2MjM1NDc2NmFhY2NlNDM1MzYuLjE2NmE0NTRjMTA5MGJh
OGJkMmRkYzBjY2M3YmEyMDMxMzJhOTEzODAgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2xv
YWRlci9SZXNvdXJjZUxvYWRlci5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvbG9hZGVyL1Jlc291
cmNlTG9hZGVyLmNwcApAQCAtOTAsOCArOTAsOCBAQCB2b2lkIFJlc291cmNlTG9hZGVyOjpyZWxl
YXNlUmVzb3VyY2VzKCkKICAgICAvLyBoYXMgYmVlbiBkZWFsbG9jYXRlZCBhbmQgYWxzbyB0byBh
dm9pZCByZWVudGVyaW5nIHRoaXMgbWV0aG9kLgogICAgIFJlZjxSZXNvdXJjZUxvYWRlcj4gcHJv
dGVjdCgqdGhpcyk7CiAKLSAgICBtX2ZyYW1lID0gMDsKLSAgICBtX2RvY3VtZW50TG9hZGVyID0g
MDsKKyAgICBtX2ZyYW1lID0gbnVsbHB0cjsKKyAgICBtX2RvY3VtZW50TG9hZGVyID0gbnVsbHB0
cjsKICAgICAKICAgICAvLyBXZSBuZWVkIHRvIHNldCByZWFjaGVkVGVybWluYWxTdGF0ZSB0byB0
cnVlIGJlZm9yZSB3ZSByZWxlYXNlCiAgICAgLy8gdGhlIHJlc291cmNlcyB0byBwcmV2ZW50IGEg
ZG91YmxlIGRlYWxsb2Mgb2YgV2ViVmlldyA8cmRhcjovL3Byb2JsZW0vNDM3MjYyOD4KQEAgLTEw
NCwxMSArMTA0LDExIEBAIHZvaWQgUmVzb3VyY2VMb2FkZXI6OnJlbGVhc2VSZXNvdXJjZXMoKQog
ICAgICAgICAvLyBDbGVhciBvdXQgdGhlIFJlc291cmNlSGFuZGxlJ3MgY2xpZW50IHNvIHRoYXQg
aXQgZG9lc24ndCB0cnkgdG8gY2FsbAogICAgICAgICAvLyB1cyBiYWNrIGFmdGVyIHdlIHJlbGVh
c2UgaXQsIHVubGVzcyBpdCBoYXMgYmVlbiByZXBsYWNlZCBieSBzb21lb25lIGVsc2UuCiAgICAg
ICAgIGlmIChtX2hhbmRsZS0+Y2xpZW50KCkgPT0gdGhpcykKLSAgICAgICAgICAgIG1faGFuZGxl
LT5zZXRDbGllbnQoMCk7Ci0gICAgICAgIG1faGFuZGxlID0gMDsKKyAgICAgICAgICAgIG1faGFu
ZGxlLT5zZXRDbGllbnQobnVsbHB0cik7CisgICAgICAgIG1faGFuZGxlID0gbnVsbHB0cjsKICAg
ICB9CiAKLSAgICBtX3Jlc291cmNlRGF0YSA9IDA7CisgICAgbV9yZXNvdXJjZURhdGEgPSBudWxs
cHRyOwogICAgIG1fZGVmZXJyZWRSZXF1ZXN0ID0gUmVzb3VyY2VSZXF1ZXN0KCk7CiB9CiAKQEAg
LTIyNSw3ICsyMjUsNyBAQCB2b2lkIFJlc291cmNlTG9hZGVyOjpzZXREZWZlcnNMb2FkaW5nKGJv
b2wgZGVmZXJzKQogRnJhbWVMb2FkZXIqIFJlc291cmNlTG9hZGVyOjpmcmFtZUxvYWRlcigpIGNv
bnN0CiB7CiAgICAgaWYgKCFtX2ZyYW1lKQotICAgICAgICByZXR1cm4gMDsKKyAgICAgICAgcmV0
dXJuIG51bGxwdHI7CiAgICAgcmV0dXJuICZtX2ZyYW1lLT5sb2FkZXIoKTsKIH0KIApAQCAtMjQ0
LDcgKzI0NCw3IEBAIHZvaWQgUmVzb3VyY2VMb2FkZXI6OnNldERhdGFCdWZmZXJpbmdQb2xpY3ko
RGF0YUJ1ZmZlcmluZ1BvbGljeSBkYXRhQnVmZmVyaW5nUG9sCiAKICAgICAvLyBSZXNldCBhbnkg
YWxyZWFkeSBidWZmZXJlZCBkYXRhCiAgICAgaWYgKGRhdGFCdWZmZXJpbmdQb2xpY3kgPT0gRG9O
b3RCdWZmZXJEYXRhKQotICAgICAgICBtX3Jlc291cmNlRGF0YSA9IDA7CisgICAgICAgIG1fcmVz
b3VyY2VEYXRhID0gbnVsbHB0cjsKIH0KICAgICAKIHZvaWQgUmVzb3VyY2VMb2FkZXI6OndpbGxT
d2l0Y2hUb1N1YnN0aXR1dGVSZXNvdXJjZSgpCkBAIC01MzAsNyArNTMwLDcgQEAgdm9pZCBSZXNv
dXJjZUxvYWRlcjo6Y2FuY2VsKGNvbnN0IFJlc291cmNlRXJyb3ImIGVycm9yKQogICAgICAgICBt
X2RvY3VtZW50TG9hZGVyLT5jYW5jZWxQZW5kaW5nU3Vic3RpdHV0ZUxvYWQodGhpcyk7CiAgICAg
ICAgIGlmIChtX2hhbmRsZSkgewogICAgICAgICAgICAgbV9oYW5kbGUtPmNhbmNlbCgpOwotICAg
ICAgICAgICAgbV9oYW5kbGUgPSAwOworICAgICAgICAgICAgbV9oYW5kbGUgPSBudWxscHRyOwog
ICAgICAgICB9CiAgICAgICAgIGNsZWFudXBGb3JFcnJvcihub25OdWxsRXJyb3IpOwogICAgIH0K
ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2xvYWRlci9hcHBjYWNoZS9BcHBsaWNhdGlvbkNh
Y2hlR3JvdXAuY3BwIGIvU291cmNlL1dlYkNvcmUvbG9hZGVyL2FwcGNhY2hlL0FwcGxpY2F0aW9u
Q2FjaGVHcm91cC5jcHAKaW5kZXggNjI3YzBmZTc5ZTc1ZTA4MzljNjYxOWNhNzRhYjk3MDkxODk4
OTJhNi4uNTliY2FjOWExMDBiYmM1NDM4YWQ0MDMyN2ZmN2ZmY2QzOTg5NzA2MyAxMDA2NDQKLS0t
IGEvU291cmNlL1dlYkNvcmUvbG9hZGVyL2FwcGNhY2hlL0FwcGxpY2F0aW9uQ2FjaGVHcm91cC5j
cHAKKysrIGIvU291cmNlL1dlYkNvcmUvbG9hZGVyL2FwcGNhY2hlL0FwcGxpY2F0aW9uQ2FjaGVH
cm91cC5jcHAKQEAgLTMyNyw3ICszMjcsNyBAQCB2b2lkIEFwcGxpY2F0aW9uQ2FjaGVHcm91cDo6
c3RvcExvYWRpbmcoKQogICAgICAgICBtX21hbmlmZXN0SGFuZGxlLT5zZXRDbGllbnQoMCk7CiAK
ICAgICAgICAgbV9tYW5pZmVzdEhhbmRsZS0+Y2FuY2VsKCk7Ci0gICAgICAgIG1fbWFuaWZlc3RI
YW5kbGUgPSAwOworICAgICAgICBtX21hbmlmZXN0SGFuZGxlID0gbnVsbHB0cjsKICAgICB9CiAg
ICAgCiAgICAgaWYgKG1fY3VycmVudEhhbmRsZSkgewpAQCAtMzM4LDExICszMzgsMTEgQEAgdm9p
ZCBBcHBsaWNhdGlvbkNhY2hlR3JvdXA6OnN0b3BMb2FkaW5nKCkKICAgICAgICAgbV9jdXJyZW50
SGFuZGxlLT5zZXRDbGllbnQoMCk7CiAKICAgICAgICAgbV9jdXJyZW50SGFuZGxlLT5jYW5jZWwo
KTsKLSAgICAgICAgbV9jdXJyZW50SGFuZGxlID0gMDsKKyAgICAgICAgbV9jdXJyZW50SGFuZGxl
ID0gbnVsbHB0cjsKICAgICB9ICAgIAogCiAgICAgLy8gRklYTUU6IFJlc2V0dGluZyBqdXN0IGEg
dGlueSBwYXJ0IG9mIHRoZSBzdGF0ZSBpbiB0aGlzIGZ1bmN0aW9uIGlzIGNvbmZ1c2luZy4gQ2Fs
bGVycyBoYXZlIHRvIHRha2UgY2FyZSBvZiBhIGxvdCBtb3JlLgotICAgIG1fY2FjaGVCZWluZ1Vw
ZGF0ZWQgPSAwOworICAgIG1fY2FjaGVCZWluZ1VwZGF0ZWQgPSBudWxscHRyOwogICAgIG1fcGVu
ZGluZ0VudHJpZXMuY2xlYXIoKTsKIH0gICAgCiAKQEAgLTUyMSw3ICs1MjEsNyBAQCB2b2lkIEFw
cGxpY2F0aW9uQ2FjaGVHcm91cDo6ZGlkUmVjZWl2ZVJlc3BvbnNlKFJlc291cmNlSGFuZGxlKiBo
YW5kbGUsIGNvbnN0IFJlcwogICAgICAgICAgICAgbV9jYWNoZUJlaW5nVXBkYXRlZC0+YWRkUmVz
b3VyY2UoQXBwbGljYXRpb25DYWNoZVJlc291cmNlOjpjcmVhdGUodXJsLCBuZXdlc3RDYWNoZWRS
ZXNvdXJjZS0+cmVzcG9uc2UoKSwgdHlwZSwgbmV3ZXN0Q2FjaGVkUmVzb3VyY2UtPmRhdGEoKSwg
bmV3ZXN0Q2FjaGVkUmVzb3VyY2UtPnBhdGgoKSkpOwogICAgICAgICAgICAgbV9wZW5kaW5nRW50
cmllcy5yZW1vdmUobV9jdXJyZW50SGFuZGxlLT5maXJzdFJlcXVlc3QoKS51cmwoKSk7CiAgICAg
ICAgICAgICBtX2N1cnJlbnRIYW5kbGUtPmNhbmNlbCgpOwotICAgICAgICAgICAgbV9jdXJyZW50
SGFuZGxlID0gMDsKKyAgICAgICAgICAgIG1fY3VycmVudEhhbmRsZSA9IG51bGxwdHI7CiAgICAg
ICAgICAgICAvLyBMb2FkIHRoZSBuZXh0IHJlc291cmNlLCBpZiBhbnkuCiAgICAgICAgICAgICBz
dGFydExvYWRpbmdFbnRyeSgpOwogICAgICAgICAgICAgcmV0dXJuOwpAQCAtNTM4LDcgKzUzOCw3
IEBAIHZvaWQgQXBwbGljYXRpb25DYWNoZUdyb3VwOjpkaWRSZWNlaXZlUmVzcG9uc2UoUmVzb3Vy
Y2VIYW5kbGUqIGhhbmRsZSwgY29uc3QgUmVzCiAgICAgICAgIH0gZWxzZSBpZiAocmVzcG9uc2Uu
aHR0cFN0YXR1c0NvZGUoKSA9PSA0MDQgfHwgcmVzcG9uc2UuaHR0cFN0YXR1c0NvZGUoKSA9PSA0
MTApIHsKICAgICAgICAgICAgIC8vIFNraXAgdGhpcyByZXNvdXJjZS4gSXQgaXMgZHJvcHBlZCBm
cm9tIHRoZSBjYWNoZS4KICAgICAgICAgICAgIG1fY3VycmVudEhhbmRsZS0+Y2FuY2VsKCk7Ci0g
ICAgICAgICAgICBtX2N1cnJlbnRIYW5kbGUgPSAwOworICAgICAgICAgICAgbV9jdXJyZW50SGFu
ZGxlID0gbnVsbHB0cjsKICAgICAgICAgICAgIG1fcGVuZGluZ0VudHJpZXMucmVtb3ZlKHVybCk7
CiAgICAgICAgICAgICAvLyBMb2FkIHRoZSBuZXh0IHJlc291cmNlLCBpZiBhbnkuCiAgICAgICAg
ICAgICBzdGFydExvYWRpbmdFbnRyeSgpOwpAQCAtNTUxLDcgKzU1MSw3IEBAIHZvaWQgQXBwbGlj
YXRpb25DYWNoZUdyb3VwOjpkaWRSZWNlaXZlUmVzcG9uc2UoUmVzb3VyY2VIYW5kbGUqIGhhbmRs
ZSwgY29uc3QgUmVzCiAgICAgICAgICAgICBtX2NhY2hlQmVpbmdVcGRhdGVkLT5hZGRSZXNvdXJj
ZShBcHBsaWNhdGlvbkNhY2hlUmVzb3VyY2U6OmNyZWF0ZSh1cmwsIG5ld2VzdENhY2hlZFJlc291
cmNlLT5yZXNwb25zZSgpLCB0eXBlLCBuZXdlc3RDYWNoZWRSZXNvdXJjZS0+ZGF0YSgpLCBuZXdl
c3RDYWNoZWRSZXNvdXJjZS0+cGF0aCgpKSk7CiAgICAgICAgICAgICBtX3BlbmRpbmdFbnRyaWVz
LnJlbW92ZShtX2N1cnJlbnRIYW5kbGUtPmZpcnN0UmVxdWVzdCgpLnVybCgpKTsKICAgICAgICAg
ICAgIG1fY3VycmVudEhhbmRsZS0+Y2FuY2VsKCk7Ci0gICAgICAgICAgICBtX2N1cnJlbnRIYW5k
bGUgPSAwOworICAgICAgICAgICAgbV9jdXJyZW50SGFuZGxlID0gbnVsbHB0cjsKICAgICAgICAg
ICAgIC8vIExvYWQgdGhlIG5leHQgcmVzb3VyY2UsIGlmIGFueS4KICAgICAgICAgICAgIHN0YXJ0
TG9hZGluZ0VudHJ5KCk7CiAgICAgICAgIH0KQEAgLTU5NSw3ICs1OTUsNyBAQCB2b2lkIEFwcGxp
Y2F0aW9uQ2FjaGVHcm91cDo6ZGlkRmluaXNoTG9hZGluZyhSZXNvdXJjZUhhbmRsZSogaGFuZGxl
LCBkb3VibGUgZmluaQogICAgIEFTU0VSVChtX2NhY2hlQmVpbmdVcGRhdGVkKTsKIAogICAgIG1f
Y2FjaGVCZWluZ1VwZGF0ZWQtPmFkZFJlc291cmNlKG1fY3VycmVudFJlc291cmNlLnJlbGVhc2Uo
KSk7Ci0gICAgbV9jdXJyZW50SGFuZGxlID0gMDsKKyAgICBtX2N1cnJlbnRIYW5kbGUgPSBudWxs
cHRyOwogCiAgICAgLy8gV2hpbGUgZG93bmxvYWRpbmcgY2hlY2sgdG8gc2VlIGlmIHdlIGhhdmUg
ZXhjZWVkZWQgdGhlIGF2YWlsYWJsZSBxdW90YS4KICAgICAvLyBXZSBjYW4gc3RvcCBpbW1lZGlh
dGVseSBpZiB3ZSBoYXZlIGFscmVhZHkgcHJldmlvdXNseSBmYWlsZWQKQEAgLTYwMyw3ICs2MDMs
NyBAQCB2b2lkIEFwcGxpY2F0aW9uQ2FjaGVHcm91cDo6ZGlkRmluaXNoTG9hZGluZyhSZXNvdXJj
ZUhhbmRsZSogaGFuZGxlLCBkb3VibGUgZmluaQogICAgIC8vIG9mIHRoZSBxdW90YSBiZWluZyBy
ZWFjaGVkIGFuZCBkZWNpZGVkIG5vdCB0byBpbmNyZWFzZSBpdCB0aGVuLgogICAgIC8vIEZJWE1F
OiBTaG91bGQgd2UgYnJlYWsgZWFybGllciBhbmQgcHJldmVudCByZWRvd25sb2FkaW5nIG9uIGxh
dGVyIHBhZ2UgbG9hZHM/CiAgICAgaWYgKG1fb3JpZ2luUXVvdGFFeGNlZWRlZFByZXZpb3VzbHkg
JiYgbV9hdmFpbGFibGVTcGFjZUluUXVvdGEgPCBtX2NhY2hlQmVpbmdVcGRhdGVkLT5lc3RpbWF0
ZWRTaXplSW5TdG9yYWdlKCkpIHsKLSAgICAgICAgbV9jdXJyZW50UmVzb3VyY2UgPSAwOworICAg
ICAgICBtX2N1cnJlbnRSZXNvdXJjZSA9IG51bGxwdHI7CiAgICAgICAgIG1fZnJhbWUtPmRvY3Vt
ZW50KCktPmFkZENvbnNvbGVNZXNzYWdlKE1lc3NhZ2VTb3VyY2U6OkFwcENhY2hlLCBNZXNzYWdl
TGV2ZWw6OkVycm9yLCBBU0NJSUxpdGVyYWwoIkFwcGxpY2F0aW9uIENhY2hlIHVwZGF0ZSBmYWls
ZWQsIGJlY2F1c2Ugc2l6ZSBxdW90YSB3YXMgZXhjZWVkZWQuIikpOwogICAgICAgICBjYWNoZVVw
ZGF0ZUZhaWxlZCgpOwogICAgICAgICByZXR1cm47CkBAIC02MzEsNyArNjMxLDcgQEAgdm9pZCBB
cHBsaWNhdGlvbkNhY2hlR3JvdXA6OmRpZEZhaWwoUmVzb3VyY2VIYW5kbGUqIGhhbmRsZSwgY29u
c3QgUmVzb3VyY2VFcnJvciYKICAgICAgICAgdXJsLnJlbW92ZUZyYWdtZW50SWRlbnRpZmllcigp
OwogCiAgICAgQVNTRVJUKCFtX2N1cnJlbnRSZXNvdXJjZSB8fCAhbV9wZW5kaW5nRW50cmllcy5j
b250YWlucyh1cmwpKTsKLSAgICBtX2N1cnJlbnRSZXNvdXJjZSA9IDA7CisgICAgbV9jdXJyZW50
UmVzb3VyY2UgPSBudWxscHRyOwogICAgIG1fcGVuZGluZ0VudHJpZXMucmVtb3ZlKHVybCk7CiAK
ICAgICBpZiAoKHR5cGUgJiBBcHBsaWNhdGlvbkNhY2hlUmVzb3VyY2U6OkV4cGxpY2l0KSB8fCAo
dHlwZSAmIEFwcGxpY2F0aW9uQ2FjaGVSZXNvdXJjZTo6RmFsbGJhY2spKSB7CkBAIC02OTUsNyAr
Njk1LDcgQEAgdm9pZCBBcHBsaWNhdGlvbkNhY2hlR3JvdXA6OmRpZEZpbmlzaExvYWRpbmdNYW5p
ZmVzdCgpCiAgICAgICAgIHJldHVybjsKICAgICB9CiAKLSAgICBtX21hbmlmZXN0SGFuZGxlID0g
MDsKKyAgICBtX21hbmlmZXN0SGFuZGxlID0gbnVsbHB0cjsKIAogICAgIC8vIENoZWNrIGlmIHRo
ZSBtYW5pZmVzdCB3YXMgbm90IG1vZGlmaWVkLgogICAgIGlmIChpc1VwZ3JhZGVBdHRlbXB0KSB7
CkBAIC03MDYsNyArNzA2LDcgQEAgdm9pZCBBcHBsaWNhdGlvbkNhY2hlR3JvdXA6OmRpZEZpbmlz
aExvYWRpbmdNYW5pZmVzdCgpCiAgICAgICAgICAgICAobmV3ZXN0TWFuaWZlc3QtPmRhdGEoKS0+
c2l6ZSgpID09IG1fbWFuaWZlc3RSZXNvdXJjZS0+ZGF0YSgpLT5zaXplKCkgJiYgIW1lbWNtcChu
ZXdlc3RNYW5pZmVzdC0+ZGF0YSgpLT5kYXRhKCksIG1fbWFuaWZlc3RSZXNvdXJjZS0+ZGF0YSgp
LT5kYXRhKCksIG5ld2VzdE1hbmlmZXN0LT5kYXRhKCktPnNpemUoKSkpKSB7CiAKICAgICAgICAg
ICAgIG1fY29tcGxldGlvblR5cGUgPSBOb1VwZGF0ZTsKLSAgICAgICAgICAgIG1fbWFuaWZlc3RS
ZXNvdXJjZSA9IDA7CisgICAgICAgICAgICBtX21hbmlmZXN0UmVzb3VyY2UgPSBudWxscHRyOwog
ICAgICAgICAgICAgZGVsaXZlckRlbGF5ZWRNYWluUmVzb3VyY2VzKCk7CiAKICAgICAgICAgICAg
IHJldHVybjsKQEAgLTc4Miw3ICs3ODIsNyBAQCB2b2lkIEFwcGxpY2F0aW9uQ2FjaGVHcm91cDo6
ZGlkUmVhY2hPcmlnaW5RdW90YShpbnQ2NF90IHRvdGFsU3BhY2VOZWVkZWQpCiB2b2lkIEFwcGxp
Y2F0aW9uQ2FjaGVHcm91cDo6Y2FjaGVVcGRhdGVGYWlsZWQoKQogewogICAgIHN0b3BMb2FkaW5n
KCk7Ci0gICAgbV9tYW5pZmVzdFJlc291cmNlID0gMDsKKyAgICBtX21hbmlmZXN0UmVzb3VyY2Ug
PSBudWxscHRyOwogCiAgICAgLy8gV2FpdCBmb3IgbWFzdGVyIHJlc291cmNlIGxvYWRzIHRvIGZp
bmlzaC4KICAgICBtX2NvbXBsZXRpb25UeXBlID0gRmFpbHVyZTsKQEAgLTgwNyw3ICs4MDcsNyBA
QCB2b2lkIEFwcGxpY2F0aW9uQ2FjaGVHcm91cDo6bWFuaWZlc3ROb3RGb3VuZCgpCiAgICAgc3Rv
cExvYWRpbmcoKTsKIAogICAgIEFTU0VSVChtX3BlbmRpbmdFbnRyaWVzLmlzRW1wdHkoKSk7Ci0g
ICAgbV9tYW5pZmVzdFJlc291cmNlID0gMDsKKyAgICBtX21hbmlmZXN0UmVzb3VyY2UgPSBudWxs
cHRyOwogCiAgICAgd2hpbGUgKCFtX3BlbmRpbmdNYXN0ZXJSZXNvdXJjZUxvYWRlcnMuaXNFbXB0
eSgpKSB7CiAgICAgICAgIEhhc2hTZXQ8RG9jdW1lbnRMb2FkZXIqPjo6aXRlcmF0b3IgaXQgPSBt
X3BlbmRpbmdNYXN0ZXJSZXNvdXJjZUxvYWRlcnMuYmVnaW4oKTsKZGlmZiAtLWdpdCBhL1NvdXJj
ZS9XZWJDb3JlL2xvYWRlci9jYWNoZS9DYWNoZWRDU1NTdHlsZVNoZWV0LmNwcCBiL1NvdXJjZS9X
ZWJDb3JlL2xvYWRlci9jYWNoZS9DYWNoZWRDU1NTdHlsZVNoZWV0LmNwcAppbmRleCA3YzJmZTdk
ODkyNGY0ZjkwZWNkZDU4MjA2NmFmZTI3YzA5ZjMwOGMxLi42ZDExODgwMWFmODI2ODQ1ZmI2MTk5
MjcwNDRhZjliMmIyZDIzNmM0IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9sb2FkZXIvY2Fj
aGUvQ2FjaGVkQ1NTU3R5bGVTaGVldC5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvbG9hZGVyL2Nh
Y2hlL0NhY2hlZENTU1N0eWxlU2hlZXQuY3BwCkBAIC0xMzgsNyArMTM4LDcgQEAgdm9pZCBDYWNo
ZWRDU1NTdHlsZVNoZWV0OjpkZXN0cm95RGVjb2RlZERhdGEoKQogICAgICAgICByZXR1cm47CiAK
ICAgICBtX3BhcnNlZFN0eWxlU2hlZXRDYWNoZS0+cmVtb3ZlZEZyb21NZW1vcnlDYWNoZSgpOwot
ICAgIG1fcGFyc2VkU3R5bGVTaGVldENhY2hlLmNsZWFyKCk7CisgICAgbV9wYXJzZWRTdHlsZVNo
ZWV0Q2FjaGUgPSBudWxscHRyOwogCiAgICAgc2V0RGVjb2RlZFNpemUoMCk7CiB9CkBAIC0xNDYs
MTEgKzE0NiwxMSBAQCB2b2lkIENhY2hlZENTU1N0eWxlU2hlZXQ6OmRlc3Ryb3lEZWNvZGVkRGF0
YSgpCiBQYXNzUmVmUHRyPFN0eWxlU2hlZXRDb250ZW50cz4gQ2FjaGVkQ1NTU3R5bGVTaGVldDo6
cmVzdG9yZVBhcnNlZFN0eWxlU2hlZXQoY29uc3QgQ1NTUGFyc2VyQ29udGV4dCYgY29udGV4dCwg
Q2FjaGVQb2xpY3kgY2FjaGVQb2xpY3kpCiB7CiAgICAgaWYgKCFtX3BhcnNlZFN0eWxlU2hlZXRD
YWNoZSkKLSAgICAgICAgcmV0dXJuIDA7CisgICAgICAgIHJldHVybiBudWxscHRyOwogICAgIGlm
ICghbV9wYXJzZWRTdHlsZVNoZWV0Q2FjaGUtPnN1YnJlc291cmNlc0FsbG93UmV1c2UoY2FjaGVQ
b2xpY3kpKSB7CiAgICAgICAgIG1fcGFyc2VkU3R5bGVTaGVldENhY2hlLT5yZW1vdmVkRnJvbU1l
bW9yeUNhY2hlKCk7Ci0gICAgICAgIG1fcGFyc2VkU3R5bGVTaGVldENhY2hlLmNsZWFyKCk7Ci0g
ICAgICAgIHJldHVybiAwOworICAgICAgICBtX3BhcnNlZFN0eWxlU2hlZXRDYWNoZSA9IG51bGxw
dHI7CisgICAgICAgIHJldHVybiBudWxscHRyOwogICAgIH0KIAogICAgIEFTU0VSVChtX3BhcnNl
ZFN0eWxlU2hlZXRDYWNoZS0+aXNDYWNoZWFibGUoKSk7CkBAIC0xNTgsNyArMTU4LDcgQEAgUGFz
c1JlZlB0cjxTdHlsZVNoZWV0Q29udGVudHM+IENhY2hlZENTU1N0eWxlU2hlZXQ6OnJlc3RvcmVQ
YXJzZWRTdHlsZVNoZWV0KGNvbnMKIAogICAgIC8vIENvbnRleHRzIG11c3QgYmUgaWRlbnRpY2Fs
IHNvIHdlIGtub3cgd2Ugd291bGQgZ2V0IHRoZSBzYW1lIGV4YWN0IHJlc3VsdCBpZiB3ZSBwYXJz
ZWQgYWdhaW4uCiAgICAgaWYgKG1fcGFyc2VkU3R5bGVTaGVldENhY2hlLT5wYXJzZXJDb250ZXh0
KCkgIT0gY29udGV4dCkKLSAgICAgICAgcmV0dXJuIDA7CisgICAgICAgIHJldHVybiBudWxscHRy
OwogCiAgICAgZGlkQWNjZXNzRGVjb2RlZERhdGEobW9ub3RvbmljYWxseUluY3JlYXNpbmdUaW1l
KCkpOwogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9sb2FkZXIvY2FjaGUvQ2FjaGVkSW1h
Z2UuY3BwIGIvU291cmNlL1dlYkNvcmUvbG9hZGVyL2NhY2hlL0NhY2hlZEltYWdlLmNwcAppbmRl
eCA1Mjc2OWRiOTZjZTE3ZGVhZDcyMDQxYTc2ODFiYTZmMmEwYWQ1OTg5Li5kZjMzNjc1YzYzYjVk
YjRhZjAzZTMyOTM3YzkxYTlkNzM0MDRhNzBhIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9s
b2FkZXIvY2FjaGUvQ2FjaGVkSW1hZ2UuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2xvYWRlci9j
YWNoZS9DYWNoZWRJbWFnZS5jcHAKQEAgLTM2NSw4ICszNjUsOCBAQCBpbmxpbmUgdm9pZCBDYWNo
ZWRJbWFnZTo6Y2xlYXJJbWFnZSgpCiAgICAgLy8gSWYgb3VyIEltYWdlIGhhcyBhbiBvYnNlcnZl
ciwgaXQncyBhbHdheXMgdXMgc28gd2UgbmVlZCB0byBjbGVhciB0aGUgYmFjayBwb2ludGVyCiAg
ICAgLy8gYmVmb3JlIGRyb3BwaW5nIG91ciByZWZlcmVuY2UuCiAgICAgaWYgKG1faW1hZ2UpCi0g
ICAgICAgIG1faW1hZ2UtPnNldEltYWdlT2JzZXJ2ZXIoMCk7Ci0gICAgbV9pbWFnZS5jbGVhcigp
OworICAgICAgICBtX2ltYWdlLT5zZXRJbWFnZU9ic2VydmVyKG51bGxwdHIpOworICAgIG1faW1h
Z2UgPSBudWxscHRyOwogfQogCiB2b2lkIENhY2hlZEltYWdlOjphZGRJbmNyZW1lbnRhbERhdGFC
dWZmZXIoU2hhcmVkQnVmZmVyJiBkYXRhKQpAQCAtNDU4LDcgKzQ1OCw3IEBAIHZvaWQgQ2FjaGVk
SW1hZ2U6OmRlc3Ryb3lEZWNvZGVkRGF0YSgpCiB7CiAgICAgYm9vbCBjYW5EZWxldGVJbWFnZSA9
ICFtX2ltYWdlIHx8IChtX2ltYWdlLT5oYXNPbmVSZWYoKSAmJiBtX2ltYWdlLT5pc0JpdG1hcElt
YWdlKCkpOwogICAgIGlmIChjYW5EZWxldGVJbWFnZSAmJiAhaXNMb2FkaW5nKCkgJiYgIWhhc0Ns
aWVudHMoKSkgewotICAgICAgICBtX2ltYWdlID0gMDsKKyAgICAgICAgbV9pbWFnZSA9IG51bGxw
dHI7CiAgICAgICAgIHNldERlY29kZWRTaXplKDApOwogICAgIH0gZWxzZSBpZiAobV9pbWFnZSAm
JiAhZXJyb3JPY2N1cnJlZCgpKQogICAgICAgICBtX2ltYWdlLT5kZXN0cm95RGVjb2RlZERhdGEo
KTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2xvYWRlci9jYWNoZS9DYWNoZWRSYXdSZXNv
dXJjZS5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9sb2FkZXIvY2FjaGUvQ2FjaGVkUmF3UmVzb3VyY2Uu
Y3BwCmluZGV4IDNjMWIyOTU1NGIxOWMwNWUyZmU5MWViMDdlMGU1NTJjMmY5OGE4ZjQuLjU0YmJk
ZTFhYzhlYzg3MTQ4YTk1M2QzZGQ3NzgyYTdiM2UzMjQ1NjUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9X
ZWJDb3JlL2xvYWRlci9jYWNoZS9DYWNoZWRSYXdSZXNvdXJjZS5jcHAKKysrIGIvU291cmNlL1dl
YkNvcmUvbG9hZGVyL2NhY2hlL0NhY2hlZFJhd1Jlc291cmNlLmNwcApAQCAtMjY4LDcgKzI2OCw3
IEBAIGJvb2wgQ2FjaGVkUmF3UmVzb3VyY2U6OmNhblJldXNlKGNvbnN0IFJlc291cmNlUmVxdWVz
dCYgbmV3UmVxdWVzdCkgY29uc3QKIAogdm9pZCBDYWNoZWRSYXdSZXNvdXJjZTo6Y2xlYXIoKQog
ewotICAgIG1fZGF0YS5jbGVhcigpOworICAgIG1fZGF0YSA9IG51bGxwdHI7CiAgICAgc2V0RW5j
b2RlZFNpemUoMCk7CiAgICAgaWYgKG1fbG9hZGVyKQogICAgICAgICBtX2xvYWRlci0+Y2xlYXJS
ZXNvdXJjZURhdGEoKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2xvYWRlci9jYWNoZS9D
YWNoZWRSZXNvdXJjZS5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9sb2FkZXIvY2FjaGUvQ2FjaGVkUmVz
b3VyY2UuY3BwCmluZGV4IGY0NDMxYmYzZGRhZmNkMmZiNzAzODM3YzZmN2NjZDAxMzA3NTExZjAu
LjNiZWYyMWU4ZDk4OTg4YTAzOGRlYjdlMTBlMGVmNGUzY2VmNDNhNmIgMTAwNjQ0Ci0tLSBhL1Nv
dXJjZS9XZWJDb3JlL2xvYWRlci9jYWNoZS9DYWNoZWRSZXNvdXJjZS5jcHAKKysrIGIvU291cmNl
L1dlYkNvcmUvbG9hZGVyL2NhY2hlL0NhY2hlZFJlc291cmNlLmNwcApAQCAtMzE3LDcgKzMxNyw3
IEBAIHZvaWQgQ2FjaGVkUmVzb3VyY2U6OmVycm9yKENhY2hlZFJlc291cmNlOjpTdGF0dXMgc3Rh
dHVzKQogewogICAgIHNldFN0YXR1cyhzdGF0dXMpOwogICAgIEFTU0VSVChlcnJvck9jY3VycmVk
KCkpOwotICAgIG1fZGF0YS5jbGVhcigpOworICAgIG1fZGF0YSA9IG51bGxwdHI7CiAKICAgICBz
ZXRMb2FkaW5nKGZhbHNlKTsKICAgICBjaGVja05vdGlmeSgpOwpkaWZmIC0tZ2l0IGEvU291cmNl
L1dlYkNvcmUvbG9hZGVyL2ljb24vSWNvblJlY29yZC5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9sb2Fk
ZXIvaWNvbi9JY29uUmVjb3JkLmNwcAppbmRleCBkNGJjMGQxYTE5ZjM3MDYyYmY3Y2E1OGVkYzY0
MmJmZWU2MjA1YTg4Li5lN2YxZDRiMjMzNDYxMDY5NGRkMzFlZTdlYzQ0MDQ3ZjgzNzNiNzY1IDEw
MDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9sb2FkZXIvaWNvbi9JY29uUmVjb3JkLmNwcAorKysg
Yi9Tb3VyY2UvV2ViQ29yZS9sb2FkZXIvaWNvbi9JY29uUmVjb3JkLmNwcApAQCAtNzEsNyArNzEs
NyBAQCB2b2lkIEljb25SZWNvcmQ6OnNldEltYWdlRGF0YShQYXNzUmVmUHRyPFNoYXJlZEJ1ZmZl
cj4gZGF0YSkKICAgICAvLyBDb3B5IHRoZSBwcm92aWRlZCBkYXRhIGludG8gdGhlIGJ1ZmZlciBv
ZiB0aGUgbmV3IEltYWdlIG9iamVjdC4KICAgICBpZiAoIW1faW1hZ2UtPnNldERhdGEoZGF0YSwg
dHJ1ZSkpIHsKICAgICAgICAgTE9HKEljb25EYXRhYmFzZSwgIk1hbnVhbCBpbWFnZSBkYXRhIGZv
ciBpY29uVVJMICclcycgRkFJTEVEIC0gaXQgd2FzIHByb2JhYmx5IGludmFsaWQgaW1hZ2UgZGF0
YSIsIG1faWNvblVSTC5hc2NpaSgpLmRhdGEoKSk7Ci0gICAgICAgIG1faW1hZ2UuY2xlYXIoKTsK
KyAgICAgICAgbV9pbWFnZSA9IG51bGxwdHI7CiAgICAgfQogICAgIAogICAgIG1fZGF0YVNldCA9
IHRydWU7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wYWdlL0V2ZW50SGFuZGxlci5jcHAg
Yi9Tb3VyY2UvV2ViQ29yZS9wYWdlL0V2ZW50SGFuZGxlci5jcHAKaW5kZXggNjU0YTRmZWM3NzM3
OTcyM2Q3YjYxZjM2MTY3YWJhMjVlODk0NTA5Yy4uM2FhNjZkOWJjODE0ZWMzYmZkYmQzNGM5ZDc1
ZTNlNzM1NjExNTRlMyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGFnZS9FdmVudEhhbmRs
ZXIuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BhZ2UvRXZlbnRIYW5kbGVyLmNwcApAQCAtNDg1
LDcgKzQ4NSw3IEBAIHZvaWQgRXZlbnRIYW5kbGVyOjpjbGVhcigpCiAgICAgbV9tb3VzZVBvc2l0
aW9uSXNVbmtub3duID0gdHJ1ZTsKICAgICBtX2xhc3RLbm93bk1vdXNlUG9zaXRpb24gPSBJbnRQ
b2ludCgpOwogICAgIG1fbGFzdEtub3duTW91c2VHbG9iYWxQb3NpdGlvbiA9IEludFBvaW50KCk7
Ci0gICAgbV9tb3VzZVByZXNzTm9kZSA9IDA7CisgICAgbV9tb3VzZVByZXNzTm9kZSA9IG51bGxw
dHI7CiAgICAgbV9tb3VzZVByZXNzZWQgPSBmYWxzZTsKICAgICBtX2NhcHR1cmVzRHJhZ2dpbmcg
PSBmYWxzZTsKICAgICBtX2NhcHR1cmluZ01vdXNlRXZlbnRzRWxlbWVudCA9IG51bGxwdHI7CkBA
IC00OTQsNyArNDk0LDcgQEAgdm9pZCBFdmVudEhhbmRsZXI6OmNsZWFyKCkKICNlbmRpZgogI2lm
IEVOQUJMRShUT1VDSF9FVkVOVFMpICYmICFFTkFCTEUoSU9TX1RPVUNIX0VWRU5UUykKICAgICBt
X29yaWdpbmF0aW5nVG91Y2hQb2ludFRhcmdldHMuY2xlYXIoKTsKLSAgICBtX29yaWdpbmF0aW5n
VG91Y2hQb2ludERvY3VtZW50LmNsZWFyKCk7CisgICAgbV9vcmlnaW5hdGluZ1RvdWNoUG9pbnRE
b2N1bWVudCA9IG51bGxwdHI7CiAgICAgbV9vcmlnaW5hdGluZ1RvdWNoUG9pbnRUYXJnZXRLZXkg
PSAwOwogI2VuZGlmCiAgICAgbV9tYXhNb3VzZU1vdmVkRHVyYXRpb24gPSAwOwpAQCAtMzk5NCw3
ICszOTk0LDcgQEAgYm9vbCBFdmVudEhhbmRsZXI6OmhhbmRsZVRvdWNoRXZlbnQoY29uc3QgUGxh
dGZvcm1Ub3VjaEV2ZW50JiBldmVudCkKICAgICB9CiAgICAgbV90b3VjaFByZXNzZWQgPSB0b3Vj
aGVzLT5sZW5ndGgoKSA+IDA7CiAgICAgaWYgKGFsbFRvdWNoUmVsZWFzZWQpCi0gICAgICAgIG1f
b3JpZ2luYXRpbmdUb3VjaFBvaW50RG9jdW1lbnQuY2xlYXIoKTsKKyAgICAgICAgbV9vcmlnaW5h
dGluZ1RvdWNoUG9pbnREb2N1bWVudCA9IG51bGxwdHI7CiAKICAgICAvLyBOb3cgaXRlcmF0ZSB0
aGUgY2hhbmdlZFRvdWNoZXMgbGlzdCBhbmQgbV90YXJnZXRzIHdpdGhpbiBpdCwgc2VuZGluZyBl
dmVudHMgdG8gdGhlIHRhcmdldHMgYXMgcmVxdWlyZWQuCiAgICAgYm9vbCBzd2FsbG93ZWRFdmVu
dCA9IGZhbHNlOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGFnZS9QYWdlLmNwcCBiL1Nv
dXJjZS9XZWJDb3JlL3BhZ2UvUGFnZS5jcHAKaW5kZXggMWQzZGNjMmI1NjM5NjIxNGU5ZjgwZjcy
YzhlMzNlYTE4OWI5M2FkMi4uZjg2ZDgxZmQwNTMwYTAzYzYyNjIyMTE2YzkwYmZlOTA1NjcxNjdi
MCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGFnZS9QYWdlLmNwcAorKysgYi9Tb3VyY2Uv
V2ViQ29yZS9wYWdlL1BhZ2UuY3BwCkBAIC01MTYsNyArNTE2LDcgQEAgdm9pZCBQYWdlOjpyZWZy
ZXNoUGx1Z2lucyhib29sIHJlbG9hZCkKICAgICBWZWN0b3I8UmVmPEZyYW1lPj4gZnJhbWVzTmVl
ZGluZ1JlbG9hZDsKIAogICAgIGZvciAoYXV0byYgcGFnZSA6ICphbGxQYWdlcykgewotICAgICAg
ICBwYWdlLT5tX3BsdWdpbkRhdGEuY2xlYXIoKTsKKyAgICAgICAgcGFnZS0+bV9wbHVnaW5EYXRh
ID0gbnVsbHB0cjsKIAogICAgICAgICBpZiAoIXJlbG9hZCkKICAgICAgICAgICAgIGNvbnRpbnVl
OwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vYXVkaW8vbWFjL0NBUmluZ0J1
ZmZlci5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9hdWRpby9tYWMvQ0FSaW5nQnVmZmVy
LmNwcAppbmRleCBmNzZlOGRmOTA2YjVhNjFlNTdjNzc1YzRjZTZkMmNjNDRiYzhhYTUyLi4wNTQ0
MmFkYzQ1ZTk3Nzg5OTMxNTIwNWMzNzJlNjE5NjAxMjc5ZDM3IDEwMDY0NAotLS0gYS9Tb3VyY2Uv
V2ViQ29yZS9wbGF0Zm9ybS9hdWRpby9tYWMvQ0FSaW5nQnVmZmVyLmNwcAorKysgYi9Tb3VyY2Uv
V2ViQ29yZS9wbGF0Zm9ybS9hdWRpby9tYWMvQ0FSaW5nQnVmZmVyLmNwcApAQCAtODYsNyArODYs
NyBAQCB2b2lkIENBUmluZ0J1ZmZlcjo6YWxsb2NhdGUodWludDMyX3QgY2hhbm5lbENvdW50LCBz
aXplX3QgYnl0ZXNQZXJGcmFtZSwgc2l6ZV90CiB2b2lkIENBUmluZ0J1ZmZlcjo6ZGVhbGxvY2F0
ZSgpCiB7CiAgICAgaWYgKG1fYnVmZmVycykKLSAgICAgICAgbV9idWZmZXJzLmNsZWFyKCk7Cisg
ICAgICAgIG1fYnVmZmVycyA9IG51bGxwdHI7CiAKICAgICBtX2NoYW5uZWxDb3VudCA9IDA7CiAg
ICAgbV9jYXBhY2l0eUJ5dGVzID0gMDsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRm
b3JtL2dyYXBoaWNzL0ZvbnQuY3BwIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3Mv
Rm9udC5jcHAKaW5kZXggNjAzZWJhODFmMDEwZmVmMGIwOWVhOTQ3YWU4ODZhNTE5OThiNWFjYy4u
ZDkyNjViNThkMmJlMjRhZDcxNDczYWJhNWIyM2I1MjZkMDkxMzcyZSAxMDA2NDQKLS0tIGEvU291
cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvRm9udC5jcHAKKysrIGIvU291cmNlL1dlYkNv
cmUvcGxhdGZvcm0vZ3JhcGhpY3MvRm9udC5jcHAKQEAgLTM2Myw3ICszNjMsNyBAQCBjb25zdCBP
cGVuVHlwZU1hdGhEYXRhKiBGb250OjptYXRoRGF0YSgpIGNvbnN0CiAgICAgaWYgKCFtX21hdGhE
YXRhKSB7CiAgICAgICAgIG1fbWF0aERhdGEgPSBPcGVuVHlwZU1hdGhEYXRhOjpjcmVhdGUobV9w
bGF0Zm9ybURhdGEpOwogICAgICAgICBpZiAoIW1fbWF0aERhdGEtPmhhc01hdGhEYXRhKCkpCi0g
ICAgICAgICAgICBtX21hdGhEYXRhLmNsZWFyKCk7CisgICAgICAgICAgICBtX21hdGhEYXRhID0g
bnVsbHB0cjsKICAgICB9CiAgICAgcmV0dXJuIG1fbWF0aERhdGEuZ2V0KCk7CiB9CmRpZmYgLS1n
aXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9Gb250Q2FjaGUuY3BwIGIvU291
cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvRm9udENhY2hlLmNwcAppbmRleCBhNmM0MDQ5
OTQ4Y2YzNjMyMWI3M2RkNTExYjkxOGEyYThhYWUwNDVjLi44ZDFhODM1OWQ2OWNiNzBlNGMyMGI1
ZWE4MzI4NzY1YTZiY2Q0NjM0IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9n
cmFwaGljcy9Gb250Q2FjaGUuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBo
aWNzL0ZvbnRDYWNoZS5jcHAKQEAgLTMyMCw3ICszMjAsNyBAQCBQYXNzUmVmUHRyPE9wZW5UeXBl
VmVydGljYWxEYXRhPiBGb250Q2FjaGU6OmdldFZlcnRpY2FsRGF0YShjb25zdCBGb250RmlsZUtl
eSYgawogCiAgICAgUmVmUHRyPE9wZW5UeXBlVmVydGljYWxEYXRhPiB2ZXJ0aWNhbERhdGEgPSBP
cGVuVHlwZVZlcnRpY2FsRGF0YTo6Y3JlYXRlKHBsYXRmb3JtRGF0YSk7CiAgICAgaWYgKCF2ZXJ0
aWNhbERhdGEtPmlzT3BlblR5cGUoKSkKLSAgICAgICAgdmVydGljYWxEYXRhLmNsZWFyKCk7Cisg
ICAgICAgIHZlcnRpY2FsRGF0YSA9IG51bGxwdHI7CiAgICAgZm9udFZlcnRpY2FsRGF0YUNhY2hl
LnNldChrZXksIHZlcnRpY2FsRGF0YSk7CiAgICAgcmV0dXJuIHZlcnRpY2FsRGF0YTsKIH0KZGlm
ZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL0dyYXBoaWNzQ29udGV4
dC5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9HcmFwaGljc0NvbnRleHQu
Y3BwCmluZGV4IGQzOGMxZmFmNzc1MjU4MzNmMzdlM2NiNjE3OGJiNGM2ZjY3Y2MzOTkuLmU2YjM3
ZmRlNWY5NWVjMDJjMmY3ZDY4YTYxZjQwZjQ3YTc3ZjI3MzEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9X
ZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL0dyYXBoaWNzQ29udGV4dC5jcHAKKysrIGIvU291cmNl
L1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvR3JhcGhpY3NDb250ZXh0LmNwcApAQCAtMTc4LDgg
KzE3OCw4IEBAIHZvaWQgR3JhcGhpY3NDb250ZXh0OjpzZXRTdHJva2VDb2xvcihjb25zdCBDb2xv
ciYgY29sb3IsIENvbG9yU3BhY2UgY29sb3JTcGFjZSkKIHsKICAgICBtX3N0YXRlLnN0cm9rZUNv
bG9yID0gY29sb3I7CiAgICAgbV9zdGF0ZS5zdHJva2VDb2xvclNwYWNlID0gY29sb3JTcGFjZTsK
LSAgICBtX3N0YXRlLnN0cm9rZUdyYWRpZW50LmNsZWFyKCk7Ci0gICAgbV9zdGF0ZS5zdHJva2VQ
YXR0ZXJuLmNsZWFyKCk7CisgICAgbV9zdGF0ZS5zdHJva2VHcmFkaWVudCA9IG51bGxwdHI7Cisg
ICAgbV9zdGF0ZS5zdHJva2VQYXR0ZXJuID0gbnVsbHB0cjsKICAgICBzZXRQbGF0Zm9ybVN0cm9r
ZUNvbG9yKGNvbG9yLCBjb2xvclNwYWNlKTsKIH0KIApAQCAtMjQ1LDggKzI0NSw4IEBAIHZvaWQg
R3JhcGhpY3NDb250ZXh0OjpzZXRGaWxsQ29sb3IoY29uc3QgQ29sb3ImIGNvbG9yLCBDb2xvclNw
YWNlIGNvbG9yU3BhY2UpCiB7CiAgICAgbV9zdGF0ZS5maWxsQ29sb3IgPSBjb2xvcjsKICAgICBt
X3N0YXRlLmZpbGxDb2xvclNwYWNlID0gY29sb3JTcGFjZTsKLSAgICBtX3N0YXRlLmZpbGxHcmFk
aWVudC5jbGVhcigpOwotICAgIG1fc3RhdGUuZmlsbFBhdHRlcm4uY2xlYXIoKTsKKyAgICBtX3N0
YXRlLmZpbGxHcmFkaWVudCA9IG51bGxwdHI7CisgICAgbV9zdGF0ZS5maWxsUGF0dGVybiA9IG51
bGxwdHI7CiAgICAgc2V0UGxhdGZvcm1GaWxsQ29sb3IoY29sb3IsIGNvbG9yU3BhY2UpOwogfQog
CkBAIC0yNjksMjYgKzI2OSwyNiBAQCB2b2lkIEdyYXBoaWNzQ29udGV4dDo6c2V0QW50aWFsaWFz
ZWRGb250RGlsYXRpb25FbmFibGVkKGJvb2wgYW50aWFsaWFzZWRGb250RGlsYQogCiB2b2lkIEdy
YXBoaWNzQ29udGV4dDo6c2V0U3Ryb2tlUGF0dGVybihSZWY8UGF0dGVybj4mJiBwYXR0ZXJuKQog
ewotICAgIG1fc3RhdGUuc3Ryb2tlR3JhZGllbnQuY2xlYXIoKTsKKyAgICBtX3N0YXRlLnN0cm9r
ZUdyYWRpZW50ID0gbnVsbHB0cjsKICAgICBtX3N0YXRlLnN0cm9rZVBhdHRlcm4gPSBXVEY6Om1v
dmUocGF0dGVybik7CiB9CiAKIHZvaWQgR3JhcGhpY3NDb250ZXh0OjpzZXRGaWxsUGF0dGVybihS
ZWY8UGF0dGVybj4mJiBwYXR0ZXJuKQogewotICAgIG1fc3RhdGUuZmlsbEdyYWRpZW50LmNsZWFy
KCk7CisgICAgbV9zdGF0ZS5maWxsR3JhZGllbnQgPSBudWxscHRyOwogICAgIG1fc3RhdGUuZmls
bFBhdHRlcm4gPSBXVEY6Om1vdmUocGF0dGVybik7CiB9CiAKIHZvaWQgR3JhcGhpY3NDb250ZXh0
OjpzZXRTdHJva2VHcmFkaWVudChSZWY8R3JhZGllbnQ+JiYgZ3JhZGllbnQpCiB7CiAgICAgbV9z
dGF0ZS5zdHJva2VHcmFkaWVudCA9IFdURjo6bW92ZShncmFkaWVudCk7Ci0gICAgbV9zdGF0ZS5z
dHJva2VQYXR0ZXJuLmNsZWFyKCk7CisgICAgbV9zdGF0ZS5zdHJva2VQYXR0ZXJuID0gbnVsbHB0
cjsKIH0KIAogdm9pZCBHcmFwaGljc0NvbnRleHQ6OnNldEZpbGxHcmFkaWVudChSZWY8R3JhZGll
bnQ+JiYgZ3JhZGllbnQpCiB7CiAgICAgbV9zdGF0ZS5maWxsR3JhZGllbnQgPSBXVEY6Om1vdmUo
Z3JhZGllbnQpOwotICAgIG1fc3RhdGUuZmlsbFBhdHRlcm4uY2xlYXIoKTsKKyAgICBtX3N0YXRl
LmZpbGxQYXR0ZXJuID0gbnVsbHB0cjsKIH0KIAogdm9pZCBHcmFwaGljc0NvbnRleHQ6OmJlZ2lu
VHJhbnNwYXJlbmN5TGF5ZXIoZmxvYXQgb3BhY2l0eSkKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJD
b3JlL3BsYXRmb3JtL2dyYXBoaWNzL01lZGlhUGxheWVyLmNwcCBiL1NvdXJjZS9XZWJDb3JlL3Bs
YXRmb3JtL2dyYXBoaWNzL01lZGlhUGxheWVyLmNwcAppbmRleCAyOTRhNzZkOWY4NmVmMmU3NzUw
ZDM2YTgzYTk4N2Q3NjBkNDBiMWQyLi4wMTI3OTVlNDY1YmVhMDRkMGY4N2U3Mjc3ZTc0ZTBmZTVi
NTg3MmIxIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9NZWRp
YVBsYXllci5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvTWVkaWFQ
bGF5ZXIuY3BwCkBAIC0zMTQsMTAgKzMxNCwxMCBAQCBib29sIE1lZGlhUGxheWVyOjpsb2FkKGNv
bnN0IFVSTCYgdXJsLCBjb25zdCBDb250ZW50VHlwZSYgY29udGVudFR5cGUsIGNvbnN0IFN0cgog
ICAgIG1fY29udGVudE1JTUVUeXBlV2FzSW5mZXJyZWRGcm9tRXh0ZW5zaW9uID0gZmFsc2U7CiAK
ICNpZiBFTkFCTEUoTUVESUFfU09VUkNFKQotICAgIG1fbWVkaWFTb3VyY2UgPSAwOworICAgIG1f
bWVkaWFTb3VyY2UgPSBudWxscHRyOwogI2VuZGlmCiAjaWYgRU5BQkxFKE1FRElBX1NUUkVBTSkK
LSAgICBtX21lZGlhU3RyZWFtID0gMDsKKyAgICBtX21lZGlhU3RyZWFtID0gbnVsbHB0cjsKICNl
bmRpZgogCiAgICAgLy8gSWYgdGhlIE1JTUUgdHlwZSBpcyBtaXNzaW5nIG9yIGlzIG5vdCBtZWFu
aW5nZnVsLCB0cnkgdG8gZmlndXJlIGl0IG91dCBmcm9tIHRoZSBVUkwuCmRpZmYgLS1naXQgYS9T
b3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9jYS9HcmFwaGljc0xheWVyQ0EuY3BwIGIv
U291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvY2EvR3JhcGhpY3NMYXllckNBLmNwcApp
bmRleCA4MmMwNzY5MTI3YmY5ZTUxNjlkYWU0OGRmYjRiMjg5MDJmZTkwNmMwLi4zNGY0Y2UxMDNh
OTM2ZTNhMDExYjg1Y2ZiNGRmZWVjZDYxNTJjOGU4IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29y
ZS9wbGF0Zm9ybS9ncmFwaGljcy9jYS9HcmFwaGljc0xheWVyQ0EuY3BwCisrKyBiL1NvdXJjZS9X
ZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2NhL0dyYXBoaWNzTGF5ZXJDQS5jcHAKQEAgLTIyMDgs
NyArMjIwOCw3IEBAIHZvaWQgR3JhcGhpY3NMYXllckNBOjp1cGRhdGVDb250ZW50c0ltYWdlKCkK
ICAgICB9IGVsc2UgewogICAgICAgICAvLyBObyBpbWFnZS4KICAgICAgICAgLy8gbV9jb250ZW50
c0xheWVyIHdpbGwgYmUgcmVtb3ZlZCB2aWEgdXBkYXRlU3VibGF5ZXJMaXN0LgotICAgICAgICBt
X2NvbnRlbnRzTGF5ZXIgPSAwOworICAgICAgICBtX2NvbnRlbnRzTGF5ZXIgPSBudWxscHRyOwog
ICAgIH0KIH0KIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3Mv
Y2Fpcm8vQmFja2luZ1N0b3JlQmFja2VuZENhaXJvWDExLmNwcCBiL1NvdXJjZS9XZWJDb3JlL3Bs
YXRmb3JtL2dyYXBoaWNzL2NhaXJvL0JhY2tpbmdTdG9yZUJhY2tlbmRDYWlyb1gxMS5jcHAKaW5k
ZXggN2I4NjMxYWYwYTlkOGY0YWU5MDYzYjI3OWU0MGNlZTM0NTQ5Y2ZhNC4uNDM3ZGFmYzgyZmQy
MmVjYmYwNjA0N2EzYzI4Njg5ZWJlMDIyMzZkMiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUv
cGxhdGZvcm0vZ3JhcGhpY3MvY2Fpcm8vQmFja2luZ1N0b3JlQmFja2VuZENhaXJvWDExLmNwcAor
KysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9jYWlyby9CYWNraW5nU3RvcmVC
YWNrZW5kQ2Fpcm9YMTEuY3BwCkBAIC00Myw3ICs0Myw3IEBAIEJhY2tpbmdTdG9yZUJhY2tlbmRD
YWlyb1gxMTo6QmFja2luZ1N0b3JlQmFja2VuZENhaXJvWDExKHVuc2lnbmVkIGxvbmcgcm9vdFdp
bmRvCiBCYWNraW5nU3RvcmVCYWNrZW5kQ2Fpcm9YMTE6On5CYWNraW5nU3RvcmVCYWNrZW5kQ2Fp
cm9YMTEoKQogewogICAgIC8vIFRoZSBwaXhtYXAgbmVlZHMgdG8gZXhpc3Qgd2hlbiB0aGUgc3Vy
ZmFjZSBpcyBkZXN0cm95ZWQsIHNvIGJlZ2luIGJ5IGNsZWFyaW5nIGl0LgotICAgIG1fc3VyZmFj
ZS5jbGVhcigpOworICAgIG1fc3VyZmFjZSA9IG51bGxwdHI7CiB9CiAKIHZvaWQgQmFja2luZ1N0
b3JlQmFja2VuZENhaXJvWDExOjpzY3JvbGwoY29uc3QgSW50UmVjdCYgc2Nyb2xsUmVjdCwgY29u
c3QgSW50U2l6ZSYgc2Nyb2xsT2Zmc2V0KQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxh
dGZvcm0vZ3JhcGhpY3MvY2Fpcm8vQml0bWFwSW1hZ2VDYWlyby5jcHAgYi9Tb3VyY2UvV2ViQ29y
ZS9wbGF0Zm9ybS9ncmFwaGljcy9jYWlyby9CaXRtYXBJbWFnZUNhaXJvLmNwcAppbmRleCAyNmRm
NWRmM2FiYTQ5MDc2MDEyNzg5YzI2NmZhOTYwMjc3NWJlMmRlLi5mMGQzYTdhNzJkYjkyZmRlMWQx
YjVmOTkzOGIzYzBjMWU3YWQ2MWYxIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9y
bS9ncmFwaGljcy9jYWlyby9CaXRtYXBJbWFnZUNhaXJvLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29y
ZS9wbGF0Zm9ybS9ncmFwaGljcy9jYWlyby9CaXRtYXBJbWFnZUNhaXJvLmNwcApAQCAtMTU5LDcg
KzE1OSw3IEBAIGJvb2wgRnJhbWVEYXRhOjpjbGVhcihib29sIGNsZWFyTWV0YWRhdGEpCiAgICAg
ICAgIG1faGF2ZU1ldGFkYXRhID0gZmFsc2U7CiAKICAgICBpZiAobV9mcmFtZSkgewotICAgICAg
ICBtX2ZyYW1lLmNsZWFyKCk7CisgICAgICAgIG1fZnJhbWUgPSBudWxscHRyOwogICAgICAgICBy
ZXR1cm4gdHJ1ZTsKICAgICB9CiAgICAgcmV0dXJuIGZhbHNlOwpkaWZmIC0tZ2l0IGEvU291cmNl
L1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvZmlsdGVycy9GaWx0ZXJFZmZlY3QuY3BwIGIvU291
cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvZmlsdGVycy9GaWx0ZXJFZmZlY3QuY3BwCmlu
ZGV4IDc2MjcwMDgwMzBkN2VmYWU2ZTA4MGU2ODc1OGRjMTYwZWFjMmMwYjkuLmM5OGQ1Yjk4NWFm
M2JiMWU1YjBjMGMyMjZiYjQ1ZmM2MDU0ZjQzM2MgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3Jl
L3BsYXRmb3JtL2dyYXBoaWNzL2ZpbHRlcnMvRmlsdGVyRWZmZWN0LmNwcAorKysgYi9Tb3VyY2Uv
V2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9maWx0ZXJzL0ZpbHRlckVmZmVjdC5jcHAKQEAgLTI0
NSwxMiArMjQ1LDEyIEBAIHZvaWQgRmlsdGVyRWZmZWN0OjpjbGVhclJlc3VsdCgpCiAgICAgaWYg
KG1faW1hZ2VCdWZmZXJSZXN1bHQpCiAgICAgICAgIG1faW1hZ2VCdWZmZXJSZXN1bHQucmVzZXQo
KTsKICAgICBpZiAobV91bm11bHRpcGxpZWRJbWFnZVJlc3VsdCkKLSAgICAgICAgbV91bm11bHRp
cGxpZWRJbWFnZVJlc3VsdC5jbGVhcigpOworICAgICAgICBtX3VubXVsdGlwbGllZEltYWdlUmVz
dWx0ID0gbnVsbHB0cjsKICAgICBpZiAobV9wcmVtdWx0aXBsaWVkSW1hZ2VSZXN1bHQpCi0gICAg
ICAgIG1fcHJlbXVsdGlwbGllZEltYWdlUmVzdWx0LmNsZWFyKCk7CisgICAgICAgIG1fcHJlbXVs
dGlwbGllZEltYWdlUmVzdWx0ID0gbnVsbHB0cjsKICNpZiBFTkFCTEUoT1BFTkNMKQogICAgIGlm
IChtX29wZW5DTEltYWdlUmVzdWx0KQotICAgICAgICBtX29wZW5DTEltYWdlUmVzdWx0LmNsZWFy
KCk7CisgICAgICAgIG1fb3BlbkNMSW1hZ2VSZXN1bHQgPSBudWxscHRyOwogI2VuZGlmCiB9CiAK
QEAgLTU0MCw3ICs1NDAsNyBAQCB2b2lkIEZpbHRlckVmZmVjdDo6dHJhbnNmb3JtUmVzdWx0Q29s
b3JTcGFjZShDb2xvclNwYWNlIGRzdENvbG9yU3BhY2UpCiAjaWYgRU5BQkxFKE9QRU5DTCkKICAg
ICBpZiAob3BlbkNMSW1hZ2UoKSkgewogICAgICAgICBpZiAobV9pbWFnZUJ1ZmZlclJlc3VsdCkK
LSAgICAgICAgICAgIG1faW1hZ2VCdWZmZXJSZXN1bHQuY2xlYXIoKTsKKyAgICAgICAgICAgIG1f
aW1hZ2VCdWZmZXJSZXN1bHQgPSBudWxscHRyOwogICAgICAgICBGaWx0ZXJDb250ZXh0T3BlbkNM
KiBjb250ZXh0ID0gRmlsdGVyQ29udGV4dE9wZW5DTDo6Y29udGV4dCgpOwogICAgICAgICBBU1NF
UlQoY29udGV4dCk7CiAgICAgICAgIGNvbnRleHQtPm9wZW5DTFRyYW5zZm9ybUNvbG9yU3BhY2Uo
bV9vcGVuQ0xJbWFnZVJlc3VsdCwgYWJzb2x1dGVQYWludFJlY3QoKSwgbV9yZXN1bHRDb2xvclNw
YWNlLCBkc3RDb2xvclNwYWNlKTsKQEAgLTU1OCw5ICs1NTgsOSBAQCB2b2lkIEZpbHRlckVmZmVj
dDo6dHJhbnNmb3JtUmVzdWx0Q29sb3JTcGFjZShDb2xvclNwYWNlIGRzdENvbG9yU3BhY2UpCiAg
ICAgbV9yZXN1bHRDb2xvclNwYWNlID0gZHN0Q29sb3JTcGFjZTsKIAogICAgIGlmIChtX3VubXVs
dGlwbGllZEltYWdlUmVzdWx0KQotICAgICAgICBtX3VubXVsdGlwbGllZEltYWdlUmVzdWx0LmNs
ZWFyKCk7CisgICAgICAgIG1fdW5tdWx0aXBsaWVkSW1hZ2VSZXN1bHQgPSBudWxscHRyOwogICAg
IGlmIChtX3ByZW11bHRpcGxpZWRJbWFnZVJlc3VsdCkKLSAgICAgICAgbV9wcmVtdWx0aXBsaWVk
SW1hZ2VSZXN1bHQuY2xlYXIoKTsKKyAgICAgICAgbV9wcmVtdWx0aXBsaWVkSW1hZ2VSZXN1bHQg
PSBudWxscHRyOwogI2VuZGlmCiB9CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRm
b3JtL2dyYXBoaWNzL2dzdHJlYW1lci9JbWFnZUdTdHJlYW1lckNhaXJvLmNwcCBiL1NvdXJjZS9X
ZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2dzdHJlYW1lci9JbWFnZUdTdHJlYW1lckNhaXJvLmNw
cAppbmRleCAwNmZhZWNhMTliYTI1M2VhNzgzNzBmNTg1NDRhYmYxYWNiMmU1MjVlLi5lZTI3Mjc3
ZmYwYjdlOTAzM2Y0YjkzMzYwMjhhY2Y0MjE4YjIwYTVmIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2Vi
Q29yZS9wbGF0Zm9ybS9ncmFwaGljcy9nc3RyZWFtZXIvSW1hZ2VHU3RyZWFtZXJDYWlyby5jcHAK
KysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvZ3N0cmVhbWVyL0ltYWdlR1N0
cmVhbWVyQ2Fpcm8uY3BwCkBAIC03MSw5ICs3MSw3IEBAIEltYWdlR1N0cmVhbWVyOjpJbWFnZUdT
dHJlYW1lcihHc3RTYW1wbGUqIHNhbXBsZSkKIEltYWdlR1N0cmVhbWVyOjp+SW1hZ2VHU3RyZWFt
ZXIoKQogewogICAgIGlmIChtX2ltYWdlKQotICAgICAgICBtX2ltYWdlLmNsZWFyKCk7Ci0KLSAg
ICBtX2ltYWdlID0gMDsKKyAgICAgICAgbV9pbWFnZSA9IG51bGxwdHI7CiAKICAgICAvLyBXZSBr
ZWVwIHRoZSBidWZmZXIgbWVtb3J5IG1hcHBlZCB1bnRpbCB0aGUgaW1hZ2UgaXMgZGVzdHJveWVk
IGJlY2F1c2UgdGhlIGludGVybmFsCiAgICAgLy8gY2Fpcm9fc3VyZmFjZV90IHdhcyBjcmVhdGVk
IHVzaW5nIGNhaXJvX2ltYWdlX3N1cmZhY2VfY3JlYXRlX2Zvcl9kYXRhKCkuCmRpZmYgLS1naXQg
YS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9nc3RyZWFtZXIvV2ViS2l0V2ViU291
cmNlR1N0cmVhbWVyLmNwcCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2dzdHJl
YW1lci9XZWJLaXRXZWJTb3VyY2VHU3RyZWFtZXIuY3BwCmluZGV4IDkzNGRhZjhjYjZkNTk4Yzdl
ZWI2YTdkMjZjNzRmNDIxYWY2Nzk0YTAuLmMyZGEzNzA2NDVhYjgwNjA2MzEwMDBmZWJmMzY2Mjkw
ZTNhYzdlOGQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2dz
dHJlYW1lci9XZWJLaXRXZWJTb3VyY2VHU3RyZWFtZXIuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3Jl
L3BsYXRmb3JtL2dyYXBoaWNzL2dzdHJlYW1lci9XZWJLaXRXZWJTb3VyY2VHU3RyZWFtZXIuY3Bw
CkBAIC0xMTY5LDggKzExNjksNyBAQCBSZXNvdXJjZUhhbmRsZVN0cmVhbWluZ0NsaWVudDo6flJl
c291cmNlSGFuZGxlU3RyZWFtaW5nQ2xpZW50KCkKIHsKICAgICBpZiAobV9yZXNvdXJjZSkgewog
ICAgICAgICBtX3Jlc291cmNlLT5jYW5jZWwoKTsKLSAgICAgICAgbV9yZXNvdXJjZS5yZWxlYXNl
KCk7Ci0gICAgICAgIG1fcmVzb3VyY2UgPSAwOworICAgICAgICBtX3Jlc291cmNlID0gbnVsbHB0
cjsKICAgICB9CiB9CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBo
aWNzL3RleG1hcC9CaXRtYXBUZXh0dXJlR0wuY3BwIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0v
Z3JhcGhpY3MvdGV4bWFwL0JpdG1hcFRleHR1cmVHTC5jcHAKaW5kZXggOTc1YzM4ZjJmZjRiMTkx
ODI4ZDdkMWVjZTE2ZTRkNjA5YjA5MGJmNi4uMGU1MmQ3YjRiMjU4NDVhNjAzOGRiNDVlZDhmOGE5
YWJkNGFlZjk5NCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3Mv
dGV4bWFwL0JpdG1hcFRleHR1cmVHTC5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0v
Z3JhcGhpY3MvdGV4bWFwL0JpdG1hcFRleHR1cmVHTC5jcHAKQEAgLTI3OCw3ICsyNzgsNyBAQCBQ
YXNzUmVmUHRyPEJpdG1hcFRleHR1cmU+IEJpdG1hcFRleHR1cmVHTDo6YXBwbHlGaWx0ZXJzKFRl
eHR1cmVNYXBwZXIqIHRleHR1cmVNYQogICAgICAgICAgICAgdGV4bWFwR0wtPmRyYXdGaWx0ZXJl
ZCgqcmVzdWx0U3VyZmFjZS5nZXQoKSwgc3BhcmVTdXJmYWNlLmdldCgpLCAqZmlsdGVyLCBqKTsK
ICAgICAgICAgICAgIGlmICghaiAmJiBmaWx0ZXItPnR5cGUoKSA9PSBGaWx0ZXJPcGVyYXRpb246
OkRST1BfU0hBRE9XKSB7CiAgICAgICAgICAgICAgICAgc3BhcmVTdXJmYWNlID0gcmVzdWx0U3Vy
ZmFjZTsKLSAgICAgICAgICAgICAgICByZXN1bHRTdXJmYWNlLmNsZWFyKCk7CisgICAgICAgICAg
ICAgICAgcmVzdWx0U3VyZmFjZSA9IG51bGxwdHI7CiAgICAgICAgICAgICB9CiAgICAgICAgICAg
ICBzdGQ6OnN3YXAocmVzdWx0U3VyZmFjZSwgaW50ZXJtZWRpYXRlU3VyZmFjZSk7CiAgICAgICAg
IH0KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL3RleG1hcC9U
ZXh0dXJlTWFwcGVyR0wuY3BwIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvdGV4
bWFwL1RleHR1cmVNYXBwZXJHTC5jcHAKaW5kZXggMGJjZThjNzQyMGQ3ZDBhNDRiMzA5ZTI2ZjU2
NmE5MjE5M2U0ODYwYS4uNGM1NDgwNTYyMzVlMzk4ZmFjOTgzNjBmZTljYmY2MjVjNzVhMWQwNSAx
MDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvdGV4bWFwL1RleHR1
cmVNYXBwZXJHTC5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvdGV4
bWFwL1RleHR1cmVNYXBwZXJHTC5jcHAKQEAgLTY5MSw3ICs2OTEsNyBAQCB2b2lkIFRleHR1cmVN
YXBwZXJHTDo6YmluZERlZmF1bHRTdXJmYWNlKCkKICAgICBkYXRhKCkucHJvamVjdGlvbk1hdHJp
eCA9IGNyZWF0ZVByb2plY3Rpb25NYXRyaXgodmlld3BvcnRTaXplLCBkYXRhKCkuUGFpbnRGbGFn
cyAmIFBhaW50aW5nTWlycm9yZWQpOwogICAgIG1fY29udGV4dDNELT52aWV3cG9ydChkYXRhKCku
dmlld3BvcnRbMF0sIGRhdGEoKS52aWV3cG9ydFsxXSwgdmlld3BvcnRTaXplLndpZHRoKCksIHZp
ZXdwb3J0U2l6ZS5oZWlnaHQoKSk7CiAgICAgbV9jbGlwU3RhY2suYXBwbHkobV9jb250ZXh0M0Qu
Z2V0KCkpOwotICAgIGRhdGEoKS5jdXJyZW50U3VyZmFjZS5jbGVhcigpOworICAgIGRhdGEoKS5j
dXJyZW50U3VyZmFjZSA9IG51bGxwdHI7CiB9CiAKIHZvaWQgVGV4dHVyZU1hcHBlckdMOjpiaW5k
U3VyZmFjZShCaXRtYXBUZXh0dXJlICpzdXJmYWNlKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNv
cmUvcGxhdGZvcm0vZ3JhcGhpY3MvdGV4bWFwL1RleHR1cmVNYXBwZXJMYXllci5jcHAgYi9Tb3Vy
Y2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy90ZXhtYXAvVGV4dHVyZU1hcHBlckxheWVyLmNw
cAppbmRleCBjODY0MjAyMmEzYWMxNDY1NzcwODgxZjEyNDg3ZmY3ZGRiYjU0NGQ4Li4zNDU1Mzk4
NzAyNGE2ZTc1ZmQ5ZDFlMzkwNjgxNzhiOWVkNzIzYTJiIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2Vi
Q29yZS9wbGF0Zm9ybS9ncmFwaGljcy90ZXhtYXAvVGV4dHVyZU1hcHBlckxheWVyLmNwcAorKysg
Yi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy90ZXhtYXAvVGV4dHVyZU1hcHBlckxh
eWVyLmNwcApAQCAtNDA4LDcgKzQwOCw3IEBAIHZvaWQgVGV4dHVyZU1hcHBlckxheWVyOjpwYWlu
dFdpdGhJbnRlcm1lZGlhdGVTdXJmYWNlKGNvbnN0IFRleHR1cmVNYXBwZXJQYWludE9wCiAKICAg
ICBpZiAocmVwbGljYVN1cmZhY2UgJiYgb3B0aW9ucy5vcGFjaXR5ID09IDEpIHsKICAgICAgICAg
Y29tbWl0U3VyZmFjZShvcHRpb25zLCByZXBsaWNhU3VyZmFjZSwgcmVjdCwgMSk7Ci0gICAgICAg
IHJlcGxpY2FTdXJmYWNlLmNsZWFyKCk7CisgICAgICAgIHJlcGxpY2FTdXJmYWNlID0gbnVsbHB0
cjsKICAgICB9CiAKICAgICBtYWluU3VyZmFjZSA9IHBhaW50SW50b1N1cmZhY2UocGFpbnRPcHRp
b25zLCByZWN0LnNpemUoKSk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9n
cmFwaGljcy90ZXhtYXAvVGV4dHVyZU1hcHBlclRpbGVkQmFja2luZ1N0b3JlLmNwcCBiL1NvdXJj
ZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL3RleG1hcC9UZXh0dXJlTWFwcGVyVGlsZWRCYWNr
aW5nU3RvcmUuY3BwCmluZGV4IDIwODA0NjIzOTNiZGJiOWNiMDE0ODIyODM5NGU4YjJmNjVmMGM2
ZDcuLmQzNTcxMGE2OTI4MWE4MjA2MTZkZTMxMjEzM2M0ZDNjN2ZmOTE3ZTggMTAwNjQ0Ci0tLSBh
L1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL3RleG1hcC9UZXh0dXJlTWFwcGVyVGls
ZWRCYWNraW5nU3RvcmUuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNz
L3RleG1hcC9UZXh0dXJlTWFwcGVyVGlsZWRCYWNraW5nU3RvcmUuY3BwCkBAIC0zOSw3ICszOSw3
IEBAIHZvaWQgVGV4dHVyZU1hcHBlclRpbGVkQmFja2luZ1N0b3JlOjp1cGRhdGVDb250ZW50c0Zy
b21JbWFnZUlmTmVlZGVkKFRleHR1cmVNYXBwCiAgICAgICAgIHJldHVybjsKIAogICAgIHVwZGF0
ZUNvbnRlbnRzKHRleHR1cmVNYXBwZXIsIG1faW1hZ2UuZ2V0KCksIG1faW1hZ2UtPnNpemUoKSwg
ZW5jbG9zaW5nSW50UmVjdChtX2ltYWdlLT5yZWN0KCkpLCBCaXRtYXBUZXh0dXJlOjpVcGRhdGVD
YW5ub3RNb2RpZnlPcmlnaW5hbEltYWdlRGF0YSk7Ci0gICAgbV9pbWFnZS5jbGVhcigpOworICAg
IG1faW1hZ2UgPSBudWxscHRyOwogfQogCiBUcmFuc2Zvcm1hdGlvbk1hdHJpeCBUZXh0dXJlTWFw
cGVyVGlsZWRCYWNraW5nU3RvcmU6OmFkanVzdGVkVHJhbnNmb3JtRm9yUmVjdChjb25zdCBGbG9h
dFJlY3QmIHRhcmdldFJlY3QpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9n
cmFwaGljcy90ZXhtYXAvY29vcmRpbmF0ZWQvQ29vcmRpbmF0ZWRHcmFwaGljc0xheWVyLmNwcCBi
L1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL3RleG1hcC9jb29yZGluYXRlZC9Db29y
ZGluYXRlZEdyYXBoaWNzTGF5ZXIuY3BwCmluZGV4IGUyZTFmNGFiOGZhMTk5NjRmZjZkZmNkNTJj
N2I3ZDdlZDkxOGNhYjAuLmE3MGU3YTA3N2Q3ZGUwNzczM2UwOGYyMDYyYWI2OWZmMGU0YzFmNzgg
MTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL3RleG1hcC9jb29y
ZGluYXRlZC9Db29yZGluYXRlZEdyYXBoaWNzTGF5ZXIuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3Jl
L3BsYXRmb3JtL2dyYXBoaWNzL3RleG1hcC9jb29yZGluYXRlZC9Db29yZGluYXRlZEdyYXBoaWNz
TGF5ZXIuY3BwCkBAIC04MjAsNyArODIwLDcgQEAgdm9pZCBDb29yZGluYXRlZEdyYXBoaWNzTGF5
ZXI6OnJlbGVhc2VJbWFnZUJhY2tpbmdJZk5lZWRlZCgpCiAKICAgICBBU1NFUlQobV9jb29yZGlu
YXRvcik7CiAgICAgbV9jb29yZGluYXRlZEltYWdlQmFja2luZy0+cmVtb3ZlSG9zdCh0aGlzKTsK
LSAgICBtX2Nvb3JkaW5hdGVkSW1hZ2VCYWNraW5nLmNsZWFyKCk7CisgICAgbV9jb29yZGluYXRl
ZEltYWdlQmFja2luZyA9IG51bGxwdHI7CiAgICAgbV9sYXllclN0YXRlLmltYWdlSUQgPSBJbnZh
bGlkQ29vcmRpbmF0ZWRJbWFnZUJhY2tpbmdJRDsKICAgICBtX2xheWVyU3RhdGUuaW1hZ2VDaGFu
Z2VkID0gdHJ1ZTsKIH0KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBo
aWNzL3RleG1hcC9jb29yZGluYXRlZC9Db29yZGluYXRlZEltYWdlQmFja2luZy5jcHAgYi9Tb3Vy
Y2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy90ZXhtYXAvY29vcmRpbmF0ZWQvQ29vcmRpbmF0
ZWRJbWFnZUJhY2tpbmcuY3BwCmluZGV4IGQyMmIxNWVkZDMwYWY5ZWEwOWMyNDY4NTYyMmIwMzkz
YjViNTUyOTMuLmUyNjE1MGZlZWU5ZTI3OWJhMzMyMDcwZGU4NGJmNDI0OWZmMjMxZTcgMTAwNjQ0
Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL3RleG1hcC9jb29yZGluYXRl
ZC9Db29yZGluYXRlZEltYWdlQmFja2luZy5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZv
cm0vZ3JhcGhpY3MvdGV4bWFwL2Nvb3JkaW5hdGVkL0Nvb3JkaW5hdGVkSW1hZ2VCYWNraW5nLmNw
cApAQCAtMTQxLDcgKzE0MSw3IEBAIHZvaWQgQ29vcmRpbmF0ZWRJbWFnZUJhY2tpbmc6OnJlbGVh
c2VTdXJmYWNlSWZOZWVkZWQoKQogewogICAgIC8vIFdlIG11c3Qga2VlcCBtX3N1cmZhY2UgdW50
aWwgVUkgUHJvY2VzcyByZWFkcyBtX3N1cmZhY2UuCiAgICAgLy8gSWYgbV9zdXJmYWNlIGV4aXN0
cywgaXQgd2FzIGNyZWF0ZWQgaW4gdGhlIHByZXZpb3VzIHVwZGF0ZS4KLSAgICBtX3N1cmZhY2Uu
Y2xlYXIoKTsKKyAgICBtX3N1cmZhY2UgPSBudWxscHRyOwogfQogCiBzdGF0aWMgY29uc3QgZG91
YmxlIGNsZWFyQ29udGVudHNUaW1lckludGVydmFsID0gMzsKZGlmZiAtLWdpdCBhL1NvdXJjZS9X
ZWJDb3JlL3BsYXRmb3JtL2d0ay9HYW1lcGFkc0d0ay5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0
Zm9ybS9ndGsvR2FtZXBhZHNHdGsuY3BwCmluZGV4IDI2ZjliZTYyYzc2NDYzYzZlMDgxZmNlZmU3
OTZiMmVhZjE3NTk1OGQuLjlmYjI5ZjJiOTU0NmZjMTgzOWM0ZWE4ZWI1Nzg0YThhNTYyMzIzNDkg
MTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2d0ay9HYW1lcGFkc0d0ay5jcHAK
KysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3RrL0dhbWVwYWRzR3RrLmNwcApAQCAtMTU1
LDcgKzE1NSw3IEBAIHZvaWQgR2FtZXBhZHNHdGs6OnVucmVnaXN0ZXJEZXZpY2UoU3RyaW5nIGRl
dmljZUZpbGUpCiAgICAgc2l6ZV90IGluZGV4ID0gbV9zbG90cy5maW5kKGdhbWVwYWREZXZpY2Up
OwogICAgIEFTU0VSVChpbmRleCAhPSBub3RGb3VuZCk7CiAKLSAgICBtX3Nsb3RzW2luZGV4XS5j
bGVhcigpOworICAgIG1fc2xvdHNbaW5kZXhdID0gbnVsbHB0cjsKIH0KIAogdm9pZCBHYW1lcGFk
c0d0azo6dXBkYXRlR2FtZXBhZExpc3QoR2FtZXBhZExpc3QqIGludG8pCmRpZmYgLS1naXQgYS9T
b3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9pb3MvUGxhdGZvcm1TcGVlY2hTeW50aGVzaXplcklPUy5t
bSBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2lvcy9QbGF0Zm9ybVNwZWVjaFN5bnRoZXNpemVy
SU9TLm1tCmluZGV4IGFiMTRjNzA5MDUyOTI4MmRiNGM1NTNkZjFhNWU1NTUxY2JlODI3MTYuLmRj
MGNhYTg4YTA1ZTA4NGVhMDk4Y2U0MTBiYTZkMmFiZDM4ZDkwYzcgMTAwNjQ0Ci0tLSBhL1NvdXJj
ZS9XZWJDb3JlL3BsYXRmb3JtL2lvcy9QbGF0Zm9ybVNwZWVjaFN5bnRoZXNpemVySU9TLm1tCisr
KyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2lvcy9QbGF0Zm9ybVNwZWVjaFN5bnRoZXNpemVy
SU9TLm1tCkBAIC0xNzksNyArMTc5LDcgQEAgLSAodm9pZClzcGVlY2hTeW50aGVzaXplcjooQVZT
cGVlY2hTeW50aGVzaXplciAqKXN5bnRoZXNpemVyIGRpZEZpbmlzaFNwZWVjaFV0dGUKICAgICAK
ICAgICAvLyBDbGVhciB0aGUgbV91dHRlcmFuY2UgdmFyaWFibGUgaW4gY2FzZSBmaW5pc2ggc3Bl
YWtpbmcga2lja3Mgb2ZmIGEgbmV3IHNwZWFraW5nIGpvYiBpbW1lZGlhdGVseS4KICAgICBSZWZQ
dHI8V2ViQ29yZTo6UGxhdGZvcm1TcGVlY2hTeW50aGVzaXNVdHRlcmFuY2U+IHBsYXRmb3JtVXR0
ZXJhbmNlID0gbV91dHRlcmFuY2U7Ci0gICAgbV91dHRlcmFuY2UgPSAwOworICAgIG1fdXR0ZXJh
bmNlID0gbnVsbHB0cjsKICAgICAKICAgICBtX3N5bnRoZXNpemVyT2JqZWN0LT5jbGllbnQoKS0+
ZGlkRmluaXNoU3BlYWtpbmcocGxhdGZvcm1VdHRlcmFuY2UpOwogfQpAQCAtMjEzLDcgKzIxMyw3
IEBAIC0gKHZvaWQpc3BlZWNoU3ludGhlc2l6ZXI6KEFWU3BlZWNoU3ludGhlc2l6ZXIgKilzeW50
aGVzaXplciBkaWRDYW5jZWxTcGVlY2hVdHRlCiAgICAgCiAgICAgLy8gQ2xlYXIgdGhlIG1fdXR0
ZXJhbmNlIHZhcmlhYmxlIGluIGNhc2UgZmluaXNoIHNwZWFraW5nIGtpY2tzIG9mZiBhIG5ldyBz
cGVha2luZyBqb2IgaW1tZWRpYXRlbHkuCiAgICAgUmVmUHRyPFdlYkNvcmU6OlBsYXRmb3JtU3Bl
ZWNoU3ludGhlc2lzVXR0ZXJhbmNlPiBwbGF0Zm9ybVV0dGVyYW5jZSA9IG1fdXR0ZXJhbmNlOwot
ICAgIG1fdXR0ZXJhbmNlID0gMDsKKyAgICBtX3V0dGVyYW5jZSA9IG51bGxwdHI7CiAgICAgCiAg
ICAgbV9zeW50aGVzaXplck9iamVjdC0+Y2xpZW50KCktPmRpZEZpbmlzaFNwZWFraW5nKHBsYXRm
b3JtVXR0ZXJhbmNlKTsKIH0KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL21v
Y2svR2VvbG9jYXRpb25DbGllbnRNb2NrLmNwcCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL21v
Y2svR2VvbG9jYXRpb25DbGllbnRNb2NrLmNwcAppbmRleCA4MTg2YTZhNTIzM2VlODViZTY1MjY4
YjY4ZjA1NDQ3ZTg1NTIzMzAwLi5iN2NmYjliZTA2ZGNiZmZjN2MxNmIzY2ZlNzQ2NTAxMzBmYTcw
MGU1IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9tb2NrL0dlb2xvY2F0aW9u
Q2xpZW50TW9jay5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbW9jay9HZW9sb2Nh
dGlvbkNsaWVudE1vY2suY3BwCkBAIC0xMjYsNyArMTI2LDcgQEAgdm9pZCBHZW9sb2NhdGlvbkNs
aWVudE1vY2s6OnBlcm1pc3Npb25UaW1lckZpcmVkKCkKIAogdm9pZCBHZW9sb2NhdGlvbkNsaWVu
dE1vY2s6OnJlc2V0KCkKIHsKLSAgICBtX2xhc3RQb3NpdGlvbiA9IDA7CisgICAgbV9sYXN0UG9z
aXRpb24gPSBudWxscHRyOwogICAgIGNsZWFyRXJyb3IoKTsKICAgICBtX3Blcm1pc3Npb25TdGF0
ZSA9IFBlcm1pc3Npb25TdGF0ZVVuc2V0OwogfQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUv
cGxhdGZvcm0vbW9jay9QbGF0Zm9ybVNwZWVjaFN5bnRoZXNpemVyTW9jay5jcHAgYi9Tb3VyY2Uv
V2ViQ29yZS9wbGF0Zm9ybS9tb2NrL1BsYXRmb3JtU3BlZWNoU3ludGhlc2l6ZXJNb2NrLmNwcApp
bmRleCAzODM4MzcyYzU3NzhlYzI3MmM4YjU1ZjgzMTUwNjUzODRkOWNmODc0Li5jMGI0ZGZhMmM2
ZjIyNDRlYWE0ZGE4ODY0ZDVjNGIzMjYzMjU5MmRjIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29y
ZS9wbGF0Zm9ybS9tb2NrL1BsYXRmb3JtU3BlZWNoU3ludGhlc2l6ZXJNb2NrLmNwcAorKysgYi9T
b3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9tb2NrL1BsYXRmb3JtU3BlZWNoU3ludGhlc2l6ZXJNb2Nr
LmNwcApAQCAtNDUsNyArNDUsNyBAQCB2b2lkIFBsYXRmb3JtU3BlZWNoU3ludGhlc2l6ZXJNb2Nr
OjpzcGVha2luZ0ZpbmlzaGVkKCkKIHsKICAgICBBU1NFUlQobV91dHRlcmFuY2UuZ2V0KCkpOwog
ICAgIFJlZlB0cjxQbGF0Zm9ybVNwZWVjaFN5bnRoZXNpc1V0dGVyYW5jZT4gcHJvdGVjdChtX3V0
dGVyYW5jZSk7Ci0gICAgbV91dHRlcmFuY2UgPSAwOworICAgIG1fdXR0ZXJhbmNlID0gbnVsbHB0
cjsKICAgICAKICAgICBjbGllbnQoKS0+ZGlkRmluaXNoU3BlYWtpbmcocHJvdGVjdCk7CiB9CkBA
IC03OCw3ICs3OCw3IEBAIHZvaWQgUGxhdGZvcm1TcGVlY2hTeW50aGVzaXplck1vY2s6OmNhbmNl
bCgpCiAgICAgCiAgICAgbV9zcGVha2luZ0ZpbmlzaGVkVGltZXIuc3RvcCgpOwogICAgIGNsaWVu
dCgpLT5zcGVha2luZ0Vycm9yT2NjdXJyZWQobV91dHRlcmFuY2UpOwotICAgIG1fdXR0ZXJhbmNl
ID0gMDsKKyAgICBtX3V0dGVyYW5jZSA9IG51bGxwdHI7CiB9CiAKIHZvaWQgUGxhdGZvcm1TcGVl
Y2hTeW50aGVzaXplck1vY2s6OnBhdXNlKCkKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3Bs
YXRmb3JtL25ldHdvcmsvY2YvUmVzb3VyY2VSZXF1ZXN0Q0ZOZXQuY3BwIGIvU291cmNlL1dlYkNv
cmUvcGxhdGZvcm0vbmV0d29yay9jZi9SZXNvdXJjZVJlcXVlc3RDRk5ldC5jcHAKaW5kZXggY2Rj
N2Q3MzQ2ZDVhN2JmZTE5NzJjZmI3ODZiZWNjZjJlM2QzOWU5ZS4uYTRkNDNkZjNjMGE0MjhmMTcw
NjE4MmU4YThhYWJjMDVkZGEyM2E5ZSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZv
cm0vbmV0d29yay9jZi9SZXNvdXJjZVJlcXVlc3RDRk5ldC5jcHAKKysrIGIvU291cmNlL1dlYkNv
cmUvcGxhdGZvcm0vbmV0d29yay9jZi9SZXNvdXJjZVJlcXVlc3RDRk5ldC5jcHAKQEAgLTI5NSw3
ICsyOTUsNyBAQCB2b2lkIFJlc291cmNlUmVxdWVzdDo6ZG9VcGRhdGVSZXNvdXJjZVJlcXVlc3Qo
KQogdm9pZCBSZXNvdXJjZVJlcXVlc3Q6OmRvVXBkYXRlUmVzb3VyY2VIVFRQQm9keSgpCiB7CiAg
ICAgaWYgKCFtX2NmUmVxdWVzdCkgewotICAgICAgICBtX2h0dHBCb2R5ID0gMDsKKyAgICAgICAg
bV9odHRwQm9keSA9IG51bGxwdHI7CiAgICAgICAgIHJldHVybjsKICAgICB9CiAKZGlmZiAtLWdp
dCBhL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9JbmxpbmVGbG93Qm94LmNwcCBiL1NvdXJjZS9X
ZWJDb3JlL3JlbmRlcmluZy9JbmxpbmVGbG93Qm94LmNwcAppbmRleCA0MTY4MmM4ZTJiNjBjYjky
OGU0NjFiNGVmZmFhM2JmNzljMzYxYzI4Li4yZDZmYjY5NDQ4ZjhmMWJiNTk0NGMxMGJhNTQ5MDEx
NTY3ZDY3NzM3IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvSW5saW5lRmxv
d0JveC5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL0lubGluZUZsb3dCb3guY3Bw
CkBAIC05NTQsNyArOTU0LDcgQEAgdm9pZCBJbmxpbmVGbG93Qm94Ojpjb21wdXRlT3ZlcmZsb3co
TGF5b3V0VW5pdCBsaW5lVG9wLCBMYXlvdXRVbml0IGxpbmVCb3R0b20sIEcKICAgICAgICAgcmV0
dXJuOwogCiAgICAgaWYgKG1fb3ZlcmZsb3cpCi0gICAgICAgIG1fb3ZlcmZsb3cuY2xlYXIoKTsK
KyAgICAgICAgbV9vdmVyZmxvdyA9IG51bGxwdHI7CiAKICAgICAvLyBWaXN1YWwgb3ZlcmZsb3cg
anVzdCBpbmNsdWRlcyBvdmVyZmxvdyBmb3Igc3R1ZmYgd2UgbmVlZCB0byByZXBhaW50IG91cnNl
bHZlcy4gIFNlbGYtcGFpbnRpbmcgbGF5ZXJzIGFyZSBpZ25vcmVkLgogICAgIC8vIExheW91dCBv
dmVyZmxvdyBpcyB1c2VkIHRvIGRldGVybWluZSBzY3JvbGxpbmcgZXh0ZW50LCBzbyBpdCBzdGls
bCBpbmNsdWRlcyBjaGlsZCBsYXllcnMgYW5kIGFsc28gZmFjdG9ycyBpbgpkaWZmIC0tZ2l0IGEv
U291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlckJveC5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9y
ZW5kZXJpbmcvUmVuZGVyQm94LmNwcAppbmRleCA1MDJkZjY2YzBkMGRlOThhOWE0MmNkOTRmNzBi
MjBiNGUwYjJhY2JjLi42MTcxZGI1ZTBhOGE5MjI1N2NiZTJkMzA3ZDZmNzZkYTM2OWFkYjI0IDEw
MDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyQm94LmNwcAorKysgYi9T
b3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyQm94LmNwcApAQCAtNDQ5Nyw3ICs0NDk3LDcg
QEAgdm9pZCBSZW5kZXJCb3g6OmFkZFZpc3VhbE92ZXJmbG93KGNvbnN0IExheW91dFJlY3QmIHJl
Y3QpCiAKIHZvaWQgUmVuZGVyQm94OjpjbGVhck92ZXJmbG93KCkKIHsKLSAgICBtX292ZXJmbG93
LmNsZWFyKCk7CisgICAgbV9vdmVyZmxvdyA9IG51bGxwdHI7CiAgICAgUmVuZGVyRmxvd1RocmVh
ZCogZmxvd1RocmVhZCA9IGZsb3dUaHJlYWRDb250YWluaW5nQmxvY2soKTsKICAgICBpZiAoZmxv
d1RocmVhZCkKICAgICAgICAgZmxvd1RocmVhZC0+Y2xlYXJSZWdpb25zT3ZlcmZsb3codGhpcyk7
CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyQm94UmVnaW9uSW5m
by5oIGIvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlckJveFJlZ2lvbkluZm8uaAppbmRl
eCA2MjM2MDhkNjc1ZGNjNjkxMWUyN2RhZjI0YWNiODQwOWQ0NmUxOGFmLi5lYTIzYzFlYzhlZTM3
NWU3YTYxMWMxNGVjMDQxOWY2NTZkYTE5N2IyIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9y
ZW5kZXJpbmcvUmVuZGVyQm94UmVnaW9uSW5mby5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL3JlbmRl
cmluZy9SZW5kZXJCb3hSZWdpb25JbmZvLmgKQEAgLTUzLDcgKzUzLDcgQEAgcHVibGljOgogICAg
IHZvaWQgY2xlYXJPdmVyZmxvdygpCiAgICAgewogICAgICAgICBpZiAobV9vdmVyZmxvdykKLSAg
ICAgICAgICAgIG1fb3ZlcmZsb3cuY2xlYXIoKTsKKyAgICAgICAgICAgIG1fb3ZlcmZsb3cgPSBu
dWxscHRyOwogICAgIH0KIAogcHJpdmF0ZToKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3Jl
bmRlcmluZy9SZW5kZXJDb3VudGVyLmNwcCBiL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5k
ZXJDb3VudGVyLmNwcAppbmRleCA5MThhNGY4OGEyM2Q5NmQ4YWU1ZTIzNjY5NTY3MTc4MGEwOTM2
MjdlLi5jNzQ1NjM5ZjhhMGFiZTRkOGZkZjY4MTA1NGMxNjg1MjI5ODZlZjM2IDEwMDY0NAotLS0g
YS9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyQ291bnRlci5jcHAKKysrIGIvU291cmNl
L1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlckNvdW50ZXIuY3BwCkBAIC0xODYsOCArMTg2LDggQEAg
c3RhdGljIGJvb2wgZmluZFBsYWNlRm9yQ291bnRlcihSZW5kZXJFbGVtZW50JiBjb3VudGVyT3du
ZXIsIGNvbnN0IEF0b21pY1N0cmluZyYKICAgICAvLyB0b3dhcmRzIHRoZSBiZWdpbmluZyBvZiB0
aGUgZG9jdW1lbnQgZm9yIGNvdW50ZXJzIHdpdGggdGhlIHNhbWUgaWRlbnRpZmllciBhcyB0aGUg
b25lCiAgICAgLy8gd2UgYXJlIHRyeWluZyB0byBmaW5kIGEgcGxhY2UgZm9yLiBUaGlzIGlzIHRo
ZSBuZXh0IHJlbmRlcmVyIHRvIGJlIGNoZWNrZWQuCiAgICAgUmVuZGVyRWxlbWVudCogY3VycmVu
dFJlbmRlcmVyID0gcHJldmlvdXNJblByZU9yZGVyKGNvdW50ZXJPd25lcik7Ci0gICAgcHJldmlv
dXNTaWJsaW5nID0gMDsKLSAgICBSZWZQdHI8Q291bnRlck5vZGU+IHByZXZpb3VzU2libGluZ1By
b3RlY3RvciA9IDA7CisgICAgcHJldmlvdXNTaWJsaW5nID0gbnVsbHB0cjsKKyAgICBSZWZQdHI8
Q291bnRlck5vZGU+IHByZXZpb3VzU2libGluZ1Byb3RlY3RvcjsKIAogICAgIHdoaWxlIChjdXJy
ZW50UmVuZGVyZXIpIHsKICAgICAgICAgQ291bnRlck5vZGUqIGN1cnJlbnRDb3VudGVyID0gbWFr
ZUNvdW50ZXJOb2RlKCpjdXJyZW50UmVuZGVyZXIsIGlkZW50aWZpZXIsIGZhbHNlKTsKQEAgLTIw
Myw3ICsyMDMsNyBAQCBzdGF0aWMgYm9vbCBmaW5kUGxhY2VGb3JDb3VudGVyKFJlbmRlckVsZW1l
bnQmIGNvdW50ZXJPd25lciwgY29uc3QgQXRvbWljU3RyaW5nJgogICAgICAgICAgICAgICAgICAg
ICAgICAgICAgIC8vIGhlbmNlIHdlIGFyZSB0aGUgbmV4dCBzaWJsaW5nIG9mIHRoYXQgY291bnRl
ciBpZiB0aGF0IHJlc2V0IGlzIG5vdCBhIHJvb3Qgb3IKICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAvLyB3ZSBhcmUgYSByb290IG5vZGUgaWYgdGhhdCByZXNldCBpcyBhIHJvb3QuCiAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgcGFyZW50ID0gY3VycmVudENvdW50ZXItPnBhcmVudCgp
OwotICAgICAgICAgICAgICAgICAgICAgICAgICAgIHByZXZpb3VzU2libGluZyA9IHBhcmVudCA/
IGN1cnJlbnRDb3VudGVyIDogMDsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICBwcmV2aW91
c1NpYmxpbmcgPSBwYXJlbnQgPyBjdXJyZW50Q291bnRlciA6IG51bGxwdHI7CiAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgcmV0dXJuIHBhcmVudDsKICAgICAgICAgICAgICAgICAgICAgICAg
IH0KICAgICAgICAgICAgICAgICAgICAgICAgIC8vIFdlIGFyZSBub3QgYSByZXNldCBub2RlIG9y
IHRoZSBwcmV2aW91cyByZXNldCBtdXN0IGJlIG9uIGFuIGFuY2VzdG9yIG9mIG91ciBvd25lciBy
ZW5kZXJlcgpAQCAtMjEzLDcgKzIxMyw3IEBAIHN0YXRpYyBib29sIGZpbmRQbGFjZUZvckNvdW50
ZXIoUmVuZGVyRWxlbWVudCYgY291bnRlck93bmVyLCBjb25zdCBBdG9taWNTdHJpbmcmCiAgICAg
ICAgICAgICAgICAgICAgICAgICAvLyBJbiB0aGVzZSBjYXNlcyB0aGUgaWRlbnRpZmllZCBwcmV2
aW91c1NpYmxpbmcgd2lsbCBiZSBpbnZhbGlkIGFzIGl0cyBwYXJlbnQgaXMgZGlmZmVyZW50IGZy
b20KICAgICAgICAgICAgICAgICAgICAgICAgIC8vIG91ciBpZGVudGlmaWVkIHBhcmVudC4KICAg
ICAgICAgICAgICAgICAgICAgICAgIGlmIChwcmV2aW91c1NpYmxpbmdQcm90ZWN0b3ItPnBhcmVu
dCgpICE9IGN1cnJlbnRDb3VudGVyKQotICAgICAgICAgICAgICAgICAgICAgICAgICAgIHByZXZp
b3VzU2libGluZ1Byb3RlY3RvciA9IDA7CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgcHJl
dmlvdXNTaWJsaW5nUHJvdGVjdG9yID0gbnVsbHB0cjsKIAogICAgICAgICAgICAgICAgICAgICAg
ICAgcHJldmlvdXNTaWJsaW5nID0gcHJldmlvdXNTaWJsaW5nUHJvdGVjdG9yLmdldCgpOwogICAg
ICAgICAgICAgICAgICAgICAgICAgcmV0dXJuIHRydWU7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2Vi
Q29yZS9yZW5kZXJpbmcvUmVuZGVyTWVudUxpc3QuY3BwIGIvU291cmNlL1dlYkNvcmUvcmVuZGVy
aW5nL1JlbmRlck1lbnVMaXN0LmNwcAppbmRleCBmZjlhMmM1ODZiYmQ5YmU5OWM3NzU1ZTIyMmUw
MDM4NjQ2YzE3NGQ2Li5kYjk5NDk5Y2JkZmYwM2E1NTEwMWQyYWQ4NmUxODM3NmNmYWZhMjhiIDEw
MDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyTWVudUxpc3QuY3BwCisr
KyBiL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJNZW51TGlzdC5jcHAKQEAgLTg4LDcg
Kzg4LDcgQEAgUmVuZGVyTWVudUxpc3Q6On5SZW5kZXJNZW51TGlzdCgpCiAjaWYgIVBMQVRGT1JN
KElPUykKICAgICBpZiAobV9wb3B1cCkKICAgICAgICAgbV9wb3B1cC0+ZGlzY29ubmVjdENsaWVu
dCgpOwotICAgIG1fcG9wdXAgPSAwOworICAgIG1fcG9wdXAgPSBudWxscHRyOwogI2VuZGlmCiB9
CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJTZWFyY2hGaWVs
ZC5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyU2VhcmNoRmllbGQuY3BwCmlu
ZGV4IGZhNmUzOTY3MzE2NDhlYTA1MWM2ODA2YzE5MjRkYzJjZjhiZTRjMDAuLjg5ZGMzNGM0ZjQ0
NGRjYzVjNmM5ZTA3NWUxN2Q3N2M2ZWQyZDQ4MDUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3Jl
L3JlbmRlcmluZy9SZW5kZXJTZWFyY2hGaWVsZC5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvcmVu
ZGVyaW5nL1JlbmRlclNlYXJjaEZpZWxkLmNwcApAQCAtNjIsNyArNjIsNyBAQCBSZW5kZXJTZWFy
Y2hGaWVsZDo6flJlbmRlclNlYXJjaEZpZWxkKCkKIHsKICAgICBpZiAobV9zZWFyY2hQb3B1cCkg
ewogICAgICAgICBtX3NlYXJjaFBvcHVwLT5wb3B1cE1lbnUoKS0+ZGlzY29ubmVjdENsaWVudCgp
OwotICAgICAgICBtX3NlYXJjaFBvcHVwID0gMDsKKyAgICAgICAgbV9zZWFyY2hQb3B1cCA9IG51
bGxwdHI7CiAgICAgfQogfQogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcv
c3R5bGUvRmlsbExheWVyLmggYi9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvc3R5bGUvRmlsbExh
eWVyLmgKaW5kZXggOGIwNmNlM2I3ZTg3N2UyNTU2ZjY3Njg4YTM0M2FhZmMyZDEzMThmOS4uMDMw
OTg2M2RhZTYwZTc4ZTc2OTRiMTY5ZTY2YmJjZTVmMTljYzgwNCAxMDA2NDQKLS0tIGEvU291cmNl
L1dlYkNvcmUvcmVuZGVyaW5nL3N0eWxlL0ZpbGxMYXllci5oCisrKyBiL1NvdXJjZS9XZWJDb3Jl
L3JlbmRlcmluZy9zdHlsZS9GaWxsTGF5ZXIuaApAQCAtMTIxLDggKzEyMSw4IEBAIHB1YmxpYzoK
ICAgICB2b2lkIHNldFNpemUoRmlsbFNpemUgZikgeyBtX3NpemVUeXBlID0gZi50eXBlOyBtX3Np
emVMZW5ndGggPSBmLnNpemU7IH0KICAgICB2b2lkIHNldE1hc2tTb3VyY2VUeXBlKEVNYXNrU291
cmNlVHlwZSBtKSB7IG1fbWFza1NvdXJjZVR5cGUgPSBtOyBtX21hc2tTb3VyY2VUeXBlU2V0ID0g
dHJ1ZTsgfQogCi0gICAgdm9pZCBjbGVhck1hc2tJbWFnZSgpIHsgbV9tYXNrSW1hZ2VPcGVyYXRp
b24uY2xlYXIoKTsgfQotICAgIHZvaWQgY2xlYXJJbWFnZSgpIHsgbV9pbWFnZS5jbGVhcigpOyBt
X2ltYWdlU2V0ID0gZmFsc2U7IH0KKyAgICB2b2lkIGNsZWFyTWFza0ltYWdlKCkgeyBtX21hc2tJ
bWFnZU9wZXJhdGlvbiA9IG51bGxwdHI7IH0KKyAgICB2b2lkIGNsZWFySW1hZ2UoKSB7IG1faW1h
Z2UgPSBudWxscHRyOyBtX2ltYWdlU2V0ID0gZmFsc2U7IH0KICAgICB2b2lkIGNsZWFyWFBvc2l0
aW9uKCkgeyBtX3hQb3NTZXQgPSBmYWxzZTsgbV9iYWNrZ3JvdW5kT3JpZ2luU2V0ID0gZmFsc2U7
IH0KICAgICB2b2lkIGNsZWFyWVBvc2l0aW9uKCkgeyBtX3lQb3NTZXQgPSBmYWxzZTsgbV9iYWNr
Z3JvdW5kT3JpZ2luU2V0ID0gZmFsc2U7IH0KIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUv
cmVuZGVyaW5nL3N0eWxlL1JlbmRlclN0eWxlLmNwcCBiL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmlu
Zy9zdHlsZS9SZW5kZXJTdHlsZS5jcHAKaW5kZXggODdjNThlOWJmYzdmNDRlNGYyYjljMjZmMWVm
NTlkNjhmMTIwOWZkYy4uNDdmZWU4OTUxY2M4NjlmZjk5YmIyMmY2NTk3YzA3ZjI0YWZmMWUxMSAx
MDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL3N0eWxlL1JlbmRlclN0eWxlLmNw
cAorKysgYi9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvc3R5bGUvUmVuZGVyU3R5bGUuY3BwCkBA
IC05NTAsNyArOTUwLDcgQEAgdm9pZCBSZW5kZXJTdHlsZTo6c2V0UXVvdGVzKFBhc3NSZWZQdHI8
UXVvdGVzRGF0YT4gcSkKIHZvaWQgUmVuZGVyU3R5bGU6OmNsZWFyQ3Vyc29yTGlzdCgpCiB7CiAg
ICAgaWYgKHJhcmVJbmhlcml0ZWREYXRhLT5jdXJzb3JEYXRhKQotICAgICAgICByYXJlSW5oZXJp
dGVkRGF0YS5hY2Nlc3MoKS0+Y3Vyc29yRGF0YSA9IDA7CisgICAgICAgIHJhcmVJbmhlcml0ZWRE
YXRhLmFjY2VzcygpLT5jdXJzb3JEYXRhID0gbnVsbHB0cjsKIH0KIAogdm9pZCBSZW5kZXJTdHls
ZTo6Y2xlYXJDb250ZW50KCkKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3N2Zy9TVkdUUmVm
RWxlbWVudC5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9zdmcvU1ZHVFJlZkVsZW1lbnQuY3BwCmluZGV4
IDIyNWEzMDQ2YTQ5OTJjOTcwNWJhNzk1MDk5NTYxYjNiOWViYWZmYmQuLmUzZmFkOGQ1OTBjNTRk
ZTZiZTk0Njc5Yzk1NzE3Yjk4NWFjNzRhMjEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3N2
Zy9TVkdUUmVmRWxlbWVudC5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvc3ZnL1NWR1RSZWZFbGVt
ZW50LmNwcApAQCAtMTA0LDcgKzEwNCw3IEBAIHZvaWQgU1ZHVFJlZlRhcmdldEV2ZW50TGlzdGVu
ZXI6OmRldGFjaCgpCiAKICAgICBtX3RhcmdldC0+cmVtb3ZlRXZlbnRMaXN0ZW5lcihldmVudE5h
bWVzKCkuRE9NU3VidHJlZU1vZGlmaWVkRXZlbnQsIHRoaXMsIGZhbHNlKTsKICAgICBtX3Rhcmdl
dC0+cmVtb3ZlRXZlbnRMaXN0ZW5lcihldmVudE5hbWVzKCkuRE9NTm9kZVJlbW92ZWRGcm9tRG9j
dW1lbnRFdmVudCwgdGhpcywgZmFsc2UpOwotICAgIG1fdGFyZ2V0LmNsZWFyKCk7CisgICAgbV90
YXJnZXQgPSBudWxscHRyOwogfQogCiBib29sIFNWR1RSZWZUYXJnZXRFdmVudExpc3RlbmVyOjpv
cGVyYXRvcj09KGNvbnN0IEV2ZW50TGlzdGVuZXImIGxpc3RlbmVyKQpkaWZmIC0tZ2l0IGEvU291
cmNlL1dlYkNvcmUvdGVzdGluZy9JbnRlcm5hbHMuY3BwIGIvU291cmNlL1dlYkNvcmUvdGVzdGlu
Zy9JbnRlcm5hbHMuY3BwCmluZGV4IDFhMTA1MTc0NzllOGU4ZTk4MWE3NDUzYWJkYTZmZGMyNDc1
NzUxYjcuLjQ3NmQxZTI3NTllNjA2ZjIwNzY0NTgyMTBkYjQ5MzNjODIzMDZlODIgMTAwNjQ0Ci0t
LSBhL1NvdXJjZS9XZWJDb3JlL3Rlc3RpbmcvSW50ZXJuYWxzLmNwcAorKysgYi9Tb3VyY2UvV2Vi
Q29yZS90ZXN0aW5nL0ludGVybmFscy5jcHAKQEAgLTE3MjMsNyArMTcyMyw3IEBAIHZvaWQgSW50
ZXJuYWxzOjpjbG9zZUR1bW15SW5zcGVjdG9yRnJvbnRlbmQoKQogICAgIG1fZnJvbnRlbmRDaGFu
bmVsID0gbnVsbHB0cjsKIAogICAgIG1fZnJvbnRlbmRXaW5kb3ctPmNsb3NlKG1fZnJvbnRlbmRX
aW5kb3ctPnNjcmlwdEV4ZWN1dGlvbkNvbnRleHQoKSk7Ci0gICAgbV9mcm9udGVuZFdpbmRvdy5j
bGVhcigpOworICAgIG1fZnJvbnRlbmRXaW5kb3cgPSBudWxscHRyOwogfQogCiB2b2lkIEludGVy
bmFsczo6c2V0SmF2YVNjcmlwdFByb2ZpbGluZ0VuYWJsZWQoYm9vbCBlbmFibGVkLCBFeGNlcHRp
b25Db2RlJiBlYykKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3dvcmtlcnMvV29ya2VyRXZl
bnRRdWV1ZS5jcHAgYi9Tb3VyY2UvV2ViQ29yZS93b3JrZXJzL1dvcmtlckV2ZW50UXVldWUuY3Bw
CmluZGV4IGY1MjBjMWRlZWZhYjFlYjE0ZjFiN2ZkOTI0MGZlODY0N2FjMjRhODkuLjA3MjEwNzY5
ZmQwNmJhOWNlODdhYzQ2NTJjOTllMmMxNzhkMjg0ZjEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJD
b3JlL3dvcmtlcnMvV29ya2VyRXZlbnRRdWV1ZS5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvd29y
a2Vycy9Xb3JrZXJFdmVudFF1ZXVlLmNwcApAQCAtNjgsMTMgKzY4LDEzIEBAIHB1YmxpYzoKICAg
ICAgICAgICAgIHJldHVybjsKICAgICAgICAgbV9ldmVudFF1ZXVlLm1fZXZlbnREaXNwYXRjaGVy
TWFwLnJlbW92ZShtX2V2ZW50LmdldCgpKTsKICAgICAgICAgbV9ldmVudC0+dGFyZ2V0KCktPmRp
c3BhdGNoRXZlbnQobV9ldmVudCk7Ci0gICAgICAgIG1fZXZlbnQuY2xlYXIoKTsKKyAgICAgICAg
bV9ldmVudCA9IG51bGxwdHI7CiAgICAgfQogCiAgICAgdm9pZCBjYW5jZWwoKQogICAgIHsKICAg
ICAgICAgbV9pc0NhbmNlbGxlZCA9IHRydWU7Ci0gICAgICAgIG1fZXZlbnQuY2xlYXIoKTsKKyAg
ICAgICAgbV9ldmVudCA9IG51bGxwdHI7CiAgICAgfQogCiBwcml2YXRlOgpkaWZmIC0tZ2l0IGEv
U291cmNlL1dlYkNvcmUvd29ya2Vycy9Xb3JrZXJNZXNzYWdpbmdQcm94eS5jcHAgYi9Tb3VyY2Uv
V2ViQ29yZS93b3JrZXJzL1dvcmtlck1lc3NhZ2luZ1Byb3h5LmNwcAppbmRleCA3ODQ1YjYxZmE4
ZGNmYWY5ZjY3ZmFhMGQ5NDI1ZDBmOWIyYjVkNjE1Li5iZDc0ZWFjZTAyY2QzYzEwNmZkZWFiYzdl
NGNkZjYxNjhhM2RiZTFlIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS93b3JrZXJzL1dvcmtl
ck1lc3NhZ2luZ1Byb3h5LmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS93b3JrZXJzL1dvcmtlck1l
c3NhZ2luZ1Byb3h5LmNwcApAQCAtMjY0LDcgKzI2NCw3IEBAIHZvaWQgV29ya2VyTWVzc2FnaW5n
UHJveHk6Ondvcmtlckdsb2JhbFNjb3BlRGVzdHJveWVkSW50ZXJuYWwoKQogICAgIC8vIFdvcmtl
ckdsb2JhbFNjb3BlRGVzdHJveWVkVGFzayBpcyBhbHdheXMgdGhlIGxhc3QgdG8gYmUgcGVyZm9y
bWVkLCBzbyB0aGUgcHJveHkgaXMgbm90IG5lZWRlZCBmb3IgY29tbXVuaWNhdGlvbgogICAgIC8v
IGluIGVpdGhlciBzaWRlIGFueSBtb3JlLiBIb3dldmVyLCB0aGUgV29ya2VyIG9iamVjdCBtYXkg
c3RpbGwgZXhpc3QsIGFuZCBpdCBhc3N1bWVzIHRoYXQgdGhlIHByb3h5IGV4aXN0cywgdG9vLgog
ICAgIG1fYXNrZWRUb1Rlcm1pbmF0ZSA9IHRydWU7Ci0gICAgbV93b3JrZXJUaHJlYWQgPSAwOwor
ICAgIG1fd29ya2VyVGhyZWFkID0gbnVsbHB0cjsKIAogICAgIEluc3BlY3Rvckluc3RydW1lbnRh
dGlvbjo6d29ya2VyR2xvYmFsU2NvcGVUZXJtaW5hdGVkKG1fc2NyaXB0RXhlY3V0aW9uQ29udGV4
dC5nZXQoKSwgdGhpcyk7CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3dvcmtlcnMvV29y
a2VyVGhyZWFkLmNwcCBiL1NvdXJjZS9XZWJDb3JlL3dvcmtlcnMvV29ya2VyVGhyZWFkLmNwcApp
bmRleCA4NzNjODI5NmU2ZTJlZjExNzE0MmUwNWRmODlmNGJjNDZhMTRkOTA0Li5lNTE1NTUyNmM5
OGU5MTAyOTdlMDFiODZmZWQyOGIxMmY0ZDAyMjkwIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29y
ZS93b3JrZXJzL1dvcmtlclRocmVhZC5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvd29ya2Vycy9X
b3JrZXJUaHJlYWQuY3BwCkBAIC0xNzEsNyArMTcxLDcgQEAgdm9pZCBXb3JrZXJUaHJlYWQ6Ondv
cmtlclRocmVhZCgpCiAKICAgICAvLyBUaGUgYmVsb3cgYXNzaWdubWVudCB3aWxsIGRlc3Ryb3kg
dGhlIGNvbnRleHQsIHdoaWNoIHdpbGwgaW4gdHVybiBub3RpZnkgbWVzc2FnaW5nIHByb3h5Lgog
ICAgIC8vIFdlIGNhbm5vdCBsZXQgYW55IG9iamVjdHMgc3Vydml2ZSBwYXN0IHRocmVhZCBleGl0
LCBiZWNhdXNlIG5vIG90aGVyIHRocmVhZCB3aWxsIHJ1biBHQyBvciBvdGhlcndpc2UgZGVzdHJv
eSB0aGVtLgotICAgIG1fd29ya2VyR2xvYmFsU2NvcGUgPSAwOworICAgIG1fd29ya2VyR2xvYmFs
U2NvcGUgPSBudWxscHRyOwogCiAgICAgLy8gQ2xlYW4gdXAgV2ViQ29yZTo6VGhyZWFkR2xvYmFs
RGF0YSBiZWZvcmUgV1RGOjpXVEZUaHJlYWREYXRhIGdvZXMgYXdheSEKICAgICB0aHJlYWRHbG9i
YWxEYXRhKCkuZGVzdHJveSgpOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUveG1sL1hNTEh0
dHBSZXF1ZXN0LmNwcCBiL1NvdXJjZS9XZWJDb3JlL3htbC9YTUxIdHRwUmVxdWVzdC5jcHAKaW5k
ZXggYzdlOGMwYjJiMGZkZDNhNzliYTA5ZDJmZDkxNWYzMjE1ZmU2YzcyOS4uNDc1ZDZmYjRkNTZi
ZjY1NzVlZjUwYzFjNTQ0ZDU4ODM1MDViOTQ3NSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUv
eG1sL1hNTEh0dHBSZXF1ZXN0LmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS94bWwvWE1MSHR0cFJl
cXVlc3QuY3BwCkBAIC0yNDUsNyArMjQ1LDcgQEAgQmxvYiogWE1MSHR0cFJlcXVlc3Q6OnJlc3Bv
bnNlQmxvYigpCiAgICAgICAgICAgICBkYXRhLmFwcGVuZChtX2JpbmFyeVJlc3BvbnNlQnVpbGRl
ci0+ZGF0YSgpLCBtX2JpbmFyeVJlc3BvbnNlQnVpbGRlci0+c2l6ZSgpKTsKICAgICAgICAgICAg
IFN0cmluZyBub3JtYWxpemVkQ29udGVudFR5cGUgPSBCbG9iOjpub3JtYWxpemVkQ29udGVudFR5
cGUocmVzcG9uc2VNSU1FVHlwZSgpKTsgLy8gcmVzcG9uc2VNSU1FVHlwZSBkZWZhdWx0cyB0byB0
ZXh0L3htbCB3aGljaCBtYXkgYmUgaW5jb3JyZWN0LgogICAgICAgICAgICAgbV9yZXNwb25zZUJs
b2IgPSBCbG9iOjpjcmVhdGUoV1RGOjptb3ZlKGRhdGEpLCBub3JtYWxpemVkQ29udGVudFR5cGUp
OwotICAgICAgICAgICAgbV9iaW5hcnlSZXNwb25zZUJ1aWxkZXIuY2xlYXIoKTsKKyAgICAgICAg
ICAgIG1fYmluYXJ5UmVzcG9uc2VCdWlsZGVyID0gbnVsbHB0cjsKICAgICAgICAgfSBlbHNlIHsK
ICAgICAgICAgICAgIC8vIElmIHdlIGVycm9yZWQgb3V0IG9yIGdvdCBubyBkYXRhLCB3ZSBzdGls
bCByZXR1cm4gYSBibG9iLCBqdXN0IGFuIGVtcHR5IG9uZS4KICAgICAgICAgICAgIG1fcmVzcG9u
c2VCbG9iID0gQmxvYjo6Y3JlYXRlKCk7CkBAIC0yNjUsNyArMjY1LDcgQEAgQXJyYXlCdWZmZXIq
IFhNTEh0dHBSZXF1ZXN0OjpyZXNwb25zZUFycmF5QnVmZmVyKCkKICAgICAgICAgICAgIG1fcmVz
cG9uc2VBcnJheUJ1ZmZlciA9IG1fYmluYXJ5UmVzcG9uc2VCdWlsZGVyLT5jcmVhdGVBcnJheUJ1
ZmZlcigpOwogICAgICAgICBlbHNlCiAgICAgICAgICAgICBtX3Jlc3BvbnNlQXJyYXlCdWZmZXIg
PSBBcnJheUJ1ZmZlcjo6Y3JlYXRlKG51bGxwdHIsIDApOwotICAgICAgICBtX2JpbmFyeVJlc3Bv
bnNlQnVpbGRlci5jbGVhcigpOworICAgICAgICBtX2JpbmFyeVJlc3BvbnNlQnVpbGRlciA9IG51
bGxwdHI7CiAgICAgfQogCiAgICAgcmV0dXJuIG1fcmVzcG9uc2VBcnJheUJ1ZmZlci5nZXQoKTsK
QEAgLTg2OCw4ICs4NjgsOCBAQCB2b2lkIFhNTEh0dHBSZXF1ZXN0OjpjbGVhclJlc3BvbnNlQnVm
ZmVycygpCiAgICAgbV9jcmVhdGVkRG9jdW1lbnQgPSBmYWxzZTsKICAgICBtX3Jlc3BvbnNlRG9j
dW1lbnQgPSBudWxscHRyOwogICAgIG1fcmVzcG9uc2VCbG9iID0gbnVsbHB0cjsKLSAgICBtX2Jp
bmFyeVJlc3BvbnNlQnVpbGRlci5jbGVhcigpOwotICAgIG1fcmVzcG9uc2VBcnJheUJ1ZmZlci5j
bGVhcigpOworICAgIG1fYmluYXJ5UmVzcG9uc2VCdWlsZGVyID0gbnVsbHB0cjsKKyAgICBtX3Jl
c3BvbnNlQXJyYXlCdWZmZXIgPSBudWxscHRyOwogICAgIG1fcmVzcG9uc2VDYWNoZUlzVmFsaWQg
PSBmYWxzZTsKIH0KIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUveG1sL1hTTFRQcm9jZXNz
b3IuY3BwIGIvU291cmNlL1dlYkNvcmUveG1sL1hTTFRQcm9jZXNzb3IuY3BwCmluZGV4IDA2OWNj
ZWNiN2JmMmM5NDAwNmRlOTQ4NWQxNjMyODRlODQwNzkxZmIuLjQ5MWYxMmM5OWQ4YTViNDIwYWZm
YzI5MDc3YzRiM2RlMjEzZDU0MDggMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3htbC9YU0xU
UHJvY2Vzc29yLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS94bWwvWFNMVFByb2Nlc3Nvci5jcHAK
QEAgLTE2Miw4ICsxNjIsOCBAQCB2b2lkIFhTTFRQcm9jZXNzb3I6OnJlbW92ZVBhcmFtZXRlcihj
b25zdCBTdHJpbmcmIC8qbmFtZXNwYWNlVVJJKi8sIGNvbnN0IFN0cmluZwogCiB2b2lkIFhTTFRQ
cm9jZXNzb3I6OnJlc2V0KCkKIHsKLSAgICBtX3N0eWxlc2hlZXQuY2xlYXIoKTsKLSAgICBtX3N0
eWxlc2hlZXRSb290Tm9kZS5jbGVhcigpOworICAgIG1fc3R5bGVzaGVldCA9IG51bGxwdHI7Cisg
ICAgbV9zdHlsZXNoZWV0Um9vdE5vZGUgPSBudWxscHRyOwogICAgIG1fcGFyYW1ldGVycy5jbGVh
cigpOwogfQogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1N0b3JhZ2UvU3RvcmFnZUFyZWFT
eW5jLmNwcCBiL1NvdXJjZS9XZWJLaXQvU3RvcmFnZS9TdG9yYWdlQXJlYVN5bmMuY3BwCmluZGV4
IGQxZWIzMmEwZGE0Y2QzYmJlYjZmODhjNzYxNWUyYmZkOWI5NzcxODYuLmJhMTdmMTg5ODFlM2Jl
NmYxODQwZjkwOThhOGIxYWIxOTAwNTNmNTkgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvU3Rv
cmFnZS9TdG9yYWdlQXJlYVN5bmMuY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQvU3RvcmFnZS9TdG9y
YWdlQXJlYVN5bmMuY3BwCkBAIC04OCw3ICs4OCw3IEBAIHZvaWQgU3RvcmFnZUFyZWFTeW5jOjpz
Y2hlZHVsZUZpbmFsU3luYygpCiAgICAgQVNTRVJUKGlzTWFpblRocmVhZCgpKTsKICAgICAvLyBG
SVhNRTogV2UgZG8gdGhpcyB0byBhdm9pZCByYWNlcywgYnV0IGl0J2QgYmUgYmV0dGVyIHRvIG1h
a2UgdGhpbmdzIHNhZmUgd2l0aG91dCBibG9ja2luZy4KICAgICBibG9ja1VudGlsSW1wb3J0Q29t
cGxldGUoKTsKLSAgICBtX3N0b3JhZ2VBcmVhID0gMDsgIC8vIFRoaXMgaXMgZG9uZSBpbiBibG9j
a1VudGlsSW1wb3J0Q29tcGxldGUoKSBidXQgdGhpcyBpcyBoZXJlIGFzIGEgZm9ybSBvZiBkb2N1
bWVudGF0aW9uIHRoYXQgd2UgbXVzdCBiZSBhYnNvbHV0ZWx5IHN1cmUgdGhlIHJlZiBjb3VudCBj
eWNsZSBpcyBicm9rZW4uCisgICAgbV9zdG9yYWdlQXJlYSA9IG51bGxwdHI7IC8vIFRoaXMgaXMg
ZG9uZSBpbiBibG9ja1VudGlsSW1wb3J0Q29tcGxldGUoKSBidXQgdGhpcyBpcyBoZXJlIGFzIGEg
Zm9ybSBvZiBkb2N1bWVudGF0aW9uIHRoYXQgd2UgbXVzdCBiZSBhYnNvbHV0ZWx5IHN1cmUgdGhl
IHJlZiBjb3VudCBjeWNsZSBpcyBicm9rZW4uCiAKICAgICBpZiAobV9zeW5jVGltZXIuaXNBY3Rp
dmUoKSkKICAgICAgICAgbV9zeW5jVGltZXIuc3RvcCgpOwpAQCAtMzc1LDcgKzM3NSw3IEBAIHZv
aWQgU3RvcmFnZUFyZWFTeW5jOjpibG9ja1VudGlsSW1wb3J0Q29tcGxldGUoKQogICAgIE11dGV4
TG9ja2VyIGxvY2tlcihtX2ltcG9ydExvY2spOwogICAgIHdoaWxlICghbV9pbXBvcnRDb21wbGV0
ZSkKICAgICAgICAgbV9pbXBvcnRDb25kaXRpb24ud2FpdChtX2ltcG9ydExvY2spOwotICAgIG1f
c3RvcmFnZUFyZWEgPSAwOworICAgIG1fc3RvcmFnZUFyZWEgPSBudWxscHRyOwogfQogCiB2b2lk
IFN0b3JhZ2VBcmVhU3luYzo6c3luYyhib29sIGNsZWFySXRlbXMsIGNvbnN0IEhhc2hNYXA8U3Ry
aW5nLCBTdHJpbmc+JiBpdGVtcykKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvbWFjL1BsdWdp
bnMvSG9zdGVkL1dlYkhvc3RlZE5ldHNjYXBlUGx1Z2luVmlldy5tbSBiL1NvdXJjZS9XZWJLaXQv
bWFjL1BsdWdpbnMvSG9zdGVkL1dlYkhvc3RlZE5ldHNjYXBlUGx1Z2luVmlldy5tbQppbmRleCA3
NjAwNTgzNjkwZDc5NjBjNWQ4YTU5YTczZTcyZDAyNWRiMmNmZjM3Li5hYzQzNGVjMWE5ZjM0OGM3
MDVjOGJiMDEyY2U2YTRlYzg5N2VmMzBhIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L21hYy9Q
bHVnaW5zL0hvc3RlZC9XZWJIb3N0ZWROZXRzY2FwZVBsdWdpblZpZXcubW0KKysrIGIvU291cmNl
L1dlYktpdC9tYWMvUGx1Z2lucy9Ib3N0ZWQvV2ViSG9zdGVkTmV0c2NhcGVQbHVnaW5WaWV3Lm1t
CkBAIC0yODEsNyArMjgxLDcgQEAgLSAodm9pZClkZXN0cm95UGx1Z2luCiAgICAgICAgIH0KICAg
ICAgICAgCiAgICAgICAgIF9wcm94eS0+ZGVzdHJveSgpOwotICAgICAgICBfcHJveHkgPSAwOwor
ICAgICAgICBfcHJveHkgPSBudWxscHRyOwogICAgIH0KICAgICAKICAgICBfcGx1Z2luTGF5ZXIg
PSAwOwpAQCAtNDMyLDcgKzQzMiw3IEBAIC0gKHZvaWQpcGx1Z2luSG9zdERpZWQKICAgICAgICAg
ZG93bmNhc3Q8UmVuZGVyRW1iZWRkZWRPYmplY3Q+KCpfZWxlbWVudC0+cmVuZGVyZXIoKSkuc2V0
UGx1Z2luVW5hdmFpbGFiaWxpdHlSZWFzb24oUmVuZGVyRW1iZWRkZWRPYmplY3Q6OlBsdWdpbkNy
YXNoZWQpOwogCiAgICAgX3BsdWdpbkxheWVyID0gbmlsOwotICAgIF9wcm94eSA9IDA7CisgICAg
X3Byb3h5ID0gbnVsbHB0cjsKICAgICAKICAgICAvLyBObyBuZWVkIGZvciB1cyB0byBiZSBsYXll
ciBiYWNrZWQgYW55bW9yZQogICAgIHNlbGYud2FudHNMYXllciA9IE5POwpkaWZmIC0tZ2l0IGEv
U291cmNlL1dlYktpdC9tYWMvV2ViQ29yZVN1cHBvcnQvV2ViRWRpdG9yQ2xpZW50Lm1tIGIvU291
cmNlL1dlYktpdC9tYWMvV2ViQ29yZVN1cHBvcnQvV2ViRWRpdG9yQ2xpZW50Lm1tCmluZGV4IDZj
ZWQxOTQxMzg2YjBjNjkxMDYyNjdmMWNkNzRkOGVjM2ExOWQ5NTYuLmMxODhiOWQ3Mzk1N2E0YTIz
MDNkODcwMjE4MzEzMDZjZDYwMTNiMjkgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvbWFjL1dl
YkNvcmVTdXBwb3J0L1dlYkVkaXRvckNsaWVudC5tbQorKysgYi9Tb3VyY2UvV2ViS2l0L21hYy9X
ZWJDb3JlU3VwcG9ydC9XZWJFZGl0b3JDbGllbnQubW0KQEAgLTExNDMsNyArMTE0Myw3IEBAIHZv
aWQgV2ViRWRpdG9yQ2xpZW50OjpkaWRDaGVja1N1Y2NlZWQoaW50IHNlcXVlbmNlLCBOU0FycmF5
KiByZXN1bHRzKQogewogICAgIEFTU0VSVF9VTlVTRUQoc2VxdWVuY2UsIHNlcXVlbmNlID09IG1f
dGV4dENoZWNraW5nUmVxdWVzdC0+ZGF0YSgpLnNlcXVlbmNlKCkpOwogICAgIG1fdGV4dENoZWNr
aW5nUmVxdWVzdC0+ZGlkU3VjY2VlZChjb3JlKHJlc3VsdHMsIG1fdGV4dENoZWNraW5nUmVxdWVz
dC0+ZGF0YSgpLm1hc2soKSkpOwotICAgIG1fdGV4dENoZWNraW5nUmVxdWVzdC5jbGVhcigpOwor
ICAgIG1fdGV4dENoZWNraW5nUmVxdWVzdCA9IG51bGxwdHI7CiB9CiAjZW5kaWYKIApkaWZmIC0t
Z2l0IGEvU291cmNlL1dlYktpdC9tYWMvV2ViQ29yZVN1cHBvcnQvV2ViVXNlck1lZGlhQ2xpZW50
Lm1tIGIvU291cmNlL1dlYktpdC9tYWMvV2ViQ29yZVN1cHBvcnQvV2ViVXNlck1lZGlhQ2xpZW50
Lm1tCmluZGV4IDYyMmJkOWRkM2FmZTA4OTJiMWRjMmRmNTBiYTdlNGI0MzIyYjE1OWQuLjE3ZjE2
NDczZWQ1YjlkNDM0ODMwZWQ3YzcyNjk4NjVkN2E1YjM1M2YgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9X
ZWJLaXQvbWFjL1dlYkNvcmVTdXBwb3J0L1dlYlVzZXJNZWRpYUNsaWVudC5tbQorKysgYi9Tb3Vy
Y2UvV2ViS2l0L21hYy9XZWJDb3JlU3VwcG9ydC9XZWJVc2VyTWVkaWFDbGllbnQubW0KQEAgLTE0
Miw3ICsxNDIsNyBAQCAtICh2b2lkKWNhbmNlbFJlcXVlc3QKICAgICBpZiAoIV9yZXF1ZXN0KQog
ICAgICAgICByZXR1cm47CiAKLSAgICBfcmVxdWVzdCA9IDA7CisgICAgX3JlcXVlc3QgPSBudWxs
cHRyOwogI2VuZGlmCiAgICAgCiB9CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L3dpbi9XZWJW
aWV3LmNwcCBiL1NvdXJjZS9XZWJLaXQvd2luL1dlYlZpZXcuY3BwCmluZGV4IDQzNzUyNzEyOGQx
NTQxZmM2OWU4N2QwNThjYjllOTA2MmI2MzYyM2QuLmI3OWU2M2M1NDY1NWIxNzMwZjA0ZTZkNmE4
ZTA3NDc0ZDZkYWJiMDEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvd2luL1dlYlZpZXcuY3Bw
CisrKyBiL1NvdXJjZS9XZWJLaXQvd2luL1dlYlZpZXcuY3BwCkBAIC04NTEsOCArODUxLDggQEAg
dm9pZCBXZWJWaWV3OjpkZWxldGVCYWNraW5nU3RvcmUoKQogICAgICAgICBLaWxsVGltZXIobV92
aWV3V2luZG93LCBEZWxldGVCYWNraW5nU3RvcmVUaW1lcik7CiAgICAgICAgIG1fZGVsZXRlQmFj
a2luZ1N0b3JlVGltZXJBY3RpdmUgPSBmYWxzZTsKICAgICB9Ci0gICAgbV9iYWNraW5nU3RvcmVC
aXRtYXAuY2xlYXIoKTsKLSAgICBtX2JhY2tpbmdTdG9yZURpcnR5UmVnaW9uLmNsZWFyKCk7Cisg
ICAgbV9iYWNraW5nU3RvcmVCaXRtYXAgPSBudWxscHRyOworICAgIG1fYmFja2luZ1N0b3JlRGly
dHlSZWdpb24gPSBudWxscHRyOwogICAgIG1fYmFja2luZ1N0b3JlU2l6ZS5jeCA9IG1fYmFja2lu
Z1N0b3JlU2l6ZS5jeSA9IDA7CiB9CiAKQEAgLTEwNzksNyArMTA3OSw3IEBAIHZvaWQgV2ViVmll
dzo6dXBkYXRlQmFja2luZ1N0b3JlKEZyYW1lVmlldyogZnJhbWVWaWV3LCBIREMgZGMsIGJvb2wg
YmFja2luZ1N0b3JlCiAgICAgICAgIGlmIChtX3VpRGVsZWdhdGVQcml2YXRlKQogICAgICAgICAg
ICAgbV91aURlbGVnYXRlUHJpdmF0ZS0+d2ViVmlld1BhaW50ZWQodGhpcyk7CiAKLSAgICAgICAg
bV9iYWNraW5nU3RvcmVEaXJ0eVJlZ2lvbi5jbGVhcigpOworICAgICAgICBtX2JhY2tpbmdTdG9y
ZURpcnR5UmVnaW9uID0gbnVsbHB0cjsKICAgICB9CiAKICAgICBpZiAoIWRjKQpkaWZmIC0tZ2l0
IGEvU291cmNlL1dlYktpdDIvRGF0YWJhc2VQcm9jZXNzL0luZGV4ZWREQi9VbmlxdWVJREJEYXRh
YmFzZS5jcHAgYi9Tb3VyY2UvV2ViS2l0Mi9EYXRhYmFzZVByb2Nlc3MvSW5kZXhlZERCL1VuaXF1
ZUlEQkRhdGFiYXNlLmNwcAppbmRleCA2MTk4MDVjZDlhMjYxZTcxNWIyNzg4OGMxYjFiZWYxMTkz
MmUzZWNkLi4zZDJjYTViYmJmYWM2NGFlYjgxNjgwYmE4NzVmNjA3Yzg0ZTRiZDFkIDEwMDY0NAot
LS0gYS9Tb3VyY2UvV2ViS2l0Mi9EYXRhYmFzZVByb2Nlc3MvSW5kZXhlZERCL1VuaXF1ZUlEQkRh
dGFiYXNlLmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0Mi9EYXRhYmFzZVByb2Nlc3MvSW5kZXhlZERC
L1VuaXF1ZUlEQkRhdGFiYXNlLmNwcApAQCAtMTQ3LDcgKzE0Nyw3IEBAIHZvaWQgVW5pcXVlSURC
RGF0YWJhc2U6OnNodXRkb3duQmFja2luZ1N0b3JlKFVuaXF1ZUlEQkRhdGFiYXNlU2h1dGRvd25U
eXBlIHR5cGUsCiB7CiAgICAgQVNTRVJUKCFSdW5Mb29wOjppc01haW4oKSk7CiAKLSAgICBtX2Jh
Y2tpbmdTdG9yZS5jbGVhcigpOworICAgIG1fYmFja2luZ1N0b3JlID0gbnVsbHB0cjsKIAogICAg
IGlmICh0eXBlID09IFVuaXF1ZUlEQkRhdGFiYXNlU2h1dGRvd25UeXBlOjpEZWxldGVTaHV0ZG93
bikgewogICAgICAgICBTdHJpbmcgZGJGaWxlbmFtZSA9IFVuaXF1ZUlEQkRhdGFiYXNlOjpjYWxj
dWxhdGVBYnNvbHV0ZURhdGFiYXNlRmlsZW5hbWUoZGF0YWJhc2VEaXJlY3RvcnkpOwpkaWZmIC0t
Z2l0IGEvU291cmNlL1dlYktpdDIvUGx1Z2luUHJvY2Vzcy9QbHVnaW5Db250cm9sbGVyUHJveHku
Y3BwIGIvU291cmNlL1dlYktpdDIvUGx1Z2luUHJvY2Vzcy9QbHVnaW5Db250cm9sbGVyUHJveHku
Y3BwCmluZGV4IDg4ZDZkMTc3ZGE4NDYxZWY4ZjRlMzIzY2M2YzYyZmY5ZGNmNGMxODEuLjRhOWY0
NjdlODc4ZGU4MWM2NjFiZGVkMzVkNzYxNjYzMDYxMWM0N2MgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9X
ZWJLaXQyL1BsdWdpblByb2Nlc3MvUGx1Z2luQ29udHJvbGxlclByb3h5LmNwcAorKysgYi9Tb3Vy
Y2UvV2ViS2l0Mi9QbHVnaW5Qcm9jZXNzL1BsdWdpbkNvbnRyb2xsZXJQcm94eS5jcHAKQEAgLTEy
Niw3ICsxMjYsNyBAQCBib29sIFBsdWdpbkNvbnRyb2xsZXJQcm94eTo6aW5pdGlhbGl6ZShjb25z
dCBQbHVnaW5DcmVhdGlvblBhcmFtZXRlcnMmIGNyZWF0aW9uUAogICAgICAgICAvLyB1c2VkIGFz
IGFuIGlkZW50aWZpZXIgc28gaXQncyBPSyB0byBqdXN0IGdldCBhIHdlYWsgcmVmZXJlbmNlLgog
ICAgICAgICBQbHVnaW4qIHBsdWdpbiA9IG1fcGx1Z2luLmdldCgpOwogICAgICAgICAKLSAgICAg
ICAgbV9wbHVnaW4gPSAwOworICAgICAgICBtX3BsdWdpbiA9IG51bGxwdHI7CiAKICAgICAgICAg
Ly8gVGhpcyB3aWxsIGRlbGV0ZSB0aGUgcGx1Zy1pbiBjb250cm9sbGVyIHByb3h5IG9iamVjdC4K
ICAgICAgICAgbV9jb25uZWN0aW9uLT5yZW1vdmVQbHVnaW5Db250cm9sbGVyUHJveHkodGhpcywg
cGx1Z2luKTsKQEAgLTE1Niw3ICsxNTYsNyBAQCB2b2lkIFBsdWdpbkNvbnRyb2xsZXJQcm94eTo6
ZGVzdHJveSgpCiAgICAgUGx1Z2luKiBwbHVnaW4gPSBtX3BsdWdpbi5nZXQoKTsKIAogICAgIG1f
cGx1Z2luLT5kZXN0cm95UGx1Z2luKCk7Ci0gICAgbV9wbHVnaW4gPSAwOworICAgIG1fcGx1Z2lu
ID0gbnVsbHB0cjsKIAogICAgIHBsYXRmb3JtRGVzdHJveSgpOwogCmRpZmYgLS1naXQgYS9Tb3Vy
Y2UvV2ViS2l0Mi9TaGFyZWQvQ2hpbGRQcm9jZXNzUHJveHkuY3BwIGIvU291cmNlL1dlYktpdDIv
U2hhcmVkL0NoaWxkUHJvY2Vzc1Byb3h5LmNwcAppbmRleCAzOTMwOTg5NzllNjhlYzEyNDQwZTEy
NWZjYzNhMjQyYjA3ZTY4OTdkLi5kOWUwN2VmNGM3ZDYyZGU4NmRmYzY5OGY3MDU0Zjg4YzRhODUz
Mzg1IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0Mi9TaGFyZWQvQ2hpbGRQcm9jZXNzUHJveHku
Y3BwCisrKyBiL1NvdXJjZS9XZWJLaXQyL1NoYXJlZC9DaGlsZFByb2Nlc3NQcm94eS5jcHAKQEAg
LTQyLDcgKzQyLDcgQEAgQ2hpbGRQcm9jZXNzUHJveHk6On5DaGlsZFByb2Nlc3NQcm94eSgpCiAK
ICAgICBpZiAobV9wcm9jZXNzTGF1bmNoZXIpIHsKICAgICAgICAgbV9wcm9jZXNzTGF1bmNoZXIt
PmludmFsaWRhdGUoKTsKLSAgICAgICAgbV9wcm9jZXNzTGF1bmNoZXIgPSAwOworICAgICAgICBt
X3Byb2Nlc3NMYXVuY2hlciA9IG51bGxwdHI7CiAgICAgfQogfQogCmRpZmYgLS1naXQgYS9Tb3Vy
Y2UvV2ViS2l0Mi9TaGFyZWQvQ29vcmRpbmF0ZWRHcmFwaGljcy9Db29yZGluYXRlZEJhY2tpbmdT
dG9yZS5jcHAgYi9Tb3VyY2UvV2ViS2l0Mi9TaGFyZWQvQ29vcmRpbmF0ZWRHcmFwaGljcy9Db29y
ZGluYXRlZEJhY2tpbmdTdG9yZS5jcHAKaW5kZXggYjlhMDVmOTA2ZTljMTFmMDI3ZWExYTE1MjVl
ZTQzZWNmZDVjNTNkNy4uYzY2ZDI4Yjc1Mzk3NGEwNTc0MGNiNmFmNjhlMmM0ODQ4MWQ5M2MzMiAx
MDA2NDQKLS0tIGEvU291cmNlL1dlYktpdDIvU2hhcmVkL0Nvb3JkaW5hdGVkR3JhcGhpY3MvQ29v
cmRpbmF0ZWRCYWNraW5nU3RvcmUuY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQyL1NoYXJlZC9Db29y
ZGluYXRlZEdyYXBoaWNzL0Nvb3JkaW5hdGVkQmFja2luZ1N0b3JlLmNwcApAQCAtNTUsNyArNTUs
NyBAQCB2b2lkIENvb3JkaW5hdGVkQmFja2luZ1N0b3JlVGlsZTo6c3dhcEJ1ZmZlcnMoVGV4dHVy
ZU1hcHBlciogdGV4dHVyZU1hcHBlcikKICAgICAgICAgdGV4dHVyZS0+cmVzZXQobV90aWxlUmVj
dC5zaXplKCksIG1fc3VyZmFjZS0+c3VwcG9ydHNBbHBoYSgpKTsKIAogICAgIG1fc3VyZmFjZS0+
Y29weVRvVGV4dHVyZSh0ZXh0dXJlLCBtX3NvdXJjZVJlY3QsIG1fc3VyZmFjZU9mZnNldCk7Ci0g
ICAgbV9zdXJmYWNlLmNsZWFyKCk7CisgICAgbV9zdXJmYWNlID0gbnVsbHB0cjsKIH0KIAogdm9p
ZCBDb29yZGluYXRlZEJhY2tpbmdTdG9yZVRpbGU6OnNldEJhY2tCdWZmZXIoY29uc3QgSW50UmVj
dCYgdGlsZVJlY3QsIGNvbnN0IEludFJlY3QmIHNvdXJjZVJlY3QsIFBhc3NSZWZQdHI8Q29vcmRp
bmF0ZWRTdXJmYWNlPiBidWZmZXIsIGNvbnN0IEludFBvaW50JiBvZmZzZXQpCmRpZmYgLS1naXQg
YS9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvQVBJL2VmbC9Fd2tWaWV3LmNwcCBiL1NvdXJjZS9X
ZWJLaXQyL1VJUHJvY2Vzcy9BUEkvZWZsL0V3a1ZpZXcuY3BwCmluZGV4IDc3YjUwMWE4NGRmNjQz
ZTFiZGVlN2U1NzQ1ZmYxOTQ0MTQyNWFmNTkuLjQ1ODg0NjQ1Nzg3Mzc0NzM3ZDgzYmJjNDA1ZWU4
YzdiZmU3NDVmYzkgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9BUEkvZWZs
L0V3a1ZpZXcuY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9BUEkvZWZsL0V3a1Zp
ZXcuY3BwCkBAIC05NDAsNyArOTQwLDcgQEAgdm9pZCBFd2tWaWV3OjpoaWRlQ29udGV4dE1lbnUo
KQogICAgIGlmIChzZC0+YXBpLT5jb250ZXh0X21lbnVfaGlkZSkKICAgICAgICAgc2QtPmFwaS0+
Y29udGV4dF9tZW51X2hpZGUoc2QpOwogCi0gICAgbV9jb250ZXh0TWVudS5jbGVhcigpOworICAg
IG1fY29udGV4dE1lbnUgPSBudWxscHRyOwogfQogCiB2b2lkIEV3a1ZpZXc6OnJlcXVlc3RQb3B1
cE1lbnUoV0tQb3B1cE1lbnVMaXN0ZW5lclJlZiBwb3B1cE1lbnVMaXN0ZW5lciwgY29uc3QgV0tS
ZWN0JiByZWN0LCBXS1BvcHVwSXRlbVRleHREaXJlY3Rpb24gdGV4dERpcmVjdGlvbiwgZG91Ymxl
IHBhZ2VTY2FsZUZhY3RvciwgV0tBcnJheVJlZiBpdGVtcywgaW50MzJfdCBzZWxlY3RlZEluZGV4
KQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL0FQSS9tYWMvV0tWaWV3Lm1t
IGIvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL0FQSS9tYWMvV0tWaWV3Lm1tCmluZGV4IGQ1NTE1
YWUxZmMzZjQyOTlkYTEyNDMxYTQxYTc0N2UzOGEzZTQ2NTcuLmU4ZDI0NDk1OGYwOWRlNWZkZWM5
ZTFiYzNiMTRhMjYxMDIyZTMyYTYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vz
cy9BUEkvbWFjL1dLVmlldy5tbQorKysgYi9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvQVBJL21h
Yy9XS1ZpZXcubW0KQEAgLTM1MjAsNyArMzUyMCw3IEBAIC0gKHZvaWQpX3NldFByb21pc2VkRGF0
YUZvckF0dGFjaG1lbnQ6KE5TU3RyaW5nICopZmlsZW5hbWUgd2l0aEV4dGVuc2lvbjooTlNTdHJp
CiAKIC0gKHZvaWQpcGFzdGVib2FyZENoYW5nZWRPd25lcjooTlNQYXN0ZWJvYXJkICopcGFzdGVi
b2FyZAogewotICAgIF9kYXRhLT5fcHJvbWlzZWRJbWFnZSA9IDA7CisgICAgX2RhdGEtPl9wcm9t
aXNlZEltYWdlID0gbnVsbHB0cjsKICAgICBfZGF0YS0+X3Byb21pc2VkRmlsZW5hbWUgPSAiIjsK
ICAgICBfZGF0YS0+X3Byb21pc2VkVVJMID0gIiI7CiB9CkBAIC0zNTMxLDcgKzM1MzEsNyBAQCAt
ICh2b2lkKXBhc3RlYm9hcmQ6KE5TUGFzdGVib2FyZCAqKXBhc3RlYm9hcmQgcHJvdmlkZURhdGFG
b3JUeXBlOihOU1N0cmluZyAqKXR5cAogCiAgICAgaWYgKFt0eXBlIGlzRXF1YWw6TlNUSUZGUGJv
YXJkVHlwZV0gJiYgX2RhdGEtPl9wcm9taXNlZEltYWdlKSB7CiAgICAgICAgIFtwYXN0ZWJvYXJk
IHNldERhdGE6KE5TRGF0YSAqKV9kYXRhLT5fcHJvbWlzZWRJbWFnZS0+Z2V0VElGRlJlcHJlc2Vu
dGF0aW9uKCkgZm9yVHlwZTpOU1RJRkZQYm9hcmRUeXBlXTsKLSAgICAgICAgX2RhdGEtPl9wcm9t
aXNlZEltYWdlID0gMDsKKyAgICAgICAgX2RhdGEtPl9wcm9taXNlZEltYWdlID0gbnVsbHB0cjsK
ICAgICB9CiB9CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9JbnNwZWN0
b3JTZXJ2ZXIvV2ViU29ja2V0U2VydmVyQ29ubmVjdGlvbi5jcHAgYi9Tb3VyY2UvV2ViS2l0Mi9V
SVByb2Nlc3MvSW5zcGVjdG9yU2VydmVyL1dlYlNvY2tldFNlcnZlckNvbm5lY3Rpb24uY3BwCmlu
ZGV4IDgwOTdhYzFhNGNjMWUwZGRiZmFkZmY5OTBjM2U0ZTUyNzdiZmU0MDYuLjk0YTI0YzkwYzM4
NjZhZjU5N2ViMGQ1OTFmMzY5ZjcxMGRmNjA3YzggMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQy
L1VJUHJvY2Vzcy9JbnNwZWN0b3JTZXJ2ZXIvV2ViU29ja2V0U2VydmVyQ29ubmVjdGlvbi5jcHAK
KysrIGIvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL0luc3BlY3RvclNlcnZlci9XZWJTb2NrZXRT
ZXJ2ZXJDb25uZWN0aW9uLmNwcApAQCAtMTI2LDcgKzEyNiw3IEBAIHZvaWQgV2ViU29ja2V0U2Vy
dmVyQ29ubmVjdGlvbjo6c2VuZFJhd0RhdGEoY29uc3QgY2hhciogZGF0YSwgc2l6ZV90IGxlbmd0
aCkKIHZvaWQgV2ViU29ja2V0U2VydmVyQ29ubmVjdGlvbjo6ZGlkQ2xvc2VTb2NrZXRTdHJlYW0o
U29ja2V0U3RyZWFtSGFuZGxlKikKIHsKICAgICAvLyBEZXN0cm95IHRoZSBTb2NrZXRTdHJlYW1I
YW5kbGUgbm93IHRvIHByZXZlbnQgY2xvc2luZyBhbiBhbHJlYWR5IGNsb3NlZCBzb2NrZXQgbGF0
ZXIuCi0gICAgbV9zb2NrZXQuY2xlYXIoKTsKKyAgICBtX3NvY2tldCA9IG51bGxwdHI7CiAKICAg
ICAvLyBXZWIgU29ja2V0IE1vZGUuCiAgICAgaWYgKG1fbW9kZSA9PSBXZWJTb2NrZXQpCmRpZmYg
LS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvTmV0d29yay9DdXN0b21Qcm90b2NvbHMv
bWFjL0N1c3RvbVByb3RvY29sTWFuYWdlclByb3h5TWFjLm1tIGIvU291cmNlL1dlYktpdDIvVUlQ
cm9jZXNzL05ldHdvcmsvQ3VzdG9tUHJvdG9jb2xzL21hYy9DdXN0b21Qcm90b2NvbE1hbmFnZXJQ
cm94eU1hYy5tbQppbmRleCA5NDI1Mjk5YTJlYzczZjhiZTBkMTk5YTExM2EyZDZiYmE4YjYxOTc0
Li41MTNiMWUwY2ZmOTdmYjE2ZmU0YWJlOTFlYThiZmE0ZGRlYzEyYmE0IDEwMDY0NAotLS0gYS9T
b3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvTmV0d29yay9DdXN0b21Qcm90b2NvbHMvbWFjL0N1c3Rv
bVByb3RvY29sTWFuYWdlclByb3h5TWFjLm1tCisrKyBiL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vz
cy9OZXR3b3JrL0N1c3RvbVByb3RvY29scy9tYWMvQ3VzdG9tUHJvdG9jb2xNYW5hZ2VyUHJveHlN
YWMubW0KQEAgLTc2LDcgKzc2LDcgQEAgLSAoaWQpaW5pdFdpdGhDdXN0b21Qcm90b2NvbE1hbmFn
ZXJQcm94eTooQ3VzdG9tUHJvdG9jb2xNYW5hZ2VyUHJveHkqKWN1c3RvbVByb3QKIAogLSAodm9p
ZClkZWFsbG9jCiB7Ci0gICAgX2Nvbm5lY3Rpb24uY2xlYXIoKTsKKyAgICBfY29ubmVjdGlvbiA9
IG51bGxwdHI7CiAgICAgW191cmxDb25uZWN0aW9uIGNhbmNlbF07CiAgICAgW191cmxDb25uZWN0
aW9uIHJlbGVhc2VdOwogICAgIFtzdXBlciBkZWFsbG9jXTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9X
ZWJLaXQyL1VJUHJvY2Vzcy9TdGF0aXN0aWNzUmVxdWVzdC5jcHAgYi9Tb3VyY2UvV2ViS2l0Mi9V
SVByb2Nlc3MvU3RhdGlzdGljc1JlcXVlc3QuY3BwCmluZGV4IGMwZWM0OGVlM2JiOTY1MmRkNzg4
N2U4NGU4NDhmMjI0ZTJmYmZiMjAuLjgwNmUxMGYwMGZmM2YxNDRmMTdmYjdiMDI2OGUxMWZhY2Ex
NmYxNTkgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9TdGF0aXN0aWNzUmVx
dWVzdC5jcHAKKysrIGIvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL1N0YXRpc3RpY3NSZXF1ZXN0
LmNwcApAQCAtOTUsNyArOTUsNyBAQCB2b2lkIFN0YXRpc3RpY3NSZXF1ZXN0Ojpjb21wbGV0ZWRS
ZXF1ZXN0KHVpbnQ2NF90IHJlcXVlc3RJRCwgY29uc3QgU3RhdGlzdGljc0RhdAogCiAgICAgaWYg
KG1fb3V0c3RhbmRpbmdSZXF1ZXN0cy5pc0VtcHR5KCkpIHsKICAgICAgICAgbV9jYWxsYmFjay0+
cGVyZm9ybUNhbGxiYWNrV2l0aFJldHVyblZhbHVlKG1fcmVzcG9uc2VEaWN0aW9uYXJ5LmdldCgp
KTsKLSAgICAgICAgbV9jYWxsYmFjayA9IDA7CisgICAgICAgIG1fY2FsbGJhY2sgPSBudWxscHRy
OwogICAgIH0KIH0KIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL1dlYkZy
YW1lTGlzdGVuZXJQcm94eS5jcHAgYi9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvV2ViRnJhbWVM
aXN0ZW5lclByb3h5LmNwcAppbmRleCBlODAxMGU1YjYyNjkwNTFiMjM1ZTBiYzNhMjNmNzBkZTkw
ZjcyMzRmLi40MDYxZGQ1MjkxMzRlZDhkOGQyNWQ2OGQwY2M5YzVlOTZlODY5NjYwIDEwMDY0NAot
LS0gYS9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvV2ViRnJhbWVMaXN0ZW5lclByb3h5LmNwcAor
KysgYi9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvV2ViRnJhbWVMaXN0ZW5lclByb3h5LmNwcApA
QCAtNDIsNyArNDIsNyBAQCBXZWJGcmFtZUxpc3RlbmVyUHJveHk6On5XZWJGcmFtZUxpc3RlbmVy
UHJveHkoKQogCiB2b2lkIFdlYkZyYW1lTGlzdGVuZXJQcm94eTo6aW52YWxpZGF0ZSgpCiB7Ci0g
ICAgbV9mcmFtZSA9IDA7CisgICAgbV9mcmFtZSA9IG51bGxwdHI7CiB9CiAKIHZvaWQgV2ViRnJh
bWVMaXN0ZW5lclByb3h5OjpyZWNlaXZlZFBvbGljeURlY2lzaW9uKFdlYkNvcmU6OlBvbGljeUFj
dGlvbiBhY3Rpb24pCkBAIC01MSw3ICs1MSw3IEBAIHZvaWQgV2ViRnJhbWVMaXN0ZW5lclByb3h5
OjpyZWNlaXZlZFBvbGljeURlY2lzaW9uKFdlYkNvcmU6OlBvbGljeUFjdGlvbiBhY3Rpb24pCiAg
ICAgICAgIHJldHVybjsKIAogICAgIG1fZnJhbWUtPnJlY2VpdmVkUG9saWN5RGVjaXNpb24oYWN0
aW9uLCBtX2xpc3RlbmVySUQsIG1fbmF2aWdhdGlvbi5nZXQoKSk7Ci0gICAgbV9mcmFtZSA9IDA7
CisgICAgbV9mcmFtZSA9IG51bGxwdHI7CiB9CiAKIH0gLy8gbmFtZXNwYWNlIFdlYktpdApkaWZm
IC0tZ2l0IGEvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL1dlYkZyYW1lUHJveHkuY3BwIGIvU291
cmNlL1dlYktpdDIvVUlQcm9jZXNzL1dlYkZyYW1lUHJveHkuY3BwCmluZGV4IDQxYmI5MWExMzYx
Yjg4NGEyOGQxOTRjOTJiMTc2MjhiZDQwNmQyMTQuLjY5MjhhZmJjNzAyYzcwYmRmMDk3NjNkNzNl
MDZlNjJjYjNjYTM0MjEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9XZWJG
cmFtZVByb3h5LmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvV2ViRnJhbWVQcm94
eS5jcHAKQEAgLTU3LDExICs1NywxMSBAQCBXZWJGcmFtZVByb3h5Ojp+V2ViRnJhbWVQcm94eSgp
CiAKIHZvaWQgV2ViRnJhbWVQcm94eTo6d2ViUHJvY2Vzc1dpbGxTaHV0RG93bigpCiB7Ci0gICAg
bV9wYWdlID0gMDsKKyAgICBtX3BhZ2UgPSBudWxscHRyOwogCiAgICAgaWYgKG1fYWN0aXZlTGlz
dGVuZXIpIHsKICAgICAgICAgbV9hY3RpdmVMaXN0ZW5lci0+aW52YWxpZGF0ZSgpOwotICAgICAg
ICBtX2FjdGl2ZUxpc3RlbmVyID0gMDsKKyAgICAgICAgbV9hY3RpdmVMaXN0ZW5lciA9IG51bGxw
dHI7CiAgICAgfQogfQogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvV2Vi
T3BlblBhbmVsUmVzdWx0TGlzdGVuZXJQcm94eS5jcHAgYi9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nl
c3MvV2ViT3BlblBhbmVsUmVzdWx0TGlzdGVuZXJQcm94eS5jcHAKaW5kZXggZGQ2NjY3MTExOGQy
NDhmODYyMWMyYjk4OGVlMzhiMWNmYjAzZjk2MC4uYTM3N2U0YWYwOGUyOTdmM2MyZmE3NDYwNmM5
ZTU5NDhhZTdkNDJlOCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL1dlYk9w
ZW5QYW5lbFJlc3VsdExpc3RlbmVyUHJveHkuY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQyL1VJUHJv
Y2Vzcy9XZWJPcGVuUGFuZWxSZXN1bHRMaXN0ZW5lclByb3h5LmNwcApAQCAtODksNyArODksNyBA
QCB2b2lkIFdlYk9wZW5QYW5lbFJlc3VsdExpc3RlbmVyUHJveHk6OmNhbmNlbCgpCiAKIHZvaWQg
V2ViT3BlblBhbmVsUmVzdWx0TGlzdGVuZXJQcm94eTo6aW52YWxpZGF0ZSgpCiB7Ci0gICAgbV9w
YWdlID0gMDsKKyAgICBtX3BhZ2UgPSBudWxscHRyOwogfQogCiB9IC8vIG5hbWVzcGFjZSBXZWJL
aXQKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9XZWJQYWdlUHJveHkuY3Bw
IGIvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL1dlYlBhZ2VQcm94eS5jcHAKaW5kZXggYmQxM2Ez
M2IxNjkyNGY3NDNhZDY4NmU3YzhmMjQ2MDAxYWFlM2Q4Yy4uNzlkMjNlMDU4NGYyOTQwMzQ5MGI2
N2UwMDkxYjBlYWQzN2ZhMzVhZiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdDIvVUlQcm9jZXNz
L1dlYlBhZ2VQcm94eS5jcHAKKysrIGIvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL1dlYlBhZ2VQ
cm94eS5jcHAKQEAgLTM3MDYsNyArMzcwNiw3IEBAIHZvaWQgV2ViUGFnZVByb3h5OjpydW5PcGVu
UGFuZWwodWludDY0X3QgZnJhbWVJRCwgY29uc3QgRmlsZUNob29zZXJTZXR0aW5ncyYgc2V0CiB7
CiAgICAgaWYgKG1fb3BlblBhbmVsUmVzdWx0TGlzdGVuZXIpIHsKICAgICAgICAgbV9vcGVuUGFu
ZWxSZXN1bHRMaXN0ZW5lci0+aW52YWxpZGF0ZSgpOwotICAgICAgICBtX29wZW5QYW5lbFJlc3Vs
dExpc3RlbmVyID0gMDsKKyAgICAgICAgbV9vcGVuUGFuZWxSZXN1bHRMaXN0ZW5lciA9IG51bGxw
dHI7CiAgICAgfQogCiAgICAgV2ViRnJhbWVQcm94eSogZnJhbWUgPSBtX3Byb2Nlc3MtPndlYkZy
YW1lKGZyYW1lSUQpOwpAQCAtMzgwOCw3ICszODA4LDcgQEAgdm9pZCBXZWJQYWdlUHJveHk6OnNo
b3dDb2xvclBpY2tlcihjb25zdCBXZWJDb3JlOjpDb2xvciYgaW5pdGlhbENvbG9yLCBjb25zdCBJ
bnQKICNpZiBFTkFCTEUoSU5QVVRfVFlQRV9DT0xPUl9QT1BPVkVSKQogICAgIC8vIEEgbmV3IHBv
cG92ZXIgY29sb3Igd2VsbCBuZWVkcyB0byBiZSBjcmVhdGVkIChhbmQgdGhlIHByZXZpb3VzIG9u
ZSBkZXN0cm95ZWQpIGZvcgogICAgIC8vIGVhY2ggYWN0aXZhdGlvbiBvZiBhIGNvbG9yIGVsZW1l
bnQuCi0gICAgbV9jb2xvclBpY2tlciA9IDA7CisgICAgbV9jb2xvclBpY2tlciA9IG51bGxwdHI7
CiAjZW5kaWYKICAgICBpZiAoIW1fY29sb3JQaWNrZXIpCiAgICAgICAgIG1fY29sb3JQaWNrZXIg
PSBtX3BhZ2VDbGllbnQuY3JlYXRlQ29sb3JQaWNrZXIodGhpcywgaW5pdGlhbENvbG9yLCBlbGVt
ZW50UmVjdCk7CkBAIC00MzAwLDcgKzQzMDAsNyBAQCB2b2lkIFdlYlBhZ2VQcm94eTo6ZGlkQ2hv
b3NlRmlsZXNGb3JPcGVuUGFuZWwoY29uc3QgVmVjdG9yPFN0cmluZz4mIGZpbGVVUkxzKQogICAg
IG1fcHJvY2Vzcy0+c2VuZChNZXNzYWdlczo6V2ViUGFnZTo6RGlkQ2hvb3NlRmlsZXNGb3JPcGVu
UGFuZWwoZmlsZVVSTHMpLCBtX3BhZ2VJRCk7CiAKICAgICBtX29wZW5QYW5lbFJlc3VsdExpc3Rl
bmVyLT5pbnZhbGlkYXRlKCk7Ci0gICAgbV9vcGVuUGFuZWxSZXN1bHRMaXN0ZW5lciA9IDA7Cisg
ICAgbV9vcGVuUGFuZWxSZXN1bHRMaXN0ZW5lciA9IG51bGxwdHI7CiB9CiAKIHZvaWQgV2ViUGFn
ZVByb3h5OjpkaWRDYW5jZWxGb3JPcGVuUGFuZWwoKQpAQCAtNDMxMSw3ICs0MzExLDcgQEAgdm9p
ZCBXZWJQYWdlUHJveHk6OmRpZENhbmNlbEZvck9wZW5QYW5lbCgpCiAgICAgbV9wcm9jZXNzLT5z
ZW5kKE1lc3NhZ2VzOjpXZWJQYWdlOjpEaWRDYW5jZWxGb3JPcGVuUGFuZWwoKSwgbV9wYWdlSUQp
OwogICAgIAogICAgIG1fb3BlblBhbmVsUmVzdWx0TGlzdGVuZXItPmludmFsaWRhdGUoKTsKLSAg
ICBtX29wZW5QYW5lbFJlc3VsdExpc3RlbmVyID0gMDsKKyAgICBtX29wZW5QYW5lbFJlc3VsdExp
c3RlbmVyID0gbnVsbHB0cjsKIH0KIAogdm9pZCBXZWJQYWdlUHJveHk6OmFkdmFuY2VUb05leHRN
aXNzcGVsbGluZyhib29sIHN0YXJ0QmVmb3JlU2VsZWN0aW9uKQpAQCAtNDc2Nyw3ICs0NzY3LDcg
QEAgdm9pZCBXZWJQYWdlUHJveHk6OnByaW50RmluaXNoZWRDYWxsYmFjayhjb25zdCBSZXNvdXJj
ZUVycm9yJiBwcmludEVycm9yLCB1aW50NjQKIHZvaWQgV2ViUGFnZVByb3h5Ojpmb2N1c2VkRnJh
bWVDaGFuZ2VkKHVpbnQ2NF90IGZyYW1lSUQpCiB7CiAgICAgaWYgKCFmcmFtZUlEKSB7Ci0gICAg
ICAgIG1fZm9jdXNlZEZyYW1lID0gMDsKKyAgICAgICAgbV9mb2N1c2VkRnJhbWUgPSBudWxscHRy
OwogICAgICAgICByZXR1cm47CiAgICAgfQogCkBAIC00NzgwLDcgKzQ3ODAsNyBAQCB2b2lkIFdl
YlBhZ2VQcm94eTo6Zm9jdXNlZEZyYW1lQ2hhbmdlZCh1aW50NjRfdCBmcmFtZUlEKQogdm9pZCBX
ZWJQYWdlUHJveHk6OmZyYW1lU2V0TGFyZ2VzdEZyYW1lQ2hhbmdlZCh1aW50NjRfdCBmcmFtZUlE
KQogewogICAgIGlmICghZnJhbWVJRCkgewotICAgICAgICBtX2ZyYW1lU2V0TGFyZ2VzdEZyYW1l
ID0gMDsKKyAgICAgICAgbV9mcmFtZVNldExhcmdlc3RGcmFtZSA9IG51bGxwdHI7CiAgICAgICAg
IHJldHVybjsKICAgICB9CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9p
b3MvV0tHZW9sb2NhdGlvblByb3ZpZGVySU9TLm1tIGIvU291cmNlL1dlYktpdDIvVUlQcm9jZXNz
L2lvcy9XS0dlb2xvY2F0aW9uUHJvdmlkZXJJT1MubW0KaW5kZXggYmI2YmI2MDU0ZjdmODZiOWM2
M2Q2ODVlNjVlZjc5ZjkyMWEzYWIxZS4uYmRkMTE0YTI0NDhkZmFhYTk3MTkxYTYyNWQ3Y2ExYmIy
Njc3NjAyOSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL2lvcy9XS0dlb2xv
Y2F0aW9uUHJvdmlkZXJJT1MubW0KKysrIGIvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL2lvcy9X
S0dlb2xvY2F0aW9uUHJvdmlkZXJJT1MubW0KQEAgLTExOCw3ICsxMTgsNyBAQCAtKHZvaWQpX3N0
b3BVcGRhdGluZwogewogICAgIF9pc1dlYkNvcmVHZW9sb2NhdGlvbkFjdGl2ZSA9IE5POwogICAg
IFtfY29yZUxvY2F0aW9uUHJvdmlkZXIgc3RvcF07Ci0gICAgX2xhc3RBY3RpdmVQb3NpdGlvbi5j
bGVhcigpOworICAgIF9sYXN0QWN0aXZlUG9zaXRpb24gPSBudWxscHRyOwogfQogCiAtKHZvaWQp
X3NldEVuYWJsZUhpZ2hBY2N1cmFjeTooQk9PTCllbmFibGVIaWdoQWNjdXJhY3kKZGlmZiAtLWdp
dCBhL1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvSW5qZWN0ZWRCdW5kbGUvbWFjL0luamVjdGVk
QnVuZGxlTWFjLm1tIGIvU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9JbmplY3RlZEJ1bmRsZS9t
YWMvSW5qZWN0ZWRCdW5kbGVNYWMubW0KaW5kZXggNGU4NmFmMTlkNWM5YWNlMTYyZDQwZTI2ZDAw
NDI3OTBlZDFjNDhhMi4uMjg1NzVlZjc0OWIyZGRiM2Q5MGZlMjk0ZGJhMzcxMmU1NTRlODhkOSAx
MDA2NDQKLS0tIGEvU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9JbmplY3RlZEJ1bmRsZS9tYWMv
SW5qZWN0ZWRCdW5kbGVNYWMubW0KKysrIGIvU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9Jbmpl
Y3RlZEJ1bmRsZS9tYWMvSW5qZWN0ZWRCdW5kbGVNYWMubW0KQEAgLTU1LDcgKzU1LDcgQEAgYm9v
bCBJbmplY3RlZEJ1bmRsZTo6aW5pdGlhbGl6ZShjb25zdCBXZWJQcm9jZXNzQ3JlYXRpb25QYXJh
bWV0ZXJzJiBwYXJhbWV0ZXJzLAogICAgICAgICAgICAgcmV0dXJuIGZhbHNlOwogICAgICAgICB9
CiAKLSAgICAgICAgbV9zYW5kYm94RXh0ZW5zaW9uID0gMDsKKyAgICAgICAgbV9zYW5kYm94RXh0
ZW5zaW9uID0gbnVsbHB0cjsKICAgICB9CiAgICAgCiAgICAgUmV0YWluUHRyPENGU3RyaW5nUmVm
PiBpbmplY3RlZEJ1bmRsZVBhdGhTdHIgPSBtX3BhdGguY3JlYXRlQ0ZTdHJpbmcoKTsKZGlmZiAt
LWdpdCBhL1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvTmV0d29yay9XZWJSZXNvdXJjZUxvYWRl
ci5jcHAgYi9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL05ldHdvcmsvV2ViUmVzb3VyY2VMb2Fk
ZXIuY3BwCmluZGV4IDgzZDZjYThhYWFmZjYyNTgzMmUzODIwMDFjZjZiMDA4MDYyZDY0OWUuLjI1
Mzk3YzNiYzhlNjcxY2JkNTUwMjBlM2NkNjk3M2M2YmEwYTI5ZTcgMTAwNjQ0Ci0tLSBhL1NvdXJj
ZS9XZWJLaXQyL1dlYlByb2Nlc3MvTmV0d29yay9XZWJSZXNvdXJjZUxvYWRlci5jcHAKKysrIGIv
U291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9OZXR3b3JrL1dlYlJlc291cmNlTG9hZGVyLmNwcApA
QCAtNzYsNyArNzYsNyBAQCB2b2lkIFdlYlJlc291cmNlTG9hZGVyOjpjYW5jZWxSZXNvdXJjZUxv
YWRlcigpCiAKIHZvaWQgV2ViUmVzb3VyY2VMb2FkZXI6OmRldGFjaEZyb21Db3JlTG9hZGVyKCkK
IHsKLSAgICBtX2NvcmVMb2FkZXIgPSAwOworICAgIG1fY29yZUxvYWRlciA9IG51bGxwdHI7CiB9
CiAKIHZvaWQgV2ViUmVzb3VyY2VMb2FkZXI6OndpbGxTZW5kUmVxdWVzdChjb25zdCBSZXNvdXJj
ZVJlcXVlc3QmIHByb3Bvc2VkUmVxdWVzdCwgY29uc3QgUmVzb3VyY2VSZXNwb25zZSYgcmVkaXJl
Y3RSZXNwb25zZSkKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvUGx1Z2lu
cy9OZXRzY2FwZS9OZXRzY2FwZVBsdWdpbi5jcHAgYi9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNz
L1BsdWdpbnMvTmV0c2NhcGUvTmV0c2NhcGVQbHVnaW4uY3BwCmluZGV4IDBhN2I3NGRlNWM1YzY2
MmJkN2QxMTg0YzQ2M2ZjOTYyNmFiNDFlY2QuLmEzNmU0YjQxMzQ1ZGViMDEzNTBhMjQ5MGU3MDU4
MDhmOTUzNDkwNjcgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvUGx1Z2lu
cy9OZXRzY2FwZS9OZXRzY2FwZVBsdWdpbi5jcHAKKysrIGIvU291cmNlL1dlYktpdDIvV2ViUHJv
Y2Vzcy9QbHVnaW5zL05ldHNjYXBlL05ldHNjYXBlUGx1Z2luLmNwcApAQCAtMjc3LDcgKzI3Nyw3
IEBAIHZvaWQgTmV0c2NhcGVQbHVnaW46OmNhbmNlbFN0cmVhbUxvYWQoTmV0c2NhcGVQbHVnaW5T
dHJlYW0qIHBsdWdpblN0cmVhbSkKIHZvaWQgTmV0c2NhcGVQbHVnaW46OnJlbW92ZVBsdWdpblN0
cmVhbShOZXRzY2FwZVBsdWdpblN0cmVhbSogcGx1Z2luU3RyZWFtKQogewogICAgIGlmIChwbHVn
aW5TdHJlYW0gPT0gbV9tYW51YWxTdHJlYW0pIHsKLSAgICAgICAgbV9tYW51YWxTdHJlYW0gPSAw
OworICAgICAgICBtX21hbnVhbFN0cmVhbSA9IG51bGxwdHI7CiAgICAgICAgIHJldHVybjsKICAg
ICB9CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvUGx1Z2lucy9QREYv
UERGUGx1Z2luLm1tIGIvU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9QbHVnaW5zL1BERi9QREZQ
bHVnaW4ubW0KaW5kZXggZGNjYzU0MTA1ZmJhODcxOWU1ZmMzOGRmNGM1MDJkZGQyNzI5ZWVjZC4u
NDcwNjFkNmQ2MTRkMjYxZDczMzlmNTcwZmU2YjU4MDAwOTZmM2U5NCAxMDA2NDQKLS0tIGEvU291
cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9QbHVnaW5zL1BERi9QREZQbHVnaW4ubW0KKysrIGIvU291
cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9QbHVnaW5zL1BERi9QREZQbHVnaW4ubW0KQEAgLTExMDMs
OCArMTEwMyw4IEBAIHZvaWQgUERGUGx1Z2luOjpkZXN0cm95KCkKICAgICAgICAgICAgIGZyYW1l
Vmlldy0+cmVtb3ZlU2Nyb2xsYWJsZUFyZWEodGhpcyk7CiAgICAgfQogCi0gICAgbV9hY3RpdmVB
bm5vdGF0aW9uID0gMDsKLSAgICBtX2Fubm90YXRpb25Db250YWluZXIgPSAwOworICAgIG1fYWN0
aXZlQW5ub3RhdGlvbiA9IG51bGxwdHI7CisgICAgbV9hbm5vdGF0aW9uQ29udGFpbmVyID0gbnVs
bHB0cjsKIAogICAgIGRlc3Ryb3lTY3JvbGxiYXIoSG9yaXpvbnRhbFNjcm9sbGJhcik7CiAgICAg
ZGVzdHJveVNjcm9sbGJhcihWZXJ0aWNhbFNjcm9sbGJhcik7CkBAIC0xNjA0LDE0ICsxNjA0LDE0
IEBAIHZvaWQgUERGUGx1Z2luOjpzZXRBY3RpdmVBbm5vdGF0aW9uKFBERkFubm90YXRpb24gKmFu
bm90YXRpb24pCiAKICAgICBpZiAoYW5ub3RhdGlvbikgewogICAgICAgICBpZiAoW2Fubm90YXRp
b24gaXNLaW5kT2ZDbGFzczpwZGZBbm5vdGF0aW9uVGV4dFdpZGdldENsYXNzKCldICYmIHN0YXRp
Y19jYXN0PFBERkFubm90YXRpb25UZXh0V2lkZ2V0ICo+KGFubm90YXRpb24pLmlzUmVhZE9ubHkp
IHsKLSAgICAgICAgICAgIG1fYWN0aXZlQW5ub3RhdGlvbiA9IDA7CisgICAgICAgICAgICBtX2Fj
dGl2ZUFubm90YXRpb24gPSBudWxscHRyOwogICAgICAgICAgICAgcmV0dXJuOwogICAgICAgICB9
CiAKICAgICAgICAgbV9hY3RpdmVBbm5vdGF0aW9uID0gUERGUGx1Z2luQW5ub3RhdGlvbjo6Y3Jl
YXRlKGFubm90YXRpb24sIG1fcGRmTGF5ZXJDb250cm9sbGVyLmdldCgpLCB0aGlzKTsKICAgICAg
ICAgbV9hY3RpdmVBbm5vdGF0aW9uLT5hdHRhY2gobV9hbm5vdGF0aW9uQ29udGFpbmVyLmdldCgp
KTsKICAgICB9IGVsc2UKLSAgICAgICAgbV9hY3RpdmVBbm5vdGF0aW9uID0gMDsKKyAgICAgICAg
bV9hY3RpdmVBbm5vdGF0aW9uID0gbnVsbHB0cjsKIH0KIAogYm9vbCBQREZQbHVnaW46OnN1cHBv
cnRzRm9ybXMoKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9QbHVnaW5z
L1BsdWdpblZpZXcuY3BwIGIvU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9QbHVnaW5zL1BsdWdp
blZpZXcuY3BwCmluZGV4IDZhODMzZjEzMTExMzUzMDc2YWNhZTEyODE0MzNiMmY1MTE5YmIyNDYu
LjJhMGZkOTczMTMwYjIxMjY3OGIwNTU0YzdkOGJlYjU1YzY4NTk2OGQgMTAwNjQ0Ci0tLSBhL1Nv
dXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvUGx1Z2lucy9QbHVnaW5WaWV3LmNwcAorKysgYi9Tb3Vy
Y2UvV2ViS2l0Mi9XZWJQcm9jZXNzL1BsdWdpbnMvUGx1Z2luVmlldy5jcHAKQEAgLTE2Niw3ICsx
NjYsNyBAQCB2b2lkIFBsdWdpblZpZXc6OlN0cmVhbTo6Y2FuY2VsKCkKIAogICAgIG1fc3RyZWFt
V2FzQ2FuY2VsbGVkID0gdHJ1ZTsKICAgICBtX2xvYWRlci0+Y2FuY2VsKG1fbG9hZGVyLT5jYW5j
ZWxsZWRFcnJvcigpKTsKLSAgICBtX2xvYWRlciA9IDA7CisgICAgbV9sb2FkZXIgPSBudWxscHRy
OwogfQogCiBzdGF0aWMgU3RyaW5nIGJ1aWxkSFRUUEhlYWRlcnMoY29uc3QgUmVzb3VyY2VSZXNw
b25zZSYgcmVzcG9uc2UsIGxvbmcgbG9uZyYgZXhwZWN0ZWRDb250ZW50TGVuZ3RoKQpAQCAtNjA0
LDcgKzYwNCw3IEBAIHZvaWQgUGx1Z2luVmlldzo6aW5pdGlhbGl6ZVBsdWdpbigpCiAKIHZvaWQg
UGx1Z2luVmlldzo6ZGlkRmFpbFRvSW5pdGlhbGl6ZVBsdWdpbigpCiB7Ci0gICAgbV9wbHVnaW4g
PSAwOworICAgIG1fcGx1Z2luID0gbnVsbHB0cjsKIAogI2lmIEVOQUJMRShORVRTQ0FQRV9QTFVH
SU5fQVBJKQogICAgIFN0cmluZyBmcmFtZVVSTFN0cmluZyA9IGZyYW1lKCktPmxvYWRlcigpLmRv
Y3VtZW50TG9hZGVyKCktPnJlc3BvbnNlVVJMKCkuc3RyaW5nKCk7CmRpZmYgLS1naXQgYS9Tb3Vy
Y2UvV2ViS2l0Mi9XZWJQcm9jZXNzL1dlYlBhZ2UvV2ViUGFnZS5jcHAgYi9Tb3VyY2UvV2ViS2l0
Mi9XZWJQcm9jZXNzL1dlYlBhZ2UvV2ViUGFnZS5jcHAKaW5kZXggMTU1NGRiY2Y3NDk2Yzc2ZDk3
MjAzM2I4ZDM5MTM2NGFiNmZlMWViOC4uN2I4YTkyNjAwN2RkMTgwNzg4NWRhMjgxMTZjODJiOThi
MzE4MzI2NCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9XZWJQYWdlL1dl
YlBhZ2UuY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvV2ViUGFnZS9XZWJQYWdl
LmNwcApAQCAtOTMwLDIzICs5MzAsMjMgQEAgdm9pZCBXZWJQYWdlOjpjbG9zZSgpCiAgICAgfQog
CiAjaWYgRU5BQkxFKEZVTExTQ1JFRU5fQVBJKQotICAgIG1fZnVsbFNjcmVlbk1hbmFnZXIgPSAw
OworICAgIG1fZnVsbFNjcmVlbk1hbmFnZXIgPSBudWxscHRyOwogI2VuZGlmCiAKICAgICBpZiAo
bV9hY3RpdmVQb3B1cE1lbnUpIHsKICAgICAgICAgbV9hY3RpdmVQb3B1cE1lbnUtPmRpc2Nvbm5l
Y3RGcm9tUGFnZSgpOwotICAgICAgICBtX2FjdGl2ZVBvcHVwTWVudSA9IDA7CisgICAgICAgIG1f
YWN0aXZlUG9wdXBNZW51ID0gbnVsbHB0cjsKICAgICB9CiAKICAgICBpZiAobV9hY3RpdmVPcGVu
UGFuZWxSZXN1bHRMaXN0ZW5lcikgewogICAgICAgICBtX2FjdGl2ZU9wZW5QYW5lbFJlc3VsdExp
c3RlbmVyLT5kaXNjb25uZWN0RnJvbVBhZ2UoKTsKLSAgICAgICAgbV9hY3RpdmVPcGVuUGFuZWxS
ZXN1bHRMaXN0ZW5lciA9IDA7CisgICAgICAgIG1fYWN0aXZlT3BlblBhbmVsUmVzdWx0TGlzdGVu
ZXIgPSBudWxscHRyOwogICAgIH0KIAogI2lmIEVOQUJMRShJTlBVVF9UWVBFX0NPTE9SKQogICAg
IGlmIChtX2FjdGl2ZUNvbG9yQ2hvb3NlcikgewogICAgICAgICBtX2FjdGl2ZUNvbG9yQ2hvb3Nl
ci0+ZGlzY29ubmVjdEZyb21QYWdlKCk7Ci0gICAgICAgIG1fYWN0aXZlQ29sb3JDaG9vc2VyID0g
MDsKKyAgICAgICAgbV9hY3RpdmVDb2xvckNob29zZXIgPSBudWxscHRyOwogICAgIH0KICNlbmRp
ZgogCkBAIC0zMjcwLDcgKzMyNzAsNyBAQCB2b2lkIFdlYlBhZ2U6OmNvdW50U3RyaW5nTWF0Y2hl
cyhjb25zdCBTdHJpbmcmIHN0cmluZywgdWludDMyX3Qgb3B0aW9ucywgdWludDMyXwogdm9pZCBX
ZWJQYWdlOjpkaWRDaGFuZ2VTZWxlY3RlZEluZGV4Rm9yQWN0aXZlUG9wdXBNZW51KGludDMyX3Qg
bmV3SW5kZXgpCiB7CiAgICAgY2hhbmdlU2VsZWN0ZWRJbmRleChuZXdJbmRleCk7Ci0gICAgbV9h
Y3RpdmVQb3B1cE1lbnUgPSAwOworICAgIG1fYWN0aXZlUG9wdXBNZW51ID0gbnVsbHB0cjsKIH0K
IAogdm9pZCBXZWJQYWdlOjpjaGFuZ2VTZWxlY3RlZEluZGV4KGludDMyX3QgaW5kZXgpCkBAIC0z
MzA2LDEyICszMzA2LDEyIEBAIHZvaWQgV2ViUGFnZTo6ZGlkQ2hvb3NlRmlsZXNGb3JPcGVuUGFu
ZWwoY29uc3QgVmVjdG9yPFN0cmluZz4mIGZpbGVzKQogICAgICAgICByZXR1cm47CiAKICAgICBt
X2FjdGl2ZU9wZW5QYW5lbFJlc3VsdExpc3RlbmVyLT5kaWRDaG9vc2VGaWxlcyhmaWxlcyk7Ci0g
ICAgbV9hY3RpdmVPcGVuUGFuZWxSZXN1bHRMaXN0ZW5lciA9IDA7CisgICAgbV9hY3RpdmVPcGVu
UGFuZWxSZXN1bHRMaXN0ZW5lciA9IG51bGxwdHI7CiB9CiAKIHZvaWQgV2ViUGFnZTo6ZGlkQ2Fu
Y2VsRm9yT3BlblBhbmVsKCkKIHsKLSAgICBtX2FjdGl2ZU9wZW5QYW5lbFJlc3VsdExpc3RlbmVy
ID0gMDsKKyAgICBtX2FjdGl2ZU9wZW5QYW5lbFJlc3VsdExpc3RlbmVyID0gbnVsbHB0cjsKIH0K
IAogI2lmIEVOQUJMRShTQU5EQk9YX0VYVEVOU0lPTlMpCkBAIC0zNDE1LDcgKzM0MTUsNyBAQCB2
b2lkIFdlYlBhZ2U6OmRpZFNlbGVjdEl0ZW1Gcm9tQWN0aXZlQ29udGV4dE1lbnUoY29uc3QgV2Vi
Q29udGV4dE1lbnVJdGVtRGF0YSYgaQogICAgICAgICByZXR1cm47CiAKICAgICBtX2NvbnRleHRN
ZW51LT5pdGVtU2VsZWN0ZWQoaXRlbSk7Ci0gICAgbV9jb250ZXh0TWVudSA9IDA7CisgICAgbV9j
b250ZXh0TWVudSA9IG51bGxwdHI7CiB9CiAjZW5kaWYKIApkaWZmIC0tZ2l0IGEvU291cmNlL1dl
YktpdDIvV2ViUHJvY2Vzcy9XZWJQYWdlL2lvcy9XZWJQYWdlSU9TLm1tIGIvU291cmNlL1dlYktp
dDIvV2ViUHJvY2Vzcy9XZWJQYWdlL2lvcy9XZWJQYWdlSU9TLm1tCmluZGV4IDIzZGU4M2VmYWQ2
ODk0NjI0NzU2MGY4MTFkMDg4Y2QyOTc1MmE2YTcuLjlmNGNlYzcyMzFkZDQ2MjcxNTYzZDUyYjZh
NGUyYjlkMzI3ODg3YzYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvV2Vi
UGFnZS9pb3MvV2ViUGFnZUlPUy5tbQorKysgYi9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL1dl
YlBhZ2UvaW9zL1dlYlBhZ2VJT1MubW0KQEAgLTE5NzgsNyArMTk3OCw3IEBAIHZvaWQgV2ViUGFn
ZTo6c3luY0FwcGx5QXV0b2NvcnJlY3Rpb24oY29uc3QgU3RyaW5nJiBjb3JyZWN0aW9uLCBjb25z
dCBTdHJpbmcmIG9yCiAgICAgICAgIHdoaWxlICh0ZXh0Rm9yUmFuZ2UubGVuZ3RoKCkgJiYgdGV4
dEZvclJhbmdlLmxlbmd0aCgpID4gb3JpZ2luYWxUZXh0Lmxlbmd0aCgpICYmIGxvb3BDb3VudCA8
IG1heFBvc2l0aW9uc0F0dGVtcHRzKSB7CiAgICAgICAgICAgICBwb3NpdGlvbiA9IHBvc2l0aW9u
Lm5leHQoKTsKICAgICAgICAgICAgIGlmIChwb3NpdGlvbi5pc05vdE51bGwoKSAmJiBwb3NpdGlv
biA+PSBmcmFtZS5zZWxlY3Rpb24oKS5zZWxlY3Rpb24oKS5zdGFydCgpKQotICAgICAgICAgICAg
ICAgIHJhbmdlID0gTlVMTDsKKyAgICAgICAgICAgICAgICByYW5nZSA9IG51bGxwdHI7CiAgICAg
ICAgICAgICBlbHNlCiAgICAgICAgICAgICAgICAgcmFuZ2UgPSBSYW5nZTo6Y3JlYXRlKCpmcmFt
ZS5kb2N1bWVudCgpLCBwb3NpdGlvbiwgZnJhbWUuc2VsZWN0aW9uKCkuc2VsZWN0aW9uKCkuc3Rh
cnQoKSk7CiAgICAgICAgICAgICB0ZXh0Rm9yUmFuZ2UgPSAocmFuZ2UpID8gcGxhaW5UZXh0UmVw
bGFjaW5nTm9CcmVha1NwYWNlKHJhbmdlLmdldCgpKSA6IGVtcHR5U3RyaW5nKCk7CkBAIC0yNDU4
LDcgKzI0NTgsNyBAQCB2b2lkIFdlYlBhZ2U6OmVsZW1lbnREaWRCbHVyKFdlYkNvcmU6Ok5vZGUq
IG5vZGUpCiAgICAgICAgICAgICAgICAgc2VuZChNZXNzYWdlczo6V2ViUGFnZVByb3h5OjpTdG9w
QXNzaXN0aW5nTm9kZSgpKTsKICAgICAgICAgICAgIG1faGFzUGVuZGluZ0JsdXJOb3RpZmljYXRp
b24gPSBmYWxzZTsKICAgICAgICAgfSk7Ci0gICAgICAgIG1fYXNzaXN0ZWROb2RlID0gMDsKKyAg
ICAgICAgbV9hc3Npc3RlZE5vZGUgPSBudWxscHRyOwogICAgIH0KIH0KIApkaWZmIC0tZ2l0IGEv
U291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9XZWJQcm9jZXNzLmNwcCBiL1NvdXJjZS9XZWJLaXQy
L1dlYlByb2Nlc3MvV2ViUHJvY2Vzcy5jcHAKaW5kZXggYTk3YmMyMWE5ODE1NDlhY2NkN2ZlZGZi
MjgzM2FlYzg0ZWVkZDA3YS4uYjRjOWUwZWU4ODFmZTczMTA1ZDM1ZTFmMTAyNDQ1MWEzYTJiOTBl
YSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9XZWJQcm9jZXNzLmNwcAor
KysgYi9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL1dlYlByb2Nlc3MuY3BwCkBAIC0xMDM0LDcg
KzEwMzQsNyBAQCB2b2lkIFdlYlByb2Nlc3M6Om5ldHdvcmtQcm9jZXNzQ29ubmVjdGlvbkNsb3Nl
ZChOZXR3b3JrUHJvY2Vzc0Nvbm5lY3Rpb24qIGNvbm5lYwogICAgIEFTU0VSVChtX25ldHdvcmtQ
cm9jZXNzQ29ubmVjdGlvbik7CiAgICAgQVNTRVJUX1VOVVNFRChjb25uZWN0aW9uLCBtX25ldHdv
cmtQcm9jZXNzQ29ubmVjdGlvbiA9PSBjb25uZWN0aW9uKTsKIAotICAgIG1fbmV0d29ya1Byb2Nl
c3NDb25uZWN0aW9uID0gMDsKKyAgICBtX25ldHdvcmtQcm9jZXNzQ29ubmVjdGlvbiA9IG51bGxw
dHI7CiAgICAgCiAgICAgbV93ZWJSZXNvdXJjZUxvYWRTY2hlZHVsZXItPm5ldHdvcmtQcm9jZXNz
Q3Jhc2hlZCgpOwogfQpAQCAtMTA1MSw3ICsxMDUxLDcgQEAgdm9pZCBXZWJQcm9jZXNzOjp3ZWJU
b0RhdGFiYXNlUHJvY2Vzc0Nvbm5lY3Rpb25DbG9zZWQoV2ViVG9EYXRhYmFzZVByb2Nlc3NDb25u
ZWMKICAgICBBU1NFUlQobV93ZWJUb0RhdGFiYXNlUHJvY2Vzc0Nvbm5lY3Rpb24pOwogICAgIEFT
U0VSVChtX3dlYlRvRGF0YWJhc2VQcm9jZXNzQ29ubmVjdGlvbiA9PSBjb25uZWN0aW9uKTsKIAot
ICAgIG1fd2ViVG9EYXRhYmFzZVByb2Nlc3NDb25uZWN0aW9uID0gMDsKKyAgICBtX3dlYlRvRGF0
YWJhc2VQcm9jZXNzQ29ubmVjdGlvbiA9IG51bGxwdHI7CiB9CiAKIFdlYlRvRGF0YWJhc2VQcm9j
ZXNzQ29ubmVjdGlvbiogV2ViUHJvY2Vzczo6d2ViVG9EYXRhYmFzZVByb2Nlc3NDb25uZWN0aW9u
KCkKZGlmZiAtLWdpdCBhL1Rvb2xzL0NoYW5nZUxvZyBiL1Rvb2xzL0NoYW5nZUxvZwppbmRleCA5
ODc2MGNjZjVhNDE5NzRiMDhjODIwOThlNTRkMjg4OGFmNDcxN2E4Li42OWVlZmNmODgzZmQzMThj
NjExN2RlZTBmYWYwZWFjN2IzNjZkM2YxIDEwMDY0NAotLS0gYS9Ub29scy9DaGFuZ2VMb2cKKysr
IGIvVG9vbHMvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMTIgQEAKKzIwMTUtMDctMDMgIENocmlzIER1
bWV6ICA8Y2R1bWV6QGFwcGxlLmNvbT4KKworICAgICAgICBEcm9wIFJlZlB0cjo6Y2xlYXIoKSBt
ZXRob2QKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTE0
NjU1NgorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIERy
b3AgUmVmUHRyOjpjbGVhcigpIG1ldGhvZCBpbiBmYXZvciBvZiAiPSBudWxscHRyOyIgcGF0dGVy
bi4KKwogMjAxNS0wNy0wMyAgRGFuIEJlcm5zdGVpbiAgPG1pdHpAYXBwbGUuY29tPgogCiAgICAg
ICAgIFtYY29kZV0gVXBkYXRlIHNvbWUgYnVpbGQgc2V0dGluZ3MgYXMgcmVjb21tZW5kZWQgYnkg
WGNvZGUgNwpkaWZmIC0tZ2l0IGEvVG9vbHMvRHVtcFJlbmRlclRyZWUvbWFjL0R1bXBSZW5kZXJU
cmVlLm1tIGIvVG9vbHMvRHVtcFJlbmRlclRyZWUvbWFjL0R1bXBSZW5kZXJUcmVlLm1tCmluZGV4
IGJjY2Q0YTkxMTJlNjcyYzFjYzJiMmQ5MzBmZjBhM2VlMDNiMDNlMDYuLjI3NmRmOGI4OTJlYzUy
N2E3NDZiZjNmYTZkZGM2NGVhZDM3NzdjMTUgMTAwNjQ0Ci0tLSBhL1Rvb2xzL0R1bXBSZW5kZXJU
cmVlL21hYy9EdW1wUmVuZGVyVHJlZS5tbQorKysgYi9Ub29scy9EdW1wUmVuZGVyVHJlZS9tYWMv
RHVtcFJlbmRlclRyZWUubW0KQEAgLTIwNjQsNyArMjA2NCw3IEBAIHN0YXRpYyB2b2lkIHJ1blRl
c3QoY29uc3Qgc3RyaW5nJiBpbnB1dExpbmUpCiAgICAgQVNTRVJUKENGQXJyYXlHZXRDb3VudChv
cGVuV2luZG93c1JlZikgPT0gMSk7CiAgICAgQVNTRVJUKENGQXJyYXlHZXRWYWx1ZUF0SW5kZXgo
b3BlbldpbmRvd3NSZWYsIDApID09IFtbbWFpbkZyYW1lIHdlYlZpZXddIHdpbmRvd10pOwogCi0g
ICAgZ1Rlc3RSdW5uZXIuY2xlYXIoKTsKKyAgICBnVGVzdFJ1bm5lciA9IG51bGxwdHI7CiAKICAg
ICBpZiAoaWdub3JlV2ViQ29yZU5vZGVMZWFrcykKICAgICAgICAgW1dlYkNvcmVTdGF0aXN0aWNz
IHN0b3BJZ25vcmluZ1dlYkNvcmVOb2RlTGVha3NdOwpkaWZmIC0tZ2l0IGEvVG9vbHMvRHVtcFJl
bmRlclRyZWUvd2luL0R1bXBSZW5kZXJUcmVlLmNwcCBiL1Rvb2xzL0R1bXBSZW5kZXJUcmVlL3dp
bi9EdW1wUmVuZGVyVHJlZS5jcHAKaW5kZXggZDk4NmNiZmQzNzM0MDI0NjZmNDBiOGU2NWE0MDQ2
OWJlY2UwYThkYy4uYzg0MzU0NzIzY2JhOTVmNGExNWE0MTYwNzYzMjkzYmQ2NzY2OGYyOSAxMDA2
NDQKLS0tIGEvVG9vbHMvRHVtcFJlbmRlclRyZWUvd2luL0R1bXBSZW5kZXJUcmVlLmNwcAorKysg
Yi9Ub29scy9EdW1wUmVuZGVyVHJlZS93aW4vRHVtcFJlbmRlclRyZWUuY3BwCkBAIC0xMTgzLDcg
KzExODMsNyBAQCBzdGF0aWMgdm9pZCBydW5UZXN0KGNvbnN0IHN0cmluZyYgaW5wdXRMaW5lKQog
CiBleGl0OgogICAgIHJlbW92ZUZvbnRGYWxsYmFja0lmUHJlc2VudChmYWxsYmFja1BhdGgpOwot
ICAgIDo6Z1Rlc3RSdW5uZXIuY2xlYXIoKTsKKyAgICA6OmdUZXN0UnVubmVyID0gbnVsbHB0cjsK
IAogICAgIGZwdXRzKCIjRU9GXG4iLCBzdGRlcnIpOwogICAgIGZmbHVzaChzdGRlcnIpOwpkaWZm
IC0tZ2l0IGEvVG9vbHMvVGVzdFdlYktpdEFQSS9UZXN0cy9XVEYvUmVmUHRyLmNwcCBiL1Rvb2xz
L1Rlc3RXZWJLaXRBUEkvVGVzdHMvV1RGL1JlZlB0ci5jcHAKaW5kZXggZmM5MjI0NjcyNzg0NjQx
ZDFkMzc0OWMyMDc5ZTE1YmJkM2U4NzI2Yy4uYjcyNmQ3ZGRmMDNjYzJmZDZhMjBlMTRkOWI0MDIz
Y2YyNmE3ZDQzOCAxMDA2NDQKLS0tIGEvVG9vbHMvVGVzdFdlYktpdEFQSS9UZXN0cy9XVEYvUmVm
UHRyLmNwcAorKysgYi9Ub29scy9UZXN0V2ViS2l0QVBJL1Rlc3RzL1dURi9SZWZQdHIuY3BwCkBA
IC0xMDIsNyArMTAyLDcgQEAgVEVTVChXVEZfUmVmUHRyLCBCYXNpYykKICAgICB7CiAgICAgICAg
IFJlZlB0cjxSZWZMb2dnZXI+IHB0cigmYSk7CiAgICAgICAgIEFTU0VSVF9FUSgmYSwgcHRyLmdl
dCgpKTsKLSAgICAgICAgcHRyLmNsZWFyKCk7CisgICAgICAgIHB0ciA9IG51bGxwdHI7CiAgICAg
ICAgIEFTU0VSVF9FUShudWxscHRyLCBwdHIuZ2V0KCkpOwogICAgIH0KICAgICBBU1NFUlRfU1RS
RVEoInJlZihhKSBkZXJlZihhKSAiLCB0YWtlTG9nU3RyKCkuY19zdHIoKSk7Cg==
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>256131</attachid>
            <date>2015-07-03 20:40:43 -0700</date>
            <delta_ts>2015-07-03 20:52:33 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-146556-20150703203947.patch</filename>
            <type>text/plain</type>
            <size>182875</size>
            <attacher name="Chris Dumez">cdumez</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTg2MjcxCmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlw
dENvcmUvQ2hhbmdlTG9nIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL0NoYW5nZUxvZwppbmRleCA3
NThjNmEzYWY4NTAzMTIzOGRiZjUzY2ZjMjg4NTc5ODM0OGUzYTJiLi4xMDE2ZTQ4ODM0ODAxMjg3
MDYxYjUxMzZjNmU4MzkxZWE4NGQxMzk2IDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENv
cmUvQ2hhbmdlTG9nCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9DaGFuZ2VMb2cKQEAgLTEs
MyArMSwxMiBAQAorMjAxNS0wNy0wMyAgQ2hyaXMgRHVtZXogIDxjZHVtZXpAYXBwbGUuY29tPgor
CisgICAgICAgIERyb3AgUmVmUHRyOjpjbGVhcigpIG1ldGhvZAorICAgICAgICBodHRwczovL2J1
Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTQ2NTU2CisKKyAgICAgICAgUmV2aWV3ZWQg
YnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgRHJvcCBSZWZQdHI6OmNsZWFyKCkgbWV0aG9k
IGluIGZhdm9yIG9mICI9IG51bGxwdHI7IiBwYXR0ZXJuLgorCiAyMDE1LTA3LTAzICBEYW4gQmVy
bnN0ZWluICA8bWl0ekBhcHBsZS5jb20+CiAKICAgICAgICAgW1hjb2RlXSBVcGRhdGUgc29tZSBi
dWlsZCBzZXR0aW5ncyBhcyByZWNvbW1lbmRlZCBieSBYY29kZSA3CmRpZmYgLS1naXQgYS9Tb3Vy
Y2UvV1RGL0NoYW5nZUxvZyBiL1NvdXJjZS9XVEYvQ2hhbmdlTG9nCmluZGV4IDcxMDIyNmE3ZTZj
Nzg3NjQ2YWZhMDllN2ViYmNlZDA4ZDg1M2I0N2MuLjlhNDkxMmEwMDJkYjcwYmUxMTk5M2UxNTcw
YzU0YmIzMjQ4MDBjYjggMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XVEYvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XVEYvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMTYgQEAKKzIwMTUtMDctMDMgIENocmlzIER1
bWV6ICA8Y2R1bWV6QGFwcGxlLmNvbT4KKworICAgICAgICBEcm9wIFJlZlB0cjo6Y2xlYXIoKSBt
ZXRob2QKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTE0
NjU1NgorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIERy
b3AgUmVmUHRyOjpjbGVhcigpIG1ldGhvZCBpbiBmYXZvciBvZiAiPSBudWxscHRyOyIgcGF0dGVy
bi4KKyAgICAgICAgQWxzbyBtYWRlIHRoZSAiPSBudWxscHRyOyIgcGF0dGVybiBhcyBlZmZpY2ll
bnQgYXMgY2xlYXIoKQorICAgICAgICBieSBwcm92aWRpbmcgYSBvcGVyYXRvcj0obnVsbHB0cl90
KSBvdmVybG9hZC4gTG9jYWwgbWljcm8tCisgICAgICAgIGJlbmNobWFya2luZyBzaG93ZWQgdGhh
dCAiPSBudWxscHRyOyIgdXNlZCB0byBiZSB+MS43JSBzbG93ZXIKKyAgICAgICAgdGhhbiBjbGVh
cigpLgorCiAyMDE1LTA3LTAzICBEYW4gQmVybnN0ZWluICA8bWl0ekBhcHBsZS5jb20+CiAKICAg
ICAgICAgW1hjb2RlXSBVcGRhdGUgc29tZSBidWlsZCBzZXR0aW5ncyBhcyByZWNvbW1lbmRlZCBi
eSBYY29kZSA3CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cgYi9Tb3VyY2Uv
V2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggY2ZhNDExOWI1YWM2NmMxMDk1YjRmMzY5MDZmYjliYWQ5
YTA4MmRjNy4uNzkzMzE4N2M3YzIxYTNhMzhmYjZhMWUyZWMzN2JmNjZhZGFiYzdlYiAxMDA2NDQK
LS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1NvdXJjZS9XZWJDb3JlL0NoYW5n
ZUxvZwpAQCAtMSwzICsxLDIzMiBAQAorMjAxNS0wNy0wMyAgQ2hyaXMgRHVtZXogIDxjZHVtZXpA
YXBwbGUuY29tPgorCisgICAgICAgIERyb3AgUmVmUHRyOjpjbGVhcigpIG1ldGhvZAorICAgICAg
ICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTQ2NTU2CisKKyAgICAg
ICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgRHJvcCBSZWZQdHI6OmNs
ZWFyKCkgbWV0aG9kIGluIGZhdm9yIG9mICI9IG51bGxwdHI7IiBwYXR0ZXJuLgorCisyMDE1LTA3
LTAyICBDaHJpcyBEdW1leiAgPGNkdW1lekBhcHBsZS5jb20+CisKKyAgICAgICAgRHJvcCBSZWZQ
dHI6OmNsZWFyKCkgbWV0aG9kCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3df
YnVnLmNnaT9pZD0xNDY1NTYKKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4K
KworICAgICAgICAqIE1vZHVsZXMvaW5kZXhlZGRiL0lEQkN1cnNvci5jcHA6CisgICAgICAgIChX
ZWJDb3JlOjpJREJDdXJzb3I6OmNsb3NlKToKKyAgICAgICAgKiBNb2R1bGVzL2luZGV4ZWRkYi9J
REJEYXRhYmFzZUJhY2tlbmQuY3BwOgorICAgICAgICAoV2ViQ29yZTo6SURCRGF0YWJhc2VCYWNr
ZW5kOjp0cmFuc2FjdGlvbkZpbmlzaGVkKToKKyAgICAgICAgKiBNb2R1bGVzL2luZGV4ZWRkYi9J
REJPYmplY3RTdG9yZS5jcHA6CisgICAgICAgICogTW9kdWxlcy9pbmRleGVkZGIvSURCT3BlbkRC
UmVxdWVzdC5jcHA6CisgICAgICAgIChXZWJDb3JlOjpJREJPcGVuREJSZXF1ZXN0OjpkaXNwYXRj
aEV2ZW50KToKKyAgICAgICAgKiBNb2R1bGVzL2luZGV4ZWRkYi9JREJSZXF1ZXN0LmNwcDoKKyAg
ICAgICAgKFdlYkNvcmU6OklEQlJlcXVlc3Q6OmFib3J0KToKKyAgICAgICAgKFdlYkNvcmU6OklE
QlJlcXVlc3Q6OnNldFBlbmRpbmdDdXJzb3IpOgorICAgICAgICAoV2ViQ29yZTo6SURCUmVxdWVz
dDo6b25FcnJvcik6CisgICAgICAgIChXZWJDb3JlOjpJREJSZXF1ZXN0OjpvblN1Y2Nlc3NJbnRl
cm5hbCk6CisgICAgICAgIChXZWJDb3JlOjpJREJSZXF1ZXN0Ojp0cmFuc2FjdGlvbkRpZEZpbmlz
aEFuZERpc3BhdGNoKToKKyAgICAgICAgKiBNb2R1bGVzL2luZGV4ZWRkYi9JREJUcmFuc2FjdGlv
bi5jcHA6CisgICAgICAgIChXZWJDb3JlOjpJREJUcmFuc2FjdGlvbjo6T3BlbkN1cnNvck5vdGlm
aWVyOjpjdXJzb3JGaW5pc2hlZCk6CisgICAgICAgICogTW9kdWxlcy9tZWRpYXNvdXJjZS9NZWRp
YVNvdXJjZS5jcHA6CisgICAgICAgIChXZWJDb3JlOjpNZWRpYVNvdXJjZTo6c2V0UmVhZHlTdGF0
ZSk6CisgICAgICAgIChXZWJDb3JlOjpNZWRpYVNvdXJjZTo6c3RvcCk6CisgICAgICAgICogTW9k
dWxlcy9tZWRpYXN0cmVhbS9SVENTZXNzaW9uRGVzY3JpcHRpb25SZXF1ZXN0SW1wbC5jcHA6Cisg
ICAgICAgIChXZWJDb3JlOjpSVENTZXNzaW9uRGVzY3JpcHRpb25SZXF1ZXN0SW1wbDo6Y2xlYXIp
OgorICAgICAgICAqIE1vZHVsZXMvbWVkaWFzdHJlYW0vUlRDU3RhdHNSZXF1ZXN0SW1wbC5jcHA6
CisgICAgICAgIChXZWJDb3JlOjpSVENTdGF0c1JlcXVlc3RJbXBsOjpjbGVhcik6CisgICAgICAg
ICogTW9kdWxlcy9tZWRpYXN0cmVhbS9SVENWb2lkUmVxdWVzdEltcGwuY3BwOgorICAgICAgICAo
V2ViQ29yZTo6UlRDVm9pZFJlcXVlc3RJbXBsOjpjbGVhcik6CisgICAgICAgICogTW9kdWxlcy93
ZWJhdWRpby9BdWRpb0NvbnRleHQuY3BwOgorICAgICAgICAoV2ViQ29yZTo6QXVkaW9Db250ZXh0
OjpjbGVhcik6CisgICAgICAgICogTW9kdWxlcy93ZWJkYXRhYmFzZS9TUUxUcmFuc2FjdGlvbkJh
Y2tlbmQuY3BwOgorICAgICAgICAoV2ViQ29yZTo6U1FMVHJhbnNhY3Rpb25CYWNrZW5kOjpyZWxl
YXNlT3JpZ2luTG9ja0lmTmVlZGVkKToKKyAgICAgICAgKiBNb2R1bGVzL3dlYnNvY2tldHMvV29y
a2VyVGhyZWFkYWJsZVdlYlNvY2tldENoYW5uZWwuY3BwOgorICAgICAgICAoV2ViQ29yZTo6V29y
a2VyVGhyZWFkYWJsZVdlYlNvY2tldENoYW5uZWw6OmRpc2Nvbm5lY3QpOgorICAgICAgICAqIGJp
bmRpbmdzL2pzL1dlYkNvcmVKU0NsaWVudERhdGEuaDoKKyAgICAgICAgKFdlYkNvcmU6OldlYkNv
cmVKU0NsaWVudERhdGE6On5XZWJDb3JlSlNDbGllbnREYXRhKToKKyAgICAgICAgKiBiaW5kaW5n
cy9qcy9Xb3JrZXJTY3JpcHRDb250cm9sbGVyLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6Oldvcmtl
clNjcmlwdENvbnRyb2xsZXI6On5Xb3JrZXJTY3JpcHRDb250cm9sbGVyKToKKyAgICAgICAgKiBj
b250ZW50ZXh0ZW5zaW9ucy9Db250ZW50RXh0ZW5zaW9uUGFyc2VyLmNwcDoKKyAgICAgICAgKFdl
YkNvcmU6OkNvbnRlbnRFeHRlbnNpb25zOjpwYXJzZVJ1bGVMaXN0KToKKyAgICAgICAgKiBjc3Mv
Q1NTUGFyc2VyLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OkNTU1BhcnNlcjo6cGFyc2VGaWxsUG9z
aXRpb24pOgorICAgICAgICAoV2ViQ29yZTo6Q1NTUGFyc2VyOjpwYXJzZTJWYWx1ZXNGaWxsUG9z
aXRpb24pOgorICAgICAgICAoV2ViQ29yZTo6Q1NTUGFyc2VyOjpwb3BSdWxlRGF0YSk6CisgICAg
ICAgIChXZWJDb3JlOjpDU1NQYXJzZXI6Om1hcmtSdWxlQm9keVN0YXJ0KToKKyAgICAgICAgKiBk
b20vRG9jdW1lbnQuY3BwOgorICAgICAgICAoV2ViQ29yZTo6RG9jdW1lbnQ6OmRldGFjaFBhcnNl
cik6CisgICAgICAgIChXZWJDb3JlOjpEb2N1bWVudDo6Y2xlYXJTY3JpcHRlZEFuaW1hdGlvbkNv
bnRyb2xsZXIpOgorICAgICAgICAoV2ViQ29yZTo6RG9jdW1lbnQ6OnVwZGF0ZUhvdmVyQWN0aXZl
U3RhdGUpOgorICAgICAgICAqIGRvbS9Eb2N1bWVudE1hcmtlci5oOgorICAgICAgICAoV2ViQ29y
ZTo6RG9jdW1lbnRNYXJrZXI6OmNsZWFyRGV0YWlscyk6CisgICAgICAgICogZG9tL0VsZW1lbnQu
Y3BwOgorICAgICAgICAoV2ViQ29yZTo6RWxlbWVudDo6Y2xvbmVBdHRyaWJ1dGVzRnJvbUVsZW1l
bnQpOgorICAgICAgICAqIGRvbS9Ob2RlSXRlcmF0b3IuY3BwOgorICAgICAgICAoV2ViQ29yZTo6
Tm9kZUl0ZXJhdG9yOjpOb2RlUG9pbnRlcjo6Y2xlYXIpOgorICAgICAgICAoV2ViQ29yZTo6Tm9k
ZUl0ZXJhdG9yOjpkZXRhY2gpOgorICAgICAgICAqIGRvbS9Qb3NpdGlvbi5oOgorICAgICAgICAo
V2ViQ29yZTo6UG9zaXRpb246OmNsZWFyKToKKyAgICAgICAgKiBkb20vUmFuZ2VCb3VuZGFyeVBv
aW50Lmg6CisgICAgICAgIChXZWJDb3JlOjpSYW5nZUJvdW5kYXJ5UG9pbnQ6OmNsZWFyKToKKyAg
ICAgICAgKiBkb20vU3BhY2VTcGxpdFN0cmluZy5oOgorICAgICAgICAoV2ViQ29yZTo6U3BhY2VT
cGxpdFN0cmluZzo6Y2xlYXIpOgorICAgICAgICAqIGRvbS9TdHlsZWRFbGVtZW50LmNwcDoKKyAg
ICAgICAgKFdlYkNvcmU6OlN0eWxlZEVsZW1lbnQ6OnNldElubGluZVN0eWxlRnJvbVN0cmluZyk6
CisgICAgICAgIChXZWJDb3JlOjpTdHlsZWRFbGVtZW50OjpzdHlsZUF0dHJpYnV0ZUNoYW5nZWQp
OgorICAgICAgICAqIGVkaXRpbmcvQWx0ZXJuYXRpdmVUZXh0Q29udHJvbGxlci5jcHA6CisgICAg
ICAgIChXZWJDb3JlOjpBbHRlcm5hdGl2ZVRleHRDb250cm9sbGVyOjpzdGFydEFsdGVybmF0aXZl
VGV4dFVJVGltZXIpOgorICAgICAgICAoV2ViQ29yZTo6QWx0ZXJuYXRpdmVUZXh0Q29udHJvbGxl
cjo6c3RvcEFsdGVybmF0aXZlVGV4dFVJVGltZXIpOgorICAgICAgICAoV2ViQ29yZTo6QWx0ZXJu
YXRpdmVUZXh0Q29udHJvbGxlcjo6YXBwbHlQZW5kaW5nQ29ycmVjdGlvbik6CisgICAgICAgIChX
ZWJDb3JlOjpBbHRlcm5hdGl2ZVRleHRDb250cm9sbGVyOjp0aW1lckZpcmVkKToKKyAgICAgICAg
KFdlYkNvcmU6OkFsdGVybmF0aXZlVGV4dENvbnRyb2xsZXI6OmhhbmRsZUFsdGVybmF0aXZlVGV4
dFVJUmVzdWx0KToKKyAgICAgICAgKiBlZGl0aW5nL0VkaXRpbmdTdHlsZS5jcHA6CisgICAgICAg
IChXZWJDb3JlOjpFZGl0aW5nU3R5bGU6OmNsZWFyKToKKyAgICAgICAgKiBlZGl0aW5nL0VkaXRv
ci5jcHA6CisgICAgICAgIChXZWJDb3JlOjpFZGl0b3I6OmNsZWFyTGFzdEVkaXRDb21tYW5kKToK
KyAgICAgICAgKiBlZGl0aW5nL0ZyYW1lU2VsZWN0aW9uLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6
OkZyYW1lU2VsZWN0aW9uOjpwcmVwYXJlRm9yRGVzdHJ1Y3Rpb24pOgorICAgICAgICAqIGVkaXRp
bmcvRnJhbWVTZWxlY3Rpb24uaDoKKyAgICAgICAgKFdlYkNvcmU6OkZyYW1lU2VsZWN0aW9uOjpj
bGVhclR5cGluZ1N0eWxlKToKKyAgICAgICAgKiBlZGl0aW5nL1NwZWxsQ2hlY2tlci5jcHA6Cisg
ICAgICAgIChXZWJDb3JlOjpTcGVsbENoZWNrZXI6OmRpZENoZWNrKToKKyAgICAgICAgKiBodG1s
L0Jhc2VDaG9vc2VyT25seURhdGVBbmRUaW1lSW5wdXRUeXBlLmNwcDoKKyAgICAgICAgKFdlYkNv
cmU6OkJhc2VDaG9vc2VyT25seURhdGVBbmRUaW1lSW5wdXRUeXBlOjpkaWRFbmRDaG9vc2VyKToK
KyAgICAgICAgKiBodG1sL0ZpbGVJbnB1dFR5cGUuY3BwOgorICAgICAgICAoV2ViQ29yZTo6Rmls
ZUlucHV0VHlwZTo6c2V0VmFsdWUpOgorICAgICAgICAqIGh0bWwvSFRNTENhbnZhc0VsZW1lbnQu
Y3BwOgorICAgICAgICAoV2ViQ29yZTo6SFRNTENhbnZhc0VsZW1lbnQ6OmNsZWFyUHJlc2VudGF0
aW9uQ29weSk6CisgICAgICAgIChXZWJDb3JlOjpIVE1MQ2FudmFzRWxlbWVudDo6Y2xlYXJDb3Bp
ZWRJbWFnZSk6CisgICAgICAgICogaHRtbC9IVE1MUGx1Z0luRWxlbWVudC5jcHA6CisgICAgICAg
IChXZWJDb3JlOjpIVE1MUGx1Z0luRWxlbWVudDo6d2lsbERldGFjaFJlbmRlcmVycyk6CisgICAg
ICAgIChXZWJDb3JlOjpIVE1MUGx1Z0luRWxlbWVudDo6cmVzZXRJbnN0YW5jZSk6CisgICAgICAg
ICogaHRtbC9UZXh0RmllbGRJbnB1dFR5cGUuY3BwOgorICAgICAgICAoV2ViQ29yZTo6VGV4dEZp
ZWxkSW5wdXRUeXBlOjp1cGRhdGVQbGFjZWhvbGRlclRleHQpOgorICAgICAgICAqIGh0bWwvY2Fu
dmFzL1dlYkdMUmVuZGVyaW5nQ29udGV4dEJhc2UuY3BwOgorICAgICAgICAoV2ViQ29yZTo6V2Vi
R0xSZW5kZXJpbmdDb250ZXh0QmFzZTo6ZGVzdHJveUdyYXBoaWNzQ29udGV4dDNEKToKKyAgICAg
ICAgKiBpbnNwZWN0b3IvSW5zcGVjdG9yQXBwbGljYXRpb25DYWNoZUFnZW50LmNwcDoKKyAgICAg
ICAgKFdlYkNvcmU6Okluc3BlY3RvckFwcGxpY2F0aW9uQ2FjaGVBZ2VudDo6d2lsbERlc3Ryb3lG
cm9udGVuZEFuZEJhY2tlbmQpOgorICAgICAgICAqIGluc3BlY3Rvci9JbnNwZWN0b3JDU1NBZ2Vu
dC5jcHA6CisgICAgICAgIChXZWJDb3JlOjpJbnNwZWN0b3JDU1NBZ2VudDo6d2lsbERlc3Ryb3lG
cm9udGVuZEFuZEJhY2tlbmQpOgorICAgICAgICAqIGluc3BlY3Rvci9JbnNwZWN0b3JDb250cm9s
bGVyLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6Okluc3BlY3RvckNvbnRyb2xsZXI6OmRpc2Nvbm5l
Y3RGcm9udGVuZCk6CisgICAgICAgICogaW5zcGVjdG9yL0luc3BlY3RvckRPTUFnZW50LmNwcDoK
KyAgICAgICAgKFdlYkNvcmU6Okluc3BlY3RvckRPTUFnZW50Ojp3aWxsRGVzdHJveUZyb250ZW5k
QW5kQmFja2VuZCk6CisgICAgICAgICogaW5zcGVjdG9yL0luc3BlY3RvckRPTURlYnVnZ2VyQWdl
bnQuY3BwOgorICAgICAgICAoV2ViQ29yZTo6SW5zcGVjdG9yRE9NRGVidWdnZXJBZ2VudDo6d2ls
bERlc3Ryb3lGcm9udGVuZEFuZEJhY2tlbmQpOgorICAgICAgICAqIGluc3BlY3Rvci9JbnNwZWN0
b3JET01TdG9yYWdlQWdlbnQuY3BwOgorICAgICAgICAoV2ViQ29yZTo6SW5zcGVjdG9yRE9NU3Rv
cmFnZUFnZW50Ojp3aWxsRGVzdHJveUZyb250ZW5kQW5kQmFja2VuZCk6CisgICAgICAgICogaW5z
cGVjdG9yL0luc3BlY3RvckRhdGFiYXNlQWdlbnQuY3BwOgorICAgICAgICAoV2ViQ29yZTo6SW5z
cGVjdG9yRGF0YWJhc2VBZ2VudDo6d2lsbERlc3Ryb3lGcm9udGVuZEFuZEJhY2tlbmQpOgorICAg
ICAgICAqIGluc3BlY3Rvci9JbnNwZWN0b3JJbmRleGVkREJBZ2VudC5jcHA6CisgICAgICAgIChX
ZWJDb3JlOjpJbnNwZWN0b3JJbmRleGVkREJBZ2VudDo6d2lsbERlc3Ryb3lGcm9udGVuZEFuZEJh
Y2tlbmQpOgorICAgICAgICAqIGluc3BlY3Rvci9JbnNwZWN0b3JMYXllclRyZWVBZ2VudC5jcHA6
CisgICAgICAgIChXZWJDb3JlOjpJbnNwZWN0b3JMYXllclRyZWVBZ2VudDo6d2lsbERlc3Ryb3lG
cm9udGVuZEFuZEJhY2tlbmQpOgorICAgICAgICAqIGluc3BlY3Rvci9JbnNwZWN0b3JPdmVybGF5
LmNwcDoKKyAgICAgICAgKFdlYkNvcmU6Okluc3BlY3Rvck92ZXJsYXk6OmhpZGVIaWdobGlnaHQp
OgorICAgICAgICAoV2ViQ29yZTo6SW5zcGVjdG9yT3ZlcmxheTo6aGlnaGxpZ2h0Tm9kZUxpc3Qp
OgorICAgICAgICAoV2ViQ29yZTo6SW5zcGVjdG9yT3ZlcmxheTo6aGlnaGxpZ2h0Tm9kZSk6Cisg
ICAgICAgICogaW5zcGVjdG9yL0luc3BlY3RvclBhZ2VBZ2VudC5jcHA6CisgICAgICAgIChXZWJD
b3JlOjpJbnNwZWN0b3JQYWdlQWdlbnQ6OndpbGxEZXN0cm95RnJvbnRlbmRBbmRCYWNrZW5kKToK
KyAgICAgICAgKFdlYkNvcmU6Okluc3BlY3RvclBhZ2VBZ2VudDo6ZGlzYWJsZSk6CisgICAgICAg
ICogaW5zcGVjdG9yL0luc3BlY3RvclJlcGxheUFnZW50LmNwcDoKKyAgICAgICAgKFdlYkNvcmU6
Okluc3BlY3RvclJlcGxheUFnZW50Ojp3aWxsRGVzdHJveUZyb250ZW5kQW5kQmFja2VuZCk6Cisg
ICAgICAgICogaW5zcGVjdG9yL0luc3BlY3RvclJlc291cmNlQWdlbnQuY3BwOgorICAgICAgICAo
V2ViQ29yZTo6SW5zcGVjdG9yUmVzb3VyY2VBZ2VudDo6d2lsbERlc3Ryb3lGcm9udGVuZEFuZEJh
Y2tlbmQpOgorICAgICAgICAqIGluc3BlY3Rvci9JbnNwZWN0b3JTdHlsZVNoZWV0LmNwcDoKKyAg
ICAgICAgKFdlYkNvcmU6Okluc3BlY3RvclN0eWxlU2hlZXRGb3JJbmxpbmVTdHlsZTo6ZGlkTW9k
aWZ5RWxlbWVudEF0dHJpYnV0ZSk6CisgICAgICAgIChXZWJDb3JlOjpJbnNwZWN0b3JTdHlsZVNo
ZWV0Rm9ySW5saW5lU3R5bGU6OnNldFN0eWxlVGV4dCk6CisgICAgICAgIChXZWJDb3JlOjpJbnNw
ZWN0b3JTdHlsZVNoZWV0Rm9ySW5saW5lU3R5bGU6OmVuc3VyZVBhcnNlZERhdGFSZWFkeSk6Cisg
ICAgICAgICogaW5zcGVjdG9yL0luc3BlY3RvclRpbWVsaW5lQWdlbnQuY3BwOgorICAgICAgICAo
V2ViQ29yZTo6SW5zcGVjdG9yVGltZWxpbmVBZ2VudDo6d2lsbERlc3Ryb3lGcm9udGVuZEFuZEJh
Y2tlbmQpOgorICAgICAgICAqIGluc3BlY3Rvci9JbnNwZWN0b3JXb3JrZXJBZ2VudC5jcHA6Cisg
ICAgICAgIChXZWJDb3JlOjpJbnNwZWN0b3JXb3JrZXJBZ2VudDo6d2lsbERlc3Ryb3lGcm9udGVu
ZEFuZEJhY2tlbmQpOgorICAgICAgICAqIGluc3BlY3Rvci9QYWdlUnVudGltZUFnZW50LmNwcDoK
KyAgICAgICAgKFdlYkNvcmU6OlBhZ2VSdW50aW1lQWdlbnQ6OndpbGxEZXN0cm95RnJvbnRlbmRB
bmRCYWNrZW5kKToKKyAgICAgICAgKiBpbnNwZWN0b3IvV2ViSW5qZWN0ZWRTY3JpcHRNYW5hZ2Vy
LmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OldlYkluamVjdGVkU2NyaXB0TWFuYWdlcjo6ZGlzY29u
bmVjdCk6CisgICAgICAgICogaW5zcGVjdG9yL1dvcmtlckluc3BlY3RvckNvbnRyb2xsZXIuY3Bw
OgorICAgICAgICAoV2ViQ29yZTo6V29ya2VySW5zcGVjdG9yQ29udHJvbGxlcjo6ZGlzY29ubmVj
dEZyb250ZW5kKToKKyAgICAgICAgKiBpbnNwZWN0b3IvV29ya2VyUnVudGltZUFnZW50LmNwcDoK
KyAgICAgICAgKFdlYkNvcmU6OldvcmtlclJ1bnRpbWVBZ2VudDo6d2lsbERlc3Ryb3lGcm9udGVu
ZEFuZEJhY2tlbmQpOgorICAgICAgICAqIGxvYWRlci9GcmFtZUxvYWRlci5jcHA6CisgICAgICAg
IChXZWJDb3JlOjpGcmFtZUxvYWRlcjo6ZGlkQmVnaW5Eb2N1bWVudCk6CisgICAgICAgICogbG9h
ZGVyL2NhY2hlL0NhY2hlZENTU1N0eWxlU2hlZXQuY3BwOgorICAgICAgICAoV2ViQ29yZTo6Q2Fj
aGVkQ1NTU3R5bGVTaGVldDo6ZGVzdHJveURlY29kZWREYXRhKToKKyAgICAgICAgKFdlYkNvcmU6
OkNhY2hlZENTU1N0eWxlU2hlZXQ6OnJlc3RvcmVQYXJzZWRTdHlsZVNoZWV0KToKKyAgICAgICAg
KiBsb2FkZXIvY2FjaGUvQ2FjaGVkSW1hZ2UuY3BwOgorICAgICAgICAoV2ViQ29yZTo6Q2FjaGVk
SW1hZ2U6OmNsZWFySW1hZ2UpOgorICAgICAgICAqIGxvYWRlci9jYWNoZS9DYWNoZWRSYXdSZXNv
dXJjZS5jcHA6CisgICAgICAgIChXZWJDb3JlOjpDYWNoZWRSYXdSZXNvdXJjZTo6Y2xlYXIpOgor
ICAgICAgICAqIGxvYWRlci9jYWNoZS9DYWNoZWRSZXNvdXJjZS5jcHA6CisgICAgICAgIChXZWJD
b3JlOjpDYWNoZWRSZXNvdXJjZTo6ZXJyb3IpOgorICAgICAgICAqIGxvYWRlci9pY29uL0ljb25S
ZWNvcmQuY3BwOgorICAgICAgICAoV2ViQ29yZTo6SWNvblJlY29yZDo6c2V0SW1hZ2VEYXRhKToK
KyAgICAgICAgKiBwYWdlL0V2ZW50SGFuZGxlci5jcHA6CisgICAgICAgIChXZWJDb3JlOjpFdmVu
dEhhbmRsZXI6OmNsZWFyKToKKyAgICAgICAgKFdlYkNvcmU6OkV2ZW50SGFuZGxlcjo6aGFuZGxl
VG91Y2hFdmVudCk6CisgICAgICAgICogcGFnZS9QYWdlLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6
OlBhZ2U6OnJlZnJlc2hQbHVnaW5zKToKKyAgICAgICAgKiBwbGF0Zm9ybS9hdWRpby9tYWMvQ0FS
aW5nQnVmZmVyLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OkNBUmluZ0J1ZmZlcjo6ZGVhbGxvY2F0
ZSk6CisgICAgICAgICogcGxhdGZvcm0vZ3JhcGhpY3MvRm9udC5jcHA6CisgICAgICAgIChXZWJD
b3JlOjpGb250OjptYXRoRGF0YSk6CisgICAgICAgICogcGxhdGZvcm0vZ3JhcGhpY3MvRm9udENh
Y2hlLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OkZvbnRDYWNoZTo6Z2V0VmVydGljYWxEYXRhKToK
KyAgICAgICAgKiBwbGF0Zm9ybS9ncmFwaGljcy9HcmFwaGljc0NvbnRleHQuY3BwOgorICAgICAg
ICAoV2ViQ29yZTo6R3JhcGhpY3NDb250ZXh0OjpzZXRTdHJva2VDb2xvcik6CisgICAgICAgIChX
ZWJDb3JlOjpHcmFwaGljc0NvbnRleHQ6OnNldEZpbGxDb2xvcik6CisgICAgICAgIChXZWJDb3Jl
OjpHcmFwaGljc0NvbnRleHQ6OnNldFN0cm9rZVBhdHRlcm4pOgorICAgICAgICAoV2ViQ29yZTo6
R3JhcGhpY3NDb250ZXh0OjpzZXRGaWxsUGF0dGVybik6CisgICAgICAgIChXZWJDb3JlOjpHcmFw
aGljc0NvbnRleHQ6OnNldFN0cm9rZUdyYWRpZW50KToKKyAgICAgICAgKFdlYkNvcmU6OkdyYXBo
aWNzQ29udGV4dDo6c2V0RmlsbEdyYWRpZW50KToKKyAgICAgICAgKiBwbGF0Zm9ybS9ncmFwaGlj
cy9jYWlyby9CYWNraW5nU3RvcmVCYWNrZW5kQ2Fpcm9YMTEuY3BwOgorICAgICAgICAoV2ViQ29y
ZTo6QmFja2luZ1N0b3JlQmFja2VuZENhaXJvWDExOjp+QmFja2luZ1N0b3JlQmFja2VuZENhaXJv
WDExKToKKyAgICAgICAgKiBwbGF0Zm9ybS9ncmFwaGljcy9jYWlyby9CaXRtYXBJbWFnZUNhaXJv
LmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OkZyYW1lRGF0YTo6Y2xlYXIpOgorICAgICAgICAqIHBs
YXRmb3JtL2dyYXBoaWNzL2ZpbHRlcnMvRmlsdGVyRWZmZWN0LmNwcDoKKyAgICAgICAgKFdlYkNv
cmU6OkZpbHRlckVmZmVjdDo6Y2xlYXJSZXN1bHQpOgorICAgICAgICAoV2ViQ29yZTo6RmlsdGVy
RWZmZWN0Ojp0cmFuc2Zvcm1SZXN1bHRDb2xvclNwYWNlKToKKyAgICAgICAgKiBwbGF0Zm9ybS9n
cmFwaGljcy9nc3RyZWFtZXIvSW1hZ2VHU3RyZWFtZXJDYWlyby5jcHA6CisgICAgICAgIChJbWFn
ZUdTdHJlYW1lcjo6fkltYWdlR1N0cmVhbWVyKToKKyAgICAgICAgKiBwbGF0Zm9ybS9ncmFwaGlj
cy90ZXhtYXAvQml0bWFwVGV4dHVyZUdMLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OkJpdG1hcFRl
eHR1cmVHTDo6YXBwbHlGaWx0ZXJzKToKKyAgICAgICAgKiBwbGF0Zm9ybS9ncmFwaGljcy90ZXht
YXAvVGV4dHVyZU1hcHBlckdMLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OlRleHR1cmVNYXBwZXJH
TDo6YmluZERlZmF1bHRTdXJmYWNlKToKKyAgICAgICAgKiBwbGF0Zm9ybS9ncmFwaGljcy90ZXht
YXAvVGV4dHVyZU1hcHBlckxheWVyLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OlRleHR1cmVNYXBw
ZXJMYXllcjo6cGFpbnRXaXRoSW50ZXJtZWRpYXRlU3VyZmFjZSk6CisgICAgICAgICogcGxhdGZv
cm0vZ3JhcGhpY3MvdGV4bWFwL1RleHR1cmVNYXBwZXJUaWxlZEJhY2tpbmdTdG9yZS5jcHA6Cisg
ICAgICAgIChXZWJDb3JlOjpUZXh0dXJlTWFwcGVyVGlsZWRCYWNraW5nU3RvcmU6OnVwZGF0ZUNv
bnRlbnRzRnJvbUltYWdlSWZOZWVkZWQpOgorICAgICAgICAqIHBsYXRmb3JtL2dyYXBoaWNzL3Rl
eG1hcC9jb29yZGluYXRlZC9Db29yZGluYXRlZEdyYXBoaWNzTGF5ZXIuY3BwOgorICAgICAgICAo
V2ViQ29yZTo6Q29vcmRpbmF0ZWRHcmFwaGljc0xheWVyOjpyZWxlYXNlSW1hZ2VCYWNraW5nSWZO
ZWVkZWQpOgorICAgICAgICAqIHBsYXRmb3JtL2dyYXBoaWNzL3RleG1hcC9jb29yZGluYXRlZC9D
b29yZGluYXRlZEltYWdlQmFja2luZy5jcHA6CisgICAgICAgIChXZWJDb3JlOjpDb29yZGluYXRl
ZEltYWdlQmFja2luZzo6cmVsZWFzZVN1cmZhY2VJZk5lZWRlZCk6CisgICAgICAgICogcGxhdGZv
cm0vZ3RrL0dhbWVwYWRzR3RrLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OkdhbWVwYWRzR3RrOjp1
bnJlZ2lzdGVyRGV2aWNlKToKKyAgICAgICAgKiByZW5kZXJpbmcvSW5saW5lRmxvd0JveC5jcHA6
CisgICAgICAgIChXZWJDb3JlOjpJbmxpbmVGbG93Qm94Ojpjb21wdXRlT3ZlcmZsb3cpOgorICAg
ICAgICAqIHJlbmRlcmluZy9SZW5kZXJCb3guY3BwOgorICAgICAgICAoV2ViQ29yZTo6UmVuZGVy
Qm94OjpjbGVhck92ZXJmbG93KToKKyAgICAgICAgKiByZW5kZXJpbmcvUmVuZGVyQm94UmVnaW9u
SW5mby5oOgorICAgICAgICAoV2ViQ29yZTo6UmVuZGVyQm94UmVnaW9uSW5mbzo6Y2xlYXJPdmVy
Zmxvdyk6CisgICAgICAgICogcmVuZGVyaW5nL3N0eWxlL0ZpbGxMYXllci5oOgorICAgICAgICAo
V2ViQ29yZTo6RmlsbExheWVyOjpjbGVhck1hc2tJbWFnZSk6CisgICAgICAgIChXZWJDb3JlOjpG
aWxsTGF5ZXI6OmNsZWFySW1hZ2UpOgorICAgICAgICAqIHN2Zy9TVkdUUmVmRWxlbWVudC5jcHA6
CisgICAgICAgIChXZWJDb3JlOjpTVkdUUmVmVGFyZ2V0RXZlbnRMaXN0ZW5lcjo6ZGV0YWNoKToK
KyAgICAgICAgKiB0ZXN0aW5nL0ludGVybmFscy5jcHA6CisgICAgICAgIChXZWJDb3JlOjpJbnRl
cm5hbHM6OmNsb3NlRHVtbXlJbnNwZWN0b3JGcm9udGVuZCk6CisgICAgICAgICogd29ya2Vycy9X
b3JrZXJFdmVudFF1ZXVlLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OldvcmtlckV2ZW50UXVldWU6
OkV2ZW50RGlzcGF0Y2hlcjo6ZGlzcGF0Y2gpOgorICAgICAgICAoV2ViQ29yZTo6V29ya2VyRXZl
bnRRdWV1ZTo6RXZlbnREaXNwYXRjaGVyOjpjYW5jZWwpOgorICAgICAgICAqIHhtbC9YTUxIdHRw
UmVxdWVzdC5jcHA6CisgICAgICAgIChXZWJDb3JlOjpYTUxIdHRwUmVxdWVzdDo6cmVzcG9uc2VC
bG9iKToKKyAgICAgICAgKFdlYkNvcmU6OlhNTEh0dHBSZXF1ZXN0OjpyZXNwb25zZUFycmF5QnVm
ZmVyKToKKyAgICAgICAgKFdlYkNvcmU6OlhNTEh0dHBSZXF1ZXN0OjpjbGVhclJlc3BvbnNlQnVm
ZmVycyk6CisgICAgICAgICogeG1sL1hTTFRQcm9jZXNzb3IuY3BwOgorICAgICAgICAoV2ViQ29y
ZTo6WFNMVFByb2Nlc3Nvcjo6cmVzZXQpOgorCiAyMDE1LTA3LTAzICBEYW4gQmVybnN0ZWluICA8
bWl0ekBhcHBsZS5jb20+CiAKICAgICAgICAgVHJpZWQgdG8gZml4IHRoZSBpT1MgYnVpbGQuCmRp
ZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L0NoYW5nZUxvZyBiL1NvdXJjZS9XZWJLaXQvQ2hhbmdl
TG9nCmluZGV4IDczYWQ1MDA2MTlmNWZkMDliZDU1MTFjZTRmZTUzMjIyMTlkMmMyMmYuLjg2ODY4
MjE3Mjc1MDE5MmM2ZmZkNDMyNmMwOTg2ZTFkOGI5ODMzNGMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9X
ZWJLaXQvQ2hhbmdlTG9nCisrKyBiL1NvdXJjZS9XZWJLaXQvQ2hhbmdlTG9nCkBAIC0xLDMgKzEs
MTIgQEAKKzIwMTUtMDctMDMgIENocmlzIER1bWV6ICA8Y2R1bWV6QGFwcGxlLmNvbT4KKworICAg
ICAgICBEcm9wIFJlZlB0cjo6Y2xlYXIoKSBtZXRob2QKKyAgICAgICAgaHR0cHM6Ly9idWdzLndl
YmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTE0NjU1NgorCisgICAgICAgIFJldmlld2VkIGJ5IE5P
Qk9EWSAoT09QUyEpLgorCisgICAgICAgIERyb3AgUmVmUHRyOjpjbGVhcigpIG1ldGhvZCBpbiBm
YXZvciBvZiAiPSBudWxscHRyOyIgcGF0dGVybi4KKwogMjAxNS0wNy0wMyAgRGFuIEJlcm5zdGVp
biAgPG1pdHpAYXBwbGUuY29tPgogCiAgICAgICAgIFtYY29kZV0gVXBkYXRlIHNvbWUgYnVpbGQg
c2V0dGluZ3MgYXMgcmVjb21tZW5kZWQgYnkgWGNvZGUgNwpkaWZmIC0tZ2l0IGEvU291cmNlL1dl
YktpdC9tYWMvQ2hhbmdlTG9nIGIvU291cmNlL1dlYktpdC9tYWMvQ2hhbmdlTG9nCmluZGV4IGIx
YzA4YzQ3MmE2OTA1YzZiYzhlMmI5MTkzZmRiNTRkOGY5OGE0NDcuLmI5MTg0YzVjZWM4MGY4NWEx
MmFlMWI2YTYwODI1ZTc4YTQ0MmNkYWIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvbWFjL0No
YW5nZUxvZworKysgYi9Tb3VyY2UvV2ViS2l0L21hYy9DaGFuZ2VMb2cKQEAgLTEsMyArMSwxMiBA
QAorMjAxNS0wNy0wMyAgQ2hyaXMgRHVtZXogIDxjZHVtZXpAYXBwbGUuY29tPgorCisgICAgICAg
IERyb3AgUmVmUHRyOjpjbGVhcigpIG1ldGhvZAorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0
Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTQ2NTU2CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZ
IChPT1BTISkuCisKKyAgICAgICAgRHJvcCBSZWZQdHI6OmNsZWFyKCkgbWV0aG9kIGluIGZhdm9y
IG9mICI9IG51bGxwdHI7IiBwYXR0ZXJuLgorCiAyMDE1LTA3LTAzICBEYW4gQmVybnN0ZWluICA8
bWl0ekBhcHBsZS5jb20+CiAKICAgICAgICAgW1hjb2RlXSBVcGRhdGUgc29tZSBidWlsZCBzZXR0
aW5ncyBhcyByZWNvbW1lbmRlZCBieSBYY29kZSA3CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0
L3dpbi9DaGFuZ2VMb2cgYi9Tb3VyY2UvV2ViS2l0L3dpbi9DaGFuZ2VMb2cKaW5kZXggMTE0Mjg1
OGFjOTRiNTY2YzRiMGZjMzliYjg1Y2Q0ZWIwN2Q5OWVmZC4uNTYyYTEyYmY0NTgyMTEyN2E2YjE4
OWI0ZGU1YzY2M2Y2NmI3ZjllNiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC93aW4vQ2hhbmdl
TG9nCisrKyBiL1NvdXJjZS9XZWJLaXQvd2luL0NoYW5nZUxvZwpAQCAtMSwzICsxLDEyIEBACisy
MDE1LTA3LTAzICBDaHJpcyBEdW1leiAgPGNkdW1lekBhcHBsZS5jb20+CisKKyAgICAgICAgRHJv
cCBSZWZQdHI6OmNsZWFyKCkgbWV0aG9kCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3Jn
L3Nob3dfYnVnLmNnaT9pZD0xNDY1NTYKKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9P
UFMhKS4KKworICAgICAgICBEcm9wIFJlZlB0cjo6Y2xlYXIoKSBtZXRob2QgaW4gZmF2b3Igb2Yg
Ij0gbnVsbHB0cjsiIHBhdHRlcm4uCisKIDIwMTUtMDYtMzAgIFNpbW9uIEZyYXNlciAgPHNpbW9u
LmZyYXNlckBhcHBsZS5jb20+CiAKICAgICAgICAgRml4IE1hYyBhbmQgV2luZG93cyBidWlsZHMu
CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9DaGFuZ2VMb2cgYi9Tb3VyY2UvV2ViS2l0Mi9D
aGFuZ2VMb2cKaW5kZXggODE3MGFjODI1ZTEyY2Y0NTM3MjA3MzMxOTE2ZWU3Zjc1ZTRiNjljMi4u
OTMyYzRiNzI4N2VlOGZlMGEwNzYwZmQwZmE0NzdjOTY4OTEwOGEyYiAxMDA2NDQKLS0tIGEvU291
cmNlL1dlYktpdDIvQ2hhbmdlTG9nCisrKyBiL1NvdXJjZS9XZWJLaXQyL0NoYW5nZUxvZwpAQCAt
MSwzICsxLDEyIEBACisyMDE1LTA3LTAzICBDaHJpcyBEdW1leiAgPGNkdW1lekBhcHBsZS5jb20+
CisKKyAgICAgICAgRHJvcCBSZWZQdHI6OmNsZWFyKCkgbWV0aG9kCisgICAgICAgIGh0dHBzOi8v
YnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0xNDY1NTYKKworICAgICAgICBSZXZpZXdl
ZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICBEcm9wIFJlZlB0cjo6Y2xlYXIoKSBtZXRo
b2QgaW4gZmF2b3Igb2YgIj0gbnVsbHB0cjsiIHBhdHRlcm4uICAgICAgICAKKwogMjAxNS0wNy0w
MyAgRGFuIEJlcm5zdGVpbiAgPG1pdHpAYXBwbGUuY29tPgogCiAgICAgICAgIFtYY29kZV0gVXBk
YXRlIHNvbWUgYnVpbGQgc2V0dGluZ3MgYXMgcmVjb21tZW5kZWQgYnkgWGNvZGUgNwpkaWZmIC0t
Z2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL0FQSS9KU1ZhbHVlUmVmLmNwcCBiL1NvdXJjZS9K
YXZhU2NyaXB0Q29yZS9BUEkvSlNWYWx1ZVJlZi5jcHAKaW5kZXggNzU5YTY1YTljN2RlM2M1NjYx
OWFiNDc0NTQ4MzQ4Njg4ZGNjNDdjMS4uNTQ0MDVlMmFmNTk3YzI0ODIzNmRlZjc2OWU4YmJjNjAy
ODk3OWQyNiAxMDA2NDQKLS0tIGEvU291cmNlL0phdmFTY3JpcHRDb3JlL0FQSS9KU1ZhbHVlUmVm
LmNwcAorKysgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvQVBJL0pTVmFsdWVSZWYuY3BwCkBAIC00
MjIsNyArNDIyLDcgQEAgSlNTdHJpbmdSZWYgSlNWYWx1ZVRvU3RyaW5nQ29weShKU0NvbnRleHRS
ZWYgY3R4LCBKU1ZhbHVlUmVmIHZhbHVlLCBKU1ZhbHVlUmVmKgogICAgIAogICAgIFJlZlB0cjxP
cGFxdWVKU1N0cmluZz4gc3RyaW5nUmVmKE9wYXF1ZUpTU3RyaW5nOjpjcmVhdGUoanNWYWx1ZS50
b1N0cmluZyhleGVjKS0+dmFsdWUoZXhlYykpKTsKICAgICBpZiAoaGFuZGxlRXhjZXB0aW9uSWZO
ZWVkZWQoZXhlYywgZXhjZXB0aW9uKSA9PSBFeGNlcHRpb25TdGF0dXM6OkRpZFRocm93KQotICAg
ICAgICBzdHJpbmdSZWYuY2xlYXIoKTsKKyAgICAgICAgc3RyaW5nUmVmID0gbnVsbHB0cjsKICAg
ICByZXR1cm4gc3RyaW5nUmVmLnJlbGVhc2UoKS5sZWFrUmVmKCk7CiB9CiAKZGlmZiAtLWdpdCBh
L1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ieXRlY29kZS9DYWxsTGlua0luZm8uY3BwIGIvU291cmNl
L0phdmFTY3JpcHRDb3JlL2J5dGVjb2RlL0NhbGxMaW5rSW5mby5jcHAKaW5kZXggNzJhMGMyNDFk
ZmNjZDE2NWQ5MDMwZDVmYTg0ZWZiNjhmODFmNGIzOC4uZDkyMDA5ODc0YTkzODU3NzcyYzQzNjZm
NGQwMDliNTQ2YTMzYjlhYyAxMDA2NDQKLS0tIGEvU291cmNlL0phdmFTY3JpcHRDb3JlL2J5dGVj
b2RlL0NhbGxMaW5rSW5mby5jcHAKKysrIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL2J5dGVjb2Rl
L0NhbGxMaW5rSW5mby5jcHAKQEAgLTQzLDcgKzQzLDcgQEAgdm9pZCBDYWxsTGlua0luZm86OmNs
ZWFyU3R1YigpCiAgICAgICAgIHJldHVybjsKIAogICAgIG1fc3R1Yi0+Y2xlYXJDYWxsTm9kZXNG
b3IodGhpcyk7Ci0gICAgbV9zdHViLmNsZWFyKCk7CisgICAgbV9zdHViID0gbnVsbHB0cjsKIH0K
IAogdm9pZCBDYWxsTGlua0luZm86OnVubGluayhSZXBhdGNoQnVmZmVyJiByZXBhdGNoQnVmZmVy
KQpkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL2J5dGVjb2RlL1N0cnVjdHVyZVN0
dWJJbmZvLmggYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvYnl0ZWNvZGUvU3RydWN0dXJlU3R1Yklu
Zm8uaAppbmRleCBlYzhiNzljMWYyODUyNWJiNDg0OTVkZDFiZWM2ZjE5ZjE2MjU3NGVmLi5kNDAy
YWNlZTU3OTNiYjRmNzg2Njk1MTcxNjQxNDhlOGE3YTI3MWM4IDEwMDY0NAotLS0gYS9Tb3VyY2Uv
SmF2YVNjcmlwdENvcmUvYnl0ZWNvZGUvU3RydWN0dXJlU3R1YkluZm8uaAorKysgYi9Tb3VyY2Uv
SmF2YVNjcmlwdENvcmUvYnl0ZWNvZGUvU3RydWN0dXJlU3R1YkluZm8uaApAQCAtMTQ5LDggKzE0
OSw4IEBAIHN0cnVjdCBTdHJ1Y3R1cmVTdHViSW5mbyB7CiAgICAgewogICAgICAgICBkZXJlZigp
OwogICAgICAgICBhY2Nlc3NUeXBlID0gYWNjZXNzX3Vuc2V0OwotICAgICAgICBzdHViUm91dGlu
ZS5jbGVhcigpOwotICAgICAgICB3YXRjaHBvaW50cy5jbGVhcigpOworICAgICAgICBzdHViUm91
dGluZSA9IG51bGxwdHI7CisgICAgICAgIHdhdGNocG9pbnRzID0gbnVsbHB0cjsKICAgICB9CiAK
ICAgICB2b2lkIGRlcmVmKCk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvZGVi
dWdnZXIvRGVidWdnZXIuY3BwIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL2RlYnVnZ2VyL0RlYnVn
Z2VyLmNwcAppbmRleCA1NzQxMDY5MmUwMDgwMDc3OTc4YjM3ZWIxNjc3MDMyMzM1YzRiNGMyLi5i
YzFiNTdlNTkzYTc5OTMwNzEyODkyZGU2NTA5MzEwNmEzYWE0N2QxIDEwMDY0NAotLS0gYS9Tb3Vy
Y2UvSmF2YVNjcmlwdENvcmUvZGVidWdnZXIvRGVidWdnZXIuY3BwCisrKyBiL1NvdXJjZS9KYXZh
U2NyaXB0Q29yZS9kZWJ1Z2dlci9EZWJ1Z2dlci5jcHAKQEAgLTExNyw3ICsxMTcsNyBAQCBwdWJs
aWM6CiAgICAgewogICAgICAgICBpZiAobV9kZWJ1Z2dlci5tX2N1cnJlbnREZWJ1Z2dlckNhbGxG
cmFtZSkgewogICAgICAgICAgICAgbV9kZWJ1Z2dlci5tX2N1cnJlbnREZWJ1Z2dlckNhbGxGcmFt
ZS0+aW52YWxpZGF0ZSgpOwotICAgICAgICAgICAgbV9kZWJ1Z2dlci5tX2N1cnJlbnREZWJ1Z2dl
ckNhbGxGcmFtZSA9IDA7CisgICAgICAgICAgICBtX2RlYnVnZ2VyLm1fY3VycmVudERlYnVnZ2Vy
Q2FsbEZyYW1lID0gbnVsbHB0cjsKICAgICAgICAgfQogICAgIH0KIApkaWZmIC0tZ2l0IGEvU291
cmNlL0phdmFTY3JpcHRDb3JlL2RmZy9ERkdHcmFwaC5oIGIvU291cmNlL0phdmFTY3JpcHRDb3Jl
L2RmZy9ERkdHcmFwaC5oCmluZGV4IDJjZTdkNjBiMmEyZjhhZjdhMzM1YzU2NTEwNjk4ZDk5ZTY3
Mjg0MWIuLjUxNDhjMjZkOGUzN2U3NzMyNDRlOGQ5YjI0NDM1YjIzYWEzMDJlMjQgMTAwNjQ0Ci0t
LSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9kZmcvREZHR3JhcGguaAorKysgYi9Tb3VyY2UvSmF2
YVNjcmlwdENvcmUvZGZnL0RGR0dyYXBoLmgKQEAgLTQ0NCw3ICs0NDQsNyBAQCBwdWJsaWM6CiAg
ICAgCiAgICAgdm9pZCBraWxsQmxvY2soQmxvY2tJbmRleCBibG9ja0luZGV4KQogICAgIHsKLSAg
ICAgICAgbV9ibG9ja3NbYmxvY2tJbmRleF0uY2xlYXIoKTsKKyAgICAgICAgbV9ibG9ja3NbYmxv
Y2tJbmRleF0gPSBudWxscHRyOwogICAgIH0KICAgICAKICAgICB2b2lkIGtpbGxCbG9jayhCYXNp
Y0Jsb2NrKiBiYXNpY0Jsb2NrKQpkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL2Rm
Zy9ERkdPcGVyYXRpb25zLmNwcCBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9kZmcvREZHT3BlcmF0
aW9ucy5jcHAKaW5kZXggYTk5YTNmYTEwMjAxOGNiZTg0ZTRkMTM3NDUwZDcyNTBkNDg3ZWUwOC4u
NmY5NTEyYmE1MzRjNDkwZDRiZjk5OGFmNWQwODI0NDEyZGJiOTE0ZSAxMDA2NDQKLS0tIGEvU291
cmNlL0phdmFTY3JpcHRDb3JlL2RmZy9ERkdPcGVyYXRpb25zLmNwcAorKysgYi9Tb3VyY2UvSmF2
YVNjcmlwdENvcmUvZGZnL0RGR09wZXJhdGlvbnMuY3BwCkBAIC0xNDQ3LDcgKzE0NDcsNyBAQCBj
aGFyKiBKSVRfT1BFUkFUSU9OIHRyaWdnZXJPU1JFbnRyeU5vdygKICAgICAgICAgCiAgICAgICAg
IC8vIE9TUiBlbnRyeSBmYWlsZWQuIE9oIG5vISBUaGlzIGltcGxpZXMgdGhhdCB3ZSBuZWVkIHRv
IHJldHJ5LiBXZSByZXRyeQogICAgICAgICAvLyB3aXRob3V0IGV4cG9uZW50aWFsIGJhY2tvZmYg
YW5kIHdlIG9ubHkgZG8gdGhpcyBmb3IgdGhlIGVudHJ5IGNvZGUgYmxvY2suCi0gICAgICAgIGpp
dENvZGUtPm9zckVudHJ5QmxvY2suY2xlYXIoKTsKKyAgICAgICAgaml0Q29kZS0+b3NyRW50cnlC
bG9jayA9IG51bGxwdHI7CiAgICAgICAgIGppdENvZGUtPm9zckVudHJ5UmV0cnkgPSAwOwogICAg
ICAgICByZXR1cm4gMDsKICAgICB9CmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUv
aW5zcGVjdG9yL0NvbnNvbGVNZXNzYWdlLmNwcCBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9pbnNw
ZWN0b3IvQ29uc29sZU1lc3NhZ2UuY3BwCmluZGV4IGEwNGE5N2RjM2I0NTE0ODU2Nzc2NGY0ZDI4
ZDBmM2IyYzM4ZDFlMDYuLjlhYzBkZGVlMmRjOTBiYWY4MThmYWUzYTJkNDE2ZGQ1OGFhOTE0NDUg
MTAwNjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9pbnNwZWN0b3IvQ29uc29sZU1lc3Nh
Z2UuY3BwCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9pbnNwZWN0b3IvQ29uc29sZU1lc3Nh
Z2UuY3BwCkBAIC0yNzMsNyArMjczLDcgQEAgdm9pZCBDb25zb2xlTWVzc2FnZTo6Y2xlYXIoKQog
ICAgICAgICBtX21lc3NhZ2UgPSBBU0NJSUxpdGVyYWwoIjxtZXNzYWdlIGNvbGxlY3RlZD4iKTsK
IAogICAgIGlmIChtX2FyZ3VtZW50cykKLSAgICAgICAgbV9hcmd1bWVudHMuY2xlYXIoKTsKKyAg
ICAgICAgbV9hcmd1bWVudHMgPSBudWxscHRyOwogfQogCiBKU0M6OkV4ZWNTdGF0ZSogQ29uc29s
ZU1lc3NhZ2U6OnNjcmlwdFN0YXRlKCkgY29uc3QKZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2Ny
aXB0Q29yZS9pbnNwZWN0b3IvSlNHbG9iYWxPYmplY3RJbnNwZWN0b3JDb250cm9sbGVyLmNwcCBi
L1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9pbnNwZWN0b3IvSlNHbG9iYWxPYmplY3RJbnNwZWN0b3JD
b250cm9sbGVyLmNwcAppbmRleCA1N2Y1MmM1NTU0N2E2Mzg4NzljODJmNDBiNjhlYzNkMjJiMzJh
MDM5Li4xMWQ4NmVkMzI5NzUwMzE3MzcxNmE4NWQ5MzU4MDhmYzY3N2I1ZDQ4IDEwMDY0NAotLS0g
YS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvaW5zcGVjdG9yL0pTR2xvYmFsT2JqZWN0SW5zcGVjdG9y
Q29udHJvbGxlci5jcHAKKysrIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL2luc3BlY3Rvci9KU0ds
b2JhbE9iamVjdEluc3BlY3RvckNvbnRyb2xsZXIuY3BwCkBAIC0xMzEsNyArMTMxLDcgQEAgdm9p
ZCBKU0dsb2JhbE9iamVjdEluc3BlY3RvckNvbnRyb2xsZXI6OmRpc2Nvbm5lY3RGcm9udGVuZChE
aXNjb25uZWN0UmVhc29uIHJlYXMKICAgICBtX2FnZW50cy53aWxsRGVzdHJveUZyb250ZW5kQW5k
QmFja2VuZChyZWFzb24pOwogCiAgICAgbV9iYWNrZW5kRGlzcGF0Y2hlci0+Y2xlYXJGcm9udGVu
ZCgpOwotICAgIG1fYmFja2VuZERpc3BhdGNoZXIuY2xlYXIoKTsKKyAgICBtX2JhY2tlbmREaXNw
YXRjaGVyID0gbnVsbHB0cjsKICAgICBtX2Zyb250ZW5kQ2hhbm5lbCA9IG51bGxwdHI7CiAKICAg
ICBtX2lzQXV0b21hdGljSW5zcGVjdGlvbiA9IGZhbHNlOwpkaWZmIC0tZ2l0IGEvU291cmNlL0ph
dmFTY3JpcHRDb3JlL2luc3BlY3Rvci9hZ2VudHMvSW5zcGVjdG9yQWdlbnQuY3BwIGIvU291cmNl
L0phdmFTY3JpcHRDb3JlL2luc3BlY3Rvci9hZ2VudHMvSW5zcGVjdG9yQWdlbnQuY3BwCmluZGV4
IGJmMjQxYmE3NzgyZDljMDljYTZkYWQzNjA5MmI4MjFhNzJhODM4YWEuLjA1Mzg2OTAxZTYxZTdm
YmNkZWNlMGJjMTUyOTBkOWY1YmFjZTAxODggMTAwNjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0
Q29yZS9pbnNwZWN0b3IvYWdlbnRzL0luc3BlY3RvckFnZW50LmNwcAorKysgYi9Tb3VyY2UvSmF2
YVNjcmlwdENvcmUvaW5zcGVjdG9yL2FnZW50cy9JbnNwZWN0b3JBZ2VudC5jcHAKQEAgLTU3LDcg
KzU3LDcgQEAgdm9pZCBJbnNwZWN0b3JBZ2VudDo6ZGlkQ3JlYXRlRnJvbnRlbmRBbmRCYWNrZW5k
KEZyb250ZW5kQ2hhbm5lbCogZnJvbnRlbmRDaGFubmUKIHZvaWQgSW5zcGVjdG9yQWdlbnQ6Ondp
bGxEZXN0cm95RnJvbnRlbmRBbmRCYWNrZW5kKERpc2Nvbm5lY3RSZWFzb24pCiB7CiAgICAgbV9m
cm9udGVuZERpc3BhdGNoZXIgPSBudWxscHRyOwotICAgIG1fYmFja2VuZERpc3BhdGNoZXIuY2xl
YXIoKTsKKyAgICBtX2JhY2tlbmREaXNwYXRjaGVyID0gbnVsbHB0cjsKIAogICAgIG1fcGVuZGlu
Z0V2YWx1YXRlVGVzdENvbW1hbmRzLmNsZWFyKCk7CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZh
U2NyaXB0Q29yZS9pbnNwZWN0b3IvYWdlbnRzL0luc3BlY3RvckNvbnNvbGVBZ2VudC5jcHAgYi9T
b3VyY2UvSmF2YVNjcmlwdENvcmUvaW5zcGVjdG9yL2FnZW50cy9JbnNwZWN0b3JDb25zb2xlQWdl
bnQuY3BwCmluZGV4IDgxNGEwYzExY2Y2MDhlYzY5ODk5Y2ViZjFiYWMxNGVhYmMxOWJhZDYuLjlm
ZmQwNDg0ZjI4MDYyYzI5YmNhZGI0YjliOWQzNzBiMWY3MTEzN2YgMTAwNjQ0Ci0tLSBhL1NvdXJj
ZS9KYXZhU2NyaXB0Q29yZS9pbnNwZWN0b3IvYWdlbnRzL0luc3BlY3RvckNvbnNvbGVBZ2VudC5j
cHAKKysrIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL2luc3BlY3Rvci9hZ2VudHMvSW5zcGVjdG9y
Q29uc29sZUFnZW50LmNwcApAQCAtNjQsNyArNjQsNyBAQCB2b2lkIEluc3BlY3RvckNvbnNvbGVB
Z2VudDo6ZGlkQ3JlYXRlRnJvbnRlbmRBbmRCYWNrZW5kKEZyb250ZW5kQ2hhbm5lbCogZnJvbnRl
bgogdm9pZCBJbnNwZWN0b3JDb25zb2xlQWdlbnQ6OndpbGxEZXN0cm95RnJvbnRlbmRBbmRCYWNr
ZW5kKERpc2Nvbm5lY3RSZWFzb24pCiB7CiAgICAgbV9mcm9udGVuZERpc3BhdGNoZXIgPSBudWxs
cHRyOwotICAgIG1fYmFja2VuZERpc3BhdGNoZXIuY2xlYXIoKTsKKyAgICBtX2JhY2tlbmREaXNw
YXRjaGVyID0gbnVsbHB0cjsKIAogICAgIFN0cmluZyBlcnJvclN0cmluZzsKICAgICBkaXNhYmxl
KGVycm9yU3RyaW5nKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9pbnNwZWN0
b3IvYWdlbnRzL0luc3BlY3RvckRlYnVnZ2VyQWdlbnQuY3BwIGIvU291cmNlL0phdmFTY3JpcHRD
b3JlL2luc3BlY3Rvci9hZ2VudHMvSW5zcGVjdG9yRGVidWdnZXJBZ2VudC5jcHAKaW5kZXggYTc1
ZTBiMmI2ZWM3ZThjOWRkZDY3N2ZmOTQ4NWM5ZThmZTlkYmU0ZC4uZjBmMGI0OGRkNGQ0N2NkZTNh
MGYyYTg4MjJjNDYzMjVkZTVhYWI0ZiAxMDA2NDQKLS0tIGEvU291cmNlL0phdmFTY3JpcHRDb3Jl
L2luc3BlY3Rvci9hZ2VudHMvSW5zcGVjdG9yRGVidWdnZXJBZ2VudC5jcHAKKysrIGIvU291cmNl
L0phdmFTY3JpcHRDb3JlL2luc3BlY3Rvci9hZ2VudHMvSW5zcGVjdG9yRGVidWdnZXJBZ2VudC5j
cHAKQEAgLTc3LDcgKzc3LDcgQEAgdm9pZCBJbnNwZWN0b3JEZWJ1Z2dlckFnZW50OjpkaWRDcmVh
dGVGcm9udGVuZEFuZEJhY2tlbmQoRnJvbnRlbmRDaGFubmVsKiBmcm9udGUKIHZvaWQgSW5zcGVj
dG9yRGVidWdnZXJBZ2VudDo6d2lsbERlc3Ryb3lGcm9udGVuZEFuZEJhY2tlbmQoRGlzY29ubmVj
dFJlYXNvbiByZWFzb24pCiB7CiAgICAgbV9mcm9udGVuZERpc3BhdGNoZXIgPSBudWxscHRyOwot
ICAgIG1fYmFja2VuZERpc3BhdGNoZXIuY2xlYXIoKTsKKyAgICBtX2JhY2tlbmREaXNwYXRjaGVy
ID0gbnVsbHB0cjsKIAogICAgIGJvb2wgc2tpcFJlY29tcGlsZSA9IHJlYXNvbiA9PSBEaXNjb25u
ZWN0UmVhc29uOjpJbnNwZWN0ZWRUYXJnZXREZXN0cm95ZWQ7CiAgICAgZGlzYWJsZShza2lwUmVj
b21waWxlKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9pbnNwZWN0b3IvYWdl
bnRzL0pTR2xvYmFsT2JqZWN0UnVudGltZUFnZW50LmNwcCBiL1NvdXJjZS9KYXZhU2NyaXB0Q29y
ZS9pbnNwZWN0b3IvYWdlbnRzL0pTR2xvYmFsT2JqZWN0UnVudGltZUFnZW50LmNwcAppbmRleCA2
NThjNjdhYjE1Zjg5NTIwNWM1NWJiNTI4OWMwYjlkMmU0ZTQwYzYwLi40NjA0OWY1NmM3NWFkNzM5
OGYzYzlkMDc1ODQ2Y2U3YTFjMTI4MjY4IDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENv
cmUvaW5zcGVjdG9yL2FnZW50cy9KU0dsb2JhbE9iamVjdFJ1bnRpbWVBZ2VudC5jcHAKKysrIGIv
U291cmNlL0phdmFTY3JpcHRDb3JlL2luc3BlY3Rvci9hZ2VudHMvSlNHbG9iYWxPYmplY3RSdW50
aW1lQWdlbnQuY3BwCkBAIC00OSw3ICs0OSw3IEBAIHZvaWQgSlNHbG9iYWxPYmplY3RSdW50aW1l
QWdlbnQ6OmRpZENyZWF0ZUZyb250ZW5kQW5kQmFja2VuZChGcm9udGVuZENoYW5uZWwqIGZyCiB2
b2lkIEpTR2xvYmFsT2JqZWN0UnVudGltZUFnZW50Ojp3aWxsRGVzdHJveUZyb250ZW5kQW5kQmFj
a2VuZChEaXNjb25uZWN0UmVhc29uIHJlYXNvbikKIHsKICAgICBtX2Zyb250ZW5kRGlzcGF0Y2hl
ciA9IG51bGxwdHI7Ci0gICAgbV9iYWNrZW5kRGlzcGF0Y2hlci5jbGVhcigpOworICAgIG1fYmFj
a2VuZERpc3BhdGNoZXIgPSBudWxscHRyOwogCiAgICAgSW5zcGVjdG9yUnVudGltZUFnZW50Ojp3
aWxsRGVzdHJveUZyb250ZW5kQW5kQmFja2VuZChyZWFzb24pOwogfQpkaWZmIC0tZ2l0IGEvU291
cmNlL0phdmFTY3JpcHRDb3JlL3BhcnNlci9QYXJzZXIuY3BwIGIvU291cmNlL0phdmFTY3JpcHRD
b3JlL3BhcnNlci9QYXJzZXIuY3BwCmluZGV4IGRjMGY1NWYxMzJmYTBlMThmODQ3YTg1NGM4Y2Zm
NTZiMGE2MDk0OWYuLmEzYzVlMzEyMThiMDM5MmVlNzYxNmZlZDYxZDlkMzk1MmI0YTQ4ZTYgMTAw
NjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9wYXJzZXIvUGFyc2VyLmNwcAorKysgYi9T
b3VyY2UvSmF2YVNjcmlwdENvcmUvcGFyc2VyL1BhcnNlci5jcHAKQEAgLTQ5MSw3ICs0OTEsNyBA
QCB0ZW1wbGF0ZSA8Y2xhc3MgVHJlZUJ1aWxkZXI+IFRyZWVFeHByZXNzaW9uIFBhcnNlcjxMZXhl
clR5cGU+OjpwYXJzZVZhckRlY2xhcmF0aQogICAgIEpTVG9rZW4gbGFzdElkZW50VG9rZW47IAog
ICAgIGRvIHsKICAgICAgICAgbGFzdElkZW50ID0gMDsKLSAgICAgICAgbGFzdFBhdHRlcm4gPSAw
OworICAgICAgICBsYXN0UGF0dGVybiA9IFRyZWVEZXN0cnVjdHVyaW5nUGF0dGVybigwKTsKICAg
ICAgICAgSlNUb2tlbkxvY2F0aW9uIGxvY2F0aW9uKHRva2VuTG9jYXRpb24oKSk7CiAgICAgICAg
IG5leHQoKTsKICAgICAgICAgVHJlZUV4cHJlc3Npb24gbm9kZSA9IDA7CkBAIC04OTQsNyArODk0
LDcgQEAgdGVtcGxhdGUgPGNsYXNzIFRyZWVCdWlsZGVyPiBUcmVlU3RhdGVtZW50IFBhcnNlcjxM
ZXhlclR5cGU+OjpwYXJzZUZvclN0YXRlbWVudCgKICAgICAgICAgICAgIGRlY2xzRW5kID0gbGFz
dFRva2VuRW5kUG9zaXRpb24oKTsKICAgICAgICAgICAgIGlmIChwYXR0ZXJuICYmIChtYXRjaChJ
TlRPS0VOKSB8fCAobWF0Y2goSURFTlQpICYmICptX3Rva2VuLm1fZGF0YS5pZGVudCA9PSBtX3Zt
LT5wcm9wZXJ0eU5hbWVzLT5vZikpKQogICAgICAgICAgICAgICAgIGdvdG8gZW51bWVyYXRpb25M
b29wOwotICAgICAgICAgICAgcGF0dGVybiA9IDA7CisgICAgICAgICAgICBwYXR0ZXJuID0gVHJl
ZURlc3RydWN0dXJpbmdQYXR0ZXJuKDApOwogICAgICAgICAgICAgcmVzdG9yZVNhdmVQb2ludChz
YXZlUG9pbnQpOwogICAgICAgICB9CiAgICAgICAgIG1fYWxsb3dzSW4gPSBmYWxzZTsKZGlmZiAt
LWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0V4ZWN1dGFibGUuY3BwIGIvU291
cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvRXhlY3V0YWJsZS5jcHAKaW5kZXggNmNiMDliMDFi
MzgyNWI4NDU2ZTk1YzFhYmM5ZGZmMmI4MDZlNDExOC4uNTUyNDBmZDkxZjdiYzc4NDJmMTNlNTky
ODFkMTBkMjFkODZjNGY1MCAxMDA2NDQKLS0tIGEvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRp
bWUvRXhlY3V0YWJsZS5jcHAKKysrIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvRXhl
Y3V0YWJsZS5jcHAKQEAgLTUyLDggKzUyLDggQEAgdm9pZCBFeGVjdXRhYmxlQmFzZTo6ZGVzdHJv
eShKU0NlbGwqIGNlbGwpCiB2b2lkIEV4ZWN1dGFibGVCYXNlOjpjbGVhckNvZGUoKQogewogI2lm
IEVOQUJMRShKSVQpCi0gICAgbV9qaXRDb2RlRm9yQ2FsbC5jbGVhcigpOwotICAgIG1faml0Q29k
ZUZvckNvbnN0cnVjdC5jbGVhcigpOworICAgIG1faml0Q29kZUZvckNhbGwgPSBudWxscHRyOwor
ICAgIG1faml0Q29kZUZvckNvbnN0cnVjdCA9IG51bGxwdHI7CiAgICAgbV9qaXRDb2RlRm9yQ2Fs
bFdpdGhBcml0eUNoZWNrID0gTWFjcm9Bc3NlbWJsZXJDb2RlUHRyKCk7CiAgICAgbV9qaXRDb2Rl
Rm9yQ29uc3RydWN0V2l0aEFyaXR5Q2hlY2sgPSBNYWNyb0Fzc2VtYmxlckNvZGVQdHIoKTsKICAg
ICBtX2ppdENvZGVGb3JDYWxsV2l0aEFyaXR5Q2hlY2tBbmRQcmVzZXJ2ZVJlZ3MgPSBNYWNyb0Fz
c2VtYmxlckNvZGVQdHIoKTsKQEAgLTQ2NCw3ICs0NjQsNyBAQCB2b2lkIEV2YWxFeGVjdXRhYmxl
Ojp1bmxpbmtDYWxscygpCiAKIHZvaWQgRXZhbEV4ZWN1dGFibGU6OmNsZWFyQ29kZSgpCiB7Ci0g
ICAgbV9ldmFsQ29kZUJsb2NrLmNsZWFyKCk7CisgICAgbV9ldmFsQ29kZUJsb2NrID0gbnVsbHB0
cjsKICAgICBtX3VubGlua2VkRXZhbENvZGVCbG9jay5jbGVhcigpOwogICAgIEJhc2U6OmNsZWFy
Q29kZSgpOwogfQpAQCAtNTQzLDcgKzU0Myw3IEBAIHZvaWQgUHJvZ3JhbUV4ZWN1dGFibGU6OnZp
c2l0Q2hpbGRyZW4oSlNDZWxsKiBjZWxsLCBTbG90VmlzaXRvciYgdmlzaXRvcikKIAogdm9pZCBQ
cm9ncmFtRXhlY3V0YWJsZTo6Y2xlYXJDb2RlKCkKIHsKLSAgICBtX3Byb2dyYW1Db2RlQmxvY2su
Y2xlYXIoKTsKKyAgICBtX3Byb2dyYW1Db2RlQmxvY2sgPSBudWxscHRyOwogICAgIG1fdW5saW5r
ZWRQcm9ncmFtQ29kZUJsb2NrLmNsZWFyKCk7CiAgICAgQmFzZTo6Y2xlYXJDb2RlKCk7CiB9CkBA
IC01ODcsOCArNTg3LDggQEAgdm9pZCBGdW5jdGlvbkV4ZWN1dGFibGU6OmNsZWFyVW5saW5rZWRD
b2RlRm9yUmVjb21waWxhdGlvbigpCiAKIHZvaWQgRnVuY3Rpb25FeGVjdXRhYmxlOjpjbGVhckNv
ZGUoKQogewotICAgIG1fY29kZUJsb2NrRm9yQ2FsbC5jbGVhcigpOwotICAgIG1fY29kZUJsb2Nr
Rm9yQ29uc3RydWN0LmNsZWFyKCk7CisgICAgbV9jb2RlQmxvY2tGb3JDYWxsID0gbnVsbHB0cjsK
KyAgICBtX2NvZGVCbG9ja0ZvckNvbnN0cnVjdCA9IG51bGxwdHI7CiAgICAgQmFzZTo6Y2xlYXJD
b2RlKCk7CiB9CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0pT
TG9jay5jcHAgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9KU0xvY2suY3BwCmluZGV4
IDJlNzk5NGNmMjdjM2M1NGQ1ZDU3YzM3MDAwZGQxODBlYzRkZjlmMDUuLmMyZWUwYTU1MzJjMGI1
MTkzNjg3MTA5ZDlhMzJlYzRhMTQ0NWQ4YmQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0
Q29yZS9ydW50aW1lL0pTTG9jay5jcHAKKysrIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRp
bWUvSlNMb2NrLmNwcApAQCAtNzMsNyArNzMsNyBAQCB2b2lkIEpTTG9ja0hvbGRlcjo6aW5pdCgp
CiBKU0xvY2tIb2xkZXI6On5KU0xvY2tIb2xkZXIoKQogewogICAgIFJlZlB0cjxKU0xvY2s+IGFw
aUxvY2soJm1fdm0tPmFwaUxvY2soKSk7Ci0gICAgbV92bS5jbGVhcigpOworICAgIG1fdm0gPSBu
dWxscHRyOwogICAgIGFwaUxvY2stPnVubG9jaygpOwogfQogCmRpZmYgLS1naXQgYS9Tb3VyY2Uv
SmF2YVNjcmlwdENvcmUvcnVudGltZS9TdHJ1Y3R1cmUuY3BwIGIvU291cmNlL0phdmFTY3JpcHRD
b3JlL3J1bnRpbWUvU3RydWN0dXJlLmNwcAppbmRleCBmNzcxYjYwYmNiNjVkZThlNTRjNmE2MTFj
N2QyNmY4NjU5OGIwNzRkLi4zOTg1ODA1Y2Y1NWM4M2MxZGE2NTRhMTM1YzQ1MTBjNzUwMTcwYjE5
IDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9TdHJ1Y3R1cmUuY3Bw
CisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL1N0cnVjdHVyZS5jcHAKQEAgLTcz
Nyw3ICs3MzcsNyBAQCB2b2lkIFN0cnVjdHVyZTo6cGluKCkKICAgICBBU1NFUlQocHJvcGVydHlU
YWJsZSgpKTsKICAgICBzZXRJc1Bpbm5lZFByb3BlcnR5VGFibGUodHJ1ZSk7CiAgICAgY2xlYXJQ
cmV2aW91c0lEKCk7Ci0gICAgbV9uYW1lSW5QcmV2aW91cy5jbGVhcigpOworICAgIG1fbmFtZUlu
UHJldmlvdXMgPSBudWxscHRyOwogfQogCiB2b2lkIFN0cnVjdHVyZTo6YWxsb2NhdGVSYXJlRGF0
YShWTSYgdm0pCmRpZmYgLS1naXQgYS9Tb3VyY2UvV1RGL3d0Zi9SZWZQdHIuaCBiL1NvdXJjZS9X
VEYvd3RmL1JlZlB0ci5oCmluZGV4IDI5MTFmMGRhOTA2MmI3NmNjZDJhZDE1NDQwYjljZDI1ODVk
NTg4ODYuLjdjODMwNWUzOGVkNzJiNDQ3N2RhNWYyZTIyNzUwNzY0YTc4M2UyNjQgMTAwNjQ0Ci0t
LSBhL1NvdXJjZS9XVEYvd3RmL1JlZlB0ci5oCisrKyBiL1NvdXJjZS9XVEYvd3RmL1JlZlB0ci5o
CkBAIC02MCw3ICs2MCw2IEBAIHB1YmxpYzoKIAogICAgIFQqIGdldCgpIGNvbnN0IHsgcmV0dXJu
IG1fcHRyOyB9CiAgICAgCi0gICAgdm9pZCBjbGVhcigpOwogICAgIFBhc3NSZWZQdHI8VD4gcmVs
ZWFzZSgpIHsgUGFzc1JlZlB0cjxUPiB0bXAgPSBhZG9wdFJlZihtX3B0cik7IG1fcHRyID0gbnVs
bHB0cjsgcmV0dXJuIHRtcDsgfQogICAgIFJlZjxUPiByZWxlYXNlTm9uTnVsbCgpIHsgQVNTRVJU
KG1fcHRyKTsgUmVmPFQ+IHRtcChhZG9wdFJlZigqbV9wdHIpKTsgbV9wdHIgPSBudWxscHRyOyBy
ZXR1cm4gdG1wOyB9CiAKQEAgLTc3LDYgKzc2LDcgQEAgcHVibGljOgogICAgIAogICAgIFJlZlB0
ciYgb3BlcmF0b3I9KGNvbnN0IFJlZlB0ciYpOwogICAgIFJlZlB0ciYgb3BlcmF0b3I9KFQqKTsK
KyAgICBSZWZQdHImIG9wZXJhdG9yPShzdGQ6Om51bGxwdHJfdCk7CiAgICAgUmVmUHRyJiBvcGVy
YXRvcj0oY29uc3QgUGFzc1JlZlB0cjxUPiYpOwogICAgIHRlbXBsYXRlPHR5cGVuYW1lIFU+IFJl
ZlB0ciYgb3BlcmF0b3I9KGNvbnN0IFJlZlB0cjxVPiYpOwogICAgIHRlbXBsYXRlPHR5cGVuYW1l
IFU+IFJlZlB0ciYgb3BlcmF0b3I9KGNvbnN0IFBhc3NSZWZQdHI8VT4mKTsKQEAgLTEwOSwxMSAr
MTA5LDYgQEAgdGVtcGxhdGU8dHlwZW5hbWUgVD4gdGVtcGxhdGU8dHlwZW5hbWUgVT4gaW5saW5l
IFJlZlB0cjxUPjo6UmVmUHRyKFJlZjxVPiYmIHJlZmUKIHsKIH0KIAotdGVtcGxhdGU8dHlwZW5h
bWUgVD4gaW5saW5lIHZvaWQgUmVmUHRyPFQ+OjpjbGVhcigpCi17Ci0gICAgZGVyZWZJZk5vdE51
bGwoc3RkOjpleGNoYW5nZShtX3B0ciwgbnVsbHB0cikpOwotfQotCiB0ZW1wbGF0ZTx0eXBlbmFt
ZSBUPgogaW5saW5lIFQqIFJlZlB0cjxUPjo6bGVha1JlZigpCiB7CkBAIC0xNDEsNiArMTM2LDEy
IEBAIHRlbXBsYXRlPHR5cGVuYW1lIFQ+IGlubGluZSBSZWZQdHI8VD4mIFJlZlB0cjxUPjo6b3Bl
cmF0b3I9KFQqIG9wdHIpCiAgICAgcmV0dXJuICp0aGlzOwogfQogCit0ZW1wbGF0ZTx0eXBlbmFt
ZSBUPiBpbmxpbmUgUmVmUHRyPFQ+JiBSZWZQdHI8VD46Om9wZXJhdG9yPShzdGQ6Om51bGxwdHJf
dCkKK3sKKyAgICBkZXJlZklmTm90TnVsbChzdGQ6OmV4Y2hhbmdlKG1fcHRyLCBudWxscHRyKSk7
CisgICAgcmV0dXJuICp0aGlzOworfQorCiB0ZW1wbGF0ZTx0eXBlbmFtZSBUPiBpbmxpbmUgUmVm
UHRyPFQ+JiBSZWZQdHI8VD46Om9wZXJhdG9yPShjb25zdCBQYXNzUmVmUHRyPFQ+JiBvKQogewog
ICAgIFJlZlB0ciBwdHIgPSBvOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dURi93dGYvdGV4dC9TdHJp
bmdCdWlsZGVyLmggYi9Tb3VyY2UvV1RGL3d0Zi90ZXh0L1N0cmluZ0J1aWxkZXIuaAppbmRleCBi
ZTVjMTE3MmNjY2I5OThhNDEwNTgwMzQ1YWY0MGMyOWNiMTM0OThlLi4xZGM0YWM2MjI5NDBjMGE1
MzQyZDc2YzkyMmEzNmRkNjE4MmE5MWY4IDEwMDY0NAotLS0gYS9Tb3VyY2UvV1RGL3d0Zi90ZXh0
L1N0cmluZ0J1aWxkZXIuaAorKysgYi9Tb3VyY2UvV1RGL3d0Zi90ZXh0L1N0cmluZ0J1aWxkZXIu
aApAQCAtMjY0LDcgKzI2NCw3IEBAIHB1YmxpYzoKICAgICB7CiAgICAgICAgIG1fbGVuZ3RoID0g
MDsKICAgICAgICAgbV9zdHJpbmcgPSBTdHJpbmcoKTsKLSAgICAgICAgbV9idWZmZXIgPSAwOwor
ICAgICAgICBtX2J1ZmZlciA9IG51bGxwdHI7CiAgICAgICAgIG1fYnVmZmVyQ2hhcmFjdGVyczgg
PSAwOwogICAgICAgICBtX2lzOEJpdCA9IHRydWU7CiAgICAgfQpkaWZmIC0tZ2l0IGEvU291cmNl
L1dlYkNvcmUvTW9kdWxlcy9pbmRleGVkZGIvSURCQ3Vyc29yLmNwcCBiL1NvdXJjZS9XZWJDb3Jl
L01vZHVsZXMvaW5kZXhlZGRiL0lEQkN1cnNvci5jcHAKaW5kZXggYTIwZTFlMWFjZTI0OTk0ODRk
Zjc0NTkxOThhMTExZTE4NDI5MGU2ZC4uYzQwMTFkYzI3NTU1ZjQ4ZmNlMmQ2ZDJlMTY0MDhmMWQ3
YTc2MTM2ZiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9pbmRleGVkZGIvSURC
Q3Vyc29yLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL2luZGV4ZWRkYi9JREJDdXJz
b3IuY3BwCkBAIC0yNTksNyArMjU5LDcgQEAgdm9pZCBJREJDdXJzb3I6OmNsb3NlKCkKICAgICBt
X3RyYW5zYWN0aW9uTm90aWZpZXIuY3Vyc29yRmluaXNoZWQoKTsKICAgICBpZiAobV9yZXF1ZXN0
KSB7CiAgICAgICAgIG1fcmVxdWVzdC0+ZmluaXNoQ3Vyc29yKCk7Ci0gICAgICAgIG1fcmVxdWVz
dC5jbGVhcigpOworICAgICAgICBtX3JlcXVlc3QgPSBudWxscHRyOwogICAgIH0KIH0KIApkaWZm
IC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9pbmRleGVkZGIvSURCRGF0YWJhc2VCYWNr
ZW5kLmNwcCBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvaW5kZXhlZGRiL0lEQkRhdGFiYXNlQmFj
a2VuZC5jcHAKaW5kZXggZmMyMzEwMmRkYWE5YTM3NzA5NDBlZjRlYjA0YzEzODAzODM0ZGMzZi4u
MDllNGUyN2I4ZjkwOWUxNzgwOWI0OWQwMzRlM2I4YzRlNDVlZjUzNyAxMDA2NDQKLS0tIGEvU291
cmNlL1dlYkNvcmUvTW9kdWxlcy9pbmRleGVkZGIvSURCRGF0YWJhc2VCYWNrZW5kLmNwcAorKysg
Yi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL2luZGV4ZWRkYi9JREJEYXRhYmFzZUJhY2tlbmQuY3Bw
CkBAIC0zMzMsNyArMzMzLDcgQEAgdm9pZCBJREJEYXRhYmFzZUJhY2tlbmQ6OnRyYW5zYWN0aW9u
RmluaXNoZWQoSURCVHJhbnNhY3Rpb25CYWNrZW5kKiByYXdUcmFuc2FjdGkKICAgICBtX3RyYW5z
YWN0aW9ucy5yZW1vdmUodHJhbnNhY3Rpb24tPmlkKCkpOwogICAgIGlmICh0cmFuc2FjdGlvbi0+
bW9kZSgpID09IEluZGV4ZWREQjo6VHJhbnNhY3Rpb25Nb2RlOjpWZXJzaW9uQ2hhbmdlKSB7CiAg
ICAgICAgIEFTU0VSVCh0cmFuc2FjdGlvbi5nZXQoKSA9PSBtX3J1bm5pbmdWZXJzaW9uQ2hhbmdl
VHJhbnNhY3Rpb24uZ2V0KCkpOwotICAgICAgICBtX3J1bm5pbmdWZXJzaW9uQ2hhbmdlVHJhbnNh
Y3Rpb24uY2xlYXIoKTsKKyAgICAgICAgbV9ydW5uaW5nVmVyc2lvbkNoYW5nZVRyYW5zYWN0aW9u
ID0gbnVsbHB0cjsKICAgICB9CiB9CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL01vZHVs
ZXMvaW5kZXhlZGRiL0lEQk9iamVjdFN0b3JlLmNwcCBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMv
aW5kZXhlZGRiL0lEQk9iamVjdFN0b3JlLmNwcAppbmRleCBlOGJmOWRkZWZlNDk3YjU2M2Q5OGYw
ODUwZWFlOGQ0ODdlYjIyNWI5Li5hNmQyODE0MmY2MjIyMjJmOTQzZjhkNGUxMzViNDI0ODMxMjAz
MDE5IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL2luZGV4ZWRkYi9JREJPYmpl
Y3RTdG9yZS5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9pbmRleGVkZGIvSURCT2Jq
ZWN0U3RvcmUuY3BwCkBAIC0zMzcsNyArMzM3LDcgQEAgcHJpdmF0ZToKICAgICAgICAgICAgIC8v
IE5vdyB0aGF0IHdlIGFyZSBkb25lIGluZGV4aW5nLCB0ZWxsIHRoZSBiYWNrZW5kIHRvIGdvCiAg
ICAgICAgICAgICAvLyBiYWNrIHRvIHByb2Nlc3NpbmcgdGFza3Mgb2YgdHlwZSBOb3JtYWxUYXNr
LgogICAgICAgICAgICAgbV9kYXRhYmFzZUJhY2tlbmQtPnNldEluZGV4ZXNSZWFkeShtX3RyYW5z
YWN0aW9uSWQsIG1fb2JqZWN0U3RvcmVJZCwgaW5kZXhJZHMpOwotICAgICAgICAgICAgbV9kYXRh
YmFzZUJhY2tlbmQuY2xlYXIoKTsKKyAgICAgICAgICAgIG1fZGF0YWJhc2VCYWNrZW5kID0gbnVs
bHB0cjsKICAgICAgICAgfQogCiAgICAgfQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvTW9k
dWxlcy9pbmRleGVkZGIvSURCT3BlbkRCUmVxdWVzdC5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1
bGVzL2luZGV4ZWRkYi9JREJPcGVuREJSZXF1ZXN0LmNwcAppbmRleCA2Mzc4MDdlYWQ5NGNiNzhj
OWM5ZDkzNThkZWQ2NzBmZmYyMDE3N2RjLi43MTU3OWIwNTk1NTYyNGUwM2YyYWUxNzI3ZmM1MDQ2
NzkyNTA0N2I0IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL2luZGV4ZWRkYi9J
REJPcGVuREJSZXF1ZXN0LmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL2luZGV4ZWRk
Yi9JREJPcGVuREJSZXF1ZXN0LmNwcApAQCAtMTQyLDcgKzE0Miw3IEBAIGJvb2wgSURCT3BlbkRC
UmVxdWVzdDo6ZGlzcGF0Y2hFdmVudChQYXNzUmVmUHRyPEV2ZW50PiBldmVudCkKICAgICAvLyBJ
ZiB0aGUgY29ubmVjdGlvbiBjbG9zZWQgYmV0d2VlbiBvblVwZ3JhZGVOZWVkZWQgYW5kIHRoZSBk
ZWxpdmVyeSBvZiB0aGUgInN1Y2Nlc3MiIGV2ZW50LAogICAgIC8vIGFuICJlcnJvciIgZXZlbnQg
c2hvdWxkIGJlIGZpcmVkIGluc3RlYWQuCiAgICAgaWYgKGV2ZW50LT50eXBlKCkgPT0gZXZlbnRO
YW1lcygpLnN1Y2Nlc3NFdmVudCAmJiBtX3Jlc3VsdC0+dHlwZSgpID09IElEQkFueTo6SURCRGF0
YWJhc2VUeXBlICYmIG1fcmVzdWx0LT5pZGJEYXRhYmFzZSgpLT5pc0Nsb3NlUGVuZGluZygpKSB7
Ci0gICAgICAgIG1fcmVzdWx0LmNsZWFyKCk7CisgICAgICAgIG1fcmVzdWx0ID0gbnVsbHB0cjsK
ICAgICAgICAgb25FcnJvcihJREJEYXRhYmFzZUVycm9yOjpjcmVhdGUoSURCRGF0YWJhc2VFeGNl
cHRpb246OkFib3J0RXJyb3IsICJUaGUgY29ubmVjdGlvbiB3YXMgY2xvc2VkLiIpKTsKICAgICAg
ICAgcmV0dXJuIGZhbHNlOwogICAgIH0KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL01vZHVs
ZXMvaW5kZXhlZGRiL0lEQlJlcXVlc3QuY3BwIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9pbmRl
eGVkZGIvSURCUmVxdWVzdC5jcHAKaW5kZXggOWU1MDFiNGY4NjI2YjA0MDE2ZGVjZDk1ODYxNmE4
MTUzZmE2NWFlZi4uODY0ZGU1MzU3NTMxMWIwOWUyODc4NGEzZGE2NWM4MWZmOGE4NDVhZiAxMDA2
NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9pbmRleGVkZGIvSURCUmVxdWVzdC5jcHAK
KysrIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9pbmRleGVkZGIvSURCUmVxdWVzdC5jcHAKQEAg
LTE3MCw5ICsxNzAsOSBAQCB2b2lkIElEQlJlcXVlc3Q6OmFib3J0KCkKICAgICBtX2VucXVldWVk
RXZlbnRzLmNsZWFyKCk7CiAKICAgICBtX2Vycm9yQ29kZSA9IDA7Ci0gICAgbV9lcnJvci5jbGVh
cigpOworICAgIG1fZXJyb3IgPSBudWxscHRyOwogICAgIG1fZXJyb3JNZXNzYWdlID0gU3RyaW5n
KCk7Ci0gICAgbV9yZXN1bHQuY2xlYXIoKTsKKyAgICBtX3Jlc3VsdCA9IG51bGxwdHI7CiAgICAg
b25FcnJvcihJREJEYXRhYmFzZUVycm9yOjpjcmVhdGUoSURCRGF0YWJhc2VFeGNlcHRpb246OkFi
b3J0RXJyb3IpKTsKICAgICBtX3JlcXVlc3RBYm9ydGVkID0gdHJ1ZTsKIH0KQEAgLTE5NCwxMCAr
MTk0LDEwIEBAIHZvaWQgSURCUmVxdWVzdDo6c2V0UGVuZGluZ0N1cnNvcihQYXNzUmVmUHRyPElE
QkN1cnNvcj4gY3Vyc29yKQogICAgIEFTU0VSVChjdXJzb3IgPT0gZ2V0UmVzdWx0Q3Vyc29yKCkp
OwogCiAgICAgbV9wZW5kaW5nQ3Vyc29yID0gY3Vyc29yOwotICAgIG1fcmVzdWx0LmNsZWFyKCk7
CisgICAgbV9yZXN1bHQgPSBudWxscHRyOwogICAgIG1fcmVhZHlTdGF0ZSA9IFBFTkRJTkc7CiAg
ICAgbV9lcnJvckNvZGUgPSAwOwotICAgIG1fZXJyb3IuY2xlYXIoKTsKKyAgICBtX2Vycm9yID0g
bnVsbHB0cjsKICAgICBtX2Vycm9yTWVzc2FnZSA9IFN0cmluZygpOwogICAgIG1fdHJhbnNhY3Rp
b24tPnJlZ2lzdGVyUmVxdWVzdCh0aGlzKTsKIH0KQEAgLTI1Niw3ICsyNTYsNyBAQCB2b2lkIElE
QlJlcXVlc3Q6Om9uRXJyb3IoUGFzc1JlZlB0cjxJREJEYXRhYmFzZUVycm9yPiBlcnJvcikKICAg
ICBtX2Vycm9yQ29kZSA9IGVycm9yLT5jb2RlKCk7CiAgICAgbV9lcnJvck1lc3NhZ2UgPSBlcnJv
ci0+bWVzc2FnZSgpOwogICAgIG1fZXJyb3IgPSBET01FcnJvcjo6Y3JlYXRlKElEQkRhdGFiYXNl
RXhjZXB0aW9uOjpnZXRFcnJvck5hbWUoZXJyb3ItPmlkYkNvZGUoKSkpOwotICAgIG1fcGVuZGlu
Z0N1cnNvci5jbGVhcigpOworICAgIG1fcGVuZGluZ0N1cnNvciA9IG51bGxwdHI7CiAgICAgZW5x
dWV1ZUV2ZW50KEV2ZW50OjpjcmVhdGUoZXZlbnROYW1lcygpLmVycm9yRXZlbnQsIHRydWUsIHRy
dWUpKTsKIH0KIApAQCAtNDA0LDcgKzQwNCw3IEBAIHZvaWQgSURCUmVxdWVzdDo6b25TdWNjZXNz
SW50ZXJuYWwoY29uc3QgRGVwcmVjYXRlZDo6U2NyaXB0VmFsdWUmIHZhbHVlKQogICAgIG1fcmVz
dWx0ID0gSURCQW55OjpjcmVhdGUodmFsdWUpOwogICAgIGlmIChtX3BlbmRpbmdDdXJzb3IpIHsK
ICAgICAgICAgbV9wZW5kaW5nQ3Vyc29yLT5jbG9zZSgpOwotICAgICAgICBtX3BlbmRpbmdDdXJz
b3IuY2xlYXIoKTsKKyAgICAgICAgbV9wZW5kaW5nQ3Vyc29yID0gbnVsbHB0cjsKICAgICB9CiAg
ICAgZW5xdWV1ZUV2ZW50KGNyZWF0ZVN1Y2Nlc3NFdmVudCgpKTsKIH0KQEAgLTU1Myw3ICs1NTMs
NyBAQCB2b2lkIElEQlJlcXVlc3Q6OnRyYW5zYWN0aW9uRGlkRmluaXNoQW5kRGlzcGF0Y2goKQog
ICAgIEFTU0VSVChtX3RyYW5zYWN0aW9uLT5pc1ZlcnNpb25DaGFuZ2UoKSk7CiAgICAgQVNTRVJU
KG1fcmVhZHlTdGF0ZSA9PSBET05FKTsKICAgICBBU1NFUlQoc2NyaXB0RXhlY3V0aW9uQ29udGV4
dCgpKTsKLSAgICBtX3RyYW5zYWN0aW9uLmNsZWFyKCk7CisgICAgbV90cmFuc2FjdGlvbiA9IG51
bGxwdHI7CiAgICAgbV9yZWFkeVN0YXRlID0gUEVORElORzsKIH0KIApkaWZmIC0tZ2l0IGEvU291
cmNlL1dlYkNvcmUvTW9kdWxlcy9pbmRleGVkZGIvSURCVHJhbnNhY3Rpb24uY3BwIGIvU291cmNl
L1dlYkNvcmUvTW9kdWxlcy9pbmRleGVkZGIvSURCVHJhbnNhY3Rpb24uY3BwCmluZGV4IDk5NDhi
YzcyYmIyNTJlYWQ4MDRlZDAzNzE1M2QyNDE0ZWE4YjFlYTcuLjZlYzI5ZmE2Nzg0Yzc4ZTdiMDRi
YTMwNGUyNDg2MzA3MzkyZWQ4OWEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMv
aW5kZXhlZGRiL0lEQlRyYW5zYWN0aW9uLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVz
L2luZGV4ZWRkYi9JREJUcmFuc2FjdGlvbi5jcHAKQEAgLTI0MCw3ICsyNDAsNyBAQCB2b2lkIElE
QlRyYW5zYWN0aW9uOjpPcGVuQ3Vyc29yTm90aWZpZXI6OmN1cnNvckZpbmlzaGVkKCkKICAgICBp
ZiAobV9jdXJzb3IpIHsKICAgICAgICAgbV90cmFuc2FjdGlvbi0+dW5yZWdpc3Rlck9wZW5DdXJz
b3IobV9jdXJzb3IpOwogICAgICAgICBtX2N1cnNvciA9IG51bGxwdHI7Ci0gICAgICAgIG1fdHJh
bnNhY3Rpb24uY2xlYXIoKTsKKyAgICAgICAgbV90cmFuc2FjdGlvbiA9IG51bGxwdHI7CiAgICAg
fQogfQogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL21lZGlhc291cmNlL01l
ZGlhU291cmNlLmNwcCBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvbWVkaWFzb3VyY2UvTWVkaWFT
b3VyY2UuY3BwCmluZGV4IDkxMTcwYWE0ZTgyYTAxNzVmZDJhNDAxZGFlNDU0OTc5ZTcwYmEyYjQu
LmM0MGQ2ZTMwMzY5ZTM5OTEzYzdmYTk3NzJjMWVkNmNmMzI0MDRlMTkgMTAwNjQ0Ci0tLSBhL1Nv
dXJjZS9XZWJDb3JlL01vZHVsZXMvbWVkaWFzb3VyY2UvTWVkaWFTb3VyY2UuY3BwCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL01vZHVsZXMvbWVkaWFzb3VyY2UvTWVkaWFTb3VyY2UuY3BwCkBAIC0zOTQs
NyArMzk0LDcgQEAgdm9pZCBNZWRpYVNvdXJjZTo6c2V0UmVhZHlTdGF0ZShjb25zdCBBdG9taWNT
dHJpbmcmIHN0YXRlKQogICAgIExPRyhNZWRpYVNvdXJjZSwgIk1lZGlhU291cmNlOjpzZXRSZWFk
eVN0YXRlKCVwKSA6ICVzIC0+ICVzIiwgdGhpcywgb2xkU3RhdGUuc3RyaW5nKCkuYXNjaWkoKS5k
YXRhKCksIHN0YXRlLnN0cmluZygpLmFzY2lpKCkuZGF0YSgpKTsKIAogICAgIGlmIChzdGF0ZSA9
PSBjbG9zZWRLZXl3b3JkKCkpIHsKLSAgICAgICAgbV9wcml2YXRlLmNsZWFyKCk7CisgICAgICAg
IG1fcHJpdmF0ZSA9IG51bGxwdHI7CiAgICAgICAgIG1fbWVkaWFFbGVtZW50ID0gbnVsbHB0cjsK
ICAgICAgICAgbV9kdXJhdGlvbiA9IE1lZGlhVGltZTo6aW52YWxpZFRpbWUoKTsKICAgICB9CkBA
IC04MTEsNyArODExLDcgQEAgdm9pZCBNZWRpYVNvdXJjZTo6c3RvcCgpCiAgICAgbV9hc3luY0V2
ZW50UXVldWUuY2xvc2UoKTsKICAgICBpZiAoIWlzQ2xvc2VkKCkpCiAgICAgICAgIHNldFJlYWR5
U3RhdGUoY2xvc2VkS2V5d29yZCgpKTsKLSAgICBtX3ByaXZhdGUuY2xlYXIoKTsKKyAgICBtX3By
aXZhdGUgPSBudWxscHRyOwogfQogCiBib29sIE1lZGlhU291cmNlOjpjYW5TdXNwZW5kRm9yUGFn
ZUNhY2hlKCkgY29uc3QKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvbWVkaWFz
dHJlYW0vUlRDU2Vzc2lvbkRlc2NyaXB0aW9uUmVxdWVzdEltcGwuY3BwIGIvU291cmNlL1dlYkNv
cmUvTW9kdWxlcy9tZWRpYXN0cmVhbS9SVENTZXNzaW9uRGVzY3JpcHRpb25SZXF1ZXN0SW1wbC5j
cHAKaW5kZXggZDcxMGRjMThmNWUyM2NiNmUxMzA4ZGYyOGY2NTZhNjg5YmNiMDZkNy4uMzAxMzM0
ZGNkNTEwODVkMzI1ZjUyNGY4ZWQ5OTRhZWNiOGU2ODQ0MyAxMDA2NDQKLS0tIGEvU291cmNlL1dl
YkNvcmUvTW9kdWxlcy9tZWRpYXN0cmVhbS9SVENTZXNzaW9uRGVzY3JpcHRpb25SZXF1ZXN0SW1w
bC5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9tZWRpYXN0cmVhbS9SVENTZXNzaW9u
RGVzY3JpcHRpb25SZXF1ZXN0SW1wbC5jcHAKQEAgLTk3LDggKzk3LDggQEAgYm9vbCBSVENTZXNz
aW9uRGVzY3JpcHRpb25SZXF1ZXN0SW1wbDo6Y2FuU3VzcGVuZEZvclBhZ2VDYWNoZSgpIGNvbnN0
CiAKIHZvaWQgUlRDU2Vzc2lvbkRlc2NyaXB0aW9uUmVxdWVzdEltcGw6OmNsZWFyKCkKIHsKLSAg
ICBtX3N1Y2Nlc3NDYWxsYmFjay5jbGVhcigpOwotICAgIG1fZXJyb3JDYWxsYmFjay5jbGVhcigp
OworICAgIG1fc3VjY2Vzc0NhbGxiYWNrID0gbnVsbHB0cjsKKyAgICBtX2Vycm9yQ2FsbGJhY2sg
PSBudWxscHRyOwogfQogCiB9IC8vIG5hbWVzcGFjZSBXZWJDb3JlCmRpZmYgLS1naXQgYS9Tb3Vy
Y2UvV2ViQ29yZS9Nb2R1bGVzL21lZGlhc3RyZWFtL1JUQ1N0YXRzUmVxdWVzdEltcGwuY3BwIGIv
U291cmNlL1dlYkNvcmUvTW9kdWxlcy9tZWRpYXN0cmVhbS9SVENTdGF0c1JlcXVlc3RJbXBsLmNw
cAppbmRleCBkZWIxOWE5YWY5MGRjZmM0NTYzNzM4NjhlMTVmODgzNWRmYmU0YzhmLi5kMDAwYjEx
ZGYxN2ZlZjEwMTBlMzg5OWI3NzAyMWNlNzkyMDFmN2U5IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2Vi
Q29yZS9Nb2R1bGVzL21lZGlhc3RyZWFtL1JUQ1N0YXRzUmVxdWVzdEltcGwuY3BwCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL01vZHVsZXMvbWVkaWFzdHJlYW0vUlRDU3RhdHNSZXF1ZXN0SW1wbC5jcHAK
QEAgLTEwNCw3ICsxMDQsNyBAQCBib29sIFJUQ1N0YXRzUmVxdWVzdEltcGw6OmNhblN1c3BlbmRG
b3JQYWdlQ2FjaGUoKSBjb25zdAogCiB2b2lkIFJUQ1N0YXRzUmVxdWVzdEltcGw6OmNsZWFyKCkK
IHsKLSAgICBtX3N1Y2Nlc3NDYWxsYmFjay5jbGVhcigpOworICAgIG1fc3VjY2Vzc0NhbGxiYWNr
ID0gbnVsbHB0cjsKIH0KIAogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL21l
ZGlhc3RyZWFtL1JUQ1ZvaWRSZXF1ZXN0SW1wbC5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVz
L21lZGlhc3RyZWFtL1JUQ1ZvaWRSZXF1ZXN0SW1wbC5jcHAKaW5kZXggODJmOGExMjJkZDMwOWUz
YWQwZTQzOTRlYzljYzM1ZWUwMDlkYWQzNy4uNzA2ZjkwNzU4ZmRjMTVkYzk3ZWZhMWE1ZDMxMTJj
NGUyYWI0OWRhNiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9tZWRpYXN0cmVh
bS9SVENWb2lkUmVxdWVzdEltcGwuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvbWVk
aWFzdHJlYW0vUlRDVm9pZFJlcXVlc3RJbXBsLmNwcApAQCAtOTQsOCArOTQsOCBAQCBib29sIFJU
Q1ZvaWRSZXF1ZXN0SW1wbDo6Y2FuU3VzcGVuZEZvclBhZ2VDYWNoZSgpIGNvbnN0CiAKIHZvaWQg
UlRDVm9pZFJlcXVlc3RJbXBsOjpjbGVhcigpCiB7Ci0gICAgbV9zdWNjZXNzQ2FsbGJhY2suY2xl
YXIoKTsKLSAgICBtX2Vycm9yQ2FsbGJhY2suY2xlYXIoKTsKKyAgICBtX3N1Y2Nlc3NDYWxsYmFj
ayA9IG51bGxwdHI7CisgICAgbV9lcnJvckNhbGxiYWNrID0gbnVsbHB0cjsKIH0KIAogfSAvLyBu
YW1lc3BhY2UgV2ViQ29yZQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy93ZWJh
dWRpby9BdWRpb0NvbnRleHQuY3BwIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy93ZWJhdWRpby9B
dWRpb0NvbnRleHQuY3BwCmluZGV4IDVhM2RlYTBhNTA3MWQ4ZGFmYmNkZmUwNTVhOGQwNWNkODAz
NDBkYWYuLmZhYTk5NmI3NGNmOGIwZmIyYjA0MzIyZGIxN2JhNjY4NjM2MGM5YjkgMTAwNjQ0Ci0t
LSBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvd2ViYXVkaW8vQXVkaW9Db250ZXh0LmNwcAorKysg
Yi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL3dlYmF1ZGlvL0F1ZGlvQ29udGV4dC5jcHAKQEAgLTIz
MSw3ICsyMzEsNyBAQCB2b2lkIEF1ZGlvQ29udGV4dDo6Y2xlYXIoKQogewogICAgIC8vIFdlIGhh
dmUgdG8gcmVsZWFzZSBvdXIgcmVmZXJlbmNlIHRvIHRoZSBkZXN0aW5hdGlvbiBub2RlIGJlZm9y
ZSB0aGUgY29udGV4dCB3aWxsIGV2ZXIgYmUgZGVsZXRlZCBzaW5jZSB0aGUgZGVzdGluYXRpb24g
bm9kZSBob2xkcyBhIHJlZmVyZW5jZSB0byB0aGUgY29udGV4dC4KICAgICBpZiAobV9kZXN0aW5h
dGlvbk5vZGUpCi0gICAgICAgIG1fZGVzdGluYXRpb25Ob2RlLmNsZWFyKCk7CisgICAgICAgIG1f
ZGVzdGluYXRpb25Ob2RlID0gbnVsbHB0cjsKIAogICAgIC8vIEF1ZGlvIHRocmVhZCBpcyBkZWFk
LiBOb2JvZHkgd2lsbCBzY2hlZHVsZSBub2RlIGRlbGV0aW9uIGFjdGlvbi4gTGV0J3MgZG8gaXQg
b3Vyc2VsdmVzLgogICAgIGRvIHsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMv
d2ViZGF0YWJhc2UvU1FMVHJhbnNhY3Rpb25CYWNrZW5kLmNwcCBiL1NvdXJjZS9XZWJDb3JlL01v
ZHVsZXMvd2ViZGF0YWJhc2UvU1FMVHJhbnNhY3Rpb25CYWNrZW5kLmNwcAppbmRleCBkYTI1NGI2
NTRmMjM1ZTVhMTgyZTRkN2Y4NGMzOWExNTVlNGU4MGQ2Li5kMzExMzgwZTQ0ODU4MWFkOWU0Mzdk
MjQ1ZWVhMjlmNmE5ZjljMDk2IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL3dl
YmRhdGFiYXNlL1NRTFRyYW5zYWN0aW9uQmFja2VuZC5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUv
TW9kdWxlcy93ZWJkYXRhYmFzZS9TUUxUcmFuc2FjdGlvbkJhY2tlbmQuY3BwCkBAIC04NDUsNyAr
ODQ1LDcgQEAgdm9pZCBTUUxUcmFuc2FjdGlvbkJhY2tlbmQ6OnJlbGVhc2VPcmlnaW5Mb2NrSWZO
ZWVkZWQoKQogewogICAgIGlmIChtX29yaWdpbkxvY2spIHsKICAgICAgICAgbV9vcmlnaW5Mb2Nr
LT51bmxvY2soKTsKLSAgICAgICAgbV9vcmlnaW5Mb2NrLmNsZWFyKCk7CisgICAgICAgIG1fb3Jp
Z2luTG9jayA9IG51bGxwdHI7CiAgICAgfQogfQogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29y
ZS9Nb2R1bGVzL3dlYnNvY2tldHMvV29ya2VyVGhyZWFkYWJsZVdlYlNvY2tldENoYW5uZWwuY3Bw
IGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy93ZWJzb2NrZXRzL1dvcmtlclRocmVhZGFibGVXZWJT
b2NrZXRDaGFubmVsLmNwcAppbmRleCBiY2JkYWY5NGM3MDExN2MzZDE0MzlhODQzZWE3Y2IwMzI4
YzJlZTg1Li4zNGI2NGQ3N2EwZjU4ZDhjNTdmYmMwODI2MmE5MjMzNTVhOGVkMWQ2IDEwMDY0NAot
LS0gYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL3dlYnNvY2tldHMvV29ya2VyVGhyZWFkYWJsZVdl
YlNvY2tldENoYW5uZWwuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvd2Vic29ja2V0
cy9Xb3JrZXJUaHJlYWRhYmxlV2ViU29ja2V0Q2hhbm5lbC5jcHAKQEAgLTEyNiw3ICsxMjYsNyBA
QCB2b2lkIFdvcmtlclRocmVhZGFibGVXZWJTb2NrZXRDaGFubmVsOjpmYWlsKGNvbnN0IFN0cmlu
ZyYgcmVhc29uKQogdm9pZCBXb3JrZXJUaHJlYWRhYmxlV2ViU29ja2V0Q2hhbm5lbDo6ZGlzY29u
bmVjdCgpCiB7CiAgICAgbV9icmlkZ2UtPmRpc2Nvbm5lY3QoKTsKLSAgICBtX2JyaWRnZS5jbGVh
cigpOworICAgIG1fYnJpZGdlID0gbnVsbHB0cjsKIH0KIAogdm9pZCBXb3JrZXJUaHJlYWRhYmxl
V2ViU29ja2V0Q2hhbm5lbDo6c3VzcGVuZCgpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9h
Y2Nlc3NpYmlsaXR5L2F0ay9BWE9iamVjdENhY2hlQXRrLmNwcCBiL1NvdXJjZS9XZWJDb3JlL2Fj
Y2Vzc2liaWxpdHkvYXRrL0FYT2JqZWN0Q2FjaGVBdGsuY3BwCmluZGV4IDJmMzVmNzQwOTc4ZTc4
MzU3NTIxNGM0OTVlNDNlYjQ1NWM5Mjc0YTQuLmJjMzg0MTE4MmFmYjA2NzEwOGExNjcyZTgxYTMy
OGE0ZGUyNGQ5MmQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2FjY2Vzc2liaWxpdHkvYXRr
L0FYT2JqZWN0Q2FjaGVBdGsuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2FjY2Vzc2liaWxpdHkv
YXRrL0FYT2JqZWN0Q2FjaGVBdGsuY3BwCkBAIC0xNTMsNyArMTUzLDcgQEAgc3RhdGljIHZvaWQg
bm90aWZ5Q2hpbGRyZW5TZWxlY3Rpb25DaGFuZ2UoQWNjZXNzaWJpbGl0eU9iamVjdCogb2JqZWN0
KQogCiAgICAgQWNjZXNzaWJpbGl0eU9iamVjdCogbGlzdE9iamVjdCA9IGdldExpc3RPYmplY3Qo
b2JqZWN0KTsKICAgICBpZiAoIWxpc3RPYmplY3QpIHsKLSAgICAgICAgb2xkTGlzdE9iamVjdC5n
ZXQoKSA9IDA7CisgICAgICAgIG9sZExpc3RPYmplY3QuZ2V0KCkgPSBudWxscHRyOwogICAgICAg
ICByZXR1cm47CiAgICAgfQogCkBAIC0xNjYsNyArMTY2LDcgQEAgc3RhdGljIHZvaWQgbm90aWZ5
Q2hpbGRyZW5TZWxlY3Rpb25DaGFuZ2UoQWNjZXNzaWJpbGl0eU9iamVjdCogb2JqZWN0KQogICAg
IC8vIGZ1cnRoZXIgY29tcGFyaXNvbnMgbWFrZSBzZW5zZS4gT3RoZXJ3aXNlLCBqdXN0IHJlc2V0
CiAgICAgLy8gb2xkRm9jdXNlZE9iamVjdCBzbyBpdCB3b24ndCBiZSB0YWtlbiBpbnRvIGFjY291
bnQuCiAgICAgaWYgKG9sZExpc3RPYmplY3QuZ2V0KCkgIT0gbGlzdE9iamVjdCkKLSAgICAgICAg
b2xkRm9jdXNlZE9iamVjdC5nZXQoKSA9IDA7CisgICAgICAgIG9sZEZvY3VzZWRPYmplY3QuZ2V0
KCkgPSBudWxscHRyOwogCiAgICAgQXRrT2JqZWN0KiBheEl0ZW0gPSBpdGVtID8gaXRlbS0+d3Jh
cHBlcigpIDogbnVsbHB0cjsKICAgICBBdGtPYmplY3QqIGF4T2xkRm9jdXNlZE9iamVjdCA9IG9s
ZEZvY3VzZWRPYmplY3QuZ2V0KCkgPyBvbGRGb2N1c2VkT2JqZWN0LmdldCgpLT53cmFwcGVyKCkg
OiBudWxscHRyOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvYmluZGluZ3MvanMvU2NyaXB0
Q29udHJvbGxlci5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9qcy9TY3JpcHRDb250cm9s
bGVyLmNwcAppbmRleCAzYWJkZDJiOWRiNWE2OWFhYzQxOGVhMTlkMjVhNDRmNWJmNTcwOGQzLi5j
NTE5OWNmZGY3OWJkZTQzY2U0ZTZmZjEwZDcwNTUxMGQ2NTQ3NTdkIDEwMDY0NAotLS0gYS9Tb3Vy
Y2UvV2ViQ29yZS9iaW5kaW5ncy9qcy9TY3JpcHRDb250cm9sbGVyLmNwcAorKysgYi9Tb3VyY2Uv
V2ViQ29yZS9iaW5kaW5ncy9qcy9TY3JpcHRDb250cm9sbGVyLmNwcApAQCAtMTAyLDcgKzEwMiw3
IEBAIFNjcmlwdENvbnRyb2xsZXI6On5TY3JpcHRDb250cm9sbGVyKCkKICAgICBpZiAobV9jYWNo
ZWFibGVCaW5kaW5nUm9vdE9iamVjdCkgewogICAgICAgICBKU0xvY2tIb2xkZXIgbG9jayhKU0RP
TVdpbmRvd0Jhc2U6OmNvbW1vblZNKCkpOwogICAgICAgICBtX2NhY2hlYWJsZUJpbmRpbmdSb290
T2JqZWN0LT5pbnZhbGlkYXRlKCk7Ci0gICAgICAgIG1fY2FjaGVhYmxlQmluZGluZ1Jvb3RPYmpl
Y3QgPSAwOworICAgICAgICBtX2NhY2hlYWJsZUJpbmRpbmdSb290T2JqZWN0ID0gbnVsbHB0cjsK
ICAgICB9CiAKICAgICAvLyBJdCdzIGxpa2VseSB0aGF0IGRlc3Ryb3lpbmcgbV93aW5kb3dTaGVs
bHMgd2lsbCBjcmVhdGUgYSBsb3Qgb2YgZ2FyYmFnZS4KQEAgLTQ4OSw3ICs0ODksNyBAQCB2b2lk
IFNjcmlwdENvbnRyb2xsZXI6OmNsZWFyU2NyaXB0T2JqZWN0cygpCiAKICAgICBpZiAobV9iaW5k
aW5nUm9vdE9iamVjdCkgewogICAgICAgICBtX2JpbmRpbmdSb290T2JqZWN0LT5pbnZhbGlkYXRl
KCk7Ci0gICAgICAgIG1fYmluZGluZ1Jvb3RPYmplY3QgPSAwOworICAgICAgICBtX2JpbmRpbmdS
b290T2JqZWN0ID0gbnVsbHB0cjsKICAgICB9CiAKICNpZiBFTkFCTEUoTkVUU0NBUEVfUExVR0lO
X0FQSSkKQEAgLTQ5OCw3ICs0OTgsNyBAQCB2b2lkIFNjcmlwdENvbnRyb2xsZXI6OmNsZWFyU2Ny
aXB0T2JqZWN0cygpCiAgICAgICAgIC8vIHNjcmlwdCBvYmplY3QgcHJvcGVybHkuCiAgICAgICAg
IC8vIFRoaXMgc2hvdWxkbid0IGNhdXNlIGFueSBwcm9ibGVtcyBmb3IgcGx1Z2lucyBzaW5jZSB0
aGV5IHNob3VsZCBoYXZlIGFscmVhZHkgYmVlbiBzdG9wcGVkIGFuZCBkZXN0cm95ZWQgYXQgdGhp
cyBwb2ludC4KICAgICAgICAgX05QTl9EZWFsbG9jYXRlT2JqZWN0KG1fd2luZG93U2NyaXB0TlBP
YmplY3QpOwotICAgICAgICBtX3dpbmRvd1NjcmlwdE5QT2JqZWN0ID0gMDsKKyAgICAgICAgbV93
aW5kb3dTY3JpcHROUE9iamVjdCA9IG51bGxwdHI7CiAgICAgfQogI2VuZGlmCiB9CmRpZmYgLS1n
aXQgYS9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9qcy9XZWJDb3JlSlNDbGllbnREYXRhLmggYi9T
b3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9qcy9XZWJDb3JlSlNDbGllbnREYXRhLmgKaW5kZXggNjU0
NTEzMzVkM2Q4YTkyMWY1ODE2MjJjMjllNDkwMDBiOWE2MzY2Yy4uNDMwMmQ2OGU1YzhjNmQ3ODdk
NDcyNjI0MTRiY2ViOThkMjJlMDE5ZSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvYmluZGlu
Z3MvanMvV2ViQ29yZUpTQ2xpZW50RGF0YS5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdz
L2pzL1dlYkNvcmVKU0NsaWVudERhdGEuaApAQCAtNDQsNyArNDQsNyBAQCBwdWJsaWM6CiAgICAg
ICAgIEFTU0VSVChtX3dvcmxkU2V0LmNvbnRhaW5zKG1fbm9ybWFsV29ybGQuZ2V0KCkpKTsKICAg
ICAgICAgQVNTRVJUKG1fd29ybGRTZXQuc2l6ZSgpID09IDEpOwogICAgICAgICBBU1NFUlQobV9u
b3JtYWxXb3JsZC0+aGFzT25lUmVmKCkpOwotICAgICAgICBtX25vcm1hbFdvcmxkLmNsZWFyKCk7
CisgICAgICAgIG1fbm9ybWFsV29ybGQgPSBudWxscHRyOwogICAgICAgICBBU1NFUlQobV93b3Js
ZFNldC5pc0VtcHR5KCkpOwogICAgIH0KIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvYmlu
ZGluZ3MvanMvV29ya2VyU2NyaXB0Q29udHJvbGxlci5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9iaW5k
aW5ncy9qcy9Xb3JrZXJTY3JpcHRDb250cm9sbGVyLmNwcAppbmRleCA5MGUwZmY1MTA4OGFhNjU0
OTNkZWVjZTVjOTRmOWEwZGMwMDdjZWNhLi4yOGM5ZWYwZjI3MDNmMzIzYzYxYzhmMjI0NTg5Y2M2
OWQ2ZGQ2YmU2IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9qcy9Xb3JrZXJT
Y3JpcHRDb250cm9sbGVyLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9qcy9Xb3Jr
ZXJTY3JpcHRDb250cm9sbGVyLmNwcApAQCAtNjIsNyArNjIsNyBAQCBXb3JrZXJTY3JpcHRDb250
cm9sbGVyOjp+V29ya2VyU2NyaXB0Q29udHJvbGxlcigpCiB7CiAgICAgSlNMb2NrSG9sZGVyIGxv
Y2sodm0oKSk7CiAgICAgbV93b3JrZXJHbG9iYWxTY29wZVdyYXBwZXIuY2xlYXIoKTsKLSAgICBt
X3ZtLmNsZWFyKCk7CisgICAgbV92bSA9IG51bGxwdHI7CiB9CiAKIHZvaWQgV29ya2VyU2NyaXB0
Q29udHJvbGxlcjo6aW5pdFNjcmlwdCgpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9icmlk
Z2UvcnVudGltZV9vYmplY3QuY3BwIGIvU291cmNlL1dlYkNvcmUvYnJpZGdlL3J1bnRpbWVfb2Jq
ZWN0LmNwcAppbmRleCA5MWYwN2JjNTM3Y2YwZjNmMjAzMGY1ZWQ0ZmVlYzYzMjcyNGViMjM4Li41
ZDBmYTRmODEyYTlhZGZiOGYyNmE5NzUxZTg5ZDZlYmRkZWZmZDYyIDEwMDY0NAotLS0gYS9Tb3Vy
Y2UvV2ViQ29yZS9icmlkZ2UvcnVudGltZV9vYmplY3QuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3Jl
L2JyaWRnZS9ydW50aW1lX29iamVjdC5jcHAKQEAgLTU5LDcgKzU5LDcgQEAgdm9pZCBSdW50aW1l
T2JqZWN0OjppbnZhbGlkYXRlKCkKICAgICBBU1NFUlQobV9pbnN0YW5jZSk7CiAgICAgaWYgKG1f
aW5zdGFuY2UpCiAgICAgICAgIG1faW5zdGFuY2UtPndpbGxJbnZhbGlkYXRlUnVudGltZU9iamVj
dCgpOwotICAgIG1faW5zdGFuY2UgPSAwOworICAgIG1faW5zdGFuY2UgPSBudWxscHRyOwogfQog
CiBFbmNvZGVkSlNWYWx1ZSBSdW50aW1lT2JqZWN0OjpmYWxsYmFja09iamVjdEdldHRlcihFeGVj
U3RhdGUqIGV4ZWMsIEpTT2JqZWN0KiBzbG90QmFzZSwgRW5jb2RlZEpTVmFsdWUsIFByb3BlcnR5
TmFtZSBwcm9wZXJ0eU5hbWUpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9jb250ZW50ZXh0
ZW5zaW9ucy9Db250ZW50RXh0ZW5zaW9uUGFyc2VyLmNwcCBiL1NvdXJjZS9XZWJDb3JlL2NvbnRl
bnRleHRlbnNpb25zL0NvbnRlbnRFeHRlbnNpb25QYXJzZXIuY3BwCmluZGV4IDAyMjY1MmIyZDY5
Zjg5MWNlYTczOTRhMTA5ZDdmYmRmNTAxMmFiMjUuLjdiZjU2ZTdkNGIyZTY3ODZjMzNmN2U4OTUy
ZmM4NTQ3Mjg4YjVmMmIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2NvbnRlbnRleHRlbnNp
b25zL0NvbnRlbnRFeHRlbnNpb25QYXJzZXIuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2NvbnRl
bnRleHRlbnNpb25zL0NvbnRlbnRFeHRlbnNpb25QYXJzZXIuY3BwCkBAIC0yNzcsNyArMjc3LDcg
QEAgc3RkOjplcnJvcl9jb2RlIHBhcnNlUnVsZUxpc3QoY29uc3QgU3RyaW5nJiBydWxlcywgVmVj
dG9yPENvbnRlbnRFeHRlbnNpb25SdWxlPiYKICAgICBFeGVjU3RhdGUqIGV4ZWMgPSBnbG9iYWxP
YmplY3QtPmdsb2JhbEV4ZWMoKTsKICAgICBhdXRvIGVycm9yID0gbG9hZEVuY29kZWRSdWxlcygq
ZXhlYywgcnVsZXMsIHJ1bGVMaXN0KTsKIAotICAgIHZtLmNsZWFyKCk7CisgICAgdm0gPSBudWxs
cHRyOwogCiAgICAgaWYgKGVycm9yKQogICAgICAgICByZXR1cm4gZXJyb3I7CmRpZmYgLS1naXQg
YS9Tb3VyY2UvV2ViQ29yZS9jc3MvQ1NTUGFyc2VyLmNwcCBiL1NvdXJjZS9XZWJDb3JlL2Nzcy9D
U1NQYXJzZXIuY3BwCmluZGV4IDVlOGYwNWNlMDgxNmU3MTYwZTUzZTQ0M2EwYjEzZTQ0Yjg0MmY1
NjcuLjljYzMwOGI0ZjgzYTA5MDlmZDMzYWQzMTA2ZjhmOTZjZDRlNTA3YTEgMTAwNjQ0Ci0tLSBh
L1NvdXJjZS9XZWJDb3JlL2Nzcy9DU1NQYXJzZXIuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2Nz
cy9DU1NQYXJzZXIuY3BwCkBAIC00NTAyLDE1ICs0NTAyLDE1IEBAIHZvaWQgQ1NTUGFyc2VyOjpw
YXJzZUZpbGxQb3NpdGlvbihDU1NQYXJzZXJWYWx1ZUxpc3QmIHZhbHVlTGlzdCwgUmVmUHRyPENT
U1ZhbHVlCiAgICAgaWYgKHZhbHVlMikKICAgICAgICAgdmFsdWVMaXN0Lm5leHQoKTsKICAgICBl
bHNlIHsKLSAgICAgICAgdmFsdWUxLmNsZWFyKCk7CisgICAgICAgIHZhbHVlMSA9IG51bGxwdHI7
CiAgICAgICAgIHJldHVybjsKICAgICB9CiAKICAgICBSZWZQdHI8Q1NTUHJpbWl0aXZlVmFsdWU+
IHBhcnNlZFZhbHVlMSA9IGRvd25jYXN0PENTU1ByaW1pdGl2ZVZhbHVlPih2YWx1ZTEuZ2V0KCkp
OwogICAgIFJlZlB0cjxDU1NQcmltaXRpdmVWYWx1ZT4gcGFyc2VkVmFsdWUyID0gZG93bmNhc3Q8
Q1NTUHJpbWl0aXZlVmFsdWU+KHZhbHVlMi5nZXQoKSk7CiAKLSAgICB2YWx1ZTEuY2xlYXIoKTsK
LSAgICB2YWx1ZTIuY2xlYXIoKTsKKyAgICB2YWx1ZTEgPSBudWxscHRyOworICAgIHZhbHVlMiA9
IG51bGxwdHI7CiAKICAgICAvLyBQZXIgQ1NTMyBzeW50YXgsIDxwb3NpdGlvbj4gY2FuJ3QgaGF2
ZSAnY2VudGVyJyBhcyBpdHMgc2Vjb25kIGtleXdvcmQgYXMgd2UgaGF2ZSBtb3JlIGFyZ3VtZW50
cyB0byBmb2xsb3cuCiAgICAgaWYgKHBhcnNlZFZhbHVlMi0+Z2V0VmFsdWVJRCgpID09IENTU1Zh
bHVlQ2VudGVyKQpAQCAtNDU0OSw3ICs0NTQ5LDcgQEAgdm9pZCBDU1NQYXJzZXI6OnBhcnNlMlZh
bHVlc0ZpbGxQb3NpdGlvbihDU1NQYXJzZXJWYWx1ZUxpc3QmIHZhbHVlTGlzdCwgUmVmUHRyPEMK
ICAgICAgICAgICAgIHZhbHVlTGlzdC5uZXh0KCk7CiAgICAgICAgIGVsc2UgewogICAgICAgICAg
ICAgaWYgKCFpblNob3J0aGFuZCgpKSB7Ci0gICAgICAgICAgICAgICAgdmFsdWUxLmNsZWFyKCk7
CisgICAgICAgICAgICAgICAgdmFsdWUxID0gbnVsbHB0cjsKICAgICAgICAgICAgICAgICByZXR1
cm47CiAgICAgICAgICAgICB9CiAgICAgICAgIH0KQEAgLTc1ODcsOCArNzU4Nyw4IEBAIHN0cnVj
dCBTaGFkb3dQYXJzZUNvbnRleHQgewogICAgICAgICB9CiAKICAgICAgICAgLy8gTm93IHJlc2V0
IGZvciB0aGUgbmV4dCBzaGFkb3cgdmFsdWUuCi0gICAgICAgIHggPSAwOwotICAgICAgICB5ID0g
MDsKKyAgICAgICAgeCA9IG51bGxwdHI7CisgICAgICAgIHkgPSBudWxscHRyOwogICAgICAgICBi
bHVyID0gbnVsbHB0cjsKICAgICAgICAgc3ByZWFkID0gbnVsbHB0cjsKICAgICAgICAgc3R5bGUg
PSBudWxscHRyOwpAQCAtMTIxODQsNyArMTIxODQsNyBAQCBQYXNzUmVmUHRyPENTU1J1bGVTb3Vy
Y2VEYXRhPiBDU1NQYXJzZXI6OnBvcFJ1bGVEYXRhKCkKICAgICAgICAgcmV0dXJuIG51bGxwdHI7
CiAKICAgICBBU1NFUlQoIW1fY3VycmVudFJ1bGVEYXRhU3RhY2stPmlzRW1wdHkoKSk7Ci0gICAg
bV9jdXJyZW50UnVsZURhdGEuY2xlYXIoKTsKKyAgICBtX2N1cnJlbnRSdWxlRGF0YSA9IG51bGxw
dHI7CiAgICAgUmVmUHRyPENTU1J1bGVTb3VyY2VEYXRhPiBkYXRhID0gbV9jdXJyZW50UnVsZURh
dGFTdGFjay0+bGFzdCgpOwogICAgIG1fY3VycmVudFJ1bGVEYXRhU3RhY2stPnJlbW92ZUxhc3Qo
KTsKICAgICByZXR1cm4gZGF0YS5yZWxlYXNlKCk7CkBAIC0xMjYwNSw3ICsxMjYwNSw3IEBAIHZv
aWQgQ1NTUGFyc2VyOjptYXJrUnVsZUJvZHlTdGFydCgpCiB7CiAgICAgaWYgKCFpc0V4dHJhY3Rp
bmdTb3VyY2VEYXRhKCkpCiAgICAgICAgIHJldHVybjsKLSAgICBtX2N1cnJlbnRSdWxlRGF0YS5j
bGVhcigpOworICAgIG1fY3VycmVudFJ1bGVEYXRhID0gbnVsbHB0cjsKICAgICB1bnNpZ25lZCBv
ZmZzZXQgPSB0b2tlblN0YXJ0T2Zmc2V0KCk7CiAgICAgaWYgKHRva2VuU3RhcnRDaGFyKCkgPT0g
J3snKQogICAgICAgICArK29mZnNldDsgLy8gU2tpcCB0aGUgcnVsZSBib2R5IG9wZW5pbmcgYnJh
Y2UuCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9jc3MvQ1NTVmFsdWVQb29sLmNwcCBiL1Nv
dXJjZS9XZWJDb3JlL2Nzcy9DU1NWYWx1ZVBvb2wuY3BwCmluZGV4IDFmNDEzMTE1YTM2ZDBmNDk0
M2NiNTM3YTk5NDY4OWRkYzg2ZmQ5ZDEuLmFlM2UwZmQ0YWViNjBkNmRjODg2ZGM5MWI5YjAwNGM1
ZjVjNDkxZGEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2Nzcy9DU1NWYWx1ZVBvb2wuY3Bw
CisrKyBiL1NvdXJjZS9XZWJDb3JlL2Nzcy9DU1NWYWx1ZVBvb2wuY3BwCkBAIC0xNTMsMTIgKzE1
MywxMiBAQCB2b2lkIENTU1ZhbHVlUG9vbDo6ZHJhaW4oKQogICAgIG1fZm9udEZhbWlseVZhbHVl
Q2FjaGUuY2xlYXIoKTsKIAogICAgIGZvciAoaW50IGkgPSAwOyBpIDwgbnVtQ1NTVmFsdWVLZXl3
b3JkczsgKytpKQotICAgICAgICBtX2lkZW50aWZpZXJWYWx1ZUNhY2hlW2ldID0gMDsKKyAgICAg
ICAgbV9pZGVudGlmaWVyVmFsdWVDYWNoZVtpXSA9IG51bGxwdHI7CiAKICAgICBmb3IgKGludCBp
ID0gMDsgaSA8IG1heGltdW1DYWNoZWFibGVJbnRlZ2VyVmFsdWU7ICsraSkgewotICAgICAgICBt
X3BpeGVsVmFsdWVDYWNoZVtpXSA9IDA7Ci0gICAgICAgIG1fcGVyY2VudFZhbHVlQ2FjaGVbaV0g
PSAwOwotICAgICAgICBtX251bWJlclZhbHVlQ2FjaGVbaV0gPSAwOworICAgICAgICBtX3BpeGVs
VmFsdWVDYWNoZVtpXSA9IG51bGxwdHI7CisgICAgICAgIG1fcGVyY2VudFZhbHVlQ2FjaGVbaV0g
PSBudWxscHRyOworICAgICAgICBtX251bWJlclZhbHVlQ2FjaGVbaV0gPSBudWxscHRyOwogICAg
IH0KIH0KIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvY3NzL1N0eWxlUHJvcGVydGllcy5j
cHAgYi9Tb3VyY2UvV2ViQ29yZS9jc3MvU3R5bGVQcm9wZXJ0aWVzLmNwcAppbmRleCBiOTA5MDhk
MzFkOGUxZGJmNmE1OTRkMDQ3Nzk4OTJkZDJhYTdhMDVjLi5kZWRkMDcwMDdhZTVlOTVlM2E0ZTQ4
ODQyMWU4OGE1YWVkMzdkMzY0IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9jc3MvU3R5bGVQ
cm9wZXJ0aWVzLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9jc3MvU3R5bGVQcm9wZXJ0aWVzLmNw
cApAQCAtMzk3LDkgKzM5Nyw5IEBAIFN0cmluZyBTdHlsZVByb3BlcnRpZXM6OmdldExheWVyZWRT
aG9ydGhhbmRWYWx1ZShjb25zdCBTdHlsZVByb3BlcnR5U2hvcnRoYW5kJiBzCiAgICAgICAgICAg
ICAgICAgICAgIC8vIENvbG9yIG9ubHkgYmVsb25ncyBpbiB0aGUgbGFzdCBsYXllci4KICAgICAg
ICAgICAgICAgICAgICAgaWYgKHNob3J0aGFuZC5wcm9wZXJ0aWVzKClbal0gPT0gQ1NTUHJvcGVy
dHlCYWNrZ3JvdW5kQ29sb3IpIHsKICAgICAgICAgICAgICAgICAgICAgICAgIGlmIChpICE9IG51
bUxheWVycyAtIDEpCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgdmFsdWUgPSAwOworICAg
ICAgICAgICAgICAgICAgICAgICAgICAgIHZhbHVlID0gbnVsbHB0cjsKICAgICAgICAgICAgICAg
ICAgICAgfSBlbHNlIGlmIChpKSAvLyBPdGhlciBzaW5nbGV0b25zIG9ubHkgYmVsb25nIGluIHRo
ZSBmaXJzdCBsYXllci4KLSAgICAgICAgICAgICAgICAgICAgICAgIHZhbHVlID0gMDsKKyAgICAg
ICAgICAgICAgICAgICAgICAgIHZhbHVlID0gbnVsbHB0cjsKICAgICAgICAgICAgICAgICB9CiAg
ICAgICAgICAgICB9CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2Nzcy9WaWV3cG9ydFN0
eWxlUmVzb2x2ZXIuY3BwIGIvU291cmNlL1dlYkNvcmUvY3NzL1ZpZXdwb3J0U3R5bGVSZXNvbHZl
ci5jcHAKaW5kZXggZjg5ZWZmMDA4NjNhYzg5ZGI3NzhkYjMyM2ZlNzg1MDE1NjZhZGYwOS4uZGJi
NmNjNGRmNDQwNDE1YTRiYzQwZTBjOWUwZGFhNmMxMmE1NjliYSAxMDA2NDQKLS0tIGEvU291cmNl
L1dlYkNvcmUvY3NzL1ZpZXdwb3J0U3R5bGVSZXNvbHZlci5jcHAKKysrIGIvU291cmNlL1dlYkNv
cmUvY3NzL1ZpZXdwb3J0U3R5bGVSZXNvbHZlci5jcHAKQEAgLTcxLDcgKzcxLDcgQEAgdm9pZCBW
aWV3cG9ydFN0eWxlUmVzb2x2ZXI6OmFkZFZpZXdwb3J0UnVsZShTdHlsZVJ1bGVWaWV3cG9ydCog
dmlld3BvcnRSdWxlKQogCiB2b2lkIFZpZXdwb3J0U3R5bGVSZXNvbHZlcjo6Y2xlYXJEb2N1bWVu
dCgpCiB7Ci0gICAgbV9kb2N1bWVudCA9IDA7CisgICAgbV9kb2N1bWVudCA9IG51bGxwdHI7CiB9
CiAKIHZvaWQgVmlld3BvcnRTdHlsZVJlc29sdmVyOjpyZXNvbHZlKCkKQEAgLTk0LDcgKzk0LDcg
QEAgdm9pZCBWaWV3cG9ydFN0eWxlUmVzb2x2ZXI6OnJlc29sdmUoKQogICAgIG1fZG9jdW1lbnQt
PnNldFZpZXdwb3J0QXJndW1lbnRzKGFyZ3VtZW50cyk7CiAgICAgbV9kb2N1bWVudC0+dXBkYXRl
Vmlld3BvcnRBcmd1bWVudHMoKTsKIAotICAgIG1fcHJvcGVydHlTZXQgPSAwOworICAgIG1fcHJv
cGVydHlTZXQgPSBudWxscHRyOwogfQogCiBmbG9hdCBWaWV3cG9ydFN0eWxlUmVzb2x2ZXI6Omdl
dFZpZXdwb3J0QXJndW1lbnRWYWx1ZShDU1NQcm9wZXJ0eUlEIGlkKSBjb25zdApkaWZmIC0tZ2l0
IGEvU291cmNlL1dlYkNvcmUvZG9tL0RvY3VtZW50LmNwcCBiL1NvdXJjZS9XZWJDb3JlL2RvbS9E
b2N1bWVudC5jcHAKaW5kZXggZTUwMjY2OTYxMmQ3YzRjNTgyODM0YTRjMWIxOWJiMDM4OTRlZGFm
OS4uZjY0MGI3Y2ZiZGYxNDE4OWMxZTk4OGY0ZWJhZGI0ZGM1MjhhZTFiYSAxMDA2NDQKLS0tIGEv
U291cmNlL1dlYkNvcmUvZG9tL0RvY3VtZW50LmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9kb20v
RG9jdW1lbnQuY3BwCkBAIC0yNDI0LDcgKzI0MjQsNyBAQCB2b2lkIERvY3VtZW50OjpkZXRhY2hQ
YXJzZXIoKQogICAgIGlmICghbV9wYXJzZXIpCiAgICAgICAgIHJldHVybjsKICAgICBtX3BhcnNl
ci0+ZGV0YWNoKCk7Ci0gICAgbV9wYXJzZXIuY2xlYXIoKTsKKyAgICBtX3BhcnNlciA9IG51bGxw
dHI7CiB9CiAKIHZvaWQgRG9jdW1lbnQ6OmNhbmNlbFBhcnNpbmcoKQpAQCAtNTg4Miw3ICs1ODgy
LDcgQEAgdm9pZCBEb2N1bWVudDo6Y2xlYXJTY3JpcHRlZEFuaW1hdGlvbkNvbnRyb2xsZXIoKQog
ICAgIC8vIEZJWE1FOiBjb25zaWRlciB1c2luZyBBY3RpdmVET01PYmplY3QuCiAgICAgaWYgKG1f
c2NyaXB0ZWRBbmltYXRpb25Db250cm9sbGVyKQogICAgICAgICBtX3NjcmlwdGVkQW5pbWF0aW9u
Q29udHJvbGxlci0+Y2xlYXJEb2N1bWVudFBvaW50ZXIoKTsKLSAgICBtX3NjcmlwdGVkQW5pbWF0
aW9uQ29udHJvbGxlci5jbGVhcigpOworICAgIG1fc2NyaXB0ZWRBbmltYXRpb25Db250cm9sbGVy
ID0gbnVsbHB0cjsKIH0KICNlbmRpZgogICAgIApAQCAtNjMwMCw3ICs2MzAwLDcgQEAgdm9pZCBE
b2N1bWVudDo6dXBkYXRlSG92ZXJBY3RpdmVTdGF0ZShjb25zdCBIaXRUZXN0UmVxdWVzdCYgcmVx
dWVzdCwgRWxlbWVudCogaW4KICAgICAgICAgICAgIGN1cnItPnNldEFjdGl2ZShmYWxzZSk7CiAg
ICAgICAgICAgICBtX3VzZXJBY3Rpb25FbGVtZW50cy5zZXRJbkFjdGl2ZUNoYWluKGN1cnIsIGZh
bHNlKTsKICAgICAgICAgfQotICAgICAgICBtX2FjdGl2ZUVsZW1lbnQuY2xlYXIoKTsKKyAgICAg
ICAgbV9hY3RpdmVFbGVtZW50ID0gbnVsbHB0cjsKICAgICB9IGVsc2UgewogICAgICAgICBFbGVt
ZW50KiBuZXdBY3RpdmVFbGVtZW50ID0gaW5uZXJFbGVtZW50SW5Eb2N1bWVudDsKICAgICAgICAg
aWYgKCFvbGRBY3RpdmVFbGVtZW50ICYmIG5ld0FjdGl2ZUVsZW1lbnQgJiYgcmVxdWVzdC5hY3Rp
dmUoKSAmJiAhcmVxdWVzdC50b3VjaE1vdmUoKSkgewpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNv
cmUvZG9tL0RvY3VtZW50TWFya2VyLmggYi9Tb3VyY2UvV2ViQ29yZS9kb20vRG9jdW1lbnRNYXJr
ZXIuaAppbmRleCA0Nzk0OWZlODBiZGQ5YjExZTY4ZGFlNjI1NmVhMmIzMzA2ZmJiNDYzLi5lYzUy
NDg5NDBjMTY3ZWQxYzZjYTAyYjMxZGM0ZTQ3Mzc5YTU1NDE5IDEwMDY0NAotLS0gYS9Tb3VyY2Uv
V2ViQ29yZS9kb20vRG9jdW1lbnRNYXJrZXIuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9kb20vRG9j
dW1lbnRNYXJrZXIuaApAQCAtMTMxLDcgKzEzMSw3IEBAIHB1YmxpYzoKICAgICBEb2N1bWVudE1h
cmtlckRldGFpbHMqIGRldGFpbHMoKSBjb25zdDsKIAogICAgIHZvaWQgc2V0QWN0aXZlTWF0Y2go
Ym9vbCk7Ci0gICAgdm9pZCBjbGVhckRldGFpbHMoKSB7IG1fZGV0YWlscy5jbGVhcigpOyB9Cisg
ICAgdm9pZCBjbGVhckRldGFpbHMoKSB7IG1fZGV0YWlscyA9IG51bGxwdHI7IH0KIAogICAgIC8v
IE9mZnNldCBtb2RpZmljYXRpb25zIGFyZSBkb25lIGJ5IERvY3VtZW50TWFya2VyQ29udHJvbGxl
ci4KICAgICAvLyBPdGhlciBjbGFzc2VzIHNob3VsZCBub3QgY2FsbCBmb2xsb3dpbmcgc2V0dGVy
cy4KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2RvbS9Eb2N1bWVudFN0eWxlU2hlZXRDb2xs
ZWN0aW9uLmNwcCBiL1NvdXJjZS9XZWJDb3JlL2RvbS9Eb2N1bWVudFN0eWxlU2hlZXRDb2xsZWN0
aW9uLmNwcAppbmRleCAxY2JiZTg1MTU1MjVlMGExNTMyYzIyODM2ZjBlN2IzYWEzYmVkZWJhLi4z
MjJhYzg0YmQzMWI2ZWMyZDAzMmQxOWJmYzJhY2JmMzkzM2ZiNGE0IDEwMDY0NAotLS0gYS9Tb3Vy
Y2UvV2ViQ29yZS9kb20vRG9jdW1lbnRTdHlsZVNoZWV0Q29sbGVjdGlvbi5jcHAKKysrIGIvU291
cmNlL1dlYkNvcmUvZG9tL0RvY3VtZW50U3R5bGVTaGVldENvbGxlY3Rpb24uY3BwCkBAIC0xMDQs
NyArMTA0LDcgQEAgQ1NTU3R5bGVTaGVldCogRG9jdW1lbnRTdHlsZVNoZWV0Q29sbGVjdGlvbjo6
cGFnZVVzZXJTaGVldCgpCiB2b2lkIERvY3VtZW50U3R5bGVTaGVldENvbGxlY3Rpb246OmNsZWFy
UGFnZVVzZXJTaGVldCgpCiB7CiAgICAgaWYgKG1fcGFnZVVzZXJTaGVldCkgewotICAgICAgICBt
X3BhZ2VVc2VyU2hlZXQgPSAwOworICAgICAgICBtX3BhZ2VVc2VyU2hlZXQgPSBudWxscHRyOwog
ICAgICAgICBtX2RvY3VtZW50LnN0eWxlUmVzb2x2ZXJDaGFuZ2VkKERlZmVyUmVjYWxjU3R5bGUp
OwogICAgIH0KIH0KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2RvbS9FbGVtZW50LmNwcCBi
L1NvdXJjZS9XZWJDb3JlL2RvbS9FbGVtZW50LmNwcAppbmRleCBiZTg4NGViNTcxYTQwMmZiYjg3
YjFlZGFmYzJkNWI0MzAyNGY4Mzk4Li42YzhjOWUxNzBiYzllYjYxYmM1N2IwMjAwMDk5OTBmYjMy
OGIzMjk0IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9kb20vRWxlbWVudC5jcHAKKysrIGIv
U291cmNlL1dlYkNvcmUvZG9tL0VsZW1lbnQuY3BwCkBAIC0zMjA3LDcgKzMyMDcsNyBAQCB2b2lk
IEVsZW1lbnQ6OmNsb25lQXR0cmlidXRlc0Zyb21FbGVtZW50KGNvbnN0IEVsZW1lbnQmIG90aGVy
KQogCiAgICAgb3RoZXIuc3luY2hyb25pemVBbGxBdHRyaWJ1dGVzKCk7CiAgICAgaWYgKCFvdGhl
ci5tX2VsZW1lbnREYXRhKSB7Ci0gICAgICAgIG1fZWxlbWVudERhdGEuY2xlYXIoKTsKKyAgICAg
ICAgbV9lbGVtZW50RGF0YSA9IG51bGxwdHI7CiAgICAgICAgIHJldHVybjsKICAgICB9CiAKZGlm
ZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2RvbS9NdXRhdGlvbk9ic2VydmVyUmVnaXN0cmF0aW9u
LmNwcCBiL1NvdXJjZS9XZWJDb3JlL2RvbS9NdXRhdGlvbk9ic2VydmVyUmVnaXN0cmF0aW9uLmNw
cAppbmRleCA0NGU4ZjcwZmNiNmM0ODRjYmIwMmE3OTgzN2EzMzI1YzIxNzNmZjE0Li43MGEzMWRl
Y2FjMzVmMWRlYWJmODhkMGU4YTg4NWZiN2ZhODM0MTNkIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2Vi
Q29yZS9kb20vTXV0YXRpb25PYnNlcnZlclJlZ2lzdHJhdGlvbi5jcHAKKysrIGIvU291cmNlL1dl
YkNvcmUvZG9tL011dGF0aW9uT2JzZXJ2ZXJSZWdpc3RyYXRpb24uY3BwCkBAIC04OSw3ICs4OSw3
IEBAIHZvaWQgTXV0YXRpb25PYnNlcnZlclJlZ2lzdHJhdGlvbjo6Y2xlYXJUcmFuc2llbnRSZWdp
c3RyYXRpb25zKCkKICAgICBtX3RyYW5zaWVudFJlZ2lzdHJhdGlvbk5vZGVzID0gbnVsbHB0cjsK
IAogICAgIEFTU0VSVChtX3JlZ2lzdHJhdGlvbk5vZGVLZWVwQWxpdmUpOwotICAgIG1fcmVnaXN0
cmF0aW9uTm9kZUtlZXBBbGl2ZSA9IDA7IC8vIEJhbGFuY2VkIGluIG9ic2VydmVTdWJ0cmVlTm9k
ZVdpbGxEZXRhY2guCisgICAgbV9yZWdpc3RyYXRpb25Ob2RlS2VlcEFsaXZlID0gbnVsbHB0cjsg
Ly8gQmFsYW5jZWQgaW4gb2JzZXJ2ZVN1YnRyZWVOb2RlV2lsbERldGFjaC4KIH0KIAogdm9pZCBN
dXRhdGlvbk9ic2VydmVyUmVnaXN0cmF0aW9uOjp1bnJlZ2lzdGVyQW5kRGVsZXRlKE11dGF0aW9u
T2JzZXJ2ZXJSZWdpc3RyYXRpb24qIHJlZ2lzdHJ5KQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNv
cmUvZG9tL05vZGVJdGVyYXRvci5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9kb20vTm9kZUl0ZXJhdG9y
LmNwcAppbmRleCA1OGIyYjlmNjRjNzZlN2VjNjhhNzRmY2U2ZWVjNDU3NzY4YzVmZmEzLi42MWFl
MjhmNmY4ZTk4OTdjNGVhNjAxYjM1M2NkYTA5MWY0MjE0Y2UyIDEwMDY0NAotLS0gYS9Tb3VyY2Uv
V2ViQ29yZS9kb20vTm9kZUl0ZXJhdG9yLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9kb20vTm9k
ZUl0ZXJhdG9yLmNwcApAQCAtNDUsNyArNDUsNyBAQCBOb2RlSXRlcmF0b3I6Ok5vZGVQb2ludGVy
OjpOb2RlUG9pbnRlcihQYXNzUmVmUHRyPE5vZGU+IG4sIGJvb2wgYikKIAogdm9pZCBOb2RlSXRl
cmF0b3I6Ok5vZGVQb2ludGVyOjpjbGVhcigpCiB7Ci0gICAgbm9kZS5jbGVhcigpOworICAgIG5v
ZGUgPSBudWxscHRyOwogfQogCiBib29sIE5vZGVJdGVyYXRvcjo6Tm9kZVBvaW50ZXI6Om1vdmVU
b05leHQoTm9kZSogcm9vdCkKQEAgLTE1MSw3ICsxNTEsNyBAQCB2b2lkIE5vZGVJdGVyYXRvcjo6
ZGV0YWNoKCkKIHsKICAgICByb290KCktPmRvY3VtZW50KCkuZGV0YWNoTm9kZUl0ZXJhdG9yKHRo
aXMpOwogICAgIG1fZGV0YWNoZWQgPSB0cnVlOwotICAgIG1fcmVmZXJlbmNlTm9kZS5ub2RlLmNs
ZWFyKCk7CisgICAgbV9yZWZlcmVuY2VOb2RlLm5vZGUgPSBudWxscHRyOwogfQogCiB2b2lkIE5v
ZGVJdGVyYXRvcjo6bm9kZVdpbGxCZVJlbW92ZWQoTm9kZSYgcmVtb3ZlZE5vZGUpCmRpZmYgLS1n
aXQgYS9Tb3VyY2UvV2ViQ29yZS9kb20vUG9zaXRpb24uaCBiL1NvdXJjZS9XZWJDb3JlL2RvbS9Q
b3NpdGlvbi5oCmluZGV4IDBmMzE2ZGE4NTg4YTUxOTI5ZmQ0NzUxYzlmY2IzM2I5OTE2NzMzZWIu
LjYwM2U4OGYzZWMxYjFhYzNhYTkyMjkwNWMwMTM4MTIzODQyMGRkZWIgMTAwNjQ0Ci0tLSBhL1Nv
dXJjZS9XZWJDb3JlL2RvbS9Qb3NpdGlvbi5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL2RvbS9Qb3Np
dGlvbi5oCkBAIC05Miw3ICs5Miw3IEBAIHB1YmxpYzoKIAogICAgIEFuY2hvclR5cGUgYW5jaG9y
VHlwZSgpIGNvbnN0IHsgcmV0dXJuIHN0YXRpY19jYXN0PEFuY2hvclR5cGU+KG1fYW5jaG9yVHlw
ZSk7IH0KIAotICAgIHZvaWQgY2xlYXIoKSB7IG1fYW5jaG9yTm9kZS5jbGVhcigpOyBtX29mZnNl
dCA9IDA7IG1fYW5jaG9yVHlwZSA9IFBvc2l0aW9uSXNPZmZzZXRJbkFuY2hvcjsgbV9pc0xlZ2Fj
eUVkaXRpbmdQb3NpdGlvbiA9IGZhbHNlOyB9CisgICAgdm9pZCBjbGVhcigpIHsgbV9hbmNob3JO
b2RlID0gbnVsbHB0cjsgbV9vZmZzZXQgPSAwOyBtX2FuY2hvclR5cGUgPSBQb3NpdGlvbklzT2Zm
c2V0SW5BbmNob3I7IG1faXNMZWdhY3lFZGl0aW5nUG9zaXRpb24gPSBmYWxzZTsgfQogCiAgICAg
Ly8gVGhlc2UgYXJlIGFsd2F5cyBET00gY29tcGxpYW50IHZhbHVlcy4gIEVkaXRpbmcgcG9zaXRp
b25zIGxpa2UgW2ltZywgMF0gKGFrYSBbaW1nLCBiZWZvcmVdKQogICAgIC8vIHdpbGwgcmV0dXJu
IGltZy0+cGFyZW50Tm9kZSgpIGFuZCBpbWctPmNvbXB1dGVOb2RlSW5kZXgoKSBmcm9tIHRoZXNl
IGZ1bmN0aW9ucy4KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2RvbS9Qcm9jZXNzaW5nSW5z
dHJ1Y3Rpb24uY3BwIGIvU291cmNlL1dlYkNvcmUvZG9tL1Byb2Nlc3NpbmdJbnN0cnVjdGlvbi5j
cHAKaW5kZXggM2VjYjY0NjM5Y2ZhYmE2MGE1ZDNiNjZlMmZhZGU1MGRkY2I3ZjFiMC4uYjM0M2Nh
M2EwMWFlOGVlZmRiNTk3ZTVkNGUyMmUyN2I5OTNmZWY5MCAxMDA2NDQKLS0tIGEvU291cmNlL1dl
YkNvcmUvZG9tL1Byb2Nlc3NpbmdJbnN0cnVjdGlvbi5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUv
ZG9tL1Byb2Nlc3NpbmdJbnN0cnVjdGlvbi5jcHAKQEAgLTI4MSw3ICsyODEsNyBAQCB2b2lkIFBy
b2Nlc3NpbmdJbnN0cnVjdGlvbjo6cmVtb3ZlZEZyb20oQ29udGFpbmVyTm9kZSYgaW5zZXJ0aW9u
UG9pbnQpCiAgICAgaWYgKG1fc2hlZXQpIHsKICAgICAgICAgQVNTRVJUKG1fc2hlZXQtPm93bmVy
Tm9kZSgpID09IHRoaXMpOwogICAgICAgICBtX3NoZWV0LT5jbGVhck93bmVyTm9kZSgpOwotICAg
ICAgICBtX3NoZWV0ID0gMDsKKyAgICAgICAgbV9zaGVldCA9IG51bGxwdHI7CiAgICAgfQogCiAg
ICAgLy8gSWYgd2UncmUgaW4gZG9jdW1lbnQgdGVhcmRvd24sIHRoZW4gd2UgZG9uJ3QgbmVlZCB0
byBkbyBhbnkgbm90aWZpY2F0aW9uIG9mIG91ciBzaGVldCdzIHJlbW92YWwuCmRpZmYgLS1naXQg
YS9Tb3VyY2UvV2ViQ29yZS9kb20vUmFuZ2VCb3VuZGFyeVBvaW50LmggYi9Tb3VyY2UvV2ViQ29y
ZS9kb20vUmFuZ2VCb3VuZGFyeVBvaW50LmgKaW5kZXggYjA0ZGMwOGI1NWJmMDIxY2NkZGZiMjZh
ZWU1ZDM4NGIxMTI2YWUwMy4uNWIxNGEzZGZjMWUyZTI5ZjE0NzliZjQ2YzljZThiYWQ3ZGJlZWIx
OSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvZG9tL1JhbmdlQm91bmRhcnlQb2ludC5oCisr
KyBiL1NvdXJjZS9XZWJDb3JlL2RvbS9SYW5nZUJvdW5kYXJ5UG9pbnQuaApAQCAtMTEyLDkgKzEx
Miw5IEBAIGlubGluZSBpbnQgUmFuZ2VCb3VuZGFyeVBvaW50OjpvZmZzZXQoKSBjb25zdAogCiBp
bmxpbmUgdm9pZCBSYW5nZUJvdW5kYXJ5UG9pbnQ6OmNsZWFyKCkKIHsKLSAgICBtX2NvbnRhaW5l
ck5vZGUuY2xlYXIoKTsKKyAgICBtX2NvbnRhaW5lck5vZGUgPSBudWxscHRyOwogICAgIG1fb2Zm
c2V0SW5Db250YWluZXIgPSAwOwotICAgIG1fY2hpbGRCZWZvcmVCb3VuZGFyeSA9IDA7CisgICAg
bV9jaGlsZEJlZm9yZUJvdW5kYXJ5ID0gbnVsbHB0cjsKIH0KIAogaW5saW5lIHZvaWQgUmFuZ2VC
b3VuZGFyeVBvaW50OjpzZXQoUGFzc1JlZlB0cjxOb2RlPiBjb250YWluZXIsIGludCBvZmZzZXQs
IE5vZGUqIGNoaWxkQmVmb3JlKQpAQCAtMTQ5LDcgKzE0OSw3IEBAIGlubGluZSB2b2lkIFJhbmdl
Qm91bmRhcnlQb2ludDo6c2V0VG9TdGFydE9mTm9kZShQYXNzUmVmUHRyPE5vZGU+IGNvbnRhaW5l
cikKICAgICBBU1NFUlQoY29udGFpbmVyKTsKICAgICBtX2NvbnRhaW5lck5vZGUgPSBjb250YWlu
ZXI7CiAgICAgbV9vZmZzZXRJbkNvbnRhaW5lciA9IDA7Ci0gICAgbV9jaGlsZEJlZm9yZUJvdW5k
YXJ5ID0gMDsKKyAgICBtX2NoaWxkQmVmb3JlQm91bmRhcnkgPSBudWxscHRyOwogfQogCiBpbmxp
bmUgdm9pZCBSYW5nZUJvdW5kYXJ5UG9pbnQ6OnNldFRvRW5kT2ZOb2RlKFBhc3NSZWZQdHI8Tm9k
ZT4gY29udGFpbmVyKQpAQCAtMTU4LDcgKzE1OCw3IEBAIGlubGluZSB2b2lkIFJhbmdlQm91bmRh
cnlQb2ludDo6c2V0VG9FbmRPZk5vZGUoUGFzc1JlZlB0cjxOb2RlPiBjb250YWluZXIpCiAgICAg
bV9jb250YWluZXJOb2RlID0gY29udGFpbmVyOwogICAgIGlmIChtX2NvbnRhaW5lck5vZGUtPm9m
ZnNldEluQ2hhcmFjdGVycygpKSB7CiAgICAgICAgIG1fb2Zmc2V0SW5Db250YWluZXIgPSBtX2Nv
bnRhaW5lck5vZGUtPm1heENoYXJhY3Rlck9mZnNldCgpOwotICAgICAgICBtX2NoaWxkQmVmb3Jl
Qm91bmRhcnkgPSAwOworICAgICAgICBtX2NoaWxkQmVmb3JlQm91bmRhcnkgPSBudWxscHRyOwog
ICAgIH0gZWxzZSB7CiAgICAgICAgIG1fY2hpbGRCZWZvcmVCb3VuZGFyeSA9IG1fY29udGFpbmVy
Tm9kZS0+bGFzdENoaWxkKCk7CiAgICAgICAgIG1fb2Zmc2V0SW5Db250YWluZXIgPSBtX2NoaWxk
QmVmb3JlQm91bmRhcnkgPyBpbnZhbGlkT2Zmc2V0IDogMDsKZGlmZiAtLWdpdCBhL1NvdXJjZS9X
ZWJDb3JlL2RvbS9TcGFjZVNwbGl0U3RyaW5nLmggYi9Tb3VyY2UvV2ViQ29yZS9kb20vU3BhY2VT
cGxpdFN0cmluZy5oCmluZGV4IGVmNTY4MDFhNzcxMWRmNWEyY2I1NTgxM2JlNTY3M2YxOTAzMjhl
NzMuLmY4NWI5NjQyMTJkMWRhOGU4MDJkMTY2MDg5NDZjMzc3YWUwYjc4NWQgMTAwNjQ0Ci0tLSBh
L1NvdXJjZS9XZWJDb3JlL2RvbS9TcGFjZVNwbGl0U3RyaW5nLmgKKysrIGIvU291cmNlL1dlYkNv
cmUvZG9tL1NwYWNlU3BsaXRTdHJpbmcuaApAQCAtMTA1LDcgKzEwNSw3IEBAIHB1YmxpYzoKICAg
ICBib29sIG9wZXJhdG9yIT0oY29uc3QgU3BhY2VTcGxpdFN0cmluZyYgb3RoZXIpIGNvbnN0IHsg
cmV0dXJuIG1fZGF0YSAhPSBvdGhlci5tX2RhdGE7IH0KIAogICAgIHZvaWQgc2V0KGNvbnN0IEF0
b21pY1N0cmluZyYsIGJvb2wgc2hvdWxkRm9sZENhc2UpOwotICAgIHZvaWQgY2xlYXIoKSB7IG1f
ZGF0YS5jbGVhcigpOyB9CisgICAgdm9pZCBjbGVhcigpIHsgbV9kYXRhID0gbnVsbHB0cjsgfQog
CiAgICAgYm9vbCBjb250YWlucyhjb25zdCBBdG9taWNTdHJpbmcmIHN0cmluZykgY29uc3QgeyBy
ZXR1cm4gbV9kYXRhICYmIG1fZGF0YS0+Y29udGFpbnMoc3RyaW5nKTsgfQogICAgIGJvb2wgY29u
dGFpbnNBbGwoY29uc3QgU3BhY2VTcGxpdFN0cmluZyYgbmFtZXMpIGNvbnN0IHsgcmV0dXJuICFu
YW1lcy5tX2RhdGEgfHwgKG1fZGF0YSAmJiBtX2RhdGEtPmNvbnRhaW5zQWxsKCpuYW1lcy5tX2Rh
dGEpKTsgfQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvZG9tL1N0eWxlZEVsZW1lbnQuY3Bw
IGIvU291cmNlL1dlYkNvcmUvZG9tL1N0eWxlZEVsZW1lbnQuY3BwCmluZGV4IDViMjY5NjZiNWMz
ODdiOWM4ODdmODAwNmUwZDI1MGE1OGY2OTNkMDkuLjBlYzBkN2Y1YTBlZWE5ZGNiMWU4ZTY1ZTU2
OWQ2MjBkYzJkMmNjMDQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2RvbS9TdHlsZWRFbGVt
ZW50LmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9kb20vU3R5bGVkRWxlbWVudC5jcHAKQEAgLTE4
NSw3ICsxODUsNyBAQCBpbmxpbmUgdm9pZCBTdHlsZWRFbGVtZW50OjpzZXRJbmxpbmVTdHlsZUZy
b21TdHJpbmcoY29uc3QgQXRvbWljU3RyaW5nJiBuZXdTdHlsZQogICAgIC8vIFdlIHJlY29uc3Ry
dWN0IHRoZSBwcm9wZXJ0eSBzZXQgaW5zdGVhZCBvZiBtdXRhdGluZyBpZiB0aGVyZSBpcyBubyBD
U1NPTSB3cmFwcGVyLgogICAgIC8vIFRoaXMgbWFrZXMgd3JhcHBlcmxlc3MgcHJvcGVydHkgc2V0
cyBpbW11dGFibGUgYW5kIHNvIGNhY2hlYWJsZS4KICAgICBpZiAoaW5saW5lU3R5bGUgJiYgIWlz
PE11dGFibGVTdHlsZVByb3BlcnRpZXM+KCppbmxpbmVTdHlsZSkpCi0gICAgICAgIGlubGluZVN0
eWxlLmNsZWFyKCk7CisgICAgICAgIGlubGluZVN0eWxlID0gbnVsbHB0cjsKIAogICAgIGlmICgh
aW5saW5lU3R5bGUpCiAgICAgICAgIGlubGluZVN0eWxlID0gQ1NTUGFyc2VyOjpwYXJzZUlubGlu
ZVN0eWxlRGVjbGFyYXRpb24obmV3U3R5bGVTdHJpbmcsIHRoaXMpOwpAQCAtMjAyLDcgKzIwMiw3
IEBAIHZvaWQgU3R5bGVkRWxlbWVudDo6c3R5bGVBdHRyaWJ1dGVDaGFuZ2VkKGNvbnN0IEF0b21p
Y1N0cmluZyYgbmV3U3R5bGVTdHJpbmcsIEF0CiAgICAgaWYgKG5ld1N0eWxlU3RyaW5nLmlzTnVs
bCgpKSB7CiAgICAgICAgIGlmIChQcm9wZXJ0eVNldENTU1N0eWxlRGVjbGFyYXRpb24qIGNzc29t
V3JhcHBlciA9IGlubGluZVN0eWxlQ1NTT01XcmFwcGVyKCkpCiAgICAgICAgICAgICBjc3NvbVdy
YXBwZXItPmNsZWFyUGFyZW50RWxlbWVudCgpOwotICAgICAgICBlbnN1cmVVbmlxdWVFbGVtZW50
RGF0YSgpLm1faW5saW5lU3R5bGUuY2xlYXIoKTsKKyAgICAgICAgZW5zdXJlVW5pcXVlRWxlbWVu
dERhdGEoKS5tX2lubGluZVN0eWxlID0gbnVsbHB0cjsKICAgICB9IGVsc2UgaWYgKHJlYXNvbiA9
PSBNb2RpZmllZEJ5Q2xvbmluZyB8fCBkb2N1bWVudCgpLmNvbnRlbnRTZWN1cml0eVBvbGljeSgp
LT5hbGxvd0lubGluZVN0eWxlKGRvY3VtZW50KCkudXJsKCksIHN0YXJ0TGluZU51bWJlcikpCiAg
ICAgICAgIHNldElubGluZVN0eWxlRnJvbVN0cmluZyhuZXdTdHlsZVN0cmluZyk7CiAKZGlmZiAt
LWdpdCBhL1NvdXJjZS9XZWJDb3JlL2RvbS9kZWZhdWx0L1BsYXRmb3JtTWVzc2FnZVBvcnRDaGFu
bmVsLmNwcCBiL1NvdXJjZS9XZWJDb3JlL2RvbS9kZWZhdWx0L1BsYXRmb3JtTWVzc2FnZVBvcnRD
aGFubmVsLmNwcAppbmRleCBjNjg2MTFmYzhmYzdiZWNmYWRmOGQ4NDgzYjE0ZmY5MDhjZjQ2MWZh
Li5jNDE3NDg2Mzc0OTE3MzY3MzNmN2MyOTFhNDZlNWE5ZDE3YjdkMjc2IDEwMDY0NAotLS0gYS9T
b3VyY2UvV2ViQ29yZS9kb20vZGVmYXVsdC9QbGF0Zm9ybU1lc3NhZ2VQb3J0Q2hhbm5lbC5jcHAK
KysrIGIvU291cmNlL1dlYkNvcmUvZG9tL2RlZmF1bHQvUGxhdGZvcm1NZXNzYWdlUG9ydENoYW5u
ZWwuY3BwCkBAIC0xODMsOSArMTgzLDkgQEAgdm9pZCBQbGF0Zm9ybU1lc3NhZ2VQb3J0Q2hhbm5l
bDo6Y2xvc2VJbnRlcm5hbCgpCiB7CiAgICAgTXV0ZXhMb2NrZXIgbG9jayhtX211dGV4KTsKICAg
ICAvLyBEaXNlbnRhbmdsZSBvdXJzZWx2ZXMgZnJvbSB0aGUgb3RoZXIgZW5kLiBXZSBzdGlsbCBt
YWludGFpbiBhIHJlZmVyZW5jZSB0byBvdXIgaW5jb21pbmcgcXVldWUsIHNpbmNlIHByZXZpb3Vz
bHktZXhpc3RpbmcgbWVzc2FnZXMgc2hvdWxkIHN0aWxsIGJlIGRlbGl2ZXJlZC4KLSAgICBtX3Jl
bW90ZVBvcnQgPSAwOwotICAgIG1fZW50YW5nbGVkQ2hhbm5lbCA9IDA7Ci0gICAgbV9vdXRnb2lu
Z1F1ZXVlID0gMDsKKyAgICBtX3JlbW90ZVBvcnQgPSBudWxscHRyOworICAgIG1fZW50YW5nbGVk
Q2hhbm5lbCA9IG51bGxwdHI7CisgICAgbV9vdXRnb2luZ1F1ZXVlID0gbnVsbHB0cjsKIH0KIAog
fSAvLyBuYW1lc3BhY2UgV2ViQ29yZQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvZWRpdGlu
Zy9BbHRlcm5hdGl2ZVRleHRDb250cm9sbGVyLmNwcCBiL1NvdXJjZS9XZWJDb3JlL2VkaXRpbmcv
QWx0ZXJuYXRpdmVUZXh0Q29udHJvbGxlci5jcHAKaW5kZXggZjViYzk0ODkxY2FmN2U3MDk3YTAz
ZTI3MjllNzI4ZjI2MzZmMDhiZC4uMjc1ZTQzMGViNzNjMTRjYTJjZmYzM2M2NTc3NjFlNDYxOWU1
ZWFlOSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvZWRpdGluZy9BbHRlcm5hdGl2ZVRleHRD
b250cm9sbGVyLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9lZGl0aW5nL0FsdGVybmF0aXZlVGV4
dENvbnRyb2xsZXIuY3BwCkBAIC0xNDcsNyArMTQ3LDcgQEAgdm9pZCBBbHRlcm5hdGl2ZVRleHRD
b250cm9sbGVyOjpzdGFydEFsdGVybmF0aXZlVGV4dFVJVGltZXIoQWx0ZXJuYXRpdmVUZXh0VHlw
ZQogCiAgICAgLy8gSWYgdHlwZSBpcyBQYW5lbFR5cGVSZXZlcnNpb24sIHRoZW4gdGhlIG5ldyBy
YW5nZSBoYXMgYmVlbiBzZXQuIFNvIHdlIHNob3VsZG4ndCBjbGVhciBpdC4KICAgICBpZiAodHlw
ZSA9PSBBbHRlcm5hdGl2ZVRleHRUeXBlQ29ycmVjdGlvbikKLSAgICAgICAgbV9hbHRlcm5hdGl2
ZVRleHRJbmZvLnJhbmdlV2l0aEFsdGVybmF0aXZlLmNsZWFyKCk7CisgICAgICAgIG1fYWx0ZXJu
YXRpdmVUZXh0SW5mby5yYW5nZVdpdGhBbHRlcm5hdGl2ZSA9IG51bGxwdHI7CiAgICAgbV9hbHRl
cm5hdGl2ZVRleHRJbmZvLnR5cGUgPSB0eXBlOwogICAgIG1fdGltZXIuc3RhcnRPbmVTaG90KGNv
cnJlY3Rpb25QYW5lbFRpbWVySW50ZXJ2YWwpOwogfQpAQCAtMTU1LDcgKzE1NSw3IEBAIHZvaWQg
QWx0ZXJuYXRpdmVUZXh0Q29udHJvbGxlcjo6c3RhcnRBbHRlcm5hdGl2ZVRleHRVSVRpbWVyKEFs
dGVybmF0aXZlVGV4dFR5cGUKIHZvaWQgQWx0ZXJuYXRpdmVUZXh0Q29udHJvbGxlcjo6c3RvcEFs
dGVybmF0aXZlVGV4dFVJVGltZXIoKQogewogICAgIG1fdGltZXIuc3RvcCgpOwotICAgIG1fYWx0
ZXJuYXRpdmVUZXh0SW5mby5yYW5nZVdpdGhBbHRlcm5hdGl2ZS5jbGVhcigpOworICAgIG1fYWx0
ZXJuYXRpdmVUZXh0SW5mby5yYW5nZVdpdGhBbHRlcm5hdGl2ZSA9IG51bGxwdHI7CiB9CiAKIHZv
aWQgQWx0ZXJuYXRpdmVUZXh0Q29udHJvbGxlcjo6c3RvcFBlbmRpbmdDb3JyZWN0aW9uKGNvbnN0
IFZpc2libGVTZWxlY3Rpb24mIG9sZFNlbGVjdGlvbikKQEAgLTE4Myw3ICsxODMsNyBAQCB2b2lk
IEFsdGVybmF0aXZlVGV4dENvbnRyb2xsZXI6OmFwcGx5UGVuZGluZ0NvcnJlY3Rpb24oY29uc3Qg
VmlzaWJsZVNlbGVjdGlvbiYgcwogICAgIGlmIChkb0FwcGx5Q29ycmVjdGlvbikKICAgICAgICAg
aGFuZGxlQWx0ZXJuYXRpdmVUZXh0VUlSZXN1bHQoZGlzbWlzc1Nvb24oUmVhc29uRm9yRGlzbWlz
c2luZ0FsdGVybmF0aXZlVGV4dEFjY2VwdGVkKSk7IAogICAgIGVsc2UKLSAgICAgICAgbV9hbHRl
cm5hdGl2ZVRleHRJbmZvLnJhbmdlV2l0aEFsdGVybmF0aXZlLmNsZWFyKCk7CisgICAgICAgIG1f
YWx0ZXJuYXRpdmVUZXh0SW5mby5yYW5nZVdpdGhBbHRlcm5hdGl2ZSA9IG51bGxwdHI7CiB9CiAK
IGJvb2wgQWx0ZXJuYXRpdmVUZXh0Q29udHJvbGxlcjo6aGFzUGVuZGluZ0NvcnJlY3Rpb24oKSBj
b25zdApAQCAtMzU5LDcgKzM1OSw3IEBAIHZvaWQgQWx0ZXJuYXRpdmVUZXh0Q29udHJvbGxlcjo6
dGltZXJGaXJlZCgpCiAgICAgICAgIFZlY3RvcjxTdHJpbmc+IHN1Z2dlc3Rpb25zOwogICAgICAg
ICB0ZXh0Q2hlY2tlcigpLT5nZXRHdWVzc2VzRm9yV29yZChtX2FsdGVybmF0aXZlVGV4dEluZm8u
b3JpZ2luYWxUZXh0LCBwYXJhZ3JhcGhUZXh0LCBzdWdnZXN0aW9ucyk7CiAgICAgICAgIGlmIChz
dWdnZXN0aW9ucy5pc0VtcHR5KCkpIHsKLSAgICAgICAgICAgIG1fYWx0ZXJuYXRpdmVUZXh0SW5m
by5yYW5nZVdpdGhBbHRlcm5hdGl2ZS5jbGVhcigpOworICAgICAgICAgICAgbV9hbHRlcm5hdGl2
ZVRleHRJbmZvLnJhbmdlV2l0aEFsdGVybmF0aXZlID0gbnVsbHB0cjsKICAgICAgICAgICAgIGJy
ZWFrOwogICAgICAgICB9CiAgICAgICAgIFN0cmluZyB0b3BTdWdnZXN0aW9uID0gc3VnZ2VzdGlv
bnMuZmlyc3QoKTsKQEAgLTQyMiw3ICs0MjIsNyBAQCB2b2lkIEFsdGVybmF0aXZlVGV4dENvbnRy
b2xsZXI6OmhhbmRsZUFsdGVybmF0aXZlVGV4dFVJUmVzdWx0KGNvbnN0IFN0cmluZyYgcmVzdQog
ICAgICAgICBicmVhazsKICAgICB9CiAKLSAgICBtX2FsdGVybmF0aXZlVGV4dEluZm8ucmFuZ2VX
aXRoQWx0ZXJuYXRpdmUuY2xlYXIoKTsKKyAgICBtX2FsdGVybmF0aXZlVGV4dEluZm8ucmFuZ2VX
aXRoQWx0ZXJuYXRpdmUgPSBudWxscHRyOwogfQogCiBib29sIEFsdGVybmF0aXZlVGV4dENvbnRy
b2xsZXI6OmlzQXV0b21hdGljU3BlbGxpbmdDb3JyZWN0aW9uRW5hYmxlZCgpCmRpZmYgLS1naXQg
YS9Tb3VyY2UvV2ViQ29yZS9lZGl0aW5nL0FwcGx5QmxvY2tFbGVtZW50Q29tbWFuZC5jcHAgYi9T
b3VyY2UvV2ViQ29yZS9lZGl0aW5nL0FwcGx5QmxvY2tFbGVtZW50Q29tbWFuZC5jcHAKaW5kZXgg
NDMzZTk1MzY2NGY3MDFkMTIxMjZmYjQwM2E2N2NiZmJhN2Y0ZjA4OC4uMjFhYmU3MWNjOGVkZDUw
ZjE2MzRmMDQzMzBhOGMxMmJjYzkxNjVlZSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvZWRp
dGluZy9BcHBseUJsb2NrRWxlbWVudENvbW1hbmQuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2Vk
aXRpbmcvQXBwbHlCbG9ja0VsZW1lbnRDb21tYW5kLmNwcApAQCAtMTQzLDcgKzE0Myw3IEBAIHZv
aWQgQXBwbHlCbG9ja0VsZW1lbnRDb21tYW5kOjpmb3JtYXRTZWxlY3Rpb24oY29uc3QgVmlzaWJs
ZVBvc2l0aW9uJiBzdGFydE9mU2VsCiAgICAgICAgIC8vIERvbid0IHB1dCB0aGUgbmV4dCBwYXJh
Z3JhcGggaW4gdGhlIGJsb2NrcXVvdGUgd2UganVzdCBjcmVhdGVkIGZvciB0aGlzIHBhcmFncmFw
aCB1bmxlc3MgCiAgICAgICAgIC8vIHRoZSBuZXh0IHBhcmFncmFwaCBpcyBpbiB0aGUgc2FtZSBj
ZWxsLgogICAgICAgICBpZiAoZW5jbG9zaW5nQ2VsbCAmJiBlbmNsb3NpbmdDZWxsICE9IGVuY2xv
c2luZ05vZGVPZlR5cGUoZW5kT2ZOZXh0UGFyYWdyYXBoLmRlZXBFcXVpdmFsZW50KCksICZpc1Rh
YmxlQ2VsbCkpCi0gICAgICAgICAgICBibG9ja3F1b3RlRm9yTmV4dEluZGVudCA9IDA7CisgICAg
ICAgICAgICBibG9ja3F1b3RlRm9yTmV4dEluZGVudCA9IG51bGxwdHI7CiAKICAgICAgICAgLy8g
aW5kZW50SW50b0Jsb2NrcXVvdGUgY291bGQgbW92ZSBtb3JlIHRoYW4gb25lIHBhcmFncmFwaCBp
ZiB0aGUgcGFyYWdyYXBoCiAgICAgICAgIC8vIGlzIGluIGEgbGlzdCBpdGVtIG9yIGEgdGFibGUu
IEFzIGEgcmVzdWx0LCBlbmRBZnRlclNlbGVjdGlvbiBjb3VsZCByZWZlciB0byBhIHBvc2l0aW9u
CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9lZGl0aW5nL0RlbGV0ZVNlbGVjdGlvbkNvbW1h
bmQuY3BwIGIvU291cmNlL1dlYkNvcmUvZWRpdGluZy9EZWxldGVTZWxlY3Rpb25Db21tYW5kLmNw
cAppbmRleCBlYjNhNWYzMGEwM2YyODRlMjI2MGZmNDhmYmE5ZjFiOTk5YWQ5OTI3Li5jNjQ5MWQy
NjkyNjVlNWFiNmNlOTY1ZWFhOTUzNDFiNjU0NDdkMWFlIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2Vi
Q29yZS9lZGl0aW5nL0RlbGV0ZVNlbGVjdGlvbkNvbW1hbmQuY3BwCisrKyBiL1NvdXJjZS9XZWJD
b3JlL2VkaXRpbmcvRGVsZXRlU2VsZWN0aW9uQ29tbWFuZC5jcHAKQEAgLTMwMiw3ICszMDIsNyBA
QCB2b2lkIERlbGV0ZVNlbGVjdGlvbkNvbW1hbmQ6OnNhdmVUeXBpbmdTdHlsZVN0YXRlKCkKICAg
ICBpZiAoZW5jbG9zaW5nTm9kZU9mVHlwZShtX3NlbGVjdGlvblRvRGVsZXRlLnN0YXJ0KCksIGlz
TWFpbEJsb2NrcXVvdGUpKQogICAgICAgICBtX2RlbGV0ZUludG9CbG9ja3F1b3RlU3R5bGUgPSBF
ZGl0aW5nU3R5bGU6OmNyZWF0ZShtX3NlbGVjdGlvblRvRGVsZXRlLmVuZCgpKTsKICAgICBlbHNl
Ci0gICAgICAgIG1fZGVsZXRlSW50b0Jsb2NrcXVvdGVTdHlsZSA9IDA7CisgICAgICAgIG1fZGVs
ZXRlSW50b0Jsb2NrcXVvdGVTdHlsZSA9IG51bGxwdHI7CiB9CiAKIGJvb2wgRGVsZXRlU2VsZWN0
aW9uQ29tbWFuZDo6aGFuZGxlU3BlY2lhbENhc2VCUkRlbGV0ZSgpCkBAIC03MjgsMTEgKzcyOCwx
MSBAQCB2b2lkIERlbGV0ZVNlbGVjdGlvbkNvbW1hbmQ6OmNhbGN1bGF0ZVR5cGluZ1N0eWxlQWZ0
ZXJEZWxldGUoKQogICAgIC8vIElmIHdlIGRlbGV0ZWQgaW50byBhIGJsb2NrcXVvdGUsIGJ1dCBh
cmUgbm93IG5vIGxvbmdlciBpbiBhIGJsb2NrcXVvdGUsIHVzZSB0aGUgYWx0ZXJuYXRlIHR5cGlu
ZyBzdHlsZQogICAgIGlmIChtX2RlbGV0ZUludG9CbG9ja3F1b3RlU3R5bGUgJiYgIWVuY2xvc2lu
Z05vZGVPZlR5cGUobV9lbmRpbmdQb3NpdGlvbiwgaXNNYWlsQmxvY2txdW90ZSwgQ2FuQ3Jvc3NF
ZGl0aW5nQm91bmRhcnkpKQogICAgICAgICBtX3R5cGluZ1N0eWxlID0gbV9kZWxldGVJbnRvQmxv
Y2txdW90ZVN0eWxlOwotICAgIG1fZGVsZXRlSW50b0Jsb2NrcXVvdGVTdHlsZSA9IDA7CisgICAg
bV9kZWxldGVJbnRvQmxvY2txdW90ZVN0eWxlID0gbnVsbHB0cjsKIAogICAgIG1fdHlwaW5nU3R5
bGUtPnByZXBhcmVUb0FwcGx5QXQobV9lbmRpbmdQb3NpdGlvbik7CiAgICAgaWYgKG1fdHlwaW5n
U3R5bGUtPmlzRW1wdHkoKSkKLSAgICAgICAgbV90eXBpbmdTdHlsZSA9IDA7CisgICAgICAgIG1f
dHlwaW5nU3R5bGUgPSBudWxscHRyOwogICAgIC8vIFRoaXMgaXMgd2hlcmUgd2UndmUgZGVsZXRl
ZCBhbGwgdHJhY2VzIG9mIGEgc3R5bGUgYnV0IG5vdCBhIHdob2xlIHBhcmFncmFwaCAodGhhdCdz
IGhhbmRsZWQgYWJvdmUpLgogICAgIC8vIEluIHRoaXMgY2FzZSBpZiB3ZSBzdGFydCB0eXBpbmcs
IHRoZSBuZXcgY2hhcmFjdGVycyBzaG91bGQgaGF2ZSB0aGUgc2FtZSBzdHlsZSBhcyB0aGUganVz
dCBkZWxldGVkIG9uZXMsCiAgICAgLy8gYnV0LCBpZiB3ZSBjaGFuZ2UgdGhlIHNlbGVjdGlvbiwg
Y29tZSBiYWNrIGFuZCBzdGFydCB0eXBpbmcgdGhhdCBzdHlsZSBzaG91bGQgYmUgbG9zdC4gIEFs
c28gc2VlIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvZWRpdGluZy9FZGl0aW5nU3R5bGUu
Y3BwIGIvU291cmNlL1dlYkNvcmUvZWRpdGluZy9FZGl0aW5nU3R5bGUuY3BwCmluZGV4IDVjZjEy
Y2Q5YjczOGExZGQ3NDBkNWVjZDU1YmQ1OTcyZDllZDI2NjEuLjE3YWFiMjk1YmE2YjkyZGFlMmE3
MjQ0ZGMxNTY4ZWZmMmY1NTc0N2EgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2VkaXRpbmcv
RWRpdGluZ1N0eWxlLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9lZGl0aW5nL0VkaXRpbmdTdHls
ZS5jcHAKQEAgLTYzOCw3ICs2MzgsNyBAQCB2b2lkIEVkaXRpbmdTdHlsZTo6b3ZlcnJpZGVUeXBp
bmdTdHlsZUF0KGNvbnN0IEVkaXRpbmdTdHlsZSYgc3R5bGUsIGNvbnN0IFBvc2l0aQogCiB2b2lk
IEVkaXRpbmdTdHlsZTo6Y2xlYXIoKQogewotICAgIG1fbXV0YWJsZVN0eWxlLmNsZWFyKCk7Cisg
ICAgbV9tdXRhYmxlU3R5bGUgPSBudWxscHRyOwogICAgIG1fc2hvdWxkVXNlRml4ZWREZWZhdWx0
Rm9udFNpemUgPSBmYWxzZTsKICAgICBtX2ZvbnRTaXplRGVsdGEgPSBOb0ZvbnREZWx0YTsKICAg
ICBzZXRVbmRlcmxpbmVDaGFuZ2UoVGV4dERlY29yYXRpb25DaGFuZ2U6Ok5vbmUpOwpkaWZmIC0t
Z2l0IGEvU291cmNlL1dlYkNvcmUvZWRpdGluZy9FZGl0b3IuY3BwIGIvU291cmNlL1dlYkNvcmUv
ZWRpdGluZy9FZGl0b3IuY3BwCmluZGV4IGEzYzNjOWMzYjQzNDQyOTc1MWY3M2VmMTkyOGM0MTlj
OTVkNWE5N2MuLmU3Njg3ZWMyNDY1MDA1ZGI1NzQ2ZmU2YzRhZGY2YzE1ODY4N2IzNzQgMTAwNjQ0
Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2VkaXRpbmcvRWRpdG9yLmNwcAorKysgYi9Tb3VyY2UvV2Vi
Q29yZS9lZGl0aW5nL0VkaXRvci5jcHAKQEAgLTgyOCw3ICs4MjgsNyBAQCB2b2lkIEVkaXRvcjo6
cmVtb3ZlRm9ybWF0dGluZ0FuZFN0eWxlKCkKIAogdm9pZCBFZGl0b3I6OmNsZWFyTGFzdEVkaXRD
b21tYW5kKCkgCiB7Ci0gICAgbV9sYXN0RWRpdENvbW1hbmQuY2xlYXIoKTsKKyAgICBtX2xhc3RF
ZGl0Q29tbWFuZCA9IG51bGxwdHI7CiB9CiAjaWYgUExBVEZPUk0oSU9TKQogLy8gSWYgdGhlIHNl
bGVjdGlvbiBpcyBhZGp1c3RlZCBmcm9tIFVJS2l0IHdpdGhvdXQgY2xvc2luZyB0aGUgdHlwaW5n
LCB0aGUgdHlwaW5nIGNvbW1hbmQgbWF5CkBAIC0xMDY2LDcgKzEwNjYsNyBAQCB2b2lkIEVkaXRv
cjo6dW5hcHBsaWVkRWRpdGluZyhQYXNzUmVmUHRyPEVkaXRDb21tYW5kQ29tcG9zaXRpb24+IGNt
ZCkKIAogICAgIG1fYWx0ZXJuYXRpdmVUZXh0Q29udHJvbGxlci0+cmVzcG9uZFRvVW5hcHBsaWVk
RWRpdGluZyhjbWQuZ2V0KCkpOwogCi0gICAgbV9sYXN0RWRpdENvbW1hbmQgPSAwOworICAgIG1f
bGFzdEVkaXRDb21tYW5kID0gbnVsbHB0cjsKICAgICBpZiAoY2xpZW50KCkpCiAgICAgICAgIGNs
aWVudCgpLT5yZWdpc3RlclJlZG9TdGVwKGNtZCk7CiAgICAgcmVzcG9uZFRvQ2hhbmdlZENvbnRl
bnRzKG5ld1NlbGVjdGlvbik7CkBAIC0xMDg0LDcgKzEwODQsNyBAQCB2b2lkIEVkaXRvcjo6cmVh
cHBsaWVkRWRpdGluZyhQYXNzUmVmUHRyPEVkaXRDb21tYW5kQ29tcG9zaXRpb24+IGNtZCkKICAg
ICAKICAgICB1cGRhdGVFZGl0b3JVSU5vd0lmU2NoZWR1bGVkKCk7CiAKLSAgICBtX2xhc3RFZGl0
Q29tbWFuZCA9IDA7CisgICAgbV9sYXN0RWRpdENvbW1hbmQgPSBudWxscHRyOwogICAgIGlmIChj
bGllbnQoKSkKICAgICAgICAgY2xpZW50KCktPnJlZ2lzdGVyVW5kb1N0ZXAoY21kKTsKICAgICBy
ZXNwb25kVG9DaGFuZ2VkQ29udGVudHMobmV3U2VsZWN0aW9uKTsKQEAgLTE3MjcsNyArMTcyNyw3
IEBAIHZvaWQgRWRpdG9yOjpzZXRDb21wb3NpdGlvbihjb25zdCBTdHJpbmcmIHRleHQsIFNldENv
bXBvc2l0aW9uTW9kZSBtb2RlKQogICAgIGlmICh0ZXh0LmlzRW1wdHkoKSAmJiBtb2RlICE9IENh
bmNlbENvbXBvc2l0aW9uKQogICAgICAgICBUeXBpbmdDb21tYW5kOjpkZWxldGVTZWxlY3Rpb24o
ZG9jdW1lbnQoKSwgMCk7CiAKLSAgICBtX2NvbXBvc2l0aW9uTm9kZSA9IDA7CisgICAgbV9jb21w
b3NpdGlvbk5vZGUgPSBudWxscHRyOwogICAgIG1fY3VzdG9tQ29tcG9zaXRpb25VbmRlcmxpbmVz
LmNsZWFyKCk7CiAKICAgICBpbnNlcnRUZXh0Rm9yQ29uZmlybWVkQ29tcG9zaXRpb24odGV4dCk7
CkBAIC0xODAyLDcgKzE4MDIsNyBAQCB2b2lkIEVkaXRvcjo6c2V0Q29tcG9zaXRpb24oY29uc3Qg
U3RyaW5nJiB0ZXh0LCBjb25zdCBWZWN0b3I8Q29tcG9zaXRpb25VbmRlcmxpbgogICAgIGlmICh0
ZXh0LmlzRW1wdHkoKSkKICAgICAgICAgVHlwaW5nQ29tbWFuZDo6ZGVsZXRlU2VsZWN0aW9uKGRv
Y3VtZW50KCksIFR5cGluZ0NvbW1hbmQ6OlByZXZlbnRTcGVsbENoZWNraW5nKTsKIAotICAgIG1f
Y29tcG9zaXRpb25Ob2RlID0gMDsKKyAgICBtX2NvbXBvc2l0aW9uTm9kZSA9IG51bGxwdHI7CiAg
ICAgbV9jdXN0b21Db21wb3NpdGlvblVuZGVybGluZXMuY2xlYXIoKTsKIAogICAgIGlmICghdGV4
dC5pc0VtcHR5KCkpIHsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2VkaXRpbmcvRnJhbWVT
ZWxlY3Rpb24uY3BwIGIvU291cmNlL1dlYkNvcmUvZWRpdGluZy9GcmFtZVNlbGVjdGlvbi5jcHAK
aW5kZXggYjBlMjUzNTg3ZmQ4YWRjZGUzNGQ4YmIyMWFiM2FlZmI4NjNkNmI4Mi4uZmEwODgzNzEy
NTM3MWExMWNiODc5OThmYTRhMTU3MWRkMTg0ZmIzMyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNv
cmUvZWRpdGluZy9GcmFtZVNlbGVjdGlvbi5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvZWRpdGlu
Zy9GcmFtZVNlbGVjdGlvbi5jcHAKQEAgLTEzNTksNyArMTM1OSw3IEBAIHZvaWQgRnJhbWVTZWxl
Y3Rpb246OnByZXBhcmVGb3JEZXN0cnVjdGlvbigpCiAgICAgICAgIHZpZXctPmNsZWFyU2VsZWN0
aW9uKCk7CiAKICAgICBzZXRTZWxlY3Rpb25XaXRob3V0VXBkYXRpbmdBcHBlYXJhbmNlKFZpc2li
bGVTZWxlY3Rpb24oKSwgZGVmYXVsdFNldFNlbGVjdGlvbk9wdGlvbnMoKSwgQWxpZ25DdXJzb3JP
blNjcm9sbElmTmVlZGVkLCBDaGFyYWN0ZXJHcmFudWxhcml0eSk7Ci0gICAgbV9wcmV2aW91c0Nh
cmV0Tm9kZS5jbGVhcigpOworICAgIG1fcHJldmlvdXNDYXJldE5vZGUgPSBudWxscHRyOwogfQog
CiB2b2lkIEZyYW1lU2VsZWN0aW9uOjpzZXRTdGFydChjb25zdCBWaXNpYmxlUG9zaXRpb24gJnBv
cywgRVVzZXJUcmlnZ2VyZWQgdHJpZ2dlcikKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2Vk
aXRpbmcvRnJhbWVTZWxlY3Rpb24uaCBiL1NvdXJjZS9XZWJDb3JlL2VkaXRpbmcvRnJhbWVTZWxl
Y3Rpb24uaAppbmRleCBlZDg3OTZlZjAzMTAyOGM3YmYyOTBiZTM0ODhkOTg2OWIyM2VlOWIyLi4z
MTBhNzRhYWI5ZDJmNTFkZmE3MWJkMWFkOTY2MzQ4MzdiNjEyNWMwIDEwMDY0NAotLS0gYS9Tb3Vy
Y2UvV2ViQ29yZS9lZGl0aW5nL0ZyYW1lU2VsZWN0aW9uLmgKKysrIGIvU291cmNlL1dlYkNvcmUv
ZWRpdGluZy9GcmFtZVNlbGVjdGlvbi5oCkBAIC0zNTksNyArMzU5LDcgQEAgaW5saW5lIEVkaXRp
bmdTdHlsZSogRnJhbWVTZWxlY3Rpb246OnR5cGluZ1N0eWxlKCkgY29uc3QKIAogaW5saW5lIHZv
aWQgRnJhbWVTZWxlY3Rpb246OmNsZWFyVHlwaW5nU3R5bGUoKQogewotICAgIG1fdHlwaW5nU3R5
bGUuY2xlYXIoKTsKKyAgICBtX3R5cGluZ1N0eWxlID0gbnVsbHB0cjsKIH0KIAogaW5saW5lIHZv
aWQgRnJhbWVTZWxlY3Rpb246OnNldFR5cGluZ1N0eWxlKFBhc3NSZWZQdHI8RWRpdGluZ1N0eWxl
PiBzdHlsZSkKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2VkaXRpbmcvSW5kZW50T3V0ZGVu
dENvbW1hbmQuY3BwIGIvU291cmNlL1dlYkNvcmUvZWRpdGluZy9JbmRlbnRPdXRkZW50Q29tbWFu
ZC5jcHAKaW5kZXggYjIzOGY4NzkzMTU2YzcyOTcyZTVhN2NkZTNhYWNkZTM5Y2UwMWIwZi4uZWM0
ZDI3MjQ0N2VjYWI3NTY1MDQxOTdkNjc1NTI3MmQ4YjhjZjYzMSAxMDA2NDQKLS0tIGEvU291cmNl
L1dlYkNvcmUvZWRpdGluZy9JbmRlbnRPdXRkZW50Q29tbWFuZC5jcHAKKysrIGIvU291cmNlL1dl
YkNvcmUvZWRpdGluZy9JbmRlbnRPdXRkZW50Q29tbWFuZC5jcHAKQEAgLTIzMiw3ICsyMzIsNyBA
QCB2b2lkIEluZGVudE91dGRlbnRDb21tYW5kOjpmb3JtYXRTZWxlY3Rpb24oY29uc3QgVmlzaWJs
ZVBvc2l0aW9uJiBzdGFydE9mU2VsZWN0aQogdm9pZCBJbmRlbnRPdXRkZW50Q29tbWFuZDo6Zm9y
bWF0UmFuZ2UoY29uc3QgUG9zaXRpb24mIHN0YXJ0LCBjb25zdCBQb3NpdGlvbiYgZW5kLCBjb25z
dCBQb3NpdGlvbiYsIFJlZlB0cjxFbGVtZW50PiYgYmxvY2txdW90ZUZvck5leHRJbmRlbnQpCiB7
CiAgICAgaWYgKHRyeUluZGVudGluZ0FzTGlzdEl0ZW0oc3RhcnQsIGVuZCkpCi0gICAgICAgIGJs
b2NrcXVvdGVGb3JOZXh0SW5kZW50ID0gMDsKKyAgICAgICAgYmxvY2txdW90ZUZvck5leHRJbmRl
bnQgPSBudWxscHRyOwogICAgIGVsc2UKICAgICAgICAgaW5kZW50SW50b0Jsb2NrcXVvdGUoc3Rh
cnQsIGVuZCwgYmxvY2txdW90ZUZvck5leHRJbmRlbnQpOwogfQpkaWZmIC0tZ2l0IGEvU291cmNl
L1dlYkNvcmUvZWRpdGluZy9SZXBsYWNlU2VsZWN0aW9uQ29tbWFuZC5jcHAgYi9Tb3VyY2UvV2Vi
Q29yZS9lZGl0aW5nL1JlcGxhY2VTZWxlY3Rpb25Db21tYW5kLmNwcAppbmRleCAyZTI1ZWVmMGVj
NjBiNTdmZWYyMzlkNDM5Y2IxZWU5MTQ2NjFjODAyLi5lZWUyMjBjODZmOThhNWU3ZDI4OTljNDMz
ZmE5MWYwMDAwNTQ2YmUzIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9lZGl0aW5nL1JlcGxh
Y2VTZWxlY3Rpb25Db21tYW5kLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9lZGl0aW5nL1JlcGxh
Y2VTZWxlY3Rpb25Db21tYW5kLmNwcApAQCAtMzU0LDggKzM1NCw4IEBAIGlubGluZSB2b2lkIFJl
cGxhY2VTZWxlY3Rpb25Db21tYW5kOjpJbnNlcnRlZE5vZGVzOjp3aWxsUmVtb3ZlTm9kZVByZXNl
cnZpbmdDaGlsCiBpbmxpbmUgdm9pZCBSZXBsYWNlU2VsZWN0aW9uQ29tbWFuZDo6SW5zZXJ0ZWRO
b2Rlczo6d2lsbFJlbW92ZU5vZGUoTm9kZSogbm9kZSkKIHsKICAgICBpZiAobV9maXJzdE5vZGVJ
bnNlcnRlZCA9PSBub2RlICYmIG1fbGFzdE5vZGVJbnNlcnRlZCA9PSBub2RlKSB7Ci0gICAgICAg
IG1fZmlyc3ROb2RlSW5zZXJ0ZWQgPSAwOwotICAgICAgICBtX2xhc3ROb2RlSW5zZXJ0ZWQgPSAw
OworICAgICAgICBtX2ZpcnN0Tm9kZUluc2VydGVkID0gbnVsbHB0cjsKKyAgICAgICAgbV9sYXN0
Tm9kZUluc2VydGVkID0gbnVsbHB0cjsKICAgICB9IGVsc2UgaWYgKG1fZmlyc3ROb2RlSW5zZXJ0
ZWQgPT0gbm9kZSkKICAgICAgICAgbV9maXJzdE5vZGVJbnNlcnRlZCA9IE5vZGVUcmF2ZXJzYWw6
Om5leHRTa2lwcGluZ0NoaWxkcmVuKCptX2ZpcnN0Tm9kZUluc2VydGVkKTsKICAgICBlbHNlIGlm
IChtX2xhc3ROb2RlSW5zZXJ0ZWQgPT0gbm9kZSkKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3Jl
L2VkaXRpbmcvU3BlbGxDaGVja2VyLmNwcCBiL1NvdXJjZS9XZWJDb3JlL2VkaXRpbmcvU3BlbGxD
aGVja2VyLmNwcAppbmRleCA4YjRkNTQxMTljMDEzYzQ4NWVmNDRlYjkzMzc1NzM5MjhjNjQ4MGRi
Li4wM2YyZTUxMDQ4MzUyMTUyMGQyOWI3N2U3NjhkZmM5M2JhYTQwNTkzIDEwMDY0NAotLS0gYS9T
b3VyY2UvV2ViQ29yZS9lZGl0aW5nL1NwZWxsQ2hlY2tlci5jcHAKKysrIGIvU291cmNlL1dlYkNv
cmUvZWRpdGluZy9TcGVsbENoZWNrZXIuY3BwCkBAIC0yMTQsNyArMjE0LDcgQEAgdm9pZCBTcGVs
bENoZWNrZXI6OmRpZENoZWNrKGludCBzZXF1ZW5jZSwgY29uc3QgVmVjdG9yPFRleHRDaGVja2lu
Z1Jlc3VsdD4mIHJlc3UKICAgICBpZiAobV9sYXN0UHJvY2Vzc2VkU2VxdWVuY2UgPCBzZXF1ZW5j
ZSkKICAgICAgICAgbV9sYXN0UHJvY2Vzc2VkU2VxdWVuY2UgPSBzZXF1ZW5jZTsKIAotICAgIG1f
cHJvY2Vzc2luZ1JlcXVlc3QuY2xlYXIoKTsKKyAgICBtX3Byb2Nlc3NpbmdSZXF1ZXN0ID0gbnVs
bHB0cjsKICAgICBpZiAoIW1fcmVxdWVzdFF1ZXVlLmlzRW1wdHkoKSkKICAgICAgICAgbV90aW1l
clRvUHJvY2Vzc1F1ZXVlZFJlcXVlc3Quc3RhcnRPbmVTaG90KDApOwogfQpkaWZmIC0tZ2l0IGEv
U291cmNlL1dlYkNvcmUvZWRpdGluZy9UZXh0Q2hlY2tpbmdIZWxwZXIuY3BwIGIvU291cmNlL1dl
YkNvcmUvZWRpdGluZy9UZXh0Q2hlY2tpbmdIZWxwZXIuY3BwCmluZGV4IDAyNGQyYWQ3YzI0ZjQx
NGU1MWZlMTY2NmNmOTA5MjcyMTNkZWYxNzAuLmU5NjEzNGQ3OGE5MmJiMDVlN2YyZWQ3NzA5Yjhj
Y2E0YzRhY2EzYjUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2VkaXRpbmcvVGV4dENoZWNr
aW5nSGVscGVyLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9lZGl0aW5nL1RleHRDaGVja2luZ0hl
bHBlci5jcHAKQEAgLTE0Niw3ICsxNDYsNyBAQCB2b2lkIFRleHRDaGVja2luZ1BhcmFncmFwaDo6
ZXhwYW5kUmFuZ2VUb05leHRFbmQoKQogdm9pZCBUZXh0Q2hlY2tpbmdQYXJhZ3JhcGg6OmludmFs
aWRhdGVQYXJhZ3JhcGhSYW5nZVZhbHVlcygpCiB7CiAgICAgbV9jaGVja2luZ1N0YXJ0ID0gbV9j
aGVja2luZ0VuZCA9IC0xOwotICAgIG1fb2Zmc2V0QXNSYW5nZSA9IDA7CisgICAgbV9vZmZzZXRB
c1JhbmdlID0gbnVsbHB0cjsKICAgICBtX3RleHQgPSBTdHJpbmcoKTsKIH0KIApkaWZmIC0tZ2l0
IGEvU291cmNlL1dlYkNvcmUvZmlsZWFwaS9GaWxlUmVhZGVyLmNwcCBiL1NvdXJjZS9XZWJDb3Jl
L2ZpbGVhcGkvRmlsZVJlYWRlci5jcHAKaW5kZXggN2Y0YzA1ZDI5MzU2NGY5ODRiZmI4YmQzMDJl
OWZhNDhiYzYzODY2NS4uNjFmYzJkZTYxYWVmOGEzZWJiMDg4NGQ3NDA3NmU2YjNiZDFkMGIxMyAx
MDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvZmlsZWFwaS9GaWxlUmVhZGVyLmNwcAorKysgYi9T
b3VyY2UvV2ViQ29yZS9maWxlYXBpL0ZpbGVSZWFkZXIuY3BwCkBAIC0xNDAsNyArMTQwLDcgQEAg
dm9pZCBGaWxlUmVhZGVyOjpyZWFkSW50ZXJuYWwoQmxvYiogYmxvYiwgRmlsZVJlYWRlckxvYWRl
cjo6UmVhZFR5cGUgdHlwZSwgRXhjZXAKICAgICBtX2Jsb2IgPSBibG9iOwogICAgIG1fcmVhZFR5
cGUgPSB0eXBlOwogICAgIG1fc3RhdGUgPSBMT0FESU5HOwotICAgIG1fZXJyb3IgPSAwOworICAg
IG1fZXJyb3IgPSBudWxscHRyOwogCiAgICAgbV9sb2FkZXIgPSBzdGQ6Om1ha2VfdW5pcXVlPEZp
bGVSZWFkZXJMb2FkZXI+KG1fcmVhZFR5cGUsIHRoaXMpOwogICAgIG1fbG9hZGVyLT5zZXRFbmNv
ZGluZyhtX2VuY29kaW5nKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2ZpbGVhcGkvRmls
ZVJlYWRlckxvYWRlci5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9maWxlYXBpL0ZpbGVSZWFkZXJMb2Fk
ZXIuY3BwCmluZGV4IDk0ZTBhNGE3Y2I0MTBiYWZlM2FlZWQzOGZiNmNlMmZjZTI5YWUyNmEuLmQ4
ZmZjMTAyMzM1ZjFiMjVkNTcyZGI2YjI3NWE3NDQ0NTI3ZWEyZDkgMTAwNjQ0Ci0tLSBhL1NvdXJj
ZS9XZWJDb3JlL2ZpbGVhcGkvRmlsZVJlYWRlckxvYWRlci5jcHAKKysrIGIvU291cmNlL1dlYkNv
cmUvZmlsZWFwaS9GaWxlUmVhZGVyTG9hZGVyLmNwcApAQCAtMTIxLDExICsxMjEsMTEgQEAgdm9p
ZCBGaWxlUmVhZGVyTG9hZGVyOjp0ZXJtaW5hdGUoKQogCiB2b2lkIEZpbGVSZWFkZXJMb2FkZXI6
OmNsZWFudXAoKQogewotICAgIG1fbG9hZGVyID0gMDsKKyAgICBtX2xvYWRlciA9IG51bGxwdHI7
CiAKICAgICAvLyBJZiB3ZSBnZXQgYW55IGVycm9yLCB3ZSBkbyBub3QgbmVlZCB0byBrZWVwIGEg
YnVmZmVyIGFyb3VuZC4KICAgICBpZiAobV9lcnJvckNvZGUpIHsKLSAgICAgICAgbV9yYXdEYXRh
ID0gMDsKKyAgICAgICAgbV9yYXdEYXRhID0gbnVsbHB0cjsKICAgICAgICAgbV9zdHJpbmdSZXN1
bHQgPSAiIjsKICAgICB9CiB9CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9oaXN0b3J5L0hp
c3RvcnlJdGVtLmNwcCBiL1NvdXJjZS9XZWJDb3JlL2hpc3RvcnkvSGlzdG9yeUl0ZW0uY3BwCmlu
ZGV4IDIyOWJhYjhlN2EyM2FjMDVjMGFkMDVlN2VkNDMxNTdkY2Q3ZThiMDMuLjgyOTU3M2Y3ZDc5
YjZhOTI3NTJiNmEwN2JiOGI1NzkwOTYzMmRiZDEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3Jl
L2hpc3RvcnkvSGlzdG9yeUl0ZW0uY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2hpc3RvcnkvSGlz
dG9yeUl0ZW0uY3BwCkBAIC0xOTYsMTAgKzE5NiwxMCBAQCB2b2lkIEhpc3RvcnlJdGVtOjpyZXNl
dCgpCiAKICAgICBtX2l0ZW1TZXF1ZW5jZU51bWJlciA9IGdlbmVyYXRlU2VxdWVuY2VOdW1iZXIo
KTsKIAotICAgIG1fc3RhdGVPYmplY3QgPSAwOworICAgIG1fc3RhdGVPYmplY3QgPSBudWxscHRy
OwogICAgIG1fZG9jdW1lbnRTZXF1ZW5jZU51bWJlciA9IGdlbmVyYXRlU2VxdWVuY2VOdW1iZXIo
KTsKIAotICAgIG1fZm9ybURhdGEgPSAwOworICAgIG1fZm9ybURhdGEgPSBudWxscHRyOwogICAg
IG1fZm9ybUNvbnRlbnRUeXBlID0gU3RyaW5nKCk7CiAKICAgICBjbGVhckNoaWxkcmVuKCk7CkBA
IC01MjQsNyArNTI0LDcgQEAgdm9pZCBIaXN0b3J5SXRlbTo6c2V0Rm9ybUluZm9Gcm9tUmVxdWVz
dChjb25zdCBSZXNvdXJjZVJlcXVlc3QmIHJlcXVlc3QpCiAgICAgICAgIG1fZm9ybURhdGEgPSBy
ZXF1ZXN0Lmh0dHBCb2R5KCk7CiAgICAgICAgIG1fZm9ybUNvbnRlbnRUeXBlID0gcmVxdWVzdC5o
dHRwQ29udGVudFR5cGUoKTsKICAgICB9IGVsc2UgewotICAgICAgICBtX2Zvcm1EYXRhID0gMDsK
KyAgICAgICAgbV9mb3JtRGF0YSA9IG51bGxwdHI7CiAgICAgICAgIG1fZm9ybUNvbnRlbnRUeXBl
ID0gU3RyaW5nKCk7CiAgICAgfQogfQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvaHRtbC9C
YXNlQ2hvb3Nlck9ubHlEYXRlQW5kVGltZUlucHV0VHlwZS5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9o
dG1sL0Jhc2VDaG9vc2VyT25seURhdGVBbmRUaW1lSW5wdXRUeXBlLmNwcAppbmRleCBlOWE2Y2Mw
MzkzYzUwNTU2OGQ1MTM0M2M2NTdhNmJkYmFkMWE5NTIzLi5kYmVhMGU5OWJkOTM0YzdkYmRlYTUy
ZDI1ZDAxYzJmODE3NWRjMWQwIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9odG1sL0Jhc2VD
aG9vc2VyT25seURhdGVBbmRUaW1lSW5wdXRUeXBlLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9o
dG1sL0Jhc2VDaG9vc2VyT25seURhdGVBbmRUaW1lSW5wdXRUeXBlLmNwcApAQCAtOTgsNyArOTgs
NyBAQCB2b2lkIEJhc2VDaG9vc2VyT25seURhdGVBbmRUaW1lSW5wdXRUeXBlOjpkaWRDaG9vc2VW
YWx1ZShjb25zdCBTdHJpbmcmIHZhbHVlKQogCiB2b2lkIEJhc2VDaG9vc2VyT25seURhdGVBbmRU
aW1lSW5wdXRUeXBlOjpkaWRFbmRDaG9vc2VyKCkKIHsKLSAgICBtX2RhdGVUaW1lQ2hvb3Nlci5j
bGVhcigpOworICAgIG1fZGF0ZVRpbWVDaG9vc2VyID0gbnVsbHB0cjsKIH0KIAogdm9pZCBCYXNl
Q2hvb3Nlck9ubHlEYXRlQW5kVGltZUlucHV0VHlwZTo6Y2xvc2VEYXRlVGltZUNob29zZXIoKQpk
aWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvaHRtbC9GVFBEaXJlY3RvcnlEb2N1bWVudC5jcHAg
Yi9Tb3VyY2UvV2ViQ29yZS9odG1sL0ZUUERpcmVjdG9yeURvY3VtZW50LmNwcAppbmRleCBlNzU1
M2Q3NDMwM2RkOTRkYjI2MTBkY2RkMmExODBmNGY4ZWIyMDllLi4wMGRlOWZmNTcxYThlMzhlMmMy
ZDhjYzVlOWMxYmM3YzIzOTdlZTY5IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9odG1sL0ZU
UERpcmVjdG9yeURvY3VtZW50LmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9odG1sL0ZUUERpcmVj
dG9yeURvY3VtZW50LmNwcApAQCAtNDExLDcgKzQxMSw3IEBAIHZvaWQgRlRQRGlyZWN0b3J5RG9j
dW1lbnRQYXJzZXI6OmZpbmlzaCgpCiAgICAgICAgIG1fY2FycnlPdmVyID0gU3RyaW5nKCk7CiAg
ICAgfQogCi0gICAgbV90YWJsZUVsZW1lbnQgPSAwOworICAgIG1fdGFibGVFbGVtZW50ID0gbnVs
bHB0cjsKICAgICBmYXN0RnJlZShtX2J1ZmZlcik7CiAKICAgICBIVE1MRG9jdW1lbnRQYXJzZXI6
OmZpbmlzaCgpOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvaHRtbC9GaWxlSW5wdXRUeXBl
LmNwcCBiL1NvdXJjZS9XZWJDb3JlL2h0bWwvRmlsZUlucHV0VHlwZS5jcHAKaW5kZXggYTNkM2I2
YjcxMWZmZTFlOGFhMWFmZGZmYzE4NmViYzBhZjUyYzE0Ny4uNDg5ZDc5OTM4ZmNmZDIyNmZjOTk0
YzI2MGU2ZTU1MzUzYzU0YWYyOSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvaHRtbC9GaWxl
SW5wdXRUeXBlLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9odG1sL0ZpbGVJbnB1dFR5cGUuY3Bw
CkBAIC0yNTAsNyArMjUwLDcgQEAgdm9pZCBGaWxlSW5wdXRUeXBlOjpzZXRWYWx1ZShjb25zdCBT
dHJpbmcmLCBib29sLCBUZXh0RmllbGRFdmVudEJlaGF2aW9yKQogewogICAgIC8vIEZJWE1FOiBT
aG91bGQgd2UgY2xlYXIgdGhlIGZpbGUgbGlzdCwgb3IgcmVwbGFjZSBpdCB3aXRoIGEgbmV3IGVt
cHR5IG9uZSBoZXJlPyBUaGlzIGlzIG9ic2VydmFibGUgZnJvbSBKYXZhU2NyaXB0IHRocm91Z2gg
Y3VzdG9tIHByb3BlcnRpZXMuCiAgICAgbV9maWxlTGlzdC0+Y2xlYXIoKTsKLSAgICBtX2ljb24u
Y2xlYXIoKTsKKyAgICBtX2ljb24gPSBudWxscHRyOwogICAgIGVsZW1lbnQoKS5zZXROZWVkc1N0
eWxlUmVjYWxjKCk7CiB9CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTENh
bnZhc0VsZW1lbnQuY3BwIGIvU291cmNlL1dlYkNvcmUvaHRtbC9IVE1MQ2FudmFzRWxlbWVudC5j
cHAKaW5kZXggODZkNDVhNDhhMGM3NjJkYWI3MjZmZDk5NmFmNzI0NmM4MTg3ODY2My4uY2U1ZDdi
MmE1ZjI3ZjRjNzZmNTEwZDZlZjU5NWUzMGFhMjU0YTMyYSAxMDA2NDQKLS0tIGEvU291cmNlL1dl
YkNvcmUvaHRtbC9IVE1MQ2FudmFzRWxlbWVudC5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvaHRt
bC9IVE1MQ2FudmFzRWxlbWVudC5jcHAKQEAgLTQyMyw3ICs0MjMsNyBAQCB2b2lkIEhUTUxDYW52
YXNFbGVtZW50OjptYWtlUHJlc2VudGF0aW9uQ29weSgpCiAKIHZvaWQgSFRNTENhbnZhc0VsZW1l
bnQ6OmNsZWFyUHJlc2VudGF0aW9uQ29weSgpCiB7Ci0gICAgbV9wcmVzZW50ZWRJbWFnZS5jbGVh
cigpOworICAgIG1fcHJlc2VudGVkSW1hZ2UgPSBudWxscHRyOwogfQogCiB2b2lkIEhUTUxDYW52
YXNFbGVtZW50OjpzZXRTdXJmYWNlU2l6ZShjb25zdCBJbnRTaXplJiBzaXplKQpAQCAtNjQ0LDcg
KzY0NCw3IEBAIHZvaWQgSFRNTENhbnZhc0VsZW1lbnQ6OmNsZWFySW1hZ2VCdWZmZXIoKSBjb25z
dAogCiB2b2lkIEhUTUxDYW52YXNFbGVtZW50OjpjbGVhckNvcGllZEltYWdlKCkKIHsKLSAgICBt
X2NvcGllZEltYWdlLmNsZWFyKCk7CisgICAgbV9jb3BpZWRJbWFnZSA9IG51bGxwdHI7CiAgICAg
bV9kaWRDbGVhckltYWdlQnVmZmVyID0gZmFsc2U7CiB9CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9X
ZWJDb3JlL2h0bWwvSFRNTExpbmtFbGVtZW50LmNwcCBiL1NvdXJjZS9XZWJDb3JlL2h0bWwvSFRN
TExpbmtFbGVtZW50LmNwcAppbmRleCBjMjNlZGZmM2EyYWFlY2YxYjBkYzBhNjVlOTg0OWQ1OTky
ZDZhYjI3Li5lNGUxMjgxMWM4NDUxMzIwMzhkODdjZjNiYzZjODQ0NjMzZjAwZWUxIDEwMDY0NAot
LS0gYS9Tb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxMaW5rRWxlbWVudC5jcHAKKysrIGIvU291cmNl
L1dlYkNvcmUvaHRtbC9IVE1MTGlua0VsZW1lbnQuY3BwCkBAIC0yNjQsNyArMjY0LDcgQEAgdm9p
ZCBIVE1MTGlua0VsZW1lbnQ6OmNsZWFyU2hlZXQoKQogICAgIEFTU0VSVChtX3NoZWV0KTsKICAg
ICBBU1NFUlQobV9zaGVldC0+b3duZXJOb2RlKCkgPT0gdGhpcyk7CiAgICAgbV9zaGVldC0+Y2xl
YXJPd25lck5vZGUoKTsKLSAgICBtX3NoZWV0ID0gMDsKKyAgICBtX3NoZWV0ID0gbnVsbHB0cjsK
IH0KIAogTm9kZTo6SW5zZXJ0aW9uTm90aWZpY2F0aW9uUmVxdWVzdCBIVE1MTGlua0VsZW1lbnQ6
Omluc2VydGVkSW50byhDb250YWluZXJOb2RlJiBpbnNlcnRpb25Qb2ludCkKZGlmZiAtLWdpdCBh
L1NvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTE1lZGlhRWxlbWVudC5jcHAgYi9Tb3VyY2UvV2ViQ29y
ZS9odG1sL0hUTUxNZWRpYUVsZW1lbnQuY3BwCmluZGV4IDRmZWFlYjk3Yzk5YzE4NTE1NGQ3ZjM5
OTM3ZjRiZTVjNmM0MzgzZTEuLmRkODg5MmYzY2I0Y2Q3OGRkNGZkZjc4MGZlMmUwNTFkYTJkYzQ5
NjYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTE1lZGlhRWxlbWVudC5jcHAK
KysrIGIvU291cmNlL1dlYkNvcmUvaHRtbC9IVE1MTWVkaWFFbGVtZW50LmNwcApAQCAtNDU3LDcg
KzQ1Nyw3IEBAIEhUTUxNZWRpYUVsZW1lbnQ6On5IVE1MTWVkaWFFbGVtZW50KCkKIAogICAgIGlm
IChtX21lZGlhQ29udHJvbGxlcikgewogICAgICAgICBtX21lZGlhQ29udHJvbGxlci0+cmVtb3Zl
TWVkaWFFbGVtZW50KHRoaXMpOwotICAgICAgICBtX21lZGlhQ29udHJvbGxlciA9IDA7CisgICAg
ICAgIG1fbWVkaWFDb250cm9sbGVyID0gbnVsbHB0cjsKICAgICB9CiAKICNpZiBFTkFCTEUoTUVE
SUFfU09VUkNFKQpAQCAtOTQyLDcgKzk0Miw3IEBAIHZvaWQgSFRNTE1lZGlhRWxlbWVudDo6cHJl
cGFyZUZvckxvYWQoKQogCiAgICAgLy8gMSAtIEFib3J0IGFueSBhbHJlYWR5LXJ1bm5pbmcgaW5z
dGFuY2Ugb2YgdGhlIHJlc291cmNlIHNlbGVjdGlvbiBhbGdvcml0aG0gZm9yIHRoaXMgZWxlbWVu
dC4KICAgICBtX2xvYWRTdGF0ZSA9IFdhaXRpbmdGb3JTb3VyY2U7Ci0gICAgbV9jdXJyZW50U291
cmNlTm9kZSA9IDA7CisgICAgbV9jdXJyZW50U291cmNlTm9kZSA9IG51bGxwdHI7CiAKICAgICAv
LyAyIC0gSWYgdGhlcmUgYXJlIGFueSB0YXNrcyBmcm9tIHRoZSBtZWRpYSBlbGVtZW50J3MgbWVk
aWEgZWxlbWVudCBldmVudCB0YXNrIHNvdXJjZSBpbiAKICAgICAvLyBvbmUgb2YgdGhlIHRhc2sg
cXVldWVzLCB0aGVuIHJlbW92ZSB0aG9zZSB0YXNrcy4KQEAgLTEwMDYsNyArMTAwNiw3IEBAIHZv
aWQgSFRNTE1lZGlhRWxlbWVudDo6cHJlcGFyZUZvckxvYWQoKQogICAgIHNldFBsYXliYWNrUmF0
ZShkZWZhdWx0UGxheWJhY2tSYXRlKCkpOwogCiAgICAgLy8gNiAtIFNldCB0aGUgZXJyb3IgYXR0
cmlidXRlIHRvIG51bGwgYW5kIHRoZSBhdXRvcGxheWluZyBmbGFnIHRvIHRydWUuCi0gICAgbV9l
cnJvciA9IDA7CisgICAgbV9lcnJvciA9IG51bGxwdHI7CiAgICAgbV9hdXRvcGxheWluZyA9IHRy
dWU7CiAKICAgICAvLyA3IC0gSW52b2tlIHRoZSBtZWRpYSBlbGVtZW50J3MgcmVzb3VyY2Ugc2Vs
ZWN0aW9uIGFsZ29yaXRobS4KQEAgLTExMDEsNyArMTEwMSw3IEBAIHZvaWQgSFRNTE1lZGlhRWxl
bWVudDo6c2VsZWN0TWVkaWFSZXNvdXJjZSgpCiAgICAgICAgIGlmIChhdXRvIGZpcnN0U291cmNl
ID0gY2hpbGRyZW5PZlR5cGU8SFRNTFNvdXJjZUVsZW1lbnQ+KCp0aGlzKS5maXJzdCgpKSB7CiAg
ICAgICAgICAgICBtb2RlID0gY2hpbGRyZW47CiAgICAgICAgICAgICBtX25leHRDaGlsZE5vZGVU
b0NvbnNpZGVyID0gZmlyc3RTb3VyY2U7Ci0gICAgICAgICAgICBtX2N1cnJlbnRTb3VyY2VOb2Rl
ID0gMDsKKyAgICAgICAgICAgIG1fY3VycmVudFNvdXJjZU5vZGUgPSBudWxscHRyOwogICAgICAg
ICB9IGVsc2UgewogICAgICAgICAgICAgLy8gT3RoZXJ3aXNlIHRoZSBtZWRpYSBlbGVtZW50IGhh
cyBuZWl0aGVyIGEgc3JjIGF0dHJpYnV0ZSBub3IgYSBzb3VyY2UgZWxlbWVudCAKICAgICAgICAg
ICAgIC8vIGNoaWxkOiBzZXQgdGhlIG5ldHdvcmtTdGF0ZSB0byBORVRXT1JLX0VNUFRZLCBhbmQg
YWJvcnQgdGhlc2Ugc3RlcHM7IHRoZSAKQEAgLTEyNzcsNyArMTI3Nyw3IEBAIHZvaWQgSFRNTE1l
ZGlhRWxlbWVudDo6bG9hZFJlc291cmNlKGNvbnN0IFVSTCYgaW5pdGlhbFVSTCwgQ29udGVudFR5
cGUmIGNvbnRlbnRUCiAgICAgICAgIGVsc2UgewogICAgICAgICAgICAgLy8gRm9yZ2V0IG91ciBy
ZWZlcmVuY2UgdG8gdGhlIE1lZGlhU291cmNlLCBzbyB3ZSBsZWF2ZSBpdCBhbG9uZQogICAgICAg
ICAgICAgLy8gd2hpbGUgcHJvY2Vzc2luZyByZW1haW5kZXIgb2YgbG9hZCBmYWlsdXJlLgotICAg
ICAgICAgICAgbV9tZWRpYVNvdXJjZSA9IDA7CisgICAgICAgICAgICBtX21lZGlhU291cmNlID0g
bnVsbHB0cjsKICAgICAgICAgICAgIG1lZGlhTG9hZGluZ0ZhaWxlZChNZWRpYVBsYXllcjo6Rm9y
bWF0RXJyb3IpOwogICAgICAgICB9CiAgICAgfSBlbHNlCkBAIC0xODAwLDcgKzE4MDAsNyBAQCB2
b2lkIEhUTUxNZWRpYUVsZW1lbnQ6Om5vbmVTdXBwb3J0ZWQoKQogCiAgICAgc3RvcFBlcmlvZGlj
VGltZXJzKCk7CiAgICAgbV9sb2FkU3RhdGUgPSBXYWl0aW5nRm9yU291cmNlOwotICAgIG1fY3Vy
cmVudFNvdXJjZU5vZGUgPSAwOworICAgIG1fY3VycmVudFNvdXJjZU5vZGUgPSBudWxscHRyOwog
CiAgICAgLy8gNC44LjEwLjUgCiAgICAgLy8gNiAtIFJlYWNoaW5nIHRoaXMgc3RlcCBpbmRpY2F0
ZXMgdGhhdCB0aGUgbWVkaWEgcmVzb3VyY2UgZmFpbGVkIHRvIGxvYWQgb3IgdGhhdCB0aGUgZ2l2
ZW4gCkBAIC0yOTM5LDcgKzI5MzksNyBAQCB2b2lkIEhUTUxNZWRpYUVsZW1lbnQ6OmNsb3NlTWVk
aWFTb3VyY2UoKQogICAgICAgICByZXR1cm47CiAKICAgICBtX21lZGlhU291cmNlLT5jbG9zZSgp
OwotICAgIG1fbWVkaWFTb3VyY2UgPSAwOworICAgIG1fbWVkaWFTb3VyY2UgPSBudWxscHRyOwog
fQogI2VuZGlmCiAKQEAgLTQxMTIsOCArNDExMiw4IEBAIGNoZWNrX2FnYWluOgogICAgICAgICBt
X2N1cnJlbnRTb3VyY2VOb2RlID0gc291cmNlOwogICAgICAgICBtX25leHRDaGlsZE5vZGVUb0Nv
bnNpZGVyID0gc291cmNlLT5uZXh0U2libGluZygpOwogICAgIH0gZWxzZSB7Ci0gICAgICAgIG1f
Y3VycmVudFNvdXJjZU5vZGUgPSAwOwotICAgICAgICBtX25leHRDaGlsZE5vZGVUb0NvbnNpZGVy
ID0gMDsKKyAgICAgICAgbV9jdXJyZW50U291cmNlTm9kZSA9IG51bGxwdHI7CisgICAgICAgIG1f
bmV4dENoaWxkTm9kZVRvQ29uc2lkZXIgPSBudWxscHRyOwogICAgIH0KIAogI2lmICFMT0dfRElT
QUJMRUQKQEAgLTQxOTMsNyArNDE5Myw3IEBAIHZvaWQgSFRNTE1lZGlhRWxlbWVudDo6c291cmNl
V2FzUmVtb3ZlZChIVE1MU291cmNlRWxlbWVudCogc291cmNlKQogICAgICAgICAvLyBDbGVhciB0
aGUgY3VycmVudCBzb3VyY2Ugbm9kZSBwb2ludGVyLCBidXQgZG9uJ3QgY2hhbmdlIHRoZSBtb3Zp
ZSBhcyB0aGUgc3BlYyBzYXlzOgogICAgICAgICAvLyA0LjguOCAtIER5bmFtaWNhbGx5IG1vZGlm
eWluZyBhIHNvdXJjZSBlbGVtZW50IGFuZCBpdHMgYXR0cmlidXRlIHdoZW4gdGhlIGVsZW1lbnQg
aXMgYWxyZWFkeSAKICAgICAgICAgLy8gaW5zZXJ0ZWQgaW4gYSB2aWRlbyBvciBhdWRpbyBlbGVt
ZW50IHdpbGwgaGF2ZSBubyBlZmZlY3QuCi0gICAgICAgIG1fY3VycmVudFNvdXJjZU5vZGUgPSAw
OworICAgICAgICBtX2N1cnJlbnRTb3VyY2VOb2RlID0gbnVsbHB0cjsKICAgICAgICAgTE9HKE1l
ZGlhLCAiSFRNTE1lZGlhRWxlbWVudDo6c291cmNlUmVtb3ZlZCglcCkgLSBtX2N1cnJlbnRTb3Vy
Y2VOb2RlIHNldCB0byAwIiwgdGhpcyk7CiAgICAgfQogfQpAQCAtNDc5NSw3ICs0Nzk1LDcgQEAg
dm9pZCBIVE1MTWVkaWFFbGVtZW50Ojp1c2VyQ2FuY2VsbGVkTG9hZCgpCiAgICAgc2V0U2hvdWxk
RGVsYXlMb2FkRXZlbnQoZmFsc2UpOwogCiAgICAgLy8gNiAtIEFib3J0IHRoZSBvdmVyYWxsIHJl
c291cmNlIHNlbGVjdGlvbiBhbGdvcml0aG0uCi0gICAgbV9jdXJyZW50U291cmNlTm9kZSA9IDA7
CisgICAgbV9jdXJyZW50U291cmNlTm9kZSA9IG51bGxwdHI7CiAKICAgICAvLyBSZXNldCBtX3Jl
YWR5U3RhdGUgc2luY2UgbV9wbGF5ZXIgaXMgZ29uZS4KICAgICBtX3JlYWR5U3RhdGUgPSBIQVZF
X05PVEhJTkc7CkBAIC00ODEyLDggKzQ4MTIsOCBAQCB2b2lkIEhUTUxNZWRpYUVsZW1lbnQ6OmNs
ZWFyTWVkaWFQbGF5ZXIoaW50IGZsYWdzKQogCiAjaWYgVVNFKFBMQVRGT1JNX1RFWFRfVFJBQ0tf
TUVOVSkKICAgICBpZiAocGxhdGZvcm1UZXh0VHJhY2tNZW51KCkpIHsKLSAgICAgICAgbV9wbGF0
Zm9ybU1lbnUtPnNldENsaWVudCgwKTsKLSAgICAgICAgbV9wbGF0Zm9ybU1lbnUgPSAwOworICAg
ICAgICBtX3BsYXRmb3JtTWVudS0+c2V0Q2xpZW50KG51bGxwdHIpOworICAgICAgICBtX3BsYXRm
b3JtTWVudSA9IG51bGxwdHI7CiAgICAgfQogI2VuZGlmCiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9X
ZWJDb3JlL2h0bWwvSFRNTFBsdWdJbkVsZW1lbnQuY3BwIGIvU291cmNlL1dlYkNvcmUvaHRtbC9I
VE1MUGx1Z0luRWxlbWVudC5jcHAKaW5kZXggMjIwNDZlYTg0MzU1NmM0ODBmMTNiNzk1NjMyZTc5
M2NmYTc0M2E5OS4uZDc4NmRmNGZlODcxMDNmNTIwMTNhYjdkNzc5OTcxMDQ1ZGEyYzk2MSAxMDA2
NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvaHRtbC9IVE1MUGx1Z0luRWxlbWVudC5jcHAKKysrIGIv
U291cmNlL1dlYkNvcmUvaHRtbC9IVE1MUGx1Z0luRWxlbWVudC5jcHAKQEAgLTEwNCw3ICsxMDQs
NyBAQCBib29sIEhUTUxQbHVnSW5FbGVtZW50Ojp3aWxsUmVzcG9uZFRvTW91c2VDbGlja0V2ZW50
cygpCiAKIHZvaWQgSFRNTFBsdWdJbkVsZW1lbnQ6OndpbGxEZXRhY2hSZW5kZXJlcnMoKQogewot
ICAgIG1faW5zdGFuY2UuY2xlYXIoKTsKKyAgICBtX2luc3RhbmNlID0gbnVsbHB0cjsKIAogICAg
IGlmIChtX2lzQ2FwdHVyaW5nTW91c2VFdmVudHMpIHsKICAgICAgICAgaWYgKEZyYW1lKiBmcmFt
ZSA9IGRvY3VtZW50KCkuZnJhbWUoKSkKQEAgLTEyMiw3ICsxMjIsNyBAQCB2b2lkIEhUTUxQbHVn
SW5FbGVtZW50Ojp3aWxsRGV0YWNoUmVuZGVyZXJzKCkKIAogdm9pZCBIVE1MUGx1Z0luRWxlbWVu
dDo6cmVzZXRJbnN0YW5jZSgpCiB7Ci0gICAgbV9pbnN0YW5jZS5jbGVhcigpOworICAgIG1faW5z
dGFuY2UgPSBudWxscHRyOwogfQogCiBQYXNzUmVmUHRyPEpTQzo6QmluZGluZ3M6Okluc3RhbmNl
PiBIVE1MUGx1Z0luRWxlbWVudDo6Z2V0SW5zdGFuY2UoKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dl
YkNvcmUvaHRtbC9IVE1MVGFibGVFbGVtZW50LmNwcCBiL1NvdXJjZS9XZWJDb3JlL2h0bWwvSFRN
TFRhYmxlRWxlbWVudC5jcHAKaW5kZXggNGZiNjU2OWFlMjFlOTU3MzYzNzAwMjM2MGNhMzNmOWI1
MTcyYzU1ZC4uNzQ1NzM2MWI2ZTEyNWVhZWY5NjVhZjU0NTMzYmYzM2Y2ODQ2ZWFhNyAxMDA2NDQK
LS0tIGEvU291cmNlL1dlYkNvcmUvaHRtbC9IVE1MVGFibGVFbGVtZW50LmNwcAorKysgYi9Tb3Vy
Y2UvV2ViQ29yZS9odG1sL0hUTUxUYWJsZUVsZW1lbnQuY3BwCkBAIC00MDIsNyArNDAyLDcgQEAg
dm9pZCBIVE1MVGFibGVFbGVtZW50OjpwYXJzZUF0dHJpYnV0ZShjb25zdCBRdWFsaWZpZWROYW1l
JiBuYW1lLCBjb25zdCBBdG9taWNTdHIKICAgICAgICAgSFRNTEVsZW1lbnQ6OnBhcnNlQXR0cmli
dXRlKG5hbWUsIHZhbHVlKTsKIAogICAgIGlmIChib3JkZXJzQmVmb3JlICE9IGNlbGxCb3JkZXJz
KCkgfHwgb2xkUGFkZGluZyAhPSBtX3BhZGRpbmcpIHsKLSAgICAgICAgbV9zaGFyZWRDZWxsU3R5
bGUgPSAwOworICAgICAgICBtX3NoYXJlZENlbGxTdHlsZSA9IG51bGxwdHI7CiAgICAgICAgIGJv
b2wgY2VsbENoYW5nZWQgPSBmYWxzZTsKICAgICAgICAgZm9yIChOb2RlKiBjaGlsZCA9IGZpcnN0
Q2hpbGQoKTsgY2hpbGQ7IGNoaWxkID0gY2hpbGQtPm5leHRTaWJsaW5nKCkpCiAgICAgICAgICAg
ICBjZWxsQ2hhbmdlZCB8PSBzZXRUYWJsZUNlbGxzQ2hhbmdlZChjaGlsZCk7CmRpZmYgLS1naXQg
YS9Tb3VyY2UvV2ViQ29yZS9odG1sL1BsdWdpbkRvY3VtZW50LmNwcCBiL1NvdXJjZS9XZWJDb3Jl
L2h0bWwvUGx1Z2luRG9jdW1lbnQuY3BwCmluZGV4IDc3OTZjMjdiM2RjMTg3MmNiNjExYjc4NjUx
ZDQyMjVlYTIzNjM0OTguLmU5Njc3MDkwZjRjMzg1M2E3Y2ZmMjA4YjIzYzMxZGM5ZDI1NDQ4MjEg
MTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2h0bWwvUGx1Z2luRG9jdW1lbnQuY3BwCisrKyBi
L1NvdXJjZS9XZWJDb3JlL2h0bWwvUGx1Z2luRG9jdW1lbnQuY3BwCkBAIC0xNjgsOCArMTY4LDgg
QEAgdm9pZCBQbHVnaW5Eb2N1bWVudDo6c2V0UGx1Z2luRWxlbWVudChQYXNzUmVmUHRyPEhUTUxQ
bHVnSW5FbGVtZW50PiBlbGVtZW50KQogdm9pZCBQbHVnaW5Eb2N1bWVudDo6ZGV0YWNoRnJvbVBs
dWdpbkVsZW1lbnQoKQogewogICAgIC8vIFJlbGVhc2UgdGhlIHBsdWdpbiBFbGVtZW50IHNvIHRo
YXQgd2UgZG9uJ3QgaGF2ZSBhIGNpcmN1bGFyIHJlZmVyZW5jZS4KLSAgICBtX3BsdWdpbkVsZW1l
bnQgPSAwOwotICAgIGZyYW1lKCktPmxvYWRlcigpLmNsaWVudCgpLnJlZGlyZWN0RGF0YVRvUGx1
Z2luKDApOworICAgIG1fcGx1Z2luRWxlbWVudCA9IG51bGxwdHI7CisgICAgZnJhbWUoKS0+bG9h
ZGVyKCkuY2xpZW50KCkucmVkaXJlY3REYXRhVG9QbHVnaW4obnVsbHB0cik7CiB9CiAKIHZvaWQg
UGx1Z2luRG9jdW1lbnQ6OmNhbmNlbE1hbnVhbFBsdWdpbkxvYWQoKQpkaWZmIC0tZ2l0IGEvU291
cmNlL1dlYkNvcmUvaHRtbC9UZXh0RmllbGRJbnB1dFR5cGUuY3BwIGIvU291cmNlL1dlYkNvcmUv
aHRtbC9UZXh0RmllbGRJbnB1dFR5cGUuY3BwCmluZGV4IDRiMjhhYThkYTJkMWE1NWRkOWVhNDIw
ZTQxNDJlMTRlNzMxYjc5YzUuLmVhZTNkYjI5ZWVlM2MyZGU5NWZlNzE4MGM1NDZmZjhlN2UyYTc2
N2UgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2h0bWwvVGV4dEZpZWxkSW5wdXRUeXBlLmNw
cAorKysgYi9Tb3VyY2UvV2ViQ29yZS9odG1sL1RleHRGaWVsZElucHV0VHlwZS5jcHAKQEAgLTQ2
Miw3ICs0NjIsNyBAQCB2b2lkIFRleHRGaWVsZElucHV0VHlwZTo6dXBkYXRlUGxhY2Vob2xkZXJU
ZXh0KCkKICAgICBpZiAocGxhY2Vob2xkZXJUZXh0LmlzRW1wdHkoKSkgewogICAgICAgICBpZiAo
bV9wbGFjZWhvbGRlcikgewogICAgICAgICAgICAgbV9wbGFjZWhvbGRlci0+cGFyZW50Tm9kZSgp
LT5yZW1vdmVDaGlsZChtX3BsYWNlaG9sZGVyLmdldCgpLCBBU1NFUlRfTk9fRVhDRVBUSU9OKTsK
LSAgICAgICAgICAgIG1fcGxhY2Vob2xkZXIuY2xlYXIoKTsKKyAgICAgICAgICAgIG1fcGxhY2Vo
b2xkZXIgPSBudWxscHRyOwogICAgICAgICB9CiAgICAgICAgIHJldHVybjsKICAgICB9CmRpZmYg
LS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9odG1sL1ZhbGlkYXRpb25NZXNzYWdlLmNwcCBiL1NvdXJj
ZS9XZWJDb3JlL2h0bWwvVmFsaWRhdGlvbk1lc3NhZ2UuY3BwCmluZGV4IDUzYjY3NWJjMmI0OTQ2
NzRlN2JmYzViYTM5YjY5YjY2Zjg5NWYwYjguLmY2MWUxYjVlZmUyNzA5MzFkYWIwZWMyZWVkZjBm
MzRiZDc3ODJiOTYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2h0bWwvVmFsaWRhdGlvbk1l
c3NhZ2UuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2h0bWwvVmFsaWRhdGlvbk1lc3NhZ2UuY3Bw
CkBAIC0yMzUsMTAgKzIzNSwxMCBAQCB2b2lkIFZhbGlkYXRpb25NZXNzYWdlOjpkZWxldGVCdWJi
bGVUcmVlKCkKIHsKICAgICBBU1NFUlQoIXZhbGlkYXRpb25NZXNzYWdlQ2xpZW50KCkpOwogICAg
IGlmIChtX2J1YmJsZSkgewotICAgICAgICBtX21lc3NhZ2VIZWFkaW5nID0gMDsKLSAgICAgICAg
bV9tZXNzYWdlQm9keSA9IDA7CisgICAgICAgIG1fbWVzc2FnZUhlYWRpbmcgPSBudWxscHRyOwor
ICAgICAgICBtX21lc3NhZ2VCb2R5ID0gbnVsbHB0cjsKICAgICAgICAgbV9lbGVtZW50LT51c2Vy
QWdlbnRTaGFkb3dSb290KCktPnJlbW92ZUNoaWxkKG1fYnViYmxlLmdldCgpLCBBU1NFUlRfTk9f
RVhDRVBUSU9OKTsKLSAgICAgICAgbV9idWJibGUgPSAwOworICAgICAgICBtX2J1YmJsZSA9IG51
bGxwdHI7CiAgICAgfQogICAgIG1fbWVzc2FnZSA9IFN0cmluZygpOwogfQpkaWZmIC0tZ2l0IGEv
U291cmNlL1dlYkNvcmUvaHRtbC9jYW52YXMvV2ViR0xQcm9ncmFtLmNwcCBiL1NvdXJjZS9XZWJD
b3JlL2h0bWwvY2FudmFzL1dlYkdMUHJvZ3JhbS5jcHAKaW5kZXggOTJjMDUxMTkwMWQzMDZjMzg1
MzlkNTUzMzk4ZjE1MDJiM2YwYWRhYy4uMWI3NTJlNmUwZmRiNGJhNjNjOTNiYzJlNzUzMDYyNTY1
YzJkNGNkNyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvaHRtbC9jYW52YXMvV2ViR0xQcm9n
cmFtLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9odG1sL2NhbnZhcy9XZWJHTFByb2dyYW0uY3Bw
CkBAIC01OCwxMSArNTgsMTEgQEAgdm9pZCBXZWJHTFByb2dyYW06OmRlbGV0ZU9iamVjdEltcGwo
R3JhcGhpY3NDb250ZXh0M0QqIGNvbnRleHQzZCwgUGxhdGZvcm0zRE9iamUKICAgICBjb250ZXh0
M2QtPmRlbGV0ZVByb2dyYW0ob2JqKTsKICAgICBpZiAobV92ZXJ0ZXhTaGFkZXIpIHsKICAgICAg
ICAgbV92ZXJ0ZXhTaGFkZXItPm9uRGV0YWNoZWQoY29udGV4dDNkKTsKLSAgICAgICAgbV92ZXJ0
ZXhTaGFkZXIgPSAwOworICAgICAgICBtX3ZlcnRleFNoYWRlciA9IG51bGxwdHI7CiAgICAgfQog
ICAgIGlmIChtX2ZyYWdtZW50U2hhZGVyKSB7CiAgICAgICAgIG1fZnJhZ21lbnRTaGFkZXItPm9u
RGV0YWNoZWQoY29udGV4dDNkKTsKLSAgICAgICAgbV9mcmFnbWVudFNoYWRlciA9IDA7CisgICAg
ICAgIG1fZnJhZ21lbnRTaGFkZXIgPSBudWxscHRyOwogICAgIH0KIH0KIApAQCAtMTQ4LDEyICsx
NDgsMTIgQEAgYm9vbCBXZWJHTFByb2dyYW06OmRldGFjaFNoYWRlcihXZWJHTFNoYWRlciogc2hh
ZGVyKQogICAgIGNhc2UgR3JhcGhpY3NDb250ZXh0M0Q6OlZFUlRFWF9TSEFERVI6CiAgICAgICAg
IGlmIChtX3ZlcnRleFNoYWRlciAhPSBzaGFkZXIpCiAgICAgICAgICAgICByZXR1cm4gZmFsc2U7
Ci0gICAgICAgIG1fdmVydGV4U2hhZGVyID0gMDsKKyAgICAgICAgbV92ZXJ0ZXhTaGFkZXIgPSBu
dWxscHRyOwogICAgICAgICByZXR1cm4gdHJ1ZTsKICAgICBjYXNlIEdyYXBoaWNzQ29udGV4dDNE
OjpGUkFHTUVOVF9TSEFERVI6CiAgICAgICAgIGlmIChtX2ZyYWdtZW50U2hhZGVyICE9IHNoYWRl
cikKICAgICAgICAgICAgIHJldHVybiBmYWxzZTsKLSAgICAgICAgbV9mcmFnbWVudFNoYWRlciA9
IDA7CisgICAgICAgIG1fZnJhZ21lbnRTaGFkZXIgPSBudWxscHRyOwogICAgICAgICByZXR1cm4g
dHJ1ZTsKICAgICBkZWZhdWx0OgogICAgICAgICByZXR1cm4gZmFsc2U7CmRpZmYgLS1naXQgYS9T
b3VyY2UvV2ViQ29yZS9odG1sL2NhbnZhcy9XZWJHTFJlbmRlcmluZ0NvbnRleHRCYXNlLmNwcCBi
L1NvdXJjZS9XZWJDb3JlL2h0bWwvY2FudmFzL1dlYkdMUmVuZGVyaW5nQ29udGV4dEJhc2UuY3Bw
CmluZGV4IGI2NmI2NjkwNGIxNGZmZGUyZjMzOWFkNmRhMjc2ZjZkNzZjMWI0YTMuLjdhMWNmZjNm
MjgzYTg4ODZjMTcyM2FhMDNmZGY5NzE5MWNlZGZlNTggMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJD
b3JlL2h0bWwvY2FudmFzL1dlYkdMUmVuZGVyaW5nQ29udGV4dEJhc2UuY3BwCisrKyBiL1NvdXJj
ZS9XZWJDb3JlL2h0bWwvY2FudmFzL1dlYkdMUmVuZGVyaW5nQ29udGV4dEJhc2UuY3BwCkBAIC00
OTQsMTAgKzQ5NCwxMCBAQCB2b2lkIFdlYkdMUmVuZGVyaW5nQ29udGV4dEJhc2U6OmluaXRpYWxp
emVOZXdDb250ZXh0KCkKICAgICBtX3VucGFja0ZsaXBZID0gZmFsc2U7CiAgICAgbV91bnBhY2tQ
cmVtdWx0aXBseUFscGhhID0gZmFsc2U7CiAgICAgbV91bnBhY2tDb2xvcnNwYWNlQ29udmVyc2lv
biA9IEdyYXBoaWNzQ29udGV4dDNEOjpCUk9XU0VSX0RFRkFVTFRfV0VCR0w7Ci0gICAgbV9ib3Vu
ZEFycmF5QnVmZmVyID0gMDsKLSAgICBtX2N1cnJlbnRQcm9ncmFtID0gMDsKLSAgICBtX2ZyYW1l
YnVmZmVyQmluZGluZyA9IDA7Ci0gICAgbV9yZW5kZXJidWZmZXJCaW5kaW5nID0gMDsKKyAgICBt
X2JvdW5kQXJyYXlCdWZmZXIgPSBudWxscHRyOworICAgIG1fY3VycmVudFByb2dyYW0gPSBudWxs
cHRyOworICAgIG1fZnJhbWVidWZmZXJCaW5kaW5nID0gbnVsbHB0cjsKKyAgICBtX3JlbmRlcmJ1
ZmZlckJpbmRpbmcgPSBudWxscHRyOwogICAgIG1fZGVwdGhNYXNrID0gdHJ1ZTsKICAgICBtX3N0
ZW5jaWxFbmFibGVkID0gZmFsc2U7CiAgICAgbV9zdGVuY2lsTWFzayA9IDB4RkZGRkZGRkY7CkBA
IC02MjMsNyArNjIzLDcgQEAgdm9pZCBXZWJHTFJlbmRlcmluZ0NvbnRleHRCYXNlOjpkZXN0cm95
R3JhcGhpY3NDb250ZXh0M0QoKQogICAgIGlmIChtX2NvbnRleHQpIHsKICAgICAgICAgbV9jb250
ZXh0LT5zZXRDb250ZXh0TG9zdENhbGxiYWNrKG51bGxwdHIpOwogICAgICAgICBtX2NvbnRleHQt
PnNldEVycm9yTWVzc2FnZUNhbGxiYWNrKG51bGxwdHIpOwotICAgICAgICBtX2NvbnRleHQuY2xl
YXIoKTsKKyAgICAgICAgbV9jb250ZXh0ID0gbnVsbHB0cjsKICAgICB9CiB9CiAKQEAgLTE0Nzks
NyArMTQ3OSw3IEBAIHZvaWQgV2ViR0xSZW5kZXJpbmdDb250ZXh0QmFzZTo6ZGVsZXRlQnVmZmVy
KFdlYkdMQnVmZmVyKiBidWZmZXIpCiAgICAgaWYgKCFkZWxldGVPYmplY3QoYnVmZmVyKSkKICAg
ICAgICAgcmV0dXJuOwogICAgIGlmIChtX2JvdW5kQXJyYXlCdWZmZXIgPT0gYnVmZmVyKQotICAg
ICAgICBtX2JvdW5kQXJyYXlCdWZmZXIgPSAwOworICAgICAgICBtX2JvdW5kQXJyYXlCdWZmZXIg
PSBudWxscHRyOwogCiAgICAgbV9ib3VuZFZlcnRleEFycmF5T2JqZWN0LT51bmJpbmRCdWZmZXIo
YnVmZmVyKTsKIH0KQEAgLTE0ODksNyArMTQ4OSw3IEBAIHZvaWQgV2ViR0xSZW5kZXJpbmdDb250
ZXh0QmFzZTo6ZGVsZXRlRnJhbWVidWZmZXIoV2ViR0xGcmFtZWJ1ZmZlciogZnJhbWVidWZmZXIp
CiAgICAgaWYgKCFkZWxldGVPYmplY3QoZnJhbWVidWZmZXIpKQogICAgICAgICByZXR1cm47CiAg
ICAgaWYgKGZyYW1lYnVmZmVyID09IG1fZnJhbWVidWZmZXJCaW5kaW5nKSB7Ci0gICAgICAgIG1f
ZnJhbWVidWZmZXJCaW5kaW5nID0gMDsKKyAgICAgICAgbV9mcmFtZWJ1ZmZlckJpbmRpbmcgPSBu
dWxscHRyOwogICAgICAgICBtX2NvbnRleHQtPmJpbmRGcmFtZWJ1ZmZlcihHcmFwaGljc0NvbnRl
eHQzRDo6RlJBTUVCVUZGRVIsIDApOwogICAgIH0KIH0KQEAgLTE1MDYsNyArMTUwNiw3IEBAIHZv
aWQgV2ViR0xSZW5kZXJpbmdDb250ZXh0QmFzZTo6ZGVsZXRlUmVuZGVyYnVmZmVyKFdlYkdMUmVu
ZGVyYnVmZmVyKiByZW5kZXJidWZmCiAgICAgaWYgKCFkZWxldGVPYmplY3QocmVuZGVyYnVmZmVy
KSkKICAgICAgICAgcmV0dXJuOwogICAgIGlmIChyZW5kZXJidWZmZXIgPT0gbV9yZW5kZXJidWZm
ZXJCaW5kaW5nKQotICAgICAgICBtX3JlbmRlcmJ1ZmZlckJpbmRpbmcgPSAwOworICAgICAgICBt
X3JlbmRlcmJ1ZmZlckJpbmRpbmcgPSBudWxscHRyOwogICAgIGlmIChtX2ZyYW1lYnVmZmVyQmlu
ZGluZykKICAgICAgICAgbV9mcmFtZWJ1ZmZlckJpbmRpbmctPnJlbW92ZUF0dGFjaG1lbnRGcm9t
Qm91bmRGcmFtZWJ1ZmZlcihyZW5kZXJidWZmZXIpOwogfQpkaWZmIC0tZ2l0IGEvU291cmNlL1dl
YkNvcmUvaHRtbC9jYW52YXMvV2ViR0xWZXJ0ZXhBcnJheU9iamVjdEJhc2UuY3BwIGIvU291cmNl
L1dlYkNvcmUvaHRtbC9jYW52YXMvV2ViR0xWZXJ0ZXhBcnJheU9iamVjdEJhc2UuY3BwCmluZGV4
IGY2ZDhkYTY2ZTgwMTQ3OTc4ZjgxNzU3YzYzYmU0NmVhYzY5NTU4NDkuLmYzOWMwZGRkMjI3Nzlk
MDVmMTYwZDE5Nzk1NjMxOGE2MDBlYjkzY2MgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2h0
bWwvY2FudmFzL1dlYkdMVmVydGV4QXJyYXlPYmplY3RCYXNlLmNwcAorKysgYi9Tb3VyY2UvV2Vi
Q29yZS9odG1sL2NhbnZhcy9XZWJHTFZlcnRleEFycmF5T2JqZWN0QmFzZS5jcHAKQEAgLTc2LDcg
Kzc2LDcgQEAgdm9pZCBXZWJHTFZlcnRleEFycmF5T2JqZWN0QmFzZTo6dW5iaW5kQnVmZmVyKFBh
c3NSZWZQdHI8V2ViR0xCdWZmZXI+IGJ1ZmZlcikKIHsKICAgICBpZiAobV9ib3VuZEVsZW1lbnRB
cnJheUJ1ZmZlciA9PSBidWZmZXIpIHsKICAgICAgICAgbV9ib3VuZEVsZW1lbnRBcnJheUJ1ZmZl
ci0+b25EZXRhY2hlZChjb250ZXh0KCktPmdyYXBoaWNzQ29udGV4dDNEKCkpOwotICAgICAgICBt
X2JvdW5kRWxlbWVudEFycmF5QnVmZmVyID0gMDsKKyAgICAgICAgbV9ib3VuZEVsZW1lbnRBcnJh
eUJ1ZmZlciA9IG51bGxwdHI7CiAgICAgfQogICAgIAogICAgIGZvciAoc2l6ZV90IGkgPSAwOyBp
IDwgbV92ZXJ0ZXhBdHRyaWJTdGF0ZS5zaXplKCk7ICsraSkgewpAQCAtOTUsNyArOTUsNyBAQCB2
b2lkIFdlYkdMVmVydGV4QXJyYXlPYmplY3RCYXNlOjp1bmJpbmRCdWZmZXIoUGFzc1JlZlB0cjxX
ZWJHTEJ1ZmZlcj4gYnVmZmVyKQogICAgICAgICAgICAgICAgIHN0YXRlLm9yaWdpbmFsU3RyaWRl
ID0gMDsKICAgICAgICAgICAgICAgICBzdGF0ZS5vZmZzZXQgPSAwOwogICAgICAgICAgICAgfSBl
bHNlCi0gICAgICAgICAgICAgICAgc3RhdGUuYnVmZmVyQmluZGluZyA9IDA7CisgICAgICAgICAg
ICAgICAgc3RhdGUuYnVmZmVyQmluZGluZyA9IG51bGxwdHI7CiAgICAgICAgIH0KICAgICB9CiB9
CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9odG1sL3RyYWNrL1RleHRUcmFjay5jcHAgYi9T
b3VyY2UvV2ViQ29yZS9odG1sL3RyYWNrL1RleHRUcmFjay5jcHAKaW5kZXggNzRlY2YxNmQ3MDk3
NjZmNGFmMWY0NWRjMjA2YzJkZWM2MzM2YTZmMS4uMmExMzNhNWZjZWFmZTNjN2IzYmMxODZhZDJi
ODU3MGY2MTJlZDMxOSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvaHRtbC90cmFjay9UZXh0
VHJhY2suY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2h0bWwvdHJhY2svVGV4dFRyYWNrLmNwcApA
QCAtMjQ1LDcgKzI0NSw3IEBAIFRleHRUcmFja0N1ZUxpc3QqIFRleHRUcmFjazo6Y3VlcygpCiAg
ICAgLy8gaHR0cDovL3d3dy53aGF0d2cub3JnL3NwZWNzL3dlYi1hcHBzL2N1cnJlbnQtd29yay8j
ZG9tLXRleHR0cmFjay1jdWVzCiAgICAgaWYgKG1fbW9kZSAhPSBkaXNhYmxlZEtleXdvcmQoKSkK
ICAgICAgICAgcmV0dXJuIGVuc3VyZVRleHRUcmFja0N1ZUxpc3QoKTsKLSAgICByZXR1cm4gMDsK
KyAgICByZXR1cm4gbnVsbHB0cjsKIH0KIAogdm9pZCBUZXh0VHJhY2s6OnJlbW92ZUFsbEN1ZXMo
KQpAQCAtMjU3LDkgKzI1Nyw5IEBAIHZvaWQgVGV4dFRyYWNrOjpyZW1vdmVBbGxDdWVzKCkKICAg
ICAgICAgbV9jbGllbnQtPnRleHRUcmFja1JlbW92ZUN1ZXModGhpcywgbV9jdWVzLmdldCgpKTsK
ICAgICAKICAgICBmb3IgKHNpemVfdCBpID0gMDsgaSA8IG1fY3Vlcy0+bGVuZ3RoKCk7ICsraSkK
LSAgICAgICAgbV9jdWVzLT5pdGVtKGkpLT5zZXRUcmFjaygwKTsKKyAgICAgICAgbV9jdWVzLT5p
dGVtKGkpLT5zZXRUcmFjayhudWxscHRyKTsKICAgICAKLSAgICBtX2N1ZXMgPSAwOworICAgIG1f
Y3VlcyA9IG51bGxwdHI7CiB9CiAKIFRleHRUcmFja0N1ZUxpc3QqIFRleHRUcmFjazo6YWN0aXZl
Q3VlcygpIGNvbnN0CkBAIC0yNzIsNyArMjcyLDcgQEAgVGV4dFRyYWNrQ3VlTGlzdCogVGV4dFRy
YWNrOjphY3RpdmVDdWVzKCkgY29uc3QKICAgICAvLyBodHRwOi8vd3d3LndoYXR3Zy5vcmcvc3Bl
Y3Mvd2ViLWFwcHMvY3VycmVudC13b3JrLyNkb20tdGV4dHRyYWNrLWFjdGl2ZWN1ZXMKICAgICBp
ZiAobV9jdWVzICYmIG1fbW9kZSAhPSBkaXNhYmxlZEtleXdvcmQoKSkKICAgICAgICAgcmV0dXJu
IG1fY3Vlcy0+YWN0aXZlQ3VlcygpOwotICAgIHJldHVybiAwOworICAgIHJldHVybiBudWxscHRy
OwogfQogCiB2b2lkIFRleHRUcmFjazo6YWRkQ3VlKFBhc3NSZWZQdHI8VGV4dFRyYWNrQ3VlPiBw
cnBDdWUsIEV4Y2VwdGlvbkNvZGUmIGVjKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvaHRt
bC90cmFjay9WVFRDdWUuY3BwIGIvU291cmNlL1dlYkNvcmUvaHRtbC90cmFjay9WVFRDdWUuY3Bw
CmluZGV4IDM0YTJlZTc5NmE4ODgwMDY5MDMyODgzYzMxZWI4ZmYxNWU3NDdiZDMuLjBiOWM3MTc5
MzBiZjA2N2I1ZWEyM2U1MTQzMWY5ZmNlYTk3ZDZiYjUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJD
b3JlL2h0bWwvdHJhY2svVlRUQ3VlLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9odG1sL3RyYWNr
L1ZUVEN1ZS5jcHAKQEAgLTQ4Miw3ICs0ODIsNyBAQCB2b2lkIFZUVEN1ZTo6c2V0VGV4dChjb25z
dCBTdHJpbmcmIHRleHQpCiAgICAgd2lsbENoYW5nZSgpOwogICAgIC8vIENsZWFyIHRoZSBkb2N1
bWVudCBmcmFnbWVudCBidXQgZG9uJ3QgYm90aGVyIHRvIGNyZWF0ZSBpdCBhZ2FpbiBqdXN0IHll
dCBhcyB3ZSBjYW4gZG8gdGhhdAogICAgIC8vIHdoZW4gaXQgaXMgcmVxdWVzdGVkLgotICAgIG1f
d2ViVlRUTm9kZVRyZWUgPSAwOworICAgIG1fd2ViVlRUTm9kZVRyZWUgPSBudWxscHRyOwogICAg
IG1fY29udGVudCA9IHRleHQ7CiAgICAgZGlkQ2hhbmdlKCk7CiB9CmRpZmYgLS1naXQgYS9Tb3Vy
Y2UvV2ViQ29yZS9pbnNwZWN0b3IvSW5zcGVjdG9yQXBwbGljYXRpb25DYWNoZUFnZW50LmNwcCBi
L1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9JbnNwZWN0b3JBcHBsaWNhdGlvbkNhY2hlQWdlbnQu
Y3BwCmluZGV4IGZkNGNhZjYyMTQxMTlhODQ0N2MwMjk0NTc0MDRmMWY1MmJjOGUzN2EuLjJkY2Qy
NmU5OWJmM2EwN2E2NzYwOGFhZTEyZDU3NDQzOTA1YTYyNjUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9X
ZWJDb3JlL2luc3BlY3Rvci9JbnNwZWN0b3JBcHBsaWNhdGlvbkNhY2hlQWdlbnQuY3BwCisrKyBi
L1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9JbnNwZWN0b3JBcHBsaWNhdGlvbkNhY2hlQWdlbnQu
Y3BwCkBAIC01OCw3ICs1OCw3IEBAIHZvaWQgSW5zcGVjdG9yQXBwbGljYXRpb25DYWNoZUFnZW50
OjpkaWRDcmVhdGVGcm9udGVuZEFuZEJhY2tlbmQoRnJvbnRlbmRDaGFubmVsCiB2b2lkIEluc3Bl
Y3RvckFwcGxpY2F0aW9uQ2FjaGVBZ2VudDo6d2lsbERlc3Ryb3lGcm9udGVuZEFuZEJhY2tlbmQo
SW5zcGVjdG9yOjpEaXNjb25uZWN0UmVhc29uKQogewogICAgIG1fZnJvbnRlbmREaXNwYXRjaGVy
ID0gbnVsbHB0cjsKLSAgICBtX2JhY2tlbmREaXNwYXRjaGVyLmNsZWFyKCk7CisgICAgbV9iYWNr
ZW5kRGlzcGF0Y2hlciA9IG51bGxwdHI7CiAKICAgICBtX2luc3RydW1lbnRpbmdBZ2VudHMtPnNl
dEluc3BlY3RvckFwcGxpY2F0aW9uQ2FjaGVBZ2VudChudWxscHRyKTsKIH0KZGlmZiAtLWdpdCBh
L1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9JbnNwZWN0b3JDU1NBZ2VudC5jcHAgYi9Tb3VyY2Uv
V2ViQ29yZS9pbnNwZWN0b3IvSW5zcGVjdG9yQ1NTQWdlbnQuY3BwCmluZGV4IGE5MDgzZDA4MTQy
N2I5YzAxOTE4OWU2YzQ5YjgxNDYyZWYzNjM1OWUuLjNkMDYyMDgzNGViMjhjZGZkMDZiNThjZDY2
MjZiYTNjMTQ4ZTcxOTEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9JbnNw
ZWN0b3JDU1NBZ2VudC5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL0luc3BlY3Rv
ckNTU0FnZW50LmNwcApAQCAtMzYwLDcgKzM2MCw3IEBAIHZvaWQgSW5zcGVjdG9yQ1NTQWdlbnQ6
OmRpZENyZWF0ZUZyb250ZW5kQW5kQmFja2VuZChJbnNwZWN0b3I6OkZyb250ZW5kQ2hhbm5lbCoK
IHZvaWQgSW5zcGVjdG9yQ1NTQWdlbnQ6OndpbGxEZXN0cm95RnJvbnRlbmRBbmRCYWNrZW5kKElu
c3BlY3Rvcjo6RGlzY29ubmVjdFJlYXNvbikKIHsKICAgICBtX2Zyb250ZW5kRGlzcGF0Y2hlciA9
IG51bGxwdHI7Ci0gICAgbV9iYWNrZW5kRGlzcGF0Y2hlci5jbGVhcigpOworICAgIG1fYmFja2Vu
ZERpc3BhdGNoZXIgPSBudWxscHRyOwogCiAgICAgcmVzZXROb25QZXJzaXN0ZW50RGF0YSgpOwog
fQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL0luc3BlY3RvckNvbnRyb2xs
ZXIuY3BwIGIvU291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL0luc3BlY3RvckNvbnRyb2xsZXIuY3Bw
CmluZGV4IGYyM2E1ZWEwZWU1NmQwNWUxNDQ1MTA2YTcyNWFjMWM5NmE0NjhlOTkuLmJjODBiY2Ey
OWM5NTE0Nzc3ZGEwNGRjMWNhZTFiNzUxY2Y5ZmY4YWYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJD
b3JlL2luc3BlY3Rvci9JbnNwZWN0b3JDb250cm9sbGVyLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29y
ZS9pbnNwZWN0b3IvSW5zcGVjdG9yQ29udHJvbGxlci5jcHAKQEAgLTI2Myw3ICsyNjMsNyBAQCB2
b2lkIEluc3BlY3RvckNvbnRyb2xsZXI6OmRpc2Nvbm5lY3RGcm9udGVuZChEaXNjb25uZWN0UmVh
c29uIHJlYXNvbikKICAgICBtX2FnZW50cy53aWxsRGVzdHJveUZyb250ZW5kQW5kQmFja2VuZChy
ZWFzb24pOwogCiAgICAgbV9iYWNrZW5kRGlzcGF0Y2hlci0+Y2xlYXJGcm9udGVuZCgpOwotICAg
IG1fYmFja2VuZERpc3BhdGNoZXIuY2xlYXIoKTsKKyAgICBtX2JhY2tlbmREaXNwYXRjaGVyID0g
bnVsbHB0cjsKICAgICBtX2Zyb250ZW5kQ2hhbm5lbCA9IG51bGxwdHI7CiAKICAgICBtX2lzQXV0
b21hdGljSW5zcGVjdGlvbiA9IGZhbHNlOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvaW5z
cGVjdG9yL0luc3BlY3RvckRPTUFnZW50LmNwcCBiL1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9J
bnNwZWN0b3JET01BZ2VudC5jcHAKaW5kZXggMGVkMmM1YzA0ZmFhM2IxY2M4YmIwNWQ0OWFkOTZh
NmQxOTcxMmNhMS4uNzE5Zjc2MWRlNTZkOTA5MTU0YWYxNjIxNjBlMDJhMTQ2Y2E2MjYyZCAxMDA2
NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL0luc3BlY3RvckRPTUFnZW50LmNwcAor
KysgYi9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvSW5zcGVjdG9yRE9NQWdlbnQuY3BwCkBAIC0y
MzgsNyArMjM4LDcgQEAgdm9pZCBJbnNwZWN0b3JET01BZ2VudDo6ZGlkQ3JlYXRlRnJvbnRlbmRB
bmRCYWNrZW5kKEluc3BlY3Rvcjo6RnJvbnRlbmRDaGFubmVsKgogdm9pZCBJbnNwZWN0b3JET01B
Z2VudDo6d2lsbERlc3Ryb3lGcm9udGVuZEFuZEJhY2tlbmQoSW5zcGVjdG9yOjpEaXNjb25uZWN0
UmVhc29uKQogewogICAgIG1fZnJvbnRlbmREaXNwYXRjaGVyID0gbnVsbHB0cjsKLSAgICBtX2Jh
Y2tlbmREaXNwYXRjaGVyLmNsZWFyKCk7CisgICAgbV9iYWNrZW5kRGlzcGF0Y2hlciA9IG51bGxw
dHI7CiAKICAgICBtX2hpc3RvcnkucmVzZXQoKTsKICAgICBtX2RvbUVkaXRvci5yZXNldCgpOwpA
QCAtMjcyLDcgKzI3Miw3IEBAIHZvaWQgSW5zcGVjdG9yRE9NQWdlbnQ6OnJlc2V0KCkKICAgICBk
aXNjYXJkQmluZGluZ3MoKTsKICAgICBpZiAobV9yZXZhbGlkYXRlU3R5bGVBdHRyVGFzaykKICAg
ICAgICAgbV9yZXZhbGlkYXRlU3R5bGVBdHRyVGFzay0+cmVzZXQoKTsKLSAgICBtX2RvY3VtZW50
ID0gMDsKKyAgICBtX2RvY3VtZW50ID0gbnVsbHB0cjsKIH0KIAogdm9pZCBJbnNwZWN0b3JET01B
Z2VudDo6c2V0RE9NTGlzdGVuZXIoRE9NTGlzdGVuZXIqIGxpc3RlbmVyKQpkaWZmIC0tZ2l0IGEv
U291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL0luc3BlY3RvckRPTURlYnVnZ2VyQWdlbnQuY3BwIGIv
U291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL0luc3BlY3RvckRPTURlYnVnZ2VyQWdlbnQuY3BwCmlu
ZGV4IGY3NzhkZDk2MmNiMmRkYzE2MDYzMTc0NmE5OTViZGRhMGE5YjI3OGIuLmQ1MWQ0YmVhZTkx
MjIzNTA3YjZjNDQ2Nzc5NDRjYjI3YmEzNmM0NjQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3Jl
L2luc3BlY3Rvci9JbnNwZWN0b3JET01EZWJ1Z2dlckFnZW50LmNwcAorKysgYi9Tb3VyY2UvV2Vi
Q29yZS9pbnNwZWN0b3IvSW5zcGVjdG9yRE9NRGVidWdnZXJBZ2VudC5jcHAKQEAgLTEwOSw3ICsx
MDksNyBAQCB2b2lkIEluc3BlY3RvckRPTURlYnVnZ2VyQWdlbnQ6OmRpZENyZWF0ZUZyb250ZW5k
QW5kQmFja2VuZChJbnNwZWN0b3I6OkZyb250ZW5kQwogCiB2b2lkIEluc3BlY3RvckRPTURlYnVn
Z2VyQWdlbnQ6OndpbGxEZXN0cm95RnJvbnRlbmRBbmRCYWNrZW5kKEluc3BlY3Rvcjo6RGlzY29u
bmVjdFJlYXNvbikKIHsKLSAgICBtX2JhY2tlbmREaXNwYXRjaGVyLmNsZWFyKCk7CisgICAgbV9i
YWNrZW5kRGlzcGF0Y2hlciA9IG51bGxwdHI7CiAKICAgICBkaXNhYmxlKCk7CiB9CmRpZmYgLS1n
aXQgYS9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvSW5zcGVjdG9yRE9NU3RvcmFnZUFnZW50LmNw
cCBiL1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9JbnNwZWN0b3JET01TdG9yYWdlQWdlbnQuY3Bw
CmluZGV4IGIxNjg3Y2Y1NDg1M2Y2MjJmNTJhNjc2OGM5MmNjZjQyNThlN2E1ZjEuLjA0YWY4OGJj
ZTNkYzAwNTE0ODViM2UyYTUwZDk3MTYwMTdjMmY2OWYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJD
b3JlL2luc3BlY3Rvci9JbnNwZWN0b3JET01TdG9yYWdlQWdlbnQuY3BwCisrKyBiL1NvdXJjZS9X
ZWJDb3JlL2luc3BlY3Rvci9JbnNwZWN0b3JET01TdG9yYWdlQWdlbnQuY3BwCkBAIC03Niw3ICs3
Niw3IEBAIHZvaWQgSW5zcGVjdG9yRE9NU3RvcmFnZUFnZW50OjpkaWRDcmVhdGVGcm9udGVuZEFu
ZEJhY2tlbmQoSW5zcGVjdG9yOjpGcm9udGVuZENoCiB2b2lkIEluc3BlY3RvckRPTVN0b3JhZ2VB
Z2VudDo6d2lsbERlc3Ryb3lGcm9udGVuZEFuZEJhY2tlbmQoSW5zcGVjdG9yOjpEaXNjb25uZWN0
UmVhc29uKQogewogICAgIG1fZnJvbnRlbmREaXNwYXRjaGVyID0gbnVsbHB0cjsKLSAgICBtX2Jh
Y2tlbmREaXNwYXRjaGVyLmNsZWFyKCk7CisgICAgbV9iYWNrZW5kRGlzcGF0Y2hlciA9IG51bGxw
dHI7CiAKICAgICBFcnJvclN0cmluZyB1bnVzZWQ7CiAgICAgZGlzYWJsZSh1bnVzZWQpOwpkaWZm
IC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL0luc3BlY3RvckRhdGFiYXNlQWdlbnQu
Y3BwIGIvU291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL0luc3BlY3RvckRhdGFiYXNlQWdlbnQuY3Bw
CmluZGV4IDkxMzRkZmU0N2M3OWM2YzZlZjQ0MTM0NDUyMGI3MDQ2ZTFkNWRjMTMuLmJlMjdmOTU2
MTQ0NTlmYmZmZDFiMDJkNDg1Y2YxZDc3ZGVkOTY2ZWQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJD
b3JlL2luc3BlY3Rvci9JbnNwZWN0b3JEYXRhYmFzZUFnZW50LmNwcAorKysgYi9Tb3VyY2UvV2Vi
Q29yZS9pbnNwZWN0b3IvSW5zcGVjdG9yRGF0YWJhc2VBZ2VudC5jcHAKQEAgLTIzMSw3ICsyMzEs
NyBAQCB2b2lkIEluc3BlY3RvckRhdGFiYXNlQWdlbnQ6OmRpZENyZWF0ZUZyb250ZW5kQW5kQmFj
a2VuZChJbnNwZWN0b3I6OkZyb250ZW5kQ2hhbgogdm9pZCBJbnNwZWN0b3JEYXRhYmFzZUFnZW50
Ojp3aWxsRGVzdHJveUZyb250ZW5kQW5kQmFja2VuZChJbnNwZWN0b3I6OkRpc2Nvbm5lY3RSZWFz
b24pCiB7CiAgICAgbV9mcm9udGVuZERpc3BhdGNoZXIgPSBudWxscHRyOwotICAgIG1fYmFja2Vu
ZERpc3BhdGNoZXIuY2xlYXIoKTsKKyAgICBtX2JhY2tlbmREaXNwYXRjaGVyID0gbnVsbHB0cjsK
IAogICAgIEVycm9yU3RyaW5nIHVudXNlZDsKICAgICBkaXNhYmxlKHVudXNlZCk7CmRpZmYgLS1n
aXQgYS9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvSW5zcGVjdG9ySW5kZXhlZERCQWdlbnQuY3Bw
IGIvU291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL0luc3BlY3RvckluZGV4ZWREQkFnZW50LmNwcApp
bmRleCA5YmYxMjkxMTZjNGRjODBhMDg2MzFjMDRkNzA3YjE4M2FiOGJjYWNmLi4xNzJmYjU4MTI4
MDIwYTNhZTU1ZDY1ZDRmMDhmNTdhZTE2YTBlY2Y3IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29y
ZS9pbnNwZWN0b3IvSW5zcGVjdG9ySW5kZXhlZERCQWdlbnQuY3BwCisrKyBiL1NvdXJjZS9XZWJD
b3JlL2luc3BlY3Rvci9JbnNwZWN0b3JJbmRleGVkREJBZ2VudC5jcHAKQEAgLTU4Miw3ICs1ODIs
NyBAQCB2b2lkIEluc3BlY3RvckluZGV4ZWREQkFnZW50OjpkaWRDcmVhdGVGcm9udGVuZEFuZEJh
Y2tlbmQoSW5zcGVjdG9yOjpGcm9udGVuZENoYQogCiB2b2lkIEluc3BlY3RvckluZGV4ZWREQkFn
ZW50Ojp3aWxsRGVzdHJveUZyb250ZW5kQW5kQmFja2VuZChJbnNwZWN0b3I6OkRpc2Nvbm5lY3RS
ZWFzb24pCiB7Ci0gICAgbV9iYWNrZW5kRGlzcGF0Y2hlci5jbGVhcigpOworICAgIG1fYmFja2Vu
ZERpc3BhdGNoZXIgPSBudWxscHRyOwogCiAgICAgRXJyb3JTdHJpbmcgdW51c2VkOwogICAgIGRp
c2FibGUodW51c2VkKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9JbnNw
ZWN0b3JMYXllclRyZWVBZ2VudC5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvSW5zcGVj
dG9yTGF5ZXJUcmVlQWdlbnQuY3BwCmluZGV4IGJlNjQ0OTZlNDYzOGQwMGMzZWMyODkwODY1NmFl
Njc3YTczODk3NTguLmY2ZTQxZmFjODI4YWM2YzRmNzc2MDY1YWRmN2EzZGJmOGQ3OGJlMDQgMTAw
NjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9JbnNwZWN0b3JMYXllclRyZWVBZ2Vu
dC5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL0luc3BlY3RvckxheWVyVHJlZUFn
ZW50LmNwcApAQCAtNjUsNyArNjUsNyBAQCB2b2lkIEluc3BlY3RvckxheWVyVHJlZUFnZW50Ojpk
aWRDcmVhdGVGcm9udGVuZEFuZEJhY2tlbmQoSW5zcGVjdG9yOjpGcm9udGVuZENoYQogdm9pZCBJ
bnNwZWN0b3JMYXllclRyZWVBZ2VudDo6d2lsbERlc3Ryb3lGcm9udGVuZEFuZEJhY2tlbmQoSW5z
cGVjdG9yOjpEaXNjb25uZWN0UmVhc29uKQogewogICAgIG1fZnJvbnRlbmREaXNwYXRjaGVyID0g
bnVsbHB0cjsKLSAgICBtX2JhY2tlbmREaXNwYXRjaGVyLmNsZWFyKCk7CisgICAgbV9iYWNrZW5k
RGlzcGF0Y2hlciA9IG51bGxwdHI7CiAKICAgICBFcnJvclN0cmluZyB1bnVzZWQ7CiAgICAgZGlz
YWJsZSh1bnVzZWQpOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL0luc3Bl
Y3Rvck92ZXJsYXkuY3BwIGIvU291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL0luc3BlY3Rvck92ZXJs
YXkuY3BwCmluZGV4IDZkM2EwZjNjYTcyNjVhMWFmZjhjMzI4YTVmM2Y2Yjc5YzMzMWQ4ZDQuLmZh
ZWE3Y2VmMmM2MzJlZTUxMDJjZGYyYjY1NDQ5N2FiODA3YmUxNzcgMTAwNjQ0Ci0tLSBhL1NvdXJj
ZS9XZWJDb3JlL2luc3BlY3Rvci9JbnNwZWN0b3JPdmVybGF5LmNwcAorKysgYi9Tb3VyY2UvV2Vi
Q29yZS9pbnNwZWN0b3IvSW5zcGVjdG9yT3ZlcmxheS5jcHAKQEAgLTI0Myw5ICsyNDMsOSBAQCB2
b2lkIEluc3BlY3Rvck92ZXJsYXk6OnNldFBhdXNlZEluRGVidWdnZXJNZXNzYWdlKGNvbnN0IFN0
cmluZyogbWVzc2FnZSkKIAogdm9pZCBJbnNwZWN0b3JPdmVybGF5OjpoaWRlSGlnaGxpZ2h0KCkK
IHsKLSAgICBtX2hpZ2hsaWdodE5vZGUuY2xlYXIoKTsKLSAgICBtX2hpZ2hsaWdodE5vZGVMaXN0
LmNsZWFyKCk7Ci0gICAgbV9oaWdobGlnaHRRdWFkLnJlc2V0KCk7CisgICAgbV9oaWdobGlnaHRO
b2RlID0gbnVsbHB0cjsKKyAgICBtX2hpZ2hsaWdodE5vZGVMaXN0ID0gbnVsbHB0cjsKKyAgICBt
X2hpZ2hsaWdodFF1YWQgPSBudWxscHRyOwogICAgIHVwZGF0ZSgpOwogfQogCkBAIC0yNTMsNyAr
MjUzLDcgQEAgdm9pZCBJbnNwZWN0b3JPdmVybGF5OjpoaWdobGlnaHROb2RlTGlzdChQYXNzUmVm
UHRyPE5vZGVMaXN0PiBub2RlcywgY29uc3QgSGlnaGwKIHsKICAgICBtX25vZGVIaWdobGlnaHRD
b25maWcgPSBoaWdobGlnaHRDb25maWc7CiAgICAgbV9oaWdobGlnaHROb2RlTGlzdCA9IG5vZGVz
OwotICAgIG1faGlnaGxpZ2h0Tm9kZS5jbGVhcigpOworICAgIG1faGlnaGxpZ2h0Tm9kZSA9IG51
bGxwdHI7CiAgICAgdXBkYXRlKCk7CiB9CiAKQEAgLTI2MSw3ICsyNjEsNyBAQCB2b2lkIEluc3Bl
Y3Rvck92ZXJsYXk6OmhpZ2hsaWdodE5vZGUoTm9kZSogbm9kZSwgY29uc3QgSGlnaGxpZ2h0Q29u
ZmlnJiBoaWdobGlnaAogewogICAgIG1fbm9kZUhpZ2hsaWdodENvbmZpZyA9IGhpZ2hsaWdodENv
bmZpZzsKICAgICBtX2hpZ2hsaWdodE5vZGUgPSBub2RlOwotICAgIG1faGlnaGxpZ2h0Tm9kZUxp
c3QuY2xlYXIoKTsKKyAgICBtX2hpZ2hsaWdodE5vZGVMaXN0ID0gbnVsbHB0cjsKICAgICB1cGRh
dGUoKTsKIH0KIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL0luc3BlY3Rv
clBhZ2VBZ2VudC5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvSW5zcGVjdG9yUGFnZUFn
ZW50LmNwcAppbmRleCA2ZjUyYmZhZTBiNTIzYzk2ZjE0ZTU3NDE3MjI2OTVhMTc1NTFjYThhLi4z
ZTlmZWJlZmI1NGZlNDQ4YWM4ODA3NmQ5OTZmOWE4YWQwN2E1YjlhIDEwMDY0NAotLS0gYS9Tb3Vy
Y2UvV2ViQ29yZS9pbnNwZWN0b3IvSW5zcGVjdG9yUGFnZUFnZW50LmNwcAorKysgYi9Tb3VyY2Uv
V2ViQ29yZS9pbnNwZWN0b3IvSW5zcGVjdG9yUGFnZUFnZW50LmNwcApAQCAtMzQ4LDcgKzM0OCw3
IEBAIHZvaWQgSW5zcGVjdG9yUGFnZUFnZW50OjpkaWRDcmVhdGVGcm9udGVuZEFuZEJhY2tlbmQo
SW5zcGVjdG9yOjpGcm9udGVuZENoYW5uZWwqCiB2b2lkIEluc3BlY3RvclBhZ2VBZ2VudDo6d2ls
bERlc3Ryb3lGcm9udGVuZEFuZEJhY2tlbmQoSW5zcGVjdG9yOjpEaXNjb25uZWN0UmVhc29uKQog
ewogICAgIG1fZnJvbnRlbmREaXNwYXRjaGVyID0gbnVsbHB0cjsKLSAgICBtX2JhY2tlbmREaXNw
YXRjaGVyLmNsZWFyKCk7CisgICAgbV9iYWNrZW5kRGlzcGF0Y2hlciA9IG51bGxwdHI7CiAKICAg
ICBFcnJvclN0cmluZyB1bnVzZWQ7CiAgICAgZGlzYWJsZSh1bnVzZWQpOwpAQCAtMzc0LDcgKzM3
NCw3IEBAIHZvaWQgSW5zcGVjdG9yUGFnZUFnZW50OjplbmFibGUoRXJyb3JTdHJpbmcmKQogdm9p
ZCBJbnNwZWN0b3JQYWdlQWdlbnQ6OmRpc2FibGUoRXJyb3JTdHJpbmcmKQogewogICAgIG1fZW5h
YmxlZCA9IGZhbHNlOwotICAgIG1fc2NyaXB0c1RvRXZhbHVhdGVPbkxvYWQuY2xlYXIoKTsKKyAg
ICBtX3NjcmlwdHNUb0V2YWx1YXRlT25Mb2FkID0gbnVsbHB0cjsKICAgICBtX2luc3RydW1lbnRp
bmdBZ2VudHMtPnNldEluc3BlY3RvclBhZ2VBZ2VudChudWxscHRyKTsKIAogICAgIEVycm9yU3Ry
aW5nIHVudXNlZDsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9JbnNwZWN0
b3JSZXBsYXlBZ2VudC5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvSW5zcGVjdG9yUmVw
bGF5QWdlbnQuY3BwCmluZGV4IDY0Y2I4MTE3Yzc5ODFkYWM0MzRmNDNjYmYzYmZkOWUzMzEyODQ3
YTEuLjE4MWE2MDk4MmFmNzI2YzI0NGE0YzFiMzNkNmJjODdjMjliNTA1ODUgMTAwNjQ0Ci0tLSBh
L1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9JbnNwZWN0b3JSZXBsYXlBZ2VudC5jcHAKKysrIGIv
U291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL0luc3BlY3RvclJlcGxheUFnZW50LmNwcApAQCAtMTkz
LDcgKzE5Myw3IEBAIHZvaWQgSW5zcGVjdG9yUmVwbGF5QWdlbnQ6OmRpZENyZWF0ZUZyb250ZW5k
QW5kQmFja2VuZChJbnNwZWN0b3I6OkZyb250ZW5kQ2hhbm5lCiB2b2lkIEluc3BlY3RvclJlcGxh
eUFnZW50Ojp3aWxsRGVzdHJveUZyb250ZW5kQW5kQmFja2VuZChJbnNwZWN0b3I6OkRpc2Nvbm5l
Y3RSZWFzb24pCiB7CiAgICAgbV9mcm9udGVuZERpc3BhdGNoZXIgPSBudWxscHRyOwotICAgIG1f
YmFja2VuZERpc3BhdGNoZXIuY2xlYXIoKTsKKyAgICBtX2JhY2tlbmREaXNwYXRjaGVyID0gbnVs
bHB0cjsKIAogICAgIG1faW5zdHJ1bWVudGluZ0FnZW50cy0+c2V0SW5zcGVjdG9yUmVwbGF5QWdl
bnQobnVsbHB0cik7CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9JbnNw
ZWN0b3JSZXNvdXJjZUFnZW50LmNwcCBiL1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9JbnNwZWN0
b3JSZXNvdXJjZUFnZW50LmNwcAppbmRleCA4NTQ0ODljMDRmOTc0ZDk3Y2QzNjY0YWVhYWQ0NWZl
MDFiYjFlZjAxLi43YjU2YTBmZjlkMTU4ZjZiYThiMTM1M2EwYmFiMmU0ZDBlODlhMWQ3IDEwMDY0
NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvSW5zcGVjdG9yUmVzb3VyY2VBZ2VudC5j
cHAKKysrIGIvU291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL0luc3BlY3RvclJlc291cmNlQWdlbnQu
Y3BwCkBAIC0xODEsNyArMTgxLDcgQEAgdm9pZCBJbnNwZWN0b3JSZXNvdXJjZUFnZW50OjpkaWRD
cmVhdGVGcm9udGVuZEFuZEJhY2tlbmQoSW5zcGVjdG9yOjpGcm9udGVuZENoYW4KIHZvaWQgSW5z
cGVjdG9yUmVzb3VyY2VBZ2VudDo6d2lsbERlc3Ryb3lGcm9udGVuZEFuZEJhY2tlbmQoSW5zcGVj
dG9yOjpEaXNjb25uZWN0UmVhc29uKQogewogICAgIG1fZnJvbnRlbmREaXNwYXRjaGVyID0gbnVs
bHB0cjsKLSAgICBtX2JhY2tlbmREaXNwYXRjaGVyLmNsZWFyKCk7CisgICAgbV9iYWNrZW5kRGlz
cGF0Y2hlciA9IG51bGxwdHI7CiAKICAgICBFcnJvclN0cmluZyB1bnVzZWQ7CiAgICAgZGlzYWJs
ZSh1bnVzZWQpOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL0luc3BlY3Rv
clN0eWxlU2hlZXQuY3BwIGIvU291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL0luc3BlY3RvclN0eWxl
U2hlZXQuY3BwCmluZGV4IGI0N2M2NTRkM2Q3NjJjZTQ1ZGNmZTRmMTQ0YjRjOTY1N2VjYzlmYzQu
LjA2ZWMxYjZmMmY2NDRjMmMxZDA2ZDNmZWU5YWJlMTI4ZmMwYTVmOGMgMTAwNjQ0Ci0tLSBhL1Nv
dXJjZS9XZWJDb3JlL2luc3BlY3Rvci9JbnNwZWN0b3JTdHlsZVNoZWV0LmNwcAorKysgYi9Tb3Vy
Y2UvV2ViQ29yZS9pbnNwZWN0b3IvSW5zcGVjdG9yU3R5bGVTaGVldC5jcHAKQEAgLTEyNjEsNyAr
MTI2MSw3IEBAIHZvaWQgSW5zcGVjdG9yU3R5bGVTaGVldEZvcklubGluZVN0eWxlOjpkaWRNb2Rp
ZnlFbGVtZW50QXR0cmlidXRlKCkKICAgICBtX2lzU3R5bGVUZXh0VmFsaWQgPSBmYWxzZTsKICAg
ICBpZiAobV9lbGVtZW50LT5pc1N0eWxlZEVsZW1lbnQoKSAmJiBtX2VsZW1lbnQtPnN0eWxlKCkg
IT0gbV9pbnNwZWN0b3JTdHlsZS0+Y3NzU3R5bGUoKSkKICAgICAgICAgbV9pbnNwZWN0b3JTdHls
ZSA9IEluc3BlY3RvclN0eWxlOjpjcmVhdGUoSW5zcGVjdG9yQ1NTSWQoaWQoKSwgMCksIGlubGlu
ZVN0eWxlKCksIHRoaXMpOwotICAgIG1fcnVsZVNvdXJjZURhdGEuY2xlYXIoKTsKKyAgICBtX3J1
bGVTb3VyY2VEYXRhID0gbnVsbHB0cjsKIH0KIAogYm9vbCBJbnNwZWN0b3JTdHlsZVNoZWV0Rm9y
SW5saW5lU3R5bGU6OmdldFRleHQoU3RyaW5nKiByZXN1bHQpIGNvbnN0CkBAIC0xMjg1LDcgKzEy
ODUsNyBAQCBib29sIEluc3BlY3RvclN0eWxlU2hlZXRGb3JJbmxpbmVTdHlsZTo6c2V0U3R5bGVU
ZXh0KENTU1N0eWxlRGVjbGFyYXRpb24qIHN0eWxlLAogCiAgICAgbV9zdHlsZVRleHQgPSB0ZXh0
OwogICAgIG1faXNTdHlsZVRleHRWYWxpZCA9IHRydWU7Ci0gICAgbV9ydWxlU291cmNlRGF0YS5j
bGVhcigpOworICAgIG1fcnVsZVNvdXJjZURhdGEgPSBudWxscHRyOwogICAgIHJldHVybiAhZWM7
CiB9CiAKQEAgLTEzMDQsNyArMTMwNCw3IEBAIGJvb2wgSW5zcGVjdG9yU3R5bGVTaGVldEZvcklu
bGluZVN0eWxlOjplbnN1cmVQYXJzZWREYXRhUmVhZHkoKQogICAgIC8vIFRoZSAic3R5bGUiIHBy
b3BlcnR5IHZhbHVlIGNhbiBnZXQgY2hhbmdlZCBpbmRpcmVjdGx5LCBlLmcuIHZpYSBlbGVtZW50
LnN0eWxlLmJvcmRlcldpZHRoID0gIjJweCIuCiAgICAgY29uc3QgU3RyaW5nJiBjdXJyZW50U3R5
bGVUZXh0ID0gZWxlbWVudFN0eWxlVGV4dCgpOwogICAgIGlmIChtX3N0eWxlVGV4dCAhPSBjdXJy
ZW50U3R5bGVUZXh0KSB7Ci0gICAgICAgIG1fcnVsZVNvdXJjZURhdGEuY2xlYXIoKTsKKyAgICAg
ICAgbV9ydWxlU291cmNlRGF0YSA9IG51bGxwdHI7CiAgICAgICAgIG1fc3R5bGVUZXh0ID0gY3Vy
cmVudFN0eWxlVGV4dDsKICAgICAgICAgbV9pc1N0eWxlVGV4dFZhbGlkID0gdHJ1ZTsKICAgICB9
CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvSW5zcGVjdG9yVGltZWxpbmVB
Z2VudC5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvSW5zcGVjdG9yVGltZWxpbmVBZ2Vu
dC5jcHAKaW5kZXggMGUzMmJjNWU2Mzg5OGFmZjhlZDJiMDZhYmIwZjdhMWJhOTgwMDhhNC4uZjU3
NTZhMmQxZWE4Mzg3MTE1MGQ1MjFmOGVmZjE0OWEyM2FjNzhjYiAxMDA2NDQKLS0tIGEvU291cmNl
L1dlYkNvcmUvaW5zcGVjdG9yL0luc3BlY3RvclRpbWVsaW5lQWdlbnQuY3BwCisrKyBiL1NvdXJj
ZS9XZWJDb3JlL2luc3BlY3Rvci9JbnNwZWN0b3JUaW1lbGluZUFnZW50LmNwcApAQCAtMTAzLDcg
KzEwMyw3IEBAIHZvaWQgSW5zcGVjdG9yVGltZWxpbmVBZ2VudDo6ZGlkQ3JlYXRlRnJvbnRlbmRB
bmRCYWNrZW5kKEluc3BlY3Rvcjo6RnJvbnRlbmRDaGFuCiB2b2lkIEluc3BlY3RvclRpbWVsaW5l
QWdlbnQ6OndpbGxEZXN0cm95RnJvbnRlbmRBbmRCYWNrZW5kKEluc3BlY3Rvcjo6RGlzY29ubmVj
dFJlYXNvbiByZWFzb24pCiB7CiAgICAgbV9mcm9udGVuZERpc3BhdGNoZXIgPSBudWxscHRyOwot
ICAgIG1fYmFja2VuZERpc3BhdGNoZXIuY2xlYXIoKTsKKyAgICBtX2JhY2tlbmREaXNwYXRjaGVy
ID0gbnVsbHB0cjsKIAogICAgIG1faW5zdHJ1bWVudGluZ0FnZW50cy0+c2V0UGVyc2lzdGVudElu
c3BlY3RvclRpbWVsaW5lQWdlbnQobnVsbHB0cik7CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJD
b3JlL2luc3BlY3Rvci9JbnNwZWN0b3JXb3JrZXJBZ2VudC5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9p
bnNwZWN0b3IvSW5zcGVjdG9yV29ya2VyQWdlbnQuY3BwCmluZGV4IGRlYmM2OTg3OTVkOThjNDJi
OGViMThjMTBmZGEyYTI1Zjg1ZjJlOWIuLjVlMjFmMzViYjQ4MDNiZWIxZWEyZDU5ODRiNDJkMDg2
NjQ1ZDkxODEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9JbnNwZWN0b3JX
b3JrZXJBZ2VudC5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL0luc3BlY3Rvcldv
cmtlckFnZW50LmNwcApAQCAtMTI3LDcgKzEyNyw3IEBAIHZvaWQgSW5zcGVjdG9yV29ya2VyQWdl
bnQ6OndpbGxEZXN0cm95RnJvbnRlbmRBbmRCYWNrZW5kKEluc3BlY3Rvcjo6RGlzY29ubmVjdFJl
CiAgICAgZGlzYWJsZSh1bnVzZWQpOwogCiAgICAgbV9mcm9udGVuZERpc3BhdGNoZXIgPSBudWxs
cHRyOwotICAgIG1fYmFja2VuZERpc3BhdGNoZXIuY2xlYXIoKTsKKyAgICBtX2JhY2tlbmREaXNw
YXRjaGVyID0gbnVsbHB0cjsKIH0KIAogdm9pZCBJbnNwZWN0b3JXb3JrZXJBZ2VudDo6ZW5hYmxl
KEVycm9yU3RyaW5nJikKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9QYWdl
UnVudGltZUFnZW50LmNwcCBiL1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9QYWdlUnVudGltZUFn
ZW50LmNwcAppbmRleCA5M2RiNTcyYTdmMDQ1NTA1YjllNTE1ZTUwOTBjNGZjMGI1MDIxZTJkLi5l
MjQ0NWFiZjQ0M2QwOGY0Mzg0YTAzOWJjOWU1NWQ4ZDVmM2Y3MTJiIDEwMDY0NAotLS0gYS9Tb3Vy
Y2UvV2ViQ29yZS9pbnNwZWN0b3IvUGFnZVJ1bnRpbWVBZ2VudC5jcHAKKysrIGIvU291cmNlL1dl
YkNvcmUvaW5zcGVjdG9yL1BhZ2VSdW50aW1lQWdlbnQuY3BwCkBAIC02OSw3ICs2OSw3IEBAIHZv
aWQgUGFnZVJ1bnRpbWVBZ2VudDo6ZGlkQ3JlYXRlRnJvbnRlbmRBbmRCYWNrZW5kKEluc3BlY3Rv
cjo6RnJvbnRlbmRDaGFubmVsKiBmCiB2b2lkIFBhZ2VSdW50aW1lQWdlbnQ6OndpbGxEZXN0cm95
RnJvbnRlbmRBbmRCYWNrZW5kKEluc3BlY3Rvcjo6RGlzY29ubmVjdFJlYXNvbiByZWFzb24pCiB7
CiAgICAgbV9mcm9udGVuZERpc3BhdGNoZXIgPSBudWxscHRyOwotICAgIG1fYmFja2VuZERpc3Bh
dGNoZXIuY2xlYXIoKTsKKyAgICBtX2JhY2tlbmREaXNwYXRjaGVyID0gbnVsbHB0cjsKIAogICAg
IFN0cmluZyB1bnVzZWQ7CiAgICAgZGlzYWJsZSh1bnVzZWQpOwpkaWZmIC0tZ2l0IGEvU291cmNl
L1dlYkNvcmUvaW5zcGVjdG9yL1dlYkluamVjdGVkU2NyaXB0TWFuYWdlci5jcHAgYi9Tb3VyY2Uv
V2ViQ29yZS9pbnNwZWN0b3IvV2ViSW5qZWN0ZWRTY3JpcHRNYW5hZ2VyLmNwcAppbmRleCA5ZjRh
ZjQyNjkzZWM1NzU5NTMxMzM5NDQ2MGIxOTA1ZGZlMGFkNTg3Li41NjE5NmYwYWUzNzFlZjQ0M2Mw
NTIzZWIzMWJiNmZjNWVhZjNlNWIxIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0
b3IvV2ViSW5qZWN0ZWRTY3JpcHRNYW5hZ2VyLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9pbnNw
ZWN0b3IvV2ViSW5qZWN0ZWRTY3JpcHRNYW5hZ2VyLmNwcApAQCAtNDQsNyArNDQsNyBAQCB2b2lk
IFdlYkluamVjdGVkU2NyaXB0TWFuYWdlcjo6ZGlzY29ubmVjdCgpCiAgICAgSW5qZWN0ZWRTY3Jp
cHRNYW5hZ2VyOjpkaXNjb25uZWN0KCk7CiAKICAgICBtX2NvbW1hbmRMaW5lQVBJSG9zdC0+ZGlz
Y29ubmVjdCgpOwotICAgIG1fY29tbWFuZExpbmVBUElIb3N0LmNsZWFyKCk7CisgICAgbV9jb21t
YW5kTGluZUFQSUhvc3QgPSBudWxscHRyOwogfQogCiB2b2lkIFdlYkluamVjdGVkU2NyaXB0TWFu
YWdlcjo6ZGlkQ3JlYXRlSW5qZWN0ZWRTY3JpcHQoSW5qZWN0ZWRTY3JpcHQgaW5qZWN0ZWRTY3Jp
cHQpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvV29ya2VySW5zcGVjdG9y
Q29udHJvbGxlci5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvV29ya2VySW5zcGVjdG9y
Q29udHJvbGxlci5jcHAKaW5kZXggZjFmZTQxMDA1YWRmZWE0YmMwMWUwYWQ1Yjc3ZjU4ZjBiOTZj
MjcwZC4uZDgzNGUwZWE5ZjVhMzAwYTgzMjRmNGFmMWQ2NjZkM2I5MDZhYzY1MiAxMDA2NDQKLS0t
IGEvU291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL1dvcmtlckluc3BlY3RvckNvbnRyb2xsZXIuY3Bw
CisrKyBiL1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9Xb3JrZXJJbnNwZWN0b3JDb250cm9sbGVy
LmNwcApAQCAtMTI2LDcgKzEyNiw3IEBAIHZvaWQgV29ya2VySW5zcGVjdG9yQ29udHJvbGxlcjo6
ZGlzY29ubmVjdEZyb250ZW5kKEluc3BlY3Rvcjo6RGlzY29ubmVjdFJlYXNvbiByCiAKICAgICBt
X2FnZW50cy53aWxsRGVzdHJveUZyb250ZW5kQW5kQmFja2VuZChyZWFzb24pOwogICAgIG1fYmFj
a2VuZERpc3BhdGNoZXItPmNsZWFyRnJvbnRlbmQoKTsKLSAgICBtX2JhY2tlbmREaXNwYXRjaGVy
LmNsZWFyKCk7CisgICAgbV9iYWNrZW5kRGlzcGF0Y2hlciA9IG51bGxwdHI7CiAgICAgbV9mcm9u
dGVuZENoYW5uZWwgPSBudWxscHRyOwogfQogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9p
bnNwZWN0b3IvV29ya2VyUnVudGltZUFnZW50LmNwcCBiL1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rv
ci9Xb3JrZXJSdW50aW1lQWdlbnQuY3BwCmluZGV4IDIwNmE0MWY1ZmI0MmNkMTVhMzM2Y2NiMzk0
YjJlYWM1MWRlNTRmZmEuLjEyMjJlNTUyNzk4YmI2MzczOTlmOGFlNzU3YjRmZjRmZGJkMmU1MGQg
MTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9Xb3JrZXJSdW50aW1lQWdlbnQu
Y3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9Xb3JrZXJSdW50aW1lQWdlbnQuY3Bw
CkBAIC02MCw3ICs2MCw3IEBAIHZvaWQgV29ya2VyUnVudGltZUFnZW50OjpkaWRDcmVhdGVGcm9u
dGVuZEFuZEJhY2tlbmQoSW5zcGVjdG9yOjpGcm9udGVuZENoYW5uZWwqCiAKIHZvaWQgV29ya2Vy
UnVudGltZUFnZW50Ojp3aWxsRGVzdHJveUZyb250ZW5kQW5kQmFja2VuZChJbnNwZWN0b3I6OkRp
c2Nvbm5lY3RSZWFzb24gcmVhc29uKQogewotICAgIG1fYmFja2VuZERpc3BhdGNoZXIuY2xlYXIo
KTsKKyAgICBtX2JhY2tlbmREaXNwYXRjaGVyID0gbnVsbHB0cjsKIAogICAgIEluc3BlY3RvclJ1
bnRpbWVBZ2VudDo6d2lsbERlc3Ryb3lGcm9udGVuZEFuZEJhY2tlbmQocmVhc29uKTsKIH0KZGlm
ZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2xvYWRlci9Eb2N1bWVudExvYWRlci5jcHAgYi9Tb3Vy
Y2UvV2ViQ29yZS9sb2FkZXIvRG9jdW1lbnRMb2FkZXIuY3BwCmluZGV4IDVlYzQ3YWMzMWYzMzVi
MzVhZWUyODc3MjJkYjYwYzU0NDZkMWJiOGEuLjdjYTFmMjM4NjZlNmQxNzc1YzA2YTUyYWNlMzIy
MmMyMTE1NGI0OTUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2xvYWRlci9Eb2N1bWVudExv
YWRlci5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvbG9hZGVyL0RvY3VtZW50TG9hZGVyLmNwcApA
QCAtMTUyNCw3ICsxNTI0LDcgQEAgdm9pZCBEb2N1bWVudExvYWRlcjo6Z2V0SWNvbkxvYWREZWNp
c2lvbkZvckljb25VUkwoY29uc3QgU3RyaW5nJiB1cmxTdHJpbmcpCiB2b2lkIERvY3VtZW50TG9h
ZGVyOjpjb250aW51ZUljb25Mb2FkV2l0aERlY2lzaW9uKEljb25Mb2FkRGVjaXNpb24gZGVjaXNp
b24pCiB7CiAgICAgQVNTRVJUKG1faWNvbkxvYWREZWNpc2lvbkNhbGxiYWNrKTsKLSAgICBtX2lj
b25Mb2FkRGVjaXNpb25DYWxsYmFjayA9IDA7CisgICAgbV9pY29uTG9hZERlY2lzaW9uQ2FsbGJh
Y2sgPSBudWxscHRyOwogICAgIGlmIChtX2ZyYW1lKQogICAgICAgICBtX2ZyYW1lLT5sb2FkZXIo
KS5pY29uKCkuY29udGludWVMb2FkV2l0aERlY2lzaW9uKGRlY2lzaW9uKTsKIH0KZGlmZiAtLWdp
dCBhL1NvdXJjZS9XZWJDb3JlL2xvYWRlci9Eb2N1bWVudFRocmVhZGFibGVMb2FkZXIuY3BwIGIv
U291cmNlL1dlYkNvcmUvbG9hZGVyL0RvY3VtZW50VGhyZWFkYWJsZUxvYWRlci5jcHAKaW5kZXgg
MWU4NmZhYzFiZGY4MjlhNjNlMTY5MGFmMmEzZTQ3NTI2MzIwN2QxYy4uYjBlNTg5OGJiY2Y4MGY5
ZmZhOWQyODY1NGIyNzRlY2ZhYjgyOWZmMSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvbG9h
ZGVyL0RvY3VtZW50VGhyZWFkYWJsZUxvYWRlci5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvbG9h
ZGVyL0RvY3VtZW50VGhyZWFkYWJsZUxvYWRlci5jcHAKQEAgLTY0LDcgKzY0LDcgQEAgUGFzc1Jl
ZlB0cjxEb2N1bWVudFRocmVhZGFibGVMb2FkZXI+IERvY3VtZW50VGhyZWFkYWJsZUxvYWRlcjo6
Y3JlYXRlKERvY3VtZW50JgogewogICAgIFJlZlB0cjxEb2N1bWVudFRocmVhZGFibGVMb2FkZXI+
IGxvYWRlciA9IGFkb3B0UmVmKG5ldyBEb2N1bWVudFRocmVhZGFibGVMb2FkZXIoZG9jdW1lbnQs
IGNsaWVudCwgTG9hZEFzeW5jaHJvbm91c2x5LCByZXF1ZXN0LCBvcHRpb25zKSk7CiAgICAgaWYg
KCFsb2FkZXItPm1fcmVzb3VyY2UpCi0gICAgICAgIGxvYWRlciA9IDA7CisgICAgICAgIGxvYWRl
ciA9IG51bGxwdHI7CiAgICAgcmV0dXJuIGxvYWRlci5yZWxlYXNlKCk7CiB9CiAKZGlmZiAtLWdp
dCBhL1NvdXJjZS9XZWJDb3JlL2xvYWRlci9Eb2N1bWVudFdyaXRlci5jcHAgYi9Tb3VyY2UvV2Vi
Q29yZS9sb2FkZXIvRG9jdW1lbnRXcml0ZXIuY3BwCmluZGV4IGNjNTEzOTNjMTBmNjM2YmQ3NmVk
MTA5OGIzZWJjYzM2YzQyMmMxMTEuLmExYzM3N2Y4ZTFiMzQ2MDdkMjU3NTQxNWFjZmE0YWJjZjkx
MGI0MzEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2xvYWRlci9Eb2N1bWVudFdyaXRlci5j
cHAKKysrIGIvU291cmNlL1dlYkNvcmUvbG9hZGVyL0RvY3VtZW50V3JpdGVyLmNwcApAQCAtOTAs
NyArOTAsNyBAQCB2b2lkIERvY3VtZW50V3JpdGVyOjpyZXBsYWNlRG9jdW1lbnQoY29uc3QgU3Ry
aW5nJiBzb3VyY2UsIERvY3VtZW50KiBvd25lckRvY3VtZQogCiB2b2lkIERvY3VtZW50V3JpdGVy
OjpjbGVhcigpCiB7Ci0gICAgbV9kZWNvZGVyID0gMDsKKyAgICBtX2RlY29kZXIgPSBudWxscHRy
OwogICAgIG1faGFzUmVjZWl2ZWRTb21lRGF0YSA9IGZhbHNlOwogICAgIGlmICghbV9lbmNvZGlu
Z1dhc0Nob3NlbkJ5VXNlcikKICAgICAgICAgbV9lbmNvZGluZyA9IFN0cmluZygpOwpAQCAtMjQ1
LDcgKzI0NSw3IEBAIHZvaWQgRG9jdW1lbnRXcml0ZXI6OmVuZCgpCiAgICAgaWYgKCFtX3BhcnNl
cikKICAgICAgICAgcmV0dXJuOwogICAgIG1fcGFyc2VyLT5maW5pc2goKTsKLSAgICBtX3BhcnNl
ciA9IDA7CisgICAgbV9wYXJzZXIgPSBudWxscHRyOwogfQogCiB2b2lkIERvY3VtZW50V3JpdGVy
OjpzZXRFbmNvZGluZyhjb25zdCBTdHJpbmcmIG5hbWUsIGJvb2wgdXNlckNob3NlbikKZGlmZiAt
LWdpdCBhL1NvdXJjZS9XZWJDb3JlL2xvYWRlci9GcmFtZUxvYWRlci5jcHAgYi9Tb3VyY2UvV2Vi
Q29yZS9sb2FkZXIvRnJhbWVMb2FkZXIuY3BwCmluZGV4IDUyMmIxNTdkYmNiZWMwYjUwMTFmOTVl
ODY2NjZhOWUyMGM2OWJmY2QuLjNiZGI2MjFkN2RhYjU2MzZlMDA5ZTk1YTFjM2IwYjdmOWNiZjM4
OGIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2xvYWRlci9GcmFtZUxvYWRlci5jcHAKKysr
IGIvU291cmNlL1dlYkNvcmUvbG9hZGVyL0ZyYW1lTG9hZGVyLmNwcApAQCAtNjkyLDcgKzY5Miw3
IEBAIHZvaWQgRnJhbWVMb2FkZXI6OmRpZEJlZ2luRG9jdW1lbnQoYm9vbCBkaXNwYXRjaCkKIAog
ICAgIGlmIChtX3BlbmRpbmdTdGF0ZU9iamVjdCkgewogICAgICAgICBtX2ZyYW1lLmRvY3VtZW50
KCktPnN0YXRlUG9wcGVkKG1fcGVuZGluZ1N0YXRlT2JqZWN0LmdldCgpKTsKLSAgICAgICAgbV9w
ZW5kaW5nU3RhdGVPYmplY3QuY2xlYXIoKTsKKyAgICAgICAgbV9wZW5kaW5nU3RhdGVPYmplY3Qg
PSBudWxscHRyOwogICAgIH0KIAogICAgIGlmIChkaXNwYXRjaCkKQEAgLTgxOCw3ICs4MTgsNyBA
QCB2b2lkIEZyYW1lTG9hZGVyOjpjaGVja0NvbXBsZXRlZCgpCiAKICAgICAvLyBPSywgY29tcGxl
dGVkLgogICAgIG1faXNDb21wbGV0ZSA9IHRydWU7Ci0gICAgbV9yZXF1ZXN0ZWRIaXN0b3J5SXRl
bSA9IDA7CisgICAgbV9yZXF1ZXN0ZWRIaXN0b3J5SXRlbSA9IG51bGxwdHI7CiAgICAgbV9mcmFt
ZS5kb2N1bWVudCgpLT5zZXRSZWFkeVN0YXRlKERvY3VtZW50OjpDb21wbGV0ZSk7CiAKICNpZiBQ
TEFURk9STShJT1MpCkBAIC0xMTM3LDcgKzExMzcsNyBAQCB2b2lkIEZyYW1lTG9hZGVyOjpzZXR1
cEZvclJlcGxhY2UoKQogICAgIG1fY2xpZW50LnJldmVydFRvUHJvdmlzaW9uYWxTdGF0ZShtX2Rv
Y3VtZW50TG9hZGVyLmdldCgpKTsKICAgICBzZXRTdGF0ZShGcmFtZVN0YXRlUHJvdmlzaW9uYWwp
OwogICAgIG1fcHJvdmlzaW9uYWxEb2N1bWVudExvYWRlciA9IG1fZG9jdW1lbnRMb2FkZXI7Ci0g
ICAgbV9kb2N1bWVudExvYWRlciA9IDA7CisgICAgbV9kb2N1bWVudExvYWRlciA9IG51bGxwdHI7
CiAgICAgZGV0YWNoQ2hpbGRyZW4oKTsKIH0KIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUv
bG9hZGVyL1Byb2dyZXNzVHJhY2tlci5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9sb2FkZXIvUHJvZ3Jl
c3NUcmFja2VyLmNwcAppbmRleCAwNDA1NGRlNGVhYjM5NTFmOTVlMDdlOWRlZDMyZGM5MTZmZDdl
ZTA2Li5kNTZjYTA1ZGI5OTBiMzBhNmIwN2QxMmZiMmMwOWU5OTZiNzk3MjBmIDEwMDY0NAotLS0g
YS9Tb3VyY2UvV2ViQ29yZS9sb2FkZXIvUHJvZ3Jlc3NUcmFja2VyLmNwcAorKysgYi9Tb3VyY2Uv
V2ViQ29yZS9sb2FkZXIvUHJvZ3Jlc3NUcmFja2VyLmNwcApAQCAtMTEzLDcgKzExMyw3IEBAIHZv
aWQgUHJvZ3Jlc3NUcmFja2VyOjpyZXNldCgpCiAgICAgbV9sYXN0Tm90aWZpZWRQcm9ncmVzc1Rp
bWUgPSBzdGQ6OmNocm9ubzo6c3RlYWR5X2Nsb2NrOjp0aW1lX3BvaW50KCk7CiAgICAgbV9maW5h
bFByb2dyZXNzQ2hhbmdlZFNlbnQgPSBmYWxzZTsKICAgICBtX251bVByb2dyZXNzVHJhY2tlZEZy
YW1lcyA9IDA7Ci0gICAgbV9vcmlnaW5hdGluZ1Byb2dyZXNzRnJhbWUgPSAwOworICAgIG1fb3Jp
Z2luYXRpbmdQcm9ncmVzc0ZyYW1lID0gbnVsbHB0cjsKIAogICAgIG1faGVhcnRiZWF0c1dpdGhO
b1Byb2dyZXNzID0gMDsKICAgICBtX3RvdGFsQnl0ZXNSZWNlaXZlZEJlZm9yZVByZXZpb3VzSGVh
cnRiZWF0ID0gMDsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2xvYWRlci9SZXNvdXJjZUxv
YWRlci5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9sb2FkZXIvUmVzb3VyY2VMb2FkZXIuY3BwCmluZGV4
IDQzMWEwY2IxZDQ0NWJlMmZmNTkwM2Q2MjM1NDc2NmFhY2NlNDM1MzYuLjE2NmE0NTRjMTA5MGJh
OGJkMmRkYzBjY2M3YmEyMDMxMzJhOTEzODAgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2xv
YWRlci9SZXNvdXJjZUxvYWRlci5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvbG9hZGVyL1Jlc291
cmNlTG9hZGVyLmNwcApAQCAtOTAsOCArOTAsOCBAQCB2b2lkIFJlc291cmNlTG9hZGVyOjpyZWxl
YXNlUmVzb3VyY2VzKCkKICAgICAvLyBoYXMgYmVlbiBkZWFsbG9jYXRlZCBhbmQgYWxzbyB0byBh
dm9pZCByZWVudGVyaW5nIHRoaXMgbWV0aG9kLgogICAgIFJlZjxSZXNvdXJjZUxvYWRlcj4gcHJv
dGVjdCgqdGhpcyk7CiAKLSAgICBtX2ZyYW1lID0gMDsKLSAgICBtX2RvY3VtZW50TG9hZGVyID0g
MDsKKyAgICBtX2ZyYW1lID0gbnVsbHB0cjsKKyAgICBtX2RvY3VtZW50TG9hZGVyID0gbnVsbHB0
cjsKICAgICAKICAgICAvLyBXZSBuZWVkIHRvIHNldCByZWFjaGVkVGVybWluYWxTdGF0ZSB0byB0
cnVlIGJlZm9yZSB3ZSByZWxlYXNlCiAgICAgLy8gdGhlIHJlc291cmNlcyB0byBwcmV2ZW50IGEg
ZG91YmxlIGRlYWxsb2Mgb2YgV2ViVmlldyA8cmRhcjovL3Byb2JsZW0vNDM3MjYyOD4KQEAgLTEw
NCwxMSArMTA0LDExIEBAIHZvaWQgUmVzb3VyY2VMb2FkZXI6OnJlbGVhc2VSZXNvdXJjZXMoKQog
ICAgICAgICAvLyBDbGVhciBvdXQgdGhlIFJlc291cmNlSGFuZGxlJ3MgY2xpZW50IHNvIHRoYXQg
aXQgZG9lc24ndCB0cnkgdG8gY2FsbAogICAgICAgICAvLyB1cyBiYWNrIGFmdGVyIHdlIHJlbGVh
c2UgaXQsIHVubGVzcyBpdCBoYXMgYmVlbiByZXBsYWNlZCBieSBzb21lb25lIGVsc2UuCiAgICAg
ICAgIGlmIChtX2hhbmRsZS0+Y2xpZW50KCkgPT0gdGhpcykKLSAgICAgICAgICAgIG1faGFuZGxl
LT5zZXRDbGllbnQoMCk7Ci0gICAgICAgIG1faGFuZGxlID0gMDsKKyAgICAgICAgICAgIG1faGFu
ZGxlLT5zZXRDbGllbnQobnVsbHB0cik7CisgICAgICAgIG1faGFuZGxlID0gbnVsbHB0cjsKICAg
ICB9CiAKLSAgICBtX3Jlc291cmNlRGF0YSA9IDA7CisgICAgbV9yZXNvdXJjZURhdGEgPSBudWxs
cHRyOwogICAgIG1fZGVmZXJyZWRSZXF1ZXN0ID0gUmVzb3VyY2VSZXF1ZXN0KCk7CiB9CiAKQEAg
LTIyNSw3ICsyMjUsNyBAQCB2b2lkIFJlc291cmNlTG9hZGVyOjpzZXREZWZlcnNMb2FkaW5nKGJv
b2wgZGVmZXJzKQogRnJhbWVMb2FkZXIqIFJlc291cmNlTG9hZGVyOjpmcmFtZUxvYWRlcigpIGNv
bnN0CiB7CiAgICAgaWYgKCFtX2ZyYW1lKQotICAgICAgICByZXR1cm4gMDsKKyAgICAgICAgcmV0
dXJuIG51bGxwdHI7CiAgICAgcmV0dXJuICZtX2ZyYW1lLT5sb2FkZXIoKTsKIH0KIApAQCAtMjQ0
LDcgKzI0NCw3IEBAIHZvaWQgUmVzb3VyY2VMb2FkZXI6OnNldERhdGFCdWZmZXJpbmdQb2xpY3ko
RGF0YUJ1ZmZlcmluZ1BvbGljeSBkYXRhQnVmZmVyaW5nUG9sCiAKICAgICAvLyBSZXNldCBhbnkg
YWxyZWFkeSBidWZmZXJlZCBkYXRhCiAgICAgaWYgKGRhdGFCdWZmZXJpbmdQb2xpY3kgPT0gRG9O
b3RCdWZmZXJEYXRhKQotICAgICAgICBtX3Jlc291cmNlRGF0YSA9IDA7CisgICAgICAgIG1fcmVz
b3VyY2VEYXRhID0gbnVsbHB0cjsKIH0KICAgICAKIHZvaWQgUmVzb3VyY2VMb2FkZXI6OndpbGxT
d2l0Y2hUb1N1YnN0aXR1dGVSZXNvdXJjZSgpCkBAIC01MzAsNyArNTMwLDcgQEAgdm9pZCBSZXNv
dXJjZUxvYWRlcjo6Y2FuY2VsKGNvbnN0IFJlc291cmNlRXJyb3ImIGVycm9yKQogICAgICAgICBt
X2RvY3VtZW50TG9hZGVyLT5jYW5jZWxQZW5kaW5nU3Vic3RpdHV0ZUxvYWQodGhpcyk7CiAgICAg
ICAgIGlmIChtX2hhbmRsZSkgewogICAgICAgICAgICAgbV9oYW5kbGUtPmNhbmNlbCgpOwotICAg
ICAgICAgICAgbV9oYW5kbGUgPSAwOworICAgICAgICAgICAgbV9oYW5kbGUgPSBudWxscHRyOwog
ICAgICAgICB9CiAgICAgICAgIGNsZWFudXBGb3JFcnJvcihub25OdWxsRXJyb3IpOwogICAgIH0K
ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2xvYWRlci9hcHBjYWNoZS9BcHBsaWNhdGlvbkNh
Y2hlR3JvdXAuY3BwIGIvU291cmNlL1dlYkNvcmUvbG9hZGVyL2FwcGNhY2hlL0FwcGxpY2F0aW9u
Q2FjaGVHcm91cC5jcHAKaW5kZXggNjI3YzBmZTc5ZTc1ZTA4MzljNjYxOWNhNzRhYjk3MDkxODk4
OTJhNi4uNTliY2FjOWExMDBiYmM1NDM4YWQ0MDMyN2ZmN2ZmY2QzOTg5NzA2MyAxMDA2NDQKLS0t
IGEvU291cmNlL1dlYkNvcmUvbG9hZGVyL2FwcGNhY2hlL0FwcGxpY2F0aW9uQ2FjaGVHcm91cC5j
cHAKKysrIGIvU291cmNlL1dlYkNvcmUvbG9hZGVyL2FwcGNhY2hlL0FwcGxpY2F0aW9uQ2FjaGVH
cm91cC5jcHAKQEAgLTMyNyw3ICszMjcsNyBAQCB2b2lkIEFwcGxpY2F0aW9uQ2FjaGVHcm91cDo6
c3RvcExvYWRpbmcoKQogICAgICAgICBtX21hbmlmZXN0SGFuZGxlLT5zZXRDbGllbnQoMCk7CiAK
ICAgICAgICAgbV9tYW5pZmVzdEhhbmRsZS0+Y2FuY2VsKCk7Ci0gICAgICAgIG1fbWFuaWZlc3RI
YW5kbGUgPSAwOworICAgICAgICBtX21hbmlmZXN0SGFuZGxlID0gbnVsbHB0cjsKICAgICB9CiAg
ICAgCiAgICAgaWYgKG1fY3VycmVudEhhbmRsZSkgewpAQCAtMzM4LDExICszMzgsMTEgQEAgdm9p
ZCBBcHBsaWNhdGlvbkNhY2hlR3JvdXA6OnN0b3BMb2FkaW5nKCkKICAgICAgICAgbV9jdXJyZW50
SGFuZGxlLT5zZXRDbGllbnQoMCk7CiAKICAgICAgICAgbV9jdXJyZW50SGFuZGxlLT5jYW5jZWwo
KTsKLSAgICAgICAgbV9jdXJyZW50SGFuZGxlID0gMDsKKyAgICAgICAgbV9jdXJyZW50SGFuZGxl
ID0gbnVsbHB0cjsKICAgICB9ICAgIAogCiAgICAgLy8gRklYTUU6IFJlc2V0dGluZyBqdXN0IGEg
dGlueSBwYXJ0IG9mIHRoZSBzdGF0ZSBpbiB0aGlzIGZ1bmN0aW9uIGlzIGNvbmZ1c2luZy4gQ2Fs
bGVycyBoYXZlIHRvIHRha2UgY2FyZSBvZiBhIGxvdCBtb3JlLgotICAgIG1fY2FjaGVCZWluZ1Vw
ZGF0ZWQgPSAwOworICAgIG1fY2FjaGVCZWluZ1VwZGF0ZWQgPSBudWxscHRyOwogICAgIG1fcGVu
ZGluZ0VudHJpZXMuY2xlYXIoKTsKIH0gICAgCiAKQEAgLTUyMSw3ICs1MjEsNyBAQCB2b2lkIEFw
cGxpY2F0aW9uQ2FjaGVHcm91cDo6ZGlkUmVjZWl2ZVJlc3BvbnNlKFJlc291cmNlSGFuZGxlKiBo
YW5kbGUsIGNvbnN0IFJlcwogICAgICAgICAgICAgbV9jYWNoZUJlaW5nVXBkYXRlZC0+YWRkUmVz
b3VyY2UoQXBwbGljYXRpb25DYWNoZVJlc291cmNlOjpjcmVhdGUodXJsLCBuZXdlc3RDYWNoZWRS
ZXNvdXJjZS0+cmVzcG9uc2UoKSwgdHlwZSwgbmV3ZXN0Q2FjaGVkUmVzb3VyY2UtPmRhdGEoKSwg
bmV3ZXN0Q2FjaGVkUmVzb3VyY2UtPnBhdGgoKSkpOwogICAgICAgICAgICAgbV9wZW5kaW5nRW50
cmllcy5yZW1vdmUobV9jdXJyZW50SGFuZGxlLT5maXJzdFJlcXVlc3QoKS51cmwoKSk7CiAgICAg
ICAgICAgICBtX2N1cnJlbnRIYW5kbGUtPmNhbmNlbCgpOwotICAgICAgICAgICAgbV9jdXJyZW50
SGFuZGxlID0gMDsKKyAgICAgICAgICAgIG1fY3VycmVudEhhbmRsZSA9IG51bGxwdHI7CiAgICAg
ICAgICAgICAvLyBMb2FkIHRoZSBuZXh0IHJlc291cmNlLCBpZiBhbnkuCiAgICAgICAgICAgICBz
dGFydExvYWRpbmdFbnRyeSgpOwogICAgICAgICAgICAgcmV0dXJuOwpAQCAtNTM4LDcgKzUzOCw3
IEBAIHZvaWQgQXBwbGljYXRpb25DYWNoZUdyb3VwOjpkaWRSZWNlaXZlUmVzcG9uc2UoUmVzb3Vy
Y2VIYW5kbGUqIGhhbmRsZSwgY29uc3QgUmVzCiAgICAgICAgIH0gZWxzZSBpZiAocmVzcG9uc2Uu
aHR0cFN0YXR1c0NvZGUoKSA9PSA0MDQgfHwgcmVzcG9uc2UuaHR0cFN0YXR1c0NvZGUoKSA9PSA0
MTApIHsKICAgICAgICAgICAgIC8vIFNraXAgdGhpcyByZXNvdXJjZS4gSXQgaXMgZHJvcHBlZCBm
cm9tIHRoZSBjYWNoZS4KICAgICAgICAgICAgIG1fY3VycmVudEhhbmRsZS0+Y2FuY2VsKCk7Ci0g
ICAgICAgICAgICBtX2N1cnJlbnRIYW5kbGUgPSAwOworICAgICAgICAgICAgbV9jdXJyZW50SGFu
ZGxlID0gbnVsbHB0cjsKICAgICAgICAgICAgIG1fcGVuZGluZ0VudHJpZXMucmVtb3ZlKHVybCk7
CiAgICAgICAgICAgICAvLyBMb2FkIHRoZSBuZXh0IHJlc291cmNlLCBpZiBhbnkuCiAgICAgICAg
ICAgICBzdGFydExvYWRpbmdFbnRyeSgpOwpAQCAtNTUxLDcgKzU1MSw3IEBAIHZvaWQgQXBwbGlj
YXRpb25DYWNoZUdyb3VwOjpkaWRSZWNlaXZlUmVzcG9uc2UoUmVzb3VyY2VIYW5kbGUqIGhhbmRs
ZSwgY29uc3QgUmVzCiAgICAgICAgICAgICBtX2NhY2hlQmVpbmdVcGRhdGVkLT5hZGRSZXNvdXJj
ZShBcHBsaWNhdGlvbkNhY2hlUmVzb3VyY2U6OmNyZWF0ZSh1cmwsIG5ld2VzdENhY2hlZFJlc291
cmNlLT5yZXNwb25zZSgpLCB0eXBlLCBuZXdlc3RDYWNoZWRSZXNvdXJjZS0+ZGF0YSgpLCBuZXdl
c3RDYWNoZWRSZXNvdXJjZS0+cGF0aCgpKSk7CiAgICAgICAgICAgICBtX3BlbmRpbmdFbnRyaWVz
LnJlbW92ZShtX2N1cnJlbnRIYW5kbGUtPmZpcnN0UmVxdWVzdCgpLnVybCgpKTsKICAgICAgICAg
ICAgIG1fY3VycmVudEhhbmRsZS0+Y2FuY2VsKCk7Ci0gICAgICAgICAgICBtX2N1cnJlbnRIYW5k
bGUgPSAwOworICAgICAgICAgICAgbV9jdXJyZW50SGFuZGxlID0gbnVsbHB0cjsKICAgICAgICAg
ICAgIC8vIExvYWQgdGhlIG5leHQgcmVzb3VyY2UsIGlmIGFueS4KICAgICAgICAgICAgIHN0YXJ0
TG9hZGluZ0VudHJ5KCk7CiAgICAgICAgIH0KQEAgLTU5NSw3ICs1OTUsNyBAQCB2b2lkIEFwcGxp
Y2F0aW9uQ2FjaGVHcm91cDo6ZGlkRmluaXNoTG9hZGluZyhSZXNvdXJjZUhhbmRsZSogaGFuZGxl
LCBkb3VibGUgZmluaQogICAgIEFTU0VSVChtX2NhY2hlQmVpbmdVcGRhdGVkKTsKIAogICAgIG1f
Y2FjaGVCZWluZ1VwZGF0ZWQtPmFkZFJlc291cmNlKG1fY3VycmVudFJlc291cmNlLnJlbGVhc2Uo
KSk7Ci0gICAgbV9jdXJyZW50SGFuZGxlID0gMDsKKyAgICBtX2N1cnJlbnRIYW5kbGUgPSBudWxs
cHRyOwogCiAgICAgLy8gV2hpbGUgZG93bmxvYWRpbmcgY2hlY2sgdG8gc2VlIGlmIHdlIGhhdmUg
ZXhjZWVkZWQgdGhlIGF2YWlsYWJsZSBxdW90YS4KICAgICAvLyBXZSBjYW4gc3RvcCBpbW1lZGlh
dGVseSBpZiB3ZSBoYXZlIGFscmVhZHkgcHJldmlvdXNseSBmYWlsZWQKQEAgLTYwMyw3ICs2MDMs
NyBAQCB2b2lkIEFwcGxpY2F0aW9uQ2FjaGVHcm91cDo6ZGlkRmluaXNoTG9hZGluZyhSZXNvdXJj
ZUhhbmRsZSogaGFuZGxlLCBkb3VibGUgZmluaQogICAgIC8vIG9mIHRoZSBxdW90YSBiZWluZyBy
ZWFjaGVkIGFuZCBkZWNpZGVkIG5vdCB0byBpbmNyZWFzZSBpdCB0aGVuLgogICAgIC8vIEZJWE1F
OiBTaG91bGQgd2UgYnJlYWsgZWFybGllciBhbmQgcHJldmVudCByZWRvd25sb2FkaW5nIG9uIGxh
dGVyIHBhZ2UgbG9hZHM/CiAgICAgaWYgKG1fb3JpZ2luUXVvdGFFeGNlZWRlZFByZXZpb3VzbHkg
JiYgbV9hdmFpbGFibGVTcGFjZUluUXVvdGEgPCBtX2NhY2hlQmVpbmdVcGRhdGVkLT5lc3RpbWF0
ZWRTaXplSW5TdG9yYWdlKCkpIHsKLSAgICAgICAgbV9jdXJyZW50UmVzb3VyY2UgPSAwOworICAg
ICAgICBtX2N1cnJlbnRSZXNvdXJjZSA9IG51bGxwdHI7CiAgICAgICAgIG1fZnJhbWUtPmRvY3Vt
ZW50KCktPmFkZENvbnNvbGVNZXNzYWdlKE1lc3NhZ2VTb3VyY2U6OkFwcENhY2hlLCBNZXNzYWdl
TGV2ZWw6OkVycm9yLCBBU0NJSUxpdGVyYWwoIkFwcGxpY2F0aW9uIENhY2hlIHVwZGF0ZSBmYWls
ZWQsIGJlY2F1c2Ugc2l6ZSBxdW90YSB3YXMgZXhjZWVkZWQuIikpOwogICAgICAgICBjYWNoZVVw
ZGF0ZUZhaWxlZCgpOwogICAgICAgICByZXR1cm47CkBAIC02MzEsNyArNjMxLDcgQEAgdm9pZCBB
cHBsaWNhdGlvbkNhY2hlR3JvdXA6OmRpZEZhaWwoUmVzb3VyY2VIYW5kbGUqIGhhbmRsZSwgY29u
c3QgUmVzb3VyY2VFcnJvciYKICAgICAgICAgdXJsLnJlbW92ZUZyYWdtZW50SWRlbnRpZmllcigp
OwogCiAgICAgQVNTRVJUKCFtX2N1cnJlbnRSZXNvdXJjZSB8fCAhbV9wZW5kaW5nRW50cmllcy5j
b250YWlucyh1cmwpKTsKLSAgICBtX2N1cnJlbnRSZXNvdXJjZSA9IDA7CisgICAgbV9jdXJyZW50
UmVzb3VyY2UgPSBudWxscHRyOwogICAgIG1fcGVuZGluZ0VudHJpZXMucmVtb3ZlKHVybCk7CiAK
ICAgICBpZiAoKHR5cGUgJiBBcHBsaWNhdGlvbkNhY2hlUmVzb3VyY2U6OkV4cGxpY2l0KSB8fCAo
dHlwZSAmIEFwcGxpY2F0aW9uQ2FjaGVSZXNvdXJjZTo6RmFsbGJhY2spKSB7CkBAIC02OTUsNyAr
Njk1LDcgQEAgdm9pZCBBcHBsaWNhdGlvbkNhY2hlR3JvdXA6OmRpZEZpbmlzaExvYWRpbmdNYW5p
ZmVzdCgpCiAgICAgICAgIHJldHVybjsKICAgICB9CiAKLSAgICBtX21hbmlmZXN0SGFuZGxlID0g
MDsKKyAgICBtX21hbmlmZXN0SGFuZGxlID0gbnVsbHB0cjsKIAogICAgIC8vIENoZWNrIGlmIHRo
ZSBtYW5pZmVzdCB3YXMgbm90IG1vZGlmaWVkLgogICAgIGlmIChpc1VwZ3JhZGVBdHRlbXB0KSB7
CkBAIC03MDYsNyArNzA2LDcgQEAgdm9pZCBBcHBsaWNhdGlvbkNhY2hlR3JvdXA6OmRpZEZpbmlz
aExvYWRpbmdNYW5pZmVzdCgpCiAgICAgICAgICAgICAobmV3ZXN0TWFuaWZlc3QtPmRhdGEoKS0+
c2l6ZSgpID09IG1fbWFuaWZlc3RSZXNvdXJjZS0+ZGF0YSgpLT5zaXplKCkgJiYgIW1lbWNtcChu
ZXdlc3RNYW5pZmVzdC0+ZGF0YSgpLT5kYXRhKCksIG1fbWFuaWZlc3RSZXNvdXJjZS0+ZGF0YSgp
LT5kYXRhKCksIG5ld2VzdE1hbmlmZXN0LT5kYXRhKCktPnNpemUoKSkpKSB7CiAKICAgICAgICAg
ICAgIG1fY29tcGxldGlvblR5cGUgPSBOb1VwZGF0ZTsKLSAgICAgICAgICAgIG1fbWFuaWZlc3RS
ZXNvdXJjZSA9IDA7CisgICAgICAgICAgICBtX21hbmlmZXN0UmVzb3VyY2UgPSBudWxscHRyOwog
ICAgICAgICAgICAgZGVsaXZlckRlbGF5ZWRNYWluUmVzb3VyY2VzKCk7CiAKICAgICAgICAgICAg
IHJldHVybjsKQEAgLTc4Miw3ICs3ODIsNyBAQCB2b2lkIEFwcGxpY2F0aW9uQ2FjaGVHcm91cDo6
ZGlkUmVhY2hPcmlnaW5RdW90YShpbnQ2NF90IHRvdGFsU3BhY2VOZWVkZWQpCiB2b2lkIEFwcGxp
Y2F0aW9uQ2FjaGVHcm91cDo6Y2FjaGVVcGRhdGVGYWlsZWQoKQogewogICAgIHN0b3BMb2FkaW5n
KCk7Ci0gICAgbV9tYW5pZmVzdFJlc291cmNlID0gMDsKKyAgICBtX21hbmlmZXN0UmVzb3VyY2Ug
PSBudWxscHRyOwogCiAgICAgLy8gV2FpdCBmb3IgbWFzdGVyIHJlc291cmNlIGxvYWRzIHRvIGZp
bmlzaC4KICAgICBtX2NvbXBsZXRpb25UeXBlID0gRmFpbHVyZTsKQEAgLTgwNyw3ICs4MDcsNyBA
QCB2b2lkIEFwcGxpY2F0aW9uQ2FjaGVHcm91cDo6bWFuaWZlc3ROb3RGb3VuZCgpCiAgICAgc3Rv
cExvYWRpbmcoKTsKIAogICAgIEFTU0VSVChtX3BlbmRpbmdFbnRyaWVzLmlzRW1wdHkoKSk7Ci0g
ICAgbV9tYW5pZmVzdFJlc291cmNlID0gMDsKKyAgICBtX21hbmlmZXN0UmVzb3VyY2UgPSBudWxs
cHRyOwogCiAgICAgd2hpbGUgKCFtX3BlbmRpbmdNYXN0ZXJSZXNvdXJjZUxvYWRlcnMuaXNFbXB0
eSgpKSB7CiAgICAgICAgIEhhc2hTZXQ8RG9jdW1lbnRMb2FkZXIqPjo6aXRlcmF0b3IgaXQgPSBt
X3BlbmRpbmdNYXN0ZXJSZXNvdXJjZUxvYWRlcnMuYmVnaW4oKTsKZGlmZiAtLWdpdCBhL1NvdXJj
ZS9XZWJDb3JlL2xvYWRlci9jYWNoZS9DYWNoZWRDU1NTdHlsZVNoZWV0LmNwcCBiL1NvdXJjZS9X
ZWJDb3JlL2xvYWRlci9jYWNoZS9DYWNoZWRDU1NTdHlsZVNoZWV0LmNwcAppbmRleCA3YzJmZTdk
ODkyNGY0ZjkwZWNkZDU4MjA2NmFmZTI3YzA5ZjMwOGMxLi42ZDExODgwMWFmODI2ODQ1ZmI2MTk5
MjcwNDRhZjliMmIyZDIzNmM0IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9sb2FkZXIvY2Fj
aGUvQ2FjaGVkQ1NTU3R5bGVTaGVldC5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvbG9hZGVyL2Nh
Y2hlL0NhY2hlZENTU1N0eWxlU2hlZXQuY3BwCkBAIC0xMzgsNyArMTM4LDcgQEAgdm9pZCBDYWNo
ZWRDU1NTdHlsZVNoZWV0OjpkZXN0cm95RGVjb2RlZERhdGEoKQogICAgICAgICByZXR1cm47CiAK
ICAgICBtX3BhcnNlZFN0eWxlU2hlZXRDYWNoZS0+cmVtb3ZlZEZyb21NZW1vcnlDYWNoZSgpOwot
ICAgIG1fcGFyc2VkU3R5bGVTaGVldENhY2hlLmNsZWFyKCk7CisgICAgbV9wYXJzZWRTdHlsZVNo
ZWV0Q2FjaGUgPSBudWxscHRyOwogCiAgICAgc2V0RGVjb2RlZFNpemUoMCk7CiB9CkBAIC0xNDYs
MTEgKzE0NiwxMSBAQCB2b2lkIENhY2hlZENTU1N0eWxlU2hlZXQ6OmRlc3Ryb3lEZWNvZGVkRGF0
YSgpCiBQYXNzUmVmUHRyPFN0eWxlU2hlZXRDb250ZW50cz4gQ2FjaGVkQ1NTU3R5bGVTaGVldDo6
cmVzdG9yZVBhcnNlZFN0eWxlU2hlZXQoY29uc3QgQ1NTUGFyc2VyQ29udGV4dCYgY29udGV4dCwg
Q2FjaGVQb2xpY3kgY2FjaGVQb2xpY3kpCiB7CiAgICAgaWYgKCFtX3BhcnNlZFN0eWxlU2hlZXRD
YWNoZSkKLSAgICAgICAgcmV0dXJuIDA7CisgICAgICAgIHJldHVybiBudWxscHRyOwogICAgIGlm
ICghbV9wYXJzZWRTdHlsZVNoZWV0Q2FjaGUtPnN1YnJlc291cmNlc0FsbG93UmV1c2UoY2FjaGVQ
b2xpY3kpKSB7CiAgICAgICAgIG1fcGFyc2VkU3R5bGVTaGVldENhY2hlLT5yZW1vdmVkRnJvbU1l
bW9yeUNhY2hlKCk7Ci0gICAgICAgIG1fcGFyc2VkU3R5bGVTaGVldENhY2hlLmNsZWFyKCk7Ci0g
ICAgICAgIHJldHVybiAwOworICAgICAgICBtX3BhcnNlZFN0eWxlU2hlZXRDYWNoZSA9IG51bGxw
dHI7CisgICAgICAgIHJldHVybiBudWxscHRyOwogICAgIH0KIAogICAgIEFTU0VSVChtX3BhcnNl
ZFN0eWxlU2hlZXRDYWNoZS0+aXNDYWNoZWFibGUoKSk7CkBAIC0xNTgsNyArMTU4LDcgQEAgUGFz
c1JlZlB0cjxTdHlsZVNoZWV0Q29udGVudHM+IENhY2hlZENTU1N0eWxlU2hlZXQ6OnJlc3RvcmVQ
YXJzZWRTdHlsZVNoZWV0KGNvbnMKIAogICAgIC8vIENvbnRleHRzIG11c3QgYmUgaWRlbnRpY2Fs
IHNvIHdlIGtub3cgd2Ugd291bGQgZ2V0IHRoZSBzYW1lIGV4YWN0IHJlc3VsdCBpZiB3ZSBwYXJz
ZWQgYWdhaW4uCiAgICAgaWYgKG1fcGFyc2VkU3R5bGVTaGVldENhY2hlLT5wYXJzZXJDb250ZXh0
KCkgIT0gY29udGV4dCkKLSAgICAgICAgcmV0dXJuIDA7CisgICAgICAgIHJldHVybiBudWxscHRy
OwogCiAgICAgZGlkQWNjZXNzRGVjb2RlZERhdGEobW9ub3RvbmljYWxseUluY3JlYXNpbmdUaW1l
KCkpOwogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9sb2FkZXIvY2FjaGUvQ2FjaGVkSW1h
Z2UuY3BwIGIvU291cmNlL1dlYkNvcmUvbG9hZGVyL2NhY2hlL0NhY2hlZEltYWdlLmNwcAppbmRl
eCA1Mjc2OWRiOTZjZTE3ZGVhZDcyMDQxYTc2ODFiYTZmMmEwYWQ1OTg5Li5kZjMzNjc1YzYzYjVk
YjRhZjAzZTMyOTM3YzkxYTlkNzM0MDRhNzBhIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9s
b2FkZXIvY2FjaGUvQ2FjaGVkSW1hZ2UuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2xvYWRlci9j
YWNoZS9DYWNoZWRJbWFnZS5jcHAKQEAgLTM2NSw4ICszNjUsOCBAQCBpbmxpbmUgdm9pZCBDYWNo
ZWRJbWFnZTo6Y2xlYXJJbWFnZSgpCiAgICAgLy8gSWYgb3VyIEltYWdlIGhhcyBhbiBvYnNlcnZl
ciwgaXQncyBhbHdheXMgdXMgc28gd2UgbmVlZCB0byBjbGVhciB0aGUgYmFjayBwb2ludGVyCiAg
ICAgLy8gYmVmb3JlIGRyb3BwaW5nIG91ciByZWZlcmVuY2UuCiAgICAgaWYgKG1faW1hZ2UpCi0g
ICAgICAgIG1faW1hZ2UtPnNldEltYWdlT2JzZXJ2ZXIoMCk7Ci0gICAgbV9pbWFnZS5jbGVhcigp
OworICAgICAgICBtX2ltYWdlLT5zZXRJbWFnZU9ic2VydmVyKG51bGxwdHIpOworICAgIG1faW1h
Z2UgPSBudWxscHRyOwogfQogCiB2b2lkIENhY2hlZEltYWdlOjphZGRJbmNyZW1lbnRhbERhdGFC
dWZmZXIoU2hhcmVkQnVmZmVyJiBkYXRhKQpAQCAtNDU4LDcgKzQ1OCw3IEBAIHZvaWQgQ2FjaGVk
SW1hZ2U6OmRlc3Ryb3lEZWNvZGVkRGF0YSgpCiB7CiAgICAgYm9vbCBjYW5EZWxldGVJbWFnZSA9
ICFtX2ltYWdlIHx8IChtX2ltYWdlLT5oYXNPbmVSZWYoKSAmJiBtX2ltYWdlLT5pc0JpdG1hcElt
YWdlKCkpOwogICAgIGlmIChjYW5EZWxldGVJbWFnZSAmJiAhaXNMb2FkaW5nKCkgJiYgIWhhc0Ns
aWVudHMoKSkgewotICAgICAgICBtX2ltYWdlID0gMDsKKyAgICAgICAgbV9pbWFnZSA9IG51bGxw
dHI7CiAgICAgICAgIHNldERlY29kZWRTaXplKDApOwogICAgIH0gZWxzZSBpZiAobV9pbWFnZSAm
JiAhZXJyb3JPY2N1cnJlZCgpKQogICAgICAgICBtX2ltYWdlLT5kZXN0cm95RGVjb2RlZERhdGEo
KTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2xvYWRlci9jYWNoZS9DYWNoZWRSYXdSZXNv
dXJjZS5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9sb2FkZXIvY2FjaGUvQ2FjaGVkUmF3UmVzb3VyY2Uu
Y3BwCmluZGV4IDNjMWIyOTU1NGIxOWMwNWUyZmU5MWViMDdlMGU1NTJjMmY5OGE4ZjQuLjU0YmJk
ZTFhYzhlYzg3MTQ4YTk1M2QzZGQ3NzgyYTdiM2UzMjQ1NjUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9X
ZWJDb3JlL2xvYWRlci9jYWNoZS9DYWNoZWRSYXdSZXNvdXJjZS5jcHAKKysrIGIvU291cmNlL1dl
YkNvcmUvbG9hZGVyL2NhY2hlL0NhY2hlZFJhd1Jlc291cmNlLmNwcApAQCAtMjY4LDcgKzI2OCw3
IEBAIGJvb2wgQ2FjaGVkUmF3UmVzb3VyY2U6OmNhblJldXNlKGNvbnN0IFJlc291cmNlUmVxdWVz
dCYgbmV3UmVxdWVzdCkgY29uc3QKIAogdm9pZCBDYWNoZWRSYXdSZXNvdXJjZTo6Y2xlYXIoKQog
ewotICAgIG1fZGF0YS5jbGVhcigpOworICAgIG1fZGF0YSA9IG51bGxwdHI7CiAgICAgc2V0RW5j
b2RlZFNpemUoMCk7CiAgICAgaWYgKG1fbG9hZGVyKQogICAgICAgICBtX2xvYWRlci0+Y2xlYXJS
ZXNvdXJjZURhdGEoKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2xvYWRlci9jYWNoZS9D
YWNoZWRSZXNvdXJjZS5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9sb2FkZXIvY2FjaGUvQ2FjaGVkUmVz
b3VyY2UuY3BwCmluZGV4IGY0NDMxYmYzZGRhZmNkMmZiNzAzODM3YzZmN2NjZDAxMzA3NTExZjAu
LjNiZWYyMWU4ZDk4OTg4YTAzOGRlYjdlMTBlMGVmNGUzY2VmNDNhNmIgMTAwNjQ0Ci0tLSBhL1Nv
dXJjZS9XZWJDb3JlL2xvYWRlci9jYWNoZS9DYWNoZWRSZXNvdXJjZS5jcHAKKysrIGIvU291cmNl
L1dlYkNvcmUvbG9hZGVyL2NhY2hlL0NhY2hlZFJlc291cmNlLmNwcApAQCAtMzE3LDcgKzMxNyw3
IEBAIHZvaWQgQ2FjaGVkUmVzb3VyY2U6OmVycm9yKENhY2hlZFJlc291cmNlOjpTdGF0dXMgc3Rh
dHVzKQogewogICAgIHNldFN0YXR1cyhzdGF0dXMpOwogICAgIEFTU0VSVChlcnJvck9jY3VycmVk
KCkpOwotICAgIG1fZGF0YS5jbGVhcigpOworICAgIG1fZGF0YSA9IG51bGxwdHI7CiAKICAgICBz
ZXRMb2FkaW5nKGZhbHNlKTsKICAgICBjaGVja05vdGlmeSgpOwpkaWZmIC0tZ2l0IGEvU291cmNl
L1dlYkNvcmUvbG9hZGVyL2ljb24vSWNvblJlY29yZC5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9sb2Fk
ZXIvaWNvbi9JY29uUmVjb3JkLmNwcAppbmRleCBkNGJjMGQxYTE5ZjM3MDYyYmY3Y2E1OGVkYzY0
MmJmZWU2MjA1YTg4Li5lN2YxZDRiMjMzNDYxMDY5NGRkMzFlZTdlYzQ0MDQ3ZjgzNzNiNzY1IDEw
MDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9sb2FkZXIvaWNvbi9JY29uUmVjb3JkLmNwcAorKysg
Yi9Tb3VyY2UvV2ViQ29yZS9sb2FkZXIvaWNvbi9JY29uUmVjb3JkLmNwcApAQCAtNzEsNyArNzEs
NyBAQCB2b2lkIEljb25SZWNvcmQ6OnNldEltYWdlRGF0YShQYXNzUmVmUHRyPFNoYXJlZEJ1ZmZl
cj4gZGF0YSkKICAgICAvLyBDb3B5IHRoZSBwcm92aWRlZCBkYXRhIGludG8gdGhlIGJ1ZmZlciBv
ZiB0aGUgbmV3IEltYWdlIG9iamVjdC4KICAgICBpZiAoIW1faW1hZ2UtPnNldERhdGEoZGF0YSwg
dHJ1ZSkpIHsKICAgICAgICAgTE9HKEljb25EYXRhYmFzZSwgIk1hbnVhbCBpbWFnZSBkYXRhIGZv
ciBpY29uVVJMICclcycgRkFJTEVEIC0gaXQgd2FzIHByb2JhYmx5IGludmFsaWQgaW1hZ2UgZGF0
YSIsIG1faWNvblVSTC5hc2NpaSgpLmRhdGEoKSk7Ci0gICAgICAgIG1faW1hZ2UuY2xlYXIoKTsK
KyAgICAgICAgbV9pbWFnZSA9IG51bGxwdHI7CiAgICAgfQogICAgIAogICAgIG1fZGF0YVNldCA9
IHRydWU7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wYWdlL0V2ZW50SGFuZGxlci5jcHAg
Yi9Tb3VyY2UvV2ViQ29yZS9wYWdlL0V2ZW50SGFuZGxlci5jcHAKaW5kZXggNjU0YTRmZWM3NzM3
OTcyM2Q3YjYxZjM2MTY3YWJhMjVlODk0NTA5Yy4uM2FhNjZkOWJjODE0ZWMzYmZkYmQzNGM5ZDc1
ZTNlNzM1NjExNTRlMyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGFnZS9FdmVudEhhbmRs
ZXIuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BhZ2UvRXZlbnRIYW5kbGVyLmNwcApAQCAtNDg1
LDcgKzQ4NSw3IEBAIHZvaWQgRXZlbnRIYW5kbGVyOjpjbGVhcigpCiAgICAgbV9tb3VzZVBvc2l0
aW9uSXNVbmtub3duID0gdHJ1ZTsKICAgICBtX2xhc3RLbm93bk1vdXNlUG9zaXRpb24gPSBJbnRQ
b2ludCgpOwogICAgIG1fbGFzdEtub3duTW91c2VHbG9iYWxQb3NpdGlvbiA9IEludFBvaW50KCk7
Ci0gICAgbV9tb3VzZVByZXNzTm9kZSA9IDA7CisgICAgbV9tb3VzZVByZXNzTm9kZSA9IG51bGxw
dHI7CiAgICAgbV9tb3VzZVByZXNzZWQgPSBmYWxzZTsKICAgICBtX2NhcHR1cmVzRHJhZ2dpbmcg
PSBmYWxzZTsKICAgICBtX2NhcHR1cmluZ01vdXNlRXZlbnRzRWxlbWVudCA9IG51bGxwdHI7CkBA
IC00OTQsNyArNDk0LDcgQEAgdm9pZCBFdmVudEhhbmRsZXI6OmNsZWFyKCkKICNlbmRpZgogI2lm
IEVOQUJMRShUT1VDSF9FVkVOVFMpICYmICFFTkFCTEUoSU9TX1RPVUNIX0VWRU5UUykKICAgICBt
X29yaWdpbmF0aW5nVG91Y2hQb2ludFRhcmdldHMuY2xlYXIoKTsKLSAgICBtX29yaWdpbmF0aW5n
VG91Y2hQb2ludERvY3VtZW50LmNsZWFyKCk7CisgICAgbV9vcmlnaW5hdGluZ1RvdWNoUG9pbnRE
b2N1bWVudCA9IG51bGxwdHI7CiAgICAgbV9vcmlnaW5hdGluZ1RvdWNoUG9pbnRUYXJnZXRLZXkg
PSAwOwogI2VuZGlmCiAgICAgbV9tYXhNb3VzZU1vdmVkRHVyYXRpb24gPSAwOwpAQCAtMzk5NCw3
ICszOTk0LDcgQEAgYm9vbCBFdmVudEhhbmRsZXI6OmhhbmRsZVRvdWNoRXZlbnQoY29uc3QgUGxh
dGZvcm1Ub3VjaEV2ZW50JiBldmVudCkKICAgICB9CiAgICAgbV90b3VjaFByZXNzZWQgPSB0b3Vj
aGVzLT5sZW5ndGgoKSA+IDA7CiAgICAgaWYgKGFsbFRvdWNoUmVsZWFzZWQpCi0gICAgICAgIG1f
b3JpZ2luYXRpbmdUb3VjaFBvaW50RG9jdW1lbnQuY2xlYXIoKTsKKyAgICAgICAgbV9vcmlnaW5h
dGluZ1RvdWNoUG9pbnREb2N1bWVudCA9IG51bGxwdHI7CiAKICAgICAvLyBOb3cgaXRlcmF0ZSB0
aGUgY2hhbmdlZFRvdWNoZXMgbGlzdCBhbmQgbV90YXJnZXRzIHdpdGhpbiBpdCwgc2VuZGluZyBl
dmVudHMgdG8gdGhlIHRhcmdldHMgYXMgcmVxdWlyZWQuCiAgICAgYm9vbCBzd2FsbG93ZWRFdmVu
dCA9IGZhbHNlOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGFnZS9QYWdlLmNwcCBiL1Nv
dXJjZS9XZWJDb3JlL3BhZ2UvUGFnZS5jcHAKaW5kZXggMWQzZGNjMmI1NjM5NjIxNGU5ZjgwZjcy
YzhlMzNlYTE4OWI5M2FkMi4uZjg2ZDgxZmQwNTMwYTAzYzYyNjIyMTE2YzkwYmZlOTA1NjcxNjdi
MCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGFnZS9QYWdlLmNwcAorKysgYi9Tb3VyY2Uv
V2ViQ29yZS9wYWdlL1BhZ2UuY3BwCkBAIC01MTYsNyArNTE2LDcgQEAgdm9pZCBQYWdlOjpyZWZy
ZXNoUGx1Z2lucyhib29sIHJlbG9hZCkKICAgICBWZWN0b3I8UmVmPEZyYW1lPj4gZnJhbWVzTmVl
ZGluZ1JlbG9hZDsKIAogICAgIGZvciAoYXV0byYgcGFnZSA6ICphbGxQYWdlcykgewotICAgICAg
ICBwYWdlLT5tX3BsdWdpbkRhdGEuY2xlYXIoKTsKKyAgICAgICAgcGFnZS0+bV9wbHVnaW5EYXRh
ID0gbnVsbHB0cjsKIAogICAgICAgICBpZiAoIXJlbG9hZCkKICAgICAgICAgICAgIGNvbnRpbnVl
OwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vYXVkaW8vbWFjL0NBUmluZ0J1
ZmZlci5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9hdWRpby9tYWMvQ0FSaW5nQnVmZmVy
LmNwcAppbmRleCBmNzZlOGRmOTA2YjVhNjFlNTdjNzc1YzRjZTZkMmNjNDRiYzhhYTUyLi4wNTQ0
MmFkYzQ1ZTk3Nzg5OTMxNTIwNWMzNzJlNjE5NjAxMjc5ZDM3IDEwMDY0NAotLS0gYS9Tb3VyY2Uv
V2ViQ29yZS9wbGF0Zm9ybS9hdWRpby9tYWMvQ0FSaW5nQnVmZmVyLmNwcAorKysgYi9Tb3VyY2Uv
V2ViQ29yZS9wbGF0Zm9ybS9hdWRpby9tYWMvQ0FSaW5nQnVmZmVyLmNwcApAQCAtODYsNyArODYs
NyBAQCB2b2lkIENBUmluZ0J1ZmZlcjo6YWxsb2NhdGUodWludDMyX3QgY2hhbm5lbENvdW50LCBz
aXplX3QgYnl0ZXNQZXJGcmFtZSwgc2l6ZV90CiB2b2lkIENBUmluZ0J1ZmZlcjo6ZGVhbGxvY2F0
ZSgpCiB7CiAgICAgaWYgKG1fYnVmZmVycykKLSAgICAgICAgbV9idWZmZXJzLmNsZWFyKCk7Cisg
ICAgICAgIG1fYnVmZmVycyA9IG51bGxwdHI7CiAKICAgICBtX2NoYW5uZWxDb3VudCA9IDA7CiAg
ICAgbV9jYXBhY2l0eUJ5dGVzID0gMDsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRm
b3JtL2dyYXBoaWNzL0ZvbnQuY3BwIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3Mv
Rm9udC5jcHAKaW5kZXggNjAzZWJhODFmMDEwZmVmMGIwOWVhOTQ3YWU4ODZhNTE5OThiNWFjYy4u
ZDkyNjViNThkMmJlMjRhZDcxNDczYWJhNWIyM2I1MjZkMDkxMzcyZSAxMDA2NDQKLS0tIGEvU291
cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvRm9udC5jcHAKKysrIGIvU291cmNlL1dlYkNv
cmUvcGxhdGZvcm0vZ3JhcGhpY3MvRm9udC5jcHAKQEAgLTM2Myw3ICszNjMsNyBAQCBjb25zdCBP
cGVuVHlwZU1hdGhEYXRhKiBGb250OjptYXRoRGF0YSgpIGNvbnN0CiAgICAgaWYgKCFtX21hdGhE
YXRhKSB7CiAgICAgICAgIG1fbWF0aERhdGEgPSBPcGVuVHlwZU1hdGhEYXRhOjpjcmVhdGUobV9w
bGF0Zm9ybURhdGEpOwogICAgICAgICBpZiAoIW1fbWF0aERhdGEtPmhhc01hdGhEYXRhKCkpCi0g
ICAgICAgICAgICBtX21hdGhEYXRhLmNsZWFyKCk7CisgICAgICAgICAgICBtX21hdGhEYXRhID0g
bnVsbHB0cjsKICAgICB9CiAgICAgcmV0dXJuIG1fbWF0aERhdGEuZ2V0KCk7CiB9CmRpZmYgLS1n
aXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9Gb250Q2FjaGUuY3BwIGIvU291
cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvRm9udENhY2hlLmNwcAppbmRleCBhNmM0MDQ5
OTQ4Y2YzNjMyMWI3M2RkNTExYjkxOGEyYThhYWUwNDVjLi44ZDFhODM1OWQ2OWNiNzBlNGMyMGI1
ZWE4MzI4NzY1YTZiY2Q0NjM0IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9n
cmFwaGljcy9Gb250Q2FjaGUuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBo
aWNzL0ZvbnRDYWNoZS5jcHAKQEAgLTMyMCw3ICszMjAsNyBAQCBQYXNzUmVmUHRyPE9wZW5UeXBl
VmVydGljYWxEYXRhPiBGb250Q2FjaGU6OmdldFZlcnRpY2FsRGF0YShjb25zdCBGb250RmlsZUtl
eSYgawogCiAgICAgUmVmUHRyPE9wZW5UeXBlVmVydGljYWxEYXRhPiB2ZXJ0aWNhbERhdGEgPSBP
cGVuVHlwZVZlcnRpY2FsRGF0YTo6Y3JlYXRlKHBsYXRmb3JtRGF0YSk7CiAgICAgaWYgKCF2ZXJ0
aWNhbERhdGEtPmlzT3BlblR5cGUoKSkKLSAgICAgICAgdmVydGljYWxEYXRhLmNsZWFyKCk7Cisg
ICAgICAgIHZlcnRpY2FsRGF0YSA9IG51bGxwdHI7CiAgICAgZm9udFZlcnRpY2FsRGF0YUNhY2hl
LnNldChrZXksIHZlcnRpY2FsRGF0YSk7CiAgICAgcmV0dXJuIHZlcnRpY2FsRGF0YTsKIH0KZGlm
ZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL0dyYXBoaWNzQ29udGV4
dC5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9HcmFwaGljc0NvbnRleHQu
Y3BwCmluZGV4IGQzOGMxZmFmNzc1MjU4MzNmMzdlM2NiNjE3OGJiNGM2ZjY3Y2MzOTkuLmU2YjM3
ZmRlNWY5NWVjMDJjMmY3ZDY4YTYxZjQwZjQ3YTc3ZjI3MzEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9X
ZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL0dyYXBoaWNzQ29udGV4dC5jcHAKKysrIGIvU291cmNl
L1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvR3JhcGhpY3NDb250ZXh0LmNwcApAQCAtMTc4LDgg
KzE3OCw4IEBAIHZvaWQgR3JhcGhpY3NDb250ZXh0OjpzZXRTdHJva2VDb2xvcihjb25zdCBDb2xv
ciYgY29sb3IsIENvbG9yU3BhY2UgY29sb3JTcGFjZSkKIHsKICAgICBtX3N0YXRlLnN0cm9rZUNv
bG9yID0gY29sb3I7CiAgICAgbV9zdGF0ZS5zdHJva2VDb2xvclNwYWNlID0gY29sb3JTcGFjZTsK
LSAgICBtX3N0YXRlLnN0cm9rZUdyYWRpZW50LmNsZWFyKCk7Ci0gICAgbV9zdGF0ZS5zdHJva2VQ
YXR0ZXJuLmNsZWFyKCk7CisgICAgbV9zdGF0ZS5zdHJva2VHcmFkaWVudCA9IG51bGxwdHI7Cisg
ICAgbV9zdGF0ZS5zdHJva2VQYXR0ZXJuID0gbnVsbHB0cjsKICAgICBzZXRQbGF0Zm9ybVN0cm9r
ZUNvbG9yKGNvbG9yLCBjb2xvclNwYWNlKTsKIH0KIApAQCAtMjQ1LDggKzI0NSw4IEBAIHZvaWQg
R3JhcGhpY3NDb250ZXh0OjpzZXRGaWxsQ29sb3IoY29uc3QgQ29sb3ImIGNvbG9yLCBDb2xvclNw
YWNlIGNvbG9yU3BhY2UpCiB7CiAgICAgbV9zdGF0ZS5maWxsQ29sb3IgPSBjb2xvcjsKICAgICBt
X3N0YXRlLmZpbGxDb2xvclNwYWNlID0gY29sb3JTcGFjZTsKLSAgICBtX3N0YXRlLmZpbGxHcmFk
aWVudC5jbGVhcigpOwotICAgIG1fc3RhdGUuZmlsbFBhdHRlcm4uY2xlYXIoKTsKKyAgICBtX3N0
YXRlLmZpbGxHcmFkaWVudCA9IG51bGxwdHI7CisgICAgbV9zdGF0ZS5maWxsUGF0dGVybiA9IG51
bGxwdHI7CiAgICAgc2V0UGxhdGZvcm1GaWxsQ29sb3IoY29sb3IsIGNvbG9yU3BhY2UpOwogfQog
CkBAIC0yNjksMjYgKzI2OSwyNiBAQCB2b2lkIEdyYXBoaWNzQ29udGV4dDo6c2V0QW50aWFsaWFz
ZWRGb250RGlsYXRpb25FbmFibGVkKGJvb2wgYW50aWFsaWFzZWRGb250RGlsYQogCiB2b2lkIEdy
YXBoaWNzQ29udGV4dDo6c2V0U3Ryb2tlUGF0dGVybihSZWY8UGF0dGVybj4mJiBwYXR0ZXJuKQog
ewotICAgIG1fc3RhdGUuc3Ryb2tlR3JhZGllbnQuY2xlYXIoKTsKKyAgICBtX3N0YXRlLnN0cm9r
ZUdyYWRpZW50ID0gbnVsbHB0cjsKICAgICBtX3N0YXRlLnN0cm9rZVBhdHRlcm4gPSBXVEY6Om1v
dmUocGF0dGVybik7CiB9CiAKIHZvaWQgR3JhcGhpY3NDb250ZXh0OjpzZXRGaWxsUGF0dGVybihS
ZWY8UGF0dGVybj4mJiBwYXR0ZXJuKQogewotICAgIG1fc3RhdGUuZmlsbEdyYWRpZW50LmNsZWFy
KCk7CisgICAgbV9zdGF0ZS5maWxsR3JhZGllbnQgPSBudWxscHRyOwogICAgIG1fc3RhdGUuZmls
bFBhdHRlcm4gPSBXVEY6Om1vdmUocGF0dGVybik7CiB9CiAKIHZvaWQgR3JhcGhpY3NDb250ZXh0
OjpzZXRTdHJva2VHcmFkaWVudChSZWY8R3JhZGllbnQ+JiYgZ3JhZGllbnQpCiB7CiAgICAgbV9z
dGF0ZS5zdHJva2VHcmFkaWVudCA9IFdURjo6bW92ZShncmFkaWVudCk7Ci0gICAgbV9zdGF0ZS5z
dHJva2VQYXR0ZXJuLmNsZWFyKCk7CisgICAgbV9zdGF0ZS5zdHJva2VQYXR0ZXJuID0gbnVsbHB0
cjsKIH0KIAogdm9pZCBHcmFwaGljc0NvbnRleHQ6OnNldEZpbGxHcmFkaWVudChSZWY8R3JhZGll
bnQ+JiYgZ3JhZGllbnQpCiB7CiAgICAgbV9zdGF0ZS5maWxsR3JhZGllbnQgPSBXVEY6Om1vdmUo
Z3JhZGllbnQpOwotICAgIG1fc3RhdGUuZmlsbFBhdHRlcm4uY2xlYXIoKTsKKyAgICBtX3N0YXRl
LmZpbGxQYXR0ZXJuID0gbnVsbHB0cjsKIH0KIAogdm9pZCBHcmFwaGljc0NvbnRleHQ6OmJlZ2lu
VHJhbnNwYXJlbmN5TGF5ZXIoZmxvYXQgb3BhY2l0eSkKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJD
b3JlL3BsYXRmb3JtL2dyYXBoaWNzL01lZGlhUGxheWVyLmNwcCBiL1NvdXJjZS9XZWJDb3JlL3Bs
YXRmb3JtL2dyYXBoaWNzL01lZGlhUGxheWVyLmNwcAppbmRleCAyOTRhNzZkOWY4NmVmMmU3NzUw
ZDM2YTgzYTk4N2Q3NjBkNDBiMWQyLi4wMTI3OTVlNDY1YmVhMDRkMGY4N2U3Mjc3ZTc0ZTBmZTVi
NTg3MmIxIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9NZWRp
YVBsYXllci5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvTWVkaWFQ
bGF5ZXIuY3BwCkBAIC0zMTQsMTAgKzMxNCwxMCBAQCBib29sIE1lZGlhUGxheWVyOjpsb2FkKGNv
bnN0IFVSTCYgdXJsLCBjb25zdCBDb250ZW50VHlwZSYgY29udGVudFR5cGUsIGNvbnN0IFN0cgog
ICAgIG1fY29udGVudE1JTUVUeXBlV2FzSW5mZXJyZWRGcm9tRXh0ZW5zaW9uID0gZmFsc2U7CiAK
ICNpZiBFTkFCTEUoTUVESUFfU09VUkNFKQotICAgIG1fbWVkaWFTb3VyY2UgPSAwOworICAgIG1f
bWVkaWFTb3VyY2UgPSBudWxscHRyOwogI2VuZGlmCiAjaWYgRU5BQkxFKE1FRElBX1NUUkVBTSkK
LSAgICBtX21lZGlhU3RyZWFtID0gMDsKKyAgICBtX21lZGlhU3RyZWFtID0gbnVsbHB0cjsKICNl
bmRpZgogCiAgICAgLy8gSWYgdGhlIE1JTUUgdHlwZSBpcyBtaXNzaW5nIG9yIGlzIG5vdCBtZWFu
aW5nZnVsLCB0cnkgdG8gZmlndXJlIGl0IG91dCBmcm9tIHRoZSBVUkwuCmRpZmYgLS1naXQgYS9T
b3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9jYS9HcmFwaGljc0xheWVyQ0EuY3BwIGIv
U291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvY2EvR3JhcGhpY3NMYXllckNBLmNwcApp
bmRleCA4MmMwNzY5MTI3YmY5ZTUxNjlkYWU0OGRmYjRiMjg5MDJmZTkwNmMwLi4zNGY0Y2UxMDNh
OTM2ZTNhMDExYjg1Y2ZiNGRmZWVjZDYxNTJjOGU4IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29y
ZS9wbGF0Zm9ybS9ncmFwaGljcy9jYS9HcmFwaGljc0xheWVyQ0EuY3BwCisrKyBiL1NvdXJjZS9X
ZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2NhL0dyYXBoaWNzTGF5ZXJDQS5jcHAKQEAgLTIyMDgs
NyArMjIwOCw3IEBAIHZvaWQgR3JhcGhpY3NMYXllckNBOjp1cGRhdGVDb250ZW50c0ltYWdlKCkK
ICAgICB9IGVsc2UgewogICAgICAgICAvLyBObyBpbWFnZS4KICAgICAgICAgLy8gbV9jb250ZW50
c0xheWVyIHdpbGwgYmUgcmVtb3ZlZCB2aWEgdXBkYXRlU3VibGF5ZXJMaXN0LgotICAgICAgICBt
X2NvbnRlbnRzTGF5ZXIgPSAwOworICAgICAgICBtX2NvbnRlbnRzTGF5ZXIgPSBudWxscHRyOwog
ICAgIH0KIH0KIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3Mv
Y2Fpcm8vQmFja2luZ1N0b3JlQmFja2VuZENhaXJvWDExLmNwcCBiL1NvdXJjZS9XZWJDb3JlL3Bs
YXRmb3JtL2dyYXBoaWNzL2NhaXJvL0JhY2tpbmdTdG9yZUJhY2tlbmRDYWlyb1gxMS5jcHAKaW5k
ZXggN2I4NjMxYWYwYTlkOGY0YWU5MDYzYjI3OWU0MGNlZTM0NTQ5Y2ZhNC4uNDM3ZGFmYzgyZmQy
MmVjYmYwNjA0N2EzYzI4Njg5ZWJlMDIyMzZkMiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUv
cGxhdGZvcm0vZ3JhcGhpY3MvY2Fpcm8vQmFja2luZ1N0b3JlQmFja2VuZENhaXJvWDExLmNwcAor
KysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9jYWlyby9CYWNraW5nU3RvcmVC
YWNrZW5kQ2Fpcm9YMTEuY3BwCkBAIC00Myw3ICs0Myw3IEBAIEJhY2tpbmdTdG9yZUJhY2tlbmRD
YWlyb1gxMTo6QmFja2luZ1N0b3JlQmFja2VuZENhaXJvWDExKHVuc2lnbmVkIGxvbmcgcm9vdFdp
bmRvCiBCYWNraW5nU3RvcmVCYWNrZW5kQ2Fpcm9YMTE6On5CYWNraW5nU3RvcmVCYWNrZW5kQ2Fp
cm9YMTEoKQogewogICAgIC8vIFRoZSBwaXhtYXAgbmVlZHMgdG8gZXhpc3Qgd2hlbiB0aGUgc3Vy
ZmFjZSBpcyBkZXN0cm95ZWQsIHNvIGJlZ2luIGJ5IGNsZWFyaW5nIGl0LgotICAgIG1fc3VyZmFj
ZS5jbGVhcigpOworICAgIG1fc3VyZmFjZSA9IG51bGxwdHI7CiB9CiAKIHZvaWQgQmFja2luZ1N0
b3JlQmFja2VuZENhaXJvWDExOjpzY3JvbGwoY29uc3QgSW50UmVjdCYgc2Nyb2xsUmVjdCwgY29u
c3QgSW50U2l6ZSYgc2Nyb2xsT2Zmc2V0KQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxh
dGZvcm0vZ3JhcGhpY3MvY2Fpcm8vQml0bWFwSW1hZ2VDYWlyby5jcHAgYi9Tb3VyY2UvV2ViQ29y
ZS9wbGF0Zm9ybS9ncmFwaGljcy9jYWlyby9CaXRtYXBJbWFnZUNhaXJvLmNwcAppbmRleCAyNmRm
NWRmM2FiYTQ5MDc2MDEyNzg5YzI2NmZhOTYwMjc3NWJlMmRlLi5mMGQzYTdhNzJkYjkyZmRlMWQx
YjVmOTkzOGIzYzBjMWU3YWQ2MWYxIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9y
bS9ncmFwaGljcy9jYWlyby9CaXRtYXBJbWFnZUNhaXJvLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29y
ZS9wbGF0Zm9ybS9ncmFwaGljcy9jYWlyby9CaXRtYXBJbWFnZUNhaXJvLmNwcApAQCAtMTU5LDcg
KzE1OSw3IEBAIGJvb2wgRnJhbWVEYXRhOjpjbGVhcihib29sIGNsZWFyTWV0YWRhdGEpCiAgICAg
ICAgIG1faGF2ZU1ldGFkYXRhID0gZmFsc2U7CiAKICAgICBpZiAobV9mcmFtZSkgewotICAgICAg
ICBtX2ZyYW1lLmNsZWFyKCk7CisgICAgICAgIG1fZnJhbWUgPSBudWxscHRyOwogICAgICAgICBy
ZXR1cm4gdHJ1ZTsKICAgICB9CiAgICAgcmV0dXJuIGZhbHNlOwpkaWZmIC0tZ2l0IGEvU291cmNl
L1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvZmlsdGVycy9GaWx0ZXJFZmZlY3QuY3BwIGIvU291
cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvZmlsdGVycy9GaWx0ZXJFZmZlY3QuY3BwCmlu
ZGV4IDc2MjcwMDgwMzBkN2VmYWU2ZTA4MGU2ODc1OGRjMTYwZWFjMmMwYjkuLmM5OGQ1Yjk4NWFm
M2JiMWU1YjBjMGMyMjZiYjQ1ZmM2MDU0ZjQzM2MgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3Jl
L3BsYXRmb3JtL2dyYXBoaWNzL2ZpbHRlcnMvRmlsdGVyRWZmZWN0LmNwcAorKysgYi9Tb3VyY2Uv
V2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9maWx0ZXJzL0ZpbHRlckVmZmVjdC5jcHAKQEAgLTI0
NSwxMiArMjQ1LDEyIEBAIHZvaWQgRmlsdGVyRWZmZWN0OjpjbGVhclJlc3VsdCgpCiAgICAgaWYg
KG1faW1hZ2VCdWZmZXJSZXN1bHQpCiAgICAgICAgIG1faW1hZ2VCdWZmZXJSZXN1bHQucmVzZXQo
KTsKICAgICBpZiAobV91bm11bHRpcGxpZWRJbWFnZVJlc3VsdCkKLSAgICAgICAgbV91bm11bHRp
cGxpZWRJbWFnZVJlc3VsdC5jbGVhcigpOworICAgICAgICBtX3VubXVsdGlwbGllZEltYWdlUmVz
dWx0ID0gbnVsbHB0cjsKICAgICBpZiAobV9wcmVtdWx0aXBsaWVkSW1hZ2VSZXN1bHQpCi0gICAg
ICAgIG1fcHJlbXVsdGlwbGllZEltYWdlUmVzdWx0LmNsZWFyKCk7CisgICAgICAgIG1fcHJlbXVs
dGlwbGllZEltYWdlUmVzdWx0ID0gbnVsbHB0cjsKICNpZiBFTkFCTEUoT1BFTkNMKQogICAgIGlm
IChtX29wZW5DTEltYWdlUmVzdWx0KQotICAgICAgICBtX29wZW5DTEltYWdlUmVzdWx0LmNsZWFy
KCk7CisgICAgICAgIG1fb3BlbkNMSW1hZ2VSZXN1bHQgPSBudWxscHRyOwogI2VuZGlmCiB9CiAK
QEAgLTU0MCw3ICs1NDAsNyBAQCB2b2lkIEZpbHRlckVmZmVjdDo6dHJhbnNmb3JtUmVzdWx0Q29s
b3JTcGFjZShDb2xvclNwYWNlIGRzdENvbG9yU3BhY2UpCiAjaWYgRU5BQkxFKE9QRU5DTCkKICAg
ICBpZiAob3BlbkNMSW1hZ2UoKSkgewogICAgICAgICBpZiAobV9pbWFnZUJ1ZmZlclJlc3VsdCkK
LSAgICAgICAgICAgIG1faW1hZ2VCdWZmZXJSZXN1bHQuY2xlYXIoKTsKKyAgICAgICAgICAgIG1f
aW1hZ2VCdWZmZXJSZXN1bHQgPSBudWxscHRyOwogICAgICAgICBGaWx0ZXJDb250ZXh0T3BlbkNM
KiBjb250ZXh0ID0gRmlsdGVyQ29udGV4dE9wZW5DTDo6Y29udGV4dCgpOwogICAgICAgICBBU1NF
UlQoY29udGV4dCk7CiAgICAgICAgIGNvbnRleHQtPm9wZW5DTFRyYW5zZm9ybUNvbG9yU3BhY2Uo
bV9vcGVuQ0xJbWFnZVJlc3VsdCwgYWJzb2x1dGVQYWludFJlY3QoKSwgbV9yZXN1bHRDb2xvclNw
YWNlLCBkc3RDb2xvclNwYWNlKTsKQEAgLTU1OCw5ICs1NTgsOSBAQCB2b2lkIEZpbHRlckVmZmVj
dDo6dHJhbnNmb3JtUmVzdWx0Q29sb3JTcGFjZShDb2xvclNwYWNlIGRzdENvbG9yU3BhY2UpCiAg
ICAgbV9yZXN1bHRDb2xvclNwYWNlID0gZHN0Q29sb3JTcGFjZTsKIAogICAgIGlmIChtX3VubXVs
dGlwbGllZEltYWdlUmVzdWx0KQotICAgICAgICBtX3VubXVsdGlwbGllZEltYWdlUmVzdWx0LmNs
ZWFyKCk7CisgICAgICAgIG1fdW5tdWx0aXBsaWVkSW1hZ2VSZXN1bHQgPSBudWxscHRyOwogICAg
IGlmIChtX3ByZW11bHRpcGxpZWRJbWFnZVJlc3VsdCkKLSAgICAgICAgbV9wcmVtdWx0aXBsaWVk
SW1hZ2VSZXN1bHQuY2xlYXIoKTsKKyAgICAgICAgbV9wcmVtdWx0aXBsaWVkSW1hZ2VSZXN1bHQg
PSBudWxscHRyOwogI2VuZGlmCiB9CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRm
b3JtL2dyYXBoaWNzL2dzdHJlYW1lci9JbWFnZUdTdHJlYW1lckNhaXJvLmNwcCBiL1NvdXJjZS9X
ZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2dzdHJlYW1lci9JbWFnZUdTdHJlYW1lckNhaXJvLmNw
cAppbmRleCAwNmZhZWNhMTliYTI1M2VhNzgzNzBmNTg1NDRhYmYxYWNiMmU1MjVlLi5lZTI3Mjc3
ZmYwYjdlOTAzM2Y0YjkzMzYwMjhhY2Y0MjE4YjIwYTVmIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2Vi
Q29yZS9wbGF0Zm9ybS9ncmFwaGljcy9nc3RyZWFtZXIvSW1hZ2VHU3RyZWFtZXJDYWlyby5jcHAK
KysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvZ3N0cmVhbWVyL0ltYWdlR1N0
cmVhbWVyQ2Fpcm8uY3BwCkBAIC03MSw5ICs3MSw3IEBAIEltYWdlR1N0cmVhbWVyOjpJbWFnZUdT
dHJlYW1lcihHc3RTYW1wbGUqIHNhbXBsZSkKIEltYWdlR1N0cmVhbWVyOjp+SW1hZ2VHU3RyZWFt
ZXIoKQogewogICAgIGlmIChtX2ltYWdlKQotICAgICAgICBtX2ltYWdlLmNsZWFyKCk7Ci0KLSAg
ICBtX2ltYWdlID0gMDsKKyAgICAgICAgbV9pbWFnZSA9IG51bGxwdHI7CiAKICAgICAvLyBXZSBr
ZWVwIHRoZSBidWZmZXIgbWVtb3J5IG1hcHBlZCB1bnRpbCB0aGUgaW1hZ2UgaXMgZGVzdHJveWVk
IGJlY2F1c2UgdGhlIGludGVybmFsCiAgICAgLy8gY2Fpcm9fc3VyZmFjZV90IHdhcyBjcmVhdGVk
IHVzaW5nIGNhaXJvX2ltYWdlX3N1cmZhY2VfY3JlYXRlX2Zvcl9kYXRhKCkuCmRpZmYgLS1naXQg
YS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9nc3RyZWFtZXIvV2ViS2l0V2ViU291
cmNlR1N0cmVhbWVyLmNwcCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2dzdHJl
YW1lci9XZWJLaXRXZWJTb3VyY2VHU3RyZWFtZXIuY3BwCmluZGV4IDkzNGRhZjhjYjZkNTk4Yzdl
ZWI2YTdkMjZjNzRmNDIxYWY2Nzk0YTAuLmMyZGEzNzA2NDVhYjgwNjA2MzEwMDBmZWJmMzY2Mjkw
ZTNhYzdlOGQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2dz
dHJlYW1lci9XZWJLaXRXZWJTb3VyY2VHU3RyZWFtZXIuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3Jl
L3BsYXRmb3JtL2dyYXBoaWNzL2dzdHJlYW1lci9XZWJLaXRXZWJTb3VyY2VHU3RyZWFtZXIuY3Bw
CkBAIC0xMTY5LDggKzExNjksNyBAQCBSZXNvdXJjZUhhbmRsZVN0cmVhbWluZ0NsaWVudDo6flJl
c291cmNlSGFuZGxlU3RyZWFtaW5nQ2xpZW50KCkKIHsKICAgICBpZiAobV9yZXNvdXJjZSkgewog
ICAgICAgICBtX3Jlc291cmNlLT5jYW5jZWwoKTsKLSAgICAgICAgbV9yZXNvdXJjZS5yZWxlYXNl
KCk7Ci0gICAgICAgIG1fcmVzb3VyY2UgPSAwOworICAgICAgICBtX3Jlc291cmNlID0gbnVsbHB0
cjsKICAgICB9CiB9CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBo
aWNzL3RleG1hcC9CaXRtYXBUZXh0dXJlR0wuY3BwIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0v
Z3JhcGhpY3MvdGV4bWFwL0JpdG1hcFRleHR1cmVHTC5jcHAKaW5kZXggOTc1YzM4ZjJmZjRiMTkx
ODI4ZDdkMWVjZTE2ZTRkNjA5YjA5MGJmNi4uMGU1MmQ3YjRiMjU4NDVhNjAzOGRiNDVlZDhmOGE5
YWJkNGFlZjk5NCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3Mv
dGV4bWFwL0JpdG1hcFRleHR1cmVHTC5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0v
Z3JhcGhpY3MvdGV4bWFwL0JpdG1hcFRleHR1cmVHTC5jcHAKQEAgLTI3OCw3ICsyNzgsNyBAQCBQ
YXNzUmVmUHRyPEJpdG1hcFRleHR1cmU+IEJpdG1hcFRleHR1cmVHTDo6YXBwbHlGaWx0ZXJzKFRl
eHR1cmVNYXBwZXIqIHRleHR1cmVNYQogICAgICAgICAgICAgdGV4bWFwR0wtPmRyYXdGaWx0ZXJl
ZCgqcmVzdWx0U3VyZmFjZS5nZXQoKSwgc3BhcmVTdXJmYWNlLmdldCgpLCAqZmlsdGVyLCBqKTsK
ICAgICAgICAgICAgIGlmICghaiAmJiBmaWx0ZXItPnR5cGUoKSA9PSBGaWx0ZXJPcGVyYXRpb246
OkRST1BfU0hBRE9XKSB7CiAgICAgICAgICAgICAgICAgc3BhcmVTdXJmYWNlID0gcmVzdWx0U3Vy
ZmFjZTsKLSAgICAgICAgICAgICAgICByZXN1bHRTdXJmYWNlLmNsZWFyKCk7CisgICAgICAgICAg
ICAgICAgcmVzdWx0U3VyZmFjZSA9IG51bGxwdHI7CiAgICAgICAgICAgICB9CiAgICAgICAgICAg
ICBzdGQ6OnN3YXAocmVzdWx0U3VyZmFjZSwgaW50ZXJtZWRpYXRlU3VyZmFjZSk7CiAgICAgICAg
IH0KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL3RleG1hcC9H
cmFwaGljc0xheWVyVGV4dHVyZU1hcHBlci5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9n
cmFwaGljcy90ZXhtYXAvR3JhcGhpY3NMYXllclRleHR1cmVNYXBwZXIuY3BwCmluZGV4IDllZTRh
Nzg0Yzg1N2FiMWNmMTI2ZGEyY2IxMmRhZmFlYmMwOWRlN2UuLmQ1MzQ3MDQ0ZTg4YzA4ZWRiYTRk
NDYwNDY5ZjNmOTA3YTAwYjlkYzEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3Jt
L2dyYXBoaWNzL3RleG1hcC9HcmFwaGljc0xheWVyVGV4dHVyZU1hcHBlci5jcHAKKysrIGIvU291
cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvdGV4bWFwL0dyYXBoaWNzTGF5ZXJUZXh0dXJl
TWFwcGVyLmNwcApAQCAtMzAxLDggKzMwMSw4IEBAIHZvaWQgR3JhcGhpY3NMYXllclRleHR1cmVN
YXBwZXI6OnNldENvbnRlbnRzVG9JbWFnZShJbWFnZSogaW1hZ2UpCiAgICAgICAgICAgICBtX2Nv
bXBvc2l0ZWRJbWFnZSA9IFRleHR1cmVNYXBwZXJUaWxlZEJhY2tpbmdTdG9yZTo6Y3JlYXRlKCk7
CiAgICAgICAgIG1fY29tcG9zaXRlZEltYWdlLT5zZXRDb250ZW50c1RvSW1hZ2UoaW1hZ2UpOwog
ICAgIH0gZWxzZSB7Ci0gICAgICAgIG1fY29tcG9zaXRlZE5hdGl2ZUltYWdlUHRyID0gMDsKLSAg
ICAgICAgbV9jb21wb3NpdGVkSW1hZ2UgPSAwOworICAgICAgICBtX2NvbXBvc2l0ZWROYXRpdmVJ
bWFnZVB0ciA9IG51bGxwdHI7CisgICAgICAgIG1fY29tcG9zaXRlZEltYWdlID0gbnVsbHB0cjsK
ICAgICB9CiAKICAgICBzZXRDb250ZW50c1RvUGxhdGZvcm1MYXllcihtX2NvbXBvc2l0ZWRJbWFn
ZS5nZXQoKSwgQ29udGVudHNMYXllckZvckltYWdlKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJD
b3JlL3BsYXRmb3JtL2dyYXBoaWNzL3RleG1hcC9UZXh0dXJlTWFwcGVyR0wuY3BwIGIvU291cmNl
L1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvdGV4bWFwL1RleHR1cmVNYXBwZXJHTC5jcHAKaW5k
ZXggMGJjZThjNzQyMGQ3ZDBhNDRiMzA5ZTI2ZjU2NmE5MjE5M2U0ODYwYS4uNGM1NDgwNTYyMzVl
Mzk4ZmFjOTgzNjBmZTljYmY2MjVjNzVhMWQwNSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUv
cGxhdGZvcm0vZ3JhcGhpY3MvdGV4bWFwL1RleHR1cmVNYXBwZXJHTC5jcHAKKysrIGIvU291cmNl
L1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvdGV4bWFwL1RleHR1cmVNYXBwZXJHTC5jcHAKQEAg
LTY5MSw3ICs2OTEsNyBAQCB2b2lkIFRleHR1cmVNYXBwZXJHTDo6YmluZERlZmF1bHRTdXJmYWNl
KCkKICAgICBkYXRhKCkucHJvamVjdGlvbk1hdHJpeCA9IGNyZWF0ZVByb2plY3Rpb25NYXRyaXgo
dmlld3BvcnRTaXplLCBkYXRhKCkuUGFpbnRGbGFncyAmIFBhaW50aW5nTWlycm9yZWQpOwogICAg
IG1fY29udGV4dDNELT52aWV3cG9ydChkYXRhKCkudmlld3BvcnRbMF0sIGRhdGEoKS52aWV3cG9y
dFsxXSwgdmlld3BvcnRTaXplLndpZHRoKCksIHZpZXdwb3J0U2l6ZS5oZWlnaHQoKSk7CiAgICAg
bV9jbGlwU3RhY2suYXBwbHkobV9jb250ZXh0M0QuZ2V0KCkpOwotICAgIGRhdGEoKS5jdXJyZW50
U3VyZmFjZS5jbGVhcigpOworICAgIGRhdGEoKS5jdXJyZW50U3VyZmFjZSA9IG51bGxwdHI7CiB9
CiAKIHZvaWQgVGV4dHVyZU1hcHBlckdMOjpiaW5kU3VyZmFjZShCaXRtYXBUZXh0dXJlICpzdXJm
YWNlKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvdGV4bWFw
L1RleHR1cmVNYXBwZXJMYXllci5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGlj
cy90ZXhtYXAvVGV4dHVyZU1hcHBlckxheWVyLmNwcAppbmRleCBjODY0MjAyMmEzYWMxNDY1Nzcw
ODgxZjEyNDg3ZmY3ZGRiYjU0NGQ4Li4zNDU1Mzk4NzAyNGE2ZTc1ZmQ5ZDFlMzkwNjgxNzhiOWVk
NzIzYTJiIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy90ZXht
YXAvVGV4dHVyZU1hcHBlckxheWVyLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9n
cmFwaGljcy90ZXhtYXAvVGV4dHVyZU1hcHBlckxheWVyLmNwcApAQCAtNDA4LDcgKzQwOCw3IEBA
IHZvaWQgVGV4dHVyZU1hcHBlckxheWVyOjpwYWludFdpdGhJbnRlcm1lZGlhdGVTdXJmYWNlKGNv
bnN0IFRleHR1cmVNYXBwZXJQYWludE9wCiAKICAgICBpZiAocmVwbGljYVN1cmZhY2UgJiYgb3B0
aW9ucy5vcGFjaXR5ID09IDEpIHsKICAgICAgICAgY29tbWl0U3VyZmFjZShvcHRpb25zLCByZXBs
aWNhU3VyZmFjZSwgcmVjdCwgMSk7Ci0gICAgICAgIHJlcGxpY2FTdXJmYWNlLmNsZWFyKCk7Cisg
ICAgICAgIHJlcGxpY2FTdXJmYWNlID0gbnVsbHB0cjsKICAgICB9CiAKICAgICBtYWluU3VyZmFj
ZSA9IHBhaW50SW50b1N1cmZhY2UocGFpbnRPcHRpb25zLCByZWN0LnNpemUoKSk7CmRpZmYgLS1n
aXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy90ZXhtYXAvVGV4dHVyZU1hcHBl
clRpbGVkQmFja2luZ1N0b3JlLmNwcCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNz
L3RleG1hcC9UZXh0dXJlTWFwcGVyVGlsZWRCYWNraW5nU3RvcmUuY3BwCmluZGV4IDIwODA0NjIz
OTNiZGJiOWNiMDE0ODIyODM5NGU4YjJmNjVmMGM2ZDcuLmQzNTcxMGE2OTI4MWE4MjA2MTZkZTMx
MjEzM2M0ZDNjN2ZmOTE3ZTggMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dy
YXBoaWNzL3RleG1hcC9UZXh0dXJlTWFwcGVyVGlsZWRCYWNraW5nU3RvcmUuY3BwCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL3RleG1hcC9UZXh0dXJlTWFwcGVyVGlsZWRC
YWNraW5nU3RvcmUuY3BwCkBAIC0zOSw3ICszOSw3IEBAIHZvaWQgVGV4dHVyZU1hcHBlclRpbGVk
QmFja2luZ1N0b3JlOjp1cGRhdGVDb250ZW50c0Zyb21JbWFnZUlmTmVlZGVkKFRleHR1cmVNYXBw
CiAgICAgICAgIHJldHVybjsKIAogICAgIHVwZGF0ZUNvbnRlbnRzKHRleHR1cmVNYXBwZXIsIG1f
aW1hZ2UuZ2V0KCksIG1faW1hZ2UtPnNpemUoKSwgZW5jbG9zaW5nSW50UmVjdChtX2ltYWdlLT5y
ZWN0KCkpLCBCaXRtYXBUZXh0dXJlOjpVcGRhdGVDYW5ub3RNb2RpZnlPcmlnaW5hbEltYWdlRGF0
YSk7Ci0gICAgbV9pbWFnZS5jbGVhcigpOworICAgIG1faW1hZ2UgPSBudWxscHRyOwogfQogCiBU
cmFuc2Zvcm1hdGlvbk1hdHJpeCBUZXh0dXJlTWFwcGVyVGlsZWRCYWNraW5nU3RvcmU6OmFkanVz
dGVkVHJhbnNmb3JtRm9yUmVjdChjb25zdCBGbG9hdFJlY3QmIHRhcmdldFJlY3QpCmRpZmYgLS1n
aXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy90ZXhtYXAvY29vcmRpbmF0ZWQv
Q29vcmRpbmF0ZWRHcmFwaGljc0xheWVyLmNwcCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dy
YXBoaWNzL3RleG1hcC9jb29yZGluYXRlZC9Db29yZGluYXRlZEdyYXBoaWNzTGF5ZXIuY3BwCmlu
ZGV4IGUyZTFmNGFiOGZhMTk5NjRmZjZkZmNkNTJjN2I3ZDdlZDkxOGNhYjAuLmE3MGU3YTA3N2Q3
ZGUwNzczM2UwOGYyMDYyYWI2OWZmMGU0YzFmNzggMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3Jl
L3BsYXRmb3JtL2dyYXBoaWNzL3RleG1hcC9jb29yZGluYXRlZC9Db29yZGluYXRlZEdyYXBoaWNz
TGF5ZXIuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL3RleG1hcC9j
b29yZGluYXRlZC9Db29yZGluYXRlZEdyYXBoaWNzTGF5ZXIuY3BwCkBAIC04MjAsNyArODIwLDcg
QEAgdm9pZCBDb29yZGluYXRlZEdyYXBoaWNzTGF5ZXI6OnJlbGVhc2VJbWFnZUJhY2tpbmdJZk5l
ZWRlZCgpCiAKICAgICBBU1NFUlQobV9jb29yZGluYXRvcik7CiAgICAgbV9jb29yZGluYXRlZElt
YWdlQmFja2luZy0+cmVtb3ZlSG9zdCh0aGlzKTsKLSAgICBtX2Nvb3JkaW5hdGVkSW1hZ2VCYWNr
aW5nLmNsZWFyKCk7CisgICAgbV9jb29yZGluYXRlZEltYWdlQmFja2luZyA9IG51bGxwdHI7CiAg
ICAgbV9sYXllclN0YXRlLmltYWdlSUQgPSBJbnZhbGlkQ29vcmRpbmF0ZWRJbWFnZUJhY2tpbmdJ
RDsKICAgICBtX2xheWVyU3RhdGUuaW1hZ2VDaGFuZ2VkID0gdHJ1ZTsKIH0KZGlmZiAtLWdpdCBh
L1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL3RleG1hcC9jb29yZGluYXRlZC9Db29y
ZGluYXRlZEltYWdlQmFja2luZy5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGlj
cy90ZXhtYXAvY29vcmRpbmF0ZWQvQ29vcmRpbmF0ZWRJbWFnZUJhY2tpbmcuY3BwCmluZGV4IGQy
MmIxNWVkZDMwYWY5ZWEwOWMyNDY4NTYyMmIwMzkzYjViNTUyOTMuLmUyNjE1MGZlZWU5ZTI3OWJh
MzMyMDcwZGU4NGJmNDI0OWZmMjMxZTcgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRm
b3JtL2dyYXBoaWNzL3RleG1hcC9jb29yZGluYXRlZC9Db29yZGluYXRlZEltYWdlQmFja2luZy5j
cHAKKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvdGV4bWFwL2Nvb3JkaW5h
dGVkL0Nvb3JkaW5hdGVkSW1hZ2VCYWNraW5nLmNwcApAQCAtMTQxLDcgKzE0MSw3IEBAIHZvaWQg
Q29vcmRpbmF0ZWRJbWFnZUJhY2tpbmc6OnJlbGVhc2VTdXJmYWNlSWZOZWVkZWQoKQogewogICAg
IC8vIFdlIG11c3Qga2VlcCBtX3N1cmZhY2UgdW50aWwgVUkgUHJvY2VzcyByZWFkcyBtX3N1cmZh
Y2UuCiAgICAgLy8gSWYgbV9zdXJmYWNlIGV4aXN0cywgaXQgd2FzIGNyZWF0ZWQgaW4gdGhlIHBy
ZXZpb3VzIHVwZGF0ZS4KLSAgICBtX3N1cmZhY2UuY2xlYXIoKTsKKyAgICBtX3N1cmZhY2UgPSBu
dWxscHRyOwogfQogCiBzdGF0aWMgY29uc3QgZG91YmxlIGNsZWFyQ29udGVudHNUaW1lckludGVy
dmFsID0gMzsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2d0ay9HYW1lcGFk
c0d0ay5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ndGsvR2FtZXBhZHNHdGsuY3BwCmlu
ZGV4IDI2ZjliZTYyYzc2NDYzYzZlMDgxZmNlZmU3OTZiMmVhZjE3NTk1OGQuLjlmYjI5ZjJiOTU0
NmZjMTgzOWM0ZWE4ZWI1Nzg0YThhNTYyMzIzNDkgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3Jl
L3BsYXRmb3JtL2d0ay9HYW1lcGFkc0d0ay5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZv
cm0vZ3RrL0dhbWVwYWRzR3RrLmNwcApAQCAtMTU1LDcgKzE1NSw3IEBAIHZvaWQgR2FtZXBhZHNH
dGs6OnVucmVnaXN0ZXJEZXZpY2UoU3RyaW5nIGRldmljZUZpbGUpCiAgICAgc2l6ZV90IGluZGV4
ID0gbV9zbG90cy5maW5kKGdhbWVwYWREZXZpY2UpOwogICAgIEFTU0VSVChpbmRleCAhPSBub3RG
b3VuZCk7CiAKLSAgICBtX3Nsb3RzW2luZGV4XS5jbGVhcigpOworICAgIG1fc2xvdHNbaW5kZXhd
ID0gbnVsbHB0cjsKIH0KIAogdm9pZCBHYW1lcGFkc0d0azo6dXBkYXRlR2FtZXBhZExpc3QoR2Ft
ZXBhZExpc3QqIGludG8pCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9pb3Mv
UGxhdGZvcm1TcGVlY2hTeW50aGVzaXplcklPUy5tbSBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3Jt
L2lvcy9QbGF0Zm9ybVNwZWVjaFN5bnRoZXNpemVySU9TLm1tCmluZGV4IGFiMTRjNzA5MDUyOTI4
MmRiNGM1NTNkZjFhNWU1NTUxY2JlODI3MTYuLmRjMGNhYTg4YTA1ZTA4NGVhMDk4Y2U0MTBiYTZk
MmFiZDM4ZDkwYzcgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2lvcy9QbGF0
Zm9ybVNwZWVjaFN5bnRoZXNpemVySU9TLm1tCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3Jt
L2lvcy9QbGF0Zm9ybVNwZWVjaFN5bnRoZXNpemVySU9TLm1tCkBAIC0xNzksNyArMTc5LDcgQEAg
LSAodm9pZClzcGVlY2hTeW50aGVzaXplcjooQVZTcGVlY2hTeW50aGVzaXplciAqKXN5bnRoZXNp
emVyIGRpZEZpbmlzaFNwZWVjaFV0dGUKICAgICAKICAgICAvLyBDbGVhciB0aGUgbV91dHRlcmFu
Y2UgdmFyaWFibGUgaW4gY2FzZSBmaW5pc2ggc3BlYWtpbmcga2lja3Mgb2ZmIGEgbmV3IHNwZWFr
aW5nIGpvYiBpbW1lZGlhdGVseS4KICAgICBSZWZQdHI8V2ViQ29yZTo6UGxhdGZvcm1TcGVlY2hT
eW50aGVzaXNVdHRlcmFuY2U+IHBsYXRmb3JtVXR0ZXJhbmNlID0gbV91dHRlcmFuY2U7Ci0gICAg
bV91dHRlcmFuY2UgPSAwOworICAgIG1fdXR0ZXJhbmNlID0gbnVsbHB0cjsKICAgICAKICAgICBt
X3N5bnRoZXNpemVyT2JqZWN0LT5jbGllbnQoKS0+ZGlkRmluaXNoU3BlYWtpbmcocGxhdGZvcm1V
dHRlcmFuY2UpOwogfQpAQCAtMjEzLDcgKzIxMyw3IEBAIC0gKHZvaWQpc3BlZWNoU3ludGhlc2l6
ZXI6KEFWU3BlZWNoU3ludGhlc2l6ZXIgKilzeW50aGVzaXplciBkaWRDYW5jZWxTcGVlY2hVdHRl
CiAgICAgCiAgICAgLy8gQ2xlYXIgdGhlIG1fdXR0ZXJhbmNlIHZhcmlhYmxlIGluIGNhc2UgZmlu
aXNoIHNwZWFraW5nIGtpY2tzIG9mZiBhIG5ldyBzcGVha2luZyBqb2IgaW1tZWRpYXRlbHkuCiAg
ICAgUmVmUHRyPFdlYkNvcmU6OlBsYXRmb3JtU3BlZWNoU3ludGhlc2lzVXR0ZXJhbmNlPiBwbGF0
Zm9ybVV0dGVyYW5jZSA9IG1fdXR0ZXJhbmNlOwotICAgIG1fdXR0ZXJhbmNlID0gMDsKKyAgICBt
X3V0dGVyYW5jZSA9IG51bGxwdHI7CiAgICAgCiAgICAgbV9zeW50aGVzaXplck9iamVjdC0+Y2xp
ZW50KCktPmRpZEZpbmlzaFNwZWFraW5nKHBsYXRmb3JtVXR0ZXJhbmNlKTsKIH0KZGlmZiAtLWdp
dCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL21vY2svR2VvbG9jYXRpb25DbGllbnRNb2NrLmNw
cCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL21vY2svR2VvbG9jYXRpb25DbGllbnRNb2NrLmNw
cAppbmRleCA4MTg2YTZhNTIzM2VlODViZTY1MjY4YjY4ZjA1NDQ3ZTg1NTIzMzAwLi5iN2NmYjli
ZTA2ZGNiZmZjN2MxNmIzY2ZlNzQ2NTAxMzBmYTcwMGU1IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2Vi
Q29yZS9wbGF0Zm9ybS9tb2NrL0dlb2xvY2F0aW9uQ2xpZW50TW9jay5jcHAKKysrIGIvU291cmNl
L1dlYkNvcmUvcGxhdGZvcm0vbW9jay9HZW9sb2NhdGlvbkNsaWVudE1vY2suY3BwCkBAIC0xMjYs
NyArMTI2LDcgQEAgdm9pZCBHZW9sb2NhdGlvbkNsaWVudE1vY2s6OnBlcm1pc3Npb25UaW1lckZp
cmVkKCkKIAogdm9pZCBHZW9sb2NhdGlvbkNsaWVudE1vY2s6OnJlc2V0KCkKIHsKLSAgICBtX2xh
c3RQb3NpdGlvbiA9IDA7CisgICAgbV9sYXN0UG9zaXRpb24gPSBudWxscHRyOwogICAgIGNsZWFy
RXJyb3IoKTsKICAgICBtX3Blcm1pc3Npb25TdGF0ZSA9IFBlcm1pc3Npb25TdGF0ZVVuc2V0Owog
fQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbW9jay9QbGF0Zm9ybVNwZWVj
aFN5bnRoZXNpemVyTW9jay5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9tb2NrL1BsYXRm
b3JtU3BlZWNoU3ludGhlc2l6ZXJNb2NrLmNwcAppbmRleCAzODM4MzcyYzU3NzhlYzI3MmM4YjU1
ZjgzMTUwNjUzODRkOWNmODc0Li5jMGI0ZGZhMmM2ZjIyNDRlYWE0ZGE4ODY0ZDVjNGIzMjYzMjU5
MmRjIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9tb2NrL1BsYXRmb3JtU3Bl
ZWNoU3ludGhlc2l6ZXJNb2NrLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9tb2Nr
L1BsYXRmb3JtU3BlZWNoU3ludGhlc2l6ZXJNb2NrLmNwcApAQCAtNDUsNyArNDUsNyBAQCB2b2lk
IFBsYXRmb3JtU3BlZWNoU3ludGhlc2l6ZXJNb2NrOjpzcGVha2luZ0ZpbmlzaGVkKCkKIHsKICAg
ICBBU1NFUlQobV91dHRlcmFuY2UuZ2V0KCkpOwogICAgIFJlZlB0cjxQbGF0Zm9ybVNwZWVjaFN5
bnRoZXNpc1V0dGVyYW5jZT4gcHJvdGVjdChtX3V0dGVyYW5jZSk7Ci0gICAgbV91dHRlcmFuY2Ug
PSAwOworICAgIG1fdXR0ZXJhbmNlID0gbnVsbHB0cjsKICAgICAKICAgICBjbGllbnQoKS0+ZGlk
RmluaXNoU3BlYWtpbmcocHJvdGVjdCk7CiB9CkBAIC03OCw3ICs3OCw3IEBAIHZvaWQgUGxhdGZv
cm1TcGVlY2hTeW50aGVzaXplck1vY2s6OmNhbmNlbCgpCiAgICAgCiAgICAgbV9zcGVha2luZ0Zp
bmlzaGVkVGltZXIuc3RvcCgpOwogICAgIGNsaWVudCgpLT5zcGVha2luZ0Vycm9yT2NjdXJyZWQo
bV91dHRlcmFuY2UpOwotICAgIG1fdXR0ZXJhbmNlID0gMDsKKyAgICBtX3V0dGVyYW5jZSA9IG51
bGxwdHI7CiB9CiAKIHZvaWQgUGxhdGZvcm1TcGVlY2hTeW50aGVzaXplck1vY2s6OnBhdXNlKCkK
ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL25ldHdvcmsvY2YvUmVzb3VyY2VS
ZXF1ZXN0Q0ZOZXQuY3BwIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbmV0d29yay9jZi9SZXNv
dXJjZVJlcXVlc3RDRk5ldC5jcHAKaW5kZXggY2RjN2Q3MzQ2ZDVhN2JmZTE5NzJjZmI3ODZiZWNj
ZjJlM2QzOWU5ZS4uYTRkNDNkZjNjMGE0MjhmMTcwNjE4MmU4YThhYWJjMDVkZGEyM2E5ZSAxMDA2
NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbmV0d29yay9jZi9SZXNvdXJjZVJlcXVl
c3RDRk5ldC5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbmV0d29yay9jZi9SZXNv
dXJjZVJlcXVlc3RDRk5ldC5jcHAKQEAgLTI5NSw3ICsyOTUsNyBAQCB2b2lkIFJlc291cmNlUmVx
dWVzdDo6ZG9VcGRhdGVSZXNvdXJjZVJlcXVlc3QoKQogdm9pZCBSZXNvdXJjZVJlcXVlc3Q6OmRv
VXBkYXRlUmVzb3VyY2VIVFRQQm9keSgpCiB7CiAgICAgaWYgKCFtX2NmUmVxdWVzdCkgewotICAg
ICAgICBtX2h0dHBCb2R5ID0gMDsKKyAgICAgICAgbV9odHRwQm9keSA9IG51bGxwdHI7CiAgICAg
ICAgIHJldHVybjsKICAgICB9CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmlu
Zy9JbmxpbmVGbG93Qm94LmNwcCBiL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9JbmxpbmVGbG93
Qm94LmNwcAppbmRleCA0MTY4MmM4ZTJiNjBjYjkyOGU0NjFiNGVmZmFhM2JmNzljMzYxYzI4Li4y
ZDZmYjY5NDQ4ZjhmMWJiNTk0NGMxMGJhNTQ5MDExNTY3ZDY3NzM3IDEwMDY0NAotLS0gYS9Tb3Vy
Y2UvV2ViQ29yZS9yZW5kZXJpbmcvSW5saW5lRmxvd0JveC5jcHAKKysrIGIvU291cmNlL1dlYkNv
cmUvcmVuZGVyaW5nL0lubGluZUZsb3dCb3guY3BwCkBAIC05NTQsNyArOTU0LDcgQEAgdm9pZCBJ
bmxpbmVGbG93Qm94Ojpjb21wdXRlT3ZlcmZsb3coTGF5b3V0VW5pdCBsaW5lVG9wLCBMYXlvdXRV
bml0IGxpbmVCb3R0b20sIEcKICAgICAgICAgcmV0dXJuOwogCiAgICAgaWYgKG1fb3ZlcmZsb3cp
Ci0gICAgICAgIG1fb3ZlcmZsb3cuY2xlYXIoKTsKKyAgICAgICAgbV9vdmVyZmxvdyA9IG51bGxw
dHI7CiAKICAgICAvLyBWaXN1YWwgb3ZlcmZsb3cganVzdCBpbmNsdWRlcyBvdmVyZmxvdyBmb3Ig
c3R1ZmYgd2UgbmVlZCB0byByZXBhaW50IG91cnNlbHZlcy4gIFNlbGYtcGFpbnRpbmcgbGF5ZXJz
IGFyZSBpZ25vcmVkLgogICAgIC8vIExheW91dCBvdmVyZmxvdyBpcyB1c2VkIHRvIGRldGVybWlu
ZSBzY3JvbGxpbmcgZXh0ZW50LCBzbyBpdCBzdGlsbCBpbmNsdWRlcyBjaGlsZCBsYXllcnMgYW5k
IGFsc28gZmFjdG9ycyBpbgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1Jl
bmRlckJveC5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyQm94LmNwcAppbmRl
eCA1MDJkZjY2YzBkMGRlOThhOWE0MmNkOTRmNzBiMjBiNGUwYjJhY2JjLi42MTcxZGI1ZTBhOGE5
MjI1N2NiZTJkMzA3ZDZmNzZkYTM2OWFkYjI0IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9y
ZW5kZXJpbmcvUmVuZGVyQm94LmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVu
ZGVyQm94LmNwcApAQCAtNDQ5Nyw3ICs0NDk3LDcgQEAgdm9pZCBSZW5kZXJCb3g6OmFkZFZpc3Vh
bE92ZXJmbG93KGNvbnN0IExheW91dFJlY3QmIHJlY3QpCiAKIHZvaWQgUmVuZGVyQm94OjpjbGVh
ck92ZXJmbG93KCkKIHsKLSAgICBtX292ZXJmbG93LmNsZWFyKCk7CisgICAgbV9vdmVyZmxvdyA9
IG51bGxwdHI7CiAgICAgUmVuZGVyRmxvd1RocmVhZCogZmxvd1RocmVhZCA9IGZsb3dUaHJlYWRD
b250YWluaW5nQmxvY2soKTsKICAgICBpZiAoZmxvd1RocmVhZCkKICAgICAgICAgZmxvd1RocmVh
ZC0+Y2xlYXJSZWdpb25zT3ZlcmZsb3codGhpcyk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29y
ZS9yZW5kZXJpbmcvUmVuZGVyQm94UmVnaW9uSW5mby5oIGIvU291cmNlL1dlYkNvcmUvcmVuZGVy
aW5nL1JlbmRlckJveFJlZ2lvbkluZm8uaAppbmRleCA2MjM2MDhkNjc1ZGNjNjkxMWUyN2RhZjI0
YWNiODQwOWQ0NmUxOGFmLi5lYTIzYzFlYzhlZTM3NWU3YTYxMWMxNGVjMDQxOWY2NTZkYTE5N2Iy
IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyQm94UmVnaW9uSW5m
by5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJCb3hSZWdpb25JbmZvLmgK
QEAgLTUzLDcgKzUzLDcgQEAgcHVibGljOgogICAgIHZvaWQgY2xlYXJPdmVyZmxvdygpCiAgICAg
ewogICAgICAgICBpZiAobV9vdmVyZmxvdykKLSAgICAgICAgICAgIG1fb3ZlcmZsb3cuY2xlYXIo
KTsKKyAgICAgICAgICAgIG1fb3ZlcmZsb3cgPSBudWxscHRyOwogICAgIH0KIAogcHJpdmF0ZToK
ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJDb3VudGVyLmNwcCBi
L1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJDb3VudGVyLmNwcAppbmRleCA5MThhNGY4
OGEyM2Q5NmQ4YWU1ZTIzNjY5NTY3MTc4MGEwOTM2MjdlLi5jNzQ1NjM5ZjhhMGFiZTRkOGZkZjY4
MTA1NGMxNjg1MjI5ODZlZjM2IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcv
UmVuZGVyQ291bnRlci5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlckNv
dW50ZXIuY3BwCkBAIC0xODYsOCArMTg2LDggQEAgc3RhdGljIGJvb2wgZmluZFBsYWNlRm9yQ291
bnRlcihSZW5kZXJFbGVtZW50JiBjb3VudGVyT3duZXIsIGNvbnN0IEF0b21pY1N0cmluZyYKICAg
ICAvLyB0b3dhcmRzIHRoZSBiZWdpbmluZyBvZiB0aGUgZG9jdW1lbnQgZm9yIGNvdW50ZXJzIHdp
dGggdGhlIHNhbWUgaWRlbnRpZmllciBhcyB0aGUgb25lCiAgICAgLy8gd2UgYXJlIHRyeWluZyB0
byBmaW5kIGEgcGxhY2UgZm9yLiBUaGlzIGlzIHRoZSBuZXh0IHJlbmRlcmVyIHRvIGJlIGNoZWNr
ZWQuCiAgICAgUmVuZGVyRWxlbWVudCogY3VycmVudFJlbmRlcmVyID0gcHJldmlvdXNJblByZU9y
ZGVyKGNvdW50ZXJPd25lcik7Ci0gICAgcHJldmlvdXNTaWJsaW5nID0gMDsKLSAgICBSZWZQdHI8
Q291bnRlck5vZGU+IHByZXZpb3VzU2libGluZ1Byb3RlY3RvciA9IDA7CisgICAgcHJldmlvdXNT
aWJsaW5nID0gbnVsbHB0cjsKKyAgICBSZWZQdHI8Q291bnRlck5vZGU+IHByZXZpb3VzU2libGlu
Z1Byb3RlY3RvcjsKIAogICAgIHdoaWxlIChjdXJyZW50UmVuZGVyZXIpIHsKICAgICAgICAgQ291
bnRlck5vZGUqIGN1cnJlbnRDb3VudGVyID0gbWFrZUNvdW50ZXJOb2RlKCpjdXJyZW50UmVuZGVy
ZXIsIGlkZW50aWZpZXIsIGZhbHNlKTsKQEAgLTIwMyw3ICsyMDMsNyBAQCBzdGF0aWMgYm9vbCBm
aW5kUGxhY2VGb3JDb3VudGVyKFJlbmRlckVsZW1lbnQmIGNvdW50ZXJPd25lciwgY29uc3QgQXRv
bWljU3RyaW5nJgogICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8vIGhlbmNlIHdlIGFyZSB0
aGUgbmV4dCBzaWJsaW5nIG9mIHRoYXQgY291bnRlciBpZiB0aGF0IHJlc2V0IGlzIG5vdCBhIHJv
b3Qgb3IKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAvLyB3ZSBhcmUgYSByb290IG5vZGUg
aWYgdGhhdCByZXNldCBpcyBhIHJvb3QuCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgcGFy
ZW50ID0gY3VycmVudENvdW50ZXItPnBhcmVudCgpOwotICAgICAgICAgICAgICAgICAgICAgICAg
ICAgIHByZXZpb3VzU2libGluZyA9IHBhcmVudCA/IGN1cnJlbnRDb3VudGVyIDogMDsKKyAgICAg
ICAgICAgICAgICAgICAgICAgICAgICBwcmV2aW91c1NpYmxpbmcgPSBwYXJlbnQgPyBjdXJyZW50
Q291bnRlciA6IG51bGxwdHI7CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgcmV0dXJuIHBh
cmVudDsKICAgICAgICAgICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgICAgICAgICAgICAg
IC8vIFdlIGFyZSBub3QgYSByZXNldCBub2RlIG9yIHRoZSBwcmV2aW91cyByZXNldCBtdXN0IGJl
IG9uIGFuIGFuY2VzdG9yIG9mIG91ciBvd25lciByZW5kZXJlcgpAQCAtMjEzLDcgKzIxMyw3IEBA
IHN0YXRpYyBib29sIGZpbmRQbGFjZUZvckNvdW50ZXIoUmVuZGVyRWxlbWVudCYgY291bnRlck93
bmVyLCBjb25zdCBBdG9taWNTdHJpbmcmCiAgICAgICAgICAgICAgICAgICAgICAgICAvLyBJbiB0
aGVzZSBjYXNlcyB0aGUgaWRlbnRpZmllZCBwcmV2aW91c1NpYmxpbmcgd2lsbCBiZSBpbnZhbGlk
IGFzIGl0cyBwYXJlbnQgaXMgZGlmZmVyZW50IGZyb20KICAgICAgICAgICAgICAgICAgICAgICAg
IC8vIG91ciBpZGVudGlmaWVkIHBhcmVudC4KICAgICAgICAgICAgICAgICAgICAgICAgIGlmIChw
cmV2aW91c1NpYmxpbmdQcm90ZWN0b3ItPnBhcmVudCgpICE9IGN1cnJlbnRDb3VudGVyKQotICAg
ICAgICAgICAgICAgICAgICAgICAgICAgIHByZXZpb3VzU2libGluZ1Byb3RlY3RvciA9IDA7Cisg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgcHJldmlvdXNTaWJsaW5nUHJvdGVjdG9yID0gbnVs
bHB0cjsKIAogICAgICAgICAgICAgICAgICAgICAgICAgcHJldmlvdXNTaWJsaW5nID0gcHJldmlv
dXNTaWJsaW5nUHJvdGVjdG9yLmdldCgpOwogICAgICAgICAgICAgICAgICAgICAgICAgcmV0dXJu
IHRydWU7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyTWVudUxp
c3QuY3BwIGIvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlck1lbnVMaXN0LmNwcAppbmRl
eCBmZjlhMmM1ODZiYmQ5YmU5OWM3NzU1ZTIyMmUwMDM4NjQ2YzE3NGQ2Li5kYjk5NDk5Y2JkZmYw
M2E1NTEwMWQyYWQ4NmUxODM3NmNmYWZhMjhiIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9y
ZW5kZXJpbmcvUmVuZGVyTWVudUxpc3QuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmlu
Zy9SZW5kZXJNZW51TGlzdC5jcHAKQEAgLTg4LDcgKzg4LDcgQEAgUmVuZGVyTWVudUxpc3Q6On5S
ZW5kZXJNZW51TGlzdCgpCiAjaWYgIVBMQVRGT1JNKElPUykKICAgICBpZiAobV9wb3B1cCkKICAg
ICAgICAgbV9wb3B1cC0+ZGlzY29ubmVjdENsaWVudCgpOwotICAgIG1fcG9wdXAgPSAwOworICAg
IG1fcG9wdXAgPSBudWxscHRyOwogI2VuZGlmCiB9CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJD
b3JlL3JlbmRlcmluZy9SZW5kZXJTZWFyY2hGaWVsZC5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9yZW5k
ZXJpbmcvUmVuZGVyU2VhcmNoRmllbGQuY3BwCmluZGV4IGZhNmUzOTY3MzE2NDhlYTA1MWM2ODA2
YzE5MjRkYzJjZjhiZTRjMDAuLjg5ZGMzNGM0ZjQ0NGRjYzVjNmM5ZTA3NWUxN2Q3N2M2ZWQyZDQ4
MDUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJTZWFyY2hGaWVs
ZC5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlclNlYXJjaEZpZWxkLmNw
cApAQCAtNjIsNyArNjIsNyBAQCBSZW5kZXJTZWFyY2hGaWVsZDo6flJlbmRlclNlYXJjaEZpZWxk
KCkKIHsKICAgICBpZiAobV9zZWFyY2hQb3B1cCkgewogICAgICAgICBtX3NlYXJjaFBvcHVwLT5w
b3B1cE1lbnUoKS0+ZGlzY29ubmVjdENsaWVudCgpOwotICAgICAgICBtX3NlYXJjaFBvcHVwID0g
MDsKKyAgICAgICAgbV9zZWFyY2hQb3B1cCA9IG51bGxwdHI7CiAgICAgfQogfQogCmRpZmYgLS1n
aXQgYS9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvc3R5bGUvRmlsbExheWVyLmggYi9Tb3VyY2Uv
V2ViQ29yZS9yZW5kZXJpbmcvc3R5bGUvRmlsbExheWVyLmgKaW5kZXggOGIwNmNlM2I3ZTg3N2Uy
NTU2ZjY3Njg4YTM0M2FhZmMyZDEzMThmOS4uMDMwOTg2M2RhZTYwZTc4ZTc2OTRiMTY5ZTY2YmJj
ZTVmMTljYzgwNCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL3N0eWxlL0Zp
bGxMYXllci5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9zdHlsZS9GaWxsTGF5ZXIu
aApAQCAtMTIxLDggKzEyMSw4IEBAIHB1YmxpYzoKICAgICB2b2lkIHNldFNpemUoRmlsbFNpemUg
ZikgeyBtX3NpemVUeXBlID0gZi50eXBlOyBtX3NpemVMZW5ndGggPSBmLnNpemU7IH0KICAgICB2
b2lkIHNldE1hc2tTb3VyY2VUeXBlKEVNYXNrU291cmNlVHlwZSBtKSB7IG1fbWFza1NvdXJjZVR5
cGUgPSBtOyBtX21hc2tTb3VyY2VUeXBlU2V0ID0gdHJ1ZTsgfQogCi0gICAgdm9pZCBjbGVhck1h
c2tJbWFnZSgpIHsgbV9tYXNrSW1hZ2VPcGVyYXRpb24uY2xlYXIoKTsgfQotICAgIHZvaWQgY2xl
YXJJbWFnZSgpIHsgbV9pbWFnZS5jbGVhcigpOyBtX2ltYWdlU2V0ID0gZmFsc2U7IH0KKyAgICB2
b2lkIGNsZWFyTWFza0ltYWdlKCkgeyBtX21hc2tJbWFnZU9wZXJhdGlvbiA9IG51bGxwdHI7IH0K
KyAgICB2b2lkIGNsZWFySW1hZ2UoKSB7IG1faW1hZ2UgPSBudWxscHRyOyBtX2ltYWdlU2V0ID0g
ZmFsc2U7IH0KICAgICB2b2lkIGNsZWFyWFBvc2l0aW9uKCkgeyBtX3hQb3NTZXQgPSBmYWxzZTsg
bV9iYWNrZ3JvdW5kT3JpZ2luU2V0ID0gZmFsc2U7IH0KICAgICB2b2lkIGNsZWFyWVBvc2l0aW9u
KCkgeyBtX3lQb3NTZXQgPSBmYWxzZTsgbV9iYWNrZ3JvdW5kT3JpZ2luU2V0ID0gZmFsc2U7IH0K
IApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL3N0eWxlL1JlbmRlclN0eWxl
LmNwcCBiL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9zdHlsZS9SZW5kZXJTdHlsZS5jcHAKaW5k
ZXggODdjNThlOWJmYzdmNDRlNGYyYjljMjZmMWVmNTlkNjhmMTIwOWZkYy4uNDdmZWU4OTUxY2M4
NjlmZjk5YmIyMmY2NTk3YzA3ZjI0YWZmMWUxMSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUv
cmVuZGVyaW5nL3N0eWxlL1JlbmRlclN0eWxlLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9yZW5k
ZXJpbmcvc3R5bGUvUmVuZGVyU3R5bGUuY3BwCkBAIC05NTAsNyArOTUwLDcgQEAgdm9pZCBSZW5k
ZXJTdHlsZTo6c2V0UXVvdGVzKFBhc3NSZWZQdHI8UXVvdGVzRGF0YT4gcSkKIHZvaWQgUmVuZGVy
U3R5bGU6OmNsZWFyQ3Vyc29yTGlzdCgpCiB7CiAgICAgaWYgKHJhcmVJbmhlcml0ZWREYXRhLT5j
dXJzb3JEYXRhKQotICAgICAgICByYXJlSW5oZXJpdGVkRGF0YS5hY2Nlc3MoKS0+Y3Vyc29yRGF0
YSA9IDA7CisgICAgICAgIHJhcmVJbmhlcml0ZWREYXRhLmFjY2VzcygpLT5jdXJzb3JEYXRhID0g
bnVsbHB0cjsKIH0KIAogdm9pZCBSZW5kZXJTdHlsZTo6Y2xlYXJDb250ZW50KCkKZGlmZiAtLWdp
dCBhL1NvdXJjZS9XZWJDb3JlL3N2Zy9TVkdUUmVmRWxlbWVudC5jcHAgYi9Tb3VyY2UvV2ViQ29y
ZS9zdmcvU1ZHVFJlZkVsZW1lbnQuY3BwCmluZGV4IDIyNWEzMDQ2YTQ5OTJjOTcwNWJhNzk1MDk5
NTYxYjNiOWViYWZmYmQuLmUzZmFkOGQ1OTBjNTRkZTZiZTk0Njc5Yzk1NzE3Yjk4NWFjNzRhMjEg
MTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3N2Zy9TVkdUUmVmRWxlbWVudC5jcHAKKysrIGIv
U291cmNlL1dlYkNvcmUvc3ZnL1NWR1RSZWZFbGVtZW50LmNwcApAQCAtMTA0LDcgKzEwNCw3IEBA
IHZvaWQgU1ZHVFJlZlRhcmdldEV2ZW50TGlzdGVuZXI6OmRldGFjaCgpCiAKICAgICBtX3Rhcmdl
dC0+cmVtb3ZlRXZlbnRMaXN0ZW5lcihldmVudE5hbWVzKCkuRE9NU3VidHJlZU1vZGlmaWVkRXZl
bnQsIHRoaXMsIGZhbHNlKTsKICAgICBtX3RhcmdldC0+cmVtb3ZlRXZlbnRMaXN0ZW5lcihldmVu
dE5hbWVzKCkuRE9NTm9kZVJlbW92ZWRGcm9tRG9jdW1lbnRFdmVudCwgdGhpcywgZmFsc2UpOwot
ICAgIG1fdGFyZ2V0LmNsZWFyKCk7CisgICAgbV90YXJnZXQgPSBudWxscHRyOwogfQogCiBib29s
IFNWR1RSZWZUYXJnZXRFdmVudExpc3RlbmVyOjpvcGVyYXRvcj09KGNvbnN0IEV2ZW50TGlzdGVu
ZXImIGxpc3RlbmVyKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvdGVzdGluZy9JbnRlcm5h
bHMuY3BwIGIvU291cmNlL1dlYkNvcmUvdGVzdGluZy9JbnRlcm5hbHMuY3BwCmluZGV4IDFhMTA1
MTc0NzllOGU4ZTk4MWE3NDUzYWJkYTZmZGMyNDc1NzUxYjcuLjQ3NmQxZTI3NTllNjA2ZjIwNzY0
NTgyMTBkYjQ5MzNjODIzMDZlODIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3Rlc3Rpbmcv
SW50ZXJuYWxzLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS90ZXN0aW5nL0ludGVybmFscy5jcHAK
QEAgLTE3MjMsNyArMTcyMyw3IEBAIHZvaWQgSW50ZXJuYWxzOjpjbG9zZUR1bW15SW5zcGVjdG9y
RnJvbnRlbmQoKQogICAgIG1fZnJvbnRlbmRDaGFubmVsID0gbnVsbHB0cjsKIAogICAgIG1fZnJv
bnRlbmRXaW5kb3ctPmNsb3NlKG1fZnJvbnRlbmRXaW5kb3ctPnNjcmlwdEV4ZWN1dGlvbkNvbnRl
eHQoKSk7Ci0gICAgbV9mcm9udGVuZFdpbmRvdy5jbGVhcigpOworICAgIG1fZnJvbnRlbmRXaW5k
b3cgPSBudWxscHRyOwogfQogCiB2b2lkIEludGVybmFsczo6c2V0SmF2YVNjcmlwdFByb2ZpbGlu
Z0VuYWJsZWQoYm9vbCBlbmFibGVkLCBFeGNlcHRpb25Db2RlJiBlYykKZGlmZiAtLWdpdCBhL1Nv
dXJjZS9XZWJDb3JlL3dvcmtlcnMvV29ya2VyRXZlbnRRdWV1ZS5jcHAgYi9Tb3VyY2UvV2ViQ29y
ZS93b3JrZXJzL1dvcmtlckV2ZW50UXVldWUuY3BwCmluZGV4IGY1MjBjMWRlZWZhYjFlYjE0ZjFi
N2ZkOTI0MGZlODY0N2FjMjRhODkuLjA3MjEwNzY5ZmQwNmJhOWNlODdhYzQ2NTJjOTllMmMxNzhk
Mjg0ZjEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3dvcmtlcnMvV29ya2VyRXZlbnRRdWV1
ZS5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvd29ya2Vycy9Xb3JrZXJFdmVudFF1ZXVlLmNwcApA
QCAtNjgsMTMgKzY4LDEzIEBAIHB1YmxpYzoKICAgICAgICAgICAgIHJldHVybjsKICAgICAgICAg
bV9ldmVudFF1ZXVlLm1fZXZlbnREaXNwYXRjaGVyTWFwLnJlbW92ZShtX2V2ZW50LmdldCgpKTsK
ICAgICAgICAgbV9ldmVudC0+dGFyZ2V0KCktPmRpc3BhdGNoRXZlbnQobV9ldmVudCk7Ci0gICAg
ICAgIG1fZXZlbnQuY2xlYXIoKTsKKyAgICAgICAgbV9ldmVudCA9IG51bGxwdHI7CiAgICAgfQog
CiAgICAgdm9pZCBjYW5jZWwoKQogICAgIHsKICAgICAgICAgbV9pc0NhbmNlbGxlZCA9IHRydWU7
Ci0gICAgICAgIG1fZXZlbnQuY2xlYXIoKTsKKyAgICAgICAgbV9ldmVudCA9IG51bGxwdHI7CiAg
ICAgfQogCiBwcml2YXRlOgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvd29ya2Vycy9Xb3Jr
ZXJNZXNzYWdpbmdQcm94eS5jcHAgYi9Tb3VyY2UvV2ViQ29yZS93b3JrZXJzL1dvcmtlck1lc3Nh
Z2luZ1Byb3h5LmNwcAppbmRleCA3ODQ1YjYxZmE4ZGNmYWY5ZjY3ZmFhMGQ5NDI1ZDBmOWIyYjVk
NjE1Li5iZDc0ZWFjZTAyY2QzYzEwNmZkZWFiYzdlNGNkZjYxNjhhM2RiZTFlIDEwMDY0NAotLS0g
YS9Tb3VyY2UvV2ViQ29yZS93b3JrZXJzL1dvcmtlck1lc3NhZ2luZ1Byb3h5LmNwcAorKysgYi9T
b3VyY2UvV2ViQ29yZS93b3JrZXJzL1dvcmtlck1lc3NhZ2luZ1Byb3h5LmNwcApAQCAtMjY0LDcg
KzI2NCw3IEBAIHZvaWQgV29ya2VyTWVzc2FnaW5nUHJveHk6Ondvcmtlckdsb2JhbFNjb3BlRGVz
dHJveWVkSW50ZXJuYWwoKQogICAgIC8vIFdvcmtlckdsb2JhbFNjb3BlRGVzdHJveWVkVGFzayBp
cyBhbHdheXMgdGhlIGxhc3QgdG8gYmUgcGVyZm9ybWVkLCBzbyB0aGUgcHJveHkgaXMgbm90IG5l
ZWRlZCBmb3IgY29tbXVuaWNhdGlvbgogICAgIC8vIGluIGVpdGhlciBzaWRlIGFueSBtb3JlLiBI
b3dldmVyLCB0aGUgV29ya2VyIG9iamVjdCBtYXkgc3RpbGwgZXhpc3QsIGFuZCBpdCBhc3N1bWVz
IHRoYXQgdGhlIHByb3h5IGV4aXN0cywgdG9vLgogICAgIG1fYXNrZWRUb1Rlcm1pbmF0ZSA9IHRy
dWU7Ci0gICAgbV93b3JrZXJUaHJlYWQgPSAwOworICAgIG1fd29ya2VyVGhyZWFkID0gbnVsbHB0
cjsKIAogICAgIEluc3BlY3Rvckluc3RydW1lbnRhdGlvbjo6d29ya2VyR2xvYmFsU2NvcGVUZXJt
aW5hdGVkKG1fc2NyaXB0RXhlY3V0aW9uQ29udGV4dC5nZXQoKSwgdGhpcyk7CiAKZGlmZiAtLWdp
dCBhL1NvdXJjZS9XZWJDb3JlL3dvcmtlcnMvV29ya2VyVGhyZWFkLmNwcCBiL1NvdXJjZS9XZWJD
b3JlL3dvcmtlcnMvV29ya2VyVGhyZWFkLmNwcAppbmRleCA4NzNjODI5NmU2ZTJlZjExNzE0MmUw
NWRmODlmNGJjNDZhMTRkOTA0Li5lNTE1NTUyNmM5OGU5MTAyOTdlMDFiODZmZWQyOGIxMmY0ZDAy
MjkwIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS93b3JrZXJzL1dvcmtlclRocmVhZC5jcHAK
KysrIGIvU291cmNlL1dlYkNvcmUvd29ya2Vycy9Xb3JrZXJUaHJlYWQuY3BwCkBAIC0xNzEsNyAr
MTcxLDcgQEAgdm9pZCBXb3JrZXJUaHJlYWQ6OndvcmtlclRocmVhZCgpCiAKICAgICAvLyBUaGUg
YmVsb3cgYXNzaWdubWVudCB3aWxsIGRlc3Ryb3kgdGhlIGNvbnRleHQsIHdoaWNoIHdpbGwgaW4g
dHVybiBub3RpZnkgbWVzc2FnaW5nIHByb3h5LgogICAgIC8vIFdlIGNhbm5vdCBsZXQgYW55IG9i
amVjdHMgc3Vydml2ZSBwYXN0IHRocmVhZCBleGl0LCBiZWNhdXNlIG5vIG90aGVyIHRocmVhZCB3
aWxsIHJ1biBHQyBvciBvdGhlcndpc2UgZGVzdHJveSB0aGVtLgotICAgIG1fd29ya2VyR2xvYmFs
U2NvcGUgPSAwOworICAgIG1fd29ya2VyR2xvYmFsU2NvcGUgPSBudWxscHRyOwogCiAgICAgLy8g
Q2xlYW4gdXAgV2ViQ29yZTo6VGhyZWFkR2xvYmFsRGF0YSBiZWZvcmUgV1RGOjpXVEZUaHJlYWRE
YXRhIGdvZXMgYXdheSEKICAgICB0aHJlYWRHbG9iYWxEYXRhKCkuZGVzdHJveSgpOwpkaWZmIC0t
Z2l0IGEvU291cmNlL1dlYkNvcmUveG1sL1hNTEh0dHBSZXF1ZXN0LmNwcCBiL1NvdXJjZS9XZWJD
b3JlL3htbC9YTUxIdHRwUmVxdWVzdC5jcHAKaW5kZXggYzdlOGMwYjJiMGZkZDNhNzliYTA5ZDJm
ZDkxNWYzMjE1ZmU2YzcyOS4uNDc1ZDZmYjRkNTZiZjY1NzVlZjUwYzFjNTQ0ZDU4ODM1MDViOTQ3
NSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUveG1sL1hNTEh0dHBSZXF1ZXN0LmNwcAorKysg
Yi9Tb3VyY2UvV2ViQ29yZS94bWwvWE1MSHR0cFJlcXVlc3QuY3BwCkBAIC0yNDUsNyArMjQ1LDcg
QEAgQmxvYiogWE1MSHR0cFJlcXVlc3Q6OnJlc3BvbnNlQmxvYigpCiAgICAgICAgICAgICBkYXRh
LmFwcGVuZChtX2JpbmFyeVJlc3BvbnNlQnVpbGRlci0+ZGF0YSgpLCBtX2JpbmFyeVJlc3BvbnNl
QnVpbGRlci0+c2l6ZSgpKTsKICAgICAgICAgICAgIFN0cmluZyBub3JtYWxpemVkQ29udGVudFR5
cGUgPSBCbG9iOjpub3JtYWxpemVkQ29udGVudFR5cGUocmVzcG9uc2VNSU1FVHlwZSgpKTsgLy8g
cmVzcG9uc2VNSU1FVHlwZSBkZWZhdWx0cyB0byB0ZXh0L3htbCB3aGljaCBtYXkgYmUgaW5jb3Jy
ZWN0LgogICAgICAgICAgICAgbV9yZXNwb25zZUJsb2IgPSBCbG9iOjpjcmVhdGUoV1RGOjptb3Zl
KGRhdGEpLCBub3JtYWxpemVkQ29udGVudFR5cGUpOwotICAgICAgICAgICAgbV9iaW5hcnlSZXNw
b25zZUJ1aWxkZXIuY2xlYXIoKTsKKyAgICAgICAgICAgIG1fYmluYXJ5UmVzcG9uc2VCdWlsZGVy
ID0gbnVsbHB0cjsKICAgICAgICAgfSBlbHNlIHsKICAgICAgICAgICAgIC8vIElmIHdlIGVycm9y
ZWQgb3V0IG9yIGdvdCBubyBkYXRhLCB3ZSBzdGlsbCByZXR1cm4gYSBibG9iLCBqdXN0IGFuIGVt
cHR5IG9uZS4KICAgICAgICAgICAgIG1fcmVzcG9uc2VCbG9iID0gQmxvYjo6Y3JlYXRlKCk7CkBA
IC0yNjUsNyArMjY1LDcgQEAgQXJyYXlCdWZmZXIqIFhNTEh0dHBSZXF1ZXN0OjpyZXNwb25zZUFy
cmF5QnVmZmVyKCkKICAgICAgICAgICAgIG1fcmVzcG9uc2VBcnJheUJ1ZmZlciA9IG1fYmluYXJ5
UmVzcG9uc2VCdWlsZGVyLT5jcmVhdGVBcnJheUJ1ZmZlcigpOwogICAgICAgICBlbHNlCiAgICAg
ICAgICAgICBtX3Jlc3BvbnNlQXJyYXlCdWZmZXIgPSBBcnJheUJ1ZmZlcjo6Y3JlYXRlKG51bGxw
dHIsIDApOwotICAgICAgICBtX2JpbmFyeVJlc3BvbnNlQnVpbGRlci5jbGVhcigpOworICAgICAg
ICBtX2JpbmFyeVJlc3BvbnNlQnVpbGRlciA9IG51bGxwdHI7CiAgICAgfQogCiAgICAgcmV0dXJu
IG1fcmVzcG9uc2VBcnJheUJ1ZmZlci5nZXQoKTsKQEAgLTg2OCw4ICs4NjgsOCBAQCB2b2lkIFhN
TEh0dHBSZXF1ZXN0OjpjbGVhclJlc3BvbnNlQnVmZmVycygpCiAgICAgbV9jcmVhdGVkRG9jdW1l
bnQgPSBmYWxzZTsKICAgICBtX3Jlc3BvbnNlRG9jdW1lbnQgPSBudWxscHRyOwogICAgIG1fcmVz
cG9uc2VCbG9iID0gbnVsbHB0cjsKLSAgICBtX2JpbmFyeVJlc3BvbnNlQnVpbGRlci5jbGVhcigp
OwotICAgIG1fcmVzcG9uc2VBcnJheUJ1ZmZlci5jbGVhcigpOworICAgIG1fYmluYXJ5UmVzcG9u
c2VCdWlsZGVyID0gbnVsbHB0cjsKKyAgICBtX3Jlc3BvbnNlQXJyYXlCdWZmZXIgPSBudWxscHRy
OwogICAgIG1fcmVzcG9uc2VDYWNoZUlzVmFsaWQgPSBmYWxzZTsKIH0KIApkaWZmIC0tZ2l0IGEv
U291cmNlL1dlYkNvcmUveG1sL1hTTFRQcm9jZXNzb3IuY3BwIGIvU291cmNlL1dlYkNvcmUveG1s
L1hTTFRQcm9jZXNzb3IuY3BwCmluZGV4IDA2OWNjZWNiN2JmMmM5NDAwNmRlOTQ4NWQxNjMyODRl
ODQwNzkxZmIuLjQ5MWYxMmM5OWQ4YTViNDIwYWZmYzI5MDc3YzRiM2RlMjEzZDU0MDggMTAwNjQ0
Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3htbC9YU0xUUHJvY2Vzc29yLmNwcAorKysgYi9Tb3VyY2Uv
V2ViQ29yZS94bWwvWFNMVFByb2Nlc3Nvci5jcHAKQEAgLTE2Miw4ICsxNjIsOCBAQCB2b2lkIFhT
TFRQcm9jZXNzb3I6OnJlbW92ZVBhcmFtZXRlcihjb25zdCBTdHJpbmcmIC8qbmFtZXNwYWNlVVJJ
Ki8sIGNvbnN0IFN0cmluZwogCiB2b2lkIFhTTFRQcm9jZXNzb3I6OnJlc2V0KCkKIHsKLSAgICBt
X3N0eWxlc2hlZXQuY2xlYXIoKTsKLSAgICBtX3N0eWxlc2hlZXRSb290Tm9kZS5jbGVhcigpOwor
ICAgIG1fc3R5bGVzaGVldCA9IG51bGxwdHI7CisgICAgbV9zdHlsZXNoZWV0Um9vdE5vZGUgPSBu
dWxscHRyOwogICAgIG1fcGFyYW1ldGVycy5jbGVhcigpOwogfQogCmRpZmYgLS1naXQgYS9Tb3Vy
Y2UvV2ViS2l0L1N0b3JhZ2UvU3RvcmFnZUFyZWFTeW5jLmNwcCBiL1NvdXJjZS9XZWJLaXQvU3Rv
cmFnZS9TdG9yYWdlQXJlYVN5bmMuY3BwCmluZGV4IGQxZWIzMmEwZGE0Y2QzYmJlYjZmODhjNzYx
NWUyYmZkOWI5NzcxODYuLmJhMTdmMTg5ODFlM2JlNmYxODQwZjkwOThhOGIxYWIxOTAwNTNmNTkg
MTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvU3RvcmFnZS9TdG9yYWdlQXJlYVN5bmMuY3BwCisr
KyBiL1NvdXJjZS9XZWJLaXQvU3RvcmFnZS9TdG9yYWdlQXJlYVN5bmMuY3BwCkBAIC04OCw3ICs4
OCw3IEBAIHZvaWQgU3RvcmFnZUFyZWFTeW5jOjpzY2hlZHVsZUZpbmFsU3luYygpCiAgICAgQVNT
RVJUKGlzTWFpblRocmVhZCgpKTsKICAgICAvLyBGSVhNRTogV2UgZG8gdGhpcyB0byBhdm9pZCBy
YWNlcywgYnV0IGl0J2QgYmUgYmV0dGVyIHRvIG1ha2UgdGhpbmdzIHNhZmUgd2l0aG91dCBibG9j
a2luZy4KICAgICBibG9ja1VudGlsSW1wb3J0Q29tcGxldGUoKTsKLSAgICBtX3N0b3JhZ2VBcmVh
ID0gMDsgIC8vIFRoaXMgaXMgZG9uZSBpbiBibG9ja1VudGlsSW1wb3J0Q29tcGxldGUoKSBidXQg
dGhpcyBpcyBoZXJlIGFzIGEgZm9ybSBvZiBkb2N1bWVudGF0aW9uIHRoYXQgd2UgbXVzdCBiZSBh
YnNvbHV0ZWx5IHN1cmUgdGhlIHJlZiBjb3VudCBjeWNsZSBpcyBicm9rZW4uCisgICAgbV9zdG9y
YWdlQXJlYSA9IG51bGxwdHI7IC8vIFRoaXMgaXMgZG9uZSBpbiBibG9ja1VudGlsSW1wb3J0Q29t
cGxldGUoKSBidXQgdGhpcyBpcyBoZXJlIGFzIGEgZm9ybSBvZiBkb2N1bWVudGF0aW9uIHRoYXQg
d2UgbXVzdCBiZSBhYnNvbHV0ZWx5IHN1cmUgdGhlIHJlZiBjb3VudCBjeWNsZSBpcyBicm9rZW4u
CiAKICAgICBpZiAobV9zeW5jVGltZXIuaXNBY3RpdmUoKSkKICAgICAgICAgbV9zeW5jVGltZXIu
c3RvcCgpOwpAQCAtMzc1LDcgKzM3NSw3IEBAIHZvaWQgU3RvcmFnZUFyZWFTeW5jOjpibG9ja1Vu
dGlsSW1wb3J0Q29tcGxldGUoKQogICAgIE11dGV4TG9ja2VyIGxvY2tlcihtX2ltcG9ydExvY2sp
OwogICAgIHdoaWxlICghbV9pbXBvcnRDb21wbGV0ZSkKICAgICAgICAgbV9pbXBvcnRDb25kaXRp
b24ud2FpdChtX2ltcG9ydExvY2spOwotICAgIG1fc3RvcmFnZUFyZWEgPSAwOworICAgIG1fc3Rv
cmFnZUFyZWEgPSBudWxscHRyOwogfQogCiB2b2lkIFN0b3JhZ2VBcmVhU3luYzo6c3luYyhib29s
IGNsZWFySXRlbXMsIGNvbnN0IEhhc2hNYXA8U3RyaW5nLCBTdHJpbmc+JiBpdGVtcykKZGlmZiAt
LWdpdCBhL1NvdXJjZS9XZWJLaXQvbWFjL1BsdWdpbnMvSG9zdGVkL1dlYkhvc3RlZE5ldHNjYXBl
UGx1Z2luVmlldy5tbSBiL1NvdXJjZS9XZWJLaXQvbWFjL1BsdWdpbnMvSG9zdGVkL1dlYkhvc3Rl
ZE5ldHNjYXBlUGx1Z2luVmlldy5tbQppbmRleCA3NjAwNTgzNjkwZDc5NjBjNWQ4YTU5YTczZTcy
ZDAyNWRiMmNmZjM3Li5hYzQzNGVjMWE5ZjM0OGM3MDVjOGJiMDEyY2U2YTRlYzg5N2VmMzBhIDEw
MDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L21hYy9QbHVnaW5zL0hvc3RlZC9XZWJIb3N0ZWROZXRz
Y2FwZVBsdWdpblZpZXcubW0KKysrIGIvU291cmNlL1dlYktpdC9tYWMvUGx1Z2lucy9Ib3N0ZWQv
V2ViSG9zdGVkTmV0c2NhcGVQbHVnaW5WaWV3Lm1tCkBAIC0yODEsNyArMjgxLDcgQEAgLSAodm9p
ZClkZXN0cm95UGx1Z2luCiAgICAgICAgIH0KICAgICAgICAgCiAgICAgICAgIF9wcm94eS0+ZGVz
dHJveSgpOwotICAgICAgICBfcHJveHkgPSAwOworICAgICAgICBfcHJveHkgPSBudWxscHRyOwog
ICAgIH0KICAgICAKICAgICBfcGx1Z2luTGF5ZXIgPSAwOwpAQCAtNDMyLDcgKzQzMiw3IEBAIC0g
KHZvaWQpcGx1Z2luSG9zdERpZWQKICAgICAgICAgZG93bmNhc3Q8UmVuZGVyRW1iZWRkZWRPYmpl
Y3Q+KCpfZWxlbWVudC0+cmVuZGVyZXIoKSkuc2V0UGx1Z2luVW5hdmFpbGFiaWxpdHlSZWFzb24o
UmVuZGVyRW1iZWRkZWRPYmplY3Q6OlBsdWdpbkNyYXNoZWQpOwogCiAgICAgX3BsdWdpbkxheWVy
ID0gbmlsOwotICAgIF9wcm94eSA9IDA7CisgICAgX3Byb3h5ID0gbnVsbHB0cjsKICAgICAKICAg
ICAvLyBObyBuZWVkIGZvciB1cyB0byBiZSBsYXllciBiYWNrZWQgYW55bW9yZQogICAgIHNlbGYu
d2FudHNMYXllciA9IE5POwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9tYWMvV2ViQ29yZVN1
cHBvcnQvV2ViRWRpdG9yQ2xpZW50Lm1tIGIvU291cmNlL1dlYktpdC9tYWMvV2ViQ29yZVN1cHBv
cnQvV2ViRWRpdG9yQ2xpZW50Lm1tCmluZGV4IDZjZWQxOTQxMzg2YjBjNjkxMDYyNjdmMWNkNzRk
OGVjM2ExOWQ5NTYuLmMxODhiOWQ3Mzk1N2E0YTIzMDNkODcwMjE4MzEzMDZjZDYwMTNiMjkgMTAw
NjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvbWFjL1dlYkNvcmVTdXBwb3J0L1dlYkVkaXRvckNsaWVu
dC5tbQorKysgYi9Tb3VyY2UvV2ViS2l0L21hYy9XZWJDb3JlU3VwcG9ydC9XZWJFZGl0b3JDbGll
bnQubW0KQEAgLTExNDMsNyArMTE0Myw3IEBAIHZvaWQgV2ViRWRpdG9yQ2xpZW50OjpkaWRDaGVj
a1N1Y2NlZWQoaW50IHNlcXVlbmNlLCBOU0FycmF5KiByZXN1bHRzKQogewogICAgIEFTU0VSVF9V
TlVTRUQoc2VxdWVuY2UsIHNlcXVlbmNlID09IG1fdGV4dENoZWNraW5nUmVxdWVzdC0+ZGF0YSgp
LnNlcXVlbmNlKCkpOwogICAgIG1fdGV4dENoZWNraW5nUmVxdWVzdC0+ZGlkU3VjY2VlZChjb3Jl
KHJlc3VsdHMsIG1fdGV4dENoZWNraW5nUmVxdWVzdC0+ZGF0YSgpLm1hc2soKSkpOwotICAgIG1f
dGV4dENoZWNraW5nUmVxdWVzdC5jbGVhcigpOworICAgIG1fdGV4dENoZWNraW5nUmVxdWVzdCA9
IG51bGxwdHI7CiB9CiAjZW5kaWYKIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9tYWMvV2Vi
Q29yZVN1cHBvcnQvV2ViVXNlck1lZGlhQ2xpZW50Lm1tIGIvU291cmNlL1dlYktpdC9tYWMvV2Vi
Q29yZVN1cHBvcnQvV2ViVXNlck1lZGlhQ2xpZW50Lm1tCmluZGV4IDYyMmJkOWRkM2FmZTA4OTJi
MWRjMmRmNTBiYTdlNGI0MzIyYjE1OWQuLjE3ZjE2NDczZWQ1YjlkNDM0ODMwZWQ3YzcyNjk4NjVk
N2E1YjM1M2YgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvbWFjL1dlYkNvcmVTdXBwb3J0L1dl
YlVzZXJNZWRpYUNsaWVudC5tbQorKysgYi9Tb3VyY2UvV2ViS2l0L21hYy9XZWJDb3JlU3VwcG9y
dC9XZWJVc2VyTWVkaWFDbGllbnQubW0KQEAgLTE0Miw3ICsxNDIsNyBAQCAtICh2b2lkKWNhbmNl
bFJlcXVlc3QKICAgICBpZiAoIV9yZXF1ZXN0KQogICAgICAgICByZXR1cm47CiAKLSAgICBfcmVx
dWVzdCA9IDA7CisgICAgX3JlcXVlc3QgPSBudWxscHRyOwogI2VuZGlmCiAgICAgCiB9CmRpZmYg
LS1naXQgYS9Tb3VyY2UvV2ViS2l0L3dpbi9XZWJWaWV3LmNwcCBiL1NvdXJjZS9XZWJLaXQvd2lu
L1dlYlZpZXcuY3BwCmluZGV4IDQzNzUyNzEyOGQxNTQxZmM2OWU4N2QwNThjYjllOTA2MmI2MzYy
M2QuLmI3OWU2M2M1NDY1NWIxNzMwZjA0ZTZkNmE4ZTA3NDc0ZDZkYWJiMDEgMTAwNjQ0Ci0tLSBh
L1NvdXJjZS9XZWJLaXQvd2luL1dlYlZpZXcuY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQvd2luL1dl
YlZpZXcuY3BwCkBAIC04NTEsOCArODUxLDggQEAgdm9pZCBXZWJWaWV3OjpkZWxldGVCYWNraW5n
U3RvcmUoKQogICAgICAgICBLaWxsVGltZXIobV92aWV3V2luZG93LCBEZWxldGVCYWNraW5nU3Rv
cmVUaW1lcik7CiAgICAgICAgIG1fZGVsZXRlQmFja2luZ1N0b3JlVGltZXJBY3RpdmUgPSBmYWxz
ZTsKICAgICB9Ci0gICAgbV9iYWNraW5nU3RvcmVCaXRtYXAuY2xlYXIoKTsKLSAgICBtX2JhY2tp
bmdTdG9yZURpcnR5UmVnaW9uLmNsZWFyKCk7CisgICAgbV9iYWNraW5nU3RvcmVCaXRtYXAgPSBu
dWxscHRyOworICAgIG1fYmFja2luZ1N0b3JlRGlydHlSZWdpb24gPSBudWxscHRyOwogICAgIG1f
YmFja2luZ1N0b3JlU2l6ZS5jeCA9IG1fYmFja2luZ1N0b3JlU2l6ZS5jeSA9IDA7CiB9CiAKQEAg
LTEwNzksNyArMTA3OSw3IEBAIHZvaWQgV2ViVmlldzo6dXBkYXRlQmFja2luZ1N0b3JlKEZyYW1l
VmlldyogZnJhbWVWaWV3LCBIREMgZGMsIGJvb2wgYmFja2luZ1N0b3JlCiAgICAgICAgIGlmICht
X3VpRGVsZWdhdGVQcml2YXRlKQogICAgICAgICAgICAgbV91aURlbGVnYXRlUHJpdmF0ZS0+d2Vi
Vmlld1BhaW50ZWQodGhpcyk7CiAKLSAgICAgICAgbV9iYWNraW5nU3RvcmVEaXJ0eVJlZ2lvbi5j
bGVhcigpOworICAgICAgICBtX2JhY2tpbmdTdG9yZURpcnR5UmVnaW9uID0gbnVsbHB0cjsKICAg
ICB9CiAKICAgICBpZiAoIWRjKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdDIvRGF0YWJhc2VQ
cm9jZXNzL0luZGV4ZWREQi9VbmlxdWVJREJEYXRhYmFzZS5jcHAgYi9Tb3VyY2UvV2ViS2l0Mi9E
YXRhYmFzZVByb2Nlc3MvSW5kZXhlZERCL1VuaXF1ZUlEQkRhdGFiYXNlLmNwcAppbmRleCA2MTk4
MDVjZDlhMjYxZTcxNWIyNzg4OGMxYjFiZWYxMTkzMmUzZWNkLi4zZDJjYTViYmJmYWM2NGFlYjgx
NjgwYmE4NzVmNjA3Yzg0ZTRiZDFkIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0Mi9EYXRhYmFz
ZVByb2Nlc3MvSW5kZXhlZERCL1VuaXF1ZUlEQkRhdGFiYXNlLmNwcAorKysgYi9Tb3VyY2UvV2Vi
S2l0Mi9EYXRhYmFzZVByb2Nlc3MvSW5kZXhlZERCL1VuaXF1ZUlEQkRhdGFiYXNlLmNwcApAQCAt
MTQ3LDcgKzE0Nyw3IEBAIHZvaWQgVW5pcXVlSURCRGF0YWJhc2U6OnNodXRkb3duQmFja2luZ1N0
b3JlKFVuaXF1ZUlEQkRhdGFiYXNlU2h1dGRvd25UeXBlIHR5cGUsCiB7CiAgICAgQVNTRVJUKCFS
dW5Mb29wOjppc01haW4oKSk7CiAKLSAgICBtX2JhY2tpbmdTdG9yZS5jbGVhcigpOworICAgIG1f
YmFja2luZ1N0b3JlID0gbnVsbHB0cjsKIAogICAgIGlmICh0eXBlID09IFVuaXF1ZUlEQkRhdGFi
YXNlU2h1dGRvd25UeXBlOjpEZWxldGVTaHV0ZG93bikgewogICAgICAgICBTdHJpbmcgZGJGaWxl
bmFtZSA9IFVuaXF1ZUlEQkRhdGFiYXNlOjpjYWxjdWxhdGVBYnNvbHV0ZURhdGFiYXNlRmlsZW5h
bWUoZGF0YWJhc2VEaXJlY3RvcnkpOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdDIvUGx1Z2lu
UHJvY2Vzcy9QbHVnaW5Db250cm9sbGVyUHJveHkuY3BwIGIvU291cmNlL1dlYktpdDIvUGx1Z2lu
UHJvY2Vzcy9QbHVnaW5Db250cm9sbGVyUHJveHkuY3BwCmluZGV4IDg4ZDZkMTc3ZGE4NDYxZWY4
ZjRlMzIzY2M2YzYyZmY5ZGNmNGMxODEuLjRhOWY0NjdlODc4ZGU4MWM2NjFiZGVkMzVkNzYxNjYz
MDYxMWM0N2MgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQyL1BsdWdpblByb2Nlc3MvUGx1Z2lu
Q29udHJvbGxlclByb3h5LmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0Mi9QbHVnaW5Qcm9jZXNzL1Bs
dWdpbkNvbnRyb2xsZXJQcm94eS5jcHAKQEAgLTEyNiw3ICsxMjYsNyBAQCBib29sIFBsdWdpbkNv
bnRyb2xsZXJQcm94eTo6aW5pdGlhbGl6ZShjb25zdCBQbHVnaW5DcmVhdGlvblBhcmFtZXRlcnMm
IGNyZWF0aW9uUAogICAgICAgICAvLyB1c2VkIGFzIGFuIGlkZW50aWZpZXIgc28gaXQncyBPSyB0
byBqdXN0IGdldCBhIHdlYWsgcmVmZXJlbmNlLgogICAgICAgICBQbHVnaW4qIHBsdWdpbiA9IG1f
cGx1Z2luLmdldCgpOwogICAgICAgICAKLSAgICAgICAgbV9wbHVnaW4gPSAwOworICAgICAgICBt
X3BsdWdpbiA9IG51bGxwdHI7CiAKICAgICAgICAgLy8gVGhpcyB3aWxsIGRlbGV0ZSB0aGUgcGx1
Zy1pbiBjb250cm9sbGVyIHByb3h5IG9iamVjdC4KICAgICAgICAgbV9jb25uZWN0aW9uLT5yZW1v
dmVQbHVnaW5Db250cm9sbGVyUHJveHkodGhpcywgcGx1Z2luKTsKQEAgLTE1Niw3ICsxNTYsNyBA
QCB2b2lkIFBsdWdpbkNvbnRyb2xsZXJQcm94eTo6ZGVzdHJveSgpCiAgICAgUGx1Z2luKiBwbHVn
aW4gPSBtX3BsdWdpbi5nZXQoKTsKIAogICAgIG1fcGx1Z2luLT5kZXN0cm95UGx1Z2luKCk7Ci0g
ICAgbV9wbHVnaW4gPSAwOworICAgIG1fcGx1Z2luID0gbnVsbHB0cjsKIAogICAgIHBsYXRmb3Jt
RGVzdHJveSgpOwogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9TaGFyZWQvQ2hpbGRQcm9j
ZXNzUHJveHkuY3BwIGIvU291cmNlL1dlYktpdDIvU2hhcmVkL0NoaWxkUHJvY2Vzc1Byb3h5LmNw
cAppbmRleCAzOTMwOTg5NzllNjhlYzEyNDQwZTEyNWZjYzNhMjQyYjA3ZTY4OTdkLi5kOWUwN2Vm
NGM3ZDYyZGU4NmRmYzY5OGY3MDU0Zjg4YzRhODUzMzg1IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2Vi
S2l0Mi9TaGFyZWQvQ2hpbGRQcm9jZXNzUHJveHkuY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQyL1No
YXJlZC9DaGlsZFByb2Nlc3NQcm94eS5jcHAKQEAgLTQyLDcgKzQyLDcgQEAgQ2hpbGRQcm9jZXNz
UHJveHk6On5DaGlsZFByb2Nlc3NQcm94eSgpCiAKICAgICBpZiAobV9wcm9jZXNzTGF1bmNoZXIp
IHsKICAgICAgICAgbV9wcm9jZXNzTGF1bmNoZXItPmludmFsaWRhdGUoKTsKLSAgICAgICAgbV9w
cm9jZXNzTGF1bmNoZXIgPSAwOworICAgICAgICBtX3Byb2Nlc3NMYXVuY2hlciA9IG51bGxwdHI7
CiAgICAgfQogfQogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9TaGFyZWQvQ29vcmRpbmF0
ZWRHcmFwaGljcy9Db29yZGluYXRlZEJhY2tpbmdTdG9yZS5jcHAgYi9Tb3VyY2UvV2ViS2l0Mi9T
aGFyZWQvQ29vcmRpbmF0ZWRHcmFwaGljcy9Db29yZGluYXRlZEJhY2tpbmdTdG9yZS5jcHAKaW5k
ZXggYjlhMDVmOTA2ZTljMTFmMDI3ZWExYTE1MjVlZTQzZWNmZDVjNTNkNy4uYzY2ZDI4Yjc1Mzk3
NGEwNTc0MGNiNmFmNjhlMmM0ODQ4MWQ5M2MzMiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdDIv
U2hhcmVkL0Nvb3JkaW5hdGVkR3JhcGhpY3MvQ29vcmRpbmF0ZWRCYWNraW5nU3RvcmUuY3BwCisr
KyBiL1NvdXJjZS9XZWJLaXQyL1NoYXJlZC9Db29yZGluYXRlZEdyYXBoaWNzL0Nvb3JkaW5hdGVk
QmFja2luZ1N0b3JlLmNwcApAQCAtNTUsNyArNTUsNyBAQCB2b2lkIENvb3JkaW5hdGVkQmFja2lu
Z1N0b3JlVGlsZTo6c3dhcEJ1ZmZlcnMoVGV4dHVyZU1hcHBlciogdGV4dHVyZU1hcHBlcikKICAg
ICAgICAgdGV4dHVyZS0+cmVzZXQobV90aWxlUmVjdC5zaXplKCksIG1fc3VyZmFjZS0+c3VwcG9y
dHNBbHBoYSgpKTsKIAogICAgIG1fc3VyZmFjZS0+Y29weVRvVGV4dHVyZSh0ZXh0dXJlLCBtX3Nv
dXJjZVJlY3QsIG1fc3VyZmFjZU9mZnNldCk7Ci0gICAgbV9zdXJmYWNlLmNsZWFyKCk7CisgICAg
bV9zdXJmYWNlID0gbnVsbHB0cjsKIH0KIAogdm9pZCBDb29yZGluYXRlZEJhY2tpbmdTdG9yZVRp
bGU6OnNldEJhY2tCdWZmZXIoY29uc3QgSW50UmVjdCYgdGlsZVJlY3QsIGNvbnN0IEludFJlY3Qm
IHNvdXJjZVJlY3QsIFBhc3NSZWZQdHI8Q29vcmRpbmF0ZWRTdXJmYWNlPiBidWZmZXIsIGNvbnN0
IEludFBvaW50JiBvZmZzZXQpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3Mv
QVBJL2VmbC9Fd2tWaWV3LmNwcCBiL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9BUEkvZWZsL0V3
a1ZpZXcuY3BwCmluZGV4IDc3YjUwMWE4NGRmNjQzZTFiZGVlN2U1NzQ1ZmYxOTQ0MTQyNWFmNTku
LjQ1ODg0NjQ1Nzg3Mzc0NzM3ZDgzYmJjNDA1ZWU4YzdiZmU3NDVmYzkgMTAwNjQ0Ci0tLSBhL1Nv
dXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9BUEkvZWZsL0V3a1ZpZXcuY3BwCisrKyBiL1NvdXJjZS9X
ZWJLaXQyL1VJUHJvY2Vzcy9BUEkvZWZsL0V3a1ZpZXcuY3BwCkBAIC05NDAsNyArOTQwLDcgQEAg
dm9pZCBFd2tWaWV3OjpoaWRlQ29udGV4dE1lbnUoKQogICAgIGlmIChzZC0+YXBpLT5jb250ZXh0
X21lbnVfaGlkZSkKICAgICAgICAgc2QtPmFwaS0+Y29udGV4dF9tZW51X2hpZGUoc2QpOwogCi0g
ICAgbV9jb250ZXh0TWVudS5jbGVhcigpOworICAgIG1fY29udGV4dE1lbnUgPSBudWxscHRyOwog
fQogCiB2b2lkIEV3a1ZpZXc6OnJlcXVlc3RQb3B1cE1lbnUoV0tQb3B1cE1lbnVMaXN0ZW5lclJl
ZiBwb3B1cE1lbnVMaXN0ZW5lciwgY29uc3QgV0tSZWN0JiByZWN0LCBXS1BvcHVwSXRlbVRleHRE
aXJlY3Rpb24gdGV4dERpcmVjdGlvbiwgZG91YmxlIHBhZ2VTY2FsZUZhY3RvciwgV0tBcnJheVJl
ZiBpdGVtcywgaW50MzJfdCBzZWxlY3RlZEluZGV4KQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktp
dDIvVUlQcm9jZXNzL0FQSS9tYWMvV0tWaWV3Lm1tIGIvU291cmNlL1dlYktpdDIvVUlQcm9jZXNz
L0FQSS9tYWMvV0tWaWV3Lm1tCmluZGV4IGQ1NTE1YWUxZmMzZjQyOTlkYTEyNDMxYTQxYTc0N2Uz
OGEzZTQ2NTcuLmU4ZDI0NDk1OGYwOWRlNWZkZWM5ZTFiYzNiMTRhMjYxMDIyZTMyYTYgMTAwNjQ0
Ci0tLSBhL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9BUEkvbWFjL1dLVmlldy5tbQorKysgYi9T
b3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvQVBJL21hYy9XS1ZpZXcubW0KQEAgLTM1MjAsNyArMzUy
MCw3IEBAIC0gKHZvaWQpX3NldFByb21pc2VkRGF0YUZvckF0dGFjaG1lbnQ6KE5TU3RyaW5nICop
ZmlsZW5hbWUgd2l0aEV4dGVuc2lvbjooTlNTdHJpCiAKIC0gKHZvaWQpcGFzdGVib2FyZENoYW5n
ZWRPd25lcjooTlNQYXN0ZWJvYXJkICopcGFzdGVib2FyZAogewotICAgIF9kYXRhLT5fcHJvbWlz
ZWRJbWFnZSA9IDA7CisgICAgX2RhdGEtPl9wcm9taXNlZEltYWdlID0gbnVsbHB0cjsKICAgICBf
ZGF0YS0+X3Byb21pc2VkRmlsZW5hbWUgPSAiIjsKICAgICBfZGF0YS0+X3Byb21pc2VkVVJMID0g
IiI7CiB9CkBAIC0zNTMxLDcgKzM1MzEsNyBAQCAtICh2b2lkKXBhc3RlYm9hcmQ6KE5TUGFzdGVi
b2FyZCAqKXBhc3RlYm9hcmQgcHJvdmlkZURhdGFGb3JUeXBlOihOU1N0cmluZyAqKXR5cAogCiAg
ICAgaWYgKFt0eXBlIGlzRXF1YWw6TlNUSUZGUGJvYXJkVHlwZV0gJiYgX2RhdGEtPl9wcm9taXNl
ZEltYWdlKSB7CiAgICAgICAgIFtwYXN0ZWJvYXJkIHNldERhdGE6KE5TRGF0YSAqKV9kYXRhLT5f
cHJvbWlzZWRJbWFnZS0+Z2V0VElGRlJlcHJlc2VudGF0aW9uKCkgZm9yVHlwZTpOU1RJRkZQYm9h
cmRUeXBlXTsKLSAgICAgICAgX2RhdGEtPl9wcm9taXNlZEltYWdlID0gMDsKKyAgICAgICAgX2Rh
dGEtPl9wcm9taXNlZEltYWdlID0gbnVsbHB0cjsKICAgICB9CiB9CiAKZGlmZiAtLWdpdCBhL1Nv
dXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9JbnNwZWN0b3JTZXJ2ZXIvV2ViU29ja2V0U2VydmVyQ29u
bmVjdGlvbi5jcHAgYi9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvSW5zcGVjdG9yU2VydmVyL1dl
YlNvY2tldFNlcnZlckNvbm5lY3Rpb24uY3BwCmluZGV4IDgwOTdhYzFhNGNjMWUwZGRiZmFkZmY5
OTBjM2U0ZTUyNzdiZmU0MDYuLjk0YTI0YzkwYzM4NjZhZjU5N2ViMGQ1OTFmMzY5ZjcxMGRmNjA3
YzggMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9JbnNwZWN0b3JTZXJ2ZXIv
V2ViU29ja2V0U2VydmVyQ29ubmVjdGlvbi5jcHAKKysrIGIvU291cmNlL1dlYktpdDIvVUlQcm9j
ZXNzL0luc3BlY3RvclNlcnZlci9XZWJTb2NrZXRTZXJ2ZXJDb25uZWN0aW9uLmNwcApAQCAtMTI2
LDcgKzEyNiw3IEBAIHZvaWQgV2ViU29ja2V0U2VydmVyQ29ubmVjdGlvbjo6c2VuZFJhd0RhdGEo
Y29uc3QgY2hhciogZGF0YSwgc2l6ZV90IGxlbmd0aCkKIHZvaWQgV2ViU29ja2V0U2VydmVyQ29u
bmVjdGlvbjo6ZGlkQ2xvc2VTb2NrZXRTdHJlYW0oU29ja2V0U3RyZWFtSGFuZGxlKikKIHsKICAg
ICAvLyBEZXN0cm95IHRoZSBTb2NrZXRTdHJlYW1IYW5kbGUgbm93IHRvIHByZXZlbnQgY2xvc2lu
ZyBhbiBhbHJlYWR5IGNsb3NlZCBzb2NrZXQgbGF0ZXIuCi0gICAgbV9zb2NrZXQuY2xlYXIoKTsK
KyAgICBtX3NvY2tldCA9IG51bGxwdHI7CiAKICAgICAvLyBXZWIgU29ja2V0IE1vZGUuCiAgICAg
aWYgKG1fbW9kZSA9PSBXZWJTb2NrZXQpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9VSVBy
b2Nlc3MvTmV0d29yay9DdXN0b21Qcm90b2NvbHMvbWFjL0N1c3RvbVByb3RvY29sTWFuYWdlclBy
b3h5TWFjLm1tIGIvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL05ldHdvcmsvQ3VzdG9tUHJvdG9j
b2xzL21hYy9DdXN0b21Qcm90b2NvbE1hbmFnZXJQcm94eU1hYy5tbQppbmRleCA5NDI1Mjk5YTJl
YzczZjhiZTBkMTk5YTExM2EyZDZiYmE4YjYxOTc0Li41MTNiMWUwY2ZmOTdmYjE2ZmU0YWJlOTFl
YThiZmE0ZGRlYzEyYmE0IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvTmV0
d29yay9DdXN0b21Qcm90b2NvbHMvbWFjL0N1c3RvbVByb3RvY29sTWFuYWdlclByb3h5TWFjLm1t
CisrKyBiL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9OZXR3b3JrL0N1c3RvbVByb3RvY29scy9t
YWMvQ3VzdG9tUHJvdG9jb2xNYW5hZ2VyUHJveHlNYWMubW0KQEAgLTc2LDcgKzc2LDcgQEAgLSAo
aWQpaW5pdFdpdGhDdXN0b21Qcm90b2NvbE1hbmFnZXJQcm94eTooQ3VzdG9tUHJvdG9jb2xNYW5h
Z2VyUHJveHkqKWN1c3RvbVByb3QKIAogLSAodm9pZClkZWFsbG9jCiB7Ci0gICAgX2Nvbm5lY3Rp
b24uY2xlYXIoKTsKKyAgICBfY29ubmVjdGlvbiA9IG51bGxwdHI7CiAgICAgW191cmxDb25uZWN0
aW9uIGNhbmNlbF07CiAgICAgW191cmxDb25uZWN0aW9uIHJlbGVhc2VdOwogICAgIFtzdXBlciBk
ZWFsbG9jXTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9TdGF0aXN0aWNz
UmVxdWVzdC5jcHAgYi9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvU3RhdGlzdGljc1JlcXVlc3Qu
Y3BwCmluZGV4IGMwZWM0OGVlM2JiOTY1MmRkNzg4N2U4NGU4NDhmMjI0ZTJmYmZiMjAuLjgwNmUx
MGYwMGZmM2YxNDRmMTdmYjdiMDI2OGUxMWZhY2ExNmYxNTkgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9X
ZWJLaXQyL1VJUHJvY2Vzcy9TdGF0aXN0aWNzUmVxdWVzdC5jcHAKKysrIGIvU291cmNlL1dlYktp
dDIvVUlQcm9jZXNzL1N0YXRpc3RpY3NSZXF1ZXN0LmNwcApAQCAtOTUsNyArOTUsNyBAQCB2b2lk
IFN0YXRpc3RpY3NSZXF1ZXN0Ojpjb21wbGV0ZWRSZXF1ZXN0KHVpbnQ2NF90IHJlcXVlc3RJRCwg
Y29uc3QgU3RhdGlzdGljc0RhdAogCiAgICAgaWYgKG1fb3V0c3RhbmRpbmdSZXF1ZXN0cy5pc0Vt
cHR5KCkpIHsKICAgICAgICAgbV9jYWxsYmFjay0+cGVyZm9ybUNhbGxiYWNrV2l0aFJldHVyblZh
bHVlKG1fcmVzcG9uc2VEaWN0aW9uYXJ5LmdldCgpKTsKLSAgICAgICAgbV9jYWxsYmFjayA9IDA7
CisgICAgICAgIG1fY2FsbGJhY2sgPSBudWxscHRyOwogICAgIH0KIH0KIApkaWZmIC0tZ2l0IGEv
U291cmNlL1dlYktpdDIvVUlQcm9jZXNzL1dlYkZyYW1lTGlzdGVuZXJQcm94eS5jcHAgYi9Tb3Vy
Y2UvV2ViS2l0Mi9VSVByb2Nlc3MvV2ViRnJhbWVMaXN0ZW5lclByb3h5LmNwcAppbmRleCBlODAx
MGU1YjYyNjkwNTFiMjM1ZTBiYzNhMjNmNzBkZTkwZjcyMzRmLi40MDYxZGQ1MjkxMzRlZDhkOGQy
NWQ2OGQwY2M5YzVlOTZlODY5NjYwIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nl
c3MvV2ViRnJhbWVMaXN0ZW5lclByb3h5LmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nl
c3MvV2ViRnJhbWVMaXN0ZW5lclByb3h5LmNwcApAQCAtNDIsNyArNDIsNyBAQCBXZWJGcmFtZUxp
c3RlbmVyUHJveHk6On5XZWJGcmFtZUxpc3RlbmVyUHJveHkoKQogCiB2b2lkIFdlYkZyYW1lTGlz
dGVuZXJQcm94eTo6aW52YWxpZGF0ZSgpCiB7Ci0gICAgbV9mcmFtZSA9IDA7CisgICAgbV9mcmFt
ZSA9IG51bGxwdHI7CiB9CiAKIHZvaWQgV2ViRnJhbWVMaXN0ZW5lclByb3h5OjpyZWNlaXZlZFBv
bGljeURlY2lzaW9uKFdlYkNvcmU6OlBvbGljeUFjdGlvbiBhY3Rpb24pCkBAIC01MSw3ICs1MSw3
IEBAIHZvaWQgV2ViRnJhbWVMaXN0ZW5lclByb3h5OjpyZWNlaXZlZFBvbGljeURlY2lzaW9uKFdl
YkNvcmU6OlBvbGljeUFjdGlvbiBhY3Rpb24pCiAgICAgICAgIHJldHVybjsKIAogICAgIG1fZnJh
bWUtPnJlY2VpdmVkUG9saWN5RGVjaXNpb24oYWN0aW9uLCBtX2xpc3RlbmVySUQsIG1fbmF2aWdh
dGlvbi5nZXQoKSk7Ci0gICAgbV9mcmFtZSA9IDA7CisgICAgbV9mcmFtZSA9IG51bGxwdHI7CiB9
CiAKIH0gLy8gbmFtZXNwYWNlIFdlYktpdApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdDIvVUlQ
cm9jZXNzL1dlYkZyYW1lUHJveHkuY3BwIGIvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL1dlYkZy
YW1lUHJveHkuY3BwCmluZGV4IDQxYmI5MWExMzYxYjg4NGEyOGQxOTRjOTJiMTc2MjhiZDQwNmQy
MTQuLjY5MjhhZmJjNzAyYzcwYmRmMDk3NjNkNzNlMDZlNjJjYjNjYTM0MjEgMTAwNjQ0Ci0tLSBh
L1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9XZWJGcmFtZVByb3h5LmNwcAorKysgYi9Tb3VyY2Uv
V2ViS2l0Mi9VSVByb2Nlc3MvV2ViRnJhbWVQcm94eS5jcHAKQEAgLTU3LDExICs1NywxMSBAQCBX
ZWJGcmFtZVByb3h5Ojp+V2ViRnJhbWVQcm94eSgpCiAKIHZvaWQgV2ViRnJhbWVQcm94eTo6d2Vi
UHJvY2Vzc1dpbGxTaHV0RG93bigpCiB7Ci0gICAgbV9wYWdlID0gMDsKKyAgICBtX3BhZ2UgPSBu
dWxscHRyOwogCiAgICAgaWYgKG1fYWN0aXZlTGlzdGVuZXIpIHsKICAgICAgICAgbV9hY3RpdmVM
aXN0ZW5lci0+aW52YWxpZGF0ZSgpOwotICAgICAgICBtX2FjdGl2ZUxpc3RlbmVyID0gMDsKKyAg
ICAgICAgbV9hY3RpdmVMaXN0ZW5lciA9IG51bGxwdHI7CiAgICAgfQogfQogCmRpZmYgLS1naXQg
YS9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvV2ViT3BlblBhbmVsUmVzdWx0TGlzdGVuZXJQcm94
eS5jcHAgYi9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvV2ViT3BlblBhbmVsUmVzdWx0TGlzdGVu
ZXJQcm94eS5jcHAKaW5kZXggZGQ2NjY3MTExOGQyNDhmODYyMWMyYjk4OGVlMzhiMWNmYjAzZjk2
MC4uYTM3N2U0YWYwOGUyOTdmM2MyZmE3NDYwNmM5ZTU5NDhhZTdkNDJlOCAxMDA2NDQKLS0tIGEv
U291cmNlL1dlYktpdDIvVUlQcm9jZXNzL1dlYk9wZW5QYW5lbFJlc3VsdExpc3RlbmVyUHJveHku
Y3BwCisrKyBiL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9XZWJPcGVuUGFuZWxSZXN1bHRMaXN0
ZW5lclByb3h5LmNwcApAQCAtODksNyArODksNyBAQCB2b2lkIFdlYk9wZW5QYW5lbFJlc3VsdExp
c3RlbmVyUHJveHk6OmNhbmNlbCgpCiAKIHZvaWQgV2ViT3BlblBhbmVsUmVzdWx0TGlzdGVuZXJQ
cm94eTo6aW52YWxpZGF0ZSgpCiB7Ci0gICAgbV9wYWdlID0gMDsKKyAgICBtX3BhZ2UgPSBudWxs
cHRyOwogfQogCiB9IC8vIG5hbWVzcGFjZSBXZWJLaXQKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJL
aXQyL1VJUHJvY2Vzcy9XZWJQYWdlUHJveHkuY3BwIGIvU291cmNlL1dlYktpdDIvVUlQcm9jZXNz
L1dlYlBhZ2VQcm94eS5jcHAKaW5kZXggYmQxM2EzM2IxNjkyNGY3NDNhZDY4NmU3YzhmMjQ2MDAx
YWFlM2Q4Yy4uNzlkMjNlMDU4NGYyOTQwMzQ5MGI2N2UwMDkxYjBlYWQzN2ZhMzVhZiAxMDA2NDQK
LS0tIGEvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL1dlYlBhZ2VQcm94eS5jcHAKKysrIGIvU291
cmNlL1dlYktpdDIvVUlQcm9jZXNzL1dlYlBhZ2VQcm94eS5jcHAKQEAgLTM3MDYsNyArMzcwNiw3
IEBAIHZvaWQgV2ViUGFnZVByb3h5OjpydW5PcGVuUGFuZWwodWludDY0X3QgZnJhbWVJRCwgY29u
c3QgRmlsZUNob29zZXJTZXR0aW5ncyYgc2V0CiB7CiAgICAgaWYgKG1fb3BlblBhbmVsUmVzdWx0
TGlzdGVuZXIpIHsKICAgICAgICAgbV9vcGVuUGFuZWxSZXN1bHRMaXN0ZW5lci0+aW52YWxpZGF0
ZSgpOwotICAgICAgICBtX29wZW5QYW5lbFJlc3VsdExpc3RlbmVyID0gMDsKKyAgICAgICAgbV9v
cGVuUGFuZWxSZXN1bHRMaXN0ZW5lciA9IG51bGxwdHI7CiAgICAgfQogCiAgICAgV2ViRnJhbWVQ
cm94eSogZnJhbWUgPSBtX3Byb2Nlc3MtPndlYkZyYW1lKGZyYW1lSUQpOwpAQCAtMzgwOCw3ICsz
ODA4LDcgQEAgdm9pZCBXZWJQYWdlUHJveHk6OnNob3dDb2xvclBpY2tlcihjb25zdCBXZWJDb3Jl
OjpDb2xvciYgaW5pdGlhbENvbG9yLCBjb25zdCBJbnQKICNpZiBFTkFCTEUoSU5QVVRfVFlQRV9D
T0xPUl9QT1BPVkVSKQogICAgIC8vIEEgbmV3IHBvcG92ZXIgY29sb3Igd2VsbCBuZWVkcyB0byBi
ZSBjcmVhdGVkIChhbmQgdGhlIHByZXZpb3VzIG9uZSBkZXN0cm95ZWQpIGZvcgogICAgIC8vIGVh
Y2ggYWN0aXZhdGlvbiBvZiBhIGNvbG9yIGVsZW1lbnQuCi0gICAgbV9jb2xvclBpY2tlciA9IDA7
CisgICAgbV9jb2xvclBpY2tlciA9IG51bGxwdHI7CiAjZW5kaWYKICAgICBpZiAoIW1fY29sb3JQ
aWNrZXIpCiAgICAgICAgIG1fY29sb3JQaWNrZXIgPSBtX3BhZ2VDbGllbnQuY3JlYXRlQ29sb3JQ
aWNrZXIodGhpcywgaW5pdGlhbENvbG9yLCBlbGVtZW50UmVjdCk7CkBAIC00MzAwLDcgKzQzMDAs
NyBAQCB2b2lkIFdlYlBhZ2VQcm94eTo6ZGlkQ2hvb3NlRmlsZXNGb3JPcGVuUGFuZWwoY29uc3Qg
VmVjdG9yPFN0cmluZz4mIGZpbGVVUkxzKQogICAgIG1fcHJvY2Vzcy0+c2VuZChNZXNzYWdlczo6
V2ViUGFnZTo6RGlkQ2hvb3NlRmlsZXNGb3JPcGVuUGFuZWwoZmlsZVVSTHMpLCBtX3BhZ2VJRCk7
CiAKICAgICBtX29wZW5QYW5lbFJlc3VsdExpc3RlbmVyLT5pbnZhbGlkYXRlKCk7Ci0gICAgbV9v
cGVuUGFuZWxSZXN1bHRMaXN0ZW5lciA9IDA7CisgICAgbV9vcGVuUGFuZWxSZXN1bHRMaXN0ZW5l
ciA9IG51bGxwdHI7CiB9CiAKIHZvaWQgV2ViUGFnZVByb3h5OjpkaWRDYW5jZWxGb3JPcGVuUGFu
ZWwoKQpAQCAtNDMxMSw3ICs0MzExLDcgQEAgdm9pZCBXZWJQYWdlUHJveHk6OmRpZENhbmNlbEZv
ck9wZW5QYW5lbCgpCiAgICAgbV9wcm9jZXNzLT5zZW5kKE1lc3NhZ2VzOjpXZWJQYWdlOjpEaWRD
YW5jZWxGb3JPcGVuUGFuZWwoKSwgbV9wYWdlSUQpOwogICAgIAogICAgIG1fb3BlblBhbmVsUmVz
dWx0TGlzdGVuZXItPmludmFsaWRhdGUoKTsKLSAgICBtX29wZW5QYW5lbFJlc3VsdExpc3RlbmVy
ID0gMDsKKyAgICBtX29wZW5QYW5lbFJlc3VsdExpc3RlbmVyID0gbnVsbHB0cjsKIH0KIAogdm9p
ZCBXZWJQYWdlUHJveHk6OmFkdmFuY2VUb05leHRNaXNzcGVsbGluZyhib29sIHN0YXJ0QmVmb3Jl
U2VsZWN0aW9uKQpAQCAtNDc2Nyw3ICs0NzY3LDcgQEAgdm9pZCBXZWJQYWdlUHJveHk6OnByaW50
RmluaXNoZWRDYWxsYmFjayhjb25zdCBSZXNvdXJjZUVycm9yJiBwcmludEVycm9yLCB1aW50NjQK
IHZvaWQgV2ViUGFnZVByb3h5Ojpmb2N1c2VkRnJhbWVDaGFuZ2VkKHVpbnQ2NF90IGZyYW1lSUQp
CiB7CiAgICAgaWYgKCFmcmFtZUlEKSB7Ci0gICAgICAgIG1fZm9jdXNlZEZyYW1lID0gMDsKKyAg
ICAgICAgbV9mb2N1c2VkRnJhbWUgPSBudWxscHRyOwogICAgICAgICByZXR1cm47CiAgICAgfQog
CkBAIC00NzgwLDcgKzQ3ODAsNyBAQCB2b2lkIFdlYlBhZ2VQcm94eTo6Zm9jdXNlZEZyYW1lQ2hh
bmdlZCh1aW50NjRfdCBmcmFtZUlEKQogdm9pZCBXZWJQYWdlUHJveHk6OmZyYW1lU2V0TGFyZ2Vz
dEZyYW1lQ2hhbmdlZCh1aW50NjRfdCBmcmFtZUlEKQogewogICAgIGlmICghZnJhbWVJRCkgewot
ICAgICAgICBtX2ZyYW1lU2V0TGFyZ2VzdEZyYW1lID0gMDsKKyAgICAgICAgbV9mcmFtZVNldExh
cmdlc3RGcmFtZSA9IG51bGxwdHI7CiAgICAgICAgIHJldHVybjsKICAgICB9CiAKZGlmZiAtLWdp
dCBhL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9pb3MvV0tHZW9sb2NhdGlvblByb3ZpZGVySU9T
Lm1tIGIvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL2lvcy9XS0dlb2xvY2F0aW9uUHJvdmlkZXJJ
T1MubW0KaW5kZXggYmI2YmI2MDU0ZjdmODZiOWM2M2Q2ODVlNjVlZjc5ZjkyMWEzYWIxZS4uYmRk
MTE0YTI0NDhkZmFhYTk3MTkxYTYyNWQ3Y2ExYmIyNjc3NjAyOSAxMDA2NDQKLS0tIGEvU291cmNl
L1dlYktpdDIvVUlQcm9jZXNzL2lvcy9XS0dlb2xvY2F0aW9uUHJvdmlkZXJJT1MubW0KKysrIGIv
U291cmNlL1dlYktpdDIvVUlQcm9jZXNzL2lvcy9XS0dlb2xvY2F0aW9uUHJvdmlkZXJJT1MubW0K
QEAgLTExOCw3ICsxMTgsNyBAQCAtKHZvaWQpX3N0b3BVcGRhdGluZwogewogICAgIF9pc1dlYkNv
cmVHZW9sb2NhdGlvbkFjdGl2ZSA9IE5POwogICAgIFtfY29yZUxvY2F0aW9uUHJvdmlkZXIgc3Rv
cF07Ci0gICAgX2xhc3RBY3RpdmVQb3NpdGlvbi5jbGVhcigpOworICAgIF9sYXN0QWN0aXZlUG9z
aXRpb24gPSBudWxscHRyOwogfQogCiAtKHZvaWQpX3NldEVuYWJsZUhpZ2hBY2N1cmFjeTooQk9P
TCllbmFibGVIaWdoQWNjdXJhY3kKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nl
c3MvSW5qZWN0ZWRCdW5kbGUvbWFjL0luamVjdGVkQnVuZGxlTWFjLm1tIGIvU291cmNlL1dlYktp
dDIvV2ViUHJvY2Vzcy9JbmplY3RlZEJ1bmRsZS9tYWMvSW5qZWN0ZWRCdW5kbGVNYWMubW0KaW5k
ZXggNGU4NmFmMTlkNWM5YWNlMTYyZDQwZTI2ZDAwNDI3OTBlZDFjNDhhMi4uMjg1NzVlZjc0OWIy
ZGRiM2Q5MGZlMjk0ZGJhMzcxMmU1NTRlODhkOSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdDIv
V2ViUHJvY2Vzcy9JbmplY3RlZEJ1bmRsZS9tYWMvSW5qZWN0ZWRCdW5kbGVNYWMubW0KKysrIGIv
U291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9JbmplY3RlZEJ1bmRsZS9tYWMvSW5qZWN0ZWRCdW5k
bGVNYWMubW0KQEAgLTU1LDcgKzU1LDcgQEAgYm9vbCBJbmplY3RlZEJ1bmRsZTo6aW5pdGlhbGl6
ZShjb25zdCBXZWJQcm9jZXNzQ3JlYXRpb25QYXJhbWV0ZXJzJiBwYXJhbWV0ZXJzLAogICAgICAg
ICAgICAgcmV0dXJuIGZhbHNlOwogICAgICAgICB9CiAKLSAgICAgICAgbV9zYW5kYm94RXh0ZW5z
aW9uID0gMDsKKyAgICAgICAgbV9zYW5kYm94RXh0ZW5zaW9uID0gbnVsbHB0cjsKICAgICB9CiAg
ICAgCiAgICAgUmV0YWluUHRyPENGU3RyaW5nUmVmPiBpbmplY3RlZEJ1bmRsZVBhdGhTdHIgPSBt
X3BhdGguY3JlYXRlQ0ZTdHJpbmcoKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL1dlYlBy
b2Nlc3MvTmV0d29yay9XZWJSZXNvdXJjZUxvYWRlci5jcHAgYi9Tb3VyY2UvV2ViS2l0Mi9XZWJQ
cm9jZXNzL05ldHdvcmsvV2ViUmVzb3VyY2VMb2FkZXIuY3BwCmluZGV4IDgzZDZjYThhYWFmZjYy
NTgzMmUzODIwMDFjZjZiMDA4MDYyZDY0OWUuLjI1Mzk3YzNiYzhlNjcxY2JkNTUwMjBlM2NkNjk3
M2M2YmEwYTI5ZTcgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvTmV0d29y
ay9XZWJSZXNvdXJjZUxvYWRlci5jcHAKKysrIGIvU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9O
ZXR3b3JrL1dlYlJlc291cmNlTG9hZGVyLmNwcApAQCAtNzYsNyArNzYsNyBAQCB2b2lkIFdlYlJl
c291cmNlTG9hZGVyOjpjYW5jZWxSZXNvdXJjZUxvYWRlcigpCiAKIHZvaWQgV2ViUmVzb3VyY2VM
b2FkZXI6OmRldGFjaEZyb21Db3JlTG9hZGVyKCkKIHsKLSAgICBtX2NvcmVMb2FkZXIgPSAwOwor
ICAgIG1fY29yZUxvYWRlciA9IG51bGxwdHI7CiB9CiAKIHZvaWQgV2ViUmVzb3VyY2VMb2FkZXI6
OndpbGxTZW5kUmVxdWVzdChjb25zdCBSZXNvdXJjZVJlcXVlc3QmIHByb3Bvc2VkUmVxdWVzdCwg
Y29uc3QgUmVzb3VyY2VSZXNwb25zZSYgcmVkaXJlY3RSZXNwb25zZSkKZGlmZiAtLWdpdCBhL1Nv
dXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvUGx1Z2lucy9OZXRzY2FwZS9OZXRzY2FwZVBsdWdpbi5j
cHAgYi9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL1BsdWdpbnMvTmV0c2NhcGUvTmV0c2NhcGVQ
bHVnaW4uY3BwCmluZGV4IDBhN2I3NGRlNWM1YzY2MmJkN2QxMTg0YzQ2M2ZjOTYyNmFiNDFlY2Qu
LmEzNmU0YjQxMzQ1ZGViMDEzNTBhMjQ5MGU3MDU4MDhmOTUzNDkwNjcgMTAwNjQ0Ci0tLSBhL1Nv
dXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvUGx1Z2lucy9OZXRzY2FwZS9OZXRzY2FwZVBsdWdpbi5j
cHAKKysrIGIvU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9QbHVnaW5zL05ldHNjYXBlL05ldHNj
YXBlUGx1Z2luLmNwcApAQCAtMjc3LDcgKzI3Nyw3IEBAIHZvaWQgTmV0c2NhcGVQbHVnaW46OmNh
bmNlbFN0cmVhbUxvYWQoTmV0c2NhcGVQbHVnaW5TdHJlYW0qIHBsdWdpblN0cmVhbSkKIHZvaWQg
TmV0c2NhcGVQbHVnaW46OnJlbW92ZVBsdWdpblN0cmVhbShOZXRzY2FwZVBsdWdpblN0cmVhbSog
cGx1Z2luU3RyZWFtKQogewogICAgIGlmIChwbHVnaW5TdHJlYW0gPT0gbV9tYW51YWxTdHJlYW0p
IHsKLSAgICAgICAgbV9tYW51YWxTdHJlYW0gPSAwOworICAgICAgICBtX21hbnVhbFN0cmVhbSA9
IG51bGxwdHI7CiAgICAgICAgIHJldHVybjsKICAgICB9CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9X
ZWJLaXQyL1dlYlByb2Nlc3MvUGx1Z2lucy9QREYvUERGUGx1Z2luLm1tIGIvU291cmNlL1dlYktp
dDIvV2ViUHJvY2Vzcy9QbHVnaW5zL1BERi9QREZQbHVnaW4ubW0KaW5kZXggZGNjYzU0MTA1ZmJh
ODcxOWU1ZmMzOGRmNGM1MDJkZGQyNzI5ZWVjZC4uNDcwNjFkNmQ2MTRkMjYxZDczMzlmNTcwZmU2
YjU4MDAwOTZmM2U5NCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9QbHVn
aW5zL1BERi9QREZQbHVnaW4ubW0KKysrIGIvU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9QbHVn
aW5zL1BERi9QREZQbHVnaW4ubW0KQEAgLTExMDMsOCArMTEwMyw4IEBAIHZvaWQgUERGUGx1Z2lu
OjpkZXN0cm95KCkKICAgICAgICAgICAgIGZyYW1lVmlldy0+cmVtb3ZlU2Nyb2xsYWJsZUFyZWEo
dGhpcyk7CiAgICAgfQogCi0gICAgbV9hY3RpdmVBbm5vdGF0aW9uID0gMDsKLSAgICBtX2Fubm90
YXRpb25Db250YWluZXIgPSAwOworICAgIG1fYWN0aXZlQW5ub3RhdGlvbiA9IG51bGxwdHI7Cisg
ICAgbV9hbm5vdGF0aW9uQ29udGFpbmVyID0gbnVsbHB0cjsKIAogICAgIGRlc3Ryb3lTY3JvbGxi
YXIoSG9yaXpvbnRhbFNjcm9sbGJhcik7CiAgICAgZGVzdHJveVNjcm9sbGJhcihWZXJ0aWNhbFNj
cm9sbGJhcik7CkBAIC0xNjA0LDE0ICsxNjA0LDE0IEBAIHZvaWQgUERGUGx1Z2luOjpzZXRBY3Rp
dmVBbm5vdGF0aW9uKFBERkFubm90YXRpb24gKmFubm90YXRpb24pCiAKICAgICBpZiAoYW5ub3Rh
dGlvbikgewogICAgICAgICBpZiAoW2Fubm90YXRpb24gaXNLaW5kT2ZDbGFzczpwZGZBbm5vdGF0
aW9uVGV4dFdpZGdldENsYXNzKCldICYmIHN0YXRpY19jYXN0PFBERkFubm90YXRpb25UZXh0V2lk
Z2V0ICo+KGFubm90YXRpb24pLmlzUmVhZE9ubHkpIHsKLSAgICAgICAgICAgIG1fYWN0aXZlQW5u
b3RhdGlvbiA9IDA7CisgICAgICAgICAgICBtX2FjdGl2ZUFubm90YXRpb24gPSBudWxscHRyOwog
ICAgICAgICAgICAgcmV0dXJuOwogICAgICAgICB9CiAKICAgICAgICAgbV9hY3RpdmVBbm5vdGF0
aW9uID0gUERGUGx1Z2luQW5ub3RhdGlvbjo6Y3JlYXRlKGFubm90YXRpb24sIG1fcGRmTGF5ZXJD
b250cm9sbGVyLmdldCgpLCB0aGlzKTsKICAgICAgICAgbV9hY3RpdmVBbm5vdGF0aW9uLT5hdHRh
Y2gobV9hbm5vdGF0aW9uQ29udGFpbmVyLmdldCgpKTsKICAgICB9IGVsc2UKLSAgICAgICAgbV9h
Y3RpdmVBbm5vdGF0aW9uID0gMDsKKyAgICAgICAgbV9hY3RpdmVBbm5vdGF0aW9uID0gbnVsbHB0
cjsKIH0KIAogYm9vbCBQREZQbHVnaW46OnN1cHBvcnRzRm9ybXMoKQpkaWZmIC0tZ2l0IGEvU291
cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9QbHVnaW5zL1BsdWdpblZpZXcuY3BwIGIvU291cmNlL1dl
YktpdDIvV2ViUHJvY2Vzcy9QbHVnaW5zL1BsdWdpblZpZXcuY3BwCmluZGV4IDZhODMzZjEzMTEx
MzUzMDc2YWNhZTEyODE0MzNiMmY1MTE5YmIyNDYuLjJhMGZkOTczMTMwYjIxMjY3OGIwNTU0Yzdk
OGJlYjU1YzY4NTk2OGQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvUGx1
Z2lucy9QbHVnaW5WaWV3LmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL1BsdWdp
bnMvUGx1Z2luVmlldy5jcHAKQEAgLTE2Niw3ICsxNjYsNyBAQCB2b2lkIFBsdWdpblZpZXc6OlN0
cmVhbTo6Y2FuY2VsKCkKIAogICAgIG1fc3RyZWFtV2FzQ2FuY2VsbGVkID0gdHJ1ZTsKICAgICBt
X2xvYWRlci0+Y2FuY2VsKG1fbG9hZGVyLT5jYW5jZWxsZWRFcnJvcigpKTsKLSAgICBtX2xvYWRl
ciA9IDA7CisgICAgbV9sb2FkZXIgPSBudWxscHRyOwogfQogCiBzdGF0aWMgU3RyaW5nIGJ1aWxk
SFRUUEhlYWRlcnMoY29uc3QgUmVzb3VyY2VSZXNwb25zZSYgcmVzcG9uc2UsIGxvbmcgbG9uZyYg
ZXhwZWN0ZWRDb250ZW50TGVuZ3RoKQpAQCAtNjA0LDcgKzYwNCw3IEBAIHZvaWQgUGx1Z2luVmll
dzo6aW5pdGlhbGl6ZVBsdWdpbigpCiAKIHZvaWQgUGx1Z2luVmlldzo6ZGlkRmFpbFRvSW5pdGlh
bGl6ZVBsdWdpbigpCiB7Ci0gICAgbV9wbHVnaW4gPSAwOworICAgIG1fcGx1Z2luID0gbnVsbHB0
cjsKIAogI2lmIEVOQUJMRShORVRTQ0FQRV9QTFVHSU5fQVBJKQogICAgIFN0cmluZyBmcmFtZVVS
TFN0cmluZyA9IGZyYW1lKCktPmxvYWRlcigpLmRvY3VtZW50TG9hZGVyKCktPnJlc3BvbnNlVVJM
KCkuc3RyaW5nKCk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL1dlYlBh
Z2UvV2ViUGFnZS5jcHAgYi9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL1dlYlBhZ2UvV2ViUGFn
ZS5jcHAKaW5kZXggMTU1NGRiY2Y3NDk2Yzc2ZDk3MjAzM2I4ZDM5MTM2NGFiNmZlMWViOC4uN2I4
YTkyNjAwN2RkMTgwNzg4NWRhMjgxMTZjODJiOThiMzE4MzI2NCAxMDA2NDQKLS0tIGEvU291cmNl
L1dlYktpdDIvV2ViUHJvY2Vzcy9XZWJQYWdlL1dlYlBhZ2UuY3BwCisrKyBiL1NvdXJjZS9XZWJL
aXQyL1dlYlByb2Nlc3MvV2ViUGFnZS9XZWJQYWdlLmNwcApAQCAtOTMwLDIzICs5MzAsMjMgQEAg
dm9pZCBXZWJQYWdlOjpjbG9zZSgpCiAgICAgfQogCiAjaWYgRU5BQkxFKEZVTExTQ1JFRU5fQVBJ
KQotICAgIG1fZnVsbFNjcmVlbk1hbmFnZXIgPSAwOworICAgIG1fZnVsbFNjcmVlbk1hbmFnZXIg
PSBudWxscHRyOwogI2VuZGlmCiAKICAgICBpZiAobV9hY3RpdmVQb3B1cE1lbnUpIHsKICAgICAg
ICAgbV9hY3RpdmVQb3B1cE1lbnUtPmRpc2Nvbm5lY3RGcm9tUGFnZSgpOwotICAgICAgICBtX2Fj
dGl2ZVBvcHVwTWVudSA9IDA7CisgICAgICAgIG1fYWN0aXZlUG9wdXBNZW51ID0gbnVsbHB0cjsK
ICAgICB9CiAKICAgICBpZiAobV9hY3RpdmVPcGVuUGFuZWxSZXN1bHRMaXN0ZW5lcikgewogICAg
ICAgICBtX2FjdGl2ZU9wZW5QYW5lbFJlc3VsdExpc3RlbmVyLT5kaXNjb25uZWN0RnJvbVBhZ2Uo
KTsKLSAgICAgICAgbV9hY3RpdmVPcGVuUGFuZWxSZXN1bHRMaXN0ZW5lciA9IDA7CisgICAgICAg
IG1fYWN0aXZlT3BlblBhbmVsUmVzdWx0TGlzdGVuZXIgPSBudWxscHRyOwogICAgIH0KIAogI2lm
IEVOQUJMRShJTlBVVF9UWVBFX0NPTE9SKQogICAgIGlmIChtX2FjdGl2ZUNvbG9yQ2hvb3Nlcikg
ewogICAgICAgICBtX2FjdGl2ZUNvbG9yQ2hvb3Nlci0+ZGlzY29ubmVjdEZyb21QYWdlKCk7Ci0g
ICAgICAgIG1fYWN0aXZlQ29sb3JDaG9vc2VyID0gMDsKKyAgICAgICAgbV9hY3RpdmVDb2xvckNo
b29zZXIgPSBudWxscHRyOwogICAgIH0KICNlbmRpZgogCkBAIC0zMjcwLDcgKzMyNzAsNyBAQCB2
b2lkIFdlYlBhZ2U6OmNvdW50U3RyaW5nTWF0Y2hlcyhjb25zdCBTdHJpbmcmIHN0cmluZywgdWlu
dDMyX3Qgb3B0aW9ucywgdWludDMyXwogdm9pZCBXZWJQYWdlOjpkaWRDaGFuZ2VTZWxlY3RlZElu
ZGV4Rm9yQWN0aXZlUG9wdXBNZW51KGludDMyX3QgbmV3SW5kZXgpCiB7CiAgICAgY2hhbmdlU2Vs
ZWN0ZWRJbmRleChuZXdJbmRleCk7Ci0gICAgbV9hY3RpdmVQb3B1cE1lbnUgPSAwOworICAgIG1f
YWN0aXZlUG9wdXBNZW51ID0gbnVsbHB0cjsKIH0KIAogdm9pZCBXZWJQYWdlOjpjaGFuZ2VTZWxl
Y3RlZEluZGV4KGludDMyX3QgaW5kZXgpCkBAIC0zMzA2LDEyICszMzA2LDEyIEBAIHZvaWQgV2Vi
UGFnZTo6ZGlkQ2hvb3NlRmlsZXNGb3JPcGVuUGFuZWwoY29uc3QgVmVjdG9yPFN0cmluZz4mIGZp
bGVzKQogICAgICAgICByZXR1cm47CiAKICAgICBtX2FjdGl2ZU9wZW5QYW5lbFJlc3VsdExpc3Rl
bmVyLT5kaWRDaG9vc2VGaWxlcyhmaWxlcyk7Ci0gICAgbV9hY3RpdmVPcGVuUGFuZWxSZXN1bHRM
aXN0ZW5lciA9IDA7CisgICAgbV9hY3RpdmVPcGVuUGFuZWxSZXN1bHRMaXN0ZW5lciA9IG51bGxw
dHI7CiB9CiAKIHZvaWQgV2ViUGFnZTo6ZGlkQ2FuY2VsRm9yT3BlblBhbmVsKCkKIHsKLSAgICBt
X2FjdGl2ZU9wZW5QYW5lbFJlc3VsdExpc3RlbmVyID0gMDsKKyAgICBtX2FjdGl2ZU9wZW5QYW5l
bFJlc3VsdExpc3RlbmVyID0gbnVsbHB0cjsKIH0KIAogI2lmIEVOQUJMRShTQU5EQk9YX0VYVEVO
U0lPTlMpCkBAIC0zNDE1LDcgKzM0MTUsNyBAQCB2b2lkIFdlYlBhZ2U6OmRpZFNlbGVjdEl0ZW1G
cm9tQWN0aXZlQ29udGV4dE1lbnUoY29uc3QgV2ViQ29udGV4dE1lbnVJdGVtRGF0YSYgaQogICAg
ICAgICByZXR1cm47CiAKICAgICBtX2NvbnRleHRNZW51LT5pdGVtU2VsZWN0ZWQoaXRlbSk7Ci0g
ICAgbV9jb250ZXh0TWVudSA9IDA7CisgICAgbV9jb250ZXh0TWVudSA9IG51bGxwdHI7CiB9CiAj
ZW5kaWYKIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9XZWJQYWdlL2lv
cy9XZWJQYWdlSU9TLm1tIGIvU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9XZWJQYWdlL2lvcy9X
ZWJQYWdlSU9TLm1tCmluZGV4IDIzZGU4M2VmYWQ2ODk0NjI0NzU2MGY4MTFkMDg4Y2QyOTc1MmE2
YTcuLjlmNGNlYzcyMzFkZDQ2MjcxNTYzZDUyYjZhNGUyYjlkMzI3ODg3YzYgMTAwNjQ0Ci0tLSBh
L1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvV2ViUGFnZS9pb3MvV2ViUGFnZUlPUy5tbQorKysg
Yi9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL1dlYlBhZ2UvaW9zL1dlYlBhZ2VJT1MubW0KQEAg
LTE5NzgsNyArMTk3OCw3IEBAIHZvaWQgV2ViUGFnZTo6c3luY0FwcGx5QXV0b2NvcnJlY3Rpb24o
Y29uc3QgU3RyaW5nJiBjb3JyZWN0aW9uLCBjb25zdCBTdHJpbmcmIG9yCiAgICAgICAgIHdoaWxl
ICh0ZXh0Rm9yUmFuZ2UubGVuZ3RoKCkgJiYgdGV4dEZvclJhbmdlLmxlbmd0aCgpID4gb3JpZ2lu
YWxUZXh0Lmxlbmd0aCgpICYmIGxvb3BDb3VudCA8IG1heFBvc2l0aW9uc0F0dGVtcHRzKSB7CiAg
ICAgICAgICAgICBwb3NpdGlvbiA9IHBvc2l0aW9uLm5leHQoKTsKICAgICAgICAgICAgIGlmIChw
b3NpdGlvbi5pc05vdE51bGwoKSAmJiBwb3NpdGlvbiA+PSBmcmFtZS5zZWxlY3Rpb24oKS5zZWxl
Y3Rpb24oKS5zdGFydCgpKQotICAgICAgICAgICAgICAgIHJhbmdlID0gTlVMTDsKKyAgICAgICAg
ICAgICAgICByYW5nZSA9IG51bGxwdHI7CiAgICAgICAgICAgICBlbHNlCiAgICAgICAgICAgICAg
ICAgcmFuZ2UgPSBSYW5nZTo6Y3JlYXRlKCpmcmFtZS5kb2N1bWVudCgpLCBwb3NpdGlvbiwgZnJh
bWUuc2VsZWN0aW9uKCkuc2VsZWN0aW9uKCkuc3RhcnQoKSk7CiAgICAgICAgICAgICB0ZXh0Rm9y
UmFuZ2UgPSAocmFuZ2UpID8gcGxhaW5UZXh0UmVwbGFjaW5nTm9CcmVha1NwYWNlKHJhbmdlLmdl
dCgpKSA6IGVtcHR5U3RyaW5nKCk7CkBAIC0yNDU4LDcgKzI0NTgsNyBAQCB2b2lkIFdlYlBhZ2U6
OmVsZW1lbnREaWRCbHVyKFdlYkNvcmU6Ok5vZGUqIG5vZGUpCiAgICAgICAgICAgICAgICAgc2Vu
ZChNZXNzYWdlczo6V2ViUGFnZVByb3h5OjpTdG9wQXNzaXN0aW5nTm9kZSgpKTsKICAgICAgICAg
ICAgIG1faGFzUGVuZGluZ0JsdXJOb3RpZmljYXRpb24gPSBmYWxzZTsKICAgICAgICAgfSk7Ci0g
ICAgICAgIG1fYXNzaXN0ZWROb2RlID0gMDsKKyAgICAgICAgbV9hc3Npc3RlZE5vZGUgPSBudWxs
cHRyOwogICAgIH0KIH0KIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9X
ZWJQcm9jZXNzLmNwcCBiL1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvV2ViUHJvY2Vzcy5jcHAK
aW5kZXggYTk3YmMyMWE5ODE1NDlhY2NkN2ZlZGZiMjgzM2FlYzg0ZWVkZDA3YS4uYjRjOWUwZWU4
ODFmZTczMTA1ZDM1ZTFmMTAyNDQ1MWEzYTJiOTBlYSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktp
dDIvV2ViUHJvY2Vzcy9XZWJQcm9jZXNzLmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9j
ZXNzL1dlYlByb2Nlc3MuY3BwCkBAIC0xMDM0LDcgKzEwMzQsNyBAQCB2b2lkIFdlYlByb2Nlc3M6
Om5ldHdvcmtQcm9jZXNzQ29ubmVjdGlvbkNsb3NlZChOZXR3b3JrUHJvY2Vzc0Nvbm5lY3Rpb24q
IGNvbm5lYwogICAgIEFTU0VSVChtX25ldHdvcmtQcm9jZXNzQ29ubmVjdGlvbik7CiAgICAgQVNT
RVJUX1VOVVNFRChjb25uZWN0aW9uLCBtX25ldHdvcmtQcm9jZXNzQ29ubmVjdGlvbiA9PSBjb25u
ZWN0aW9uKTsKIAotICAgIG1fbmV0d29ya1Byb2Nlc3NDb25uZWN0aW9uID0gMDsKKyAgICBtX25l
dHdvcmtQcm9jZXNzQ29ubmVjdGlvbiA9IG51bGxwdHI7CiAgICAgCiAgICAgbV93ZWJSZXNvdXJj
ZUxvYWRTY2hlZHVsZXItPm5ldHdvcmtQcm9jZXNzQ3Jhc2hlZCgpOwogfQpAQCAtMTA1MSw3ICsx
MDUxLDcgQEAgdm9pZCBXZWJQcm9jZXNzOjp3ZWJUb0RhdGFiYXNlUHJvY2Vzc0Nvbm5lY3Rpb25D
bG9zZWQoV2ViVG9EYXRhYmFzZVByb2Nlc3NDb25uZWMKICAgICBBU1NFUlQobV93ZWJUb0RhdGFi
YXNlUHJvY2Vzc0Nvbm5lY3Rpb24pOwogICAgIEFTU0VSVChtX3dlYlRvRGF0YWJhc2VQcm9jZXNz
Q29ubmVjdGlvbiA9PSBjb25uZWN0aW9uKTsKIAotICAgIG1fd2ViVG9EYXRhYmFzZVByb2Nlc3ND
b25uZWN0aW9uID0gMDsKKyAgICBtX3dlYlRvRGF0YWJhc2VQcm9jZXNzQ29ubmVjdGlvbiA9IG51
bGxwdHI7CiB9CiAKIFdlYlRvRGF0YWJhc2VQcm9jZXNzQ29ubmVjdGlvbiogV2ViUHJvY2Vzczo6
d2ViVG9EYXRhYmFzZVByb2Nlc3NDb25uZWN0aW9uKCkKZGlmZiAtLWdpdCBhL1Rvb2xzL0NoYW5n
ZUxvZyBiL1Rvb2xzL0NoYW5nZUxvZwppbmRleCA5ODc2MGNjZjVhNDE5NzRiMDhjODIwOThlNTRk
Mjg4OGFmNDcxN2E4Li42OWVlZmNmODgzZmQzMThjNjExN2RlZTBmYWYwZWFjN2IzNjZkM2YxIDEw
MDY0NAotLS0gYS9Ub29scy9DaGFuZ2VMb2cKKysrIGIvVG9vbHMvQ2hhbmdlTG9nCkBAIC0xLDMg
KzEsMTIgQEAKKzIwMTUtMDctMDMgIENocmlzIER1bWV6ICA8Y2R1bWV6QGFwcGxlLmNvbT4KKwor
ICAgICAgICBEcm9wIFJlZlB0cjo6Y2xlYXIoKSBtZXRob2QKKyAgICAgICAgaHR0cHM6Ly9idWdz
LndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTE0NjU1NgorCisgICAgICAgIFJldmlld2VkIGJ5
IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIERyb3AgUmVmUHRyOjpjbGVhcigpIG1ldGhvZCBp
biBmYXZvciBvZiAiPSBudWxscHRyOyIgcGF0dGVybi4KKwogMjAxNS0wNy0wMyAgRGFuIEJlcm5z
dGVpbiAgPG1pdHpAYXBwbGUuY29tPgogCiAgICAgICAgIFtYY29kZV0gVXBkYXRlIHNvbWUgYnVp
bGQgc2V0dGluZ3MgYXMgcmVjb21tZW5kZWQgYnkgWGNvZGUgNwpkaWZmIC0tZ2l0IGEvVG9vbHMv
RHVtcFJlbmRlclRyZWUvbWFjL0R1bXBSZW5kZXJUcmVlLm1tIGIvVG9vbHMvRHVtcFJlbmRlclRy
ZWUvbWFjL0R1bXBSZW5kZXJUcmVlLm1tCmluZGV4IGJjY2Q0YTkxMTJlNjcyYzFjYzJiMmQ5MzBm
ZjBhM2VlMDNiMDNlMDYuLjI3NmRmOGI4OTJlYzUyN2E3NDZiZjNmYTZkZGM2NGVhZDM3NzdjMTUg
MTAwNjQ0Ci0tLSBhL1Rvb2xzL0R1bXBSZW5kZXJUcmVlL21hYy9EdW1wUmVuZGVyVHJlZS5tbQor
KysgYi9Ub29scy9EdW1wUmVuZGVyVHJlZS9tYWMvRHVtcFJlbmRlclRyZWUubW0KQEAgLTIwNjQs
NyArMjA2NCw3IEBAIHN0YXRpYyB2b2lkIHJ1blRlc3QoY29uc3Qgc3RyaW5nJiBpbnB1dExpbmUp
CiAgICAgQVNTRVJUKENGQXJyYXlHZXRDb3VudChvcGVuV2luZG93c1JlZikgPT0gMSk7CiAgICAg
QVNTRVJUKENGQXJyYXlHZXRWYWx1ZUF0SW5kZXgob3BlbldpbmRvd3NSZWYsIDApID09IFtbbWFp
bkZyYW1lIHdlYlZpZXddIHdpbmRvd10pOwogCi0gICAgZ1Rlc3RSdW5uZXIuY2xlYXIoKTsKKyAg
ICBnVGVzdFJ1bm5lciA9IG51bGxwdHI7CiAKICAgICBpZiAoaWdub3JlV2ViQ29yZU5vZGVMZWFr
cykKICAgICAgICAgW1dlYkNvcmVTdGF0aXN0aWNzIHN0b3BJZ25vcmluZ1dlYkNvcmVOb2RlTGVh
a3NdOwpkaWZmIC0tZ2l0IGEvVG9vbHMvRHVtcFJlbmRlclRyZWUvd2luL0R1bXBSZW5kZXJUcmVl
LmNwcCBiL1Rvb2xzL0R1bXBSZW5kZXJUcmVlL3dpbi9EdW1wUmVuZGVyVHJlZS5jcHAKaW5kZXgg
ZDk4NmNiZmQzNzM0MDI0NjZmNDBiOGU2NWE0MDQ2OWJlY2UwYThkYy4uYzg0MzU0NzIzY2JhOTVm
NGExNWE0MTYwNzYzMjkzYmQ2NzY2OGYyOSAxMDA2NDQKLS0tIGEvVG9vbHMvRHVtcFJlbmRlclRy
ZWUvd2luL0R1bXBSZW5kZXJUcmVlLmNwcAorKysgYi9Ub29scy9EdW1wUmVuZGVyVHJlZS93aW4v
RHVtcFJlbmRlclRyZWUuY3BwCkBAIC0xMTgzLDcgKzExODMsNyBAQCBzdGF0aWMgdm9pZCBydW5U
ZXN0KGNvbnN0IHN0cmluZyYgaW5wdXRMaW5lKQogCiBleGl0OgogICAgIHJlbW92ZUZvbnRGYWxs
YmFja0lmUHJlc2VudChmYWxsYmFja1BhdGgpOwotICAgIDo6Z1Rlc3RSdW5uZXIuY2xlYXIoKTsK
KyAgICA6OmdUZXN0UnVubmVyID0gbnVsbHB0cjsKIAogICAgIGZwdXRzKCIjRU9GXG4iLCBzdGRl
cnIpOwogICAgIGZmbHVzaChzdGRlcnIpOwpkaWZmIC0tZ2l0IGEvVG9vbHMvVGVzdFdlYktpdEFQ
SS9UZXN0cy9XVEYvUmVmUHRyLmNwcCBiL1Rvb2xzL1Rlc3RXZWJLaXRBUEkvVGVzdHMvV1RGL1Jl
ZlB0ci5jcHAKaW5kZXggZmM5MjI0NjcyNzg0NjQxZDFkMzc0OWMyMDc5ZTE1YmJkM2U4NzI2Yy4u
YjcyNmQ3ZGRmMDNjYzJmZDZhMjBlMTRkOWI0MDIzY2YyNmE3ZDQzOCAxMDA2NDQKLS0tIGEvVG9v
bHMvVGVzdFdlYktpdEFQSS9UZXN0cy9XVEYvUmVmUHRyLmNwcAorKysgYi9Ub29scy9UZXN0V2Vi
S2l0QVBJL1Rlc3RzL1dURi9SZWZQdHIuY3BwCkBAIC0xMDIsNyArMTAyLDcgQEAgVEVTVChXVEZf
UmVmUHRyLCBCYXNpYykKICAgICB7CiAgICAgICAgIFJlZlB0cjxSZWZMb2dnZXI+IHB0cigmYSk7
CiAgICAgICAgIEFTU0VSVF9FUSgmYSwgcHRyLmdldCgpKTsKLSAgICAgICAgcHRyLmNsZWFyKCk7
CisgICAgICAgIHB0ciA9IG51bGxwdHI7CiAgICAgICAgIEFTU0VSVF9FUShudWxscHRyLCBwdHIu
Z2V0KCkpOwogICAgIH0KICAgICBBU1NFUlRfU1RSRVEoInJlZihhKSBkZXJlZihhKSAiLCB0YWtl
TG9nU3RyKCkuY19zdHIoKSk7Cg==
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>256132</attachid>
            <date>2015-07-03 20:52:39 -0700</date>
            <delta_ts>2015-07-03 21:05:00 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-146556-20150703205144.patch</filename>
            <type>text/plain</type>
            <size>183280</size>
            <attacher name="Chris Dumez">cdumez</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTg2MjcxCmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlw
dENvcmUvQ2hhbmdlTG9nIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL0NoYW5nZUxvZwppbmRleCA3
NThjNmEzYWY4NTAzMTIzOGRiZjUzY2ZjMjg4NTc5ODM0OGUzYTJiLi4xMDE2ZTQ4ODM0ODAxMjg3
MDYxYjUxMzZjNmU4MzkxZWE4NGQxMzk2IDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENv
cmUvQ2hhbmdlTG9nCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9DaGFuZ2VMb2cKQEAgLTEs
MyArMSwxMiBAQAorMjAxNS0wNy0wMyAgQ2hyaXMgRHVtZXogIDxjZHVtZXpAYXBwbGUuY29tPgor
CisgICAgICAgIERyb3AgUmVmUHRyOjpjbGVhcigpIG1ldGhvZAorICAgICAgICBodHRwczovL2J1
Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTQ2NTU2CisKKyAgICAgICAgUmV2aWV3ZWQg
YnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgRHJvcCBSZWZQdHI6OmNsZWFyKCkgbWV0aG9k
IGluIGZhdm9yIG9mICI9IG51bGxwdHI7IiBwYXR0ZXJuLgorCiAyMDE1LTA3LTAzICBEYW4gQmVy
bnN0ZWluICA8bWl0ekBhcHBsZS5jb20+CiAKICAgICAgICAgW1hjb2RlXSBVcGRhdGUgc29tZSBi
dWlsZCBzZXR0aW5ncyBhcyByZWNvbW1lbmRlZCBieSBYY29kZSA3CmRpZmYgLS1naXQgYS9Tb3Vy
Y2UvV1RGL0NoYW5nZUxvZyBiL1NvdXJjZS9XVEYvQ2hhbmdlTG9nCmluZGV4IDcxMDIyNmE3ZTZj
Nzg3NjQ2YWZhMDllN2ViYmNlZDA4ZDg1M2I0N2MuLjlhNDkxMmEwMDJkYjcwYmUxMTk5M2UxNTcw
YzU0YmIzMjQ4MDBjYjggMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XVEYvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XVEYvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMTYgQEAKKzIwMTUtMDctMDMgIENocmlzIER1
bWV6ICA8Y2R1bWV6QGFwcGxlLmNvbT4KKworICAgICAgICBEcm9wIFJlZlB0cjo6Y2xlYXIoKSBt
ZXRob2QKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTE0
NjU1NgorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIERy
b3AgUmVmUHRyOjpjbGVhcigpIG1ldGhvZCBpbiBmYXZvciBvZiAiPSBudWxscHRyOyIgcGF0dGVy
bi4KKyAgICAgICAgQWxzbyBtYWRlIHRoZSAiPSBudWxscHRyOyIgcGF0dGVybiBhcyBlZmZpY2ll
bnQgYXMgY2xlYXIoKQorICAgICAgICBieSBwcm92aWRpbmcgYSBvcGVyYXRvcj0obnVsbHB0cl90
KSBvdmVybG9hZC4gTG9jYWwgbWljcm8tCisgICAgICAgIGJlbmNobWFya2luZyBzaG93ZWQgdGhh
dCAiPSBudWxscHRyOyIgdXNlZCB0byBiZSB+MS43JSBzbG93ZXIKKyAgICAgICAgdGhhbiBjbGVh
cigpLgorCiAyMDE1LTA3LTAzICBEYW4gQmVybnN0ZWluICA8bWl0ekBhcHBsZS5jb20+CiAKICAg
ICAgICAgW1hjb2RlXSBVcGRhdGUgc29tZSBidWlsZCBzZXR0aW5ncyBhcyByZWNvbW1lbmRlZCBi
eSBYY29kZSA3CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cgYi9Tb3VyY2Uv
V2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggY2ZhNDExOWI1YWM2NmMxMDk1YjRmMzY5MDZmYjliYWQ5
YTA4MmRjNy4uNzkzMzE4N2M3YzIxYTNhMzhmYjZhMWUyZWMzN2JmNjZhZGFiYzdlYiAxMDA2NDQK
LS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1NvdXJjZS9XZWJDb3JlL0NoYW5n
ZUxvZwpAQCAtMSwzICsxLDIzMiBAQAorMjAxNS0wNy0wMyAgQ2hyaXMgRHVtZXogIDxjZHVtZXpA
YXBwbGUuY29tPgorCisgICAgICAgIERyb3AgUmVmUHRyOjpjbGVhcigpIG1ldGhvZAorICAgICAg
ICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTQ2NTU2CisKKyAgICAg
ICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgRHJvcCBSZWZQdHI6OmNs
ZWFyKCkgbWV0aG9kIGluIGZhdm9yIG9mICI9IG51bGxwdHI7IiBwYXR0ZXJuLgorCisyMDE1LTA3
LTAyICBDaHJpcyBEdW1leiAgPGNkdW1lekBhcHBsZS5jb20+CisKKyAgICAgICAgRHJvcCBSZWZQ
dHI6OmNsZWFyKCkgbWV0aG9kCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3df
YnVnLmNnaT9pZD0xNDY1NTYKKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4K
KworICAgICAgICAqIE1vZHVsZXMvaW5kZXhlZGRiL0lEQkN1cnNvci5jcHA6CisgICAgICAgIChX
ZWJDb3JlOjpJREJDdXJzb3I6OmNsb3NlKToKKyAgICAgICAgKiBNb2R1bGVzL2luZGV4ZWRkYi9J
REJEYXRhYmFzZUJhY2tlbmQuY3BwOgorICAgICAgICAoV2ViQ29yZTo6SURCRGF0YWJhc2VCYWNr
ZW5kOjp0cmFuc2FjdGlvbkZpbmlzaGVkKToKKyAgICAgICAgKiBNb2R1bGVzL2luZGV4ZWRkYi9J
REJPYmplY3RTdG9yZS5jcHA6CisgICAgICAgICogTW9kdWxlcy9pbmRleGVkZGIvSURCT3BlbkRC
UmVxdWVzdC5jcHA6CisgICAgICAgIChXZWJDb3JlOjpJREJPcGVuREJSZXF1ZXN0OjpkaXNwYXRj
aEV2ZW50KToKKyAgICAgICAgKiBNb2R1bGVzL2luZGV4ZWRkYi9JREJSZXF1ZXN0LmNwcDoKKyAg
ICAgICAgKFdlYkNvcmU6OklEQlJlcXVlc3Q6OmFib3J0KToKKyAgICAgICAgKFdlYkNvcmU6OklE
QlJlcXVlc3Q6OnNldFBlbmRpbmdDdXJzb3IpOgorICAgICAgICAoV2ViQ29yZTo6SURCUmVxdWVz
dDo6b25FcnJvcik6CisgICAgICAgIChXZWJDb3JlOjpJREJSZXF1ZXN0OjpvblN1Y2Nlc3NJbnRl
cm5hbCk6CisgICAgICAgIChXZWJDb3JlOjpJREJSZXF1ZXN0Ojp0cmFuc2FjdGlvbkRpZEZpbmlz
aEFuZERpc3BhdGNoKToKKyAgICAgICAgKiBNb2R1bGVzL2luZGV4ZWRkYi9JREJUcmFuc2FjdGlv
bi5jcHA6CisgICAgICAgIChXZWJDb3JlOjpJREJUcmFuc2FjdGlvbjo6T3BlbkN1cnNvck5vdGlm
aWVyOjpjdXJzb3JGaW5pc2hlZCk6CisgICAgICAgICogTW9kdWxlcy9tZWRpYXNvdXJjZS9NZWRp
YVNvdXJjZS5jcHA6CisgICAgICAgIChXZWJDb3JlOjpNZWRpYVNvdXJjZTo6c2V0UmVhZHlTdGF0
ZSk6CisgICAgICAgIChXZWJDb3JlOjpNZWRpYVNvdXJjZTo6c3RvcCk6CisgICAgICAgICogTW9k
dWxlcy9tZWRpYXN0cmVhbS9SVENTZXNzaW9uRGVzY3JpcHRpb25SZXF1ZXN0SW1wbC5jcHA6Cisg
ICAgICAgIChXZWJDb3JlOjpSVENTZXNzaW9uRGVzY3JpcHRpb25SZXF1ZXN0SW1wbDo6Y2xlYXIp
OgorICAgICAgICAqIE1vZHVsZXMvbWVkaWFzdHJlYW0vUlRDU3RhdHNSZXF1ZXN0SW1wbC5jcHA6
CisgICAgICAgIChXZWJDb3JlOjpSVENTdGF0c1JlcXVlc3RJbXBsOjpjbGVhcik6CisgICAgICAg
ICogTW9kdWxlcy9tZWRpYXN0cmVhbS9SVENWb2lkUmVxdWVzdEltcGwuY3BwOgorICAgICAgICAo
V2ViQ29yZTo6UlRDVm9pZFJlcXVlc3RJbXBsOjpjbGVhcik6CisgICAgICAgICogTW9kdWxlcy93
ZWJhdWRpby9BdWRpb0NvbnRleHQuY3BwOgorICAgICAgICAoV2ViQ29yZTo6QXVkaW9Db250ZXh0
OjpjbGVhcik6CisgICAgICAgICogTW9kdWxlcy93ZWJkYXRhYmFzZS9TUUxUcmFuc2FjdGlvbkJh
Y2tlbmQuY3BwOgorICAgICAgICAoV2ViQ29yZTo6U1FMVHJhbnNhY3Rpb25CYWNrZW5kOjpyZWxl
YXNlT3JpZ2luTG9ja0lmTmVlZGVkKToKKyAgICAgICAgKiBNb2R1bGVzL3dlYnNvY2tldHMvV29y
a2VyVGhyZWFkYWJsZVdlYlNvY2tldENoYW5uZWwuY3BwOgorICAgICAgICAoV2ViQ29yZTo6V29y
a2VyVGhyZWFkYWJsZVdlYlNvY2tldENoYW5uZWw6OmRpc2Nvbm5lY3QpOgorICAgICAgICAqIGJp
bmRpbmdzL2pzL1dlYkNvcmVKU0NsaWVudERhdGEuaDoKKyAgICAgICAgKFdlYkNvcmU6OldlYkNv
cmVKU0NsaWVudERhdGE6On5XZWJDb3JlSlNDbGllbnREYXRhKToKKyAgICAgICAgKiBiaW5kaW5n
cy9qcy9Xb3JrZXJTY3JpcHRDb250cm9sbGVyLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6Oldvcmtl
clNjcmlwdENvbnRyb2xsZXI6On5Xb3JrZXJTY3JpcHRDb250cm9sbGVyKToKKyAgICAgICAgKiBj
b250ZW50ZXh0ZW5zaW9ucy9Db250ZW50RXh0ZW5zaW9uUGFyc2VyLmNwcDoKKyAgICAgICAgKFdl
YkNvcmU6OkNvbnRlbnRFeHRlbnNpb25zOjpwYXJzZVJ1bGVMaXN0KToKKyAgICAgICAgKiBjc3Mv
Q1NTUGFyc2VyLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OkNTU1BhcnNlcjo6cGFyc2VGaWxsUG9z
aXRpb24pOgorICAgICAgICAoV2ViQ29yZTo6Q1NTUGFyc2VyOjpwYXJzZTJWYWx1ZXNGaWxsUG9z
aXRpb24pOgorICAgICAgICAoV2ViQ29yZTo6Q1NTUGFyc2VyOjpwb3BSdWxlRGF0YSk6CisgICAg
ICAgIChXZWJDb3JlOjpDU1NQYXJzZXI6Om1hcmtSdWxlQm9keVN0YXJ0KToKKyAgICAgICAgKiBk
b20vRG9jdW1lbnQuY3BwOgorICAgICAgICAoV2ViQ29yZTo6RG9jdW1lbnQ6OmRldGFjaFBhcnNl
cik6CisgICAgICAgIChXZWJDb3JlOjpEb2N1bWVudDo6Y2xlYXJTY3JpcHRlZEFuaW1hdGlvbkNv
bnRyb2xsZXIpOgorICAgICAgICAoV2ViQ29yZTo6RG9jdW1lbnQ6OnVwZGF0ZUhvdmVyQWN0aXZl
U3RhdGUpOgorICAgICAgICAqIGRvbS9Eb2N1bWVudE1hcmtlci5oOgorICAgICAgICAoV2ViQ29y
ZTo6RG9jdW1lbnRNYXJrZXI6OmNsZWFyRGV0YWlscyk6CisgICAgICAgICogZG9tL0VsZW1lbnQu
Y3BwOgorICAgICAgICAoV2ViQ29yZTo6RWxlbWVudDo6Y2xvbmVBdHRyaWJ1dGVzRnJvbUVsZW1l
bnQpOgorICAgICAgICAqIGRvbS9Ob2RlSXRlcmF0b3IuY3BwOgorICAgICAgICAoV2ViQ29yZTo6
Tm9kZUl0ZXJhdG9yOjpOb2RlUG9pbnRlcjo6Y2xlYXIpOgorICAgICAgICAoV2ViQ29yZTo6Tm9k
ZUl0ZXJhdG9yOjpkZXRhY2gpOgorICAgICAgICAqIGRvbS9Qb3NpdGlvbi5oOgorICAgICAgICAo
V2ViQ29yZTo6UG9zaXRpb246OmNsZWFyKToKKyAgICAgICAgKiBkb20vUmFuZ2VCb3VuZGFyeVBv
aW50Lmg6CisgICAgICAgIChXZWJDb3JlOjpSYW5nZUJvdW5kYXJ5UG9pbnQ6OmNsZWFyKToKKyAg
ICAgICAgKiBkb20vU3BhY2VTcGxpdFN0cmluZy5oOgorICAgICAgICAoV2ViQ29yZTo6U3BhY2VT
cGxpdFN0cmluZzo6Y2xlYXIpOgorICAgICAgICAqIGRvbS9TdHlsZWRFbGVtZW50LmNwcDoKKyAg
ICAgICAgKFdlYkNvcmU6OlN0eWxlZEVsZW1lbnQ6OnNldElubGluZVN0eWxlRnJvbVN0cmluZyk6
CisgICAgICAgIChXZWJDb3JlOjpTdHlsZWRFbGVtZW50OjpzdHlsZUF0dHJpYnV0ZUNoYW5nZWQp
OgorICAgICAgICAqIGVkaXRpbmcvQWx0ZXJuYXRpdmVUZXh0Q29udHJvbGxlci5jcHA6CisgICAg
ICAgIChXZWJDb3JlOjpBbHRlcm5hdGl2ZVRleHRDb250cm9sbGVyOjpzdGFydEFsdGVybmF0aXZl
VGV4dFVJVGltZXIpOgorICAgICAgICAoV2ViQ29yZTo6QWx0ZXJuYXRpdmVUZXh0Q29udHJvbGxl
cjo6c3RvcEFsdGVybmF0aXZlVGV4dFVJVGltZXIpOgorICAgICAgICAoV2ViQ29yZTo6QWx0ZXJu
YXRpdmVUZXh0Q29udHJvbGxlcjo6YXBwbHlQZW5kaW5nQ29ycmVjdGlvbik6CisgICAgICAgIChX
ZWJDb3JlOjpBbHRlcm5hdGl2ZVRleHRDb250cm9sbGVyOjp0aW1lckZpcmVkKToKKyAgICAgICAg
KFdlYkNvcmU6OkFsdGVybmF0aXZlVGV4dENvbnRyb2xsZXI6OmhhbmRsZUFsdGVybmF0aXZlVGV4
dFVJUmVzdWx0KToKKyAgICAgICAgKiBlZGl0aW5nL0VkaXRpbmdTdHlsZS5jcHA6CisgICAgICAg
IChXZWJDb3JlOjpFZGl0aW5nU3R5bGU6OmNsZWFyKToKKyAgICAgICAgKiBlZGl0aW5nL0VkaXRv
ci5jcHA6CisgICAgICAgIChXZWJDb3JlOjpFZGl0b3I6OmNsZWFyTGFzdEVkaXRDb21tYW5kKToK
KyAgICAgICAgKiBlZGl0aW5nL0ZyYW1lU2VsZWN0aW9uLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6
OkZyYW1lU2VsZWN0aW9uOjpwcmVwYXJlRm9yRGVzdHJ1Y3Rpb24pOgorICAgICAgICAqIGVkaXRp
bmcvRnJhbWVTZWxlY3Rpb24uaDoKKyAgICAgICAgKFdlYkNvcmU6OkZyYW1lU2VsZWN0aW9uOjpj
bGVhclR5cGluZ1N0eWxlKToKKyAgICAgICAgKiBlZGl0aW5nL1NwZWxsQ2hlY2tlci5jcHA6Cisg
ICAgICAgIChXZWJDb3JlOjpTcGVsbENoZWNrZXI6OmRpZENoZWNrKToKKyAgICAgICAgKiBodG1s
L0Jhc2VDaG9vc2VyT25seURhdGVBbmRUaW1lSW5wdXRUeXBlLmNwcDoKKyAgICAgICAgKFdlYkNv
cmU6OkJhc2VDaG9vc2VyT25seURhdGVBbmRUaW1lSW5wdXRUeXBlOjpkaWRFbmRDaG9vc2VyKToK
KyAgICAgICAgKiBodG1sL0ZpbGVJbnB1dFR5cGUuY3BwOgorICAgICAgICAoV2ViQ29yZTo6Rmls
ZUlucHV0VHlwZTo6c2V0VmFsdWUpOgorICAgICAgICAqIGh0bWwvSFRNTENhbnZhc0VsZW1lbnQu
Y3BwOgorICAgICAgICAoV2ViQ29yZTo6SFRNTENhbnZhc0VsZW1lbnQ6OmNsZWFyUHJlc2VudGF0
aW9uQ29weSk6CisgICAgICAgIChXZWJDb3JlOjpIVE1MQ2FudmFzRWxlbWVudDo6Y2xlYXJDb3Bp
ZWRJbWFnZSk6CisgICAgICAgICogaHRtbC9IVE1MUGx1Z0luRWxlbWVudC5jcHA6CisgICAgICAg
IChXZWJDb3JlOjpIVE1MUGx1Z0luRWxlbWVudDo6d2lsbERldGFjaFJlbmRlcmVycyk6CisgICAg
ICAgIChXZWJDb3JlOjpIVE1MUGx1Z0luRWxlbWVudDo6cmVzZXRJbnN0YW5jZSk6CisgICAgICAg
ICogaHRtbC9UZXh0RmllbGRJbnB1dFR5cGUuY3BwOgorICAgICAgICAoV2ViQ29yZTo6VGV4dEZp
ZWxkSW5wdXRUeXBlOjp1cGRhdGVQbGFjZWhvbGRlclRleHQpOgorICAgICAgICAqIGh0bWwvY2Fu
dmFzL1dlYkdMUmVuZGVyaW5nQ29udGV4dEJhc2UuY3BwOgorICAgICAgICAoV2ViQ29yZTo6V2Vi
R0xSZW5kZXJpbmdDb250ZXh0QmFzZTo6ZGVzdHJveUdyYXBoaWNzQ29udGV4dDNEKToKKyAgICAg
ICAgKiBpbnNwZWN0b3IvSW5zcGVjdG9yQXBwbGljYXRpb25DYWNoZUFnZW50LmNwcDoKKyAgICAg
ICAgKFdlYkNvcmU6Okluc3BlY3RvckFwcGxpY2F0aW9uQ2FjaGVBZ2VudDo6d2lsbERlc3Ryb3lG
cm9udGVuZEFuZEJhY2tlbmQpOgorICAgICAgICAqIGluc3BlY3Rvci9JbnNwZWN0b3JDU1NBZ2Vu
dC5jcHA6CisgICAgICAgIChXZWJDb3JlOjpJbnNwZWN0b3JDU1NBZ2VudDo6d2lsbERlc3Ryb3lG
cm9udGVuZEFuZEJhY2tlbmQpOgorICAgICAgICAqIGluc3BlY3Rvci9JbnNwZWN0b3JDb250cm9s
bGVyLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6Okluc3BlY3RvckNvbnRyb2xsZXI6OmRpc2Nvbm5l
Y3RGcm9udGVuZCk6CisgICAgICAgICogaW5zcGVjdG9yL0luc3BlY3RvckRPTUFnZW50LmNwcDoK
KyAgICAgICAgKFdlYkNvcmU6Okluc3BlY3RvckRPTUFnZW50Ojp3aWxsRGVzdHJveUZyb250ZW5k
QW5kQmFja2VuZCk6CisgICAgICAgICogaW5zcGVjdG9yL0luc3BlY3RvckRPTURlYnVnZ2VyQWdl
bnQuY3BwOgorICAgICAgICAoV2ViQ29yZTo6SW5zcGVjdG9yRE9NRGVidWdnZXJBZ2VudDo6d2ls
bERlc3Ryb3lGcm9udGVuZEFuZEJhY2tlbmQpOgorICAgICAgICAqIGluc3BlY3Rvci9JbnNwZWN0
b3JET01TdG9yYWdlQWdlbnQuY3BwOgorICAgICAgICAoV2ViQ29yZTo6SW5zcGVjdG9yRE9NU3Rv
cmFnZUFnZW50Ojp3aWxsRGVzdHJveUZyb250ZW5kQW5kQmFja2VuZCk6CisgICAgICAgICogaW5z
cGVjdG9yL0luc3BlY3RvckRhdGFiYXNlQWdlbnQuY3BwOgorICAgICAgICAoV2ViQ29yZTo6SW5z
cGVjdG9yRGF0YWJhc2VBZ2VudDo6d2lsbERlc3Ryb3lGcm9udGVuZEFuZEJhY2tlbmQpOgorICAg
ICAgICAqIGluc3BlY3Rvci9JbnNwZWN0b3JJbmRleGVkREJBZ2VudC5jcHA6CisgICAgICAgIChX
ZWJDb3JlOjpJbnNwZWN0b3JJbmRleGVkREJBZ2VudDo6d2lsbERlc3Ryb3lGcm9udGVuZEFuZEJh
Y2tlbmQpOgorICAgICAgICAqIGluc3BlY3Rvci9JbnNwZWN0b3JMYXllclRyZWVBZ2VudC5jcHA6
CisgICAgICAgIChXZWJDb3JlOjpJbnNwZWN0b3JMYXllclRyZWVBZ2VudDo6d2lsbERlc3Ryb3lG
cm9udGVuZEFuZEJhY2tlbmQpOgorICAgICAgICAqIGluc3BlY3Rvci9JbnNwZWN0b3JPdmVybGF5
LmNwcDoKKyAgICAgICAgKFdlYkNvcmU6Okluc3BlY3Rvck92ZXJsYXk6OmhpZGVIaWdobGlnaHQp
OgorICAgICAgICAoV2ViQ29yZTo6SW5zcGVjdG9yT3ZlcmxheTo6aGlnaGxpZ2h0Tm9kZUxpc3Qp
OgorICAgICAgICAoV2ViQ29yZTo6SW5zcGVjdG9yT3ZlcmxheTo6aGlnaGxpZ2h0Tm9kZSk6Cisg
ICAgICAgICogaW5zcGVjdG9yL0luc3BlY3RvclBhZ2VBZ2VudC5jcHA6CisgICAgICAgIChXZWJD
b3JlOjpJbnNwZWN0b3JQYWdlQWdlbnQ6OndpbGxEZXN0cm95RnJvbnRlbmRBbmRCYWNrZW5kKToK
KyAgICAgICAgKFdlYkNvcmU6Okluc3BlY3RvclBhZ2VBZ2VudDo6ZGlzYWJsZSk6CisgICAgICAg
ICogaW5zcGVjdG9yL0luc3BlY3RvclJlcGxheUFnZW50LmNwcDoKKyAgICAgICAgKFdlYkNvcmU6
Okluc3BlY3RvclJlcGxheUFnZW50Ojp3aWxsRGVzdHJveUZyb250ZW5kQW5kQmFja2VuZCk6Cisg
ICAgICAgICogaW5zcGVjdG9yL0luc3BlY3RvclJlc291cmNlQWdlbnQuY3BwOgorICAgICAgICAo
V2ViQ29yZTo6SW5zcGVjdG9yUmVzb3VyY2VBZ2VudDo6d2lsbERlc3Ryb3lGcm9udGVuZEFuZEJh
Y2tlbmQpOgorICAgICAgICAqIGluc3BlY3Rvci9JbnNwZWN0b3JTdHlsZVNoZWV0LmNwcDoKKyAg
ICAgICAgKFdlYkNvcmU6Okluc3BlY3RvclN0eWxlU2hlZXRGb3JJbmxpbmVTdHlsZTo6ZGlkTW9k
aWZ5RWxlbWVudEF0dHJpYnV0ZSk6CisgICAgICAgIChXZWJDb3JlOjpJbnNwZWN0b3JTdHlsZVNo
ZWV0Rm9ySW5saW5lU3R5bGU6OnNldFN0eWxlVGV4dCk6CisgICAgICAgIChXZWJDb3JlOjpJbnNw
ZWN0b3JTdHlsZVNoZWV0Rm9ySW5saW5lU3R5bGU6OmVuc3VyZVBhcnNlZERhdGFSZWFkeSk6Cisg
ICAgICAgICogaW5zcGVjdG9yL0luc3BlY3RvclRpbWVsaW5lQWdlbnQuY3BwOgorICAgICAgICAo
V2ViQ29yZTo6SW5zcGVjdG9yVGltZWxpbmVBZ2VudDo6d2lsbERlc3Ryb3lGcm9udGVuZEFuZEJh
Y2tlbmQpOgorICAgICAgICAqIGluc3BlY3Rvci9JbnNwZWN0b3JXb3JrZXJBZ2VudC5jcHA6Cisg
ICAgICAgIChXZWJDb3JlOjpJbnNwZWN0b3JXb3JrZXJBZ2VudDo6d2lsbERlc3Ryb3lGcm9udGVu
ZEFuZEJhY2tlbmQpOgorICAgICAgICAqIGluc3BlY3Rvci9QYWdlUnVudGltZUFnZW50LmNwcDoK
KyAgICAgICAgKFdlYkNvcmU6OlBhZ2VSdW50aW1lQWdlbnQ6OndpbGxEZXN0cm95RnJvbnRlbmRB
bmRCYWNrZW5kKToKKyAgICAgICAgKiBpbnNwZWN0b3IvV2ViSW5qZWN0ZWRTY3JpcHRNYW5hZ2Vy
LmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OldlYkluamVjdGVkU2NyaXB0TWFuYWdlcjo6ZGlzY29u
bmVjdCk6CisgICAgICAgICogaW5zcGVjdG9yL1dvcmtlckluc3BlY3RvckNvbnRyb2xsZXIuY3Bw
OgorICAgICAgICAoV2ViQ29yZTo6V29ya2VySW5zcGVjdG9yQ29udHJvbGxlcjo6ZGlzY29ubmVj
dEZyb250ZW5kKToKKyAgICAgICAgKiBpbnNwZWN0b3IvV29ya2VyUnVudGltZUFnZW50LmNwcDoK
KyAgICAgICAgKFdlYkNvcmU6OldvcmtlclJ1bnRpbWVBZ2VudDo6d2lsbERlc3Ryb3lGcm9udGVu
ZEFuZEJhY2tlbmQpOgorICAgICAgICAqIGxvYWRlci9GcmFtZUxvYWRlci5jcHA6CisgICAgICAg
IChXZWJDb3JlOjpGcmFtZUxvYWRlcjo6ZGlkQmVnaW5Eb2N1bWVudCk6CisgICAgICAgICogbG9h
ZGVyL2NhY2hlL0NhY2hlZENTU1N0eWxlU2hlZXQuY3BwOgorICAgICAgICAoV2ViQ29yZTo6Q2Fj
aGVkQ1NTU3R5bGVTaGVldDo6ZGVzdHJveURlY29kZWREYXRhKToKKyAgICAgICAgKFdlYkNvcmU6
OkNhY2hlZENTU1N0eWxlU2hlZXQ6OnJlc3RvcmVQYXJzZWRTdHlsZVNoZWV0KToKKyAgICAgICAg
KiBsb2FkZXIvY2FjaGUvQ2FjaGVkSW1hZ2UuY3BwOgorICAgICAgICAoV2ViQ29yZTo6Q2FjaGVk
SW1hZ2U6OmNsZWFySW1hZ2UpOgorICAgICAgICAqIGxvYWRlci9jYWNoZS9DYWNoZWRSYXdSZXNv
dXJjZS5jcHA6CisgICAgICAgIChXZWJDb3JlOjpDYWNoZWRSYXdSZXNvdXJjZTo6Y2xlYXIpOgor
ICAgICAgICAqIGxvYWRlci9jYWNoZS9DYWNoZWRSZXNvdXJjZS5jcHA6CisgICAgICAgIChXZWJD
b3JlOjpDYWNoZWRSZXNvdXJjZTo6ZXJyb3IpOgorICAgICAgICAqIGxvYWRlci9pY29uL0ljb25S
ZWNvcmQuY3BwOgorICAgICAgICAoV2ViQ29yZTo6SWNvblJlY29yZDo6c2V0SW1hZ2VEYXRhKToK
KyAgICAgICAgKiBwYWdlL0V2ZW50SGFuZGxlci5jcHA6CisgICAgICAgIChXZWJDb3JlOjpFdmVu
dEhhbmRsZXI6OmNsZWFyKToKKyAgICAgICAgKFdlYkNvcmU6OkV2ZW50SGFuZGxlcjo6aGFuZGxl
VG91Y2hFdmVudCk6CisgICAgICAgICogcGFnZS9QYWdlLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6
OlBhZ2U6OnJlZnJlc2hQbHVnaW5zKToKKyAgICAgICAgKiBwbGF0Zm9ybS9hdWRpby9tYWMvQ0FS
aW5nQnVmZmVyLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OkNBUmluZ0J1ZmZlcjo6ZGVhbGxvY2F0
ZSk6CisgICAgICAgICogcGxhdGZvcm0vZ3JhcGhpY3MvRm9udC5jcHA6CisgICAgICAgIChXZWJD
b3JlOjpGb250OjptYXRoRGF0YSk6CisgICAgICAgICogcGxhdGZvcm0vZ3JhcGhpY3MvRm9udENh
Y2hlLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OkZvbnRDYWNoZTo6Z2V0VmVydGljYWxEYXRhKToK
KyAgICAgICAgKiBwbGF0Zm9ybS9ncmFwaGljcy9HcmFwaGljc0NvbnRleHQuY3BwOgorICAgICAg
ICAoV2ViQ29yZTo6R3JhcGhpY3NDb250ZXh0OjpzZXRTdHJva2VDb2xvcik6CisgICAgICAgIChX
ZWJDb3JlOjpHcmFwaGljc0NvbnRleHQ6OnNldEZpbGxDb2xvcik6CisgICAgICAgIChXZWJDb3Jl
OjpHcmFwaGljc0NvbnRleHQ6OnNldFN0cm9rZVBhdHRlcm4pOgorICAgICAgICAoV2ViQ29yZTo6
R3JhcGhpY3NDb250ZXh0OjpzZXRGaWxsUGF0dGVybik6CisgICAgICAgIChXZWJDb3JlOjpHcmFw
aGljc0NvbnRleHQ6OnNldFN0cm9rZUdyYWRpZW50KToKKyAgICAgICAgKFdlYkNvcmU6OkdyYXBo
aWNzQ29udGV4dDo6c2V0RmlsbEdyYWRpZW50KToKKyAgICAgICAgKiBwbGF0Zm9ybS9ncmFwaGlj
cy9jYWlyby9CYWNraW5nU3RvcmVCYWNrZW5kQ2Fpcm9YMTEuY3BwOgorICAgICAgICAoV2ViQ29y
ZTo6QmFja2luZ1N0b3JlQmFja2VuZENhaXJvWDExOjp+QmFja2luZ1N0b3JlQmFja2VuZENhaXJv
WDExKToKKyAgICAgICAgKiBwbGF0Zm9ybS9ncmFwaGljcy9jYWlyby9CaXRtYXBJbWFnZUNhaXJv
LmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OkZyYW1lRGF0YTo6Y2xlYXIpOgorICAgICAgICAqIHBs
YXRmb3JtL2dyYXBoaWNzL2ZpbHRlcnMvRmlsdGVyRWZmZWN0LmNwcDoKKyAgICAgICAgKFdlYkNv
cmU6OkZpbHRlckVmZmVjdDo6Y2xlYXJSZXN1bHQpOgorICAgICAgICAoV2ViQ29yZTo6RmlsdGVy
RWZmZWN0Ojp0cmFuc2Zvcm1SZXN1bHRDb2xvclNwYWNlKToKKyAgICAgICAgKiBwbGF0Zm9ybS9n
cmFwaGljcy9nc3RyZWFtZXIvSW1hZ2VHU3RyZWFtZXJDYWlyby5jcHA6CisgICAgICAgIChJbWFn
ZUdTdHJlYW1lcjo6fkltYWdlR1N0cmVhbWVyKToKKyAgICAgICAgKiBwbGF0Zm9ybS9ncmFwaGlj
cy90ZXhtYXAvQml0bWFwVGV4dHVyZUdMLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OkJpdG1hcFRl
eHR1cmVHTDo6YXBwbHlGaWx0ZXJzKToKKyAgICAgICAgKiBwbGF0Zm9ybS9ncmFwaGljcy90ZXht
YXAvVGV4dHVyZU1hcHBlckdMLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OlRleHR1cmVNYXBwZXJH
TDo6YmluZERlZmF1bHRTdXJmYWNlKToKKyAgICAgICAgKiBwbGF0Zm9ybS9ncmFwaGljcy90ZXht
YXAvVGV4dHVyZU1hcHBlckxheWVyLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OlRleHR1cmVNYXBw
ZXJMYXllcjo6cGFpbnRXaXRoSW50ZXJtZWRpYXRlU3VyZmFjZSk6CisgICAgICAgICogcGxhdGZv
cm0vZ3JhcGhpY3MvdGV4bWFwL1RleHR1cmVNYXBwZXJUaWxlZEJhY2tpbmdTdG9yZS5jcHA6Cisg
ICAgICAgIChXZWJDb3JlOjpUZXh0dXJlTWFwcGVyVGlsZWRCYWNraW5nU3RvcmU6OnVwZGF0ZUNv
bnRlbnRzRnJvbUltYWdlSWZOZWVkZWQpOgorICAgICAgICAqIHBsYXRmb3JtL2dyYXBoaWNzL3Rl
eG1hcC9jb29yZGluYXRlZC9Db29yZGluYXRlZEdyYXBoaWNzTGF5ZXIuY3BwOgorICAgICAgICAo
V2ViQ29yZTo6Q29vcmRpbmF0ZWRHcmFwaGljc0xheWVyOjpyZWxlYXNlSW1hZ2VCYWNraW5nSWZO
ZWVkZWQpOgorICAgICAgICAqIHBsYXRmb3JtL2dyYXBoaWNzL3RleG1hcC9jb29yZGluYXRlZC9D
b29yZGluYXRlZEltYWdlQmFja2luZy5jcHA6CisgICAgICAgIChXZWJDb3JlOjpDb29yZGluYXRl
ZEltYWdlQmFja2luZzo6cmVsZWFzZVN1cmZhY2VJZk5lZWRlZCk6CisgICAgICAgICogcGxhdGZv
cm0vZ3RrL0dhbWVwYWRzR3RrLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OkdhbWVwYWRzR3RrOjp1
bnJlZ2lzdGVyRGV2aWNlKToKKyAgICAgICAgKiByZW5kZXJpbmcvSW5saW5lRmxvd0JveC5jcHA6
CisgICAgICAgIChXZWJDb3JlOjpJbmxpbmVGbG93Qm94Ojpjb21wdXRlT3ZlcmZsb3cpOgorICAg
ICAgICAqIHJlbmRlcmluZy9SZW5kZXJCb3guY3BwOgorICAgICAgICAoV2ViQ29yZTo6UmVuZGVy
Qm94OjpjbGVhck92ZXJmbG93KToKKyAgICAgICAgKiByZW5kZXJpbmcvUmVuZGVyQm94UmVnaW9u
SW5mby5oOgorICAgICAgICAoV2ViQ29yZTo6UmVuZGVyQm94UmVnaW9uSW5mbzo6Y2xlYXJPdmVy
Zmxvdyk6CisgICAgICAgICogcmVuZGVyaW5nL3N0eWxlL0ZpbGxMYXllci5oOgorICAgICAgICAo
V2ViQ29yZTo6RmlsbExheWVyOjpjbGVhck1hc2tJbWFnZSk6CisgICAgICAgIChXZWJDb3JlOjpG
aWxsTGF5ZXI6OmNsZWFySW1hZ2UpOgorICAgICAgICAqIHN2Zy9TVkdUUmVmRWxlbWVudC5jcHA6
CisgICAgICAgIChXZWJDb3JlOjpTVkdUUmVmVGFyZ2V0RXZlbnRMaXN0ZW5lcjo6ZGV0YWNoKToK
KyAgICAgICAgKiB0ZXN0aW5nL0ludGVybmFscy5jcHA6CisgICAgICAgIChXZWJDb3JlOjpJbnRl
cm5hbHM6OmNsb3NlRHVtbXlJbnNwZWN0b3JGcm9udGVuZCk6CisgICAgICAgICogd29ya2Vycy9X
b3JrZXJFdmVudFF1ZXVlLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OldvcmtlckV2ZW50UXVldWU6
OkV2ZW50RGlzcGF0Y2hlcjo6ZGlzcGF0Y2gpOgorICAgICAgICAoV2ViQ29yZTo6V29ya2VyRXZl
bnRRdWV1ZTo6RXZlbnREaXNwYXRjaGVyOjpjYW5jZWwpOgorICAgICAgICAqIHhtbC9YTUxIdHRw
UmVxdWVzdC5jcHA6CisgICAgICAgIChXZWJDb3JlOjpYTUxIdHRwUmVxdWVzdDo6cmVzcG9uc2VC
bG9iKToKKyAgICAgICAgKFdlYkNvcmU6OlhNTEh0dHBSZXF1ZXN0OjpyZXNwb25zZUFycmF5QnVm
ZmVyKToKKyAgICAgICAgKFdlYkNvcmU6OlhNTEh0dHBSZXF1ZXN0OjpjbGVhclJlc3BvbnNlQnVm
ZmVycyk6CisgICAgICAgICogeG1sL1hTTFRQcm9jZXNzb3IuY3BwOgorICAgICAgICAoV2ViQ29y
ZTo6WFNMVFByb2Nlc3Nvcjo6cmVzZXQpOgorCiAyMDE1LTA3LTAzICBEYW4gQmVybnN0ZWluICA8
bWl0ekBhcHBsZS5jb20+CiAKICAgICAgICAgVHJpZWQgdG8gZml4IHRoZSBpT1MgYnVpbGQuCmRp
ZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L0NoYW5nZUxvZyBiL1NvdXJjZS9XZWJLaXQvQ2hhbmdl
TG9nCmluZGV4IDczYWQ1MDA2MTlmNWZkMDliZDU1MTFjZTRmZTUzMjIyMTlkMmMyMmYuLjg2ODY4
MjE3Mjc1MDE5MmM2ZmZkNDMyNmMwOTg2ZTFkOGI5ODMzNGMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9X
ZWJLaXQvQ2hhbmdlTG9nCisrKyBiL1NvdXJjZS9XZWJLaXQvQ2hhbmdlTG9nCkBAIC0xLDMgKzEs
MTIgQEAKKzIwMTUtMDctMDMgIENocmlzIER1bWV6ICA8Y2R1bWV6QGFwcGxlLmNvbT4KKworICAg
ICAgICBEcm9wIFJlZlB0cjo6Y2xlYXIoKSBtZXRob2QKKyAgICAgICAgaHR0cHM6Ly9idWdzLndl
YmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTE0NjU1NgorCisgICAgICAgIFJldmlld2VkIGJ5IE5P
Qk9EWSAoT09QUyEpLgorCisgICAgICAgIERyb3AgUmVmUHRyOjpjbGVhcigpIG1ldGhvZCBpbiBm
YXZvciBvZiAiPSBudWxscHRyOyIgcGF0dGVybi4KKwogMjAxNS0wNy0wMyAgRGFuIEJlcm5zdGVp
biAgPG1pdHpAYXBwbGUuY29tPgogCiAgICAgICAgIFtYY29kZV0gVXBkYXRlIHNvbWUgYnVpbGQg
c2V0dGluZ3MgYXMgcmVjb21tZW5kZWQgYnkgWGNvZGUgNwpkaWZmIC0tZ2l0IGEvU291cmNlL1dl
YktpdC9tYWMvQ2hhbmdlTG9nIGIvU291cmNlL1dlYktpdC9tYWMvQ2hhbmdlTG9nCmluZGV4IGIx
YzA4YzQ3MmE2OTA1YzZiYzhlMmI5MTkzZmRiNTRkOGY5OGE0NDcuLmI5MTg0YzVjZWM4MGY4NWEx
MmFlMWI2YTYwODI1ZTc4YTQ0MmNkYWIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvbWFjL0No
YW5nZUxvZworKysgYi9Tb3VyY2UvV2ViS2l0L21hYy9DaGFuZ2VMb2cKQEAgLTEsMyArMSwxMiBA
QAorMjAxNS0wNy0wMyAgQ2hyaXMgRHVtZXogIDxjZHVtZXpAYXBwbGUuY29tPgorCisgICAgICAg
IERyb3AgUmVmUHRyOjpjbGVhcigpIG1ldGhvZAorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0
Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTQ2NTU2CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZ
IChPT1BTISkuCisKKyAgICAgICAgRHJvcCBSZWZQdHI6OmNsZWFyKCkgbWV0aG9kIGluIGZhdm9y
IG9mICI9IG51bGxwdHI7IiBwYXR0ZXJuLgorCiAyMDE1LTA3LTAzICBEYW4gQmVybnN0ZWluICA8
bWl0ekBhcHBsZS5jb20+CiAKICAgICAgICAgW1hjb2RlXSBVcGRhdGUgc29tZSBidWlsZCBzZXR0
aW5ncyBhcyByZWNvbW1lbmRlZCBieSBYY29kZSA3CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0
L3dpbi9DaGFuZ2VMb2cgYi9Tb3VyY2UvV2ViS2l0L3dpbi9DaGFuZ2VMb2cKaW5kZXggMTE0Mjg1
OGFjOTRiNTY2YzRiMGZjMzliYjg1Y2Q0ZWIwN2Q5OWVmZC4uNTYyYTEyYmY0NTgyMTEyN2E2YjE4
OWI0ZGU1YzY2M2Y2NmI3ZjllNiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC93aW4vQ2hhbmdl
TG9nCisrKyBiL1NvdXJjZS9XZWJLaXQvd2luL0NoYW5nZUxvZwpAQCAtMSwzICsxLDEyIEBACisy
MDE1LTA3LTAzICBDaHJpcyBEdW1leiAgPGNkdW1lekBhcHBsZS5jb20+CisKKyAgICAgICAgRHJv
cCBSZWZQdHI6OmNsZWFyKCkgbWV0aG9kCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3Jn
L3Nob3dfYnVnLmNnaT9pZD0xNDY1NTYKKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9P
UFMhKS4KKworICAgICAgICBEcm9wIFJlZlB0cjo6Y2xlYXIoKSBtZXRob2QgaW4gZmF2b3Igb2Yg
Ij0gbnVsbHB0cjsiIHBhdHRlcm4uCisKIDIwMTUtMDYtMzAgIFNpbW9uIEZyYXNlciAgPHNpbW9u
LmZyYXNlckBhcHBsZS5jb20+CiAKICAgICAgICAgRml4IE1hYyBhbmQgV2luZG93cyBidWlsZHMu
CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9DaGFuZ2VMb2cgYi9Tb3VyY2UvV2ViS2l0Mi9D
aGFuZ2VMb2cKaW5kZXggODE3MGFjODI1ZTEyY2Y0NTM3MjA3MzMxOTE2ZWU3Zjc1ZTRiNjljMi4u
OTMyYzRiNzI4N2VlOGZlMGEwNzYwZmQwZmE0NzdjOTY4OTEwOGEyYiAxMDA2NDQKLS0tIGEvU291
cmNlL1dlYktpdDIvQ2hhbmdlTG9nCisrKyBiL1NvdXJjZS9XZWJLaXQyL0NoYW5nZUxvZwpAQCAt
MSwzICsxLDEyIEBACisyMDE1LTA3LTAzICBDaHJpcyBEdW1leiAgPGNkdW1lekBhcHBsZS5jb20+
CisKKyAgICAgICAgRHJvcCBSZWZQdHI6OmNsZWFyKCkgbWV0aG9kCisgICAgICAgIGh0dHBzOi8v
YnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0xNDY1NTYKKworICAgICAgICBSZXZpZXdl
ZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICBEcm9wIFJlZlB0cjo6Y2xlYXIoKSBtZXRo
b2QgaW4gZmF2b3Igb2YgIj0gbnVsbHB0cjsiIHBhdHRlcm4uICAgICAgICAKKwogMjAxNS0wNy0w
MyAgRGFuIEJlcm5zdGVpbiAgPG1pdHpAYXBwbGUuY29tPgogCiAgICAgICAgIFtYY29kZV0gVXBk
YXRlIHNvbWUgYnVpbGQgc2V0dGluZ3MgYXMgcmVjb21tZW5kZWQgYnkgWGNvZGUgNwpkaWZmIC0t
Z2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL0FQSS9KU1ZhbHVlUmVmLmNwcCBiL1NvdXJjZS9K
YXZhU2NyaXB0Q29yZS9BUEkvSlNWYWx1ZVJlZi5jcHAKaW5kZXggNzU5YTY1YTljN2RlM2M1NjYx
OWFiNDc0NTQ4MzQ4Njg4ZGNjNDdjMS4uNTQ0MDVlMmFmNTk3YzI0ODIzNmRlZjc2OWU4YmJjNjAy
ODk3OWQyNiAxMDA2NDQKLS0tIGEvU291cmNlL0phdmFTY3JpcHRDb3JlL0FQSS9KU1ZhbHVlUmVm
LmNwcAorKysgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvQVBJL0pTVmFsdWVSZWYuY3BwCkBAIC00
MjIsNyArNDIyLDcgQEAgSlNTdHJpbmdSZWYgSlNWYWx1ZVRvU3RyaW5nQ29weShKU0NvbnRleHRS
ZWYgY3R4LCBKU1ZhbHVlUmVmIHZhbHVlLCBKU1ZhbHVlUmVmKgogICAgIAogICAgIFJlZlB0cjxP
cGFxdWVKU1N0cmluZz4gc3RyaW5nUmVmKE9wYXF1ZUpTU3RyaW5nOjpjcmVhdGUoanNWYWx1ZS50
b1N0cmluZyhleGVjKS0+dmFsdWUoZXhlYykpKTsKICAgICBpZiAoaGFuZGxlRXhjZXB0aW9uSWZO
ZWVkZWQoZXhlYywgZXhjZXB0aW9uKSA9PSBFeGNlcHRpb25TdGF0dXM6OkRpZFRocm93KQotICAg
ICAgICBzdHJpbmdSZWYuY2xlYXIoKTsKKyAgICAgICAgc3RyaW5nUmVmID0gbnVsbHB0cjsKICAg
ICByZXR1cm4gc3RyaW5nUmVmLnJlbGVhc2UoKS5sZWFrUmVmKCk7CiB9CiAKZGlmZiAtLWdpdCBh
L1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ieXRlY29kZS9DYWxsTGlua0luZm8uY3BwIGIvU291cmNl
L0phdmFTY3JpcHRDb3JlL2J5dGVjb2RlL0NhbGxMaW5rSW5mby5jcHAKaW5kZXggNzJhMGMyNDFk
ZmNjZDE2NWQ5MDMwZDVmYTg0ZWZiNjhmODFmNGIzOC4uZDkyMDA5ODc0YTkzODU3NzcyYzQzNjZm
NGQwMDliNTQ2YTMzYjlhYyAxMDA2NDQKLS0tIGEvU291cmNlL0phdmFTY3JpcHRDb3JlL2J5dGVj
b2RlL0NhbGxMaW5rSW5mby5jcHAKKysrIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL2J5dGVjb2Rl
L0NhbGxMaW5rSW5mby5jcHAKQEAgLTQzLDcgKzQzLDcgQEAgdm9pZCBDYWxsTGlua0luZm86OmNs
ZWFyU3R1YigpCiAgICAgICAgIHJldHVybjsKIAogICAgIG1fc3R1Yi0+Y2xlYXJDYWxsTm9kZXNG
b3IodGhpcyk7Ci0gICAgbV9zdHViLmNsZWFyKCk7CisgICAgbV9zdHViID0gbnVsbHB0cjsKIH0K
IAogdm9pZCBDYWxsTGlua0luZm86OnVubGluayhSZXBhdGNoQnVmZmVyJiByZXBhdGNoQnVmZmVy
KQpkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL2J5dGVjb2RlL1N0cnVjdHVyZVN0
dWJJbmZvLmggYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvYnl0ZWNvZGUvU3RydWN0dXJlU3R1Yklu
Zm8uaAppbmRleCBlYzhiNzljMWYyODUyNWJiNDg0OTVkZDFiZWM2ZjE5ZjE2MjU3NGVmLi5kNDAy
YWNlZTU3OTNiYjRmNzg2Njk1MTcxNjQxNDhlOGE3YTI3MWM4IDEwMDY0NAotLS0gYS9Tb3VyY2Uv
SmF2YVNjcmlwdENvcmUvYnl0ZWNvZGUvU3RydWN0dXJlU3R1YkluZm8uaAorKysgYi9Tb3VyY2Uv
SmF2YVNjcmlwdENvcmUvYnl0ZWNvZGUvU3RydWN0dXJlU3R1YkluZm8uaApAQCAtMTQ5LDggKzE0
OSw4IEBAIHN0cnVjdCBTdHJ1Y3R1cmVTdHViSW5mbyB7CiAgICAgewogICAgICAgICBkZXJlZigp
OwogICAgICAgICBhY2Nlc3NUeXBlID0gYWNjZXNzX3Vuc2V0OwotICAgICAgICBzdHViUm91dGlu
ZS5jbGVhcigpOwotICAgICAgICB3YXRjaHBvaW50cy5jbGVhcigpOworICAgICAgICBzdHViUm91
dGluZSA9IG51bGxwdHI7CisgICAgICAgIHdhdGNocG9pbnRzID0gbnVsbHB0cjsKICAgICB9CiAK
ICAgICB2b2lkIGRlcmVmKCk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvZGVi
dWdnZXIvRGVidWdnZXIuY3BwIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL2RlYnVnZ2VyL0RlYnVn
Z2VyLmNwcAppbmRleCA1NzQxMDY5MmUwMDgwMDc3OTc4YjM3ZWIxNjc3MDMyMzM1YzRiNGMyLi5i
YzFiNTdlNTkzYTc5OTMwNzEyODkyZGU2NTA5MzEwNmEzYWE0N2QxIDEwMDY0NAotLS0gYS9Tb3Vy
Y2UvSmF2YVNjcmlwdENvcmUvZGVidWdnZXIvRGVidWdnZXIuY3BwCisrKyBiL1NvdXJjZS9KYXZh
U2NyaXB0Q29yZS9kZWJ1Z2dlci9EZWJ1Z2dlci5jcHAKQEAgLTExNyw3ICsxMTcsNyBAQCBwdWJs
aWM6CiAgICAgewogICAgICAgICBpZiAobV9kZWJ1Z2dlci5tX2N1cnJlbnREZWJ1Z2dlckNhbGxG
cmFtZSkgewogICAgICAgICAgICAgbV9kZWJ1Z2dlci5tX2N1cnJlbnREZWJ1Z2dlckNhbGxGcmFt
ZS0+aW52YWxpZGF0ZSgpOwotICAgICAgICAgICAgbV9kZWJ1Z2dlci5tX2N1cnJlbnREZWJ1Z2dl
ckNhbGxGcmFtZSA9IDA7CisgICAgICAgICAgICBtX2RlYnVnZ2VyLm1fY3VycmVudERlYnVnZ2Vy
Q2FsbEZyYW1lID0gbnVsbHB0cjsKICAgICAgICAgfQogICAgIH0KIApkaWZmIC0tZ2l0IGEvU291
cmNlL0phdmFTY3JpcHRDb3JlL2RmZy9ERkdHcmFwaC5oIGIvU291cmNlL0phdmFTY3JpcHRDb3Jl
L2RmZy9ERkdHcmFwaC5oCmluZGV4IDJjZTdkNjBiMmEyZjhhZjdhMzM1YzU2NTEwNjk4ZDk5ZTY3
Mjg0MWIuLjUxNDhjMjZkOGUzN2U3NzMyNDRlOGQ5YjI0NDM1YjIzYWEzMDJlMjQgMTAwNjQ0Ci0t
LSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9kZmcvREZHR3JhcGguaAorKysgYi9Tb3VyY2UvSmF2
YVNjcmlwdENvcmUvZGZnL0RGR0dyYXBoLmgKQEAgLTQ0NCw3ICs0NDQsNyBAQCBwdWJsaWM6CiAg
ICAgCiAgICAgdm9pZCBraWxsQmxvY2soQmxvY2tJbmRleCBibG9ja0luZGV4KQogICAgIHsKLSAg
ICAgICAgbV9ibG9ja3NbYmxvY2tJbmRleF0uY2xlYXIoKTsKKyAgICAgICAgbV9ibG9ja3NbYmxv
Y2tJbmRleF0gPSBudWxscHRyOwogICAgIH0KICAgICAKICAgICB2b2lkIGtpbGxCbG9jayhCYXNp
Y0Jsb2NrKiBiYXNpY0Jsb2NrKQpkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL2Rm
Zy9ERkdPcGVyYXRpb25zLmNwcCBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9kZmcvREZHT3BlcmF0
aW9ucy5jcHAKaW5kZXggYTk5YTNmYTEwMjAxOGNiZTg0ZTRkMTM3NDUwZDcyNTBkNDg3ZWUwOC4u
NmY5NTEyYmE1MzRjNDkwZDRiZjk5OGFmNWQwODI0NDEyZGJiOTE0ZSAxMDA2NDQKLS0tIGEvU291
cmNlL0phdmFTY3JpcHRDb3JlL2RmZy9ERkdPcGVyYXRpb25zLmNwcAorKysgYi9Tb3VyY2UvSmF2
YVNjcmlwdENvcmUvZGZnL0RGR09wZXJhdGlvbnMuY3BwCkBAIC0xNDQ3LDcgKzE0NDcsNyBAQCBj
aGFyKiBKSVRfT1BFUkFUSU9OIHRyaWdnZXJPU1JFbnRyeU5vdygKICAgICAgICAgCiAgICAgICAg
IC8vIE9TUiBlbnRyeSBmYWlsZWQuIE9oIG5vISBUaGlzIGltcGxpZXMgdGhhdCB3ZSBuZWVkIHRv
IHJldHJ5LiBXZSByZXRyeQogICAgICAgICAvLyB3aXRob3V0IGV4cG9uZW50aWFsIGJhY2tvZmYg
YW5kIHdlIG9ubHkgZG8gdGhpcyBmb3IgdGhlIGVudHJ5IGNvZGUgYmxvY2suCi0gICAgICAgIGpp
dENvZGUtPm9zckVudHJ5QmxvY2suY2xlYXIoKTsKKyAgICAgICAgaml0Q29kZS0+b3NyRW50cnlC
bG9jayA9IG51bGxwdHI7CiAgICAgICAgIGppdENvZGUtPm9zckVudHJ5UmV0cnkgPSAwOwogICAg
ICAgICByZXR1cm4gMDsKICAgICB9CmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUv
aW5zcGVjdG9yL0NvbnNvbGVNZXNzYWdlLmNwcCBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9pbnNw
ZWN0b3IvQ29uc29sZU1lc3NhZ2UuY3BwCmluZGV4IGEwNGE5N2RjM2I0NTE0ODU2Nzc2NGY0ZDI4
ZDBmM2IyYzM4ZDFlMDYuLjlhYzBkZGVlMmRjOTBiYWY4MThmYWUzYTJkNDE2ZGQ1OGFhOTE0NDUg
MTAwNjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9pbnNwZWN0b3IvQ29uc29sZU1lc3Nh
Z2UuY3BwCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9pbnNwZWN0b3IvQ29uc29sZU1lc3Nh
Z2UuY3BwCkBAIC0yNzMsNyArMjczLDcgQEAgdm9pZCBDb25zb2xlTWVzc2FnZTo6Y2xlYXIoKQog
ICAgICAgICBtX21lc3NhZ2UgPSBBU0NJSUxpdGVyYWwoIjxtZXNzYWdlIGNvbGxlY3RlZD4iKTsK
IAogICAgIGlmIChtX2FyZ3VtZW50cykKLSAgICAgICAgbV9hcmd1bWVudHMuY2xlYXIoKTsKKyAg
ICAgICAgbV9hcmd1bWVudHMgPSBudWxscHRyOwogfQogCiBKU0M6OkV4ZWNTdGF0ZSogQ29uc29s
ZU1lc3NhZ2U6OnNjcmlwdFN0YXRlKCkgY29uc3QKZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2Ny
aXB0Q29yZS9pbnNwZWN0b3IvSlNHbG9iYWxPYmplY3RJbnNwZWN0b3JDb250cm9sbGVyLmNwcCBi
L1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9pbnNwZWN0b3IvSlNHbG9iYWxPYmplY3RJbnNwZWN0b3JD
b250cm9sbGVyLmNwcAppbmRleCA1N2Y1MmM1NTU0N2E2Mzg4NzljODJmNDBiNjhlYzNkMjJiMzJh
MDM5Li4xMWQ4NmVkMzI5NzUwMzE3MzcxNmE4NWQ5MzU4MDhmYzY3N2I1ZDQ4IDEwMDY0NAotLS0g
YS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvaW5zcGVjdG9yL0pTR2xvYmFsT2JqZWN0SW5zcGVjdG9y
Q29udHJvbGxlci5jcHAKKysrIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL2luc3BlY3Rvci9KU0ds
b2JhbE9iamVjdEluc3BlY3RvckNvbnRyb2xsZXIuY3BwCkBAIC0xMzEsNyArMTMxLDcgQEAgdm9p
ZCBKU0dsb2JhbE9iamVjdEluc3BlY3RvckNvbnRyb2xsZXI6OmRpc2Nvbm5lY3RGcm9udGVuZChE
aXNjb25uZWN0UmVhc29uIHJlYXMKICAgICBtX2FnZW50cy53aWxsRGVzdHJveUZyb250ZW5kQW5k
QmFja2VuZChyZWFzb24pOwogCiAgICAgbV9iYWNrZW5kRGlzcGF0Y2hlci0+Y2xlYXJGcm9udGVu
ZCgpOwotICAgIG1fYmFja2VuZERpc3BhdGNoZXIuY2xlYXIoKTsKKyAgICBtX2JhY2tlbmREaXNw
YXRjaGVyID0gbnVsbHB0cjsKICAgICBtX2Zyb250ZW5kQ2hhbm5lbCA9IG51bGxwdHI7CiAKICAg
ICBtX2lzQXV0b21hdGljSW5zcGVjdGlvbiA9IGZhbHNlOwpkaWZmIC0tZ2l0IGEvU291cmNlL0ph
dmFTY3JpcHRDb3JlL2luc3BlY3Rvci9hZ2VudHMvSW5zcGVjdG9yQWdlbnQuY3BwIGIvU291cmNl
L0phdmFTY3JpcHRDb3JlL2luc3BlY3Rvci9hZ2VudHMvSW5zcGVjdG9yQWdlbnQuY3BwCmluZGV4
IGJmMjQxYmE3NzgyZDljMDljYTZkYWQzNjA5MmI4MjFhNzJhODM4YWEuLjA1Mzg2OTAxZTYxZTdm
YmNkZWNlMGJjMTUyOTBkOWY1YmFjZTAxODggMTAwNjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0
Q29yZS9pbnNwZWN0b3IvYWdlbnRzL0luc3BlY3RvckFnZW50LmNwcAorKysgYi9Tb3VyY2UvSmF2
YVNjcmlwdENvcmUvaW5zcGVjdG9yL2FnZW50cy9JbnNwZWN0b3JBZ2VudC5jcHAKQEAgLTU3LDcg
KzU3LDcgQEAgdm9pZCBJbnNwZWN0b3JBZ2VudDo6ZGlkQ3JlYXRlRnJvbnRlbmRBbmRCYWNrZW5k
KEZyb250ZW5kQ2hhbm5lbCogZnJvbnRlbmRDaGFubmUKIHZvaWQgSW5zcGVjdG9yQWdlbnQ6Ondp
bGxEZXN0cm95RnJvbnRlbmRBbmRCYWNrZW5kKERpc2Nvbm5lY3RSZWFzb24pCiB7CiAgICAgbV9m
cm9udGVuZERpc3BhdGNoZXIgPSBudWxscHRyOwotICAgIG1fYmFja2VuZERpc3BhdGNoZXIuY2xl
YXIoKTsKKyAgICBtX2JhY2tlbmREaXNwYXRjaGVyID0gbnVsbHB0cjsKIAogICAgIG1fcGVuZGlu
Z0V2YWx1YXRlVGVzdENvbW1hbmRzLmNsZWFyKCk7CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZh
U2NyaXB0Q29yZS9pbnNwZWN0b3IvYWdlbnRzL0luc3BlY3RvckNvbnNvbGVBZ2VudC5jcHAgYi9T
b3VyY2UvSmF2YVNjcmlwdENvcmUvaW5zcGVjdG9yL2FnZW50cy9JbnNwZWN0b3JDb25zb2xlQWdl
bnQuY3BwCmluZGV4IDgxNGEwYzExY2Y2MDhlYzY5ODk5Y2ViZjFiYWMxNGVhYmMxOWJhZDYuLjlm
ZmQwNDg0ZjI4MDYyYzI5YmNhZGI0YjliOWQzNzBiMWY3MTEzN2YgMTAwNjQ0Ci0tLSBhL1NvdXJj
ZS9KYXZhU2NyaXB0Q29yZS9pbnNwZWN0b3IvYWdlbnRzL0luc3BlY3RvckNvbnNvbGVBZ2VudC5j
cHAKKysrIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL2luc3BlY3Rvci9hZ2VudHMvSW5zcGVjdG9y
Q29uc29sZUFnZW50LmNwcApAQCAtNjQsNyArNjQsNyBAQCB2b2lkIEluc3BlY3RvckNvbnNvbGVB
Z2VudDo6ZGlkQ3JlYXRlRnJvbnRlbmRBbmRCYWNrZW5kKEZyb250ZW5kQ2hhbm5lbCogZnJvbnRl
bgogdm9pZCBJbnNwZWN0b3JDb25zb2xlQWdlbnQ6OndpbGxEZXN0cm95RnJvbnRlbmRBbmRCYWNr
ZW5kKERpc2Nvbm5lY3RSZWFzb24pCiB7CiAgICAgbV9mcm9udGVuZERpc3BhdGNoZXIgPSBudWxs
cHRyOwotICAgIG1fYmFja2VuZERpc3BhdGNoZXIuY2xlYXIoKTsKKyAgICBtX2JhY2tlbmREaXNw
YXRjaGVyID0gbnVsbHB0cjsKIAogICAgIFN0cmluZyBlcnJvclN0cmluZzsKICAgICBkaXNhYmxl
KGVycm9yU3RyaW5nKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9pbnNwZWN0
b3IvYWdlbnRzL0luc3BlY3RvckRlYnVnZ2VyQWdlbnQuY3BwIGIvU291cmNlL0phdmFTY3JpcHRD
b3JlL2luc3BlY3Rvci9hZ2VudHMvSW5zcGVjdG9yRGVidWdnZXJBZ2VudC5jcHAKaW5kZXggYTc1
ZTBiMmI2ZWM3ZThjOWRkZDY3N2ZmOTQ4NWM5ZThmZTlkYmU0ZC4uZjBmMGI0OGRkNGQ0N2NkZTNh
MGYyYTg4MjJjNDYzMjVkZTVhYWI0ZiAxMDA2NDQKLS0tIGEvU291cmNlL0phdmFTY3JpcHRDb3Jl
L2luc3BlY3Rvci9hZ2VudHMvSW5zcGVjdG9yRGVidWdnZXJBZ2VudC5jcHAKKysrIGIvU291cmNl
L0phdmFTY3JpcHRDb3JlL2luc3BlY3Rvci9hZ2VudHMvSW5zcGVjdG9yRGVidWdnZXJBZ2VudC5j
cHAKQEAgLTc3LDcgKzc3LDcgQEAgdm9pZCBJbnNwZWN0b3JEZWJ1Z2dlckFnZW50OjpkaWRDcmVh
dGVGcm9udGVuZEFuZEJhY2tlbmQoRnJvbnRlbmRDaGFubmVsKiBmcm9udGUKIHZvaWQgSW5zcGVj
dG9yRGVidWdnZXJBZ2VudDo6d2lsbERlc3Ryb3lGcm9udGVuZEFuZEJhY2tlbmQoRGlzY29ubmVj
dFJlYXNvbiByZWFzb24pCiB7CiAgICAgbV9mcm9udGVuZERpc3BhdGNoZXIgPSBudWxscHRyOwot
ICAgIG1fYmFja2VuZERpc3BhdGNoZXIuY2xlYXIoKTsKKyAgICBtX2JhY2tlbmREaXNwYXRjaGVy
ID0gbnVsbHB0cjsKIAogICAgIGJvb2wgc2tpcFJlY29tcGlsZSA9IHJlYXNvbiA9PSBEaXNjb25u
ZWN0UmVhc29uOjpJbnNwZWN0ZWRUYXJnZXREZXN0cm95ZWQ7CiAgICAgZGlzYWJsZShza2lwUmVj
b21waWxlKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9pbnNwZWN0b3IvYWdl
bnRzL0pTR2xvYmFsT2JqZWN0UnVudGltZUFnZW50LmNwcCBiL1NvdXJjZS9KYXZhU2NyaXB0Q29y
ZS9pbnNwZWN0b3IvYWdlbnRzL0pTR2xvYmFsT2JqZWN0UnVudGltZUFnZW50LmNwcAppbmRleCA2
NThjNjdhYjE1Zjg5NTIwNWM1NWJiNTI4OWMwYjlkMmU0ZTQwYzYwLi40NjA0OWY1NmM3NWFkNzM5
OGYzYzlkMDc1ODQ2Y2U3YTFjMTI4MjY4IDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENv
cmUvaW5zcGVjdG9yL2FnZW50cy9KU0dsb2JhbE9iamVjdFJ1bnRpbWVBZ2VudC5jcHAKKysrIGIv
U291cmNlL0phdmFTY3JpcHRDb3JlL2luc3BlY3Rvci9hZ2VudHMvSlNHbG9iYWxPYmplY3RSdW50
aW1lQWdlbnQuY3BwCkBAIC00OSw3ICs0OSw3IEBAIHZvaWQgSlNHbG9iYWxPYmplY3RSdW50aW1l
QWdlbnQ6OmRpZENyZWF0ZUZyb250ZW5kQW5kQmFja2VuZChGcm9udGVuZENoYW5uZWwqIGZyCiB2
b2lkIEpTR2xvYmFsT2JqZWN0UnVudGltZUFnZW50Ojp3aWxsRGVzdHJveUZyb250ZW5kQW5kQmFj
a2VuZChEaXNjb25uZWN0UmVhc29uIHJlYXNvbikKIHsKICAgICBtX2Zyb250ZW5kRGlzcGF0Y2hl
ciA9IG51bGxwdHI7Ci0gICAgbV9iYWNrZW5kRGlzcGF0Y2hlci5jbGVhcigpOworICAgIG1fYmFj
a2VuZERpc3BhdGNoZXIgPSBudWxscHRyOwogCiAgICAgSW5zcGVjdG9yUnVudGltZUFnZW50Ojp3
aWxsRGVzdHJveUZyb250ZW5kQW5kQmFja2VuZChyZWFzb24pOwogfQpkaWZmIC0tZ2l0IGEvU291
cmNlL0phdmFTY3JpcHRDb3JlL3BhcnNlci9QYXJzZXIuY3BwIGIvU291cmNlL0phdmFTY3JpcHRD
b3JlL3BhcnNlci9QYXJzZXIuY3BwCmluZGV4IGRjMGY1NWYxMzJmYTBlMThmODQ3YTg1NGM4Y2Zm
NTZiMGE2MDk0OWYuLmEzYzVlMzEyMThiMDM5MmVlNzYxNmZlZDYxZDlkMzk1MmI0YTQ4ZTYgMTAw
NjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9wYXJzZXIvUGFyc2VyLmNwcAorKysgYi9T
b3VyY2UvSmF2YVNjcmlwdENvcmUvcGFyc2VyL1BhcnNlci5jcHAKQEAgLTQ5MSw3ICs0OTEsNyBA
QCB0ZW1wbGF0ZSA8Y2xhc3MgVHJlZUJ1aWxkZXI+IFRyZWVFeHByZXNzaW9uIFBhcnNlcjxMZXhl
clR5cGU+OjpwYXJzZVZhckRlY2xhcmF0aQogICAgIEpTVG9rZW4gbGFzdElkZW50VG9rZW47IAog
ICAgIGRvIHsKICAgICAgICAgbGFzdElkZW50ID0gMDsKLSAgICAgICAgbGFzdFBhdHRlcm4gPSAw
OworICAgICAgICBsYXN0UGF0dGVybiA9IFRyZWVEZXN0cnVjdHVyaW5nUGF0dGVybigwKTsKICAg
ICAgICAgSlNUb2tlbkxvY2F0aW9uIGxvY2F0aW9uKHRva2VuTG9jYXRpb24oKSk7CiAgICAgICAg
IG5leHQoKTsKICAgICAgICAgVHJlZUV4cHJlc3Npb24gbm9kZSA9IDA7CkBAIC04OTQsNyArODk0
LDcgQEAgdGVtcGxhdGUgPGNsYXNzIFRyZWVCdWlsZGVyPiBUcmVlU3RhdGVtZW50IFBhcnNlcjxM
ZXhlclR5cGU+OjpwYXJzZUZvclN0YXRlbWVudCgKICAgICAgICAgICAgIGRlY2xzRW5kID0gbGFz
dFRva2VuRW5kUG9zaXRpb24oKTsKICAgICAgICAgICAgIGlmIChwYXR0ZXJuICYmIChtYXRjaChJ
TlRPS0VOKSB8fCAobWF0Y2goSURFTlQpICYmICptX3Rva2VuLm1fZGF0YS5pZGVudCA9PSBtX3Zt
LT5wcm9wZXJ0eU5hbWVzLT5vZikpKQogICAgICAgICAgICAgICAgIGdvdG8gZW51bWVyYXRpb25M
b29wOwotICAgICAgICAgICAgcGF0dGVybiA9IDA7CisgICAgICAgICAgICBwYXR0ZXJuID0gVHJl
ZURlc3RydWN0dXJpbmdQYXR0ZXJuKDApOwogICAgICAgICAgICAgcmVzdG9yZVNhdmVQb2ludChz
YXZlUG9pbnQpOwogICAgICAgICB9CiAgICAgICAgIG1fYWxsb3dzSW4gPSBmYWxzZTsKZGlmZiAt
LWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0V4ZWN1dGFibGUuY3BwIGIvU291
cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvRXhlY3V0YWJsZS5jcHAKaW5kZXggNmNiMDliMDFi
MzgyNWI4NDU2ZTk1YzFhYmM5ZGZmMmI4MDZlNDExOC4uNTUyNDBmZDkxZjdiYzc4NDJmMTNlNTky
ODFkMTBkMjFkODZjNGY1MCAxMDA2NDQKLS0tIGEvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRp
bWUvRXhlY3V0YWJsZS5jcHAKKysrIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvRXhl
Y3V0YWJsZS5jcHAKQEAgLTUyLDggKzUyLDggQEAgdm9pZCBFeGVjdXRhYmxlQmFzZTo6ZGVzdHJv
eShKU0NlbGwqIGNlbGwpCiB2b2lkIEV4ZWN1dGFibGVCYXNlOjpjbGVhckNvZGUoKQogewogI2lm
IEVOQUJMRShKSVQpCi0gICAgbV9qaXRDb2RlRm9yQ2FsbC5jbGVhcigpOwotICAgIG1faml0Q29k
ZUZvckNvbnN0cnVjdC5jbGVhcigpOworICAgIG1faml0Q29kZUZvckNhbGwgPSBudWxscHRyOwor
ICAgIG1faml0Q29kZUZvckNvbnN0cnVjdCA9IG51bGxwdHI7CiAgICAgbV9qaXRDb2RlRm9yQ2Fs
bFdpdGhBcml0eUNoZWNrID0gTWFjcm9Bc3NlbWJsZXJDb2RlUHRyKCk7CiAgICAgbV9qaXRDb2Rl
Rm9yQ29uc3RydWN0V2l0aEFyaXR5Q2hlY2sgPSBNYWNyb0Fzc2VtYmxlckNvZGVQdHIoKTsKICAg
ICBtX2ppdENvZGVGb3JDYWxsV2l0aEFyaXR5Q2hlY2tBbmRQcmVzZXJ2ZVJlZ3MgPSBNYWNyb0Fz
c2VtYmxlckNvZGVQdHIoKTsKQEAgLTQ2NCw3ICs0NjQsNyBAQCB2b2lkIEV2YWxFeGVjdXRhYmxl
Ojp1bmxpbmtDYWxscygpCiAKIHZvaWQgRXZhbEV4ZWN1dGFibGU6OmNsZWFyQ29kZSgpCiB7Ci0g
ICAgbV9ldmFsQ29kZUJsb2NrLmNsZWFyKCk7CisgICAgbV9ldmFsQ29kZUJsb2NrID0gbnVsbHB0
cjsKICAgICBtX3VubGlua2VkRXZhbENvZGVCbG9jay5jbGVhcigpOwogICAgIEJhc2U6OmNsZWFy
Q29kZSgpOwogfQpAQCAtNTQzLDcgKzU0Myw3IEBAIHZvaWQgUHJvZ3JhbUV4ZWN1dGFibGU6OnZp
c2l0Q2hpbGRyZW4oSlNDZWxsKiBjZWxsLCBTbG90VmlzaXRvciYgdmlzaXRvcikKIAogdm9pZCBQ
cm9ncmFtRXhlY3V0YWJsZTo6Y2xlYXJDb2RlKCkKIHsKLSAgICBtX3Byb2dyYW1Db2RlQmxvY2su
Y2xlYXIoKTsKKyAgICBtX3Byb2dyYW1Db2RlQmxvY2sgPSBudWxscHRyOwogICAgIG1fdW5saW5r
ZWRQcm9ncmFtQ29kZUJsb2NrLmNsZWFyKCk7CiAgICAgQmFzZTo6Y2xlYXJDb2RlKCk7CiB9CkBA
IC01ODcsOCArNTg3LDggQEAgdm9pZCBGdW5jdGlvbkV4ZWN1dGFibGU6OmNsZWFyVW5saW5rZWRD
b2RlRm9yUmVjb21waWxhdGlvbigpCiAKIHZvaWQgRnVuY3Rpb25FeGVjdXRhYmxlOjpjbGVhckNv
ZGUoKQogewotICAgIG1fY29kZUJsb2NrRm9yQ2FsbC5jbGVhcigpOwotICAgIG1fY29kZUJsb2Nr
Rm9yQ29uc3RydWN0LmNsZWFyKCk7CisgICAgbV9jb2RlQmxvY2tGb3JDYWxsID0gbnVsbHB0cjsK
KyAgICBtX2NvZGVCbG9ja0ZvckNvbnN0cnVjdCA9IG51bGxwdHI7CiAgICAgQmFzZTo6Y2xlYXJD
b2RlKCk7CiB9CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0pT
TG9jay5jcHAgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9KU0xvY2suY3BwCmluZGV4
IDJlNzk5NGNmMjdjM2M1NGQ1ZDU3YzM3MDAwZGQxODBlYzRkZjlmMDUuLmMyZWUwYTU1MzJjMGI1
MTkzNjg3MTA5ZDlhMzJlYzRhMTQ0NWQ4YmQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0
Q29yZS9ydW50aW1lL0pTTG9jay5jcHAKKysrIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRp
bWUvSlNMb2NrLmNwcApAQCAtNzMsNyArNzMsNyBAQCB2b2lkIEpTTG9ja0hvbGRlcjo6aW5pdCgp
CiBKU0xvY2tIb2xkZXI6On5KU0xvY2tIb2xkZXIoKQogewogICAgIFJlZlB0cjxKU0xvY2s+IGFw
aUxvY2soJm1fdm0tPmFwaUxvY2soKSk7Ci0gICAgbV92bS5jbGVhcigpOworICAgIG1fdm0gPSBu
dWxscHRyOwogICAgIGFwaUxvY2stPnVubG9jaygpOwogfQogCmRpZmYgLS1naXQgYS9Tb3VyY2Uv
SmF2YVNjcmlwdENvcmUvcnVudGltZS9TdHJ1Y3R1cmUuY3BwIGIvU291cmNlL0phdmFTY3JpcHRD
b3JlL3J1bnRpbWUvU3RydWN0dXJlLmNwcAppbmRleCBmNzcxYjYwYmNiNjVkZThlNTRjNmE2MTFj
N2QyNmY4NjU5OGIwNzRkLi4zOTg1ODA1Y2Y1NWM4M2MxZGE2NTRhMTM1YzQ1MTBjNzUwMTcwYjE5
IDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9TdHJ1Y3R1cmUuY3Bw
CisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL1N0cnVjdHVyZS5jcHAKQEAgLTcz
Nyw3ICs3MzcsNyBAQCB2b2lkIFN0cnVjdHVyZTo6cGluKCkKICAgICBBU1NFUlQocHJvcGVydHlU
YWJsZSgpKTsKICAgICBzZXRJc1Bpbm5lZFByb3BlcnR5VGFibGUodHJ1ZSk7CiAgICAgY2xlYXJQ
cmV2aW91c0lEKCk7Ci0gICAgbV9uYW1lSW5QcmV2aW91cy5jbGVhcigpOworICAgIG1fbmFtZUlu
UHJldmlvdXMgPSBudWxscHRyOwogfQogCiB2b2lkIFN0cnVjdHVyZTo6YWxsb2NhdGVSYXJlRGF0
YShWTSYgdm0pCmRpZmYgLS1naXQgYS9Tb3VyY2UvV1RGL3d0Zi9SZWZQdHIuaCBiL1NvdXJjZS9X
VEYvd3RmL1JlZlB0ci5oCmluZGV4IDI5MTFmMGRhOTA2MmI3NmNjZDJhZDE1NDQwYjljZDI1ODVk
NTg4ODYuLjdjODMwNWUzOGVkNzJiNDQ3N2RhNWYyZTIyNzUwNzY0YTc4M2UyNjQgMTAwNjQ0Ci0t
LSBhL1NvdXJjZS9XVEYvd3RmL1JlZlB0ci5oCisrKyBiL1NvdXJjZS9XVEYvd3RmL1JlZlB0ci5o
CkBAIC02MCw3ICs2MCw2IEBAIHB1YmxpYzoKIAogICAgIFQqIGdldCgpIGNvbnN0IHsgcmV0dXJu
IG1fcHRyOyB9CiAgICAgCi0gICAgdm9pZCBjbGVhcigpOwogICAgIFBhc3NSZWZQdHI8VD4gcmVs
ZWFzZSgpIHsgUGFzc1JlZlB0cjxUPiB0bXAgPSBhZG9wdFJlZihtX3B0cik7IG1fcHRyID0gbnVs
bHB0cjsgcmV0dXJuIHRtcDsgfQogICAgIFJlZjxUPiByZWxlYXNlTm9uTnVsbCgpIHsgQVNTRVJU
KG1fcHRyKTsgUmVmPFQ+IHRtcChhZG9wdFJlZigqbV9wdHIpKTsgbV9wdHIgPSBudWxscHRyOyBy
ZXR1cm4gdG1wOyB9CiAKQEAgLTc3LDYgKzc2LDcgQEAgcHVibGljOgogICAgIAogICAgIFJlZlB0
ciYgb3BlcmF0b3I9KGNvbnN0IFJlZlB0ciYpOwogICAgIFJlZlB0ciYgb3BlcmF0b3I9KFQqKTsK
KyAgICBSZWZQdHImIG9wZXJhdG9yPShzdGQ6Om51bGxwdHJfdCk7CiAgICAgUmVmUHRyJiBvcGVy
YXRvcj0oY29uc3QgUGFzc1JlZlB0cjxUPiYpOwogICAgIHRlbXBsYXRlPHR5cGVuYW1lIFU+IFJl
ZlB0ciYgb3BlcmF0b3I9KGNvbnN0IFJlZlB0cjxVPiYpOwogICAgIHRlbXBsYXRlPHR5cGVuYW1l
IFU+IFJlZlB0ciYgb3BlcmF0b3I9KGNvbnN0IFBhc3NSZWZQdHI8VT4mKTsKQEAgLTEwOSwxMSAr
MTA5LDYgQEAgdGVtcGxhdGU8dHlwZW5hbWUgVD4gdGVtcGxhdGU8dHlwZW5hbWUgVT4gaW5saW5l
IFJlZlB0cjxUPjo6UmVmUHRyKFJlZjxVPiYmIHJlZmUKIHsKIH0KIAotdGVtcGxhdGU8dHlwZW5h
bWUgVD4gaW5saW5lIHZvaWQgUmVmUHRyPFQ+OjpjbGVhcigpCi17Ci0gICAgZGVyZWZJZk5vdE51
bGwoc3RkOjpleGNoYW5nZShtX3B0ciwgbnVsbHB0cikpOwotfQotCiB0ZW1wbGF0ZTx0eXBlbmFt
ZSBUPgogaW5saW5lIFQqIFJlZlB0cjxUPjo6bGVha1JlZigpCiB7CkBAIC0xNDEsNiArMTM2LDEy
IEBAIHRlbXBsYXRlPHR5cGVuYW1lIFQ+IGlubGluZSBSZWZQdHI8VD4mIFJlZlB0cjxUPjo6b3Bl
cmF0b3I9KFQqIG9wdHIpCiAgICAgcmV0dXJuICp0aGlzOwogfQogCit0ZW1wbGF0ZTx0eXBlbmFt
ZSBUPiBpbmxpbmUgUmVmUHRyPFQ+JiBSZWZQdHI8VD46Om9wZXJhdG9yPShzdGQ6Om51bGxwdHJf
dCkKK3sKKyAgICBkZXJlZklmTm90TnVsbChzdGQ6OmV4Y2hhbmdlKG1fcHRyLCBudWxscHRyKSk7
CisgICAgcmV0dXJuICp0aGlzOworfQorCiB0ZW1wbGF0ZTx0eXBlbmFtZSBUPiBpbmxpbmUgUmVm
UHRyPFQ+JiBSZWZQdHI8VD46Om9wZXJhdG9yPShjb25zdCBQYXNzUmVmUHRyPFQ+JiBvKQogewog
ICAgIFJlZlB0ciBwdHIgPSBvOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dURi93dGYvdGV4dC9TdHJp
bmdCdWlsZGVyLmggYi9Tb3VyY2UvV1RGL3d0Zi90ZXh0L1N0cmluZ0J1aWxkZXIuaAppbmRleCBi
ZTVjMTE3MmNjY2I5OThhNDEwNTgwMzQ1YWY0MGMyOWNiMTM0OThlLi4xZGM0YWM2MjI5NDBjMGE1
MzQyZDc2YzkyMmEzNmRkNjE4MmE5MWY4IDEwMDY0NAotLS0gYS9Tb3VyY2UvV1RGL3d0Zi90ZXh0
L1N0cmluZ0J1aWxkZXIuaAorKysgYi9Tb3VyY2UvV1RGL3d0Zi90ZXh0L1N0cmluZ0J1aWxkZXIu
aApAQCAtMjY0LDcgKzI2NCw3IEBAIHB1YmxpYzoKICAgICB7CiAgICAgICAgIG1fbGVuZ3RoID0g
MDsKICAgICAgICAgbV9zdHJpbmcgPSBTdHJpbmcoKTsKLSAgICAgICAgbV9idWZmZXIgPSAwOwor
ICAgICAgICBtX2J1ZmZlciA9IG51bGxwdHI7CiAgICAgICAgIG1fYnVmZmVyQ2hhcmFjdGVyczgg
PSAwOwogICAgICAgICBtX2lzOEJpdCA9IHRydWU7CiAgICAgfQpkaWZmIC0tZ2l0IGEvU291cmNl
L1dlYkNvcmUvTW9kdWxlcy9pbmRleGVkZGIvSURCQ3Vyc29yLmNwcCBiL1NvdXJjZS9XZWJDb3Jl
L01vZHVsZXMvaW5kZXhlZGRiL0lEQkN1cnNvci5jcHAKaW5kZXggYTIwZTFlMWFjZTI0OTk0ODRk
Zjc0NTkxOThhMTExZTE4NDI5MGU2ZC4uYzQwMTFkYzI3NTU1ZjQ4ZmNlMmQ2ZDJlMTY0MDhmMWQ3
YTc2MTM2ZiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9pbmRleGVkZGIvSURC
Q3Vyc29yLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL2luZGV4ZWRkYi9JREJDdXJz
b3IuY3BwCkBAIC0yNTksNyArMjU5LDcgQEAgdm9pZCBJREJDdXJzb3I6OmNsb3NlKCkKICAgICBt
X3RyYW5zYWN0aW9uTm90aWZpZXIuY3Vyc29yRmluaXNoZWQoKTsKICAgICBpZiAobV9yZXF1ZXN0
KSB7CiAgICAgICAgIG1fcmVxdWVzdC0+ZmluaXNoQ3Vyc29yKCk7Ci0gICAgICAgIG1fcmVxdWVz
dC5jbGVhcigpOworICAgICAgICBtX3JlcXVlc3QgPSBudWxscHRyOwogICAgIH0KIH0KIApkaWZm
IC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9pbmRleGVkZGIvSURCRGF0YWJhc2VCYWNr
ZW5kLmNwcCBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvaW5kZXhlZGRiL0lEQkRhdGFiYXNlQmFj
a2VuZC5jcHAKaW5kZXggZmMyMzEwMmRkYWE5YTM3NzA5NDBlZjRlYjA0YzEzODAzODM0ZGMzZi4u
MDllNGUyN2I4ZjkwOWUxNzgwOWI0OWQwMzRlM2I4YzRlNDVlZjUzNyAxMDA2NDQKLS0tIGEvU291
cmNlL1dlYkNvcmUvTW9kdWxlcy9pbmRleGVkZGIvSURCRGF0YWJhc2VCYWNrZW5kLmNwcAorKysg
Yi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL2luZGV4ZWRkYi9JREJEYXRhYmFzZUJhY2tlbmQuY3Bw
CkBAIC0zMzMsNyArMzMzLDcgQEAgdm9pZCBJREJEYXRhYmFzZUJhY2tlbmQ6OnRyYW5zYWN0aW9u
RmluaXNoZWQoSURCVHJhbnNhY3Rpb25CYWNrZW5kKiByYXdUcmFuc2FjdGkKICAgICBtX3RyYW5z
YWN0aW9ucy5yZW1vdmUodHJhbnNhY3Rpb24tPmlkKCkpOwogICAgIGlmICh0cmFuc2FjdGlvbi0+
bW9kZSgpID09IEluZGV4ZWREQjo6VHJhbnNhY3Rpb25Nb2RlOjpWZXJzaW9uQ2hhbmdlKSB7CiAg
ICAgICAgIEFTU0VSVCh0cmFuc2FjdGlvbi5nZXQoKSA9PSBtX3J1bm5pbmdWZXJzaW9uQ2hhbmdl
VHJhbnNhY3Rpb24uZ2V0KCkpOwotICAgICAgICBtX3J1bm5pbmdWZXJzaW9uQ2hhbmdlVHJhbnNh
Y3Rpb24uY2xlYXIoKTsKKyAgICAgICAgbV9ydW5uaW5nVmVyc2lvbkNoYW5nZVRyYW5zYWN0aW9u
ID0gbnVsbHB0cjsKICAgICB9CiB9CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL01vZHVs
ZXMvaW5kZXhlZGRiL0lEQk9iamVjdFN0b3JlLmNwcCBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMv
aW5kZXhlZGRiL0lEQk9iamVjdFN0b3JlLmNwcAppbmRleCBlOGJmOWRkZWZlNDk3YjU2M2Q5OGYw
ODUwZWFlOGQ0ODdlYjIyNWI5Li5hNmQyODE0MmY2MjIyMjJmOTQzZjhkNGUxMzViNDI0ODMxMjAz
MDE5IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL2luZGV4ZWRkYi9JREJPYmpl
Y3RTdG9yZS5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9pbmRleGVkZGIvSURCT2Jq
ZWN0U3RvcmUuY3BwCkBAIC0zMzcsNyArMzM3LDcgQEAgcHJpdmF0ZToKICAgICAgICAgICAgIC8v
IE5vdyB0aGF0IHdlIGFyZSBkb25lIGluZGV4aW5nLCB0ZWxsIHRoZSBiYWNrZW5kIHRvIGdvCiAg
ICAgICAgICAgICAvLyBiYWNrIHRvIHByb2Nlc3NpbmcgdGFza3Mgb2YgdHlwZSBOb3JtYWxUYXNr
LgogICAgICAgICAgICAgbV9kYXRhYmFzZUJhY2tlbmQtPnNldEluZGV4ZXNSZWFkeShtX3RyYW5z
YWN0aW9uSWQsIG1fb2JqZWN0U3RvcmVJZCwgaW5kZXhJZHMpOwotICAgICAgICAgICAgbV9kYXRh
YmFzZUJhY2tlbmQuY2xlYXIoKTsKKyAgICAgICAgICAgIG1fZGF0YWJhc2VCYWNrZW5kID0gbnVs
bHB0cjsKICAgICAgICAgfQogCiAgICAgfQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvTW9k
dWxlcy9pbmRleGVkZGIvSURCT3BlbkRCUmVxdWVzdC5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1
bGVzL2luZGV4ZWRkYi9JREJPcGVuREJSZXF1ZXN0LmNwcAppbmRleCA2Mzc4MDdlYWQ5NGNiNzhj
OWM5ZDkzNThkZWQ2NzBmZmYyMDE3N2RjLi43MTU3OWIwNTk1NTYyNGUwM2YyYWUxNzI3ZmM1MDQ2
NzkyNTA0N2I0IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL2luZGV4ZWRkYi9J
REJPcGVuREJSZXF1ZXN0LmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL2luZGV4ZWRk
Yi9JREJPcGVuREJSZXF1ZXN0LmNwcApAQCAtMTQyLDcgKzE0Miw3IEBAIGJvb2wgSURCT3BlbkRC
UmVxdWVzdDo6ZGlzcGF0Y2hFdmVudChQYXNzUmVmUHRyPEV2ZW50PiBldmVudCkKICAgICAvLyBJ
ZiB0aGUgY29ubmVjdGlvbiBjbG9zZWQgYmV0d2VlbiBvblVwZ3JhZGVOZWVkZWQgYW5kIHRoZSBk
ZWxpdmVyeSBvZiB0aGUgInN1Y2Nlc3MiIGV2ZW50LAogICAgIC8vIGFuICJlcnJvciIgZXZlbnQg
c2hvdWxkIGJlIGZpcmVkIGluc3RlYWQuCiAgICAgaWYgKGV2ZW50LT50eXBlKCkgPT0gZXZlbnRO
YW1lcygpLnN1Y2Nlc3NFdmVudCAmJiBtX3Jlc3VsdC0+dHlwZSgpID09IElEQkFueTo6SURCRGF0
YWJhc2VUeXBlICYmIG1fcmVzdWx0LT5pZGJEYXRhYmFzZSgpLT5pc0Nsb3NlUGVuZGluZygpKSB7
Ci0gICAgICAgIG1fcmVzdWx0LmNsZWFyKCk7CisgICAgICAgIG1fcmVzdWx0ID0gbnVsbHB0cjsK
ICAgICAgICAgb25FcnJvcihJREJEYXRhYmFzZUVycm9yOjpjcmVhdGUoSURCRGF0YWJhc2VFeGNl
cHRpb246OkFib3J0RXJyb3IsICJUaGUgY29ubmVjdGlvbiB3YXMgY2xvc2VkLiIpKTsKICAgICAg
ICAgcmV0dXJuIGZhbHNlOwogICAgIH0KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL01vZHVs
ZXMvaW5kZXhlZGRiL0lEQlJlcXVlc3QuY3BwIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9pbmRl
eGVkZGIvSURCUmVxdWVzdC5jcHAKaW5kZXggOWU1MDFiNGY4NjI2YjA0MDE2ZGVjZDk1ODYxNmE4
MTUzZmE2NWFlZi4uODY0ZGU1MzU3NTMxMWIwOWUyODc4NGEzZGE2NWM4MWZmOGE4NDVhZiAxMDA2
NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9pbmRleGVkZGIvSURCUmVxdWVzdC5jcHAK
KysrIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9pbmRleGVkZGIvSURCUmVxdWVzdC5jcHAKQEAg
LTE3MCw5ICsxNzAsOSBAQCB2b2lkIElEQlJlcXVlc3Q6OmFib3J0KCkKICAgICBtX2VucXVldWVk
RXZlbnRzLmNsZWFyKCk7CiAKICAgICBtX2Vycm9yQ29kZSA9IDA7Ci0gICAgbV9lcnJvci5jbGVh
cigpOworICAgIG1fZXJyb3IgPSBudWxscHRyOwogICAgIG1fZXJyb3JNZXNzYWdlID0gU3RyaW5n
KCk7Ci0gICAgbV9yZXN1bHQuY2xlYXIoKTsKKyAgICBtX3Jlc3VsdCA9IG51bGxwdHI7CiAgICAg
b25FcnJvcihJREJEYXRhYmFzZUVycm9yOjpjcmVhdGUoSURCRGF0YWJhc2VFeGNlcHRpb246OkFi
b3J0RXJyb3IpKTsKICAgICBtX3JlcXVlc3RBYm9ydGVkID0gdHJ1ZTsKIH0KQEAgLTE5NCwxMCAr
MTk0LDEwIEBAIHZvaWQgSURCUmVxdWVzdDo6c2V0UGVuZGluZ0N1cnNvcihQYXNzUmVmUHRyPElE
QkN1cnNvcj4gY3Vyc29yKQogICAgIEFTU0VSVChjdXJzb3IgPT0gZ2V0UmVzdWx0Q3Vyc29yKCkp
OwogCiAgICAgbV9wZW5kaW5nQ3Vyc29yID0gY3Vyc29yOwotICAgIG1fcmVzdWx0LmNsZWFyKCk7
CisgICAgbV9yZXN1bHQgPSBudWxscHRyOwogICAgIG1fcmVhZHlTdGF0ZSA9IFBFTkRJTkc7CiAg
ICAgbV9lcnJvckNvZGUgPSAwOwotICAgIG1fZXJyb3IuY2xlYXIoKTsKKyAgICBtX2Vycm9yID0g
bnVsbHB0cjsKICAgICBtX2Vycm9yTWVzc2FnZSA9IFN0cmluZygpOwogICAgIG1fdHJhbnNhY3Rp
b24tPnJlZ2lzdGVyUmVxdWVzdCh0aGlzKTsKIH0KQEAgLTI1Niw3ICsyNTYsNyBAQCB2b2lkIElE
QlJlcXVlc3Q6Om9uRXJyb3IoUGFzc1JlZlB0cjxJREJEYXRhYmFzZUVycm9yPiBlcnJvcikKICAg
ICBtX2Vycm9yQ29kZSA9IGVycm9yLT5jb2RlKCk7CiAgICAgbV9lcnJvck1lc3NhZ2UgPSBlcnJv
ci0+bWVzc2FnZSgpOwogICAgIG1fZXJyb3IgPSBET01FcnJvcjo6Y3JlYXRlKElEQkRhdGFiYXNl
RXhjZXB0aW9uOjpnZXRFcnJvck5hbWUoZXJyb3ItPmlkYkNvZGUoKSkpOwotICAgIG1fcGVuZGlu
Z0N1cnNvci5jbGVhcigpOworICAgIG1fcGVuZGluZ0N1cnNvciA9IG51bGxwdHI7CiAgICAgZW5x
dWV1ZUV2ZW50KEV2ZW50OjpjcmVhdGUoZXZlbnROYW1lcygpLmVycm9yRXZlbnQsIHRydWUsIHRy
dWUpKTsKIH0KIApAQCAtNDA0LDcgKzQwNCw3IEBAIHZvaWQgSURCUmVxdWVzdDo6b25TdWNjZXNz
SW50ZXJuYWwoY29uc3QgRGVwcmVjYXRlZDo6U2NyaXB0VmFsdWUmIHZhbHVlKQogICAgIG1fcmVz
dWx0ID0gSURCQW55OjpjcmVhdGUodmFsdWUpOwogICAgIGlmIChtX3BlbmRpbmdDdXJzb3IpIHsK
ICAgICAgICAgbV9wZW5kaW5nQ3Vyc29yLT5jbG9zZSgpOwotICAgICAgICBtX3BlbmRpbmdDdXJz
b3IuY2xlYXIoKTsKKyAgICAgICAgbV9wZW5kaW5nQ3Vyc29yID0gbnVsbHB0cjsKICAgICB9CiAg
ICAgZW5xdWV1ZUV2ZW50KGNyZWF0ZVN1Y2Nlc3NFdmVudCgpKTsKIH0KQEAgLTU1Myw3ICs1NTMs
NyBAQCB2b2lkIElEQlJlcXVlc3Q6OnRyYW5zYWN0aW9uRGlkRmluaXNoQW5kRGlzcGF0Y2goKQog
ICAgIEFTU0VSVChtX3RyYW5zYWN0aW9uLT5pc1ZlcnNpb25DaGFuZ2UoKSk7CiAgICAgQVNTRVJU
KG1fcmVhZHlTdGF0ZSA9PSBET05FKTsKICAgICBBU1NFUlQoc2NyaXB0RXhlY3V0aW9uQ29udGV4
dCgpKTsKLSAgICBtX3RyYW5zYWN0aW9uLmNsZWFyKCk7CisgICAgbV90cmFuc2FjdGlvbiA9IG51
bGxwdHI7CiAgICAgbV9yZWFkeVN0YXRlID0gUEVORElORzsKIH0KIApkaWZmIC0tZ2l0IGEvU291
cmNlL1dlYkNvcmUvTW9kdWxlcy9pbmRleGVkZGIvSURCVHJhbnNhY3Rpb24uY3BwIGIvU291cmNl
L1dlYkNvcmUvTW9kdWxlcy9pbmRleGVkZGIvSURCVHJhbnNhY3Rpb24uY3BwCmluZGV4IDk5NDhi
YzcyYmIyNTJlYWQ4MDRlZDAzNzE1M2QyNDE0ZWE4YjFlYTcuLjZlYzI5ZmE2Nzg0Yzc4ZTdiMDRi
YTMwNGUyNDg2MzA3MzkyZWQ4OWEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMv
aW5kZXhlZGRiL0lEQlRyYW5zYWN0aW9uLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVz
L2luZGV4ZWRkYi9JREJUcmFuc2FjdGlvbi5jcHAKQEAgLTI0MCw3ICsyNDAsNyBAQCB2b2lkIElE
QlRyYW5zYWN0aW9uOjpPcGVuQ3Vyc29yTm90aWZpZXI6OmN1cnNvckZpbmlzaGVkKCkKICAgICBp
ZiAobV9jdXJzb3IpIHsKICAgICAgICAgbV90cmFuc2FjdGlvbi0+dW5yZWdpc3Rlck9wZW5DdXJz
b3IobV9jdXJzb3IpOwogICAgICAgICBtX2N1cnNvciA9IG51bGxwdHI7Ci0gICAgICAgIG1fdHJh
bnNhY3Rpb24uY2xlYXIoKTsKKyAgICAgICAgbV90cmFuc2FjdGlvbiA9IG51bGxwdHI7CiAgICAg
fQogfQogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL21lZGlhc291cmNlL01l
ZGlhU291cmNlLmNwcCBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvbWVkaWFzb3VyY2UvTWVkaWFT
b3VyY2UuY3BwCmluZGV4IDkxMTcwYWE0ZTgyYTAxNzVmZDJhNDAxZGFlNDU0OTc5ZTcwYmEyYjQu
LmM0MGQ2ZTMwMzY5ZTM5OTEzYzdmYTk3NzJjMWVkNmNmMzI0MDRlMTkgMTAwNjQ0Ci0tLSBhL1Nv
dXJjZS9XZWJDb3JlL01vZHVsZXMvbWVkaWFzb3VyY2UvTWVkaWFTb3VyY2UuY3BwCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL01vZHVsZXMvbWVkaWFzb3VyY2UvTWVkaWFTb3VyY2UuY3BwCkBAIC0zOTQs
NyArMzk0LDcgQEAgdm9pZCBNZWRpYVNvdXJjZTo6c2V0UmVhZHlTdGF0ZShjb25zdCBBdG9taWNT
dHJpbmcmIHN0YXRlKQogICAgIExPRyhNZWRpYVNvdXJjZSwgIk1lZGlhU291cmNlOjpzZXRSZWFk
eVN0YXRlKCVwKSA6ICVzIC0+ICVzIiwgdGhpcywgb2xkU3RhdGUuc3RyaW5nKCkuYXNjaWkoKS5k
YXRhKCksIHN0YXRlLnN0cmluZygpLmFzY2lpKCkuZGF0YSgpKTsKIAogICAgIGlmIChzdGF0ZSA9
PSBjbG9zZWRLZXl3b3JkKCkpIHsKLSAgICAgICAgbV9wcml2YXRlLmNsZWFyKCk7CisgICAgICAg
IG1fcHJpdmF0ZSA9IG51bGxwdHI7CiAgICAgICAgIG1fbWVkaWFFbGVtZW50ID0gbnVsbHB0cjsK
ICAgICAgICAgbV9kdXJhdGlvbiA9IE1lZGlhVGltZTo6aW52YWxpZFRpbWUoKTsKICAgICB9CkBA
IC04MTEsNyArODExLDcgQEAgdm9pZCBNZWRpYVNvdXJjZTo6c3RvcCgpCiAgICAgbV9hc3luY0V2
ZW50UXVldWUuY2xvc2UoKTsKICAgICBpZiAoIWlzQ2xvc2VkKCkpCiAgICAgICAgIHNldFJlYWR5
U3RhdGUoY2xvc2VkS2V5d29yZCgpKTsKLSAgICBtX3ByaXZhdGUuY2xlYXIoKTsKKyAgICBtX3By
aXZhdGUgPSBudWxscHRyOwogfQogCiBib29sIE1lZGlhU291cmNlOjpjYW5TdXNwZW5kRm9yUGFn
ZUNhY2hlKCkgY29uc3QKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvbWVkaWFz
dHJlYW0vUlRDU2Vzc2lvbkRlc2NyaXB0aW9uUmVxdWVzdEltcGwuY3BwIGIvU291cmNlL1dlYkNv
cmUvTW9kdWxlcy9tZWRpYXN0cmVhbS9SVENTZXNzaW9uRGVzY3JpcHRpb25SZXF1ZXN0SW1wbC5j
cHAKaW5kZXggZDcxMGRjMThmNWUyM2NiNmUxMzA4ZGYyOGY2NTZhNjg5YmNiMDZkNy4uMzAxMzM0
ZGNkNTEwODVkMzI1ZjUyNGY4ZWQ5OTRhZWNiOGU2ODQ0MyAxMDA2NDQKLS0tIGEvU291cmNlL1dl
YkNvcmUvTW9kdWxlcy9tZWRpYXN0cmVhbS9SVENTZXNzaW9uRGVzY3JpcHRpb25SZXF1ZXN0SW1w
bC5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9tZWRpYXN0cmVhbS9SVENTZXNzaW9u
RGVzY3JpcHRpb25SZXF1ZXN0SW1wbC5jcHAKQEAgLTk3LDggKzk3LDggQEAgYm9vbCBSVENTZXNz
aW9uRGVzY3JpcHRpb25SZXF1ZXN0SW1wbDo6Y2FuU3VzcGVuZEZvclBhZ2VDYWNoZSgpIGNvbnN0
CiAKIHZvaWQgUlRDU2Vzc2lvbkRlc2NyaXB0aW9uUmVxdWVzdEltcGw6OmNsZWFyKCkKIHsKLSAg
ICBtX3N1Y2Nlc3NDYWxsYmFjay5jbGVhcigpOwotICAgIG1fZXJyb3JDYWxsYmFjay5jbGVhcigp
OworICAgIG1fc3VjY2Vzc0NhbGxiYWNrID0gbnVsbHB0cjsKKyAgICBtX2Vycm9yQ2FsbGJhY2sg
PSBudWxscHRyOwogfQogCiB9IC8vIG5hbWVzcGFjZSBXZWJDb3JlCmRpZmYgLS1naXQgYS9Tb3Vy
Y2UvV2ViQ29yZS9Nb2R1bGVzL21lZGlhc3RyZWFtL1JUQ1N0YXRzUmVxdWVzdEltcGwuY3BwIGIv
U291cmNlL1dlYkNvcmUvTW9kdWxlcy9tZWRpYXN0cmVhbS9SVENTdGF0c1JlcXVlc3RJbXBsLmNw
cAppbmRleCBkZWIxOWE5YWY5MGRjZmM0NTYzNzM4NjhlMTVmODgzNWRmYmU0YzhmLi5kMDAwYjEx
ZGYxN2ZlZjEwMTBlMzg5OWI3NzAyMWNlNzkyMDFmN2U5IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2Vi
Q29yZS9Nb2R1bGVzL21lZGlhc3RyZWFtL1JUQ1N0YXRzUmVxdWVzdEltcGwuY3BwCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL01vZHVsZXMvbWVkaWFzdHJlYW0vUlRDU3RhdHNSZXF1ZXN0SW1wbC5jcHAK
QEAgLTEwNCw3ICsxMDQsNyBAQCBib29sIFJUQ1N0YXRzUmVxdWVzdEltcGw6OmNhblN1c3BlbmRG
b3JQYWdlQ2FjaGUoKSBjb25zdAogCiB2b2lkIFJUQ1N0YXRzUmVxdWVzdEltcGw6OmNsZWFyKCkK
IHsKLSAgICBtX3N1Y2Nlc3NDYWxsYmFjay5jbGVhcigpOworICAgIG1fc3VjY2Vzc0NhbGxiYWNr
ID0gbnVsbHB0cjsKIH0KIAogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL21l
ZGlhc3RyZWFtL1JUQ1ZvaWRSZXF1ZXN0SW1wbC5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVz
L21lZGlhc3RyZWFtL1JUQ1ZvaWRSZXF1ZXN0SW1wbC5jcHAKaW5kZXggODJmOGExMjJkZDMwOWUz
YWQwZTQzOTRlYzljYzM1ZWUwMDlkYWQzNy4uNzA2ZjkwNzU4ZmRjMTVkYzk3ZWZhMWE1ZDMxMTJj
NGUyYWI0OWRhNiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9tZWRpYXN0cmVh
bS9SVENWb2lkUmVxdWVzdEltcGwuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvbWVk
aWFzdHJlYW0vUlRDVm9pZFJlcXVlc3RJbXBsLmNwcApAQCAtOTQsOCArOTQsOCBAQCBib29sIFJU
Q1ZvaWRSZXF1ZXN0SW1wbDo6Y2FuU3VzcGVuZEZvclBhZ2VDYWNoZSgpIGNvbnN0CiAKIHZvaWQg
UlRDVm9pZFJlcXVlc3RJbXBsOjpjbGVhcigpCiB7Ci0gICAgbV9zdWNjZXNzQ2FsbGJhY2suY2xl
YXIoKTsKLSAgICBtX2Vycm9yQ2FsbGJhY2suY2xlYXIoKTsKKyAgICBtX3N1Y2Nlc3NDYWxsYmFj
ayA9IG51bGxwdHI7CisgICAgbV9lcnJvckNhbGxiYWNrID0gbnVsbHB0cjsKIH0KIAogfSAvLyBu
YW1lc3BhY2UgV2ViQ29yZQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy93ZWJh
dWRpby9BdWRpb0NvbnRleHQuY3BwIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy93ZWJhdWRpby9B
dWRpb0NvbnRleHQuY3BwCmluZGV4IDVhM2RlYTBhNTA3MWQ4ZGFmYmNkZmUwNTVhOGQwNWNkODAz
NDBkYWYuLmZhYTk5NmI3NGNmOGIwZmIyYjA0MzIyZGIxN2JhNjY4NjM2MGM5YjkgMTAwNjQ0Ci0t
LSBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvd2ViYXVkaW8vQXVkaW9Db250ZXh0LmNwcAorKysg
Yi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL3dlYmF1ZGlvL0F1ZGlvQ29udGV4dC5jcHAKQEAgLTIz
MSw3ICsyMzEsNyBAQCB2b2lkIEF1ZGlvQ29udGV4dDo6Y2xlYXIoKQogewogICAgIC8vIFdlIGhh
dmUgdG8gcmVsZWFzZSBvdXIgcmVmZXJlbmNlIHRvIHRoZSBkZXN0aW5hdGlvbiBub2RlIGJlZm9y
ZSB0aGUgY29udGV4dCB3aWxsIGV2ZXIgYmUgZGVsZXRlZCBzaW5jZSB0aGUgZGVzdGluYXRpb24g
bm9kZSBob2xkcyBhIHJlZmVyZW5jZSB0byB0aGUgY29udGV4dC4KICAgICBpZiAobV9kZXN0aW5h
dGlvbk5vZGUpCi0gICAgICAgIG1fZGVzdGluYXRpb25Ob2RlLmNsZWFyKCk7CisgICAgICAgIG1f
ZGVzdGluYXRpb25Ob2RlID0gbnVsbHB0cjsKIAogICAgIC8vIEF1ZGlvIHRocmVhZCBpcyBkZWFk
LiBOb2JvZHkgd2lsbCBzY2hlZHVsZSBub2RlIGRlbGV0aW9uIGFjdGlvbi4gTGV0J3MgZG8gaXQg
b3Vyc2VsdmVzLgogICAgIGRvIHsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMv
d2ViZGF0YWJhc2UvU1FMVHJhbnNhY3Rpb25CYWNrZW5kLmNwcCBiL1NvdXJjZS9XZWJDb3JlL01v
ZHVsZXMvd2ViZGF0YWJhc2UvU1FMVHJhbnNhY3Rpb25CYWNrZW5kLmNwcAppbmRleCBkYTI1NGI2
NTRmMjM1ZTVhMTgyZTRkN2Y4NGMzOWExNTVlNGU4MGQ2Li5kMzExMzgwZTQ0ODU4MWFkOWU0Mzdk
MjQ1ZWVhMjlmNmE5ZjljMDk2IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL3dl
YmRhdGFiYXNlL1NRTFRyYW5zYWN0aW9uQmFja2VuZC5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUv
TW9kdWxlcy93ZWJkYXRhYmFzZS9TUUxUcmFuc2FjdGlvbkJhY2tlbmQuY3BwCkBAIC04NDUsNyAr
ODQ1LDcgQEAgdm9pZCBTUUxUcmFuc2FjdGlvbkJhY2tlbmQ6OnJlbGVhc2VPcmlnaW5Mb2NrSWZO
ZWVkZWQoKQogewogICAgIGlmIChtX29yaWdpbkxvY2spIHsKICAgICAgICAgbV9vcmlnaW5Mb2Nr
LT51bmxvY2soKTsKLSAgICAgICAgbV9vcmlnaW5Mb2NrLmNsZWFyKCk7CisgICAgICAgIG1fb3Jp
Z2luTG9jayA9IG51bGxwdHI7CiAgICAgfQogfQogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29y
ZS9Nb2R1bGVzL3dlYnNvY2tldHMvV29ya2VyVGhyZWFkYWJsZVdlYlNvY2tldENoYW5uZWwuY3Bw
IGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy93ZWJzb2NrZXRzL1dvcmtlclRocmVhZGFibGVXZWJT
b2NrZXRDaGFubmVsLmNwcAppbmRleCBiY2JkYWY5NGM3MDExN2MzZDE0MzlhODQzZWE3Y2IwMzI4
YzJlZTg1Li4zNGI2NGQ3N2EwZjU4ZDhjNTdmYmMwODI2MmE5MjMzNTVhOGVkMWQ2IDEwMDY0NAot
LS0gYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL3dlYnNvY2tldHMvV29ya2VyVGhyZWFkYWJsZVdl
YlNvY2tldENoYW5uZWwuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvd2Vic29ja2V0
cy9Xb3JrZXJUaHJlYWRhYmxlV2ViU29ja2V0Q2hhbm5lbC5jcHAKQEAgLTEyNiw3ICsxMjYsNyBA
QCB2b2lkIFdvcmtlclRocmVhZGFibGVXZWJTb2NrZXRDaGFubmVsOjpmYWlsKGNvbnN0IFN0cmlu
ZyYgcmVhc29uKQogdm9pZCBXb3JrZXJUaHJlYWRhYmxlV2ViU29ja2V0Q2hhbm5lbDo6ZGlzY29u
bmVjdCgpCiB7CiAgICAgbV9icmlkZ2UtPmRpc2Nvbm5lY3QoKTsKLSAgICBtX2JyaWRnZS5jbGVh
cigpOworICAgIG1fYnJpZGdlID0gbnVsbHB0cjsKIH0KIAogdm9pZCBXb3JrZXJUaHJlYWRhYmxl
V2ViU29ja2V0Q2hhbm5lbDo6c3VzcGVuZCgpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9h
Y2Nlc3NpYmlsaXR5L2F0ay9BWE9iamVjdENhY2hlQXRrLmNwcCBiL1NvdXJjZS9XZWJDb3JlL2Fj
Y2Vzc2liaWxpdHkvYXRrL0FYT2JqZWN0Q2FjaGVBdGsuY3BwCmluZGV4IDJmMzVmNzQwOTc4ZTc4
MzU3NTIxNGM0OTVlNDNlYjQ1NWM5Mjc0YTQuLmJjMzg0MTE4MmFmYjA2NzEwOGExNjcyZTgxYTMy
OGE0ZGUyNGQ5MmQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2FjY2Vzc2liaWxpdHkvYXRr
L0FYT2JqZWN0Q2FjaGVBdGsuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2FjY2Vzc2liaWxpdHkv
YXRrL0FYT2JqZWN0Q2FjaGVBdGsuY3BwCkBAIC0xNTMsNyArMTUzLDcgQEAgc3RhdGljIHZvaWQg
bm90aWZ5Q2hpbGRyZW5TZWxlY3Rpb25DaGFuZ2UoQWNjZXNzaWJpbGl0eU9iamVjdCogb2JqZWN0
KQogCiAgICAgQWNjZXNzaWJpbGl0eU9iamVjdCogbGlzdE9iamVjdCA9IGdldExpc3RPYmplY3Qo
b2JqZWN0KTsKICAgICBpZiAoIWxpc3RPYmplY3QpIHsKLSAgICAgICAgb2xkTGlzdE9iamVjdC5n
ZXQoKSA9IDA7CisgICAgICAgIG9sZExpc3RPYmplY3QuZ2V0KCkgPSBudWxscHRyOwogICAgICAg
ICByZXR1cm47CiAgICAgfQogCkBAIC0xNjYsNyArMTY2LDcgQEAgc3RhdGljIHZvaWQgbm90aWZ5
Q2hpbGRyZW5TZWxlY3Rpb25DaGFuZ2UoQWNjZXNzaWJpbGl0eU9iamVjdCogb2JqZWN0KQogICAg
IC8vIGZ1cnRoZXIgY29tcGFyaXNvbnMgbWFrZSBzZW5zZS4gT3RoZXJ3aXNlLCBqdXN0IHJlc2V0
CiAgICAgLy8gb2xkRm9jdXNlZE9iamVjdCBzbyBpdCB3b24ndCBiZSB0YWtlbiBpbnRvIGFjY291
bnQuCiAgICAgaWYgKG9sZExpc3RPYmplY3QuZ2V0KCkgIT0gbGlzdE9iamVjdCkKLSAgICAgICAg
b2xkRm9jdXNlZE9iamVjdC5nZXQoKSA9IDA7CisgICAgICAgIG9sZEZvY3VzZWRPYmplY3QuZ2V0
KCkgPSBudWxscHRyOwogCiAgICAgQXRrT2JqZWN0KiBheEl0ZW0gPSBpdGVtID8gaXRlbS0+d3Jh
cHBlcigpIDogbnVsbHB0cjsKICAgICBBdGtPYmplY3QqIGF4T2xkRm9jdXNlZE9iamVjdCA9IG9s
ZEZvY3VzZWRPYmplY3QuZ2V0KCkgPyBvbGRGb2N1c2VkT2JqZWN0LmdldCgpLT53cmFwcGVyKCkg
OiBudWxscHRyOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvYmluZGluZ3MvanMvU2NyaXB0
Q29udHJvbGxlci5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9qcy9TY3JpcHRDb250cm9s
bGVyLmNwcAppbmRleCAzYWJkZDJiOWRiNWE2OWFhYzQxOGVhMTlkMjVhNDRmNWJmNTcwOGQzLi5j
NTE5OWNmZGY3OWJkZTQzY2U0ZTZmZjEwZDcwNTUxMGQ2NTQ3NTdkIDEwMDY0NAotLS0gYS9Tb3Vy
Y2UvV2ViQ29yZS9iaW5kaW5ncy9qcy9TY3JpcHRDb250cm9sbGVyLmNwcAorKysgYi9Tb3VyY2Uv
V2ViQ29yZS9iaW5kaW5ncy9qcy9TY3JpcHRDb250cm9sbGVyLmNwcApAQCAtMTAyLDcgKzEwMiw3
IEBAIFNjcmlwdENvbnRyb2xsZXI6On5TY3JpcHRDb250cm9sbGVyKCkKICAgICBpZiAobV9jYWNo
ZWFibGVCaW5kaW5nUm9vdE9iamVjdCkgewogICAgICAgICBKU0xvY2tIb2xkZXIgbG9jayhKU0RP
TVdpbmRvd0Jhc2U6OmNvbW1vblZNKCkpOwogICAgICAgICBtX2NhY2hlYWJsZUJpbmRpbmdSb290
T2JqZWN0LT5pbnZhbGlkYXRlKCk7Ci0gICAgICAgIG1fY2FjaGVhYmxlQmluZGluZ1Jvb3RPYmpl
Y3QgPSAwOworICAgICAgICBtX2NhY2hlYWJsZUJpbmRpbmdSb290T2JqZWN0ID0gbnVsbHB0cjsK
ICAgICB9CiAKICAgICAvLyBJdCdzIGxpa2VseSB0aGF0IGRlc3Ryb3lpbmcgbV93aW5kb3dTaGVs
bHMgd2lsbCBjcmVhdGUgYSBsb3Qgb2YgZ2FyYmFnZS4KQEAgLTQ4OSw3ICs0ODksNyBAQCB2b2lk
IFNjcmlwdENvbnRyb2xsZXI6OmNsZWFyU2NyaXB0T2JqZWN0cygpCiAKICAgICBpZiAobV9iaW5k
aW5nUm9vdE9iamVjdCkgewogICAgICAgICBtX2JpbmRpbmdSb290T2JqZWN0LT5pbnZhbGlkYXRl
KCk7Ci0gICAgICAgIG1fYmluZGluZ1Jvb3RPYmplY3QgPSAwOworICAgICAgICBtX2JpbmRpbmdS
b290T2JqZWN0ID0gbnVsbHB0cjsKICAgICB9CiAKICNpZiBFTkFCTEUoTkVUU0NBUEVfUExVR0lO
X0FQSSkKQEAgLTQ5OCw3ICs0OTgsNyBAQCB2b2lkIFNjcmlwdENvbnRyb2xsZXI6OmNsZWFyU2Ny
aXB0T2JqZWN0cygpCiAgICAgICAgIC8vIHNjcmlwdCBvYmplY3QgcHJvcGVybHkuCiAgICAgICAg
IC8vIFRoaXMgc2hvdWxkbid0IGNhdXNlIGFueSBwcm9ibGVtcyBmb3IgcGx1Z2lucyBzaW5jZSB0
aGV5IHNob3VsZCBoYXZlIGFscmVhZHkgYmVlbiBzdG9wcGVkIGFuZCBkZXN0cm95ZWQgYXQgdGhp
cyBwb2ludC4KICAgICAgICAgX05QTl9EZWFsbG9jYXRlT2JqZWN0KG1fd2luZG93U2NyaXB0TlBP
YmplY3QpOwotICAgICAgICBtX3dpbmRvd1NjcmlwdE5QT2JqZWN0ID0gMDsKKyAgICAgICAgbV93
aW5kb3dTY3JpcHROUE9iamVjdCA9IG51bGxwdHI7CiAgICAgfQogI2VuZGlmCiB9CmRpZmYgLS1n
aXQgYS9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9qcy9XZWJDb3JlSlNDbGllbnREYXRhLmggYi9T
b3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9qcy9XZWJDb3JlSlNDbGllbnREYXRhLmgKaW5kZXggNjU0
NTEzMzVkM2Q4YTkyMWY1ODE2MjJjMjllNDkwMDBiOWE2MzY2Yy4uNDMwMmQ2OGU1YzhjNmQ3ODdk
NDcyNjI0MTRiY2ViOThkMjJlMDE5ZSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvYmluZGlu
Z3MvanMvV2ViQ29yZUpTQ2xpZW50RGF0YS5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdz
L2pzL1dlYkNvcmVKU0NsaWVudERhdGEuaApAQCAtNDQsNyArNDQsNyBAQCBwdWJsaWM6CiAgICAg
ICAgIEFTU0VSVChtX3dvcmxkU2V0LmNvbnRhaW5zKG1fbm9ybWFsV29ybGQuZ2V0KCkpKTsKICAg
ICAgICAgQVNTRVJUKG1fd29ybGRTZXQuc2l6ZSgpID09IDEpOwogICAgICAgICBBU1NFUlQobV9u
b3JtYWxXb3JsZC0+aGFzT25lUmVmKCkpOwotICAgICAgICBtX25vcm1hbFdvcmxkLmNsZWFyKCk7
CisgICAgICAgIG1fbm9ybWFsV29ybGQgPSBudWxscHRyOwogICAgICAgICBBU1NFUlQobV93b3Js
ZFNldC5pc0VtcHR5KCkpOwogICAgIH0KIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvYmlu
ZGluZ3MvanMvV29ya2VyU2NyaXB0Q29udHJvbGxlci5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9iaW5k
aW5ncy9qcy9Xb3JrZXJTY3JpcHRDb250cm9sbGVyLmNwcAppbmRleCA5MGUwZmY1MTA4OGFhNjU0
OTNkZWVjZTVjOTRmOWEwZGMwMDdjZWNhLi4yOGM5ZWYwZjI3MDNmMzIzYzYxYzhmMjI0NTg5Y2M2
OWQ2ZGQ2YmU2IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9qcy9Xb3JrZXJT
Y3JpcHRDb250cm9sbGVyLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9qcy9Xb3Jr
ZXJTY3JpcHRDb250cm9sbGVyLmNwcApAQCAtNjIsNyArNjIsNyBAQCBXb3JrZXJTY3JpcHRDb250
cm9sbGVyOjp+V29ya2VyU2NyaXB0Q29udHJvbGxlcigpCiB7CiAgICAgSlNMb2NrSG9sZGVyIGxv
Y2sodm0oKSk7CiAgICAgbV93b3JrZXJHbG9iYWxTY29wZVdyYXBwZXIuY2xlYXIoKTsKLSAgICBt
X3ZtLmNsZWFyKCk7CisgICAgbV92bSA9IG51bGxwdHI7CiB9CiAKIHZvaWQgV29ya2VyU2NyaXB0
Q29udHJvbGxlcjo6aW5pdFNjcmlwdCgpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9icmlk
Z2UvcnVudGltZV9vYmplY3QuY3BwIGIvU291cmNlL1dlYkNvcmUvYnJpZGdlL3J1bnRpbWVfb2Jq
ZWN0LmNwcAppbmRleCA5MWYwN2JjNTM3Y2YwZjNmMjAzMGY1ZWQ0ZmVlYzYzMjcyNGViMjM4Li41
ZDBmYTRmODEyYTlhZGZiOGYyNmE5NzUxZTg5ZDZlYmRkZWZmZDYyIDEwMDY0NAotLS0gYS9Tb3Vy
Y2UvV2ViQ29yZS9icmlkZ2UvcnVudGltZV9vYmplY3QuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3Jl
L2JyaWRnZS9ydW50aW1lX29iamVjdC5jcHAKQEAgLTU5LDcgKzU5LDcgQEAgdm9pZCBSdW50aW1l
T2JqZWN0OjppbnZhbGlkYXRlKCkKICAgICBBU1NFUlQobV9pbnN0YW5jZSk7CiAgICAgaWYgKG1f
aW5zdGFuY2UpCiAgICAgICAgIG1faW5zdGFuY2UtPndpbGxJbnZhbGlkYXRlUnVudGltZU9iamVj
dCgpOwotICAgIG1faW5zdGFuY2UgPSAwOworICAgIG1faW5zdGFuY2UgPSBudWxscHRyOwogfQog
CiBFbmNvZGVkSlNWYWx1ZSBSdW50aW1lT2JqZWN0OjpmYWxsYmFja09iamVjdEdldHRlcihFeGVj
U3RhdGUqIGV4ZWMsIEpTT2JqZWN0KiBzbG90QmFzZSwgRW5jb2RlZEpTVmFsdWUsIFByb3BlcnR5
TmFtZSBwcm9wZXJ0eU5hbWUpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9jb250ZW50ZXh0
ZW5zaW9ucy9Db250ZW50RXh0ZW5zaW9uUGFyc2VyLmNwcCBiL1NvdXJjZS9XZWJDb3JlL2NvbnRl
bnRleHRlbnNpb25zL0NvbnRlbnRFeHRlbnNpb25QYXJzZXIuY3BwCmluZGV4IDAyMjY1MmIyZDY5
Zjg5MWNlYTczOTRhMTA5ZDdmYmRmNTAxMmFiMjUuLjdiZjU2ZTdkNGIyZTY3ODZjMzNmN2U4OTUy
ZmM4NTQ3Mjg4YjVmMmIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2NvbnRlbnRleHRlbnNp
b25zL0NvbnRlbnRFeHRlbnNpb25QYXJzZXIuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2NvbnRl
bnRleHRlbnNpb25zL0NvbnRlbnRFeHRlbnNpb25QYXJzZXIuY3BwCkBAIC0yNzcsNyArMjc3LDcg
QEAgc3RkOjplcnJvcl9jb2RlIHBhcnNlUnVsZUxpc3QoY29uc3QgU3RyaW5nJiBydWxlcywgVmVj
dG9yPENvbnRlbnRFeHRlbnNpb25SdWxlPiYKICAgICBFeGVjU3RhdGUqIGV4ZWMgPSBnbG9iYWxP
YmplY3QtPmdsb2JhbEV4ZWMoKTsKICAgICBhdXRvIGVycm9yID0gbG9hZEVuY29kZWRSdWxlcygq
ZXhlYywgcnVsZXMsIHJ1bGVMaXN0KTsKIAotICAgIHZtLmNsZWFyKCk7CisgICAgdm0gPSBudWxs
cHRyOwogCiAgICAgaWYgKGVycm9yKQogICAgICAgICByZXR1cm4gZXJyb3I7CmRpZmYgLS1naXQg
YS9Tb3VyY2UvV2ViQ29yZS9jc3MvQ1NTUGFyc2VyLmNwcCBiL1NvdXJjZS9XZWJDb3JlL2Nzcy9D
U1NQYXJzZXIuY3BwCmluZGV4IDVlOGYwNWNlMDgxNmU3MTYwZTUzZTQ0M2EwYjEzZTQ0Yjg0MmY1
NjcuLjljYzMwOGI0ZjgzYTA5MDlmZDMzYWQzMTA2ZjhmOTZjZDRlNTA3YTEgMTAwNjQ0Ci0tLSBh
L1NvdXJjZS9XZWJDb3JlL2Nzcy9DU1NQYXJzZXIuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2Nz
cy9DU1NQYXJzZXIuY3BwCkBAIC00NTAyLDE1ICs0NTAyLDE1IEBAIHZvaWQgQ1NTUGFyc2VyOjpw
YXJzZUZpbGxQb3NpdGlvbihDU1NQYXJzZXJWYWx1ZUxpc3QmIHZhbHVlTGlzdCwgUmVmUHRyPENT
U1ZhbHVlCiAgICAgaWYgKHZhbHVlMikKICAgICAgICAgdmFsdWVMaXN0Lm5leHQoKTsKICAgICBl
bHNlIHsKLSAgICAgICAgdmFsdWUxLmNsZWFyKCk7CisgICAgICAgIHZhbHVlMSA9IG51bGxwdHI7
CiAgICAgICAgIHJldHVybjsKICAgICB9CiAKICAgICBSZWZQdHI8Q1NTUHJpbWl0aXZlVmFsdWU+
IHBhcnNlZFZhbHVlMSA9IGRvd25jYXN0PENTU1ByaW1pdGl2ZVZhbHVlPih2YWx1ZTEuZ2V0KCkp
OwogICAgIFJlZlB0cjxDU1NQcmltaXRpdmVWYWx1ZT4gcGFyc2VkVmFsdWUyID0gZG93bmNhc3Q8
Q1NTUHJpbWl0aXZlVmFsdWU+KHZhbHVlMi5nZXQoKSk7CiAKLSAgICB2YWx1ZTEuY2xlYXIoKTsK
LSAgICB2YWx1ZTIuY2xlYXIoKTsKKyAgICB2YWx1ZTEgPSBudWxscHRyOworICAgIHZhbHVlMiA9
IG51bGxwdHI7CiAKICAgICAvLyBQZXIgQ1NTMyBzeW50YXgsIDxwb3NpdGlvbj4gY2FuJ3QgaGF2
ZSAnY2VudGVyJyBhcyBpdHMgc2Vjb25kIGtleXdvcmQgYXMgd2UgaGF2ZSBtb3JlIGFyZ3VtZW50
cyB0byBmb2xsb3cuCiAgICAgaWYgKHBhcnNlZFZhbHVlMi0+Z2V0VmFsdWVJRCgpID09IENTU1Zh
bHVlQ2VudGVyKQpAQCAtNDU0OSw3ICs0NTQ5LDcgQEAgdm9pZCBDU1NQYXJzZXI6OnBhcnNlMlZh
bHVlc0ZpbGxQb3NpdGlvbihDU1NQYXJzZXJWYWx1ZUxpc3QmIHZhbHVlTGlzdCwgUmVmUHRyPEMK
ICAgICAgICAgICAgIHZhbHVlTGlzdC5uZXh0KCk7CiAgICAgICAgIGVsc2UgewogICAgICAgICAg
ICAgaWYgKCFpblNob3J0aGFuZCgpKSB7Ci0gICAgICAgICAgICAgICAgdmFsdWUxLmNsZWFyKCk7
CisgICAgICAgICAgICAgICAgdmFsdWUxID0gbnVsbHB0cjsKICAgICAgICAgICAgICAgICByZXR1
cm47CiAgICAgICAgICAgICB9CiAgICAgICAgIH0KQEAgLTc1ODcsOCArNzU4Nyw4IEBAIHN0cnVj
dCBTaGFkb3dQYXJzZUNvbnRleHQgewogICAgICAgICB9CiAKICAgICAgICAgLy8gTm93IHJlc2V0
IGZvciB0aGUgbmV4dCBzaGFkb3cgdmFsdWUuCi0gICAgICAgIHggPSAwOwotICAgICAgICB5ID0g
MDsKKyAgICAgICAgeCA9IG51bGxwdHI7CisgICAgICAgIHkgPSBudWxscHRyOwogICAgICAgICBi
bHVyID0gbnVsbHB0cjsKICAgICAgICAgc3ByZWFkID0gbnVsbHB0cjsKICAgICAgICAgc3R5bGUg
PSBudWxscHRyOwpAQCAtMTIxODQsNyArMTIxODQsNyBAQCBQYXNzUmVmUHRyPENTU1J1bGVTb3Vy
Y2VEYXRhPiBDU1NQYXJzZXI6OnBvcFJ1bGVEYXRhKCkKICAgICAgICAgcmV0dXJuIG51bGxwdHI7
CiAKICAgICBBU1NFUlQoIW1fY3VycmVudFJ1bGVEYXRhU3RhY2stPmlzRW1wdHkoKSk7Ci0gICAg
bV9jdXJyZW50UnVsZURhdGEuY2xlYXIoKTsKKyAgICBtX2N1cnJlbnRSdWxlRGF0YSA9IG51bGxw
dHI7CiAgICAgUmVmUHRyPENTU1J1bGVTb3VyY2VEYXRhPiBkYXRhID0gbV9jdXJyZW50UnVsZURh
dGFTdGFjay0+bGFzdCgpOwogICAgIG1fY3VycmVudFJ1bGVEYXRhU3RhY2stPnJlbW92ZUxhc3Qo
KTsKICAgICByZXR1cm4gZGF0YS5yZWxlYXNlKCk7CkBAIC0xMjYwNSw3ICsxMjYwNSw3IEBAIHZv
aWQgQ1NTUGFyc2VyOjptYXJrUnVsZUJvZHlTdGFydCgpCiB7CiAgICAgaWYgKCFpc0V4dHJhY3Rp
bmdTb3VyY2VEYXRhKCkpCiAgICAgICAgIHJldHVybjsKLSAgICBtX2N1cnJlbnRSdWxlRGF0YS5j
bGVhcigpOworICAgIG1fY3VycmVudFJ1bGVEYXRhID0gbnVsbHB0cjsKICAgICB1bnNpZ25lZCBv
ZmZzZXQgPSB0b2tlblN0YXJ0T2Zmc2V0KCk7CiAgICAgaWYgKHRva2VuU3RhcnRDaGFyKCkgPT0g
J3snKQogICAgICAgICArK29mZnNldDsgLy8gU2tpcCB0aGUgcnVsZSBib2R5IG9wZW5pbmcgYnJh
Y2UuCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9jc3MvQ1NTVmFsdWVQb29sLmNwcCBiL1Nv
dXJjZS9XZWJDb3JlL2Nzcy9DU1NWYWx1ZVBvb2wuY3BwCmluZGV4IDFmNDEzMTE1YTM2ZDBmNDk0
M2NiNTM3YTk5NDY4OWRkYzg2ZmQ5ZDEuLmFlM2UwZmQ0YWViNjBkNmRjODg2ZGM5MWI5YjAwNGM1
ZjVjNDkxZGEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2Nzcy9DU1NWYWx1ZVBvb2wuY3Bw
CisrKyBiL1NvdXJjZS9XZWJDb3JlL2Nzcy9DU1NWYWx1ZVBvb2wuY3BwCkBAIC0xNTMsMTIgKzE1
MywxMiBAQCB2b2lkIENTU1ZhbHVlUG9vbDo6ZHJhaW4oKQogICAgIG1fZm9udEZhbWlseVZhbHVl
Q2FjaGUuY2xlYXIoKTsKIAogICAgIGZvciAoaW50IGkgPSAwOyBpIDwgbnVtQ1NTVmFsdWVLZXl3
b3JkczsgKytpKQotICAgICAgICBtX2lkZW50aWZpZXJWYWx1ZUNhY2hlW2ldID0gMDsKKyAgICAg
ICAgbV9pZGVudGlmaWVyVmFsdWVDYWNoZVtpXSA9IG51bGxwdHI7CiAKICAgICBmb3IgKGludCBp
ID0gMDsgaSA8IG1heGltdW1DYWNoZWFibGVJbnRlZ2VyVmFsdWU7ICsraSkgewotICAgICAgICBt
X3BpeGVsVmFsdWVDYWNoZVtpXSA9IDA7Ci0gICAgICAgIG1fcGVyY2VudFZhbHVlQ2FjaGVbaV0g
PSAwOwotICAgICAgICBtX251bWJlclZhbHVlQ2FjaGVbaV0gPSAwOworICAgICAgICBtX3BpeGVs
VmFsdWVDYWNoZVtpXSA9IG51bGxwdHI7CisgICAgICAgIG1fcGVyY2VudFZhbHVlQ2FjaGVbaV0g
PSBudWxscHRyOworICAgICAgICBtX251bWJlclZhbHVlQ2FjaGVbaV0gPSBudWxscHRyOwogICAg
IH0KIH0KIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvY3NzL1N0eWxlUHJvcGVydGllcy5j
cHAgYi9Tb3VyY2UvV2ViQ29yZS9jc3MvU3R5bGVQcm9wZXJ0aWVzLmNwcAppbmRleCBiOTA5MDhk
MzFkOGUxZGJmNmE1OTRkMDQ3Nzk4OTJkZDJhYTdhMDVjLi5kZWRkMDcwMDdhZTVlOTVlM2E0ZTQ4
ODQyMWU4OGE1YWVkMzdkMzY0IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9jc3MvU3R5bGVQ
cm9wZXJ0aWVzLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9jc3MvU3R5bGVQcm9wZXJ0aWVzLmNw
cApAQCAtMzk3LDkgKzM5Nyw5IEBAIFN0cmluZyBTdHlsZVByb3BlcnRpZXM6OmdldExheWVyZWRT
aG9ydGhhbmRWYWx1ZShjb25zdCBTdHlsZVByb3BlcnR5U2hvcnRoYW5kJiBzCiAgICAgICAgICAg
ICAgICAgICAgIC8vIENvbG9yIG9ubHkgYmVsb25ncyBpbiB0aGUgbGFzdCBsYXllci4KICAgICAg
ICAgICAgICAgICAgICAgaWYgKHNob3J0aGFuZC5wcm9wZXJ0aWVzKClbal0gPT0gQ1NTUHJvcGVy
dHlCYWNrZ3JvdW5kQ29sb3IpIHsKICAgICAgICAgICAgICAgICAgICAgICAgIGlmIChpICE9IG51
bUxheWVycyAtIDEpCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgdmFsdWUgPSAwOworICAg
ICAgICAgICAgICAgICAgICAgICAgICAgIHZhbHVlID0gbnVsbHB0cjsKICAgICAgICAgICAgICAg
ICAgICAgfSBlbHNlIGlmIChpKSAvLyBPdGhlciBzaW5nbGV0b25zIG9ubHkgYmVsb25nIGluIHRo
ZSBmaXJzdCBsYXllci4KLSAgICAgICAgICAgICAgICAgICAgICAgIHZhbHVlID0gMDsKKyAgICAg
ICAgICAgICAgICAgICAgICAgIHZhbHVlID0gbnVsbHB0cjsKICAgICAgICAgICAgICAgICB9CiAg
ICAgICAgICAgICB9CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2Nzcy9WaWV3cG9ydFN0
eWxlUmVzb2x2ZXIuY3BwIGIvU291cmNlL1dlYkNvcmUvY3NzL1ZpZXdwb3J0U3R5bGVSZXNvbHZl
ci5jcHAKaW5kZXggZjg5ZWZmMDA4NjNhYzg5ZGI3NzhkYjMyM2ZlNzg1MDE1NjZhZGYwOS4uZGJi
NmNjNGRmNDQwNDE1YTRiYzQwZTBjOWUwZGFhNmMxMmE1NjliYSAxMDA2NDQKLS0tIGEvU291cmNl
L1dlYkNvcmUvY3NzL1ZpZXdwb3J0U3R5bGVSZXNvbHZlci5jcHAKKysrIGIvU291cmNlL1dlYkNv
cmUvY3NzL1ZpZXdwb3J0U3R5bGVSZXNvbHZlci5jcHAKQEAgLTcxLDcgKzcxLDcgQEAgdm9pZCBW
aWV3cG9ydFN0eWxlUmVzb2x2ZXI6OmFkZFZpZXdwb3J0UnVsZShTdHlsZVJ1bGVWaWV3cG9ydCog
dmlld3BvcnRSdWxlKQogCiB2b2lkIFZpZXdwb3J0U3R5bGVSZXNvbHZlcjo6Y2xlYXJEb2N1bWVu
dCgpCiB7Ci0gICAgbV9kb2N1bWVudCA9IDA7CisgICAgbV9kb2N1bWVudCA9IG51bGxwdHI7CiB9
CiAKIHZvaWQgVmlld3BvcnRTdHlsZVJlc29sdmVyOjpyZXNvbHZlKCkKQEAgLTk0LDcgKzk0LDcg
QEAgdm9pZCBWaWV3cG9ydFN0eWxlUmVzb2x2ZXI6OnJlc29sdmUoKQogICAgIG1fZG9jdW1lbnQt
PnNldFZpZXdwb3J0QXJndW1lbnRzKGFyZ3VtZW50cyk7CiAgICAgbV9kb2N1bWVudC0+dXBkYXRl
Vmlld3BvcnRBcmd1bWVudHMoKTsKIAotICAgIG1fcHJvcGVydHlTZXQgPSAwOworICAgIG1fcHJv
cGVydHlTZXQgPSBudWxscHRyOwogfQogCiBmbG9hdCBWaWV3cG9ydFN0eWxlUmVzb2x2ZXI6Omdl
dFZpZXdwb3J0QXJndW1lbnRWYWx1ZShDU1NQcm9wZXJ0eUlEIGlkKSBjb25zdApkaWZmIC0tZ2l0
IGEvU291cmNlL1dlYkNvcmUvZG9tL0RvY3VtZW50LmNwcCBiL1NvdXJjZS9XZWJDb3JlL2RvbS9E
b2N1bWVudC5jcHAKaW5kZXggZTUwMjY2OTYxMmQ3YzRjNTgyODM0YTRjMWIxOWJiMDM4OTRlZGFm
OS4uZjY0MGI3Y2ZiZGYxNDE4OWMxZTk4OGY0ZWJhZGI0ZGM1MjhhZTFiYSAxMDA2NDQKLS0tIGEv
U291cmNlL1dlYkNvcmUvZG9tL0RvY3VtZW50LmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9kb20v
RG9jdW1lbnQuY3BwCkBAIC0yNDI0LDcgKzI0MjQsNyBAQCB2b2lkIERvY3VtZW50OjpkZXRhY2hQ
YXJzZXIoKQogICAgIGlmICghbV9wYXJzZXIpCiAgICAgICAgIHJldHVybjsKICAgICBtX3BhcnNl
ci0+ZGV0YWNoKCk7Ci0gICAgbV9wYXJzZXIuY2xlYXIoKTsKKyAgICBtX3BhcnNlciA9IG51bGxw
dHI7CiB9CiAKIHZvaWQgRG9jdW1lbnQ6OmNhbmNlbFBhcnNpbmcoKQpAQCAtNTg4Miw3ICs1ODgy
LDcgQEAgdm9pZCBEb2N1bWVudDo6Y2xlYXJTY3JpcHRlZEFuaW1hdGlvbkNvbnRyb2xsZXIoKQog
ICAgIC8vIEZJWE1FOiBjb25zaWRlciB1c2luZyBBY3RpdmVET01PYmplY3QuCiAgICAgaWYgKG1f
c2NyaXB0ZWRBbmltYXRpb25Db250cm9sbGVyKQogICAgICAgICBtX3NjcmlwdGVkQW5pbWF0aW9u
Q29udHJvbGxlci0+Y2xlYXJEb2N1bWVudFBvaW50ZXIoKTsKLSAgICBtX3NjcmlwdGVkQW5pbWF0
aW9uQ29udHJvbGxlci5jbGVhcigpOworICAgIG1fc2NyaXB0ZWRBbmltYXRpb25Db250cm9sbGVy
ID0gbnVsbHB0cjsKIH0KICNlbmRpZgogICAgIApAQCAtNjMwMCw3ICs2MzAwLDcgQEAgdm9pZCBE
b2N1bWVudDo6dXBkYXRlSG92ZXJBY3RpdmVTdGF0ZShjb25zdCBIaXRUZXN0UmVxdWVzdCYgcmVx
dWVzdCwgRWxlbWVudCogaW4KICAgICAgICAgICAgIGN1cnItPnNldEFjdGl2ZShmYWxzZSk7CiAg
ICAgICAgICAgICBtX3VzZXJBY3Rpb25FbGVtZW50cy5zZXRJbkFjdGl2ZUNoYWluKGN1cnIsIGZh
bHNlKTsKICAgICAgICAgfQotICAgICAgICBtX2FjdGl2ZUVsZW1lbnQuY2xlYXIoKTsKKyAgICAg
ICAgbV9hY3RpdmVFbGVtZW50ID0gbnVsbHB0cjsKICAgICB9IGVsc2UgewogICAgICAgICBFbGVt
ZW50KiBuZXdBY3RpdmVFbGVtZW50ID0gaW5uZXJFbGVtZW50SW5Eb2N1bWVudDsKICAgICAgICAg
aWYgKCFvbGRBY3RpdmVFbGVtZW50ICYmIG5ld0FjdGl2ZUVsZW1lbnQgJiYgcmVxdWVzdC5hY3Rp
dmUoKSAmJiAhcmVxdWVzdC50b3VjaE1vdmUoKSkgewpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNv
cmUvZG9tL0RvY3VtZW50TWFya2VyLmggYi9Tb3VyY2UvV2ViQ29yZS9kb20vRG9jdW1lbnRNYXJr
ZXIuaAppbmRleCA0Nzk0OWZlODBiZGQ5YjExZTY4ZGFlNjI1NmVhMmIzMzA2ZmJiNDYzLi5lYzUy
NDg5NDBjMTY3ZWQxYzZjYTAyYjMxZGM0ZTQ3Mzc5YTU1NDE5IDEwMDY0NAotLS0gYS9Tb3VyY2Uv
V2ViQ29yZS9kb20vRG9jdW1lbnRNYXJrZXIuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9kb20vRG9j
dW1lbnRNYXJrZXIuaApAQCAtMTMxLDcgKzEzMSw3IEBAIHB1YmxpYzoKICAgICBEb2N1bWVudE1h
cmtlckRldGFpbHMqIGRldGFpbHMoKSBjb25zdDsKIAogICAgIHZvaWQgc2V0QWN0aXZlTWF0Y2go
Ym9vbCk7Ci0gICAgdm9pZCBjbGVhckRldGFpbHMoKSB7IG1fZGV0YWlscy5jbGVhcigpOyB9Cisg
ICAgdm9pZCBjbGVhckRldGFpbHMoKSB7IG1fZGV0YWlscyA9IG51bGxwdHI7IH0KIAogICAgIC8v
IE9mZnNldCBtb2RpZmljYXRpb25zIGFyZSBkb25lIGJ5IERvY3VtZW50TWFya2VyQ29udHJvbGxl
ci4KICAgICAvLyBPdGhlciBjbGFzc2VzIHNob3VsZCBub3QgY2FsbCBmb2xsb3dpbmcgc2V0dGVy
cy4KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2RvbS9Eb2N1bWVudFN0eWxlU2hlZXRDb2xs
ZWN0aW9uLmNwcCBiL1NvdXJjZS9XZWJDb3JlL2RvbS9Eb2N1bWVudFN0eWxlU2hlZXRDb2xsZWN0
aW9uLmNwcAppbmRleCAxY2JiZTg1MTU1MjVlMGExNTMyYzIyODM2ZjBlN2IzYWEzYmVkZWJhLi4z
MjJhYzg0YmQzMWI2ZWMyZDAzMmQxOWJmYzJhY2JmMzkzM2ZiNGE0IDEwMDY0NAotLS0gYS9Tb3Vy
Y2UvV2ViQ29yZS9kb20vRG9jdW1lbnRTdHlsZVNoZWV0Q29sbGVjdGlvbi5jcHAKKysrIGIvU291
cmNlL1dlYkNvcmUvZG9tL0RvY3VtZW50U3R5bGVTaGVldENvbGxlY3Rpb24uY3BwCkBAIC0xMDQs
NyArMTA0LDcgQEAgQ1NTU3R5bGVTaGVldCogRG9jdW1lbnRTdHlsZVNoZWV0Q29sbGVjdGlvbjo6
cGFnZVVzZXJTaGVldCgpCiB2b2lkIERvY3VtZW50U3R5bGVTaGVldENvbGxlY3Rpb246OmNsZWFy
UGFnZVVzZXJTaGVldCgpCiB7CiAgICAgaWYgKG1fcGFnZVVzZXJTaGVldCkgewotICAgICAgICBt
X3BhZ2VVc2VyU2hlZXQgPSAwOworICAgICAgICBtX3BhZ2VVc2VyU2hlZXQgPSBudWxscHRyOwog
ICAgICAgICBtX2RvY3VtZW50LnN0eWxlUmVzb2x2ZXJDaGFuZ2VkKERlZmVyUmVjYWxjU3R5bGUp
OwogICAgIH0KIH0KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2RvbS9FbGVtZW50LmNwcCBi
L1NvdXJjZS9XZWJDb3JlL2RvbS9FbGVtZW50LmNwcAppbmRleCBiZTg4NGViNTcxYTQwMmZiYjg3
YjFlZGFmYzJkNWI0MzAyNGY4Mzk4Li42YzhjOWUxNzBiYzllYjYxYmM1N2IwMjAwMDk5OTBmYjMy
OGIzMjk0IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9kb20vRWxlbWVudC5jcHAKKysrIGIv
U291cmNlL1dlYkNvcmUvZG9tL0VsZW1lbnQuY3BwCkBAIC0zMjA3LDcgKzMyMDcsNyBAQCB2b2lk
IEVsZW1lbnQ6OmNsb25lQXR0cmlidXRlc0Zyb21FbGVtZW50KGNvbnN0IEVsZW1lbnQmIG90aGVy
KQogCiAgICAgb3RoZXIuc3luY2hyb25pemVBbGxBdHRyaWJ1dGVzKCk7CiAgICAgaWYgKCFvdGhl
ci5tX2VsZW1lbnREYXRhKSB7Ci0gICAgICAgIG1fZWxlbWVudERhdGEuY2xlYXIoKTsKKyAgICAg
ICAgbV9lbGVtZW50RGF0YSA9IG51bGxwdHI7CiAgICAgICAgIHJldHVybjsKICAgICB9CiAKZGlm
ZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2RvbS9NdXRhdGlvbk9ic2VydmVyUmVnaXN0cmF0aW9u
LmNwcCBiL1NvdXJjZS9XZWJDb3JlL2RvbS9NdXRhdGlvbk9ic2VydmVyUmVnaXN0cmF0aW9uLmNw
cAppbmRleCA0NGU4ZjcwZmNiNmM0ODRjYmIwMmE3OTgzN2EzMzI1YzIxNzNmZjE0Li43MGEzMWRl
Y2FjMzVmMWRlYWJmODhkMGU4YTg4NWZiN2ZhODM0MTNkIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2Vi
Q29yZS9kb20vTXV0YXRpb25PYnNlcnZlclJlZ2lzdHJhdGlvbi5jcHAKKysrIGIvU291cmNlL1dl
YkNvcmUvZG9tL011dGF0aW9uT2JzZXJ2ZXJSZWdpc3RyYXRpb24uY3BwCkBAIC04OSw3ICs4OSw3
IEBAIHZvaWQgTXV0YXRpb25PYnNlcnZlclJlZ2lzdHJhdGlvbjo6Y2xlYXJUcmFuc2llbnRSZWdp
c3RyYXRpb25zKCkKICAgICBtX3RyYW5zaWVudFJlZ2lzdHJhdGlvbk5vZGVzID0gbnVsbHB0cjsK
IAogICAgIEFTU0VSVChtX3JlZ2lzdHJhdGlvbk5vZGVLZWVwQWxpdmUpOwotICAgIG1fcmVnaXN0
cmF0aW9uTm9kZUtlZXBBbGl2ZSA9IDA7IC8vIEJhbGFuY2VkIGluIG9ic2VydmVTdWJ0cmVlTm9k
ZVdpbGxEZXRhY2guCisgICAgbV9yZWdpc3RyYXRpb25Ob2RlS2VlcEFsaXZlID0gbnVsbHB0cjsg
Ly8gQmFsYW5jZWQgaW4gb2JzZXJ2ZVN1YnRyZWVOb2RlV2lsbERldGFjaC4KIH0KIAogdm9pZCBN
dXRhdGlvbk9ic2VydmVyUmVnaXN0cmF0aW9uOjp1bnJlZ2lzdGVyQW5kRGVsZXRlKE11dGF0aW9u
T2JzZXJ2ZXJSZWdpc3RyYXRpb24qIHJlZ2lzdHJ5KQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNv
cmUvZG9tL05vZGVJdGVyYXRvci5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9kb20vTm9kZUl0ZXJhdG9y
LmNwcAppbmRleCA1OGIyYjlmNjRjNzZlN2VjNjhhNzRmY2U2ZWVjNDU3NzY4YzVmZmEzLi42MWFl
MjhmNmY4ZTk4OTdjNGVhNjAxYjM1M2NkYTA5MWY0MjE0Y2UyIDEwMDY0NAotLS0gYS9Tb3VyY2Uv
V2ViQ29yZS9kb20vTm9kZUl0ZXJhdG9yLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9kb20vTm9k
ZUl0ZXJhdG9yLmNwcApAQCAtNDUsNyArNDUsNyBAQCBOb2RlSXRlcmF0b3I6Ok5vZGVQb2ludGVy
OjpOb2RlUG9pbnRlcihQYXNzUmVmUHRyPE5vZGU+IG4sIGJvb2wgYikKIAogdm9pZCBOb2RlSXRl
cmF0b3I6Ok5vZGVQb2ludGVyOjpjbGVhcigpCiB7Ci0gICAgbm9kZS5jbGVhcigpOworICAgIG5v
ZGUgPSBudWxscHRyOwogfQogCiBib29sIE5vZGVJdGVyYXRvcjo6Tm9kZVBvaW50ZXI6Om1vdmVU
b05leHQoTm9kZSogcm9vdCkKQEAgLTE1MSw3ICsxNTEsNyBAQCB2b2lkIE5vZGVJdGVyYXRvcjo6
ZGV0YWNoKCkKIHsKICAgICByb290KCktPmRvY3VtZW50KCkuZGV0YWNoTm9kZUl0ZXJhdG9yKHRo
aXMpOwogICAgIG1fZGV0YWNoZWQgPSB0cnVlOwotICAgIG1fcmVmZXJlbmNlTm9kZS5ub2RlLmNs
ZWFyKCk7CisgICAgbV9yZWZlcmVuY2VOb2RlLm5vZGUgPSBudWxscHRyOwogfQogCiB2b2lkIE5v
ZGVJdGVyYXRvcjo6bm9kZVdpbGxCZVJlbW92ZWQoTm9kZSYgcmVtb3ZlZE5vZGUpCmRpZmYgLS1n
aXQgYS9Tb3VyY2UvV2ViQ29yZS9kb20vUG9zaXRpb24uaCBiL1NvdXJjZS9XZWJDb3JlL2RvbS9Q
b3NpdGlvbi5oCmluZGV4IDBmMzE2ZGE4NTg4YTUxOTI5ZmQ0NzUxYzlmY2IzM2I5OTE2NzMzZWIu
LjYwM2U4OGYzZWMxYjFhYzNhYTkyMjkwNWMwMTM4MTIzODQyMGRkZWIgMTAwNjQ0Ci0tLSBhL1Nv
dXJjZS9XZWJDb3JlL2RvbS9Qb3NpdGlvbi5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL2RvbS9Qb3Np
dGlvbi5oCkBAIC05Miw3ICs5Miw3IEBAIHB1YmxpYzoKIAogICAgIEFuY2hvclR5cGUgYW5jaG9y
VHlwZSgpIGNvbnN0IHsgcmV0dXJuIHN0YXRpY19jYXN0PEFuY2hvclR5cGU+KG1fYW5jaG9yVHlw
ZSk7IH0KIAotICAgIHZvaWQgY2xlYXIoKSB7IG1fYW5jaG9yTm9kZS5jbGVhcigpOyBtX29mZnNl
dCA9IDA7IG1fYW5jaG9yVHlwZSA9IFBvc2l0aW9uSXNPZmZzZXRJbkFuY2hvcjsgbV9pc0xlZ2Fj
eUVkaXRpbmdQb3NpdGlvbiA9IGZhbHNlOyB9CisgICAgdm9pZCBjbGVhcigpIHsgbV9hbmNob3JO
b2RlID0gbnVsbHB0cjsgbV9vZmZzZXQgPSAwOyBtX2FuY2hvclR5cGUgPSBQb3NpdGlvbklzT2Zm
c2V0SW5BbmNob3I7IG1faXNMZWdhY3lFZGl0aW5nUG9zaXRpb24gPSBmYWxzZTsgfQogCiAgICAg
Ly8gVGhlc2UgYXJlIGFsd2F5cyBET00gY29tcGxpYW50IHZhbHVlcy4gIEVkaXRpbmcgcG9zaXRp
b25zIGxpa2UgW2ltZywgMF0gKGFrYSBbaW1nLCBiZWZvcmVdKQogICAgIC8vIHdpbGwgcmV0dXJu
IGltZy0+cGFyZW50Tm9kZSgpIGFuZCBpbWctPmNvbXB1dGVOb2RlSW5kZXgoKSBmcm9tIHRoZXNl
IGZ1bmN0aW9ucy4KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2RvbS9Qcm9jZXNzaW5nSW5z
dHJ1Y3Rpb24uY3BwIGIvU291cmNlL1dlYkNvcmUvZG9tL1Byb2Nlc3NpbmdJbnN0cnVjdGlvbi5j
cHAKaW5kZXggM2VjYjY0NjM5Y2ZhYmE2MGE1ZDNiNjZlMmZhZGU1MGRkY2I3ZjFiMC4uYjM0M2Nh
M2EwMWFlOGVlZmRiNTk3ZTVkNGUyMmUyN2I5OTNmZWY5MCAxMDA2NDQKLS0tIGEvU291cmNlL1dl
YkNvcmUvZG9tL1Byb2Nlc3NpbmdJbnN0cnVjdGlvbi5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUv
ZG9tL1Byb2Nlc3NpbmdJbnN0cnVjdGlvbi5jcHAKQEAgLTI4MSw3ICsyODEsNyBAQCB2b2lkIFBy
b2Nlc3NpbmdJbnN0cnVjdGlvbjo6cmVtb3ZlZEZyb20oQ29udGFpbmVyTm9kZSYgaW5zZXJ0aW9u
UG9pbnQpCiAgICAgaWYgKG1fc2hlZXQpIHsKICAgICAgICAgQVNTRVJUKG1fc2hlZXQtPm93bmVy
Tm9kZSgpID09IHRoaXMpOwogICAgICAgICBtX3NoZWV0LT5jbGVhck93bmVyTm9kZSgpOwotICAg
ICAgICBtX3NoZWV0ID0gMDsKKyAgICAgICAgbV9zaGVldCA9IG51bGxwdHI7CiAgICAgfQogCiAg
ICAgLy8gSWYgd2UncmUgaW4gZG9jdW1lbnQgdGVhcmRvd24sIHRoZW4gd2UgZG9uJ3QgbmVlZCB0
byBkbyBhbnkgbm90aWZpY2F0aW9uIG9mIG91ciBzaGVldCdzIHJlbW92YWwuCmRpZmYgLS1naXQg
YS9Tb3VyY2UvV2ViQ29yZS9kb20vUmFuZ2VCb3VuZGFyeVBvaW50LmggYi9Tb3VyY2UvV2ViQ29y
ZS9kb20vUmFuZ2VCb3VuZGFyeVBvaW50LmgKaW5kZXggYjA0ZGMwOGI1NWJmMDIxY2NkZGZiMjZh
ZWU1ZDM4NGIxMTI2YWUwMy4uNWIxNGEzZGZjMWUyZTI5ZjE0NzliZjQ2YzljZThiYWQ3ZGJlZWIx
OSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvZG9tL1JhbmdlQm91bmRhcnlQb2ludC5oCisr
KyBiL1NvdXJjZS9XZWJDb3JlL2RvbS9SYW5nZUJvdW5kYXJ5UG9pbnQuaApAQCAtMTEyLDkgKzEx
Miw5IEBAIGlubGluZSBpbnQgUmFuZ2VCb3VuZGFyeVBvaW50OjpvZmZzZXQoKSBjb25zdAogCiBp
bmxpbmUgdm9pZCBSYW5nZUJvdW5kYXJ5UG9pbnQ6OmNsZWFyKCkKIHsKLSAgICBtX2NvbnRhaW5l
ck5vZGUuY2xlYXIoKTsKKyAgICBtX2NvbnRhaW5lck5vZGUgPSBudWxscHRyOwogICAgIG1fb2Zm
c2V0SW5Db250YWluZXIgPSAwOwotICAgIG1fY2hpbGRCZWZvcmVCb3VuZGFyeSA9IDA7CisgICAg
bV9jaGlsZEJlZm9yZUJvdW5kYXJ5ID0gbnVsbHB0cjsKIH0KIAogaW5saW5lIHZvaWQgUmFuZ2VC
b3VuZGFyeVBvaW50OjpzZXQoUGFzc1JlZlB0cjxOb2RlPiBjb250YWluZXIsIGludCBvZmZzZXQs
IE5vZGUqIGNoaWxkQmVmb3JlKQpAQCAtMTQ5LDcgKzE0OSw3IEBAIGlubGluZSB2b2lkIFJhbmdl
Qm91bmRhcnlQb2ludDo6c2V0VG9TdGFydE9mTm9kZShQYXNzUmVmUHRyPE5vZGU+IGNvbnRhaW5l
cikKICAgICBBU1NFUlQoY29udGFpbmVyKTsKICAgICBtX2NvbnRhaW5lck5vZGUgPSBjb250YWlu
ZXI7CiAgICAgbV9vZmZzZXRJbkNvbnRhaW5lciA9IDA7Ci0gICAgbV9jaGlsZEJlZm9yZUJvdW5k
YXJ5ID0gMDsKKyAgICBtX2NoaWxkQmVmb3JlQm91bmRhcnkgPSBudWxscHRyOwogfQogCiBpbmxp
bmUgdm9pZCBSYW5nZUJvdW5kYXJ5UG9pbnQ6OnNldFRvRW5kT2ZOb2RlKFBhc3NSZWZQdHI8Tm9k
ZT4gY29udGFpbmVyKQpAQCAtMTU4LDcgKzE1OCw3IEBAIGlubGluZSB2b2lkIFJhbmdlQm91bmRh
cnlQb2ludDo6c2V0VG9FbmRPZk5vZGUoUGFzc1JlZlB0cjxOb2RlPiBjb250YWluZXIpCiAgICAg
bV9jb250YWluZXJOb2RlID0gY29udGFpbmVyOwogICAgIGlmIChtX2NvbnRhaW5lck5vZGUtPm9m
ZnNldEluQ2hhcmFjdGVycygpKSB7CiAgICAgICAgIG1fb2Zmc2V0SW5Db250YWluZXIgPSBtX2Nv
bnRhaW5lck5vZGUtPm1heENoYXJhY3Rlck9mZnNldCgpOwotICAgICAgICBtX2NoaWxkQmVmb3Jl
Qm91bmRhcnkgPSAwOworICAgICAgICBtX2NoaWxkQmVmb3JlQm91bmRhcnkgPSBudWxscHRyOwog
ICAgIH0gZWxzZSB7CiAgICAgICAgIG1fY2hpbGRCZWZvcmVCb3VuZGFyeSA9IG1fY29udGFpbmVy
Tm9kZS0+bGFzdENoaWxkKCk7CiAgICAgICAgIG1fb2Zmc2V0SW5Db250YWluZXIgPSBtX2NoaWxk
QmVmb3JlQm91bmRhcnkgPyBpbnZhbGlkT2Zmc2V0IDogMDsKZGlmZiAtLWdpdCBhL1NvdXJjZS9X
ZWJDb3JlL2RvbS9TcGFjZVNwbGl0U3RyaW5nLmggYi9Tb3VyY2UvV2ViQ29yZS9kb20vU3BhY2VT
cGxpdFN0cmluZy5oCmluZGV4IGVmNTY4MDFhNzcxMWRmNWEyY2I1NTgxM2JlNTY3M2YxOTAzMjhl
NzMuLmY4NWI5NjQyMTJkMWRhOGU4MDJkMTY2MDg5NDZjMzc3YWUwYjc4NWQgMTAwNjQ0Ci0tLSBh
L1NvdXJjZS9XZWJDb3JlL2RvbS9TcGFjZVNwbGl0U3RyaW5nLmgKKysrIGIvU291cmNlL1dlYkNv
cmUvZG9tL1NwYWNlU3BsaXRTdHJpbmcuaApAQCAtMTA1LDcgKzEwNSw3IEBAIHB1YmxpYzoKICAg
ICBib29sIG9wZXJhdG9yIT0oY29uc3QgU3BhY2VTcGxpdFN0cmluZyYgb3RoZXIpIGNvbnN0IHsg
cmV0dXJuIG1fZGF0YSAhPSBvdGhlci5tX2RhdGE7IH0KIAogICAgIHZvaWQgc2V0KGNvbnN0IEF0
b21pY1N0cmluZyYsIGJvb2wgc2hvdWxkRm9sZENhc2UpOwotICAgIHZvaWQgY2xlYXIoKSB7IG1f
ZGF0YS5jbGVhcigpOyB9CisgICAgdm9pZCBjbGVhcigpIHsgbV9kYXRhID0gbnVsbHB0cjsgfQog
CiAgICAgYm9vbCBjb250YWlucyhjb25zdCBBdG9taWNTdHJpbmcmIHN0cmluZykgY29uc3QgeyBy
ZXR1cm4gbV9kYXRhICYmIG1fZGF0YS0+Y29udGFpbnMoc3RyaW5nKTsgfQogICAgIGJvb2wgY29u
dGFpbnNBbGwoY29uc3QgU3BhY2VTcGxpdFN0cmluZyYgbmFtZXMpIGNvbnN0IHsgcmV0dXJuICFu
YW1lcy5tX2RhdGEgfHwgKG1fZGF0YSAmJiBtX2RhdGEtPmNvbnRhaW5zQWxsKCpuYW1lcy5tX2Rh
dGEpKTsgfQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvZG9tL1N0eWxlZEVsZW1lbnQuY3Bw
IGIvU291cmNlL1dlYkNvcmUvZG9tL1N0eWxlZEVsZW1lbnQuY3BwCmluZGV4IDViMjY5NjZiNWMz
ODdiOWM4ODdmODAwNmUwZDI1MGE1OGY2OTNkMDkuLjBlYzBkN2Y1YTBlZWE5ZGNiMWU4ZTY1ZTU2
OWQ2MjBkYzJkMmNjMDQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2RvbS9TdHlsZWRFbGVt
ZW50LmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9kb20vU3R5bGVkRWxlbWVudC5jcHAKQEAgLTE4
NSw3ICsxODUsNyBAQCBpbmxpbmUgdm9pZCBTdHlsZWRFbGVtZW50OjpzZXRJbmxpbmVTdHlsZUZy
b21TdHJpbmcoY29uc3QgQXRvbWljU3RyaW5nJiBuZXdTdHlsZQogICAgIC8vIFdlIHJlY29uc3Ry
dWN0IHRoZSBwcm9wZXJ0eSBzZXQgaW5zdGVhZCBvZiBtdXRhdGluZyBpZiB0aGVyZSBpcyBubyBD
U1NPTSB3cmFwcGVyLgogICAgIC8vIFRoaXMgbWFrZXMgd3JhcHBlcmxlc3MgcHJvcGVydHkgc2V0
cyBpbW11dGFibGUgYW5kIHNvIGNhY2hlYWJsZS4KICAgICBpZiAoaW5saW5lU3R5bGUgJiYgIWlz
PE11dGFibGVTdHlsZVByb3BlcnRpZXM+KCppbmxpbmVTdHlsZSkpCi0gICAgICAgIGlubGluZVN0
eWxlLmNsZWFyKCk7CisgICAgICAgIGlubGluZVN0eWxlID0gbnVsbHB0cjsKIAogICAgIGlmICgh
aW5saW5lU3R5bGUpCiAgICAgICAgIGlubGluZVN0eWxlID0gQ1NTUGFyc2VyOjpwYXJzZUlubGlu
ZVN0eWxlRGVjbGFyYXRpb24obmV3U3R5bGVTdHJpbmcsIHRoaXMpOwpAQCAtMjAyLDcgKzIwMiw3
IEBAIHZvaWQgU3R5bGVkRWxlbWVudDo6c3R5bGVBdHRyaWJ1dGVDaGFuZ2VkKGNvbnN0IEF0b21p
Y1N0cmluZyYgbmV3U3R5bGVTdHJpbmcsIEF0CiAgICAgaWYgKG5ld1N0eWxlU3RyaW5nLmlzTnVs
bCgpKSB7CiAgICAgICAgIGlmIChQcm9wZXJ0eVNldENTU1N0eWxlRGVjbGFyYXRpb24qIGNzc29t
V3JhcHBlciA9IGlubGluZVN0eWxlQ1NTT01XcmFwcGVyKCkpCiAgICAgICAgICAgICBjc3NvbVdy
YXBwZXItPmNsZWFyUGFyZW50RWxlbWVudCgpOwotICAgICAgICBlbnN1cmVVbmlxdWVFbGVtZW50
RGF0YSgpLm1faW5saW5lU3R5bGUuY2xlYXIoKTsKKyAgICAgICAgZW5zdXJlVW5pcXVlRWxlbWVu
dERhdGEoKS5tX2lubGluZVN0eWxlID0gbnVsbHB0cjsKICAgICB9IGVsc2UgaWYgKHJlYXNvbiA9
PSBNb2RpZmllZEJ5Q2xvbmluZyB8fCBkb2N1bWVudCgpLmNvbnRlbnRTZWN1cml0eVBvbGljeSgp
LT5hbGxvd0lubGluZVN0eWxlKGRvY3VtZW50KCkudXJsKCksIHN0YXJ0TGluZU51bWJlcikpCiAg
ICAgICAgIHNldElubGluZVN0eWxlRnJvbVN0cmluZyhuZXdTdHlsZVN0cmluZyk7CiAKZGlmZiAt
LWdpdCBhL1NvdXJjZS9XZWJDb3JlL2RvbS9kZWZhdWx0L1BsYXRmb3JtTWVzc2FnZVBvcnRDaGFu
bmVsLmNwcCBiL1NvdXJjZS9XZWJDb3JlL2RvbS9kZWZhdWx0L1BsYXRmb3JtTWVzc2FnZVBvcnRD
aGFubmVsLmNwcAppbmRleCBjNjg2MTFmYzhmYzdiZWNmYWRmOGQ4NDgzYjE0ZmY5MDhjZjQ2MWZh
Li5jNDE3NDg2Mzc0OTE3MzY3MzNmN2MyOTFhNDZlNWE5ZDE3YjdkMjc2IDEwMDY0NAotLS0gYS9T
b3VyY2UvV2ViQ29yZS9kb20vZGVmYXVsdC9QbGF0Zm9ybU1lc3NhZ2VQb3J0Q2hhbm5lbC5jcHAK
KysrIGIvU291cmNlL1dlYkNvcmUvZG9tL2RlZmF1bHQvUGxhdGZvcm1NZXNzYWdlUG9ydENoYW5u
ZWwuY3BwCkBAIC0xODMsOSArMTgzLDkgQEAgdm9pZCBQbGF0Zm9ybU1lc3NhZ2VQb3J0Q2hhbm5l
bDo6Y2xvc2VJbnRlcm5hbCgpCiB7CiAgICAgTXV0ZXhMb2NrZXIgbG9jayhtX211dGV4KTsKICAg
ICAvLyBEaXNlbnRhbmdsZSBvdXJzZWx2ZXMgZnJvbSB0aGUgb3RoZXIgZW5kLiBXZSBzdGlsbCBt
YWludGFpbiBhIHJlZmVyZW5jZSB0byBvdXIgaW5jb21pbmcgcXVldWUsIHNpbmNlIHByZXZpb3Vz
bHktZXhpc3RpbmcgbWVzc2FnZXMgc2hvdWxkIHN0aWxsIGJlIGRlbGl2ZXJlZC4KLSAgICBtX3Jl
bW90ZVBvcnQgPSAwOwotICAgIG1fZW50YW5nbGVkQ2hhbm5lbCA9IDA7Ci0gICAgbV9vdXRnb2lu
Z1F1ZXVlID0gMDsKKyAgICBtX3JlbW90ZVBvcnQgPSBudWxscHRyOworICAgIG1fZW50YW5nbGVk
Q2hhbm5lbCA9IG51bGxwdHI7CisgICAgbV9vdXRnb2luZ1F1ZXVlID0gbnVsbHB0cjsKIH0KIAog
fSAvLyBuYW1lc3BhY2UgV2ViQ29yZQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvZWRpdGlu
Zy9BbHRlcm5hdGl2ZVRleHRDb250cm9sbGVyLmNwcCBiL1NvdXJjZS9XZWJDb3JlL2VkaXRpbmcv
QWx0ZXJuYXRpdmVUZXh0Q29udHJvbGxlci5jcHAKaW5kZXggZjViYzk0ODkxY2FmN2U3MDk3YTAz
ZTI3MjllNzI4ZjI2MzZmMDhiZC4uMjc1ZTQzMGViNzNjMTRjYTJjZmYzM2M2NTc3NjFlNDYxOWU1
ZWFlOSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvZWRpdGluZy9BbHRlcm5hdGl2ZVRleHRD
b250cm9sbGVyLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9lZGl0aW5nL0FsdGVybmF0aXZlVGV4
dENvbnRyb2xsZXIuY3BwCkBAIC0xNDcsNyArMTQ3LDcgQEAgdm9pZCBBbHRlcm5hdGl2ZVRleHRD
b250cm9sbGVyOjpzdGFydEFsdGVybmF0aXZlVGV4dFVJVGltZXIoQWx0ZXJuYXRpdmVUZXh0VHlw
ZQogCiAgICAgLy8gSWYgdHlwZSBpcyBQYW5lbFR5cGVSZXZlcnNpb24sIHRoZW4gdGhlIG5ldyBy
YW5nZSBoYXMgYmVlbiBzZXQuIFNvIHdlIHNob3VsZG4ndCBjbGVhciBpdC4KICAgICBpZiAodHlw
ZSA9PSBBbHRlcm5hdGl2ZVRleHRUeXBlQ29ycmVjdGlvbikKLSAgICAgICAgbV9hbHRlcm5hdGl2
ZVRleHRJbmZvLnJhbmdlV2l0aEFsdGVybmF0aXZlLmNsZWFyKCk7CisgICAgICAgIG1fYWx0ZXJu
YXRpdmVUZXh0SW5mby5yYW5nZVdpdGhBbHRlcm5hdGl2ZSA9IG51bGxwdHI7CiAgICAgbV9hbHRl
cm5hdGl2ZVRleHRJbmZvLnR5cGUgPSB0eXBlOwogICAgIG1fdGltZXIuc3RhcnRPbmVTaG90KGNv
cnJlY3Rpb25QYW5lbFRpbWVySW50ZXJ2YWwpOwogfQpAQCAtMTU1LDcgKzE1NSw3IEBAIHZvaWQg
QWx0ZXJuYXRpdmVUZXh0Q29udHJvbGxlcjo6c3RhcnRBbHRlcm5hdGl2ZVRleHRVSVRpbWVyKEFs
dGVybmF0aXZlVGV4dFR5cGUKIHZvaWQgQWx0ZXJuYXRpdmVUZXh0Q29udHJvbGxlcjo6c3RvcEFs
dGVybmF0aXZlVGV4dFVJVGltZXIoKQogewogICAgIG1fdGltZXIuc3RvcCgpOwotICAgIG1fYWx0
ZXJuYXRpdmVUZXh0SW5mby5yYW5nZVdpdGhBbHRlcm5hdGl2ZS5jbGVhcigpOworICAgIG1fYWx0
ZXJuYXRpdmVUZXh0SW5mby5yYW5nZVdpdGhBbHRlcm5hdGl2ZSA9IG51bGxwdHI7CiB9CiAKIHZv
aWQgQWx0ZXJuYXRpdmVUZXh0Q29udHJvbGxlcjo6c3RvcFBlbmRpbmdDb3JyZWN0aW9uKGNvbnN0
IFZpc2libGVTZWxlY3Rpb24mIG9sZFNlbGVjdGlvbikKQEAgLTE4Myw3ICsxODMsNyBAQCB2b2lk
IEFsdGVybmF0aXZlVGV4dENvbnRyb2xsZXI6OmFwcGx5UGVuZGluZ0NvcnJlY3Rpb24oY29uc3Qg
VmlzaWJsZVNlbGVjdGlvbiYgcwogICAgIGlmIChkb0FwcGx5Q29ycmVjdGlvbikKICAgICAgICAg
aGFuZGxlQWx0ZXJuYXRpdmVUZXh0VUlSZXN1bHQoZGlzbWlzc1Nvb24oUmVhc29uRm9yRGlzbWlz
c2luZ0FsdGVybmF0aXZlVGV4dEFjY2VwdGVkKSk7IAogICAgIGVsc2UKLSAgICAgICAgbV9hbHRl
cm5hdGl2ZVRleHRJbmZvLnJhbmdlV2l0aEFsdGVybmF0aXZlLmNsZWFyKCk7CisgICAgICAgIG1f
YWx0ZXJuYXRpdmVUZXh0SW5mby5yYW5nZVdpdGhBbHRlcm5hdGl2ZSA9IG51bGxwdHI7CiB9CiAK
IGJvb2wgQWx0ZXJuYXRpdmVUZXh0Q29udHJvbGxlcjo6aGFzUGVuZGluZ0NvcnJlY3Rpb24oKSBj
b25zdApAQCAtMzU5LDcgKzM1OSw3IEBAIHZvaWQgQWx0ZXJuYXRpdmVUZXh0Q29udHJvbGxlcjo6
dGltZXJGaXJlZCgpCiAgICAgICAgIFZlY3RvcjxTdHJpbmc+IHN1Z2dlc3Rpb25zOwogICAgICAg
ICB0ZXh0Q2hlY2tlcigpLT5nZXRHdWVzc2VzRm9yV29yZChtX2FsdGVybmF0aXZlVGV4dEluZm8u
b3JpZ2luYWxUZXh0LCBwYXJhZ3JhcGhUZXh0LCBzdWdnZXN0aW9ucyk7CiAgICAgICAgIGlmIChz
dWdnZXN0aW9ucy5pc0VtcHR5KCkpIHsKLSAgICAgICAgICAgIG1fYWx0ZXJuYXRpdmVUZXh0SW5m
by5yYW5nZVdpdGhBbHRlcm5hdGl2ZS5jbGVhcigpOworICAgICAgICAgICAgbV9hbHRlcm5hdGl2
ZVRleHRJbmZvLnJhbmdlV2l0aEFsdGVybmF0aXZlID0gbnVsbHB0cjsKICAgICAgICAgICAgIGJy
ZWFrOwogICAgICAgICB9CiAgICAgICAgIFN0cmluZyB0b3BTdWdnZXN0aW9uID0gc3VnZ2VzdGlv
bnMuZmlyc3QoKTsKQEAgLTQyMiw3ICs0MjIsNyBAQCB2b2lkIEFsdGVybmF0aXZlVGV4dENvbnRy
b2xsZXI6OmhhbmRsZUFsdGVybmF0aXZlVGV4dFVJUmVzdWx0KGNvbnN0IFN0cmluZyYgcmVzdQog
ICAgICAgICBicmVhazsKICAgICB9CiAKLSAgICBtX2FsdGVybmF0aXZlVGV4dEluZm8ucmFuZ2VX
aXRoQWx0ZXJuYXRpdmUuY2xlYXIoKTsKKyAgICBtX2FsdGVybmF0aXZlVGV4dEluZm8ucmFuZ2VX
aXRoQWx0ZXJuYXRpdmUgPSBudWxscHRyOwogfQogCiBib29sIEFsdGVybmF0aXZlVGV4dENvbnRy
b2xsZXI6OmlzQXV0b21hdGljU3BlbGxpbmdDb3JyZWN0aW9uRW5hYmxlZCgpCmRpZmYgLS1naXQg
YS9Tb3VyY2UvV2ViQ29yZS9lZGl0aW5nL0FwcGx5QmxvY2tFbGVtZW50Q29tbWFuZC5jcHAgYi9T
b3VyY2UvV2ViQ29yZS9lZGl0aW5nL0FwcGx5QmxvY2tFbGVtZW50Q29tbWFuZC5jcHAKaW5kZXgg
NDMzZTk1MzY2NGY3MDFkMTIxMjZmYjQwM2E2N2NiZmJhN2Y0ZjA4OC4uMjFhYmU3MWNjOGVkZDUw
ZjE2MzRmMDQzMzBhOGMxMmJjYzkxNjVlZSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvZWRp
dGluZy9BcHBseUJsb2NrRWxlbWVudENvbW1hbmQuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2Vk
aXRpbmcvQXBwbHlCbG9ja0VsZW1lbnRDb21tYW5kLmNwcApAQCAtMTQzLDcgKzE0Myw3IEBAIHZv
aWQgQXBwbHlCbG9ja0VsZW1lbnRDb21tYW5kOjpmb3JtYXRTZWxlY3Rpb24oY29uc3QgVmlzaWJs
ZVBvc2l0aW9uJiBzdGFydE9mU2VsCiAgICAgICAgIC8vIERvbid0IHB1dCB0aGUgbmV4dCBwYXJh
Z3JhcGggaW4gdGhlIGJsb2NrcXVvdGUgd2UganVzdCBjcmVhdGVkIGZvciB0aGlzIHBhcmFncmFw
aCB1bmxlc3MgCiAgICAgICAgIC8vIHRoZSBuZXh0IHBhcmFncmFwaCBpcyBpbiB0aGUgc2FtZSBj
ZWxsLgogICAgICAgICBpZiAoZW5jbG9zaW5nQ2VsbCAmJiBlbmNsb3NpbmdDZWxsICE9IGVuY2xv
c2luZ05vZGVPZlR5cGUoZW5kT2ZOZXh0UGFyYWdyYXBoLmRlZXBFcXVpdmFsZW50KCksICZpc1Rh
YmxlQ2VsbCkpCi0gICAgICAgICAgICBibG9ja3F1b3RlRm9yTmV4dEluZGVudCA9IDA7CisgICAg
ICAgICAgICBibG9ja3F1b3RlRm9yTmV4dEluZGVudCA9IG51bGxwdHI7CiAKICAgICAgICAgLy8g
aW5kZW50SW50b0Jsb2NrcXVvdGUgY291bGQgbW92ZSBtb3JlIHRoYW4gb25lIHBhcmFncmFwaCBp
ZiB0aGUgcGFyYWdyYXBoCiAgICAgICAgIC8vIGlzIGluIGEgbGlzdCBpdGVtIG9yIGEgdGFibGUu
IEFzIGEgcmVzdWx0LCBlbmRBZnRlclNlbGVjdGlvbiBjb3VsZCByZWZlciB0byBhIHBvc2l0aW9u
CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9lZGl0aW5nL0RlbGV0ZVNlbGVjdGlvbkNvbW1h
bmQuY3BwIGIvU291cmNlL1dlYkNvcmUvZWRpdGluZy9EZWxldGVTZWxlY3Rpb25Db21tYW5kLmNw
cAppbmRleCBlYjNhNWYzMGEwM2YyODRlMjI2MGZmNDhmYmE5ZjFiOTk5YWQ5OTI3Li5jNjQ5MWQy
NjkyNjVlNWFiNmNlOTY1ZWFhOTUzNDFiNjU0NDdkMWFlIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2Vi
Q29yZS9lZGl0aW5nL0RlbGV0ZVNlbGVjdGlvbkNvbW1hbmQuY3BwCisrKyBiL1NvdXJjZS9XZWJD
b3JlL2VkaXRpbmcvRGVsZXRlU2VsZWN0aW9uQ29tbWFuZC5jcHAKQEAgLTMwMiw3ICszMDIsNyBA
QCB2b2lkIERlbGV0ZVNlbGVjdGlvbkNvbW1hbmQ6OnNhdmVUeXBpbmdTdHlsZVN0YXRlKCkKICAg
ICBpZiAoZW5jbG9zaW5nTm9kZU9mVHlwZShtX3NlbGVjdGlvblRvRGVsZXRlLnN0YXJ0KCksIGlz
TWFpbEJsb2NrcXVvdGUpKQogICAgICAgICBtX2RlbGV0ZUludG9CbG9ja3F1b3RlU3R5bGUgPSBF
ZGl0aW5nU3R5bGU6OmNyZWF0ZShtX3NlbGVjdGlvblRvRGVsZXRlLmVuZCgpKTsKICAgICBlbHNl
Ci0gICAgICAgIG1fZGVsZXRlSW50b0Jsb2NrcXVvdGVTdHlsZSA9IDA7CisgICAgICAgIG1fZGVs
ZXRlSW50b0Jsb2NrcXVvdGVTdHlsZSA9IG51bGxwdHI7CiB9CiAKIGJvb2wgRGVsZXRlU2VsZWN0
aW9uQ29tbWFuZDo6aGFuZGxlU3BlY2lhbENhc2VCUkRlbGV0ZSgpCkBAIC03MjgsMTEgKzcyOCwx
MSBAQCB2b2lkIERlbGV0ZVNlbGVjdGlvbkNvbW1hbmQ6OmNhbGN1bGF0ZVR5cGluZ1N0eWxlQWZ0
ZXJEZWxldGUoKQogICAgIC8vIElmIHdlIGRlbGV0ZWQgaW50byBhIGJsb2NrcXVvdGUsIGJ1dCBh
cmUgbm93IG5vIGxvbmdlciBpbiBhIGJsb2NrcXVvdGUsIHVzZSB0aGUgYWx0ZXJuYXRlIHR5cGlu
ZyBzdHlsZQogICAgIGlmIChtX2RlbGV0ZUludG9CbG9ja3F1b3RlU3R5bGUgJiYgIWVuY2xvc2lu
Z05vZGVPZlR5cGUobV9lbmRpbmdQb3NpdGlvbiwgaXNNYWlsQmxvY2txdW90ZSwgQ2FuQ3Jvc3NF
ZGl0aW5nQm91bmRhcnkpKQogICAgICAgICBtX3R5cGluZ1N0eWxlID0gbV9kZWxldGVJbnRvQmxv
Y2txdW90ZVN0eWxlOwotICAgIG1fZGVsZXRlSW50b0Jsb2NrcXVvdGVTdHlsZSA9IDA7CisgICAg
bV9kZWxldGVJbnRvQmxvY2txdW90ZVN0eWxlID0gbnVsbHB0cjsKIAogICAgIG1fdHlwaW5nU3R5
bGUtPnByZXBhcmVUb0FwcGx5QXQobV9lbmRpbmdQb3NpdGlvbik7CiAgICAgaWYgKG1fdHlwaW5n
U3R5bGUtPmlzRW1wdHkoKSkKLSAgICAgICAgbV90eXBpbmdTdHlsZSA9IDA7CisgICAgICAgIG1f
dHlwaW5nU3R5bGUgPSBudWxscHRyOwogICAgIC8vIFRoaXMgaXMgd2hlcmUgd2UndmUgZGVsZXRl
ZCBhbGwgdHJhY2VzIG9mIGEgc3R5bGUgYnV0IG5vdCBhIHdob2xlIHBhcmFncmFwaCAodGhhdCdz
IGhhbmRsZWQgYWJvdmUpLgogICAgIC8vIEluIHRoaXMgY2FzZSBpZiB3ZSBzdGFydCB0eXBpbmcs
IHRoZSBuZXcgY2hhcmFjdGVycyBzaG91bGQgaGF2ZSB0aGUgc2FtZSBzdHlsZSBhcyB0aGUganVz
dCBkZWxldGVkIG9uZXMsCiAgICAgLy8gYnV0LCBpZiB3ZSBjaGFuZ2UgdGhlIHNlbGVjdGlvbiwg
Y29tZSBiYWNrIGFuZCBzdGFydCB0eXBpbmcgdGhhdCBzdHlsZSBzaG91bGQgYmUgbG9zdC4gIEFs
c28gc2VlIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvZWRpdGluZy9FZGl0aW5nU3R5bGUu
Y3BwIGIvU291cmNlL1dlYkNvcmUvZWRpdGluZy9FZGl0aW5nU3R5bGUuY3BwCmluZGV4IDVjZjEy
Y2Q5YjczOGExZGQ3NDBkNWVjZDU1YmQ1OTcyZDllZDI2NjEuLjE3YWFiMjk1YmE2YjkyZGFlMmE3
MjQ0ZGMxNTY4ZWZmMmY1NTc0N2EgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2VkaXRpbmcv
RWRpdGluZ1N0eWxlLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9lZGl0aW5nL0VkaXRpbmdTdHls
ZS5jcHAKQEAgLTYzOCw3ICs2MzgsNyBAQCB2b2lkIEVkaXRpbmdTdHlsZTo6b3ZlcnJpZGVUeXBp
bmdTdHlsZUF0KGNvbnN0IEVkaXRpbmdTdHlsZSYgc3R5bGUsIGNvbnN0IFBvc2l0aQogCiB2b2lk
IEVkaXRpbmdTdHlsZTo6Y2xlYXIoKQogewotICAgIG1fbXV0YWJsZVN0eWxlLmNsZWFyKCk7Cisg
ICAgbV9tdXRhYmxlU3R5bGUgPSBudWxscHRyOwogICAgIG1fc2hvdWxkVXNlRml4ZWREZWZhdWx0
Rm9udFNpemUgPSBmYWxzZTsKICAgICBtX2ZvbnRTaXplRGVsdGEgPSBOb0ZvbnREZWx0YTsKICAg
ICBzZXRVbmRlcmxpbmVDaGFuZ2UoVGV4dERlY29yYXRpb25DaGFuZ2U6Ok5vbmUpOwpkaWZmIC0t
Z2l0IGEvU291cmNlL1dlYkNvcmUvZWRpdGluZy9FZGl0b3IuY3BwIGIvU291cmNlL1dlYkNvcmUv
ZWRpdGluZy9FZGl0b3IuY3BwCmluZGV4IGEzYzNjOWMzYjQzNDQyOTc1MWY3M2VmMTkyOGM0MTlj
OTVkNWE5N2MuLmU3Njg3ZWMyNDY1MDA1ZGI1NzQ2ZmU2YzRhZGY2YzE1ODY4N2IzNzQgMTAwNjQ0
Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2VkaXRpbmcvRWRpdG9yLmNwcAorKysgYi9Tb3VyY2UvV2Vi
Q29yZS9lZGl0aW5nL0VkaXRvci5jcHAKQEAgLTgyOCw3ICs4MjgsNyBAQCB2b2lkIEVkaXRvcjo6
cmVtb3ZlRm9ybWF0dGluZ0FuZFN0eWxlKCkKIAogdm9pZCBFZGl0b3I6OmNsZWFyTGFzdEVkaXRD
b21tYW5kKCkgCiB7Ci0gICAgbV9sYXN0RWRpdENvbW1hbmQuY2xlYXIoKTsKKyAgICBtX2xhc3RF
ZGl0Q29tbWFuZCA9IG51bGxwdHI7CiB9CiAjaWYgUExBVEZPUk0oSU9TKQogLy8gSWYgdGhlIHNl
bGVjdGlvbiBpcyBhZGp1c3RlZCBmcm9tIFVJS2l0IHdpdGhvdXQgY2xvc2luZyB0aGUgdHlwaW5n
LCB0aGUgdHlwaW5nIGNvbW1hbmQgbWF5CkBAIC0xMDY2LDcgKzEwNjYsNyBAQCB2b2lkIEVkaXRv
cjo6dW5hcHBsaWVkRWRpdGluZyhQYXNzUmVmUHRyPEVkaXRDb21tYW5kQ29tcG9zaXRpb24+IGNt
ZCkKIAogICAgIG1fYWx0ZXJuYXRpdmVUZXh0Q29udHJvbGxlci0+cmVzcG9uZFRvVW5hcHBsaWVk
RWRpdGluZyhjbWQuZ2V0KCkpOwogCi0gICAgbV9sYXN0RWRpdENvbW1hbmQgPSAwOworICAgIG1f
bGFzdEVkaXRDb21tYW5kID0gbnVsbHB0cjsKICAgICBpZiAoY2xpZW50KCkpCiAgICAgICAgIGNs
aWVudCgpLT5yZWdpc3RlclJlZG9TdGVwKGNtZCk7CiAgICAgcmVzcG9uZFRvQ2hhbmdlZENvbnRl
bnRzKG5ld1NlbGVjdGlvbik7CkBAIC0xMDg0LDcgKzEwODQsNyBAQCB2b2lkIEVkaXRvcjo6cmVh
cHBsaWVkRWRpdGluZyhQYXNzUmVmUHRyPEVkaXRDb21tYW5kQ29tcG9zaXRpb24+IGNtZCkKICAg
ICAKICAgICB1cGRhdGVFZGl0b3JVSU5vd0lmU2NoZWR1bGVkKCk7CiAKLSAgICBtX2xhc3RFZGl0
Q29tbWFuZCA9IDA7CisgICAgbV9sYXN0RWRpdENvbW1hbmQgPSBudWxscHRyOwogICAgIGlmIChj
bGllbnQoKSkKICAgICAgICAgY2xpZW50KCktPnJlZ2lzdGVyVW5kb1N0ZXAoY21kKTsKICAgICBy
ZXNwb25kVG9DaGFuZ2VkQ29udGVudHMobmV3U2VsZWN0aW9uKTsKQEAgLTE3MjcsNyArMTcyNyw3
IEBAIHZvaWQgRWRpdG9yOjpzZXRDb21wb3NpdGlvbihjb25zdCBTdHJpbmcmIHRleHQsIFNldENv
bXBvc2l0aW9uTW9kZSBtb2RlKQogICAgIGlmICh0ZXh0LmlzRW1wdHkoKSAmJiBtb2RlICE9IENh
bmNlbENvbXBvc2l0aW9uKQogICAgICAgICBUeXBpbmdDb21tYW5kOjpkZWxldGVTZWxlY3Rpb24o
ZG9jdW1lbnQoKSwgMCk7CiAKLSAgICBtX2NvbXBvc2l0aW9uTm9kZSA9IDA7CisgICAgbV9jb21w
b3NpdGlvbk5vZGUgPSBudWxscHRyOwogICAgIG1fY3VzdG9tQ29tcG9zaXRpb25VbmRlcmxpbmVz
LmNsZWFyKCk7CiAKICAgICBpbnNlcnRUZXh0Rm9yQ29uZmlybWVkQ29tcG9zaXRpb24odGV4dCk7
CkBAIC0xODAyLDcgKzE4MDIsNyBAQCB2b2lkIEVkaXRvcjo6c2V0Q29tcG9zaXRpb24oY29uc3Qg
U3RyaW5nJiB0ZXh0LCBjb25zdCBWZWN0b3I8Q29tcG9zaXRpb25VbmRlcmxpbgogICAgIGlmICh0
ZXh0LmlzRW1wdHkoKSkKICAgICAgICAgVHlwaW5nQ29tbWFuZDo6ZGVsZXRlU2VsZWN0aW9uKGRv
Y3VtZW50KCksIFR5cGluZ0NvbW1hbmQ6OlByZXZlbnRTcGVsbENoZWNraW5nKTsKIAotICAgIG1f
Y29tcG9zaXRpb25Ob2RlID0gMDsKKyAgICBtX2NvbXBvc2l0aW9uTm9kZSA9IG51bGxwdHI7CiAg
ICAgbV9jdXN0b21Db21wb3NpdGlvblVuZGVybGluZXMuY2xlYXIoKTsKIAogICAgIGlmICghdGV4
dC5pc0VtcHR5KCkpIHsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2VkaXRpbmcvRnJhbWVT
ZWxlY3Rpb24uY3BwIGIvU291cmNlL1dlYkNvcmUvZWRpdGluZy9GcmFtZVNlbGVjdGlvbi5jcHAK
aW5kZXggYjBlMjUzNTg3ZmQ4YWRjZGUzNGQ4YmIyMWFiM2FlZmI4NjNkNmI4Mi4uZmEwODgzNzEy
NTM3MWExMWNiODc5OThmYTRhMTU3MWRkMTg0ZmIzMyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNv
cmUvZWRpdGluZy9GcmFtZVNlbGVjdGlvbi5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvZWRpdGlu
Zy9GcmFtZVNlbGVjdGlvbi5jcHAKQEAgLTEzNTksNyArMTM1OSw3IEBAIHZvaWQgRnJhbWVTZWxl
Y3Rpb246OnByZXBhcmVGb3JEZXN0cnVjdGlvbigpCiAgICAgICAgIHZpZXctPmNsZWFyU2VsZWN0
aW9uKCk7CiAKICAgICBzZXRTZWxlY3Rpb25XaXRob3V0VXBkYXRpbmdBcHBlYXJhbmNlKFZpc2li
bGVTZWxlY3Rpb24oKSwgZGVmYXVsdFNldFNlbGVjdGlvbk9wdGlvbnMoKSwgQWxpZ25DdXJzb3JP
blNjcm9sbElmTmVlZGVkLCBDaGFyYWN0ZXJHcmFudWxhcml0eSk7Ci0gICAgbV9wcmV2aW91c0Nh
cmV0Tm9kZS5jbGVhcigpOworICAgIG1fcHJldmlvdXNDYXJldE5vZGUgPSBudWxscHRyOwogfQog
CiB2b2lkIEZyYW1lU2VsZWN0aW9uOjpzZXRTdGFydChjb25zdCBWaXNpYmxlUG9zaXRpb24gJnBv
cywgRVVzZXJUcmlnZ2VyZWQgdHJpZ2dlcikKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2Vk
aXRpbmcvRnJhbWVTZWxlY3Rpb24uaCBiL1NvdXJjZS9XZWJDb3JlL2VkaXRpbmcvRnJhbWVTZWxl
Y3Rpb24uaAppbmRleCBlZDg3OTZlZjAzMTAyOGM3YmYyOTBiZTM0ODhkOTg2OWIyM2VlOWIyLi4z
MTBhNzRhYWI5ZDJmNTFkZmE3MWJkMWFkOTY2MzQ4MzdiNjEyNWMwIDEwMDY0NAotLS0gYS9Tb3Vy
Y2UvV2ViQ29yZS9lZGl0aW5nL0ZyYW1lU2VsZWN0aW9uLmgKKysrIGIvU291cmNlL1dlYkNvcmUv
ZWRpdGluZy9GcmFtZVNlbGVjdGlvbi5oCkBAIC0zNTksNyArMzU5LDcgQEAgaW5saW5lIEVkaXRp
bmdTdHlsZSogRnJhbWVTZWxlY3Rpb246OnR5cGluZ1N0eWxlKCkgY29uc3QKIAogaW5saW5lIHZv
aWQgRnJhbWVTZWxlY3Rpb246OmNsZWFyVHlwaW5nU3R5bGUoKQogewotICAgIG1fdHlwaW5nU3R5
bGUuY2xlYXIoKTsKKyAgICBtX3R5cGluZ1N0eWxlID0gbnVsbHB0cjsKIH0KIAogaW5saW5lIHZv
aWQgRnJhbWVTZWxlY3Rpb246OnNldFR5cGluZ1N0eWxlKFBhc3NSZWZQdHI8RWRpdGluZ1N0eWxl
PiBzdHlsZSkKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2VkaXRpbmcvSW5kZW50T3V0ZGVu
dENvbW1hbmQuY3BwIGIvU291cmNlL1dlYkNvcmUvZWRpdGluZy9JbmRlbnRPdXRkZW50Q29tbWFu
ZC5jcHAKaW5kZXggYjIzOGY4NzkzMTU2YzcyOTcyZTVhN2NkZTNhYWNkZTM5Y2UwMWIwZi4uZWM0
ZDI3MjQ0N2VjYWI3NTY1MDQxOTdkNjc1NTI3MmQ4YjhjZjYzMSAxMDA2NDQKLS0tIGEvU291cmNl
L1dlYkNvcmUvZWRpdGluZy9JbmRlbnRPdXRkZW50Q29tbWFuZC5jcHAKKysrIGIvU291cmNlL1dl
YkNvcmUvZWRpdGluZy9JbmRlbnRPdXRkZW50Q29tbWFuZC5jcHAKQEAgLTIzMiw3ICsyMzIsNyBA
QCB2b2lkIEluZGVudE91dGRlbnRDb21tYW5kOjpmb3JtYXRTZWxlY3Rpb24oY29uc3QgVmlzaWJs
ZVBvc2l0aW9uJiBzdGFydE9mU2VsZWN0aQogdm9pZCBJbmRlbnRPdXRkZW50Q29tbWFuZDo6Zm9y
bWF0UmFuZ2UoY29uc3QgUG9zaXRpb24mIHN0YXJ0LCBjb25zdCBQb3NpdGlvbiYgZW5kLCBjb25z
dCBQb3NpdGlvbiYsIFJlZlB0cjxFbGVtZW50PiYgYmxvY2txdW90ZUZvck5leHRJbmRlbnQpCiB7
CiAgICAgaWYgKHRyeUluZGVudGluZ0FzTGlzdEl0ZW0oc3RhcnQsIGVuZCkpCi0gICAgICAgIGJs
b2NrcXVvdGVGb3JOZXh0SW5kZW50ID0gMDsKKyAgICAgICAgYmxvY2txdW90ZUZvck5leHRJbmRl
bnQgPSBudWxscHRyOwogICAgIGVsc2UKICAgICAgICAgaW5kZW50SW50b0Jsb2NrcXVvdGUoc3Rh
cnQsIGVuZCwgYmxvY2txdW90ZUZvck5leHRJbmRlbnQpOwogfQpkaWZmIC0tZ2l0IGEvU291cmNl
L1dlYkNvcmUvZWRpdGluZy9SZXBsYWNlU2VsZWN0aW9uQ29tbWFuZC5jcHAgYi9Tb3VyY2UvV2Vi
Q29yZS9lZGl0aW5nL1JlcGxhY2VTZWxlY3Rpb25Db21tYW5kLmNwcAppbmRleCAyZTI1ZWVmMGVj
NjBiNTdmZWYyMzlkNDM5Y2IxZWU5MTQ2NjFjODAyLi5lZWUyMjBjODZmOThhNWU3ZDI4OTljNDMz
ZmE5MWYwMDAwNTQ2YmUzIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9lZGl0aW5nL1JlcGxh
Y2VTZWxlY3Rpb25Db21tYW5kLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9lZGl0aW5nL1JlcGxh
Y2VTZWxlY3Rpb25Db21tYW5kLmNwcApAQCAtMzU0LDggKzM1NCw4IEBAIGlubGluZSB2b2lkIFJl
cGxhY2VTZWxlY3Rpb25Db21tYW5kOjpJbnNlcnRlZE5vZGVzOjp3aWxsUmVtb3ZlTm9kZVByZXNl
cnZpbmdDaGlsCiBpbmxpbmUgdm9pZCBSZXBsYWNlU2VsZWN0aW9uQ29tbWFuZDo6SW5zZXJ0ZWRO
b2Rlczo6d2lsbFJlbW92ZU5vZGUoTm9kZSogbm9kZSkKIHsKICAgICBpZiAobV9maXJzdE5vZGVJ
bnNlcnRlZCA9PSBub2RlICYmIG1fbGFzdE5vZGVJbnNlcnRlZCA9PSBub2RlKSB7Ci0gICAgICAg
IG1fZmlyc3ROb2RlSW5zZXJ0ZWQgPSAwOwotICAgICAgICBtX2xhc3ROb2RlSW5zZXJ0ZWQgPSAw
OworICAgICAgICBtX2ZpcnN0Tm9kZUluc2VydGVkID0gbnVsbHB0cjsKKyAgICAgICAgbV9sYXN0
Tm9kZUluc2VydGVkID0gbnVsbHB0cjsKICAgICB9IGVsc2UgaWYgKG1fZmlyc3ROb2RlSW5zZXJ0
ZWQgPT0gbm9kZSkKICAgICAgICAgbV9maXJzdE5vZGVJbnNlcnRlZCA9IE5vZGVUcmF2ZXJzYWw6
Om5leHRTa2lwcGluZ0NoaWxkcmVuKCptX2ZpcnN0Tm9kZUluc2VydGVkKTsKICAgICBlbHNlIGlm
IChtX2xhc3ROb2RlSW5zZXJ0ZWQgPT0gbm9kZSkKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3Jl
L2VkaXRpbmcvU3BlbGxDaGVja2VyLmNwcCBiL1NvdXJjZS9XZWJDb3JlL2VkaXRpbmcvU3BlbGxD
aGVja2VyLmNwcAppbmRleCA4YjRkNTQxMTljMDEzYzQ4NWVmNDRlYjkzMzc1NzM5MjhjNjQ4MGRi
Li4wM2YyZTUxMDQ4MzUyMTUyMGQyOWI3N2U3NjhkZmM5M2JhYTQwNTkzIDEwMDY0NAotLS0gYS9T
b3VyY2UvV2ViQ29yZS9lZGl0aW5nL1NwZWxsQ2hlY2tlci5jcHAKKysrIGIvU291cmNlL1dlYkNv
cmUvZWRpdGluZy9TcGVsbENoZWNrZXIuY3BwCkBAIC0yMTQsNyArMjE0LDcgQEAgdm9pZCBTcGVs
bENoZWNrZXI6OmRpZENoZWNrKGludCBzZXF1ZW5jZSwgY29uc3QgVmVjdG9yPFRleHRDaGVja2lu
Z1Jlc3VsdD4mIHJlc3UKICAgICBpZiAobV9sYXN0UHJvY2Vzc2VkU2VxdWVuY2UgPCBzZXF1ZW5j
ZSkKICAgICAgICAgbV9sYXN0UHJvY2Vzc2VkU2VxdWVuY2UgPSBzZXF1ZW5jZTsKIAotICAgIG1f
cHJvY2Vzc2luZ1JlcXVlc3QuY2xlYXIoKTsKKyAgICBtX3Byb2Nlc3NpbmdSZXF1ZXN0ID0gbnVs
bHB0cjsKICAgICBpZiAoIW1fcmVxdWVzdFF1ZXVlLmlzRW1wdHkoKSkKICAgICAgICAgbV90aW1l
clRvUHJvY2Vzc1F1ZXVlZFJlcXVlc3Quc3RhcnRPbmVTaG90KDApOwogfQpkaWZmIC0tZ2l0IGEv
U291cmNlL1dlYkNvcmUvZWRpdGluZy9UZXh0Q2hlY2tpbmdIZWxwZXIuY3BwIGIvU291cmNlL1dl
YkNvcmUvZWRpdGluZy9UZXh0Q2hlY2tpbmdIZWxwZXIuY3BwCmluZGV4IDAyNGQyYWQ3YzI0ZjQx
NGU1MWZlMTY2NmNmOTA5MjcyMTNkZWYxNzAuLmU5NjEzNGQ3OGE5MmJiMDVlN2YyZWQ3NzA5Yjhj
Y2E0YzRhY2EzYjUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2VkaXRpbmcvVGV4dENoZWNr
aW5nSGVscGVyLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9lZGl0aW5nL1RleHRDaGVja2luZ0hl
bHBlci5jcHAKQEAgLTE0Niw3ICsxNDYsNyBAQCB2b2lkIFRleHRDaGVja2luZ1BhcmFncmFwaDo6
ZXhwYW5kUmFuZ2VUb05leHRFbmQoKQogdm9pZCBUZXh0Q2hlY2tpbmdQYXJhZ3JhcGg6OmludmFs
aWRhdGVQYXJhZ3JhcGhSYW5nZVZhbHVlcygpCiB7CiAgICAgbV9jaGVja2luZ1N0YXJ0ID0gbV9j
aGVja2luZ0VuZCA9IC0xOwotICAgIG1fb2Zmc2V0QXNSYW5nZSA9IDA7CisgICAgbV9vZmZzZXRB
c1JhbmdlID0gbnVsbHB0cjsKICAgICBtX3RleHQgPSBTdHJpbmcoKTsKIH0KIApkaWZmIC0tZ2l0
IGEvU291cmNlL1dlYkNvcmUvZmlsZWFwaS9GaWxlUmVhZGVyLmNwcCBiL1NvdXJjZS9XZWJDb3Jl
L2ZpbGVhcGkvRmlsZVJlYWRlci5jcHAKaW5kZXggN2Y0YzA1ZDI5MzU2NGY5ODRiZmI4YmQzMDJl
OWZhNDhiYzYzODY2NS4uNjFmYzJkZTYxYWVmOGEzZWJiMDg4NGQ3NDA3NmU2YjNiZDFkMGIxMyAx
MDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvZmlsZWFwaS9GaWxlUmVhZGVyLmNwcAorKysgYi9T
b3VyY2UvV2ViQ29yZS9maWxlYXBpL0ZpbGVSZWFkZXIuY3BwCkBAIC0xNDAsNyArMTQwLDcgQEAg
dm9pZCBGaWxlUmVhZGVyOjpyZWFkSW50ZXJuYWwoQmxvYiogYmxvYiwgRmlsZVJlYWRlckxvYWRl
cjo6UmVhZFR5cGUgdHlwZSwgRXhjZXAKICAgICBtX2Jsb2IgPSBibG9iOwogICAgIG1fcmVhZFR5
cGUgPSB0eXBlOwogICAgIG1fc3RhdGUgPSBMT0FESU5HOwotICAgIG1fZXJyb3IgPSAwOworICAg
IG1fZXJyb3IgPSBudWxscHRyOwogCiAgICAgbV9sb2FkZXIgPSBzdGQ6Om1ha2VfdW5pcXVlPEZp
bGVSZWFkZXJMb2FkZXI+KG1fcmVhZFR5cGUsIHRoaXMpOwogICAgIG1fbG9hZGVyLT5zZXRFbmNv
ZGluZyhtX2VuY29kaW5nKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2ZpbGVhcGkvRmls
ZVJlYWRlckxvYWRlci5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9maWxlYXBpL0ZpbGVSZWFkZXJMb2Fk
ZXIuY3BwCmluZGV4IDk0ZTBhNGE3Y2I0MTBiYWZlM2FlZWQzOGZiNmNlMmZjZTI5YWUyNmEuLmQ4
ZmZjMTAyMzM1ZjFiMjVkNTcyZGI2YjI3NWE3NDQ0NTI3ZWEyZDkgMTAwNjQ0Ci0tLSBhL1NvdXJj
ZS9XZWJDb3JlL2ZpbGVhcGkvRmlsZVJlYWRlckxvYWRlci5jcHAKKysrIGIvU291cmNlL1dlYkNv
cmUvZmlsZWFwaS9GaWxlUmVhZGVyTG9hZGVyLmNwcApAQCAtMTIxLDExICsxMjEsMTEgQEAgdm9p
ZCBGaWxlUmVhZGVyTG9hZGVyOjp0ZXJtaW5hdGUoKQogCiB2b2lkIEZpbGVSZWFkZXJMb2FkZXI6
OmNsZWFudXAoKQogewotICAgIG1fbG9hZGVyID0gMDsKKyAgICBtX2xvYWRlciA9IG51bGxwdHI7
CiAKICAgICAvLyBJZiB3ZSBnZXQgYW55IGVycm9yLCB3ZSBkbyBub3QgbmVlZCB0byBrZWVwIGEg
YnVmZmVyIGFyb3VuZC4KICAgICBpZiAobV9lcnJvckNvZGUpIHsKLSAgICAgICAgbV9yYXdEYXRh
ID0gMDsKKyAgICAgICAgbV9yYXdEYXRhID0gbnVsbHB0cjsKICAgICAgICAgbV9zdHJpbmdSZXN1
bHQgPSAiIjsKICAgICB9CiB9CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9oaXN0b3J5L0hp
c3RvcnlJdGVtLmNwcCBiL1NvdXJjZS9XZWJDb3JlL2hpc3RvcnkvSGlzdG9yeUl0ZW0uY3BwCmlu
ZGV4IDIyOWJhYjhlN2EyM2FjMDVjMGFkMDVlN2VkNDMxNTdkY2Q3ZThiMDMuLjgyOTU3M2Y3ZDc5
YjZhOTI3NTJiNmEwN2JiOGI1NzkwOTYzMmRiZDEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3Jl
L2hpc3RvcnkvSGlzdG9yeUl0ZW0uY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2hpc3RvcnkvSGlz
dG9yeUl0ZW0uY3BwCkBAIC0xOTYsMTAgKzE5NiwxMCBAQCB2b2lkIEhpc3RvcnlJdGVtOjpyZXNl
dCgpCiAKICAgICBtX2l0ZW1TZXF1ZW5jZU51bWJlciA9IGdlbmVyYXRlU2VxdWVuY2VOdW1iZXIo
KTsKIAotICAgIG1fc3RhdGVPYmplY3QgPSAwOworICAgIG1fc3RhdGVPYmplY3QgPSBudWxscHRy
OwogICAgIG1fZG9jdW1lbnRTZXF1ZW5jZU51bWJlciA9IGdlbmVyYXRlU2VxdWVuY2VOdW1iZXIo
KTsKIAotICAgIG1fZm9ybURhdGEgPSAwOworICAgIG1fZm9ybURhdGEgPSBudWxscHRyOwogICAg
IG1fZm9ybUNvbnRlbnRUeXBlID0gU3RyaW5nKCk7CiAKICAgICBjbGVhckNoaWxkcmVuKCk7CkBA
IC01MjQsNyArNTI0LDcgQEAgdm9pZCBIaXN0b3J5SXRlbTo6c2V0Rm9ybUluZm9Gcm9tUmVxdWVz
dChjb25zdCBSZXNvdXJjZVJlcXVlc3QmIHJlcXVlc3QpCiAgICAgICAgIG1fZm9ybURhdGEgPSBy
ZXF1ZXN0Lmh0dHBCb2R5KCk7CiAgICAgICAgIG1fZm9ybUNvbnRlbnRUeXBlID0gcmVxdWVzdC5o
dHRwQ29udGVudFR5cGUoKTsKICAgICB9IGVsc2UgewotICAgICAgICBtX2Zvcm1EYXRhID0gMDsK
KyAgICAgICAgbV9mb3JtRGF0YSA9IG51bGxwdHI7CiAgICAgICAgIG1fZm9ybUNvbnRlbnRUeXBl
ID0gU3RyaW5nKCk7CiAgICAgfQogfQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvaHRtbC9C
YXNlQ2hvb3Nlck9ubHlEYXRlQW5kVGltZUlucHV0VHlwZS5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9o
dG1sL0Jhc2VDaG9vc2VyT25seURhdGVBbmRUaW1lSW5wdXRUeXBlLmNwcAppbmRleCBlOWE2Y2Mw
MzkzYzUwNTU2OGQ1MTM0M2M2NTdhNmJkYmFkMWE5NTIzLi5kYmVhMGU5OWJkOTM0YzdkYmRlYTUy
ZDI1ZDAxYzJmODE3NWRjMWQwIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9odG1sL0Jhc2VD
aG9vc2VyT25seURhdGVBbmRUaW1lSW5wdXRUeXBlLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9o
dG1sL0Jhc2VDaG9vc2VyT25seURhdGVBbmRUaW1lSW5wdXRUeXBlLmNwcApAQCAtOTgsNyArOTgs
NyBAQCB2b2lkIEJhc2VDaG9vc2VyT25seURhdGVBbmRUaW1lSW5wdXRUeXBlOjpkaWRDaG9vc2VW
YWx1ZShjb25zdCBTdHJpbmcmIHZhbHVlKQogCiB2b2lkIEJhc2VDaG9vc2VyT25seURhdGVBbmRU
aW1lSW5wdXRUeXBlOjpkaWRFbmRDaG9vc2VyKCkKIHsKLSAgICBtX2RhdGVUaW1lQ2hvb3Nlci5j
bGVhcigpOworICAgIG1fZGF0ZVRpbWVDaG9vc2VyID0gbnVsbHB0cjsKIH0KIAogdm9pZCBCYXNl
Q2hvb3Nlck9ubHlEYXRlQW5kVGltZUlucHV0VHlwZTo6Y2xvc2VEYXRlVGltZUNob29zZXIoKQpk
aWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvaHRtbC9GVFBEaXJlY3RvcnlEb2N1bWVudC5jcHAg
Yi9Tb3VyY2UvV2ViQ29yZS9odG1sL0ZUUERpcmVjdG9yeURvY3VtZW50LmNwcAppbmRleCBlNzU1
M2Q3NDMwM2RkOTRkYjI2MTBkY2RkMmExODBmNGY4ZWIyMDllLi4wMGRlOWZmNTcxYThlMzhlMmMy
ZDhjYzVlOWMxYmM3YzIzOTdlZTY5IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9odG1sL0ZU
UERpcmVjdG9yeURvY3VtZW50LmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9odG1sL0ZUUERpcmVj
dG9yeURvY3VtZW50LmNwcApAQCAtNDExLDcgKzQxMSw3IEBAIHZvaWQgRlRQRGlyZWN0b3J5RG9j
dW1lbnRQYXJzZXI6OmZpbmlzaCgpCiAgICAgICAgIG1fY2FycnlPdmVyID0gU3RyaW5nKCk7CiAg
ICAgfQogCi0gICAgbV90YWJsZUVsZW1lbnQgPSAwOworICAgIG1fdGFibGVFbGVtZW50ID0gbnVs
bHB0cjsKICAgICBmYXN0RnJlZShtX2J1ZmZlcik7CiAKICAgICBIVE1MRG9jdW1lbnRQYXJzZXI6
OmZpbmlzaCgpOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvaHRtbC9GaWxlSW5wdXRUeXBl
LmNwcCBiL1NvdXJjZS9XZWJDb3JlL2h0bWwvRmlsZUlucHV0VHlwZS5jcHAKaW5kZXggYTNkM2I2
YjcxMWZmZTFlOGFhMWFmZGZmYzE4NmViYzBhZjUyYzE0Ny4uNDg5ZDc5OTM4ZmNmZDIyNmZjOTk0
YzI2MGU2ZTU1MzUzYzU0YWYyOSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvaHRtbC9GaWxl
SW5wdXRUeXBlLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9odG1sL0ZpbGVJbnB1dFR5cGUuY3Bw
CkBAIC0yNTAsNyArMjUwLDcgQEAgdm9pZCBGaWxlSW5wdXRUeXBlOjpzZXRWYWx1ZShjb25zdCBT
dHJpbmcmLCBib29sLCBUZXh0RmllbGRFdmVudEJlaGF2aW9yKQogewogICAgIC8vIEZJWE1FOiBT
aG91bGQgd2UgY2xlYXIgdGhlIGZpbGUgbGlzdCwgb3IgcmVwbGFjZSBpdCB3aXRoIGEgbmV3IGVt
cHR5IG9uZSBoZXJlPyBUaGlzIGlzIG9ic2VydmFibGUgZnJvbSBKYXZhU2NyaXB0IHRocm91Z2gg
Y3VzdG9tIHByb3BlcnRpZXMuCiAgICAgbV9maWxlTGlzdC0+Y2xlYXIoKTsKLSAgICBtX2ljb24u
Y2xlYXIoKTsKKyAgICBtX2ljb24gPSBudWxscHRyOwogICAgIGVsZW1lbnQoKS5zZXROZWVkc1N0
eWxlUmVjYWxjKCk7CiB9CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTENh
bnZhc0VsZW1lbnQuY3BwIGIvU291cmNlL1dlYkNvcmUvaHRtbC9IVE1MQ2FudmFzRWxlbWVudC5j
cHAKaW5kZXggODZkNDVhNDhhMGM3NjJkYWI3MjZmZDk5NmFmNzI0NmM4MTg3ODY2My4uY2U1ZDdi
MmE1ZjI3ZjRjNzZmNTEwZDZlZjU5NWUzMGFhMjU0YTMyYSAxMDA2NDQKLS0tIGEvU291cmNlL1dl
YkNvcmUvaHRtbC9IVE1MQ2FudmFzRWxlbWVudC5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvaHRt
bC9IVE1MQ2FudmFzRWxlbWVudC5jcHAKQEAgLTQyMyw3ICs0MjMsNyBAQCB2b2lkIEhUTUxDYW52
YXNFbGVtZW50OjptYWtlUHJlc2VudGF0aW9uQ29weSgpCiAKIHZvaWQgSFRNTENhbnZhc0VsZW1l
bnQ6OmNsZWFyUHJlc2VudGF0aW9uQ29weSgpCiB7Ci0gICAgbV9wcmVzZW50ZWRJbWFnZS5jbGVh
cigpOworICAgIG1fcHJlc2VudGVkSW1hZ2UgPSBudWxscHRyOwogfQogCiB2b2lkIEhUTUxDYW52
YXNFbGVtZW50OjpzZXRTdXJmYWNlU2l6ZShjb25zdCBJbnRTaXplJiBzaXplKQpAQCAtNjQ0LDcg
KzY0NCw3IEBAIHZvaWQgSFRNTENhbnZhc0VsZW1lbnQ6OmNsZWFySW1hZ2VCdWZmZXIoKSBjb25z
dAogCiB2b2lkIEhUTUxDYW52YXNFbGVtZW50OjpjbGVhckNvcGllZEltYWdlKCkKIHsKLSAgICBt
X2NvcGllZEltYWdlLmNsZWFyKCk7CisgICAgbV9jb3BpZWRJbWFnZSA9IG51bGxwdHI7CiAgICAg
bV9kaWRDbGVhckltYWdlQnVmZmVyID0gZmFsc2U7CiB9CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9X
ZWJDb3JlL2h0bWwvSFRNTExpbmtFbGVtZW50LmNwcCBiL1NvdXJjZS9XZWJDb3JlL2h0bWwvSFRN
TExpbmtFbGVtZW50LmNwcAppbmRleCBjMjNlZGZmM2EyYWFlY2YxYjBkYzBhNjVlOTg0OWQ1OTky
ZDZhYjI3Li5lNGUxMjgxMWM4NDUxMzIwMzhkODdjZjNiYzZjODQ0NjMzZjAwZWUxIDEwMDY0NAot
LS0gYS9Tb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxMaW5rRWxlbWVudC5jcHAKKysrIGIvU291cmNl
L1dlYkNvcmUvaHRtbC9IVE1MTGlua0VsZW1lbnQuY3BwCkBAIC0yNjQsNyArMjY0LDcgQEAgdm9p
ZCBIVE1MTGlua0VsZW1lbnQ6OmNsZWFyU2hlZXQoKQogICAgIEFTU0VSVChtX3NoZWV0KTsKICAg
ICBBU1NFUlQobV9zaGVldC0+b3duZXJOb2RlKCkgPT0gdGhpcyk7CiAgICAgbV9zaGVldC0+Y2xl
YXJPd25lck5vZGUoKTsKLSAgICBtX3NoZWV0ID0gMDsKKyAgICBtX3NoZWV0ID0gbnVsbHB0cjsK
IH0KIAogTm9kZTo6SW5zZXJ0aW9uTm90aWZpY2F0aW9uUmVxdWVzdCBIVE1MTGlua0VsZW1lbnQ6
Omluc2VydGVkSW50byhDb250YWluZXJOb2RlJiBpbnNlcnRpb25Qb2ludCkKZGlmZiAtLWdpdCBh
L1NvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTE1lZGlhRWxlbWVudC5jcHAgYi9Tb3VyY2UvV2ViQ29y
ZS9odG1sL0hUTUxNZWRpYUVsZW1lbnQuY3BwCmluZGV4IDRmZWFlYjk3Yzk5YzE4NTE1NGQ3ZjM5
OTM3ZjRiZTVjNmM0MzgzZTEuLmRkODg5MmYzY2I0Y2Q3OGRkNGZkZjc4MGZlMmUwNTFkYTJkYzQ5
NjYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTE1lZGlhRWxlbWVudC5jcHAK
KysrIGIvU291cmNlL1dlYkNvcmUvaHRtbC9IVE1MTWVkaWFFbGVtZW50LmNwcApAQCAtNDU3LDcg
KzQ1Nyw3IEBAIEhUTUxNZWRpYUVsZW1lbnQ6On5IVE1MTWVkaWFFbGVtZW50KCkKIAogICAgIGlm
IChtX21lZGlhQ29udHJvbGxlcikgewogICAgICAgICBtX21lZGlhQ29udHJvbGxlci0+cmVtb3Zl
TWVkaWFFbGVtZW50KHRoaXMpOwotICAgICAgICBtX21lZGlhQ29udHJvbGxlciA9IDA7CisgICAg
ICAgIG1fbWVkaWFDb250cm9sbGVyID0gbnVsbHB0cjsKICAgICB9CiAKICNpZiBFTkFCTEUoTUVE
SUFfU09VUkNFKQpAQCAtOTQyLDcgKzk0Miw3IEBAIHZvaWQgSFRNTE1lZGlhRWxlbWVudDo6cHJl
cGFyZUZvckxvYWQoKQogCiAgICAgLy8gMSAtIEFib3J0IGFueSBhbHJlYWR5LXJ1bm5pbmcgaW5z
dGFuY2Ugb2YgdGhlIHJlc291cmNlIHNlbGVjdGlvbiBhbGdvcml0aG0gZm9yIHRoaXMgZWxlbWVu
dC4KICAgICBtX2xvYWRTdGF0ZSA9IFdhaXRpbmdGb3JTb3VyY2U7Ci0gICAgbV9jdXJyZW50U291
cmNlTm9kZSA9IDA7CisgICAgbV9jdXJyZW50U291cmNlTm9kZSA9IG51bGxwdHI7CiAKICAgICAv
LyAyIC0gSWYgdGhlcmUgYXJlIGFueSB0YXNrcyBmcm9tIHRoZSBtZWRpYSBlbGVtZW50J3MgbWVk
aWEgZWxlbWVudCBldmVudCB0YXNrIHNvdXJjZSBpbiAKICAgICAvLyBvbmUgb2YgdGhlIHRhc2sg
cXVldWVzLCB0aGVuIHJlbW92ZSB0aG9zZSB0YXNrcy4KQEAgLTEwMDYsNyArMTAwNiw3IEBAIHZv
aWQgSFRNTE1lZGlhRWxlbWVudDo6cHJlcGFyZUZvckxvYWQoKQogICAgIHNldFBsYXliYWNrUmF0
ZShkZWZhdWx0UGxheWJhY2tSYXRlKCkpOwogCiAgICAgLy8gNiAtIFNldCB0aGUgZXJyb3IgYXR0
cmlidXRlIHRvIG51bGwgYW5kIHRoZSBhdXRvcGxheWluZyBmbGFnIHRvIHRydWUuCi0gICAgbV9l
cnJvciA9IDA7CisgICAgbV9lcnJvciA9IG51bGxwdHI7CiAgICAgbV9hdXRvcGxheWluZyA9IHRy
dWU7CiAKICAgICAvLyA3IC0gSW52b2tlIHRoZSBtZWRpYSBlbGVtZW50J3MgcmVzb3VyY2Ugc2Vs
ZWN0aW9uIGFsZ29yaXRobS4KQEAgLTExMDEsNyArMTEwMSw3IEBAIHZvaWQgSFRNTE1lZGlhRWxl
bWVudDo6c2VsZWN0TWVkaWFSZXNvdXJjZSgpCiAgICAgICAgIGlmIChhdXRvIGZpcnN0U291cmNl
ID0gY2hpbGRyZW5PZlR5cGU8SFRNTFNvdXJjZUVsZW1lbnQ+KCp0aGlzKS5maXJzdCgpKSB7CiAg
ICAgICAgICAgICBtb2RlID0gY2hpbGRyZW47CiAgICAgICAgICAgICBtX25leHRDaGlsZE5vZGVU
b0NvbnNpZGVyID0gZmlyc3RTb3VyY2U7Ci0gICAgICAgICAgICBtX2N1cnJlbnRTb3VyY2VOb2Rl
ID0gMDsKKyAgICAgICAgICAgIG1fY3VycmVudFNvdXJjZU5vZGUgPSBudWxscHRyOwogICAgICAg
ICB9IGVsc2UgewogICAgICAgICAgICAgLy8gT3RoZXJ3aXNlIHRoZSBtZWRpYSBlbGVtZW50IGhh
cyBuZWl0aGVyIGEgc3JjIGF0dHJpYnV0ZSBub3IgYSBzb3VyY2UgZWxlbWVudCAKICAgICAgICAg
ICAgIC8vIGNoaWxkOiBzZXQgdGhlIG5ldHdvcmtTdGF0ZSB0byBORVRXT1JLX0VNUFRZLCBhbmQg
YWJvcnQgdGhlc2Ugc3RlcHM7IHRoZSAKQEAgLTEyNzcsNyArMTI3Nyw3IEBAIHZvaWQgSFRNTE1l
ZGlhRWxlbWVudDo6bG9hZFJlc291cmNlKGNvbnN0IFVSTCYgaW5pdGlhbFVSTCwgQ29udGVudFR5
cGUmIGNvbnRlbnRUCiAgICAgICAgIGVsc2UgewogICAgICAgICAgICAgLy8gRm9yZ2V0IG91ciBy
ZWZlcmVuY2UgdG8gdGhlIE1lZGlhU291cmNlLCBzbyB3ZSBsZWF2ZSBpdCBhbG9uZQogICAgICAg
ICAgICAgLy8gd2hpbGUgcHJvY2Vzc2luZyByZW1haW5kZXIgb2YgbG9hZCBmYWlsdXJlLgotICAg
ICAgICAgICAgbV9tZWRpYVNvdXJjZSA9IDA7CisgICAgICAgICAgICBtX21lZGlhU291cmNlID0g
bnVsbHB0cjsKICAgICAgICAgICAgIG1lZGlhTG9hZGluZ0ZhaWxlZChNZWRpYVBsYXllcjo6Rm9y
bWF0RXJyb3IpOwogICAgICAgICB9CiAgICAgfSBlbHNlCkBAIC0xODAwLDcgKzE4MDAsNyBAQCB2
b2lkIEhUTUxNZWRpYUVsZW1lbnQ6Om5vbmVTdXBwb3J0ZWQoKQogCiAgICAgc3RvcFBlcmlvZGlj
VGltZXJzKCk7CiAgICAgbV9sb2FkU3RhdGUgPSBXYWl0aW5nRm9yU291cmNlOwotICAgIG1fY3Vy
cmVudFNvdXJjZU5vZGUgPSAwOworICAgIG1fY3VycmVudFNvdXJjZU5vZGUgPSBudWxscHRyOwog
CiAgICAgLy8gNC44LjEwLjUgCiAgICAgLy8gNiAtIFJlYWNoaW5nIHRoaXMgc3RlcCBpbmRpY2F0
ZXMgdGhhdCB0aGUgbWVkaWEgcmVzb3VyY2UgZmFpbGVkIHRvIGxvYWQgb3IgdGhhdCB0aGUgZ2l2
ZW4gCkBAIC0yOTM5LDcgKzI5MzksNyBAQCB2b2lkIEhUTUxNZWRpYUVsZW1lbnQ6OmNsb3NlTWVk
aWFTb3VyY2UoKQogICAgICAgICByZXR1cm47CiAKICAgICBtX21lZGlhU291cmNlLT5jbG9zZSgp
OwotICAgIG1fbWVkaWFTb3VyY2UgPSAwOworICAgIG1fbWVkaWFTb3VyY2UgPSBudWxscHRyOwog
fQogI2VuZGlmCiAKQEAgLTQxMTIsOCArNDExMiw4IEBAIGNoZWNrX2FnYWluOgogICAgICAgICBt
X2N1cnJlbnRTb3VyY2VOb2RlID0gc291cmNlOwogICAgICAgICBtX25leHRDaGlsZE5vZGVUb0Nv
bnNpZGVyID0gc291cmNlLT5uZXh0U2libGluZygpOwogICAgIH0gZWxzZSB7Ci0gICAgICAgIG1f
Y3VycmVudFNvdXJjZU5vZGUgPSAwOwotICAgICAgICBtX25leHRDaGlsZE5vZGVUb0NvbnNpZGVy
ID0gMDsKKyAgICAgICAgbV9jdXJyZW50U291cmNlTm9kZSA9IG51bGxwdHI7CisgICAgICAgIG1f
bmV4dENoaWxkTm9kZVRvQ29uc2lkZXIgPSBudWxscHRyOwogICAgIH0KIAogI2lmICFMT0dfRElT
QUJMRUQKQEAgLTQxOTMsNyArNDE5Myw3IEBAIHZvaWQgSFRNTE1lZGlhRWxlbWVudDo6c291cmNl
V2FzUmVtb3ZlZChIVE1MU291cmNlRWxlbWVudCogc291cmNlKQogICAgICAgICAvLyBDbGVhciB0
aGUgY3VycmVudCBzb3VyY2Ugbm9kZSBwb2ludGVyLCBidXQgZG9uJ3QgY2hhbmdlIHRoZSBtb3Zp
ZSBhcyB0aGUgc3BlYyBzYXlzOgogICAgICAgICAvLyA0LjguOCAtIER5bmFtaWNhbGx5IG1vZGlm
eWluZyBhIHNvdXJjZSBlbGVtZW50IGFuZCBpdHMgYXR0cmlidXRlIHdoZW4gdGhlIGVsZW1lbnQg
aXMgYWxyZWFkeSAKICAgICAgICAgLy8gaW5zZXJ0ZWQgaW4gYSB2aWRlbyBvciBhdWRpbyBlbGVt
ZW50IHdpbGwgaGF2ZSBubyBlZmZlY3QuCi0gICAgICAgIG1fY3VycmVudFNvdXJjZU5vZGUgPSAw
OworICAgICAgICBtX2N1cnJlbnRTb3VyY2VOb2RlID0gbnVsbHB0cjsKICAgICAgICAgTE9HKE1l
ZGlhLCAiSFRNTE1lZGlhRWxlbWVudDo6c291cmNlUmVtb3ZlZCglcCkgLSBtX2N1cnJlbnRTb3Vy
Y2VOb2RlIHNldCB0byAwIiwgdGhpcyk7CiAgICAgfQogfQpAQCAtNDc5NSw3ICs0Nzk1LDcgQEAg
dm9pZCBIVE1MTWVkaWFFbGVtZW50Ojp1c2VyQ2FuY2VsbGVkTG9hZCgpCiAgICAgc2V0U2hvdWxk
RGVsYXlMb2FkRXZlbnQoZmFsc2UpOwogCiAgICAgLy8gNiAtIEFib3J0IHRoZSBvdmVyYWxsIHJl
c291cmNlIHNlbGVjdGlvbiBhbGdvcml0aG0uCi0gICAgbV9jdXJyZW50U291cmNlTm9kZSA9IDA7
CisgICAgbV9jdXJyZW50U291cmNlTm9kZSA9IG51bGxwdHI7CiAKICAgICAvLyBSZXNldCBtX3Jl
YWR5U3RhdGUgc2luY2UgbV9wbGF5ZXIgaXMgZ29uZS4KICAgICBtX3JlYWR5U3RhdGUgPSBIQVZF
X05PVEhJTkc7CkBAIC00ODEyLDggKzQ4MTIsOCBAQCB2b2lkIEhUTUxNZWRpYUVsZW1lbnQ6OmNs
ZWFyTWVkaWFQbGF5ZXIoaW50IGZsYWdzKQogCiAjaWYgVVNFKFBMQVRGT1JNX1RFWFRfVFJBQ0tf
TUVOVSkKICAgICBpZiAocGxhdGZvcm1UZXh0VHJhY2tNZW51KCkpIHsKLSAgICAgICAgbV9wbGF0
Zm9ybU1lbnUtPnNldENsaWVudCgwKTsKLSAgICAgICAgbV9wbGF0Zm9ybU1lbnUgPSAwOworICAg
ICAgICBtX3BsYXRmb3JtTWVudS0+c2V0Q2xpZW50KG51bGxwdHIpOworICAgICAgICBtX3BsYXRm
b3JtTWVudSA9IG51bGxwdHI7CiAgICAgfQogI2VuZGlmCiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9X
ZWJDb3JlL2h0bWwvSFRNTFBsdWdJbkVsZW1lbnQuY3BwIGIvU291cmNlL1dlYkNvcmUvaHRtbC9I
VE1MUGx1Z0luRWxlbWVudC5jcHAKaW5kZXggMjIwNDZlYTg0MzU1NmM0ODBmMTNiNzk1NjMyZTc5
M2NmYTc0M2E5OS4uZDc4NmRmNGZlODcxMDNmNTIwMTNhYjdkNzc5OTcxMDQ1ZGEyYzk2MSAxMDA2
NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvaHRtbC9IVE1MUGx1Z0luRWxlbWVudC5jcHAKKysrIGIv
U291cmNlL1dlYkNvcmUvaHRtbC9IVE1MUGx1Z0luRWxlbWVudC5jcHAKQEAgLTEwNCw3ICsxMDQs
NyBAQCBib29sIEhUTUxQbHVnSW5FbGVtZW50Ojp3aWxsUmVzcG9uZFRvTW91c2VDbGlja0V2ZW50
cygpCiAKIHZvaWQgSFRNTFBsdWdJbkVsZW1lbnQ6OndpbGxEZXRhY2hSZW5kZXJlcnMoKQogewot
ICAgIG1faW5zdGFuY2UuY2xlYXIoKTsKKyAgICBtX2luc3RhbmNlID0gbnVsbHB0cjsKIAogICAg
IGlmIChtX2lzQ2FwdHVyaW5nTW91c2VFdmVudHMpIHsKICAgICAgICAgaWYgKEZyYW1lKiBmcmFt
ZSA9IGRvY3VtZW50KCkuZnJhbWUoKSkKQEAgLTEyMiw3ICsxMjIsNyBAQCB2b2lkIEhUTUxQbHVn
SW5FbGVtZW50Ojp3aWxsRGV0YWNoUmVuZGVyZXJzKCkKIAogdm9pZCBIVE1MUGx1Z0luRWxlbWVu
dDo6cmVzZXRJbnN0YW5jZSgpCiB7Ci0gICAgbV9pbnN0YW5jZS5jbGVhcigpOworICAgIG1faW5z
dGFuY2UgPSBudWxscHRyOwogfQogCiBQYXNzUmVmUHRyPEpTQzo6QmluZGluZ3M6Okluc3RhbmNl
PiBIVE1MUGx1Z0luRWxlbWVudDo6Z2V0SW5zdGFuY2UoKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dl
YkNvcmUvaHRtbC9IVE1MVGFibGVFbGVtZW50LmNwcCBiL1NvdXJjZS9XZWJDb3JlL2h0bWwvSFRN
TFRhYmxlRWxlbWVudC5jcHAKaW5kZXggNGZiNjU2OWFlMjFlOTU3MzYzNzAwMjM2MGNhMzNmOWI1
MTcyYzU1ZC4uNzQ1NzM2MWI2ZTEyNWVhZWY5NjVhZjU0NTMzYmYzM2Y2ODQ2ZWFhNyAxMDA2NDQK
LS0tIGEvU291cmNlL1dlYkNvcmUvaHRtbC9IVE1MVGFibGVFbGVtZW50LmNwcAorKysgYi9Tb3Vy
Y2UvV2ViQ29yZS9odG1sL0hUTUxUYWJsZUVsZW1lbnQuY3BwCkBAIC00MDIsNyArNDAyLDcgQEAg
dm9pZCBIVE1MVGFibGVFbGVtZW50OjpwYXJzZUF0dHJpYnV0ZShjb25zdCBRdWFsaWZpZWROYW1l
JiBuYW1lLCBjb25zdCBBdG9taWNTdHIKICAgICAgICAgSFRNTEVsZW1lbnQ6OnBhcnNlQXR0cmli
dXRlKG5hbWUsIHZhbHVlKTsKIAogICAgIGlmIChib3JkZXJzQmVmb3JlICE9IGNlbGxCb3JkZXJz
KCkgfHwgb2xkUGFkZGluZyAhPSBtX3BhZGRpbmcpIHsKLSAgICAgICAgbV9zaGFyZWRDZWxsU3R5
bGUgPSAwOworICAgICAgICBtX3NoYXJlZENlbGxTdHlsZSA9IG51bGxwdHI7CiAgICAgICAgIGJv
b2wgY2VsbENoYW5nZWQgPSBmYWxzZTsKICAgICAgICAgZm9yIChOb2RlKiBjaGlsZCA9IGZpcnN0
Q2hpbGQoKTsgY2hpbGQ7IGNoaWxkID0gY2hpbGQtPm5leHRTaWJsaW5nKCkpCiAgICAgICAgICAg
ICBjZWxsQ2hhbmdlZCB8PSBzZXRUYWJsZUNlbGxzQ2hhbmdlZChjaGlsZCk7CmRpZmYgLS1naXQg
YS9Tb3VyY2UvV2ViQ29yZS9odG1sL1BsdWdpbkRvY3VtZW50LmNwcCBiL1NvdXJjZS9XZWJDb3Jl
L2h0bWwvUGx1Z2luRG9jdW1lbnQuY3BwCmluZGV4IDc3OTZjMjdiM2RjMTg3MmNiNjExYjc4NjUx
ZDQyMjVlYTIzNjM0OTguLmU5Njc3MDkwZjRjMzg1M2E3Y2ZmMjA4YjIzYzMxZGM5ZDI1NDQ4MjEg
MTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2h0bWwvUGx1Z2luRG9jdW1lbnQuY3BwCisrKyBi
L1NvdXJjZS9XZWJDb3JlL2h0bWwvUGx1Z2luRG9jdW1lbnQuY3BwCkBAIC0xNjgsOCArMTY4LDgg
QEAgdm9pZCBQbHVnaW5Eb2N1bWVudDo6c2V0UGx1Z2luRWxlbWVudChQYXNzUmVmUHRyPEhUTUxQ
bHVnSW5FbGVtZW50PiBlbGVtZW50KQogdm9pZCBQbHVnaW5Eb2N1bWVudDo6ZGV0YWNoRnJvbVBs
dWdpbkVsZW1lbnQoKQogewogICAgIC8vIFJlbGVhc2UgdGhlIHBsdWdpbiBFbGVtZW50IHNvIHRo
YXQgd2UgZG9uJ3QgaGF2ZSBhIGNpcmN1bGFyIHJlZmVyZW5jZS4KLSAgICBtX3BsdWdpbkVsZW1l
bnQgPSAwOwotICAgIGZyYW1lKCktPmxvYWRlcigpLmNsaWVudCgpLnJlZGlyZWN0RGF0YVRvUGx1
Z2luKDApOworICAgIG1fcGx1Z2luRWxlbWVudCA9IG51bGxwdHI7CisgICAgZnJhbWUoKS0+bG9h
ZGVyKCkuY2xpZW50KCkucmVkaXJlY3REYXRhVG9QbHVnaW4obnVsbHB0cik7CiB9CiAKIHZvaWQg
UGx1Z2luRG9jdW1lbnQ6OmNhbmNlbE1hbnVhbFBsdWdpbkxvYWQoKQpkaWZmIC0tZ2l0IGEvU291
cmNlL1dlYkNvcmUvaHRtbC9UZXh0RmllbGRJbnB1dFR5cGUuY3BwIGIvU291cmNlL1dlYkNvcmUv
aHRtbC9UZXh0RmllbGRJbnB1dFR5cGUuY3BwCmluZGV4IDRiMjhhYThkYTJkMWE1NWRkOWVhNDIw
ZTQxNDJlMTRlNzMxYjc5YzUuLmVhZTNkYjI5ZWVlM2MyZGU5NWZlNzE4MGM1NDZmZjhlN2UyYTc2
N2UgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2h0bWwvVGV4dEZpZWxkSW5wdXRUeXBlLmNw
cAorKysgYi9Tb3VyY2UvV2ViQ29yZS9odG1sL1RleHRGaWVsZElucHV0VHlwZS5jcHAKQEAgLTQ2
Miw3ICs0NjIsNyBAQCB2b2lkIFRleHRGaWVsZElucHV0VHlwZTo6dXBkYXRlUGxhY2Vob2xkZXJU
ZXh0KCkKICAgICBpZiAocGxhY2Vob2xkZXJUZXh0LmlzRW1wdHkoKSkgewogICAgICAgICBpZiAo
bV9wbGFjZWhvbGRlcikgewogICAgICAgICAgICAgbV9wbGFjZWhvbGRlci0+cGFyZW50Tm9kZSgp
LT5yZW1vdmVDaGlsZChtX3BsYWNlaG9sZGVyLmdldCgpLCBBU1NFUlRfTk9fRVhDRVBUSU9OKTsK
LSAgICAgICAgICAgIG1fcGxhY2Vob2xkZXIuY2xlYXIoKTsKKyAgICAgICAgICAgIG1fcGxhY2Vo
b2xkZXIgPSBudWxscHRyOwogICAgICAgICB9CiAgICAgICAgIHJldHVybjsKICAgICB9CmRpZmYg
LS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9odG1sL1ZhbGlkYXRpb25NZXNzYWdlLmNwcCBiL1NvdXJj
ZS9XZWJDb3JlL2h0bWwvVmFsaWRhdGlvbk1lc3NhZ2UuY3BwCmluZGV4IDUzYjY3NWJjMmI0OTQ2
NzRlN2JmYzViYTM5YjY5YjY2Zjg5NWYwYjguLmY2MWUxYjVlZmUyNzA5MzFkYWIwZWMyZWVkZjBm
MzRiZDc3ODJiOTYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2h0bWwvVmFsaWRhdGlvbk1l
c3NhZ2UuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2h0bWwvVmFsaWRhdGlvbk1lc3NhZ2UuY3Bw
CkBAIC0yMzUsMTAgKzIzNSwxMCBAQCB2b2lkIFZhbGlkYXRpb25NZXNzYWdlOjpkZWxldGVCdWJi
bGVUcmVlKCkKIHsKICAgICBBU1NFUlQoIXZhbGlkYXRpb25NZXNzYWdlQ2xpZW50KCkpOwogICAg
IGlmIChtX2J1YmJsZSkgewotICAgICAgICBtX21lc3NhZ2VIZWFkaW5nID0gMDsKLSAgICAgICAg
bV9tZXNzYWdlQm9keSA9IDA7CisgICAgICAgIG1fbWVzc2FnZUhlYWRpbmcgPSBudWxscHRyOwor
ICAgICAgICBtX21lc3NhZ2VCb2R5ID0gbnVsbHB0cjsKICAgICAgICAgbV9lbGVtZW50LT51c2Vy
QWdlbnRTaGFkb3dSb290KCktPnJlbW92ZUNoaWxkKG1fYnViYmxlLmdldCgpLCBBU1NFUlRfTk9f
RVhDRVBUSU9OKTsKLSAgICAgICAgbV9idWJibGUgPSAwOworICAgICAgICBtX2J1YmJsZSA9IG51
bGxwdHI7CiAgICAgfQogICAgIG1fbWVzc2FnZSA9IFN0cmluZygpOwogfQpkaWZmIC0tZ2l0IGEv
U291cmNlL1dlYkNvcmUvaHRtbC9jYW52YXMvV2ViR0xQcm9ncmFtLmNwcCBiL1NvdXJjZS9XZWJD
b3JlL2h0bWwvY2FudmFzL1dlYkdMUHJvZ3JhbS5jcHAKaW5kZXggOTJjMDUxMTkwMWQzMDZjMzg1
MzlkNTUzMzk4ZjE1MDJiM2YwYWRhYy4uMWI3NTJlNmUwZmRiNGJhNjNjOTNiYzJlNzUzMDYyNTY1
YzJkNGNkNyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvaHRtbC9jYW52YXMvV2ViR0xQcm9n
cmFtLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9odG1sL2NhbnZhcy9XZWJHTFByb2dyYW0uY3Bw
CkBAIC01OCwxMSArNTgsMTEgQEAgdm9pZCBXZWJHTFByb2dyYW06OmRlbGV0ZU9iamVjdEltcGwo
R3JhcGhpY3NDb250ZXh0M0QqIGNvbnRleHQzZCwgUGxhdGZvcm0zRE9iamUKICAgICBjb250ZXh0
M2QtPmRlbGV0ZVByb2dyYW0ob2JqKTsKICAgICBpZiAobV92ZXJ0ZXhTaGFkZXIpIHsKICAgICAg
ICAgbV92ZXJ0ZXhTaGFkZXItPm9uRGV0YWNoZWQoY29udGV4dDNkKTsKLSAgICAgICAgbV92ZXJ0
ZXhTaGFkZXIgPSAwOworICAgICAgICBtX3ZlcnRleFNoYWRlciA9IG51bGxwdHI7CiAgICAgfQog
ICAgIGlmIChtX2ZyYWdtZW50U2hhZGVyKSB7CiAgICAgICAgIG1fZnJhZ21lbnRTaGFkZXItPm9u
RGV0YWNoZWQoY29udGV4dDNkKTsKLSAgICAgICAgbV9mcmFnbWVudFNoYWRlciA9IDA7CisgICAg
ICAgIG1fZnJhZ21lbnRTaGFkZXIgPSBudWxscHRyOwogICAgIH0KIH0KIApAQCAtMTQ4LDEyICsx
NDgsMTIgQEAgYm9vbCBXZWJHTFByb2dyYW06OmRldGFjaFNoYWRlcihXZWJHTFNoYWRlciogc2hh
ZGVyKQogICAgIGNhc2UgR3JhcGhpY3NDb250ZXh0M0Q6OlZFUlRFWF9TSEFERVI6CiAgICAgICAg
IGlmIChtX3ZlcnRleFNoYWRlciAhPSBzaGFkZXIpCiAgICAgICAgICAgICByZXR1cm4gZmFsc2U7
Ci0gICAgICAgIG1fdmVydGV4U2hhZGVyID0gMDsKKyAgICAgICAgbV92ZXJ0ZXhTaGFkZXIgPSBu
dWxscHRyOwogICAgICAgICByZXR1cm4gdHJ1ZTsKICAgICBjYXNlIEdyYXBoaWNzQ29udGV4dDNE
OjpGUkFHTUVOVF9TSEFERVI6CiAgICAgICAgIGlmIChtX2ZyYWdtZW50U2hhZGVyICE9IHNoYWRl
cikKICAgICAgICAgICAgIHJldHVybiBmYWxzZTsKLSAgICAgICAgbV9mcmFnbWVudFNoYWRlciA9
IDA7CisgICAgICAgIG1fZnJhZ21lbnRTaGFkZXIgPSBudWxscHRyOwogICAgICAgICByZXR1cm4g
dHJ1ZTsKICAgICBkZWZhdWx0OgogICAgICAgICByZXR1cm4gZmFsc2U7CmRpZmYgLS1naXQgYS9T
b3VyY2UvV2ViQ29yZS9odG1sL2NhbnZhcy9XZWJHTFJlbmRlcmluZ0NvbnRleHRCYXNlLmNwcCBi
L1NvdXJjZS9XZWJDb3JlL2h0bWwvY2FudmFzL1dlYkdMUmVuZGVyaW5nQ29udGV4dEJhc2UuY3Bw
CmluZGV4IGI2NmI2NjkwNGIxNGZmZGUyZjMzOWFkNmRhMjc2ZjZkNzZjMWI0YTMuLjdhMWNmZjNm
MjgzYTg4ODZjMTcyM2FhMDNmZGY5NzE5MWNlZGZlNTggMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJD
b3JlL2h0bWwvY2FudmFzL1dlYkdMUmVuZGVyaW5nQ29udGV4dEJhc2UuY3BwCisrKyBiL1NvdXJj
ZS9XZWJDb3JlL2h0bWwvY2FudmFzL1dlYkdMUmVuZGVyaW5nQ29udGV4dEJhc2UuY3BwCkBAIC00
OTQsMTAgKzQ5NCwxMCBAQCB2b2lkIFdlYkdMUmVuZGVyaW5nQ29udGV4dEJhc2U6OmluaXRpYWxp
emVOZXdDb250ZXh0KCkKICAgICBtX3VucGFja0ZsaXBZID0gZmFsc2U7CiAgICAgbV91bnBhY2tQ
cmVtdWx0aXBseUFscGhhID0gZmFsc2U7CiAgICAgbV91bnBhY2tDb2xvcnNwYWNlQ29udmVyc2lv
biA9IEdyYXBoaWNzQ29udGV4dDNEOjpCUk9XU0VSX0RFRkFVTFRfV0VCR0w7Ci0gICAgbV9ib3Vu
ZEFycmF5QnVmZmVyID0gMDsKLSAgICBtX2N1cnJlbnRQcm9ncmFtID0gMDsKLSAgICBtX2ZyYW1l
YnVmZmVyQmluZGluZyA9IDA7Ci0gICAgbV9yZW5kZXJidWZmZXJCaW5kaW5nID0gMDsKKyAgICBt
X2JvdW5kQXJyYXlCdWZmZXIgPSBudWxscHRyOworICAgIG1fY3VycmVudFByb2dyYW0gPSBudWxs
cHRyOworICAgIG1fZnJhbWVidWZmZXJCaW5kaW5nID0gbnVsbHB0cjsKKyAgICBtX3JlbmRlcmJ1
ZmZlckJpbmRpbmcgPSBudWxscHRyOwogICAgIG1fZGVwdGhNYXNrID0gdHJ1ZTsKICAgICBtX3N0
ZW5jaWxFbmFibGVkID0gZmFsc2U7CiAgICAgbV9zdGVuY2lsTWFzayA9IDB4RkZGRkZGRkY7CkBA
IC02MjMsNyArNjIzLDcgQEAgdm9pZCBXZWJHTFJlbmRlcmluZ0NvbnRleHRCYXNlOjpkZXN0cm95
R3JhcGhpY3NDb250ZXh0M0QoKQogICAgIGlmIChtX2NvbnRleHQpIHsKICAgICAgICAgbV9jb250
ZXh0LT5zZXRDb250ZXh0TG9zdENhbGxiYWNrKG51bGxwdHIpOwogICAgICAgICBtX2NvbnRleHQt
PnNldEVycm9yTWVzc2FnZUNhbGxiYWNrKG51bGxwdHIpOwotICAgICAgICBtX2NvbnRleHQuY2xl
YXIoKTsKKyAgICAgICAgbV9jb250ZXh0ID0gbnVsbHB0cjsKICAgICB9CiB9CiAKQEAgLTE0Nzks
NyArMTQ3OSw3IEBAIHZvaWQgV2ViR0xSZW5kZXJpbmdDb250ZXh0QmFzZTo6ZGVsZXRlQnVmZmVy
KFdlYkdMQnVmZmVyKiBidWZmZXIpCiAgICAgaWYgKCFkZWxldGVPYmplY3QoYnVmZmVyKSkKICAg
ICAgICAgcmV0dXJuOwogICAgIGlmIChtX2JvdW5kQXJyYXlCdWZmZXIgPT0gYnVmZmVyKQotICAg
ICAgICBtX2JvdW5kQXJyYXlCdWZmZXIgPSAwOworICAgICAgICBtX2JvdW5kQXJyYXlCdWZmZXIg
PSBudWxscHRyOwogCiAgICAgbV9ib3VuZFZlcnRleEFycmF5T2JqZWN0LT51bmJpbmRCdWZmZXIo
YnVmZmVyKTsKIH0KQEAgLTE0ODksNyArMTQ4OSw3IEBAIHZvaWQgV2ViR0xSZW5kZXJpbmdDb250
ZXh0QmFzZTo6ZGVsZXRlRnJhbWVidWZmZXIoV2ViR0xGcmFtZWJ1ZmZlciogZnJhbWVidWZmZXIp
CiAgICAgaWYgKCFkZWxldGVPYmplY3QoZnJhbWVidWZmZXIpKQogICAgICAgICByZXR1cm47CiAg
ICAgaWYgKGZyYW1lYnVmZmVyID09IG1fZnJhbWVidWZmZXJCaW5kaW5nKSB7Ci0gICAgICAgIG1f
ZnJhbWVidWZmZXJCaW5kaW5nID0gMDsKKyAgICAgICAgbV9mcmFtZWJ1ZmZlckJpbmRpbmcgPSBu
dWxscHRyOwogICAgICAgICBtX2NvbnRleHQtPmJpbmRGcmFtZWJ1ZmZlcihHcmFwaGljc0NvbnRl
eHQzRDo6RlJBTUVCVUZGRVIsIDApOwogICAgIH0KIH0KQEAgLTE1MDYsNyArMTUwNiw3IEBAIHZv
aWQgV2ViR0xSZW5kZXJpbmdDb250ZXh0QmFzZTo6ZGVsZXRlUmVuZGVyYnVmZmVyKFdlYkdMUmVu
ZGVyYnVmZmVyKiByZW5kZXJidWZmCiAgICAgaWYgKCFkZWxldGVPYmplY3QocmVuZGVyYnVmZmVy
KSkKICAgICAgICAgcmV0dXJuOwogICAgIGlmIChyZW5kZXJidWZmZXIgPT0gbV9yZW5kZXJidWZm
ZXJCaW5kaW5nKQotICAgICAgICBtX3JlbmRlcmJ1ZmZlckJpbmRpbmcgPSAwOworICAgICAgICBt
X3JlbmRlcmJ1ZmZlckJpbmRpbmcgPSBudWxscHRyOwogICAgIGlmIChtX2ZyYW1lYnVmZmVyQmlu
ZGluZykKICAgICAgICAgbV9mcmFtZWJ1ZmZlckJpbmRpbmctPnJlbW92ZUF0dGFjaG1lbnRGcm9t
Qm91bmRGcmFtZWJ1ZmZlcihyZW5kZXJidWZmZXIpOwogfQpkaWZmIC0tZ2l0IGEvU291cmNlL1dl
YkNvcmUvaHRtbC9jYW52YXMvV2ViR0xWZXJ0ZXhBcnJheU9iamVjdEJhc2UuY3BwIGIvU291cmNl
L1dlYkNvcmUvaHRtbC9jYW52YXMvV2ViR0xWZXJ0ZXhBcnJheU9iamVjdEJhc2UuY3BwCmluZGV4
IGY2ZDhkYTY2ZTgwMTQ3OTc4ZjgxNzU3YzYzYmU0NmVhYzY5NTU4NDkuLmYzOWMwZGRkMjI3Nzlk
MDVmMTYwZDE5Nzk1NjMxOGE2MDBlYjkzY2MgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2h0
bWwvY2FudmFzL1dlYkdMVmVydGV4QXJyYXlPYmplY3RCYXNlLmNwcAorKysgYi9Tb3VyY2UvV2Vi
Q29yZS9odG1sL2NhbnZhcy9XZWJHTFZlcnRleEFycmF5T2JqZWN0QmFzZS5jcHAKQEAgLTc2LDcg
Kzc2LDcgQEAgdm9pZCBXZWJHTFZlcnRleEFycmF5T2JqZWN0QmFzZTo6dW5iaW5kQnVmZmVyKFBh
c3NSZWZQdHI8V2ViR0xCdWZmZXI+IGJ1ZmZlcikKIHsKICAgICBpZiAobV9ib3VuZEVsZW1lbnRB
cnJheUJ1ZmZlciA9PSBidWZmZXIpIHsKICAgICAgICAgbV9ib3VuZEVsZW1lbnRBcnJheUJ1ZmZl
ci0+b25EZXRhY2hlZChjb250ZXh0KCktPmdyYXBoaWNzQ29udGV4dDNEKCkpOwotICAgICAgICBt
X2JvdW5kRWxlbWVudEFycmF5QnVmZmVyID0gMDsKKyAgICAgICAgbV9ib3VuZEVsZW1lbnRBcnJh
eUJ1ZmZlciA9IG51bGxwdHI7CiAgICAgfQogICAgIAogICAgIGZvciAoc2l6ZV90IGkgPSAwOyBp
IDwgbV92ZXJ0ZXhBdHRyaWJTdGF0ZS5zaXplKCk7ICsraSkgewpAQCAtOTUsNyArOTUsNyBAQCB2
b2lkIFdlYkdMVmVydGV4QXJyYXlPYmplY3RCYXNlOjp1bmJpbmRCdWZmZXIoUGFzc1JlZlB0cjxX
ZWJHTEJ1ZmZlcj4gYnVmZmVyKQogICAgICAgICAgICAgICAgIHN0YXRlLm9yaWdpbmFsU3RyaWRl
ID0gMDsKICAgICAgICAgICAgICAgICBzdGF0ZS5vZmZzZXQgPSAwOwogICAgICAgICAgICAgfSBl
bHNlCi0gICAgICAgICAgICAgICAgc3RhdGUuYnVmZmVyQmluZGluZyA9IDA7CisgICAgICAgICAg
ICAgICAgc3RhdGUuYnVmZmVyQmluZGluZyA9IG51bGxwdHI7CiAgICAgICAgIH0KICAgICB9CiB9
CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9odG1sL3RyYWNrL1RleHRUcmFjay5jcHAgYi9T
b3VyY2UvV2ViQ29yZS9odG1sL3RyYWNrL1RleHRUcmFjay5jcHAKaW5kZXggNzRlY2YxNmQ3MDk3
NjZmNGFmMWY0NWRjMjA2YzJkZWM2MzM2YTZmMS4uMmExMzNhNWZjZWFmZTNjN2IzYmMxODZhZDJi
ODU3MGY2MTJlZDMxOSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvaHRtbC90cmFjay9UZXh0
VHJhY2suY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2h0bWwvdHJhY2svVGV4dFRyYWNrLmNwcApA
QCAtMjQ1LDcgKzI0NSw3IEBAIFRleHRUcmFja0N1ZUxpc3QqIFRleHRUcmFjazo6Y3VlcygpCiAg
ICAgLy8gaHR0cDovL3d3dy53aGF0d2cub3JnL3NwZWNzL3dlYi1hcHBzL2N1cnJlbnQtd29yay8j
ZG9tLXRleHR0cmFjay1jdWVzCiAgICAgaWYgKG1fbW9kZSAhPSBkaXNhYmxlZEtleXdvcmQoKSkK
ICAgICAgICAgcmV0dXJuIGVuc3VyZVRleHRUcmFja0N1ZUxpc3QoKTsKLSAgICByZXR1cm4gMDsK
KyAgICByZXR1cm4gbnVsbHB0cjsKIH0KIAogdm9pZCBUZXh0VHJhY2s6OnJlbW92ZUFsbEN1ZXMo
KQpAQCAtMjU3LDkgKzI1Nyw5IEBAIHZvaWQgVGV4dFRyYWNrOjpyZW1vdmVBbGxDdWVzKCkKICAg
ICAgICAgbV9jbGllbnQtPnRleHRUcmFja1JlbW92ZUN1ZXModGhpcywgbV9jdWVzLmdldCgpKTsK
ICAgICAKICAgICBmb3IgKHNpemVfdCBpID0gMDsgaSA8IG1fY3Vlcy0+bGVuZ3RoKCk7ICsraSkK
LSAgICAgICAgbV9jdWVzLT5pdGVtKGkpLT5zZXRUcmFjaygwKTsKKyAgICAgICAgbV9jdWVzLT5p
dGVtKGkpLT5zZXRUcmFjayhudWxscHRyKTsKICAgICAKLSAgICBtX2N1ZXMgPSAwOworICAgIG1f
Y3VlcyA9IG51bGxwdHI7CiB9CiAKIFRleHRUcmFja0N1ZUxpc3QqIFRleHRUcmFjazo6YWN0aXZl
Q3VlcygpIGNvbnN0CkBAIC0yNzIsNyArMjcyLDcgQEAgVGV4dFRyYWNrQ3VlTGlzdCogVGV4dFRy
YWNrOjphY3RpdmVDdWVzKCkgY29uc3QKICAgICAvLyBodHRwOi8vd3d3LndoYXR3Zy5vcmcvc3Bl
Y3Mvd2ViLWFwcHMvY3VycmVudC13b3JrLyNkb20tdGV4dHRyYWNrLWFjdGl2ZWN1ZXMKICAgICBp
ZiAobV9jdWVzICYmIG1fbW9kZSAhPSBkaXNhYmxlZEtleXdvcmQoKSkKICAgICAgICAgcmV0dXJu
IG1fY3Vlcy0+YWN0aXZlQ3VlcygpOwotICAgIHJldHVybiAwOworICAgIHJldHVybiBudWxscHRy
OwogfQogCiB2b2lkIFRleHRUcmFjazo6YWRkQ3VlKFBhc3NSZWZQdHI8VGV4dFRyYWNrQ3VlPiBw
cnBDdWUsIEV4Y2VwdGlvbkNvZGUmIGVjKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvaHRt
bC90cmFjay9WVFRDdWUuY3BwIGIvU291cmNlL1dlYkNvcmUvaHRtbC90cmFjay9WVFRDdWUuY3Bw
CmluZGV4IDM0YTJlZTc5NmE4ODgwMDY5MDMyODgzYzMxZWI4ZmYxNWU3NDdiZDMuLjBiOWM3MTc5
MzBiZjA2N2I1ZWEyM2U1MTQzMWY5ZmNlYTk3ZDZiYjUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJD
b3JlL2h0bWwvdHJhY2svVlRUQ3VlLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9odG1sL3RyYWNr
L1ZUVEN1ZS5jcHAKQEAgLTQ4Miw3ICs0ODIsNyBAQCB2b2lkIFZUVEN1ZTo6c2V0VGV4dChjb25z
dCBTdHJpbmcmIHRleHQpCiAgICAgd2lsbENoYW5nZSgpOwogICAgIC8vIENsZWFyIHRoZSBkb2N1
bWVudCBmcmFnbWVudCBidXQgZG9uJ3QgYm90aGVyIHRvIGNyZWF0ZSBpdCBhZ2FpbiBqdXN0IHll
dCBhcyB3ZSBjYW4gZG8gdGhhdAogICAgIC8vIHdoZW4gaXQgaXMgcmVxdWVzdGVkLgotICAgIG1f
d2ViVlRUTm9kZVRyZWUgPSAwOworICAgIG1fd2ViVlRUTm9kZVRyZWUgPSBudWxscHRyOwogICAg
IG1fY29udGVudCA9IHRleHQ7CiAgICAgZGlkQ2hhbmdlKCk7CiB9CmRpZmYgLS1naXQgYS9Tb3Vy
Y2UvV2ViQ29yZS9pbnNwZWN0b3IvSW5zcGVjdG9yQXBwbGljYXRpb25DYWNoZUFnZW50LmNwcCBi
L1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9JbnNwZWN0b3JBcHBsaWNhdGlvbkNhY2hlQWdlbnQu
Y3BwCmluZGV4IGZkNGNhZjYyMTQxMTlhODQ0N2MwMjk0NTc0MDRmMWY1MmJjOGUzN2EuLjJkY2Qy
NmU5OWJmM2EwN2E2NzYwOGFhZTEyZDU3NDQzOTA1YTYyNjUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9X
ZWJDb3JlL2luc3BlY3Rvci9JbnNwZWN0b3JBcHBsaWNhdGlvbkNhY2hlQWdlbnQuY3BwCisrKyBi
L1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9JbnNwZWN0b3JBcHBsaWNhdGlvbkNhY2hlQWdlbnQu
Y3BwCkBAIC01OCw3ICs1OCw3IEBAIHZvaWQgSW5zcGVjdG9yQXBwbGljYXRpb25DYWNoZUFnZW50
OjpkaWRDcmVhdGVGcm9udGVuZEFuZEJhY2tlbmQoRnJvbnRlbmRDaGFubmVsCiB2b2lkIEluc3Bl
Y3RvckFwcGxpY2F0aW9uQ2FjaGVBZ2VudDo6d2lsbERlc3Ryb3lGcm9udGVuZEFuZEJhY2tlbmQo
SW5zcGVjdG9yOjpEaXNjb25uZWN0UmVhc29uKQogewogICAgIG1fZnJvbnRlbmREaXNwYXRjaGVy
ID0gbnVsbHB0cjsKLSAgICBtX2JhY2tlbmREaXNwYXRjaGVyLmNsZWFyKCk7CisgICAgbV9iYWNr
ZW5kRGlzcGF0Y2hlciA9IG51bGxwdHI7CiAKICAgICBtX2luc3RydW1lbnRpbmdBZ2VudHMtPnNl
dEluc3BlY3RvckFwcGxpY2F0aW9uQ2FjaGVBZ2VudChudWxscHRyKTsKIH0KZGlmZiAtLWdpdCBh
L1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9JbnNwZWN0b3JDU1NBZ2VudC5jcHAgYi9Tb3VyY2Uv
V2ViQ29yZS9pbnNwZWN0b3IvSW5zcGVjdG9yQ1NTQWdlbnQuY3BwCmluZGV4IGE5MDgzZDA4MTQy
N2I5YzAxOTE4OWU2YzQ5YjgxNDYyZWYzNjM1OWUuLjNkMDYyMDgzNGViMjhjZGZkMDZiNThjZDY2
MjZiYTNjMTQ4ZTcxOTEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9JbnNw
ZWN0b3JDU1NBZ2VudC5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL0luc3BlY3Rv
ckNTU0FnZW50LmNwcApAQCAtMzYwLDcgKzM2MCw3IEBAIHZvaWQgSW5zcGVjdG9yQ1NTQWdlbnQ6
OmRpZENyZWF0ZUZyb250ZW5kQW5kQmFja2VuZChJbnNwZWN0b3I6OkZyb250ZW5kQ2hhbm5lbCoK
IHZvaWQgSW5zcGVjdG9yQ1NTQWdlbnQ6OndpbGxEZXN0cm95RnJvbnRlbmRBbmRCYWNrZW5kKElu
c3BlY3Rvcjo6RGlzY29ubmVjdFJlYXNvbikKIHsKICAgICBtX2Zyb250ZW5kRGlzcGF0Y2hlciA9
IG51bGxwdHI7Ci0gICAgbV9iYWNrZW5kRGlzcGF0Y2hlci5jbGVhcigpOworICAgIG1fYmFja2Vu
ZERpc3BhdGNoZXIgPSBudWxscHRyOwogCiAgICAgcmVzZXROb25QZXJzaXN0ZW50RGF0YSgpOwog
fQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL0luc3BlY3RvckNvbnRyb2xs
ZXIuY3BwIGIvU291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL0luc3BlY3RvckNvbnRyb2xsZXIuY3Bw
CmluZGV4IGYyM2E1ZWEwZWU1NmQwNWUxNDQ1MTA2YTcyNWFjMWM5NmE0NjhlOTkuLmJjODBiY2Ey
OWM5NTE0Nzc3ZGEwNGRjMWNhZTFiNzUxY2Y5ZmY4YWYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJD
b3JlL2luc3BlY3Rvci9JbnNwZWN0b3JDb250cm9sbGVyLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29y
ZS9pbnNwZWN0b3IvSW5zcGVjdG9yQ29udHJvbGxlci5jcHAKQEAgLTI2Myw3ICsyNjMsNyBAQCB2
b2lkIEluc3BlY3RvckNvbnRyb2xsZXI6OmRpc2Nvbm5lY3RGcm9udGVuZChEaXNjb25uZWN0UmVh
c29uIHJlYXNvbikKICAgICBtX2FnZW50cy53aWxsRGVzdHJveUZyb250ZW5kQW5kQmFja2VuZChy
ZWFzb24pOwogCiAgICAgbV9iYWNrZW5kRGlzcGF0Y2hlci0+Y2xlYXJGcm9udGVuZCgpOwotICAg
IG1fYmFja2VuZERpc3BhdGNoZXIuY2xlYXIoKTsKKyAgICBtX2JhY2tlbmREaXNwYXRjaGVyID0g
bnVsbHB0cjsKICAgICBtX2Zyb250ZW5kQ2hhbm5lbCA9IG51bGxwdHI7CiAKICAgICBtX2lzQXV0
b21hdGljSW5zcGVjdGlvbiA9IGZhbHNlOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvaW5z
cGVjdG9yL0luc3BlY3RvckRPTUFnZW50LmNwcCBiL1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9J
bnNwZWN0b3JET01BZ2VudC5jcHAKaW5kZXggMGVkMmM1YzA0ZmFhM2IxY2M4YmIwNWQ0OWFkOTZh
NmQxOTcxMmNhMS4uNzE5Zjc2MWRlNTZkOTA5MTU0YWYxNjIxNjBlMDJhMTQ2Y2E2MjYyZCAxMDA2
NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL0luc3BlY3RvckRPTUFnZW50LmNwcAor
KysgYi9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvSW5zcGVjdG9yRE9NQWdlbnQuY3BwCkBAIC0y
MzgsNyArMjM4LDcgQEAgdm9pZCBJbnNwZWN0b3JET01BZ2VudDo6ZGlkQ3JlYXRlRnJvbnRlbmRB
bmRCYWNrZW5kKEluc3BlY3Rvcjo6RnJvbnRlbmRDaGFubmVsKgogdm9pZCBJbnNwZWN0b3JET01B
Z2VudDo6d2lsbERlc3Ryb3lGcm9udGVuZEFuZEJhY2tlbmQoSW5zcGVjdG9yOjpEaXNjb25uZWN0
UmVhc29uKQogewogICAgIG1fZnJvbnRlbmREaXNwYXRjaGVyID0gbnVsbHB0cjsKLSAgICBtX2Jh
Y2tlbmREaXNwYXRjaGVyLmNsZWFyKCk7CisgICAgbV9iYWNrZW5kRGlzcGF0Y2hlciA9IG51bGxw
dHI7CiAKICAgICBtX2hpc3RvcnkucmVzZXQoKTsKICAgICBtX2RvbUVkaXRvci5yZXNldCgpOwpA
QCAtMjcyLDcgKzI3Miw3IEBAIHZvaWQgSW5zcGVjdG9yRE9NQWdlbnQ6OnJlc2V0KCkKICAgICBk
aXNjYXJkQmluZGluZ3MoKTsKICAgICBpZiAobV9yZXZhbGlkYXRlU3R5bGVBdHRyVGFzaykKICAg
ICAgICAgbV9yZXZhbGlkYXRlU3R5bGVBdHRyVGFzay0+cmVzZXQoKTsKLSAgICBtX2RvY3VtZW50
ID0gMDsKKyAgICBtX2RvY3VtZW50ID0gbnVsbHB0cjsKIH0KIAogdm9pZCBJbnNwZWN0b3JET01B
Z2VudDo6c2V0RE9NTGlzdGVuZXIoRE9NTGlzdGVuZXIqIGxpc3RlbmVyKQpkaWZmIC0tZ2l0IGEv
U291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL0luc3BlY3RvckRPTURlYnVnZ2VyQWdlbnQuY3BwIGIv
U291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL0luc3BlY3RvckRPTURlYnVnZ2VyQWdlbnQuY3BwCmlu
ZGV4IGY3NzhkZDk2MmNiMmRkYzE2MDYzMTc0NmE5OTViZGRhMGE5YjI3OGIuLmQ1MWQ0YmVhZTkx
MjIzNTA3YjZjNDQ2Nzc5NDRjYjI3YmEzNmM0NjQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3Jl
L2luc3BlY3Rvci9JbnNwZWN0b3JET01EZWJ1Z2dlckFnZW50LmNwcAorKysgYi9Tb3VyY2UvV2Vi
Q29yZS9pbnNwZWN0b3IvSW5zcGVjdG9yRE9NRGVidWdnZXJBZ2VudC5jcHAKQEAgLTEwOSw3ICsx
MDksNyBAQCB2b2lkIEluc3BlY3RvckRPTURlYnVnZ2VyQWdlbnQ6OmRpZENyZWF0ZUZyb250ZW5k
QW5kQmFja2VuZChJbnNwZWN0b3I6OkZyb250ZW5kQwogCiB2b2lkIEluc3BlY3RvckRPTURlYnVn
Z2VyQWdlbnQ6OndpbGxEZXN0cm95RnJvbnRlbmRBbmRCYWNrZW5kKEluc3BlY3Rvcjo6RGlzY29u
bmVjdFJlYXNvbikKIHsKLSAgICBtX2JhY2tlbmREaXNwYXRjaGVyLmNsZWFyKCk7CisgICAgbV9i
YWNrZW5kRGlzcGF0Y2hlciA9IG51bGxwdHI7CiAKICAgICBkaXNhYmxlKCk7CiB9CmRpZmYgLS1n
aXQgYS9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvSW5zcGVjdG9yRE9NU3RvcmFnZUFnZW50LmNw
cCBiL1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9JbnNwZWN0b3JET01TdG9yYWdlQWdlbnQuY3Bw
CmluZGV4IGIxNjg3Y2Y1NDg1M2Y2MjJmNTJhNjc2OGM5MmNjZjQyNThlN2E1ZjEuLjA0YWY4OGJj
ZTNkYzAwNTE0ODViM2UyYTUwZDk3MTYwMTdjMmY2OWYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJD
b3JlL2luc3BlY3Rvci9JbnNwZWN0b3JET01TdG9yYWdlQWdlbnQuY3BwCisrKyBiL1NvdXJjZS9X
ZWJDb3JlL2luc3BlY3Rvci9JbnNwZWN0b3JET01TdG9yYWdlQWdlbnQuY3BwCkBAIC03Niw3ICs3
Niw3IEBAIHZvaWQgSW5zcGVjdG9yRE9NU3RvcmFnZUFnZW50OjpkaWRDcmVhdGVGcm9udGVuZEFu
ZEJhY2tlbmQoSW5zcGVjdG9yOjpGcm9udGVuZENoCiB2b2lkIEluc3BlY3RvckRPTVN0b3JhZ2VB
Z2VudDo6d2lsbERlc3Ryb3lGcm9udGVuZEFuZEJhY2tlbmQoSW5zcGVjdG9yOjpEaXNjb25uZWN0
UmVhc29uKQogewogICAgIG1fZnJvbnRlbmREaXNwYXRjaGVyID0gbnVsbHB0cjsKLSAgICBtX2Jh
Y2tlbmREaXNwYXRjaGVyLmNsZWFyKCk7CisgICAgbV9iYWNrZW5kRGlzcGF0Y2hlciA9IG51bGxw
dHI7CiAKICAgICBFcnJvclN0cmluZyB1bnVzZWQ7CiAgICAgZGlzYWJsZSh1bnVzZWQpOwpkaWZm
IC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL0luc3BlY3RvckRhdGFiYXNlQWdlbnQu
Y3BwIGIvU291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL0luc3BlY3RvckRhdGFiYXNlQWdlbnQuY3Bw
CmluZGV4IDkxMzRkZmU0N2M3OWM2YzZlZjQ0MTM0NDUyMGI3MDQ2ZTFkNWRjMTMuLmJlMjdmOTU2
MTQ0NTlmYmZmZDFiMDJkNDg1Y2YxZDc3ZGVkOTY2ZWQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJD
b3JlL2luc3BlY3Rvci9JbnNwZWN0b3JEYXRhYmFzZUFnZW50LmNwcAorKysgYi9Tb3VyY2UvV2Vi
Q29yZS9pbnNwZWN0b3IvSW5zcGVjdG9yRGF0YWJhc2VBZ2VudC5jcHAKQEAgLTIzMSw3ICsyMzEs
NyBAQCB2b2lkIEluc3BlY3RvckRhdGFiYXNlQWdlbnQ6OmRpZENyZWF0ZUZyb250ZW5kQW5kQmFj
a2VuZChJbnNwZWN0b3I6OkZyb250ZW5kQ2hhbgogdm9pZCBJbnNwZWN0b3JEYXRhYmFzZUFnZW50
Ojp3aWxsRGVzdHJveUZyb250ZW5kQW5kQmFja2VuZChJbnNwZWN0b3I6OkRpc2Nvbm5lY3RSZWFz
b24pCiB7CiAgICAgbV9mcm9udGVuZERpc3BhdGNoZXIgPSBudWxscHRyOwotICAgIG1fYmFja2Vu
ZERpc3BhdGNoZXIuY2xlYXIoKTsKKyAgICBtX2JhY2tlbmREaXNwYXRjaGVyID0gbnVsbHB0cjsK
IAogICAgIEVycm9yU3RyaW5nIHVudXNlZDsKICAgICBkaXNhYmxlKHVudXNlZCk7CmRpZmYgLS1n
aXQgYS9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvSW5zcGVjdG9ySW5kZXhlZERCQWdlbnQuY3Bw
IGIvU291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL0luc3BlY3RvckluZGV4ZWREQkFnZW50LmNwcApp
bmRleCA5YmYxMjkxMTZjNGRjODBhMDg2MzFjMDRkNzA3YjE4M2FiOGJjYWNmLi4xNzJmYjU4MTI4
MDIwYTNhZTU1ZDY1ZDRmMDhmNTdhZTE2YTBlY2Y3IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29y
ZS9pbnNwZWN0b3IvSW5zcGVjdG9ySW5kZXhlZERCQWdlbnQuY3BwCisrKyBiL1NvdXJjZS9XZWJD
b3JlL2luc3BlY3Rvci9JbnNwZWN0b3JJbmRleGVkREJBZ2VudC5jcHAKQEAgLTU4Miw3ICs1ODIs
NyBAQCB2b2lkIEluc3BlY3RvckluZGV4ZWREQkFnZW50OjpkaWRDcmVhdGVGcm9udGVuZEFuZEJh
Y2tlbmQoSW5zcGVjdG9yOjpGcm9udGVuZENoYQogCiB2b2lkIEluc3BlY3RvckluZGV4ZWREQkFn
ZW50Ojp3aWxsRGVzdHJveUZyb250ZW5kQW5kQmFja2VuZChJbnNwZWN0b3I6OkRpc2Nvbm5lY3RS
ZWFzb24pCiB7Ci0gICAgbV9iYWNrZW5kRGlzcGF0Y2hlci5jbGVhcigpOworICAgIG1fYmFja2Vu
ZERpc3BhdGNoZXIgPSBudWxscHRyOwogCiAgICAgRXJyb3JTdHJpbmcgdW51c2VkOwogICAgIGRp
c2FibGUodW51c2VkKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9JbnNw
ZWN0b3JMYXllclRyZWVBZ2VudC5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvSW5zcGVj
dG9yTGF5ZXJUcmVlQWdlbnQuY3BwCmluZGV4IGJlNjQ0OTZlNDYzOGQwMGMzZWMyODkwODY1NmFl
Njc3YTczODk3NTguLmY2ZTQxZmFjODI4YWM2YzRmNzc2MDY1YWRmN2EzZGJmOGQ3OGJlMDQgMTAw
NjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9JbnNwZWN0b3JMYXllclRyZWVBZ2Vu
dC5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL0luc3BlY3RvckxheWVyVHJlZUFn
ZW50LmNwcApAQCAtNjUsNyArNjUsNyBAQCB2b2lkIEluc3BlY3RvckxheWVyVHJlZUFnZW50Ojpk
aWRDcmVhdGVGcm9udGVuZEFuZEJhY2tlbmQoSW5zcGVjdG9yOjpGcm9udGVuZENoYQogdm9pZCBJ
bnNwZWN0b3JMYXllclRyZWVBZ2VudDo6d2lsbERlc3Ryb3lGcm9udGVuZEFuZEJhY2tlbmQoSW5z
cGVjdG9yOjpEaXNjb25uZWN0UmVhc29uKQogewogICAgIG1fZnJvbnRlbmREaXNwYXRjaGVyID0g
bnVsbHB0cjsKLSAgICBtX2JhY2tlbmREaXNwYXRjaGVyLmNsZWFyKCk7CisgICAgbV9iYWNrZW5k
RGlzcGF0Y2hlciA9IG51bGxwdHI7CiAKICAgICBFcnJvclN0cmluZyB1bnVzZWQ7CiAgICAgZGlz
YWJsZSh1bnVzZWQpOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL0luc3Bl
Y3Rvck92ZXJsYXkuY3BwIGIvU291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL0luc3BlY3Rvck92ZXJs
YXkuY3BwCmluZGV4IDZkM2EwZjNjYTcyNjVhMWFmZjhjMzI4YTVmM2Y2Yjc5YzMzMWQ4ZDQuLmZh
ZWE3Y2VmMmM2MzJlZTUxMDJjZGYyYjY1NDQ5N2FiODA3YmUxNzcgMTAwNjQ0Ci0tLSBhL1NvdXJj
ZS9XZWJDb3JlL2luc3BlY3Rvci9JbnNwZWN0b3JPdmVybGF5LmNwcAorKysgYi9Tb3VyY2UvV2Vi
Q29yZS9pbnNwZWN0b3IvSW5zcGVjdG9yT3ZlcmxheS5jcHAKQEAgLTI0Myw5ICsyNDMsOSBAQCB2
b2lkIEluc3BlY3Rvck92ZXJsYXk6OnNldFBhdXNlZEluRGVidWdnZXJNZXNzYWdlKGNvbnN0IFN0
cmluZyogbWVzc2FnZSkKIAogdm9pZCBJbnNwZWN0b3JPdmVybGF5OjpoaWRlSGlnaGxpZ2h0KCkK
IHsKLSAgICBtX2hpZ2hsaWdodE5vZGUuY2xlYXIoKTsKLSAgICBtX2hpZ2hsaWdodE5vZGVMaXN0
LmNsZWFyKCk7Ci0gICAgbV9oaWdobGlnaHRRdWFkLnJlc2V0KCk7CisgICAgbV9oaWdobGlnaHRO
b2RlID0gbnVsbHB0cjsKKyAgICBtX2hpZ2hsaWdodE5vZGVMaXN0ID0gbnVsbHB0cjsKKyAgICBt
X2hpZ2hsaWdodFF1YWQgPSBudWxscHRyOwogICAgIHVwZGF0ZSgpOwogfQogCkBAIC0yNTMsNyAr
MjUzLDcgQEAgdm9pZCBJbnNwZWN0b3JPdmVybGF5OjpoaWdobGlnaHROb2RlTGlzdChQYXNzUmVm
UHRyPE5vZGVMaXN0PiBub2RlcywgY29uc3QgSGlnaGwKIHsKICAgICBtX25vZGVIaWdobGlnaHRD
b25maWcgPSBoaWdobGlnaHRDb25maWc7CiAgICAgbV9oaWdobGlnaHROb2RlTGlzdCA9IG5vZGVz
OwotICAgIG1faGlnaGxpZ2h0Tm9kZS5jbGVhcigpOworICAgIG1faGlnaGxpZ2h0Tm9kZSA9IG51
bGxwdHI7CiAgICAgdXBkYXRlKCk7CiB9CiAKQEAgLTI2MSw3ICsyNjEsNyBAQCB2b2lkIEluc3Bl
Y3Rvck92ZXJsYXk6OmhpZ2hsaWdodE5vZGUoTm9kZSogbm9kZSwgY29uc3QgSGlnaGxpZ2h0Q29u
ZmlnJiBoaWdobGlnaAogewogICAgIG1fbm9kZUhpZ2hsaWdodENvbmZpZyA9IGhpZ2hsaWdodENv
bmZpZzsKICAgICBtX2hpZ2hsaWdodE5vZGUgPSBub2RlOwotICAgIG1faGlnaGxpZ2h0Tm9kZUxp
c3QuY2xlYXIoKTsKKyAgICBtX2hpZ2hsaWdodE5vZGVMaXN0ID0gbnVsbHB0cjsKICAgICB1cGRh
dGUoKTsKIH0KIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL0luc3BlY3Rv
clBhZ2VBZ2VudC5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvSW5zcGVjdG9yUGFnZUFn
ZW50LmNwcAppbmRleCA2ZjUyYmZhZTBiNTIzYzk2ZjE0ZTU3NDE3MjI2OTVhMTc1NTFjYThhLi4z
ZTlmZWJlZmI1NGZlNDQ4YWM4ODA3NmQ5OTZmOWE4YWQwN2E1YjlhIDEwMDY0NAotLS0gYS9Tb3Vy
Y2UvV2ViQ29yZS9pbnNwZWN0b3IvSW5zcGVjdG9yUGFnZUFnZW50LmNwcAorKysgYi9Tb3VyY2Uv
V2ViQ29yZS9pbnNwZWN0b3IvSW5zcGVjdG9yUGFnZUFnZW50LmNwcApAQCAtMzQ4LDcgKzM0OCw3
IEBAIHZvaWQgSW5zcGVjdG9yUGFnZUFnZW50OjpkaWRDcmVhdGVGcm9udGVuZEFuZEJhY2tlbmQo
SW5zcGVjdG9yOjpGcm9udGVuZENoYW5uZWwqCiB2b2lkIEluc3BlY3RvclBhZ2VBZ2VudDo6d2ls
bERlc3Ryb3lGcm9udGVuZEFuZEJhY2tlbmQoSW5zcGVjdG9yOjpEaXNjb25uZWN0UmVhc29uKQog
ewogICAgIG1fZnJvbnRlbmREaXNwYXRjaGVyID0gbnVsbHB0cjsKLSAgICBtX2JhY2tlbmREaXNw
YXRjaGVyLmNsZWFyKCk7CisgICAgbV9iYWNrZW5kRGlzcGF0Y2hlciA9IG51bGxwdHI7CiAKICAg
ICBFcnJvclN0cmluZyB1bnVzZWQ7CiAgICAgZGlzYWJsZSh1bnVzZWQpOwpAQCAtMzc0LDcgKzM3
NCw3IEBAIHZvaWQgSW5zcGVjdG9yUGFnZUFnZW50OjplbmFibGUoRXJyb3JTdHJpbmcmKQogdm9p
ZCBJbnNwZWN0b3JQYWdlQWdlbnQ6OmRpc2FibGUoRXJyb3JTdHJpbmcmKQogewogICAgIG1fZW5h
YmxlZCA9IGZhbHNlOwotICAgIG1fc2NyaXB0c1RvRXZhbHVhdGVPbkxvYWQuY2xlYXIoKTsKKyAg
ICBtX3NjcmlwdHNUb0V2YWx1YXRlT25Mb2FkID0gbnVsbHB0cjsKICAgICBtX2luc3RydW1lbnRp
bmdBZ2VudHMtPnNldEluc3BlY3RvclBhZ2VBZ2VudChudWxscHRyKTsKIAogICAgIEVycm9yU3Ry
aW5nIHVudXNlZDsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9JbnNwZWN0
b3JSZXBsYXlBZ2VudC5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvSW5zcGVjdG9yUmVw
bGF5QWdlbnQuY3BwCmluZGV4IDY0Y2I4MTE3Yzc5ODFkYWM0MzRmNDNjYmYzYmZkOWUzMzEyODQ3
YTEuLjE4MWE2MDk4MmFmNzI2YzI0NGE0YzFiMzNkNmJjODdjMjliNTA1ODUgMTAwNjQ0Ci0tLSBh
L1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9JbnNwZWN0b3JSZXBsYXlBZ2VudC5jcHAKKysrIGIv
U291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL0luc3BlY3RvclJlcGxheUFnZW50LmNwcApAQCAtMTkz
LDcgKzE5Myw3IEBAIHZvaWQgSW5zcGVjdG9yUmVwbGF5QWdlbnQ6OmRpZENyZWF0ZUZyb250ZW5k
QW5kQmFja2VuZChJbnNwZWN0b3I6OkZyb250ZW5kQ2hhbm5lCiB2b2lkIEluc3BlY3RvclJlcGxh
eUFnZW50Ojp3aWxsRGVzdHJveUZyb250ZW5kQW5kQmFja2VuZChJbnNwZWN0b3I6OkRpc2Nvbm5l
Y3RSZWFzb24pCiB7CiAgICAgbV9mcm9udGVuZERpc3BhdGNoZXIgPSBudWxscHRyOwotICAgIG1f
YmFja2VuZERpc3BhdGNoZXIuY2xlYXIoKTsKKyAgICBtX2JhY2tlbmREaXNwYXRjaGVyID0gbnVs
bHB0cjsKIAogICAgIG1faW5zdHJ1bWVudGluZ0FnZW50cy0+c2V0SW5zcGVjdG9yUmVwbGF5QWdl
bnQobnVsbHB0cik7CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9JbnNw
ZWN0b3JSZXNvdXJjZUFnZW50LmNwcCBiL1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9JbnNwZWN0
b3JSZXNvdXJjZUFnZW50LmNwcAppbmRleCA4NTQ0ODljMDRmOTc0ZDk3Y2QzNjY0YWVhYWQ0NWZl
MDFiYjFlZjAxLi43YjU2YTBmZjlkMTU4ZjZiYThiMTM1M2EwYmFiMmU0ZDBlODlhMWQ3IDEwMDY0
NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvSW5zcGVjdG9yUmVzb3VyY2VBZ2VudC5j
cHAKKysrIGIvU291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL0luc3BlY3RvclJlc291cmNlQWdlbnQu
Y3BwCkBAIC0xODEsNyArMTgxLDcgQEAgdm9pZCBJbnNwZWN0b3JSZXNvdXJjZUFnZW50OjpkaWRD
cmVhdGVGcm9udGVuZEFuZEJhY2tlbmQoSW5zcGVjdG9yOjpGcm9udGVuZENoYW4KIHZvaWQgSW5z
cGVjdG9yUmVzb3VyY2VBZ2VudDo6d2lsbERlc3Ryb3lGcm9udGVuZEFuZEJhY2tlbmQoSW5zcGVj
dG9yOjpEaXNjb25uZWN0UmVhc29uKQogewogICAgIG1fZnJvbnRlbmREaXNwYXRjaGVyID0gbnVs
bHB0cjsKLSAgICBtX2JhY2tlbmREaXNwYXRjaGVyLmNsZWFyKCk7CisgICAgbV9iYWNrZW5kRGlz
cGF0Y2hlciA9IG51bGxwdHI7CiAKICAgICBFcnJvclN0cmluZyB1bnVzZWQ7CiAgICAgZGlzYWJs
ZSh1bnVzZWQpOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL0luc3BlY3Rv
clN0eWxlU2hlZXQuY3BwIGIvU291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL0luc3BlY3RvclN0eWxl
U2hlZXQuY3BwCmluZGV4IGI0N2M2NTRkM2Q3NjJjZTQ1ZGNmZTRmMTQ0YjRjOTY1N2VjYzlmYzQu
LjA2ZWMxYjZmMmY2NDRjMmMxZDA2ZDNmZWU5YWJlMTI4ZmMwYTVmOGMgMTAwNjQ0Ci0tLSBhL1Nv
dXJjZS9XZWJDb3JlL2luc3BlY3Rvci9JbnNwZWN0b3JTdHlsZVNoZWV0LmNwcAorKysgYi9Tb3Vy
Y2UvV2ViQ29yZS9pbnNwZWN0b3IvSW5zcGVjdG9yU3R5bGVTaGVldC5jcHAKQEAgLTEyNjEsNyAr
MTI2MSw3IEBAIHZvaWQgSW5zcGVjdG9yU3R5bGVTaGVldEZvcklubGluZVN0eWxlOjpkaWRNb2Rp
ZnlFbGVtZW50QXR0cmlidXRlKCkKICAgICBtX2lzU3R5bGVUZXh0VmFsaWQgPSBmYWxzZTsKICAg
ICBpZiAobV9lbGVtZW50LT5pc1N0eWxlZEVsZW1lbnQoKSAmJiBtX2VsZW1lbnQtPnN0eWxlKCkg
IT0gbV9pbnNwZWN0b3JTdHlsZS0+Y3NzU3R5bGUoKSkKICAgICAgICAgbV9pbnNwZWN0b3JTdHls
ZSA9IEluc3BlY3RvclN0eWxlOjpjcmVhdGUoSW5zcGVjdG9yQ1NTSWQoaWQoKSwgMCksIGlubGlu
ZVN0eWxlKCksIHRoaXMpOwotICAgIG1fcnVsZVNvdXJjZURhdGEuY2xlYXIoKTsKKyAgICBtX3J1
bGVTb3VyY2VEYXRhID0gbnVsbHB0cjsKIH0KIAogYm9vbCBJbnNwZWN0b3JTdHlsZVNoZWV0Rm9y
SW5saW5lU3R5bGU6OmdldFRleHQoU3RyaW5nKiByZXN1bHQpIGNvbnN0CkBAIC0xMjg1LDcgKzEy
ODUsNyBAQCBib29sIEluc3BlY3RvclN0eWxlU2hlZXRGb3JJbmxpbmVTdHlsZTo6c2V0U3R5bGVU
ZXh0KENTU1N0eWxlRGVjbGFyYXRpb24qIHN0eWxlLAogCiAgICAgbV9zdHlsZVRleHQgPSB0ZXh0
OwogICAgIG1faXNTdHlsZVRleHRWYWxpZCA9IHRydWU7Ci0gICAgbV9ydWxlU291cmNlRGF0YS5j
bGVhcigpOworICAgIG1fcnVsZVNvdXJjZURhdGEgPSBudWxscHRyOwogICAgIHJldHVybiAhZWM7
CiB9CiAKQEAgLTEzMDQsNyArMTMwNCw3IEBAIGJvb2wgSW5zcGVjdG9yU3R5bGVTaGVldEZvcklu
bGluZVN0eWxlOjplbnN1cmVQYXJzZWREYXRhUmVhZHkoKQogICAgIC8vIFRoZSAic3R5bGUiIHBy
b3BlcnR5IHZhbHVlIGNhbiBnZXQgY2hhbmdlZCBpbmRpcmVjdGx5LCBlLmcuIHZpYSBlbGVtZW50
LnN0eWxlLmJvcmRlcldpZHRoID0gIjJweCIuCiAgICAgY29uc3QgU3RyaW5nJiBjdXJyZW50U3R5
bGVUZXh0ID0gZWxlbWVudFN0eWxlVGV4dCgpOwogICAgIGlmIChtX3N0eWxlVGV4dCAhPSBjdXJy
ZW50U3R5bGVUZXh0KSB7Ci0gICAgICAgIG1fcnVsZVNvdXJjZURhdGEuY2xlYXIoKTsKKyAgICAg
ICAgbV9ydWxlU291cmNlRGF0YSA9IG51bGxwdHI7CiAgICAgICAgIG1fc3R5bGVUZXh0ID0gY3Vy
cmVudFN0eWxlVGV4dDsKICAgICAgICAgbV9pc1N0eWxlVGV4dFZhbGlkID0gdHJ1ZTsKICAgICB9
CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvSW5zcGVjdG9yVGltZWxpbmVB
Z2VudC5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvSW5zcGVjdG9yVGltZWxpbmVBZ2Vu
dC5jcHAKaW5kZXggMGUzMmJjNWU2Mzg5OGFmZjhlZDJiMDZhYmIwZjdhMWJhOTgwMDhhNC4uZjU3
NTZhMmQxZWE4Mzg3MTE1MGQ1MjFmOGVmZjE0OWEyM2FjNzhjYiAxMDA2NDQKLS0tIGEvU291cmNl
L1dlYkNvcmUvaW5zcGVjdG9yL0luc3BlY3RvclRpbWVsaW5lQWdlbnQuY3BwCisrKyBiL1NvdXJj
ZS9XZWJDb3JlL2luc3BlY3Rvci9JbnNwZWN0b3JUaW1lbGluZUFnZW50LmNwcApAQCAtMTAzLDcg
KzEwMyw3IEBAIHZvaWQgSW5zcGVjdG9yVGltZWxpbmVBZ2VudDo6ZGlkQ3JlYXRlRnJvbnRlbmRB
bmRCYWNrZW5kKEluc3BlY3Rvcjo6RnJvbnRlbmRDaGFuCiB2b2lkIEluc3BlY3RvclRpbWVsaW5l
QWdlbnQ6OndpbGxEZXN0cm95RnJvbnRlbmRBbmRCYWNrZW5kKEluc3BlY3Rvcjo6RGlzY29ubmVj
dFJlYXNvbiByZWFzb24pCiB7CiAgICAgbV9mcm9udGVuZERpc3BhdGNoZXIgPSBudWxscHRyOwot
ICAgIG1fYmFja2VuZERpc3BhdGNoZXIuY2xlYXIoKTsKKyAgICBtX2JhY2tlbmREaXNwYXRjaGVy
ID0gbnVsbHB0cjsKIAogICAgIG1faW5zdHJ1bWVudGluZ0FnZW50cy0+c2V0UGVyc2lzdGVudElu
c3BlY3RvclRpbWVsaW5lQWdlbnQobnVsbHB0cik7CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJD
b3JlL2luc3BlY3Rvci9JbnNwZWN0b3JXb3JrZXJBZ2VudC5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9p
bnNwZWN0b3IvSW5zcGVjdG9yV29ya2VyQWdlbnQuY3BwCmluZGV4IGRlYmM2OTg3OTVkOThjNDJi
OGViMThjMTBmZGEyYTI1Zjg1ZjJlOWIuLjVlMjFmMzViYjQ4MDNiZWIxZWEyZDU5ODRiNDJkMDg2
NjQ1ZDkxODEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9JbnNwZWN0b3JX
b3JrZXJBZ2VudC5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL0luc3BlY3Rvcldv
cmtlckFnZW50LmNwcApAQCAtMTI3LDcgKzEyNyw3IEBAIHZvaWQgSW5zcGVjdG9yV29ya2VyQWdl
bnQ6OndpbGxEZXN0cm95RnJvbnRlbmRBbmRCYWNrZW5kKEluc3BlY3Rvcjo6RGlzY29ubmVjdFJl
CiAgICAgZGlzYWJsZSh1bnVzZWQpOwogCiAgICAgbV9mcm9udGVuZERpc3BhdGNoZXIgPSBudWxs
cHRyOwotICAgIG1fYmFja2VuZERpc3BhdGNoZXIuY2xlYXIoKTsKKyAgICBtX2JhY2tlbmREaXNw
YXRjaGVyID0gbnVsbHB0cjsKIH0KIAogdm9pZCBJbnNwZWN0b3JXb3JrZXJBZ2VudDo6ZW5hYmxl
KEVycm9yU3RyaW5nJikKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9QYWdl
UnVudGltZUFnZW50LmNwcCBiL1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9QYWdlUnVudGltZUFn
ZW50LmNwcAppbmRleCA5M2RiNTcyYTdmMDQ1NTA1YjllNTE1ZTUwOTBjNGZjMGI1MDIxZTJkLi5l
MjQ0NWFiZjQ0M2QwOGY0Mzg0YTAzOWJjOWU1NWQ4ZDVmM2Y3MTJiIDEwMDY0NAotLS0gYS9Tb3Vy
Y2UvV2ViQ29yZS9pbnNwZWN0b3IvUGFnZVJ1bnRpbWVBZ2VudC5jcHAKKysrIGIvU291cmNlL1dl
YkNvcmUvaW5zcGVjdG9yL1BhZ2VSdW50aW1lQWdlbnQuY3BwCkBAIC02OSw3ICs2OSw3IEBAIHZv
aWQgUGFnZVJ1bnRpbWVBZ2VudDo6ZGlkQ3JlYXRlRnJvbnRlbmRBbmRCYWNrZW5kKEluc3BlY3Rv
cjo6RnJvbnRlbmRDaGFubmVsKiBmCiB2b2lkIFBhZ2VSdW50aW1lQWdlbnQ6OndpbGxEZXN0cm95
RnJvbnRlbmRBbmRCYWNrZW5kKEluc3BlY3Rvcjo6RGlzY29ubmVjdFJlYXNvbiByZWFzb24pCiB7
CiAgICAgbV9mcm9udGVuZERpc3BhdGNoZXIgPSBudWxscHRyOwotICAgIG1fYmFja2VuZERpc3Bh
dGNoZXIuY2xlYXIoKTsKKyAgICBtX2JhY2tlbmREaXNwYXRjaGVyID0gbnVsbHB0cjsKIAogICAg
IFN0cmluZyB1bnVzZWQ7CiAgICAgZGlzYWJsZSh1bnVzZWQpOwpkaWZmIC0tZ2l0IGEvU291cmNl
L1dlYkNvcmUvaW5zcGVjdG9yL1dlYkluamVjdGVkU2NyaXB0TWFuYWdlci5jcHAgYi9Tb3VyY2Uv
V2ViQ29yZS9pbnNwZWN0b3IvV2ViSW5qZWN0ZWRTY3JpcHRNYW5hZ2VyLmNwcAppbmRleCA5ZjRh
ZjQyNjkzZWM1NzU5NTMxMzM5NDQ2MGIxOTA1ZGZlMGFkNTg3Li41NjE5NmYwYWUzNzFlZjQ0M2Mw
NTIzZWIzMWJiNmZjNWVhZjNlNWIxIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0
b3IvV2ViSW5qZWN0ZWRTY3JpcHRNYW5hZ2VyLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9pbnNw
ZWN0b3IvV2ViSW5qZWN0ZWRTY3JpcHRNYW5hZ2VyLmNwcApAQCAtNDQsNyArNDQsNyBAQCB2b2lk
IFdlYkluamVjdGVkU2NyaXB0TWFuYWdlcjo6ZGlzY29ubmVjdCgpCiAgICAgSW5qZWN0ZWRTY3Jp
cHRNYW5hZ2VyOjpkaXNjb25uZWN0KCk7CiAKICAgICBtX2NvbW1hbmRMaW5lQVBJSG9zdC0+ZGlz
Y29ubmVjdCgpOwotICAgIG1fY29tbWFuZExpbmVBUElIb3N0LmNsZWFyKCk7CisgICAgbV9jb21t
YW5kTGluZUFQSUhvc3QgPSBudWxscHRyOwogfQogCiB2b2lkIFdlYkluamVjdGVkU2NyaXB0TWFu
YWdlcjo6ZGlkQ3JlYXRlSW5qZWN0ZWRTY3JpcHQoSW5qZWN0ZWRTY3JpcHQgaW5qZWN0ZWRTY3Jp
cHQpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvV29ya2VySW5zcGVjdG9y
Q29udHJvbGxlci5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvV29ya2VySW5zcGVjdG9y
Q29udHJvbGxlci5jcHAKaW5kZXggZjFmZTQxMDA1YWRmZWE0YmMwMWUwYWQ1Yjc3ZjU4ZjBiOTZj
MjcwZC4uZDgzNGUwZWE5ZjVhMzAwYTgzMjRmNGFmMWQ2NjZkM2I5MDZhYzY1MiAxMDA2NDQKLS0t
IGEvU291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL1dvcmtlckluc3BlY3RvckNvbnRyb2xsZXIuY3Bw
CisrKyBiL1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9Xb3JrZXJJbnNwZWN0b3JDb250cm9sbGVy
LmNwcApAQCAtMTI2LDcgKzEyNiw3IEBAIHZvaWQgV29ya2VySW5zcGVjdG9yQ29udHJvbGxlcjo6
ZGlzY29ubmVjdEZyb250ZW5kKEluc3BlY3Rvcjo6RGlzY29ubmVjdFJlYXNvbiByCiAKICAgICBt
X2FnZW50cy53aWxsRGVzdHJveUZyb250ZW5kQW5kQmFja2VuZChyZWFzb24pOwogICAgIG1fYmFj
a2VuZERpc3BhdGNoZXItPmNsZWFyRnJvbnRlbmQoKTsKLSAgICBtX2JhY2tlbmREaXNwYXRjaGVy
LmNsZWFyKCk7CisgICAgbV9iYWNrZW5kRGlzcGF0Y2hlciA9IG51bGxwdHI7CiAgICAgbV9mcm9u
dGVuZENoYW5uZWwgPSBudWxscHRyOwogfQogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9p
bnNwZWN0b3IvV29ya2VyUnVudGltZUFnZW50LmNwcCBiL1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rv
ci9Xb3JrZXJSdW50aW1lQWdlbnQuY3BwCmluZGV4IDIwNmE0MWY1ZmI0MmNkMTVhMzM2Y2NiMzk0
YjJlYWM1MWRlNTRmZmEuLjEyMjJlNTUyNzk4YmI2MzczOTlmOGFlNzU3YjRmZjRmZGJkMmU1MGQg
MTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9Xb3JrZXJSdW50aW1lQWdlbnQu
Y3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9Xb3JrZXJSdW50aW1lQWdlbnQuY3Bw
CkBAIC02MCw3ICs2MCw3IEBAIHZvaWQgV29ya2VyUnVudGltZUFnZW50OjpkaWRDcmVhdGVGcm9u
dGVuZEFuZEJhY2tlbmQoSW5zcGVjdG9yOjpGcm9udGVuZENoYW5uZWwqCiAKIHZvaWQgV29ya2Vy
UnVudGltZUFnZW50Ojp3aWxsRGVzdHJveUZyb250ZW5kQW5kQmFja2VuZChJbnNwZWN0b3I6OkRp
c2Nvbm5lY3RSZWFzb24gcmVhc29uKQogewotICAgIG1fYmFja2VuZERpc3BhdGNoZXIuY2xlYXIo
KTsKKyAgICBtX2JhY2tlbmREaXNwYXRjaGVyID0gbnVsbHB0cjsKIAogICAgIEluc3BlY3RvclJ1
bnRpbWVBZ2VudDo6d2lsbERlc3Ryb3lGcm9udGVuZEFuZEJhY2tlbmQocmVhc29uKTsKIH0KZGlm
ZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2xvYWRlci9Eb2N1bWVudExvYWRlci5jcHAgYi9Tb3Vy
Y2UvV2ViQ29yZS9sb2FkZXIvRG9jdW1lbnRMb2FkZXIuY3BwCmluZGV4IDVlYzQ3YWMzMWYzMzVi
MzVhZWUyODc3MjJkYjYwYzU0NDZkMWJiOGEuLjdjYTFmMjM4NjZlNmQxNzc1YzA2YTUyYWNlMzIy
MmMyMTE1NGI0OTUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2xvYWRlci9Eb2N1bWVudExv
YWRlci5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvbG9hZGVyL0RvY3VtZW50TG9hZGVyLmNwcApA
QCAtMTUyNCw3ICsxNTI0LDcgQEAgdm9pZCBEb2N1bWVudExvYWRlcjo6Z2V0SWNvbkxvYWREZWNp
c2lvbkZvckljb25VUkwoY29uc3QgU3RyaW5nJiB1cmxTdHJpbmcpCiB2b2lkIERvY3VtZW50TG9h
ZGVyOjpjb250aW51ZUljb25Mb2FkV2l0aERlY2lzaW9uKEljb25Mb2FkRGVjaXNpb24gZGVjaXNp
b24pCiB7CiAgICAgQVNTRVJUKG1faWNvbkxvYWREZWNpc2lvbkNhbGxiYWNrKTsKLSAgICBtX2lj
b25Mb2FkRGVjaXNpb25DYWxsYmFjayA9IDA7CisgICAgbV9pY29uTG9hZERlY2lzaW9uQ2FsbGJh
Y2sgPSBudWxscHRyOwogICAgIGlmIChtX2ZyYW1lKQogICAgICAgICBtX2ZyYW1lLT5sb2FkZXIo
KS5pY29uKCkuY29udGludWVMb2FkV2l0aERlY2lzaW9uKGRlY2lzaW9uKTsKIH0KZGlmZiAtLWdp
dCBhL1NvdXJjZS9XZWJDb3JlL2xvYWRlci9Eb2N1bWVudFRocmVhZGFibGVMb2FkZXIuY3BwIGIv
U291cmNlL1dlYkNvcmUvbG9hZGVyL0RvY3VtZW50VGhyZWFkYWJsZUxvYWRlci5jcHAKaW5kZXgg
MWU4NmZhYzFiZGY4MjlhNjNlMTY5MGFmMmEzZTQ3NTI2MzIwN2QxYy4uYjBlNTg5OGJiY2Y4MGY5
ZmZhOWQyODY1NGIyNzRlY2ZhYjgyOWZmMSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvbG9h
ZGVyL0RvY3VtZW50VGhyZWFkYWJsZUxvYWRlci5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvbG9h
ZGVyL0RvY3VtZW50VGhyZWFkYWJsZUxvYWRlci5jcHAKQEAgLTY0LDcgKzY0LDcgQEAgUGFzc1Jl
ZlB0cjxEb2N1bWVudFRocmVhZGFibGVMb2FkZXI+IERvY3VtZW50VGhyZWFkYWJsZUxvYWRlcjo6
Y3JlYXRlKERvY3VtZW50JgogewogICAgIFJlZlB0cjxEb2N1bWVudFRocmVhZGFibGVMb2FkZXI+
IGxvYWRlciA9IGFkb3B0UmVmKG5ldyBEb2N1bWVudFRocmVhZGFibGVMb2FkZXIoZG9jdW1lbnQs
IGNsaWVudCwgTG9hZEFzeW5jaHJvbm91c2x5LCByZXF1ZXN0LCBvcHRpb25zKSk7CiAgICAgaWYg
KCFsb2FkZXItPm1fcmVzb3VyY2UpCi0gICAgICAgIGxvYWRlciA9IDA7CisgICAgICAgIGxvYWRl
ciA9IG51bGxwdHI7CiAgICAgcmV0dXJuIGxvYWRlci5yZWxlYXNlKCk7CiB9CiAKZGlmZiAtLWdp
dCBhL1NvdXJjZS9XZWJDb3JlL2xvYWRlci9Eb2N1bWVudFdyaXRlci5jcHAgYi9Tb3VyY2UvV2Vi
Q29yZS9sb2FkZXIvRG9jdW1lbnRXcml0ZXIuY3BwCmluZGV4IGNjNTEzOTNjMTBmNjM2YmQ3NmVk
MTA5OGIzZWJjYzM2YzQyMmMxMTEuLmExYzM3N2Y4ZTFiMzQ2MDdkMjU3NTQxNWFjZmE0YWJjZjkx
MGI0MzEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2xvYWRlci9Eb2N1bWVudFdyaXRlci5j
cHAKKysrIGIvU291cmNlL1dlYkNvcmUvbG9hZGVyL0RvY3VtZW50V3JpdGVyLmNwcApAQCAtOTAs
NyArOTAsNyBAQCB2b2lkIERvY3VtZW50V3JpdGVyOjpyZXBsYWNlRG9jdW1lbnQoY29uc3QgU3Ry
aW5nJiBzb3VyY2UsIERvY3VtZW50KiBvd25lckRvY3VtZQogCiB2b2lkIERvY3VtZW50V3JpdGVy
OjpjbGVhcigpCiB7Ci0gICAgbV9kZWNvZGVyID0gMDsKKyAgICBtX2RlY29kZXIgPSBudWxscHRy
OwogICAgIG1faGFzUmVjZWl2ZWRTb21lRGF0YSA9IGZhbHNlOwogICAgIGlmICghbV9lbmNvZGlu
Z1dhc0Nob3NlbkJ5VXNlcikKICAgICAgICAgbV9lbmNvZGluZyA9IFN0cmluZygpOwpAQCAtMjQ1
LDcgKzI0NSw3IEBAIHZvaWQgRG9jdW1lbnRXcml0ZXI6OmVuZCgpCiAgICAgaWYgKCFtX3BhcnNl
cikKICAgICAgICAgcmV0dXJuOwogICAgIG1fcGFyc2VyLT5maW5pc2goKTsKLSAgICBtX3BhcnNl
ciA9IDA7CisgICAgbV9wYXJzZXIgPSBudWxscHRyOwogfQogCiB2b2lkIERvY3VtZW50V3JpdGVy
OjpzZXRFbmNvZGluZyhjb25zdCBTdHJpbmcmIG5hbWUsIGJvb2wgdXNlckNob3NlbikKZGlmZiAt
LWdpdCBhL1NvdXJjZS9XZWJDb3JlL2xvYWRlci9GcmFtZUxvYWRlci5jcHAgYi9Tb3VyY2UvV2Vi
Q29yZS9sb2FkZXIvRnJhbWVMb2FkZXIuY3BwCmluZGV4IDUyMmIxNTdkYmNiZWMwYjUwMTFmOTVl
ODY2NjZhOWUyMGM2OWJmY2QuLjNiZGI2MjFkN2RhYjU2MzZlMDA5ZTk1YTFjM2IwYjdmOWNiZjM4
OGIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2xvYWRlci9GcmFtZUxvYWRlci5jcHAKKysr
IGIvU291cmNlL1dlYkNvcmUvbG9hZGVyL0ZyYW1lTG9hZGVyLmNwcApAQCAtNjkyLDcgKzY5Miw3
IEBAIHZvaWQgRnJhbWVMb2FkZXI6OmRpZEJlZ2luRG9jdW1lbnQoYm9vbCBkaXNwYXRjaCkKIAog
ICAgIGlmIChtX3BlbmRpbmdTdGF0ZU9iamVjdCkgewogICAgICAgICBtX2ZyYW1lLmRvY3VtZW50
KCktPnN0YXRlUG9wcGVkKG1fcGVuZGluZ1N0YXRlT2JqZWN0LmdldCgpKTsKLSAgICAgICAgbV9w
ZW5kaW5nU3RhdGVPYmplY3QuY2xlYXIoKTsKKyAgICAgICAgbV9wZW5kaW5nU3RhdGVPYmplY3Qg
PSBudWxscHRyOwogICAgIH0KIAogICAgIGlmIChkaXNwYXRjaCkKQEAgLTgxOCw3ICs4MTgsNyBA
QCB2b2lkIEZyYW1lTG9hZGVyOjpjaGVja0NvbXBsZXRlZCgpCiAKICAgICAvLyBPSywgY29tcGxl
dGVkLgogICAgIG1faXNDb21wbGV0ZSA9IHRydWU7Ci0gICAgbV9yZXF1ZXN0ZWRIaXN0b3J5SXRl
bSA9IDA7CisgICAgbV9yZXF1ZXN0ZWRIaXN0b3J5SXRlbSA9IG51bGxwdHI7CiAgICAgbV9mcmFt
ZS5kb2N1bWVudCgpLT5zZXRSZWFkeVN0YXRlKERvY3VtZW50OjpDb21wbGV0ZSk7CiAKICNpZiBQ
TEFURk9STShJT1MpCkBAIC0xMTM3LDcgKzExMzcsNyBAQCB2b2lkIEZyYW1lTG9hZGVyOjpzZXR1
cEZvclJlcGxhY2UoKQogICAgIG1fY2xpZW50LnJldmVydFRvUHJvdmlzaW9uYWxTdGF0ZShtX2Rv
Y3VtZW50TG9hZGVyLmdldCgpKTsKICAgICBzZXRTdGF0ZShGcmFtZVN0YXRlUHJvdmlzaW9uYWwp
OwogICAgIG1fcHJvdmlzaW9uYWxEb2N1bWVudExvYWRlciA9IG1fZG9jdW1lbnRMb2FkZXI7Ci0g
ICAgbV9kb2N1bWVudExvYWRlciA9IDA7CisgICAgbV9kb2N1bWVudExvYWRlciA9IG51bGxwdHI7
CiAgICAgZGV0YWNoQ2hpbGRyZW4oKTsKIH0KIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUv
bG9hZGVyL1Byb2dyZXNzVHJhY2tlci5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9sb2FkZXIvUHJvZ3Jl
c3NUcmFja2VyLmNwcAppbmRleCAwNDA1NGRlNGVhYjM5NTFmOTVlMDdlOWRlZDMyZGM5MTZmZDdl
ZTA2Li5kNTZjYTA1ZGI5OTBiMzBhNmIwN2QxMmZiMmMwOWU5OTZiNzk3MjBmIDEwMDY0NAotLS0g
YS9Tb3VyY2UvV2ViQ29yZS9sb2FkZXIvUHJvZ3Jlc3NUcmFja2VyLmNwcAorKysgYi9Tb3VyY2Uv
V2ViQ29yZS9sb2FkZXIvUHJvZ3Jlc3NUcmFja2VyLmNwcApAQCAtMTEzLDcgKzExMyw3IEBAIHZv
aWQgUHJvZ3Jlc3NUcmFja2VyOjpyZXNldCgpCiAgICAgbV9sYXN0Tm90aWZpZWRQcm9ncmVzc1Rp
bWUgPSBzdGQ6OmNocm9ubzo6c3RlYWR5X2Nsb2NrOjp0aW1lX3BvaW50KCk7CiAgICAgbV9maW5h
bFByb2dyZXNzQ2hhbmdlZFNlbnQgPSBmYWxzZTsKICAgICBtX251bVByb2dyZXNzVHJhY2tlZEZy
YW1lcyA9IDA7Ci0gICAgbV9vcmlnaW5hdGluZ1Byb2dyZXNzRnJhbWUgPSAwOworICAgIG1fb3Jp
Z2luYXRpbmdQcm9ncmVzc0ZyYW1lID0gbnVsbHB0cjsKIAogICAgIG1faGVhcnRiZWF0c1dpdGhO
b1Byb2dyZXNzID0gMDsKICAgICBtX3RvdGFsQnl0ZXNSZWNlaXZlZEJlZm9yZVByZXZpb3VzSGVh
cnRiZWF0ID0gMDsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2xvYWRlci9SZXNvdXJjZUxv
YWRlci5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9sb2FkZXIvUmVzb3VyY2VMb2FkZXIuY3BwCmluZGV4
IDQzMWEwY2IxZDQ0NWJlMmZmNTkwM2Q2MjM1NDc2NmFhY2NlNDM1MzYuLjE2NmE0NTRjMTA5MGJh
OGJkMmRkYzBjY2M3YmEyMDMxMzJhOTEzODAgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2xv
YWRlci9SZXNvdXJjZUxvYWRlci5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvbG9hZGVyL1Jlc291
cmNlTG9hZGVyLmNwcApAQCAtOTAsOCArOTAsOCBAQCB2b2lkIFJlc291cmNlTG9hZGVyOjpyZWxl
YXNlUmVzb3VyY2VzKCkKICAgICAvLyBoYXMgYmVlbiBkZWFsbG9jYXRlZCBhbmQgYWxzbyB0byBh
dm9pZCByZWVudGVyaW5nIHRoaXMgbWV0aG9kLgogICAgIFJlZjxSZXNvdXJjZUxvYWRlcj4gcHJv
dGVjdCgqdGhpcyk7CiAKLSAgICBtX2ZyYW1lID0gMDsKLSAgICBtX2RvY3VtZW50TG9hZGVyID0g
MDsKKyAgICBtX2ZyYW1lID0gbnVsbHB0cjsKKyAgICBtX2RvY3VtZW50TG9hZGVyID0gbnVsbHB0
cjsKICAgICAKICAgICAvLyBXZSBuZWVkIHRvIHNldCByZWFjaGVkVGVybWluYWxTdGF0ZSB0byB0
cnVlIGJlZm9yZSB3ZSByZWxlYXNlCiAgICAgLy8gdGhlIHJlc291cmNlcyB0byBwcmV2ZW50IGEg
ZG91YmxlIGRlYWxsb2Mgb2YgV2ViVmlldyA8cmRhcjovL3Byb2JsZW0vNDM3MjYyOD4KQEAgLTEw
NCwxMSArMTA0LDExIEBAIHZvaWQgUmVzb3VyY2VMb2FkZXI6OnJlbGVhc2VSZXNvdXJjZXMoKQog
ICAgICAgICAvLyBDbGVhciBvdXQgdGhlIFJlc291cmNlSGFuZGxlJ3MgY2xpZW50IHNvIHRoYXQg
aXQgZG9lc24ndCB0cnkgdG8gY2FsbAogICAgICAgICAvLyB1cyBiYWNrIGFmdGVyIHdlIHJlbGVh
c2UgaXQsIHVubGVzcyBpdCBoYXMgYmVlbiByZXBsYWNlZCBieSBzb21lb25lIGVsc2UuCiAgICAg
ICAgIGlmIChtX2hhbmRsZS0+Y2xpZW50KCkgPT0gdGhpcykKLSAgICAgICAgICAgIG1faGFuZGxl
LT5zZXRDbGllbnQoMCk7Ci0gICAgICAgIG1faGFuZGxlID0gMDsKKyAgICAgICAgICAgIG1faGFu
ZGxlLT5zZXRDbGllbnQobnVsbHB0cik7CisgICAgICAgIG1faGFuZGxlID0gbnVsbHB0cjsKICAg
ICB9CiAKLSAgICBtX3Jlc291cmNlRGF0YSA9IDA7CisgICAgbV9yZXNvdXJjZURhdGEgPSBudWxs
cHRyOwogICAgIG1fZGVmZXJyZWRSZXF1ZXN0ID0gUmVzb3VyY2VSZXF1ZXN0KCk7CiB9CiAKQEAg
LTIyNSw3ICsyMjUsNyBAQCB2b2lkIFJlc291cmNlTG9hZGVyOjpzZXREZWZlcnNMb2FkaW5nKGJv
b2wgZGVmZXJzKQogRnJhbWVMb2FkZXIqIFJlc291cmNlTG9hZGVyOjpmcmFtZUxvYWRlcigpIGNv
bnN0CiB7CiAgICAgaWYgKCFtX2ZyYW1lKQotICAgICAgICByZXR1cm4gMDsKKyAgICAgICAgcmV0
dXJuIG51bGxwdHI7CiAgICAgcmV0dXJuICZtX2ZyYW1lLT5sb2FkZXIoKTsKIH0KIApAQCAtMjQ0
LDcgKzI0NCw3IEBAIHZvaWQgUmVzb3VyY2VMb2FkZXI6OnNldERhdGFCdWZmZXJpbmdQb2xpY3ko
RGF0YUJ1ZmZlcmluZ1BvbGljeSBkYXRhQnVmZmVyaW5nUG9sCiAKICAgICAvLyBSZXNldCBhbnkg
YWxyZWFkeSBidWZmZXJlZCBkYXRhCiAgICAgaWYgKGRhdGFCdWZmZXJpbmdQb2xpY3kgPT0gRG9O
b3RCdWZmZXJEYXRhKQotICAgICAgICBtX3Jlc291cmNlRGF0YSA9IDA7CisgICAgICAgIG1fcmVz
b3VyY2VEYXRhID0gbnVsbHB0cjsKIH0KICAgICAKIHZvaWQgUmVzb3VyY2VMb2FkZXI6OndpbGxT
d2l0Y2hUb1N1YnN0aXR1dGVSZXNvdXJjZSgpCkBAIC01MzAsNyArNTMwLDcgQEAgdm9pZCBSZXNv
dXJjZUxvYWRlcjo6Y2FuY2VsKGNvbnN0IFJlc291cmNlRXJyb3ImIGVycm9yKQogICAgICAgICBt
X2RvY3VtZW50TG9hZGVyLT5jYW5jZWxQZW5kaW5nU3Vic3RpdHV0ZUxvYWQodGhpcyk7CiAgICAg
ICAgIGlmIChtX2hhbmRsZSkgewogICAgICAgICAgICAgbV9oYW5kbGUtPmNhbmNlbCgpOwotICAg
ICAgICAgICAgbV9oYW5kbGUgPSAwOworICAgICAgICAgICAgbV9oYW5kbGUgPSBudWxscHRyOwog
ICAgICAgICB9CiAgICAgICAgIGNsZWFudXBGb3JFcnJvcihub25OdWxsRXJyb3IpOwogICAgIH0K
ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2xvYWRlci9hcHBjYWNoZS9BcHBsaWNhdGlvbkNh
Y2hlR3JvdXAuY3BwIGIvU291cmNlL1dlYkNvcmUvbG9hZGVyL2FwcGNhY2hlL0FwcGxpY2F0aW9u
Q2FjaGVHcm91cC5jcHAKaW5kZXggNjI3YzBmZTc5ZTc1ZTA4MzljNjYxOWNhNzRhYjk3MDkxODk4
OTJhNi4uNTliY2FjOWExMDBiYmM1NDM4YWQ0MDMyN2ZmN2ZmY2QzOTg5NzA2MyAxMDA2NDQKLS0t
IGEvU291cmNlL1dlYkNvcmUvbG9hZGVyL2FwcGNhY2hlL0FwcGxpY2F0aW9uQ2FjaGVHcm91cC5j
cHAKKysrIGIvU291cmNlL1dlYkNvcmUvbG9hZGVyL2FwcGNhY2hlL0FwcGxpY2F0aW9uQ2FjaGVH
cm91cC5jcHAKQEAgLTMyNyw3ICszMjcsNyBAQCB2b2lkIEFwcGxpY2F0aW9uQ2FjaGVHcm91cDo6
c3RvcExvYWRpbmcoKQogICAgICAgICBtX21hbmlmZXN0SGFuZGxlLT5zZXRDbGllbnQoMCk7CiAK
ICAgICAgICAgbV9tYW5pZmVzdEhhbmRsZS0+Y2FuY2VsKCk7Ci0gICAgICAgIG1fbWFuaWZlc3RI
YW5kbGUgPSAwOworICAgICAgICBtX21hbmlmZXN0SGFuZGxlID0gbnVsbHB0cjsKICAgICB9CiAg
ICAgCiAgICAgaWYgKG1fY3VycmVudEhhbmRsZSkgewpAQCAtMzM4LDExICszMzgsMTEgQEAgdm9p
ZCBBcHBsaWNhdGlvbkNhY2hlR3JvdXA6OnN0b3BMb2FkaW5nKCkKICAgICAgICAgbV9jdXJyZW50
SGFuZGxlLT5zZXRDbGllbnQoMCk7CiAKICAgICAgICAgbV9jdXJyZW50SGFuZGxlLT5jYW5jZWwo
KTsKLSAgICAgICAgbV9jdXJyZW50SGFuZGxlID0gMDsKKyAgICAgICAgbV9jdXJyZW50SGFuZGxl
ID0gbnVsbHB0cjsKICAgICB9ICAgIAogCiAgICAgLy8gRklYTUU6IFJlc2V0dGluZyBqdXN0IGEg
dGlueSBwYXJ0IG9mIHRoZSBzdGF0ZSBpbiB0aGlzIGZ1bmN0aW9uIGlzIGNvbmZ1c2luZy4gQ2Fs
bGVycyBoYXZlIHRvIHRha2UgY2FyZSBvZiBhIGxvdCBtb3JlLgotICAgIG1fY2FjaGVCZWluZ1Vw
ZGF0ZWQgPSAwOworICAgIG1fY2FjaGVCZWluZ1VwZGF0ZWQgPSBudWxscHRyOwogICAgIG1fcGVu
ZGluZ0VudHJpZXMuY2xlYXIoKTsKIH0gICAgCiAKQEAgLTUyMSw3ICs1MjEsNyBAQCB2b2lkIEFw
cGxpY2F0aW9uQ2FjaGVHcm91cDo6ZGlkUmVjZWl2ZVJlc3BvbnNlKFJlc291cmNlSGFuZGxlKiBo
YW5kbGUsIGNvbnN0IFJlcwogICAgICAgICAgICAgbV9jYWNoZUJlaW5nVXBkYXRlZC0+YWRkUmVz
b3VyY2UoQXBwbGljYXRpb25DYWNoZVJlc291cmNlOjpjcmVhdGUodXJsLCBuZXdlc3RDYWNoZWRS
ZXNvdXJjZS0+cmVzcG9uc2UoKSwgdHlwZSwgbmV3ZXN0Q2FjaGVkUmVzb3VyY2UtPmRhdGEoKSwg
bmV3ZXN0Q2FjaGVkUmVzb3VyY2UtPnBhdGgoKSkpOwogICAgICAgICAgICAgbV9wZW5kaW5nRW50
cmllcy5yZW1vdmUobV9jdXJyZW50SGFuZGxlLT5maXJzdFJlcXVlc3QoKS51cmwoKSk7CiAgICAg
ICAgICAgICBtX2N1cnJlbnRIYW5kbGUtPmNhbmNlbCgpOwotICAgICAgICAgICAgbV9jdXJyZW50
SGFuZGxlID0gMDsKKyAgICAgICAgICAgIG1fY3VycmVudEhhbmRsZSA9IG51bGxwdHI7CiAgICAg
ICAgICAgICAvLyBMb2FkIHRoZSBuZXh0IHJlc291cmNlLCBpZiBhbnkuCiAgICAgICAgICAgICBz
dGFydExvYWRpbmdFbnRyeSgpOwogICAgICAgICAgICAgcmV0dXJuOwpAQCAtNTM4LDcgKzUzOCw3
IEBAIHZvaWQgQXBwbGljYXRpb25DYWNoZUdyb3VwOjpkaWRSZWNlaXZlUmVzcG9uc2UoUmVzb3Vy
Y2VIYW5kbGUqIGhhbmRsZSwgY29uc3QgUmVzCiAgICAgICAgIH0gZWxzZSBpZiAocmVzcG9uc2Uu
aHR0cFN0YXR1c0NvZGUoKSA9PSA0MDQgfHwgcmVzcG9uc2UuaHR0cFN0YXR1c0NvZGUoKSA9PSA0
MTApIHsKICAgICAgICAgICAgIC8vIFNraXAgdGhpcyByZXNvdXJjZS4gSXQgaXMgZHJvcHBlZCBm
cm9tIHRoZSBjYWNoZS4KICAgICAgICAgICAgIG1fY3VycmVudEhhbmRsZS0+Y2FuY2VsKCk7Ci0g
ICAgICAgICAgICBtX2N1cnJlbnRIYW5kbGUgPSAwOworICAgICAgICAgICAgbV9jdXJyZW50SGFu
ZGxlID0gbnVsbHB0cjsKICAgICAgICAgICAgIG1fcGVuZGluZ0VudHJpZXMucmVtb3ZlKHVybCk7
CiAgICAgICAgICAgICAvLyBMb2FkIHRoZSBuZXh0IHJlc291cmNlLCBpZiBhbnkuCiAgICAgICAg
ICAgICBzdGFydExvYWRpbmdFbnRyeSgpOwpAQCAtNTUxLDcgKzU1MSw3IEBAIHZvaWQgQXBwbGlj
YXRpb25DYWNoZUdyb3VwOjpkaWRSZWNlaXZlUmVzcG9uc2UoUmVzb3VyY2VIYW5kbGUqIGhhbmRs
ZSwgY29uc3QgUmVzCiAgICAgICAgICAgICBtX2NhY2hlQmVpbmdVcGRhdGVkLT5hZGRSZXNvdXJj
ZShBcHBsaWNhdGlvbkNhY2hlUmVzb3VyY2U6OmNyZWF0ZSh1cmwsIG5ld2VzdENhY2hlZFJlc291
cmNlLT5yZXNwb25zZSgpLCB0eXBlLCBuZXdlc3RDYWNoZWRSZXNvdXJjZS0+ZGF0YSgpLCBuZXdl
c3RDYWNoZWRSZXNvdXJjZS0+cGF0aCgpKSk7CiAgICAgICAgICAgICBtX3BlbmRpbmdFbnRyaWVz
LnJlbW92ZShtX2N1cnJlbnRIYW5kbGUtPmZpcnN0UmVxdWVzdCgpLnVybCgpKTsKICAgICAgICAg
ICAgIG1fY3VycmVudEhhbmRsZS0+Y2FuY2VsKCk7Ci0gICAgICAgICAgICBtX2N1cnJlbnRIYW5k
bGUgPSAwOworICAgICAgICAgICAgbV9jdXJyZW50SGFuZGxlID0gbnVsbHB0cjsKICAgICAgICAg
ICAgIC8vIExvYWQgdGhlIG5leHQgcmVzb3VyY2UsIGlmIGFueS4KICAgICAgICAgICAgIHN0YXJ0
TG9hZGluZ0VudHJ5KCk7CiAgICAgICAgIH0KQEAgLTU5NSw3ICs1OTUsNyBAQCB2b2lkIEFwcGxp
Y2F0aW9uQ2FjaGVHcm91cDo6ZGlkRmluaXNoTG9hZGluZyhSZXNvdXJjZUhhbmRsZSogaGFuZGxl
LCBkb3VibGUgZmluaQogICAgIEFTU0VSVChtX2NhY2hlQmVpbmdVcGRhdGVkKTsKIAogICAgIG1f
Y2FjaGVCZWluZ1VwZGF0ZWQtPmFkZFJlc291cmNlKG1fY3VycmVudFJlc291cmNlLnJlbGVhc2Uo
KSk7Ci0gICAgbV9jdXJyZW50SGFuZGxlID0gMDsKKyAgICBtX2N1cnJlbnRIYW5kbGUgPSBudWxs
cHRyOwogCiAgICAgLy8gV2hpbGUgZG93bmxvYWRpbmcgY2hlY2sgdG8gc2VlIGlmIHdlIGhhdmUg
ZXhjZWVkZWQgdGhlIGF2YWlsYWJsZSBxdW90YS4KICAgICAvLyBXZSBjYW4gc3RvcCBpbW1lZGlh
dGVseSBpZiB3ZSBoYXZlIGFscmVhZHkgcHJldmlvdXNseSBmYWlsZWQKQEAgLTYwMyw3ICs2MDMs
NyBAQCB2b2lkIEFwcGxpY2F0aW9uQ2FjaGVHcm91cDo6ZGlkRmluaXNoTG9hZGluZyhSZXNvdXJj
ZUhhbmRsZSogaGFuZGxlLCBkb3VibGUgZmluaQogICAgIC8vIG9mIHRoZSBxdW90YSBiZWluZyBy
ZWFjaGVkIGFuZCBkZWNpZGVkIG5vdCB0byBpbmNyZWFzZSBpdCB0aGVuLgogICAgIC8vIEZJWE1F
OiBTaG91bGQgd2UgYnJlYWsgZWFybGllciBhbmQgcHJldmVudCByZWRvd25sb2FkaW5nIG9uIGxh
dGVyIHBhZ2UgbG9hZHM/CiAgICAgaWYgKG1fb3JpZ2luUXVvdGFFeGNlZWRlZFByZXZpb3VzbHkg
JiYgbV9hdmFpbGFibGVTcGFjZUluUXVvdGEgPCBtX2NhY2hlQmVpbmdVcGRhdGVkLT5lc3RpbWF0
ZWRTaXplSW5TdG9yYWdlKCkpIHsKLSAgICAgICAgbV9jdXJyZW50UmVzb3VyY2UgPSAwOworICAg
ICAgICBtX2N1cnJlbnRSZXNvdXJjZSA9IG51bGxwdHI7CiAgICAgICAgIG1fZnJhbWUtPmRvY3Vt
ZW50KCktPmFkZENvbnNvbGVNZXNzYWdlKE1lc3NhZ2VTb3VyY2U6OkFwcENhY2hlLCBNZXNzYWdl
TGV2ZWw6OkVycm9yLCBBU0NJSUxpdGVyYWwoIkFwcGxpY2F0aW9uIENhY2hlIHVwZGF0ZSBmYWls
ZWQsIGJlY2F1c2Ugc2l6ZSBxdW90YSB3YXMgZXhjZWVkZWQuIikpOwogICAgICAgICBjYWNoZVVw
ZGF0ZUZhaWxlZCgpOwogICAgICAgICByZXR1cm47CkBAIC02MzEsNyArNjMxLDcgQEAgdm9pZCBB
cHBsaWNhdGlvbkNhY2hlR3JvdXA6OmRpZEZhaWwoUmVzb3VyY2VIYW5kbGUqIGhhbmRsZSwgY29u
c3QgUmVzb3VyY2VFcnJvciYKICAgICAgICAgdXJsLnJlbW92ZUZyYWdtZW50SWRlbnRpZmllcigp
OwogCiAgICAgQVNTRVJUKCFtX2N1cnJlbnRSZXNvdXJjZSB8fCAhbV9wZW5kaW5nRW50cmllcy5j
b250YWlucyh1cmwpKTsKLSAgICBtX2N1cnJlbnRSZXNvdXJjZSA9IDA7CisgICAgbV9jdXJyZW50
UmVzb3VyY2UgPSBudWxscHRyOwogICAgIG1fcGVuZGluZ0VudHJpZXMucmVtb3ZlKHVybCk7CiAK
ICAgICBpZiAoKHR5cGUgJiBBcHBsaWNhdGlvbkNhY2hlUmVzb3VyY2U6OkV4cGxpY2l0KSB8fCAo
dHlwZSAmIEFwcGxpY2F0aW9uQ2FjaGVSZXNvdXJjZTo6RmFsbGJhY2spKSB7CkBAIC02OTUsNyAr
Njk1LDcgQEAgdm9pZCBBcHBsaWNhdGlvbkNhY2hlR3JvdXA6OmRpZEZpbmlzaExvYWRpbmdNYW5p
ZmVzdCgpCiAgICAgICAgIHJldHVybjsKICAgICB9CiAKLSAgICBtX21hbmlmZXN0SGFuZGxlID0g
MDsKKyAgICBtX21hbmlmZXN0SGFuZGxlID0gbnVsbHB0cjsKIAogICAgIC8vIENoZWNrIGlmIHRo
ZSBtYW5pZmVzdCB3YXMgbm90IG1vZGlmaWVkLgogICAgIGlmIChpc1VwZ3JhZGVBdHRlbXB0KSB7
CkBAIC03MDYsNyArNzA2LDcgQEAgdm9pZCBBcHBsaWNhdGlvbkNhY2hlR3JvdXA6OmRpZEZpbmlz
aExvYWRpbmdNYW5pZmVzdCgpCiAgICAgICAgICAgICAobmV3ZXN0TWFuaWZlc3QtPmRhdGEoKS0+
c2l6ZSgpID09IG1fbWFuaWZlc3RSZXNvdXJjZS0+ZGF0YSgpLT5zaXplKCkgJiYgIW1lbWNtcChu
ZXdlc3RNYW5pZmVzdC0+ZGF0YSgpLT5kYXRhKCksIG1fbWFuaWZlc3RSZXNvdXJjZS0+ZGF0YSgp
LT5kYXRhKCksIG5ld2VzdE1hbmlmZXN0LT5kYXRhKCktPnNpemUoKSkpKSB7CiAKICAgICAgICAg
ICAgIG1fY29tcGxldGlvblR5cGUgPSBOb1VwZGF0ZTsKLSAgICAgICAgICAgIG1fbWFuaWZlc3RS
ZXNvdXJjZSA9IDA7CisgICAgICAgICAgICBtX21hbmlmZXN0UmVzb3VyY2UgPSBudWxscHRyOwog
ICAgICAgICAgICAgZGVsaXZlckRlbGF5ZWRNYWluUmVzb3VyY2VzKCk7CiAKICAgICAgICAgICAg
IHJldHVybjsKQEAgLTc4Miw3ICs3ODIsNyBAQCB2b2lkIEFwcGxpY2F0aW9uQ2FjaGVHcm91cDo6
ZGlkUmVhY2hPcmlnaW5RdW90YShpbnQ2NF90IHRvdGFsU3BhY2VOZWVkZWQpCiB2b2lkIEFwcGxp
Y2F0aW9uQ2FjaGVHcm91cDo6Y2FjaGVVcGRhdGVGYWlsZWQoKQogewogICAgIHN0b3BMb2FkaW5n
KCk7Ci0gICAgbV9tYW5pZmVzdFJlc291cmNlID0gMDsKKyAgICBtX21hbmlmZXN0UmVzb3VyY2Ug
PSBudWxscHRyOwogCiAgICAgLy8gV2FpdCBmb3IgbWFzdGVyIHJlc291cmNlIGxvYWRzIHRvIGZp
bmlzaC4KICAgICBtX2NvbXBsZXRpb25UeXBlID0gRmFpbHVyZTsKQEAgLTgwNyw3ICs4MDcsNyBA
QCB2b2lkIEFwcGxpY2F0aW9uQ2FjaGVHcm91cDo6bWFuaWZlc3ROb3RGb3VuZCgpCiAgICAgc3Rv
cExvYWRpbmcoKTsKIAogICAgIEFTU0VSVChtX3BlbmRpbmdFbnRyaWVzLmlzRW1wdHkoKSk7Ci0g
ICAgbV9tYW5pZmVzdFJlc291cmNlID0gMDsKKyAgICBtX21hbmlmZXN0UmVzb3VyY2UgPSBudWxs
cHRyOwogCiAgICAgd2hpbGUgKCFtX3BlbmRpbmdNYXN0ZXJSZXNvdXJjZUxvYWRlcnMuaXNFbXB0
eSgpKSB7CiAgICAgICAgIEhhc2hTZXQ8RG9jdW1lbnRMb2FkZXIqPjo6aXRlcmF0b3IgaXQgPSBt
X3BlbmRpbmdNYXN0ZXJSZXNvdXJjZUxvYWRlcnMuYmVnaW4oKTsKZGlmZiAtLWdpdCBhL1NvdXJj
ZS9XZWJDb3JlL2xvYWRlci9jYWNoZS9DYWNoZWRDU1NTdHlsZVNoZWV0LmNwcCBiL1NvdXJjZS9X
ZWJDb3JlL2xvYWRlci9jYWNoZS9DYWNoZWRDU1NTdHlsZVNoZWV0LmNwcAppbmRleCA3YzJmZTdk
ODkyNGY0ZjkwZWNkZDU4MjA2NmFmZTI3YzA5ZjMwOGMxLi42ZDExODgwMWFmODI2ODQ1ZmI2MTk5
MjcwNDRhZjliMmIyZDIzNmM0IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9sb2FkZXIvY2Fj
aGUvQ2FjaGVkQ1NTU3R5bGVTaGVldC5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvbG9hZGVyL2Nh
Y2hlL0NhY2hlZENTU1N0eWxlU2hlZXQuY3BwCkBAIC0xMzgsNyArMTM4LDcgQEAgdm9pZCBDYWNo
ZWRDU1NTdHlsZVNoZWV0OjpkZXN0cm95RGVjb2RlZERhdGEoKQogICAgICAgICByZXR1cm47CiAK
ICAgICBtX3BhcnNlZFN0eWxlU2hlZXRDYWNoZS0+cmVtb3ZlZEZyb21NZW1vcnlDYWNoZSgpOwot
ICAgIG1fcGFyc2VkU3R5bGVTaGVldENhY2hlLmNsZWFyKCk7CisgICAgbV9wYXJzZWRTdHlsZVNo
ZWV0Q2FjaGUgPSBudWxscHRyOwogCiAgICAgc2V0RGVjb2RlZFNpemUoMCk7CiB9CkBAIC0xNDYs
MTEgKzE0NiwxMSBAQCB2b2lkIENhY2hlZENTU1N0eWxlU2hlZXQ6OmRlc3Ryb3lEZWNvZGVkRGF0
YSgpCiBQYXNzUmVmUHRyPFN0eWxlU2hlZXRDb250ZW50cz4gQ2FjaGVkQ1NTU3R5bGVTaGVldDo6
cmVzdG9yZVBhcnNlZFN0eWxlU2hlZXQoY29uc3QgQ1NTUGFyc2VyQ29udGV4dCYgY29udGV4dCwg
Q2FjaGVQb2xpY3kgY2FjaGVQb2xpY3kpCiB7CiAgICAgaWYgKCFtX3BhcnNlZFN0eWxlU2hlZXRD
YWNoZSkKLSAgICAgICAgcmV0dXJuIDA7CisgICAgICAgIHJldHVybiBudWxscHRyOwogICAgIGlm
ICghbV9wYXJzZWRTdHlsZVNoZWV0Q2FjaGUtPnN1YnJlc291cmNlc0FsbG93UmV1c2UoY2FjaGVQ
b2xpY3kpKSB7CiAgICAgICAgIG1fcGFyc2VkU3R5bGVTaGVldENhY2hlLT5yZW1vdmVkRnJvbU1l
bW9yeUNhY2hlKCk7Ci0gICAgICAgIG1fcGFyc2VkU3R5bGVTaGVldENhY2hlLmNsZWFyKCk7Ci0g
ICAgICAgIHJldHVybiAwOworICAgICAgICBtX3BhcnNlZFN0eWxlU2hlZXRDYWNoZSA9IG51bGxw
dHI7CisgICAgICAgIHJldHVybiBudWxscHRyOwogICAgIH0KIAogICAgIEFTU0VSVChtX3BhcnNl
ZFN0eWxlU2hlZXRDYWNoZS0+aXNDYWNoZWFibGUoKSk7CkBAIC0xNTgsNyArMTU4LDcgQEAgUGFz
c1JlZlB0cjxTdHlsZVNoZWV0Q29udGVudHM+IENhY2hlZENTU1N0eWxlU2hlZXQ6OnJlc3RvcmVQ
YXJzZWRTdHlsZVNoZWV0KGNvbnMKIAogICAgIC8vIENvbnRleHRzIG11c3QgYmUgaWRlbnRpY2Fs
IHNvIHdlIGtub3cgd2Ugd291bGQgZ2V0IHRoZSBzYW1lIGV4YWN0IHJlc3VsdCBpZiB3ZSBwYXJz
ZWQgYWdhaW4uCiAgICAgaWYgKG1fcGFyc2VkU3R5bGVTaGVldENhY2hlLT5wYXJzZXJDb250ZXh0
KCkgIT0gY29udGV4dCkKLSAgICAgICAgcmV0dXJuIDA7CisgICAgICAgIHJldHVybiBudWxscHRy
OwogCiAgICAgZGlkQWNjZXNzRGVjb2RlZERhdGEobW9ub3RvbmljYWxseUluY3JlYXNpbmdUaW1l
KCkpOwogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9sb2FkZXIvY2FjaGUvQ2FjaGVkSW1h
Z2UuY3BwIGIvU291cmNlL1dlYkNvcmUvbG9hZGVyL2NhY2hlL0NhY2hlZEltYWdlLmNwcAppbmRl
eCA1Mjc2OWRiOTZjZTE3ZGVhZDcyMDQxYTc2ODFiYTZmMmEwYWQ1OTg5Li5kZjMzNjc1YzYzYjVk
YjRhZjAzZTMyOTM3YzkxYTlkNzM0MDRhNzBhIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9s
b2FkZXIvY2FjaGUvQ2FjaGVkSW1hZ2UuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2xvYWRlci9j
YWNoZS9DYWNoZWRJbWFnZS5jcHAKQEAgLTM2NSw4ICszNjUsOCBAQCBpbmxpbmUgdm9pZCBDYWNo
ZWRJbWFnZTo6Y2xlYXJJbWFnZSgpCiAgICAgLy8gSWYgb3VyIEltYWdlIGhhcyBhbiBvYnNlcnZl
ciwgaXQncyBhbHdheXMgdXMgc28gd2UgbmVlZCB0byBjbGVhciB0aGUgYmFjayBwb2ludGVyCiAg
ICAgLy8gYmVmb3JlIGRyb3BwaW5nIG91ciByZWZlcmVuY2UuCiAgICAgaWYgKG1faW1hZ2UpCi0g
ICAgICAgIG1faW1hZ2UtPnNldEltYWdlT2JzZXJ2ZXIoMCk7Ci0gICAgbV9pbWFnZS5jbGVhcigp
OworICAgICAgICBtX2ltYWdlLT5zZXRJbWFnZU9ic2VydmVyKG51bGxwdHIpOworICAgIG1faW1h
Z2UgPSBudWxscHRyOwogfQogCiB2b2lkIENhY2hlZEltYWdlOjphZGRJbmNyZW1lbnRhbERhdGFC
dWZmZXIoU2hhcmVkQnVmZmVyJiBkYXRhKQpAQCAtNDU4LDcgKzQ1OCw3IEBAIHZvaWQgQ2FjaGVk
SW1hZ2U6OmRlc3Ryb3lEZWNvZGVkRGF0YSgpCiB7CiAgICAgYm9vbCBjYW5EZWxldGVJbWFnZSA9
ICFtX2ltYWdlIHx8IChtX2ltYWdlLT5oYXNPbmVSZWYoKSAmJiBtX2ltYWdlLT5pc0JpdG1hcElt
YWdlKCkpOwogICAgIGlmIChjYW5EZWxldGVJbWFnZSAmJiAhaXNMb2FkaW5nKCkgJiYgIWhhc0Ns
aWVudHMoKSkgewotICAgICAgICBtX2ltYWdlID0gMDsKKyAgICAgICAgbV9pbWFnZSA9IG51bGxw
dHI7CiAgICAgICAgIHNldERlY29kZWRTaXplKDApOwogICAgIH0gZWxzZSBpZiAobV9pbWFnZSAm
JiAhZXJyb3JPY2N1cnJlZCgpKQogICAgICAgICBtX2ltYWdlLT5kZXN0cm95RGVjb2RlZERhdGEo
KTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2xvYWRlci9jYWNoZS9DYWNoZWRSYXdSZXNv
dXJjZS5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9sb2FkZXIvY2FjaGUvQ2FjaGVkUmF3UmVzb3VyY2Uu
Y3BwCmluZGV4IDNjMWIyOTU1NGIxOWMwNWUyZmU5MWViMDdlMGU1NTJjMmY5OGE4ZjQuLjU0YmJk
ZTFhYzhlYzg3MTQ4YTk1M2QzZGQ3NzgyYTdiM2UzMjQ1NjUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9X
ZWJDb3JlL2xvYWRlci9jYWNoZS9DYWNoZWRSYXdSZXNvdXJjZS5jcHAKKysrIGIvU291cmNlL1dl
YkNvcmUvbG9hZGVyL2NhY2hlL0NhY2hlZFJhd1Jlc291cmNlLmNwcApAQCAtMjY4LDcgKzI2OCw3
IEBAIGJvb2wgQ2FjaGVkUmF3UmVzb3VyY2U6OmNhblJldXNlKGNvbnN0IFJlc291cmNlUmVxdWVz
dCYgbmV3UmVxdWVzdCkgY29uc3QKIAogdm9pZCBDYWNoZWRSYXdSZXNvdXJjZTo6Y2xlYXIoKQog
ewotICAgIG1fZGF0YS5jbGVhcigpOworICAgIG1fZGF0YSA9IG51bGxwdHI7CiAgICAgc2V0RW5j
b2RlZFNpemUoMCk7CiAgICAgaWYgKG1fbG9hZGVyKQogICAgICAgICBtX2xvYWRlci0+Y2xlYXJS
ZXNvdXJjZURhdGEoKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2xvYWRlci9jYWNoZS9D
YWNoZWRSZXNvdXJjZS5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9sb2FkZXIvY2FjaGUvQ2FjaGVkUmVz
b3VyY2UuY3BwCmluZGV4IGY0NDMxYmYzZGRhZmNkMmZiNzAzODM3YzZmN2NjZDAxMzA3NTExZjAu
LjNiZWYyMWU4ZDk4OTg4YTAzOGRlYjdlMTBlMGVmNGUzY2VmNDNhNmIgMTAwNjQ0Ci0tLSBhL1Nv
dXJjZS9XZWJDb3JlL2xvYWRlci9jYWNoZS9DYWNoZWRSZXNvdXJjZS5jcHAKKysrIGIvU291cmNl
L1dlYkNvcmUvbG9hZGVyL2NhY2hlL0NhY2hlZFJlc291cmNlLmNwcApAQCAtMzE3LDcgKzMxNyw3
IEBAIHZvaWQgQ2FjaGVkUmVzb3VyY2U6OmVycm9yKENhY2hlZFJlc291cmNlOjpTdGF0dXMgc3Rh
dHVzKQogewogICAgIHNldFN0YXR1cyhzdGF0dXMpOwogICAgIEFTU0VSVChlcnJvck9jY3VycmVk
KCkpOwotICAgIG1fZGF0YS5jbGVhcigpOworICAgIG1fZGF0YSA9IG51bGxwdHI7CiAKICAgICBz
ZXRMb2FkaW5nKGZhbHNlKTsKICAgICBjaGVja05vdGlmeSgpOwpkaWZmIC0tZ2l0IGEvU291cmNl
L1dlYkNvcmUvbG9hZGVyL2ljb24vSWNvblJlY29yZC5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9sb2Fk
ZXIvaWNvbi9JY29uUmVjb3JkLmNwcAppbmRleCBkNGJjMGQxYTE5ZjM3MDYyYmY3Y2E1OGVkYzY0
MmJmZWU2MjA1YTg4Li5lN2YxZDRiMjMzNDYxMDY5NGRkMzFlZTdlYzQ0MDQ3ZjgzNzNiNzY1IDEw
MDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9sb2FkZXIvaWNvbi9JY29uUmVjb3JkLmNwcAorKysg
Yi9Tb3VyY2UvV2ViQ29yZS9sb2FkZXIvaWNvbi9JY29uUmVjb3JkLmNwcApAQCAtNzEsNyArNzEs
NyBAQCB2b2lkIEljb25SZWNvcmQ6OnNldEltYWdlRGF0YShQYXNzUmVmUHRyPFNoYXJlZEJ1ZmZl
cj4gZGF0YSkKICAgICAvLyBDb3B5IHRoZSBwcm92aWRlZCBkYXRhIGludG8gdGhlIGJ1ZmZlciBv
ZiB0aGUgbmV3IEltYWdlIG9iamVjdC4KICAgICBpZiAoIW1faW1hZ2UtPnNldERhdGEoZGF0YSwg
dHJ1ZSkpIHsKICAgICAgICAgTE9HKEljb25EYXRhYmFzZSwgIk1hbnVhbCBpbWFnZSBkYXRhIGZv
ciBpY29uVVJMICclcycgRkFJTEVEIC0gaXQgd2FzIHByb2JhYmx5IGludmFsaWQgaW1hZ2UgZGF0
YSIsIG1faWNvblVSTC5hc2NpaSgpLmRhdGEoKSk7Ci0gICAgICAgIG1faW1hZ2UuY2xlYXIoKTsK
KyAgICAgICAgbV9pbWFnZSA9IG51bGxwdHI7CiAgICAgfQogICAgIAogICAgIG1fZGF0YVNldCA9
IHRydWU7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wYWdlL0V2ZW50SGFuZGxlci5jcHAg
Yi9Tb3VyY2UvV2ViQ29yZS9wYWdlL0V2ZW50SGFuZGxlci5jcHAKaW5kZXggNjU0YTRmZWM3NzM3
OTcyM2Q3YjYxZjM2MTY3YWJhMjVlODk0NTA5Yy4uM2FhNjZkOWJjODE0ZWMzYmZkYmQzNGM5ZDc1
ZTNlNzM1NjExNTRlMyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGFnZS9FdmVudEhhbmRs
ZXIuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BhZ2UvRXZlbnRIYW5kbGVyLmNwcApAQCAtNDg1
LDcgKzQ4NSw3IEBAIHZvaWQgRXZlbnRIYW5kbGVyOjpjbGVhcigpCiAgICAgbV9tb3VzZVBvc2l0
aW9uSXNVbmtub3duID0gdHJ1ZTsKICAgICBtX2xhc3RLbm93bk1vdXNlUG9zaXRpb24gPSBJbnRQ
b2ludCgpOwogICAgIG1fbGFzdEtub3duTW91c2VHbG9iYWxQb3NpdGlvbiA9IEludFBvaW50KCk7
Ci0gICAgbV9tb3VzZVByZXNzTm9kZSA9IDA7CisgICAgbV9tb3VzZVByZXNzTm9kZSA9IG51bGxw
dHI7CiAgICAgbV9tb3VzZVByZXNzZWQgPSBmYWxzZTsKICAgICBtX2NhcHR1cmVzRHJhZ2dpbmcg
PSBmYWxzZTsKICAgICBtX2NhcHR1cmluZ01vdXNlRXZlbnRzRWxlbWVudCA9IG51bGxwdHI7CkBA
IC00OTQsNyArNDk0LDcgQEAgdm9pZCBFdmVudEhhbmRsZXI6OmNsZWFyKCkKICNlbmRpZgogI2lm
IEVOQUJMRShUT1VDSF9FVkVOVFMpICYmICFFTkFCTEUoSU9TX1RPVUNIX0VWRU5UUykKICAgICBt
X29yaWdpbmF0aW5nVG91Y2hQb2ludFRhcmdldHMuY2xlYXIoKTsKLSAgICBtX29yaWdpbmF0aW5n
VG91Y2hQb2ludERvY3VtZW50LmNsZWFyKCk7CisgICAgbV9vcmlnaW5hdGluZ1RvdWNoUG9pbnRE
b2N1bWVudCA9IG51bGxwdHI7CiAgICAgbV9vcmlnaW5hdGluZ1RvdWNoUG9pbnRUYXJnZXRLZXkg
PSAwOwogI2VuZGlmCiAgICAgbV9tYXhNb3VzZU1vdmVkRHVyYXRpb24gPSAwOwpAQCAtMzk5NCw3
ICszOTk0LDcgQEAgYm9vbCBFdmVudEhhbmRsZXI6OmhhbmRsZVRvdWNoRXZlbnQoY29uc3QgUGxh
dGZvcm1Ub3VjaEV2ZW50JiBldmVudCkKICAgICB9CiAgICAgbV90b3VjaFByZXNzZWQgPSB0b3Vj
aGVzLT5sZW5ndGgoKSA+IDA7CiAgICAgaWYgKGFsbFRvdWNoUmVsZWFzZWQpCi0gICAgICAgIG1f
b3JpZ2luYXRpbmdUb3VjaFBvaW50RG9jdW1lbnQuY2xlYXIoKTsKKyAgICAgICAgbV9vcmlnaW5h
dGluZ1RvdWNoUG9pbnREb2N1bWVudCA9IG51bGxwdHI7CiAKICAgICAvLyBOb3cgaXRlcmF0ZSB0
aGUgY2hhbmdlZFRvdWNoZXMgbGlzdCBhbmQgbV90YXJnZXRzIHdpdGhpbiBpdCwgc2VuZGluZyBl
dmVudHMgdG8gdGhlIHRhcmdldHMgYXMgcmVxdWlyZWQuCiAgICAgYm9vbCBzd2FsbG93ZWRFdmVu
dCA9IGZhbHNlOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGFnZS9QYWdlLmNwcCBiL1Nv
dXJjZS9XZWJDb3JlL3BhZ2UvUGFnZS5jcHAKaW5kZXggMWQzZGNjMmI1NjM5NjIxNGU5ZjgwZjcy
YzhlMzNlYTE4OWI5M2FkMi4uZjg2ZDgxZmQwNTMwYTAzYzYyNjIyMTE2YzkwYmZlOTA1NjcxNjdi
MCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGFnZS9QYWdlLmNwcAorKysgYi9Tb3VyY2Uv
V2ViQ29yZS9wYWdlL1BhZ2UuY3BwCkBAIC01MTYsNyArNTE2LDcgQEAgdm9pZCBQYWdlOjpyZWZy
ZXNoUGx1Z2lucyhib29sIHJlbG9hZCkKICAgICBWZWN0b3I8UmVmPEZyYW1lPj4gZnJhbWVzTmVl
ZGluZ1JlbG9hZDsKIAogICAgIGZvciAoYXV0byYgcGFnZSA6ICphbGxQYWdlcykgewotICAgICAg
ICBwYWdlLT5tX3BsdWdpbkRhdGEuY2xlYXIoKTsKKyAgICAgICAgcGFnZS0+bV9wbHVnaW5EYXRh
ID0gbnVsbHB0cjsKIAogICAgICAgICBpZiAoIXJlbG9hZCkKICAgICAgICAgICAgIGNvbnRpbnVl
OwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vYXVkaW8vbWFjL0NBUmluZ0J1
ZmZlci5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9hdWRpby9tYWMvQ0FSaW5nQnVmZmVy
LmNwcAppbmRleCBmNzZlOGRmOTA2YjVhNjFlNTdjNzc1YzRjZTZkMmNjNDRiYzhhYTUyLi4wNTQ0
MmFkYzQ1ZTk3Nzg5OTMxNTIwNWMzNzJlNjE5NjAxMjc5ZDM3IDEwMDY0NAotLS0gYS9Tb3VyY2Uv
V2ViQ29yZS9wbGF0Zm9ybS9hdWRpby9tYWMvQ0FSaW5nQnVmZmVyLmNwcAorKysgYi9Tb3VyY2Uv
V2ViQ29yZS9wbGF0Zm9ybS9hdWRpby9tYWMvQ0FSaW5nQnVmZmVyLmNwcApAQCAtODYsNyArODYs
NyBAQCB2b2lkIENBUmluZ0J1ZmZlcjo6YWxsb2NhdGUodWludDMyX3QgY2hhbm5lbENvdW50LCBz
aXplX3QgYnl0ZXNQZXJGcmFtZSwgc2l6ZV90CiB2b2lkIENBUmluZ0J1ZmZlcjo6ZGVhbGxvY2F0
ZSgpCiB7CiAgICAgaWYgKG1fYnVmZmVycykKLSAgICAgICAgbV9idWZmZXJzLmNsZWFyKCk7Cisg
ICAgICAgIG1fYnVmZmVycyA9IG51bGxwdHI7CiAKICAgICBtX2NoYW5uZWxDb3VudCA9IDA7CiAg
ICAgbV9jYXBhY2l0eUJ5dGVzID0gMDsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRm
b3JtL2dyYXBoaWNzL0ZvbnQuY3BwIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3Mv
Rm9udC5jcHAKaW5kZXggNjAzZWJhODFmMDEwZmVmMGIwOWVhOTQ3YWU4ODZhNTE5OThiNWFjYy4u
ZDkyNjViNThkMmJlMjRhZDcxNDczYWJhNWIyM2I1MjZkMDkxMzcyZSAxMDA2NDQKLS0tIGEvU291
cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvRm9udC5jcHAKKysrIGIvU291cmNlL1dlYkNv
cmUvcGxhdGZvcm0vZ3JhcGhpY3MvRm9udC5jcHAKQEAgLTM2Myw3ICszNjMsNyBAQCBjb25zdCBP
cGVuVHlwZU1hdGhEYXRhKiBGb250OjptYXRoRGF0YSgpIGNvbnN0CiAgICAgaWYgKCFtX21hdGhE
YXRhKSB7CiAgICAgICAgIG1fbWF0aERhdGEgPSBPcGVuVHlwZU1hdGhEYXRhOjpjcmVhdGUobV9w
bGF0Zm9ybURhdGEpOwogICAgICAgICBpZiAoIW1fbWF0aERhdGEtPmhhc01hdGhEYXRhKCkpCi0g
ICAgICAgICAgICBtX21hdGhEYXRhLmNsZWFyKCk7CisgICAgICAgICAgICBtX21hdGhEYXRhID0g
bnVsbHB0cjsKICAgICB9CiAgICAgcmV0dXJuIG1fbWF0aERhdGEuZ2V0KCk7CiB9CmRpZmYgLS1n
aXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9Gb250Q2FjaGUuY3BwIGIvU291
cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvRm9udENhY2hlLmNwcAppbmRleCBhNmM0MDQ5
OTQ4Y2YzNjMyMWI3M2RkNTExYjkxOGEyYThhYWUwNDVjLi44ZDFhODM1OWQ2OWNiNzBlNGMyMGI1
ZWE4MzI4NzY1YTZiY2Q0NjM0IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9n
cmFwaGljcy9Gb250Q2FjaGUuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBo
aWNzL0ZvbnRDYWNoZS5jcHAKQEAgLTMyMCw3ICszMjAsNyBAQCBQYXNzUmVmUHRyPE9wZW5UeXBl
VmVydGljYWxEYXRhPiBGb250Q2FjaGU6OmdldFZlcnRpY2FsRGF0YShjb25zdCBGb250RmlsZUtl
eSYgawogCiAgICAgUmVmUHRyPE9wZW5UeXBlVmVydGljYWxEYXRhPiB2ZXJ0aWNhbERhdGEgPSBP
cGVuVHlwZVZlcnRpY2FsRGF0YTo6Y3JlYXRlKHBsYXRmb3JtRGF0YSk7CiAgICAgaWYgKCF2ZXJ0
aWNhbERhdGEtPmlzT3BlblR5cGUoKSkKLSAgICAgICAgdmVydGljYWxEYXRhLmNsZWFyKCk7Cisg
ICAgICAgIHZlcnRpY2FsRGF0YSA9IG51bGxwdHI7CiAgICAgZm9udFZlcnRpY2FsRGF0YUNhY2hl
LnNldChrZXksIHZlcnRpY2FsRGF0YSk7CiAgICAgcmV0dXJuIHZlcnRpY2FsRGF0YTsKIH0KZGlm
ZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL0dyYXBoaWNzQ29udGV4
dC5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9HcmFwaGljc0NvbnRleHQu
Y3BwCmluZGV4IGQzOGMxZmFmNzc1MjU4MzNmMzdlM2NiNjE3OGJiNGM2ZjY3Y2MzOTkuLmU2YjM3
ZmRlNWY5NWVjMDJjMmY3ZDY4YTYxZjQwZjQ3YTc3ZjI3MzEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9X
ZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL0dyYXBoaWNzQ29udGV4dC5jcHAKKysrIGIvU291cmNl
L1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvR3JhcGhpY3NDb250ZXh0LmNwcApAQCAtMTc4LDgg
KzE3OCw4IEBAIHZvaWQgR3JhcGhpY3NDb250ZXh0OjpzZXRTdHJva2VDb2xvcihjb25zdCBDb2xv
ciYgY29sb3IsIENvbG9yU3BhY2UgY29sb3JTcGFjZSkKIHsKICAgICBtX3N0YXRlLnN0cm9rZUNv
bG9yID0gY29sb3I7CiAgICAgbV9zdGF0ZS5zdHJva2VDb2xvclNwYWNlID0gY29sb3JTcGFjZTsK
LSAgICBtX3N0YXRlLnN0cm9rZUdyYWRpZW50LmNsZWFyKCk7Ci0gICAgbV9zdGF0ZS5zdHJva2VQ
YXR0ZXJuLmNsZWFyKCk7CisgICAgbV9zdGF0ZS5zdHJva2VHcmFkaWVudCA9IG51bGxwdHI7Cisg
ICAgbV9zdGF0ZS5zdHJva2VQYXR0ZXJuID0gbnVsbHB0cjsKICAgICBzZXRQbGF0Zm9ybVN0cm9r
ZUNvbG9yKGNvbG9yLCBjb2xvclNwYWNlKTsKIH0KIApAQCAtMjQ1LDggKzI0NSw4IEBAIHZvaWQg
R3JhcGhpY3NDb250ZXh0OjpzZXRGaWxsQ29sb3IoY29uc3QgQ29sb3ImIGNvbG9yLCBDb2xvclNw
YWNlIGNvbG9yU3BhY2UpCiB7CiAgICAgbV9zdGF0ZS5maWxsQ29sb3IgPSBjb2xvcjsKICAgICBt
X3N0YXRlLmZpbGxDb2xvclNwYWNlID0gY29sb3JTcGFjZTsKLSAgICBtX3N0YXRlLmZpbGxHcmFk
aWVudC5jbGVhcigpOwotICAgIG1fc3RhdGUuZmlsbFBhdHRlcm4uY2xlYXIoKTsKKyAgICBtX3N0
YXRlLmZpbGxHcmFkaWVudCA9IG51bGxwdHI7CisgICAgbV9zdGF0ZS5maWxsUGF0dGVybiA9IG51
bGxwdHI7CiAgICAgc2V0UGxhdGZvcm1GaWxsQ29sb3IoY29sb3IsIGNvbG9yU3BhY2UpOwogfQog
CkBAIC0yNjksMjYgKzI2OSwyNiBAQCB2b2lkIEdyYXBoaWNzQ29udGV4dDo6c2V0QW50aWFsaWFz
ZWRGb250RGlsYXRpb25FbmFibGVkKGJvb2wgYW50aWFsaWFzZWRGb250RGlsYQogCiB2b2lkIEdy
YXBoaWNzQ29udGV4dDo6c2V0U3Ryb2tlUGF0dGVybihSZWY8UGF0dGVybj4mJiBwYXR0ZXJuKQog
ewotICAgIG1fc3RhdGUuc3Ryb2tlR3JhZGllbnQuY2xlYXIoKTsKKyAgICBtX3N0YXRlLnN0cm9r
ZUdyYWRpZW50ID0gbnVsbHB0cjsKICAgICBtX3N0YXRlLnN0cm9rZVBhdHRlcm4gPSBXVEY6Om1v
dmUocGF0dGVybik7CiB9CiAKIHZvaWQgR3JhcGhpY3NDb250ZXh0OjpzZXRGaWxsUGF0dGVybihS
ZWY8UGF0dGVybj4mJiBwYXR0ZXJuKQogewotICAgIG1fc3RhdGUuZmlsbEdyYWRpZW50LmNsZWFy
KCk7CisgICAgbV9zdGF0ZS5maWxsR3JhZGllbnQgPSBudWxscHRyOwogICAgIG1fc3RhdGUuZmls
bFBhdHRlcm4gPSBXVEY6Om1vdmUocGF0dGVybik7CiB9CiAKIHZvaWQgR3JhcGhpY3NDb250ZXh0
OjpzZXRTdHJva2VHcmFkaWVudChSZWY8R3JhZGllbnQ+JiYgZ3JhZGllbnQpCiB7CiAgICAgbV9z
dGF0ZS5zdHJva2VHcmFkaWVudCA9IFdURjo6bW92ZShncmFkaWVudCk7Ci0gICAgbV9zdGF0ZS5z
dHJva2VQYXR0ZXJuLmNsZWFyKCk7CisgICAgbV9zdGF0ZS5zdHJva2VQYXR0ZXJuID0gbnVsbHB0
cjsKIH0KIAogdm9pZCBHcmFwaGljc0NvbnRleHQ6OnNldEZpbGxHcmFkaWVudChSZWY8R3JhZGll
bnQ+JiYgZ3JhZGllbnQpCiB7CiAgICAgbV9zdGF0ZS5maWxsR3JhZGllbnQgPSBXVEY6Om1vdmUo
Z3JhZGllbnQpOwotICAgIG1fc3RhdGUuZmlsbFBhdHRlcm4uY2xlYXIoKTsKKyAgICBtX3N0YXRl
LmZpbGxQYXR0ZXJuID0gbnVsbHB0cjsKIH0KIAogdm9pZCBHcmFwaGljc0NvbnRleHQ6OmJlZ2lu
VHJhbnNwYXJlbmN5TGF5ZXIoZmxvYXQgb3BhY2l0eSkKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJD
b3JlL3BsYXRmb3JtL2dyYXBoaWNzL01lZGlhUGxheWVyLmNwcCBiL1NvdXJjZS9XZWJDb3JlL3Bs
YXRmb3JtL2dyYXBoaWNzL01lZGlhUGxheWVyLmNwcAppbmRleCAyOTRhNzZkOWY4NmVmMmU3NzUw
ZDM2YTgzYTk4N2Q3NjBkNDBiMWQyLi4wMTI3OTVlNDY1YmVhMDRkMGY4N2U3Mjc3ZTc0ZTBmZTVi
NTg3MmIxIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9NZWRp
YVBsYXllci5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvTWVkaWFQ
bGF5ZXIuY3BwCkBAIC0zMTQsMTAgKzMxNCwxMCBAQCBib29sIE1lZGlhUGxheWVyOjpsb2FkKGNv
bnN0IFVSTCYgdXJsLCBjb25zdCBDb250ZW50VHlwZSYgY29udGVudFR5cGUsIGNvbnN0IFN0cgog
ICAgIG1fY29udGVudE1JTUVUeXBlV2FzSW5mZXJyZWRGcm9tRXh0ZW5zaW9uID0gZmFsc2U7CiAK
ICNpZiBFTkFCTEUoTUVESUFfU09VUkNFKQotICAgIG1fbWVkaWFTb3VyY2UgPSAwOworICAgIG1f
bWVkaWFTb3VyY2UgPSBudWxscHRyOwogI2VuZGlmCiAjaWYgRU5BQkxFKE1FRElBX1NUUkVBTSkK
LSAgICBtX21lZGlhU3RyZWFtID0gMDsKKyAgICBtX21lZGlhU3RyZWFtID0gbnVsbHB0cjsKICNl
bmRpZgogCiAgICAgLy8gSWYgdGhlIE1JTUUgdHlwZSBpcyBtaXNzaW5nIG9yIGlzIG5vdCBtZWFu
aW5nZnVsLCB0cnkgdG8gZmlndXJlIGl0IG91dCBmcm9tIHRoZSBVUkwuCmRpZmYgLS1naXQgYS9T
b3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9jYS9HcmFwaGljc0xheWVyQ0EuY3BwIGIv
U291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvY2EvR3JhcGhpY3NMYXllckNBLmNwcApp
bmRleCA4MmMwNzY5MTI3YmY5ZTUxNjlkYWU0OGRmYjRiMjg5MDJmZTkwNmMwLi4zNGY0Y2UxMDNh
OTM2ZTNhMDExYjg1Y2ZiNGRmZWVjZDYxNTJjOGU4IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29y
ZS9wbGF0Zm9ybS9ncmFwaGljcy9jYS9HcmFwaGljc0xheWVyQ0EuY3BwCisrKyBiL1NvdXJjZS9X
ZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2NhL0dyYXBoaWNzTGF5ZXJDQS5jcHAKQEAgLTIyMDgs
NyArMjIwOCw3IEBAIHZvaWQgR3JhcGhpY3NMYXllckNBOjp1cGRhdGVDb250ZW50c0ltYWdlKCkK
ICAgICB9IGVsc2UgewogICAgICAgICAvLyBObyBpbWFnZS4KICAgICAgICAgLy8gbV9jb250ZW50
c0xheWVyIHdpbGwgYmUgcmVtb3ZlZCB2aWEgdXBkYXRlU3VibGF5ZXJMaXN0LgotICAgICAgICBt
X2NvbnRlbnRzTGF5ZXIgPSAwOworICAgICAgICBtX2NvbnRlbnRzTGF5ZXIgPSBudWxscHRyOwog
ICAgIH0KIH0KIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3Mv
Y2Fpcm8vQmFja2luZ1N0b3JlQmFja2VuZENhaXJvWDExLmNwcCBiL1NvdXJjZS9XZWJDb3JlL3Bs
YXRmb3JtL2dyYXBoaWNzL2NhaXJvL0JhY2tpbmdTdG9yZUJhY2tlbmRDYWlyb1gxMS5jcHAKaW5k
ZXggN2I4NjMxYWYwYTlkOGY0YWU5MDYzYjI3OWU0MGNlZTM0NTQ5Y2ZhNC4uNDM3ZGFmYzgyZmQy
MmVjYmYwNjA0N2EzYzI4Njg5ZWJlMDIyMzZkMiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUv
cGxhdGZvcm0vZ3JhcGhpY3MvY2Fpcm8vQmFja2luZ1N0b3JlQmFja2VuZENhaXJvWDExLmNwcAor
KysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9jYWlyby9CYWNraW5nU3RvcmVC
YWNrZW5kQ2Fpcm9YMTEuY3BwCkBAIC00Myw3ICs0Myw3IEBAIEJhY2tpbmdTdG9yZUJhY2tlbmRD
YWlyb1gxMTo6QmFja2luZ1N0b3JlQmFja2VuZENhaXJvWDExKHVuc2lnbmVkIGxvbmcgcm9vdFdp
bmRvCiBCYWNraW5nU3RvcmVCYWNrZW5kQ2Fpcm9YMTE6On5CYWNraW5nU3RvcmVCYWNrZW5kQ2Fp
cm9YMTEoKQogewogICAgIC8vIFRoZSBwaXhtYXAgbmVlZHMgdG8gZXhpc3Qgd2hlbiB0aGUgc3Vy
ZmFjZSBpcyBkZXN0cm95ZWQsIHNvIGJlZ2luIGJ5IGNsZWFyaW5nIGl0LgotICAgIG1fc3VyZmFj
ZS5jbGVhcigpOworICAgIG1fc3VyZmFjZSA9IG51bGxwdHI7CiB9CiAKIHZvaWQgQmFja2luZ1N0
b3JlQmFja2VuZENhaXJvWDExOjpzY3JvbGwoY29uc3QgSW50UmVjdCYgc2Nyb2xsUmVjdCwgY29u
c3QgSW50U2l6ZSYgc2Nyb2xsT2Zmc2V0KQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxh
dGZvcm0vZ3JhcGhpY3MvY2Fpcm8vQml0bWFwSW1hZ2VDYWlyby5jcHAgYi9Tb3VyY2UvV2ViQ29y
ZS9wbGF0Zm9ybS9ncmFwaGljcy9jYWlyby9CaXRtYXBJbWFnZUNhaXJvLmNwcAppbmRleCAyNmRm
NWRmM2FiYTQ5MDc2MDEyNzg5YzI2NmZhOTYwMjc3NWJlMmRlLi5mMGQzYTdhNzJkYjkyZmRlMWQx
YjVmOTkzOGIzYzBjMWU3YWQ2MWYxIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9y
bS9ncmFwaGljcy9jYWlyby9CaXRtYXBJbWFnZUNhaXJvLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29y
ZS9wbGF0Zm9ybS9ncmFwaGljcy9jYWlyby9CaXRtYXBJbWFnZUNhaXJvLmNwcApAQCAtMTU5LDcg
KzE1OSw3IEBAIGJvb2wgRnJhbWVEYXRhOjpjbGVhcihib29sIGNsZWFyTWV0YWRhdGEpCiAgICAg
ICAgIG1faGF2ZU1ldGFkYXRhID0gZmFsc2U7CiAKICAgICBpZiAobV9mcmFtZSkgewotICAgICAg
ICBtX2ZyYW1lLmNsZWFyKCk7CisgICAgICAgIG1fZnJhbWUgPSBudWxscHRyOwogICAgICAgICBy
ZXR1cm4gdHJ1ZTsKICAgICB9CiAgICAgcmV0dXJuIGZhbHNlOwpkaWZmIC0tZ2l0IGEvU291cmNl
L1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvZmlsdGVycy9GaWx0ZXJFZmZlY3QuY3BwIGIvU291
cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvZmlsdGVycy9GaWx0ZXJFZmZlY3QuY3BwCmlu
ZGV4IDc2MjcwMDgwMzBkN2VmYWU2ZTA4MGU2ODc1OGRjMTYwZWFjMmMwYjkuLmM5OGQ1Yjk4NWFm
M2JiMWU1YjBjMGMyMjZiYjQ1ZmM2MDU0ZjQzM2MgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3Jl
L3BsYXRmb3JtL2dyYXBoaWNzL2ZpbHRlcnMvRmlsdGVyRWZmZWN0LmNwcAorKysgYi9Tb3VyY2Uv
V2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9maWx0ZXJzL0ZpbHRlckVmZmVjdC5jcHAKQEAgLTI0
NSwxMiArMjQ1LDEyIEBAIHZvaWQgRmlsdGVyRWZmZWN0OjpjbGVhclJlc3VsdCgpCiAgICAgaWYg
KG1faW1hZ2VCdWZmZXJSZXN1bHQpCiAgICAgICAgIG1faW1hZ2VCdWZmZXJSZXN1bHQucmVzZXQo
KTsKICAgICBpZiAobV91bm11bHRpcGxpZWRJbWFnZVJlc3VsdCkKLSAgICAgICAgbV91bm11bHRp
cGxpZWRJbWFnZVJlc3VsdC5jbGVhcigpOworICAgICAgICBtX3VubXVsdGlwbGllZEltYWdlUmVz
dWx0ID0gbnVsbHB0cjsKICAgICBpZiAobV9wcmVtdWx0aXBsaWVkSW1hZ2VSZXN1bHQpCi0gICAg
ICAgIG1fcHJlbXVsdGlwbGllZEltYWdlUmVzdWx0LmNsZWFyKCk7CisgICAgICAgIG1fcHJlbXVs
dGlwbGllZEltYWdlUmVzdWx0ID0gbnVsbHB0cjsKICNpZiBFTkFCTEUoT1BFTkNMKQogICAgIGlm
IChtX29wZW5DTEltYWdlUmVzdWx0KQotICAgICAgICBtX29wZW5DTEltYWdlUmVzdWx0LmNsZWFy
KCk7CisgICAgICAgIG1fb3BlbkNMSW1hZ2VSZXN1bHQgPSBudWxscHRyOwogI2VuZGlmCiB9CiAK
QEAgLTU0MCw3ICs1NDAsNyBAQCB2b2lkIEZpbHRlckVmZmVjdDo6dHJhbnNmb3JtUmVzdWx0Q29s
b3JTcGFjZShDb2xvclNwYWNlIGRzdENvbG9yU3BhY2UpCiAjaWYgRU5BQkxFKE9QRU5DTCkKICAg
ICBpZiAob3BlbkNMSW1hZ2UoKSkgewogICAgICAgICBpZiAobV9pbWFnZUJ1ZmZlclJlc3VsdCkK
LSAgICAgICAgICAgIG1faW1hZ2VCdWZmZXJSZXN1bHQuY2xlYXIoKTsKKyAgICAgICAgICAgIG1f
aW1hZ2VCdWZmZXJSZXN1bHQgPSBudWxscHRyOwogICAgICAgICBGaWx0ZXJDb250ZXh0T3BlbkNM
KiBjb250ZXh0ID0gRmlsdGVyQ29udGV4dE9wZW5DTDo6Y29udGV4dCgpOwogICAgICAgICBBU1NF
UlQoY29udGV4dCk7CiAgICAgICAgIGNvbnRleHQtPm9wZW5DTFRyYW5zZm9ybUNvbG9yU3BhY2Uo
bV9vcGVuQ0xJbWFnZVJlc3VsdCwgYWJzb2x1dGVQYWludFJlY3QoKSwgbV9yZXN1bHRDb2xvclNw
YWNlLCBkc3RDb2xvclNwYWNlKTsKQEAgLTU1OCw5ICs1NTgsOSBAQCB2b2lkIEZpbHRlckVmZmVj
dDo6dHJhbnNmb3JtUmVzdWx0Q29sb3JTcGFjZShDb2xvclNwYWNlIGRzdENvbG9yU3BhY2UpCiAg
ICAgbV9yZXN1bHRDb2xvclNwYWNlID0gZHN0Q29sb3JTcGFjZTsKIAogICAgIGlmIChtX3VubXVs
dGlwbGllZEltYWdlUmVzdWx0KQotICAgICAgICBtX3VubXVsdGlwbGllZEltYWdlUmVzdWx0LmNs
ZWFyKCk7CisgICAgICAgIG1fdW5tdWx0aXBsaWVkSW1hZ2VSZXN1bHQgPSBudWxscHRyOwogICAg
IGlmIChtX3ByZW11bHRpcGxpZWRJbWFnZVJlc3VsdCkKLSAgICAgICAgbV9wcmVtdWx0aXBsaWVk
SW1hZ2VSZXN1bHQuY2xlYXIoKTsKKyAgICAgICAgbV9wcmVtdWx0aXBsaWVkSW1hZ2VSZXN1bHQg
PSBudWxscHRyOwogI2VuZGlmCiB9CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRm
b3JtL2dyYXBoaWNzL2dzdHJlYW1lci9JbWFnZUdTdHJlYW1lckNhaXJvLmNwcCBiL1NvdXJjZS9X
ZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2dzdHJlYW1lci9JbWFnZUdTdHJlYW1lckNhaXJvLmNw
cAppbmRleCAwNmZhZWNhMTliYTI1M2VhNzgzNzBmNTg1NDRhYmYxYWNiMmU1MjVlLi5lZTI3Mjc3
ZmYwYjdlOTAzM2Y0YjkzMzYwMjhhY2Y0MjE4YjIwYTVmIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2Vi
Q29yZS9wbGF0Zm9ybS9ncmFwaGljcy9nc3RyZWFtZXIvSW1hZ2VHU3RyZWFtZXJDYWlyby5jcHAK
KysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvZ3N0cmVhbWVyL0ltYWdlR1N0
cmVhbWVyQ2Fpcm8uY3BwCkBAIC03MSw5ICs3MSw3IEBAIEltYWdlR1N0cmVhbWVyOjpJbWFnZUdT
dHJlYW1lcihHc3RTYW1wbGUqIHNhbXBsZSkKIEltYWdlR1N0cmVhbWVyOjp+SW1hZ2VHU3RyZWFt
ZXIoKQogewogICAgIGlmIChtX2ltYWdlKQotICAgICAgICBtX2ltYWdlLmNsZWFyKCk7Ci0KLSAg
ICBtX2ltYWdlID0gMDsKKyAgICAgICAgbV9pbWFnZSA9IG51bGxwdHI7CiAKICAgICAvLyBXZSBr
ZWVwIHRoZSBidWZmZXIgbWVtb3J5IG1hcHBlZCB1bnRpbCB0aGUgaW1hZ2UgaXMgZGVzdHJveWVk
IGJlY2F1c2UgdGhlIGludGVybmFsCiAgICAgLy8gY2Fpcm9fc3VyZmFjZV90IHdhcyBjcmVhdGVk
IHVzaW5nIGNhaXJvX2ltYWdlX3N1cmZhY2VfY3JlYXRlX2Zvcl9kYXRhKCkuCmRpZmYgLS1naXQg
YS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9nc3RyZWFtZXIvV2ViS2l0V2ViU291
cmNlR1N0cmVhbWVyLmNwcCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2dzdHJl
YW1lci9XZWJLaXRXZWJTb3VyY2VHU3RyZWFtZXIuY3BwCmluZGV4IDkzNGRhZjhjYjZkNTk4Yzdl
ZWI2YTdkMjZjNzRmNDIxYWY2Nzk0YTAuLmMyZGEzNzA2NDVhYjgwNjA2MzEwMDBmZWJmMzY2Mjkw
ZTNhYzdlOGQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2dz
dHJlYW1lci9XZWJLaXRXZWJTb3VyY2VHU3RyZWFtZXIuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3Jl
L3BsYXRmb3JtL2dyYXBoaWNzL2dzdHJlYW1lci9XZWJLaXRXZWJTb3VyY2VHU3RyZWFtZXIuY3Bw
CkBAIC0xMTY5LDggKzExNjksNyBAQCBSZXNvdXJjZUhhbmRsZVN0cmVhbWluZ0NsaWVudDo6flJl
c291cmNlSGFuZGxlU3RyZWFtaW5nQ2xpZW50KCkKIHsKICAgICBpZiAobV9yZXNvdXJjZSkgewog
ICAgICAgICBtX3Jlc291cmNlLT5jYW5jZWwoKTsKLSAgICAgICAgbV9yZXNvdXJjZS5yZWxlYXNl
KCk7Ci0gICAgICAgIG1fcmVzb3VyY2UgPSAwOworICAgICAgICBtX3Jlc291cmNlID0gbnVsbHB0
cjsKICAgICB9CiB9CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBo
aWNzL3RleG1hcC9CaXRtYXBUZXh0dXJlR0wuY3BwIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0v
Z3JhcGhpY3MvdGV4bWFwL0JpdG1hcFRleHR1cmVHTC5jcHAKaW5kZXggOTc1YzM4ZjJmZjRiMTkx
ODI4ZDdkMWVjZTE2ZTRkNjA5YjA5MGJmNi4uMGU1MmQ3YjRiMjU4NDVhNjAzOGRiNDVlZDhmOGE5
YWJkNGFlZjk5NCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3Mv
dGV4bWFwL0JpdG1hcFRleHR1cmVHTC5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0v
Z3JhcGhpY3MvdGV4bWFwL0JpdG1hcFRleHR1cmVHTC5jcHAKQEAgLTI3OCw3ICsyNzgsNyBAQCBQ
YXNzUmVmUHRyPEJpdG1hcFRleHR1cmU+IEJpdG1hcFRleHR1cmVHTDo6YXBwbHlGaWx0ZXJzKFRl
eHR1cmVNYXBwZXIqIHRleHR1cmVNYQogICAgICAgICAgICAgdGV4bWFwR0wtPmRyYXdGaWx0ZXJl
ZCgqcmVzdWx0U3VyZmFjZS5nZXQoKSwgc3BhcmVTdXJmYWNlLmdldCgpLCAqZmlsdGVyLCBqKTsK
ICAgICAgICAgICAgIGlmICghaiAmJiBmaWx0ZXItPnR5cGUoKSA9PSBGaWx0ZXJPcGVyYXRpb246
OkRST1BfU0hBRE9XKSB7CiAgICAgICAgICAgICAgICAgc3BhcmVTdXJmYWNlID0gcmVzdWx0U3Vy
ZmFjZTsKLSAgICAgICAgICAgICAgICByZXN1bHRTdXJmYWNlLmNsZWFyKCk7CisgICAgICAgICAg
ICAgICAgcmVzdWx0U3VyZmFjZSA9IG51bGxwdHI7CiAgICAgICAgICAgICB9CiAgICAgICAgICAg
ICBzdGQ6OnN3YXAocmVzdWx0U3VyZmFjZSwgaW50ZXJtZWRpYXRlU3VyZmFjZSk7CiAgICAgICAg
IH0KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL3RleG1hcC9H
cmFwaGljc0xheWVyVGV4dHVyZU1hcHBlci5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9n
cmFwaGljcy90ZXhtYXAvR3JhcGhpY3NMYXllclRleHR1cmVNYXBwZXIuY3BwCmluZGV4IDllZTRh
Nzg0Yzg1N2FiMWNmMTI2ZGEyY2IxMmRhZmFlYmMwOWRlN2UuLmQ1MzQ3MDQ0ZTg4YzA4ZWRiYTRk
NDYwNDY5ZjNmOTA3YTAwYjlkYzEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3Jt
L2dyYXBoaWNzL3RleG1hcC9HcmFwaGljc0xheWVyVGV4dHVyZU1hcHBlci5jcHAKKysrIGIvU291
cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvdGV4bWFwL0dyYXBoaWNzTGF5ZXJUZXh0dXJl
TWFwcGVyLmNwcApAQCAtMzAxLDggKzMwMSw4IEBAIHZvaWQgR3JhcGhpY3NMYXllclRleHR1cmVN
YXBwZXI6OnNldENvbnRlbnRzVG9JbWFnZShJbWFnZSogaW1hZ2UpCiAgICAgICAgICAgICBtX2Nv
bXBvc2l0ZWRJbWFnZSA9IFRleHR1cmVNYXBwZXJUaWxlZEJhY2tpbmdTdG9yZTo6Y3JlYXRlKCk7
CiAgICAgICAgIG1fY29tcG9zaXRlZEltYWdlLT5zZXRDb250ZW50c1RvSW1hZ2UoaW1hZ2UpOwog
ICAgIH0gZWxzZSB7Ci0gICAgICAgIG1fY29tcG9zaXRlZE5hdGl2ZUltYWdlUHRyID0gMDsKLSAg
ICAgICAgbV9jb21wb3NpdGVkSW1hZ2UgPSAwOworICAgICAgICBtX2NvbXBvc2l0ZWROYXRpdmVJ
bWFnZVB0ciA9IG51bGxwdHI7CisgICAgICAgIG1fY29tcG9zaXRlZEltYWdlID0gbnVsbHB0cjsK
ICAgICB9CiAKICAgICBzZXRDb250ZW50c1RvUGxhdGZvcm1MYXllcihtX2NvbXBvc2l0ZWRJbWFn
ZS5nZXQoKSwgQ29udGVudHNMYXllckZvckltYWdlKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJD
b3JlL3BsYXRmb3JtL2dyYXBoaWNzL3RleG1hcC9UZXh0dXJlTWFwcGVyR0wuY3BwIGIvU291cmNl
L1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvdGV4bWFwL1RleHR1cmVNYXBwZXJHTC5jcHAKaW5k
ZXggMGJjZThjNzQyMGQ3ZDBhNDRiMzA5ZTI2ZjU2NmE5MjE5M2U0ODYwYS4uNGM1NDgwNTYyMzVl
Mzk4ZmFjOTgzNjBmZTljYmY2MjVjNzVhMWQwNSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUv
cGxhdGZvcm0vZ3JhcGhpY3MvdGV4bWFwL1RleHR1cmVNYXBwZXJHTC5jcHAKKysrIGIvU291cmNl
L1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvdGV4bWFwL1RleHR1cmVNYXBwZXJHTC5jcHAKQEAg
LTY5MSw3ICs2OTEsNyBAQCB2b2lkIFRleHR1cmVNYXBwZXJHTDo6YmluZERlZmF1bHRTdXJmYWNl
KCkKICAgICBkYXRhKCkucHJvamVjdGlvbk1hdHJpeCA9IGNyZWF0ZVByb2plY3Rpb25NYXRyaXgo
dmlld3BvcnRTaXplLCBkYXRhKCkuUGFpbnRGbGFncyAmIFBhaW50aW5nTWlycm9yZWQpOwogICAg
IG1fY29udGV4dDNELT52aWV3cG9ydChkYXRhKCkudmlld3BvcnRbMF0sIGRhdGEoKS52aWV3cG9y
dFsxXSwgdmlld3BvcnRTaXplLndpZHRoKCksIHZpZXdwb3J0U2l6ZS5oZWlnaHQoKSk7CiAgICAg
bV9jbGlwU3RhY2suYXBwbHkobV9jb250ZXh0M0QuZ2V0KCkpOwotICAgIGRhdGEoKS5jdXJyZW50
U3VyZmFjZS5jbGVhcigpOworICAgIGRhdGEoKS5jdXJyZW50U3VyZmFjZSA9IG51bGxwdHI7CiB9
CiAKIHZvaWQgVGV4dHVyZU1hcHBlckdMOjpiaW5kU3VyZmFjZShCaXRtYXBUZXh0dXJlICpzdXJm
YWNlKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvdGV4bWFw
L1RleHR1cmVNYXBwZXJMYXllci5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGlj
cy90ZXhtYXAvVGV4dHVyZU1hcHBlckxheWVyLmNwcAppbmRleCBjODY0MjAyMmEzYWMxNDY1Nzcw
ODgxZjEyNDg3ZmY3ZGRiYjU0NGQ4Li4zNDU1Mzk4NzAyNGE2ZTc1ZmQ5ZDFlMzkwNjgxNzhiOWVk
NzIzYTJiIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy90ZXht
YXAvVGV4dHVyZU1hcHBlckxheWVyLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9n
cmFwaGljcy90ZXhtYXAvVGV4dHVyZU1hcHBlckxheWVyLmNwcApAQCAtNDA4LDcgKzQwOCw3IEBA
IHZvaWQgVGV4dHVyZU1hcHBlckxheWVyOjpwYWludFdpdGhJbnRlcm1lZGlhdGVTdXJmYWNlKGNv
bnN0IFRleHR1cmVNYXBwZXJQYWludE9wCiAKICAgICBpZiAocmVwbGljYVN1cmZhY2UgJiYgb3B0
aW9ucy5vcGFjaXR5ID09IDEpIHsKICAgICAgICAgY29tbWl0U3VyZmFjZShvcHRpb25zLCByZXBs
aWNhU3VyZmFjZSwgcmVjdCwgMSk7Ci0gICAgICAgIHJlcGxpY2FTdXJmYWNlLmNsZWFyKCk7Cisg
ICAgICAgIHJlcGxpY2FTdXJmYWNlID0gbnVsbHB0cjsKICAgICB9CiAKICAgICBtYWluU3VyZmFj
ZSA9IHBhaW50SW50b1N1cmZhY2UocGFpbnRPcHRpb25zLCByZWN0LnNpemUoKSk7CmRpZmYgLS1n
aXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy90ZXhtYXAvVGV4dHVyZU1hcHBl
clRpbGVkQmFja2luZ1N0b3JlLmNwcCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNz
L3RleG1hcC9UZXh0dXJlTWFwcGVyVGlsZWRCYWNraW5nU3RvcmUuY3BwCmluZGV4IDIwODA0NjIz
OTNiZGJiOWNiMDE0ODIyODM5NGU4YjJmNjVmMGM2ZDcuLmQzNTcxMGE2OTI4MWE4MjA2MTZkZTMx
MjEzM2M0ZDNjN2ZmOTE3ZTggMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dy
YXBoaWNzL3RleG1hcC9UZXh0dXJlTWFwcGVyVGlsZWRCYWNraW5nU3RvcmUuY3BwCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL3RleG1hcC9UZXh0dXJlTWFwcGVyVGlsZWRC
YWNraW5nU3RvcmUuY3BwCkBAIC0zOSw3ICszOSw3IEBAIHZvaWQgVGV4dHVyZU1hcHBlclRpbGVk
QmFja2luZ1N0b3JlOjp1cGRhdGVDb250ZW50c0Zyb21JbWFnZUlmTmVlZGVkKFRleHR1cmVNYXBw
CiAgICAgICAgIHJldHVybjsKIAogICAgIHVwZGF0ZUNvbnRlbnRzKHRleHR1cmVNYXBwZXIsIG1f
aW1hZ2UuZ2V0KCksIG1faW1hZ2UtPnNpemUoKSwgZW5jbG9zaW5nSW50UmVjdChtX2ltYWdlLT5y
ZWN0KCkpLCBCaXRtYXBUZXh0dXJlOjpVcGRhdGVDYW5ub3RNb2RpZnlPcmlnaW5hbEltYWdlRGF0
YSk7Ci0gICAgbV9pbWFnZS5jbGVhcigpOworICAgIG1faW1hZ2UgPSBudWxscHRyOwogfQogCiBU
cmFuc2Zvcm1hdGlvbk1hdHJpeCBUZXh0dXJlTWFwcGVyVGlsZWRCYWNraW5nU3RvcmU6OmFkanVz
dGVkVHJhbnNmb3JtRm9yUmVjdChjb25zdCBGbG9hdFJlY3QmIHRhcmdldFJlY3QpCmRpZmYgLS1n
aXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy90ZXhtYXAvY29vcmRpbmF0ZWQv
Q29vcmRpbmF0ZWRHcmFwaGljc0xheWVyLmNwcCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dy
YXBoaWNzL3RleG1hcC9jb29yZGluYXRlZC9Db29yZGluYXRlZEdyYXBoaWNzTGF5ZXIuY3BwCmlu
ZGV4IGUyZTFmNGFiOGZhMTk5NjRmZjZkZmNkNTJjN2I3ZDdlZDkxOGNhYjAuLmZhYTE2NWVhZTYz
ODIxZWMzZDEzOWQxOGVmZWYxN2RhZTAyODc4ZTAgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3Jl
L3BsYXRmb3JtL2dyYXBoaWNzL3RleG1hcC9jb29yZGluYXRlZC9Db29yZGluYXRlZEdyYXBoaWNz
TGF5ZXIuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL3RleG1hcC9j
b29yZGluYXRlZC9Db29yZGluYXRlZEdyYXBoaWNzTGF5ZXIuY3BwCkBAIC00NzAsOCArNDcwLDgg
QEAgdm9pZCBDb29yZGluYXRlZEdyYXBoaWNzTGF5ZXI6OnNldENvbnRlbnRzVG9JbWFnZShJbWFn
ZSogaW1hZ2UpCiAgICAgICAgIG1fY29tcG9zaXRlZEltYWdlID0gaW1hZ2U7CiAgICAgICAgIG1f
Y29tcG9zaXRlZE5hdGl2ZUltYWdlUHRyID0gbmV3TmF0aXZlSW1hZ2VQdHI7CiAgICAgfSBlbHNl
IHsKLSAgICAgICAgbV9jb21wb3NpdGVkSW1hZ2UgPSAwOwotICAgICAgICBtX2NvbXBvc2l0ZWRO
YXRpdmVJbWFnZVB0ciA9IDA7CisgICAgICAgIG1fY29tcG9zaXRlZEltYWdlID0gbnVsbHB0cjsK
KyAgICAgICAgbV9jb21wb3NpdGVkTmF0aXZlSW1hZ2VQdHIgPSBudWxscHRyOwogICAgIH0KIAog
ICAgIEdyYXBoaWNzTGF5ZXI6OnNldENvbnRlbnRzVG9JbWFnZShpbWFnZSk7CkBAIC04MjAsNyAr
ODIwLDcgQEAgdm9pZCBDb29yZGluYXRlZEdyYXBoaWNzTGF5ZXI6OnJlbGVhc2VJbWFnZUJhY2tp
bmdJZk5lZWRlZCgpCiAKICAgICBBU1NFUlQobV9jb29yZGluYXRvcik7CiAgICAgbV9jb29yZGlu
YXRlZEltYWdlQmFja2luZy0+cmVtb3ZlSG9zdCh0aGlzKTsKLSAgICBtX2Nvb3JkaW5hdGVkSW1h
Z2VCYWNraW5nLmNsZWFyKCk7CisgICAgbV9jb29yZGluYXRlZEltYWdlQmFja2luZyA9IG51bGxw
dHI7CiAgICAgbV9sYXllclN0YXRlLmltYWdlSUQgPSBJbnZhbGlkQ29vcmRpbmF0ZWRJbWFnZUJh
Y2tpbmdJRDsKICAgICBtX2xheWVyU3RhdGUuaW1hZ2VDaGFuZ2VkID0gdHJ1ZTsKIH0KZGlmZiAt
LWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL3RleG1hcC9jb29yZGluYXRl
ZC9Db29yZGluYXRlZEltYWdlQmFja2luZy5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9n
cmFwaGljcy90ZXhtYXAvY29vcmRpbmF0ZWQvQ29vcmRpbmF0ZWRJbWFnZUJhY2tpbmcuY3BwCmlu
ZGV4IGQyMmIxNWVkZDMwYWY5ZWEwOWMyNDY4NTYyMmIwMzkzYjViNTUyOTMuLmUyNjE1MGZlZWU5
ZTI3OWJhMzMyMDcwZGU4NGJmNDI0OWZmMjMxZTcgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3Jl
L3BsYXRmb3JtL2dyYXBoaWNzL3RleG1hcC9jb29yZGluYXRlZC9Db29yZGluYXRlZEltYWdlQmFj
a2luZy5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvdGV4bWFwL2Nv
b3JkaW5hdGVkL0Nvb3JkaW5hdGVkSW1hZ2VCYWNraW5nLmNwcApAQCAtMTQxLDcgKzE0MSw3IEBA
IHZvaWQgQ29vcmRpbmF0ZWRJbWFnZUJhY2tpbmc6OnJlbGVhc2VTdXJmYWNlSWZOZWVkZWQoKQog
ewogICAgIC8vIFdlIG11c3Qga2VlcCBtX3N1cmZhY2UgdW50aWwgVUkgUHJvY2VzcyByZWFkcyBt
X3N1cmZhY2UuCiAgICAgLy8gSWYgbV9zdXJmYWNlIGV4aXN0cywgaXQgd2FzIGNyZWF0ZWQgaW4g
dGhlIHByZXZpb3VzIHVwZGF0ZS4KLSAgICBtX3N1cmZhY2UuY2xlYXIoKTsKKyAgICBtX3N1cmZh
Y2UgPSBudWxscHRyOwogfQogCiBzdGF0aWMgY29uc3QgZG91YmxlIGNsZWFyQ29udGVudHNUaW1l
ckludGVydmFsID0gMzsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2d0ay9H
YW1lcGFkc0d0ay5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ndGsvR2FtZXBhZHNHdGsu
Y3BwCmluZGV4IDI2ZjliZTYyYzc2NDYzYzZlMDgxZmNlZmU3OTZiMmVhZjE3NTk1OGQuLjlmYjI5
ZjJiOTU0NmZjMTgzOWM0ZWE4ZWI1Nzg0YThhNTYyMzIzNDkgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9X
ZWJDb3JlL3BsYXRmb3JtL2d0ay9HYW1lcGFkc0d0ay5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUv
cGxhdGZvcm0vZ3RrL0dhbWVwYWRzR3RrLmNwcApAQCAtMTU1LDcgKzE1NSw3IEBAIHZvaWQgR2Ft
ZXBhZHNHdGs6OnVucmVnaXN0ZXJEZXZpY2UoU3RyaW5nIGRldmljZUZpbGUpCiAgICAgc2l6ZV90
IGluZGV4ID0gbV9zbG90cy5maW5kKGdhbWVwYWREZXZpY2UpOwogICAgIEFTU0VSVChpbmRleCAh
PSBub3RGb3VuZCk7CiAKLSAgICBtX3Nsb3RzW2luZGV4XS5jbGVhcigpOworICAgIG1fc2xvdHNb
aW5kZXhdID0gbnVsbHB0cjsKIH0KIAogdm9pZCBHYW1lcGFkc0d0azo6dXBkYXRlR2FtZXBhZExp
c3QoR2FtZXBhZExpc3QqIGludG8pCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9y
bS9pb3MvUGxhdGZvcm1TcGVlY2hTeW50aGVzaXplcklPUy5tbSBiL1NvdXJjZS9XZWJDb3JlL3Bs
YXRmb3JtL2lvcy9QbGF0Zm9ybVNwZWVjaFN5bnRoZXNpemVySU9TLm1tCmluZGV4IGFiMTRjNzA5
MDUyOTI4MmRiNGM1NTNkZjFhNWU1NTUxY2JlODI3MTYuLmRjMGNhYTg4YTA1ZTA4NGVhMDk4Y2U0
MTBiYTZkMmFiZDM4ZDkwYzcgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2lv
cy9QbGF0Zm9ybVNwZWVjaFN5bnRoZXNpemVySU9TLm1tCisrKyBiL1NvdXJjZS9XZWJDb3JlL3Bs
YXRmb3JtL2lvcy9QbGF0Zm9ybVNwZWVjaFN5bnRoZXNpemVySU9TLm1tCkBAIC0xNzksNyArMTc5
LDcgQEAgLSAodm9pZClzcGVlY2hTeW50aGVzaXplcjooQVZTcGVlY2hTeW50aGVzaXplciAqKXN5
bnRoZXNpemVyIGRpZEZpbmlzaFNwZWVjaFV0dGUKICAgICAKICAgICAvLyBDbGVhciB0aGUgbV91
dHRlcmFuY2UgdmFyaWFibGUgaW4gY2FzZSBmaW5pc2ggc3BlYWtpbmcga2lja3Mgb2ZmIGEgbmV3
IHNwZWFraW5nIGpvYiBpbW1lZGlhdGVseS4KICAgICBSZWZQdHI8V2ViQ29yZTo6UGxhdGZvcm1T
cGVlY2hTeW50aGVzaXNVdHRlcmFuY2U+IHBsYXRmb3JtVXR0ZXJhbmNlID0gbV91dHRlcmFuY2U7
Ci0gICAgbV91dHRlcmFuY2UgPSAwOworICAgIG1fdXR0ZXJhbmNlID0gbnVsbHB0cjsKICAgICAK
ICAgICBtX3N5bnRoZXNpemVyT2JqZWN0LT5jbGllbnQoKS0+ZGlkRmluaXNoU3BlYWtpbmcocGxh
dGZvcm1VdHRlcmFuY2UpOwogfQpAQCAtMjEzLDcgKzIxMyw3IEBAIC0gKHZvaWQpc3BlZWNoU3lu
dGhlc2l6ZXI6KEFWU3BlZWNoU3ludGhlc2l6ZXIgKilzeW50aGVzaXplciBkaWRDYW5jZWxTcGVl
Y2hVdHRlCiAgICAgCiAgICAgLy8gQ2xlYXIgdGhlIG1fdXR0ZXJhbmNlIHZhcmlhYmxlIGluIGNh
c2UgZmluaXNoIHNwZWFraW5nIGtpY2tzIG9mZiBhIG5ldyBzcGVha2luZyBqb2IgaW1tZWRpYXRl
bHkuCiAgICAgUmVmUHRyPFdlYkNvcmU6OlBsYXRmb3JtU3BlZWNoU3ludGhlc2lzVXR0ZXJhbmNl
PiBwbGF0Zm9ybVV0dGVyYW5jZSA9IG1fdXR0ZXJhbmNlOwotICAgIG1fdXR0ZXJhbmNlID0gMDsK
KyAgICBtX3V0dGVyYW5jZSA9IG51bGxwdHI7CiAgICAgCiAgICAgbV9zeW50aGVzaXplck9iamVj
dC0+Y2xpZW50KCktPmRpZEZpbmlzaFNwZWFraW5nKHBsYXRmb3JtVXR0ZXJhbmNlKTsKIH0KZGlm
ZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL21vY2svR2VvbG9jYXRpb25DbGllbnRN
b2NrLmNwcCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL21vY2svR2VvbG9jYXRpb25DbGllbnRN
b2NrLmNwcAppbmRleCA4MTg2YTZhNTIzM2VlODViZTY1MjY4YjY4ZjA1NDQ3ZTg1NTIzMzAwLi5i
N2NmYjliZTA2ZGNiZmZjN2MxNmIzY2ZlNzQ2NTAxMzBmYTcwMGU1IDEwMDY0NAotLS0gYS9Tb3Vy
Y2UvV2ViQ29yZS9wbGF0Zm9ybS9tb2NrL0dlb2xvY2F0aW9uQ2xpZW50TW9jay5jcHAKKysrIGIv
U291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbW9jay9HZW9sb2NhdGlvbkNsaWVudE1vY2suY3BwCkBA
IC0xMjYsNyArMTI2LDcgQEAgdm9pZCBHZW9sb2NhdGlvbkNsaWVudE1vY2s6OnBlcm1pc3Npb25U
aW1lckZpcmVkKCkKIAogdm9pZCBHZW9sb2NhdGlvbkNsaWVudE1vY2s6OnJlc2V0KCkKIHsKLSAg
ICBtX2xhc3RQb3NpdGlvbiA9IDA7CisgICAgbV9sYXN0UG9zaXRpb24gPSBudWxscHRyOwogICAg
IGNsZWFyRXJyb3IoKTsKICAgICBtX3Blcm1pc3Npb25TdGF0ZSA9IFBlcm1pc3Npb25TdGF0ZVVu
c2V0OwogfQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbW9jay9QbGF0Zm9y
bVNwZWVjaFN5bnRoZXNpemVyTW9jay5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9tb2Nr
L1BsYXRmb3JtU3BlZWNoU3ludGhlc2l6ZXJNb2NrLmNwcAppbmRleCAzODM4MzcyYzU3NzhlYzI3
MmM4YjU1ZjgzMTUwNjUzODRkOWNmODc0Li5jMGI0ZGZhMmM2ZjIyNDRlYWE0ZGE4ODY0ZDVjNGIz
MjYzMjU5MmRjIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9tb2NrL1BsYXRm
b3JtU3BlZWNoU3ludGhlc2l6ZXJNb2NrLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9y
bS9tb2NrL1BsYXRmb3JtU3BlZWNoU3ludGhlc2l6ZXJNb2NrLmNwcApAQCAtNDUsNyArNDUsNyBA
QCB2b2lkIFBsYXRmb3JtU3BlZWNoU3ludGhlc2l6ZXJNb2NrOjpzcGVha2luZ0ZpbmlzaGVkKCkK
IHsKICAgICBBU1NFUlQobV91dHRlcmFuY2UuZ2V0KCkpOwogICAgIFJlZlB0cjxQbGF0Zm9ybVNw
ZWVjaFN5bnRoZXNpc1V0dGVyYW5jZT4gcHJvdGVjdChtX3V0dGVyYW5jZSk7Ci0gICAgbV91dHRl
cmFuY2UgPSAwOworICAgIG1fdXR0ZXJhbmNlID0gbnVsbHB0cjsKICAgICAKICAgICBjbGllbnQo
KS0+ZGlkRmluaXNoU3BlYWtpbmcocHJvdGVjdCk7CiB9CkBAIC03OCw3ICs3OCw3IEBAIHZvaWQg
UGxhdGZvcm1TcGVlY2hTeW50aGVzaXplck1vY2s6OmNhbmNlbCgpCiAgICAgCiAgICAgbV9zcGVh
a2luZ0ZpbmlzaGVkVGltZXIuc3RvcCgpOwogICAgIGNsaWVudCgpLT5zcGVha2luZ0Vycm9yT2Nj
dXJyZWQobV91dHRlcmFuY2UpOwotICAgIG1fdXR0ZXJhbmNlID0gMDsKKyAgICBtX3V0dGVyYW5j
ZSA9IG51bGxwdHI7CiB9CiAKIHZvaWQgUGxhdGZvcm1TcGVlY2hTeW50aGVzaXplck1vY2s6OnBh
dXNlKCkKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL25ldHdvcmsvY2YvUmVz
b3VyY2VSZXF1ZXN0Q0ZOZXQuY3BwIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbmV0d29yay9j
Zi9SZXNvdXJjZVJlcXVlc3RDRk5ldC5jcHAKaW5kZXggY2RjN2Q3MzQ2ZDVhN2JmZTE5NzJjZmI3
ODZiZWNjZjJlM2QzOWU5ZS4uYTRkNDNkZjNjMGE0MjhmMTcwNjE4MmU4YThhYWJjMDVkZGEyM2E5
ZSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbmV0d29yay9jZi9SZXNvdXJj
ZVJlcXVlc3RDRk5ldC5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbmV0d29yay9j
Zi9SZXNvdXJjZVJlcXVlc3RDRk5ldC5jcHAKQEAgLTI5NSw3ICsyOTUsNyBAQCB2b2lkIFJlc291
cmNlUmVxdWVzdDo6ZG9VcGRhdGVSZXNvdXJjZVJlcXVlc3QoKQogdm9pZCBSZXNvdXJjZVJlcXVl
c3Q6OmRvVXBkYXRlUmVzb3VyY2VIVFRQQm9keSgpCiB7CiAgICAgaWYgKCFtX2NmUmVxdWVzdCkg
ewotICAgICAgICBtX2h0dHBCb2R5ID0gMDsKKyAgICAgICAgbV9odHRwQm9keSA9IG51bGxwdHI7
CiAgICAgICAgIHJldHVybjsKICAgICB9CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3Jl
bmRlcmluZy9JbmxpbmVGbG93Qm94LmNwcCBiL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9Jbmxp
bmVGbG93Qm94LmNwcAppbmRleCA0MTY4MmM4ZTJiNjBjYjkyOGU0NjFiNGVmZmFhM2JmNzljMzYx
YzI4Li4yZDZmYjY5NDQ4ZjhmMWJiNTk0NGMxMGJhNTQ5MDExNTY3ZDY3NzM3IDEwMDY0NAotLS0g
YS9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvSW5saW5lRmxvd0JveC5jcHAKKysrIGIvU291cmNl
L1dlYkNvcmUvcmVuZGVyaW5nL0lubGluZUZsb3dCb3guY3BwCkBAIC05NTQsNyArOTU0LDcgQEAg
dm9pZCBJbmxpbmVGbG93Qm94Ojpjb21wdXRlT3ZlcmZsb3coTGF5b3V0VW5pdCBsaW5lVG9wLCBM
YXlvdXRVbml0IGxpbmVCb3R0b20sIEcKICAgICAgICAgcmV0dXJuOwogCiAgICAgaWYgKG1fb3Zl
cmZsb3cpCi0gICAgICAgIG1fb3ZlcmZsb3cuY2xlYXIoKTsKKyAgICAgICAgbV9vdmVyZmxvdyA9
IG51bGxwdHI7CiAKICAgICAvLyBWaXN1YWwgb3ZlcmZsb3cganVzdCBpbmNsdWRlcyBvdmVyZmxv
dyBmb3Igc3R1ZmYgd2UgbmVlZCB0byByZXBhaW50IG91cnNlbHZlcy4gIFNlbGYtcGFpbnRpbmcg
bGF5ZXJzIGFyZSBpZ25vcmVkLgogICAgIC8vIExheW91dCBvdmVyZmxvdyBpcyB1c2VkIHRvIGRl
dGVybWluZSBzY3JvbGxpbmcgZXh0ZW50LCBzbyBpdCBzdGlsbCBpbmNsdWRlcyBjaGlsZCBsYXll
cnMgYW5kIGFsc28gZmFjdG9ycyBpbgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcmVuZGVy
aW5nL1JlbmRlckJveC5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyQm94LmNw
cAppbmRleCA1MDJkZjY2YzBkMGRlOThhOWE0MmNkOTRmNzBiMjBiNGUwYjJhY2JjLi42MTcxZGI1
ZTBhOGE5MjI1N2NiZTJkMzA3ZDZmNzZkYTM2OWFkYjI0IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2Vi
Q29yZS9yZW5kZXJpbmcvUmVuZGVyQm94LmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJp
bmcvUmVuZGVyQm94LmNwcApAQCAtNDQ5Nyw3ICs0NDk3LDcgQEAgdm9pZCBSZW5kZXJCb3g6OmFk
ZFZpc3VhbE92ZXJmbG93KGNvbnN0IExheW91dFJlY3QmIHJlY3QpCiAKIHZvaWQgUmVuZGVyQm94
OjpjbGVhck92ZXJmbG93KCkKIHsKLSAgICBtX292ZXJmbG93LmNsZWFyKCk7CisgICAgbV9vdmVy
ZmxvdyA9IG51bGxwdHI7CiAgICAgUmVuZGVyRmxvd1RocmVhZCogZmxvd1RocmVhZCA9IGZsb3dU
aHJlYWRDb250YWluaW5nQmxvY2soKTsKICAgICBpZiAoZmxvd1RocmVhZCkKICAgICAgICAgZmxv
d1RocmVhZC0+Y2xlYXJSZWdpb25zT3ZlcmZsb3codGhpcyk7CmRpZmYgLS1naXQgYS9Tb3VyY2Uv
V2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyQm94UmVnaW9uSW5mby5oIGIvU291cmNlL1dlYkNvcmUv
cmVuZGVyaW5nL1JlbmRlckJveFJlZ2lvbkluZm8uaAppbmRleCA2MjM2MDhkNjc1ZGNjNjkxMWUy
N2RhZjI0YWNiODQwOWQ0NmUxOGFmLi5lYTIzYzFlYzhlZTM3NWU3YTYxMWMxNGVjMDQxOWY2NTZk
YTE5N2IyIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyQm94UmVn
aW9uSW5mby5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJCb3hSZWdpb25J
bmZvLmgKQEAgLTUzLDcgKzUzLDcgQEAgcHVibGljOgogICAgIHZvaWQgY2xlYXJPdmVyZmxvdygp
CiAgICAgewogICAgICAgICBpZiAobV9vdmVyZmxvdykKLSAgICAgICAgICAgIG1fb3ZlcmZsb3cu
Y2xlYXIoKTsKKyAgICAgICAgICAgIG1fb3ZlcmZsb3cgPSBudWxscHRyOwogICAgIH0KIAogcHJp
dmF0ZToKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJDb3VudGVy
LmNwcCBiL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJDb3VudGVyLmNwcAppbmRleCA5
MThhNGY4OGEyM2Q5NmQ4YWU1ZTIzNjY5NTY3MTc4MGEwOTM2MjdlLi5jNzQ1NjM5ZjhhMGFiZTRk
OGZkZjY4MTA1NGMxNjg1MjI5ODZlZjM2IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9yZW5k
ZXJpbmcvUmVuZGVyQ291bnRlci5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1Jl
bmRlckNvdW50ZXIuY3BwCkBAIC0xODYsOCArMTg2LDggQEAgc3RhdGljIGJvb2wgZmluZFBsYWNl
Rm9yQ291bnRlcihSZW5kZXJFbGVtZW50JiBjb3VudGVyT3duZXIsIGNvbnN0IEF0b21pY1N0cmlu
ZyYKICAgICAvLyB0b3dhcmRzIHRoZSBiZWdpbmluZyBvZiB0aGUgZG9jdW1lbnQgZm9yIGNvdW50
ZXJzIHdpdGggdGhlIHNhbWUgaWRlbnRpZmllciBhcyB0aGUgb25lCiAgICAgLy8gd2UgYXJlIHRy
eWluZyB0byBmaW5kIGEgcGxhY2UgZm9yLiBUaGlzIGlzIHRoZSBuZXh0IHJlbmRlcmVyIHRvIGJl
IGNoZWNrZWQuCiAgICAgUmVuZGVyRWxlbWVudCogY3VycmVudFJlbmRlcmVyID0gcHJldmlvdXNJ
blByZU9yZGVyKGNvdW50ZXJPd25lcik7Ci0gICAgcHJldmlvdXNTaWJsaW5nID0gMDsKLSAgICBS
ZWZQdHI8Q291bnRlck5vZGU+IHByZXZpb3VzU2libGluZ1Byb3RlY3RvciA9IDA7CisgICAgcHJl
dmlvdXNTaWJsaW5nID0gbnVsbHB0cjsKKyAgICBSZWZQdHI8Q291bnRlck5vZGU+IHByZXZpb3Vz
U2libGluZ1Byb3RlY3RvcjsKIAogICAgIHdoaWxlIChjdXJyZW50UmVuZGVyZXIpIHsKICAgICAg
ICAgQ291bnRlck5vZGUqIGN1cnJlbnRDb3VudGVyID0gbWFrZUNvdW50ZXJOb2RlKCpjdXJyZW50
UmVuZGVyZXIsIGlkZW50aWZpZXIsIGZhbHNlKTsKQEAgLTIwMyw3ICsyMDMsNyBAQCBzdGF0aWMg
Ym9vbCBmaW5kUGxhY2VGb3JDb3VudGVyKFJlbmRlckVsZW1lbnQmIGNvdW50ZXJPd25lciwgY29u
c3QgQXRvbWljU3RyaW5nJgogICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8vIGhlbmNlIHdl
IGFyZSB0aGUgbmV4dCBzaWJsaW5nIG9mIHRoYXQgY291bnRlciBpZiB0aGF0IHJlc2V0IGlzIG5v
dCBhIHJvb3Qgb3IKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAvLyB3ZSBhcmUgYSByb290
IG5vZGUgaWYgdGhhdCByZXNldCBpcyBhIHJvb3QuCiAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgcGFyZW50ID0gY3VycmVudENvdW50ZXItPnBhcmVudCgpOwotICAgICAgICAgICAgICAgICAg
ICAgICAgICAgIHByZXZpb3VzU2libGluZyA9IHBhcmVudCA/IGN1cnJlbnRDb3VudGVyIDogMDsK
KyAgICAgICAgICAgICAgICAgICAgICAgICAgICBwcmV2aW91c1NpYmxpbmcgPSBwYXJlbnQgPyBj
dXJyZW50Q291bnRlciA6IG51bGxwdHI7CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgcmV0
dXJuIHBhcmVudDsKICAgICAgICAgICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgICAgICAg
ICAgICAgIC8vIFdlIGFyZSBub3QgYSByZXNldCBub2RlIG9yIHRoZSBwcmV2aW91cyByZXNldCBt
dXN0IGJlIG9uIGFuIGFuY2VzdG9yIG9mIG91ciBvd25lciByZW5kZXJlcgpAQCAtMjEzLDcgKzIx
Myw3IEBAIHN0YXRpYyBib29sIGZpbmRQbGFjZUZvckNvdW50ZXIoUmVuZGVyRWxlbWVudCYgY291
bnRlck93bmVyLCBjb25zdCBBdG9taWNTdHJpbmcmCiAgICAgICAgICAgICAgICAgICAgICAgICAv
LyBJbiB0aGVzZSBjYXNlcyB0aGUgaWRlbnRpZmllZCBwcmV2aW91c1NpYmxpbmcgd2lsbCBiZSBp
bnZhbGlkIGFzIGl0cyBwYXJlbnQgaXMgZGlmZmVyZW50IGZyb20KICAgICAgICAgICAgICAgICAg
ICAgICAgIC8vIG91ciBpZGVudGlmaWVkIHBhcmVudC4KICAgICAgICAgICAgICAgICAgICAgICAg
IGlmIChwcmV2aW91c1NpYmxpbmdQcm90ZWN0b3ItPnBhcmVudCgpICE9IGN1cnJlbnRDb3VudGVy
KQotICAgICAgICAgICAgICAgICAgICAgICAgICAgIHByZXZpb3VzU2libGluZ1Byb3RlY3RvciA9
IDA7CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgcHJldmlvdXNTaWJsaW5nUHJvdGVjdG9y
ID0gbnVsbHB0cjsKIAogICAgICAgICAgICAgICAgICAgICAgICAgcHJldmlvdXNTaWJsaW5nID0g
cHJldmlvdXNTaWJsaW5nUHJvdGVjdG9yLmdldCgpOwogICAgICAgICAgICAgICAgICAgICAgICAg
cmV0dXJuIHRydWU7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVy
TWVudUxpc3QuY3BwIGIvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlck1lbnVMaXN0LmNw
cAppbmRleCBmZjlhMmM1ODZiYmQ5YmU5OWM3NzU1ZTIyMmUwMDM4NjQ2YzE3NGQ2Li5kYjk5NDk5
Y2JkZmYwM2E1NTEwMWQyYWQ4NmUxODM3NmNmYWZhMjhiIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2Vi
Q29yZS9yZW5kZXJpbmcvUmVuZGVyTWVudUxpc3QuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3Jl
bmRlcmluZy9SZW5kZXJNZW51TGlzdC5jcHAKQEAgLTg4LDcgKzg4LDcgQEAgUmVuZGVyTWVudUxp
c3Q6On5SZW5kZXJNZW51TGlzdCgpCiAjaWYgIVBMQVRGT1JNKElPUykKICAgICBpZiAobV9wb3B1
cCkKICAgICAgICAgbV9wb3B1cC0+ZGlzY29ubmVjdENsaWVudCgpOwotICAgIG1fcG9wdXAgPSAw
OworICAgIG1fcG9wdXAgPSBudWxscHRyOwogI2VuZGlmCiB9CiAKZGlmZiAtLWdpdCBhL1NvdXJj
ZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJTZWFyY2hGaWVsZC5jcHAgYi9Tb3VyY2UvV2ViQ29y
ZS9yZW5kZXJpbmcvUmVuZGVyU2VhcmNoRmllbGQuY3BwCmluZGV4IGZhNmUzOTY3MzE2NDhlYTA1
MWM2ODA2YzE5MjRkYzJjZjhiZTRjMDAuLjg5ZGMzNGM0ZjQ0NGRjYzVjNmM5ZTA3NWUxN2Q3N2M2
ZWQyZDQ4MDUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJTZWFy
Y2hGaWVsZC5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlclNlYXJjaEZp
ZWxkLmNwcApAQCAtNjIsNyArNjIsNyBAQCBSZW5kZXJTZWFyY2hGaWVsZDo6flJlbmRlclNlYXJj
aEZpZWxkKCkKIHsKICAgICBpZiAobV9zZWFyY2hQb3B1cCkgewogICAgICAgICBtX3NlYXJjaFBv
cHVwLT5wb3B1cE1lbnUoKS0+ZGlzY29ubmVjdENsaWVudCgpOwotICAgICAgICBtX3NlYXJjaFBv
cHVwID0gMDsKKyAgICAgICAgbV9zZWFyY2hQb3B1cCA9IG51bGxwdHI7CiAgICAgfQogfQogCmRp
ZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvc3R5bGUvRmlsbExheWVyLmggYi9T
b3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvc3R5bGUvRmlsbExheWVyLmgKaW5kZXggOGIwNmNlM2I3
ZTg3N2UyNTU2ZjY3Njg4YTM0M2FhZmMyZDEzMThmOS4uMDMwOTg2M2RhZTYwZTc4ZTc2OTRiMTY5
ZTY2YmJjZTVmMTljYzgwNCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL3N0
eWxlL0ZpbGxMYXllci5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9zdHlsZS9GaWxs
TGF5ZXIuaApAQCAtMTIxLDggKzEyMSw4IEBAIHB1YmxpYzoKICAgICB2b2lkIHNldFNpemUoRmls
bFNpemUgZikgeyBtX3NpemVUeXBlID0gZi50eXBlOyBtX3NpemVMZW5ndGggPSBmLnNpemU7IH0K
ICAgICB2b2lkIHNldE1hc2tTb3VyY2VUeXBlKEVNYXNrU291cmNlVHlwZSBtKSB7IG1fbWFza1Nv
dXJjZVR5cGUgPSBtOyBtX21hc2tTb3VyY2VUeXBlU2V0ID0gdHJ1ZTsgfQogCi0gICAgdm9pZCBj
bGVhck1hc2tJbWFnZSgpIHsgbV9tYXNrSW1hZ2VPcGVyYXRpb24uY2xlYXIoKTsgfQotICAgIHZv
aWQgY2xlYXJJbWFnZSgpIHsgbV9pbWFnZS5jbGVhcigpOyBtX2ltYWdlU2V0ID0gZmFsc2U7IH0K
KyAgICB2b2lkIGNsZWFyTWFza0ltYWdlKCkgeyBtX21hc2tJbWFnZU9wZXJhdGlvbiA9IG51bGxw
dHI7IH0KKyAgICB2b2lkIGNsZWFySW1hZ2UoKSB7IG1faW1hZ2UgPSBudWxscHRyOyBtX2ltYWdl
U2V0ID0gZmFsc2U7IH0KICAgICB2b2lkIGNsZWFyWFBvc2l0aW9uKCkgeyBtX3hQb3NTZXQgPSBm
YWxzZTsgbV9iYWNrZ3JvdW5kT3JpZ2luU2V0ID0gZmFsc2U7IH0KICAgICB2b2lkIGNsZWFyWVBv
c2l0aW9uKCkgeyBtX3lQb3NTZXQgPSBmYWxzZTsgbV9iYWNrZ3JvdW5kT3JpZ2luU2V0ID0gZmFs
c2U7IH0KIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL3N0eWxlL1JlbmRl
clN0eWxlLmNwcCBiL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9zdHlsZS9SZW5kZXJTdHlsZS5j
cHAKaW5kZXggODdjNThlOWJmYzdmNDRlNGYyYjljMjZmMWVmNTlkNjhmMTIwOWZkYy4uNDdmZWU4
OTUxY2M4NjlmZjk5YmIyMmY2NTk3YzA3ZjI0YWZmMWUxMSAxMDA2NDQKLS0tIGEvU291cmNlL1dl
YkNvcmUvcmVuZGVyaW5nL3N0eWxlL1JlbmRlclN0eWxlLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29y
ZS9yZW5kZXJpbmcvc3R5bGUvUmVuZGVyU3R5bGUuY3BwCkBAIC05NTAsNyArOTUwLDcgQEAgdm9p
ZCBSZW5kZXJTdHlsZTo6c2V0UXVvdGVzKFBhc3NSZWZQdHI8UXVvdGVzRGF0YT4gcSkKIHZvaWQg
UmVuZGVyU3R5bGU6OmNsZWFyQ3Vyc29yTGlzdCgpCiB7CiAgICAgaWYgKHJhcmVJbmhlcml0ZWRE
YXRhLT5jdXJzb3JEYXRhKQotICAgICAgICByYXJlSW5oZXJpdGVkRGF0YS5hY2Nlc3MoKS0+Y3Vy
c29yRGF0YSA9IDA7CisgICAgICAgIHJhcmVJbmhlcml0ZWREYXRhLmFjY2VzcygpLT5jdXJzb3JE
YXRhID0gbnVsbHB0cjsKIH0KIAogdm9pZCBSZW5kZXJTdHlsZTo6Y2xlYXJDb250ZW50KCkKZGlm
ZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3N2Zy9TVkdUUmVmRWxlbWVudC5jcHAgYi9Tb3VyY2Uv
V2ViQ29yZS9zdmcvU1ZHVFJlZkVsZW1lbnQuY3BwCmluZGV4IDIyNWEzMDQ2YTQ5OTJjOTcwNWJh
Nzk1MDk5NTYxYjNiOWViYWZmYmQuLmUzZmFkOGQ1OTBjNTRkZTZiZTk0Njc5Yzk1NzE3Yjk4NWFj
NzRhMjEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3N2Zy9TVkdUUmVmRWxlbWVudC5jcHAK
KysrIGIvU291cmNlL1dlYkNvcmUvc3ZnL1NWR1RSZWZFbGVtZW50LmNwcApAQCAtMTA0LDcgKzEw
NCw3IEBAIHZvaWQgU1ZHVFJlZlRhcmdldEV2ZW50TGlzdGVuZXI6OmRldGFjaCgpCiAKICAgICBt
X3RhcmdldC0+cmVtb3ZlRXZlbnRMaXN0ZW5lcihldmVudE5hbWVzKCkuRE9NU3VidHJlZU1vZGlm
aWVkRXZlbnQsIHRoaXMsIGZhbHNlKTsKICAgICBtX3RhcmdldC0+cmVtb3ZlRXZlbnRMaXN0ZW5l
cihldmVudE5hbWVzKCkuRE9NTm9kZVJlbW92ZWRGcm9tRG9jdW1lbnRFdmVudCwgdGhpcywgZmFs
c2UpOwotICAgIG1fdGFyZ2V0LmNsZWFyKCk7CisgICAgbV90YXJnZXQgPSBudWxscHRyOwogfQog
CiBib29sIFNWR1RSZWZUYXJnZXRFdmVudExpc3RlbmVyOjpvcGVyYXRvcj09KGNvbnN0IEV2ZW50
TGlzdGVuZXImIGxpc3RlbmVyKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvdGVzdGluZy9J
bnRlcm5hbHMuY3BwIGIvU291cmNlL1dlYkNvcmUvdGVzdGluZy9JbnRlcm5hbHMuY3BwCmluZGV4
IDFhMTA1MTc0NzllOGU4ZTk4MWE3NDUzYWJkYTZmZGMyNDc1NzUxYjcuLjQ3NmQxZTI3NTllNjA2
ZjIwNzY0NTgyMTBkYjQ5MzNjODIzMDZlODIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3Rl
c3RpbmcvSW50ZXJuYWxzLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS90ZXN0aW5nL0ludGVybmFs
cy5jcHAKQEAgLTE3MjMsNyArMTcyMyw3IEBAIHZvaWQgSW50ZXJuYWxzOjpjbG9zZUR1bW15SW5z
cGVjdG9yRnJvbnRlbmQoKQogICAgIG1fZnJvbnRlbmRDaGFubmVsID0gbnVsbHB0cjsKIAogICAg
IG1fZnJvbnRlbmRXaW5kb3ctPmNsb3NlKG1fZnJvbnRlbmRXaW5kb3ctPnNjcmlwdEV4ZWN1dGlv
bkNvbnRleHQoKSk7Ci0gICAgbV9mcm9udGVuZFdpbmRvdy5jbGVhcigpOworICAgIG1fZnJvbnRl
bmRXaW5kb3cgPSBudWxscHRyOwogfQogCiB2b2lkIEludGVybmFsczo6c2V0SmF2YVNjcmlwdFBy
b2ZpbGluZ0VuYWJsZWQoYm9vbCBlbmFibGVkLCBFeGNlcHRpb25Db2RlJiBlYykKZGlmZiAtLWdp
dCBhL1NvdXJjZS9XZWJDb3JlL3dvcmtlcnMvV29ya2VyRXZlbnRRdWV1ZS5jcHAgYi9Tb3VyY2Uv
V2ViQ29yZS93b3JrZXJzL1dvcmtlckV2ZW50UXVldWUuY3BwCmluZGV4IGY1MjBjMWRlZWZhYjFl
YjE0ZjFiN2ZkOTI0MGZlODY0N2FjMjRhODkuLjA3MjEwNzY5ZmQwNmJhOWNlODdhYzQ2NTJjOTll
MmMxNzhkMjg0ZjEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3dvcmtlcnMvV29ya2VyRXZl
bnRRdWV1ZS5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvd29ya2Vycy9Xb3JrZXJFdmVudFF1ZXVl
LmNwcApAQCAtNjgsMTMgKzY4LDEzIEBAIHB1YmxpYzoKICAgICAgICAgICAgIHJldHVybjsKICAg
ICAgICAgbV9ldmVudFF1ZXVlLm1fZXZlbnREaXNwYXRjaGVyTWFwLnJlbW92ZShtX2V2ZW50Lmdl
dCgpKTsKICAgICAgICAgbV9ldmVudC0+dGFyZ2V0KCktPmRpc3BhdGNoRXZlbnQobV9ldmVudCk7
Ci0gICAgICAgIG1fZXZlbnQuY2xlYXIoKTsKKyAgICAgICAgbV9ldmVudCA9IG51bGxwdHI7CiAg
ICAgfQogCiAgICAgdm9pZCBjYW5jZWwoKQogICAgIHsKICAgICAgICAgbV9pc0NhbmNlbGxlZCA9
IHRydWU7Ci0gICAgICAgIG1fZXZlbnQuY2xlYXIoKTsKKyAgICAgICAgbV9ldmVudCA9IG51bGxw
dHI7CiAgICAgfQogCiBwcml2YXRlOgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvd29ya2Vy
cy9Xb3JrZXJNZXNzYWdpbmdQcm94eS5jcHAgYi9Tb3VyY2UvV2ViQ29yZS93b3JrZXJzL1dvcmtl
ck1lc3NhZ2luZ1Byb3h5LmNwcAppbmRleCA3ODQ1YjYxZmE4ZGNmYWY5ZjY3ZmFhMGQ5NDI1ZDBm
OWIyYjVkNjE1Li5iZDc0ZWFjZTAyY2QzYzEwNmZkZWFiYzdlNGNkZjYxNjhhM2RiZTFlIDEwMDY0
NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS93b3JrZXJzL1dvcmtlck1lc3NhZ2luZ1Byb3h5LmNwcAor
KysgYi9Tb3VyY2UvV2ViQ29yZS93b3JrZXJzL1dvcmtlck1lc3NhZ2luZ1Byb3h5LmNwcApAQCAt
MjY0LDcgKzI2NCw3IEBAIHZvaWQgV29ya2VyTWVzc2FnaW5nUHJveHk6Ondvcmtlckdsb2JhbFNj
b3BlRGVzdHJveWVkSW50ZXJuYWwoKQogICAgIC8vIFdvcmtlckdsb2JhbFNjb3BlRGVzdHJveWVk
VGFzayBpcyBhbHdheXMgdGhlIGxhc3QgdG8gYmUgcGVyZm9ybWVkLCBzbyB0aGUgcHJveHkgaXMg
bm90IG5lZWRlZCBmb3IgY29tbXVuaWNhdGlvbgogICAgIC8vIGluIGVpdGhlciBzaWRlIGFueSBt
b3JlLiBIb3dldmVyLCB0aGUgV29ya2VyIG9iamVjdCBtYXkgc3RpbGwgZXhpc3QsIGFuZCBpdCBh
c3N1bWVzIHRoYXQgdGhlIHByb3h5IGV4aXN0cywgdG9vLgogICAgIG1fYXNrZWRUb1Rlcm1pbmF0
ZSA9IHRydWU7Ci0gICAgbV93b3JrZXJUaHJlYWQgPSAwOworICAgIG1fd29ya2VyVGhyZWFkID0g
bnVsbHB0cjsKIAogICAgIEluc3BlY3Rvckluc3RydW1lbnRhdGlvbjo6d29ya2VyR2xvYmFsU2Nv
cGVUZXJtaW5hdGVkKG1fc2NyaXB0RXhlY3V0aW9uQ29udGV4dC5nZXQoKSwgdGhpcyk7CiAKZGlm
ZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3dvcmtlcnMvV29ya2VyVGhyZWFkLmNwcCBiL1NvdXJj
ZS9XZWJDb3JlL3dvcmtlcnMvV29ya2VyVGhyZWFkLmNwcAppbmRleCA4NzNjODI5NmU2ZTJlZjEx
NzE0MmUwNWRmODlmNGJjNDZhMTRkOTA0Li5lNTE1NTUyNmM5OGU5MTAyOTdlMDFiODZmZWQyOGIx
MmY0ZDAyMjkwIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS93b3JrZXJzL1dvcmtlclRocmVh
ZC5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvd29ya2Vycy9Xb3JrZXJUaHJlYWQuY3BwCkBAIC0x
NzEsNyArMTcxLDcgQEAgdm9pZCBXb3JrZXJUaHJlYWQ6OndvcmtlclRocmVhZCgpCiAKICAgICAv
LyBUaGUgYmVsb3cgYXNzaWdubWVudCB3aWxsIGRlc3Ryb3kgdGhlIGNvbnRleHQsIHdoaWNoIHdp
bGwgaW4gdHVybiBub3RpZnkgbWVzc2FnaW5nIHByb3h5LgogICAgIC8vIFdlIGNhbm5vdCBsZXQg
YW55IG9iamVjdHMgc3Vydml2ZSBwYXN0IHRocmVhZCBleGl0LCBiZWNhdXNlIG5vIG90aGVyIHRo
cmVhZCB3aWxsIHJ1biBHQyBvciBvdGhlcndpc2UgZGVzdHJveSB0aGVtLgotICAgIG1fd29ya2Vy
R2xvYmFsU2NvcGUgPSAwOworICAgIG1fd29ya2VyR2xvYmFsU2NvcGUgPSBudWxscHRyOwogCiAg
ICAgLy8gQ2xlYW4gdXAgV2ViQ29yZTo6VGhyZWFkR2xvYmFsRGF0YSBiZWZvcmUgV1RGOjpXVEZU
aHJlYWREYXRhIGdvZXMgYXdheSEKICAgICB0aHJlYWRHbG9iYWxEYXRhKCkuZGVzdHJveSgpOwpk
aWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUveG1sL1hNTEh0dHBSZXF1ZXN0LmNwcCBiL1NvdXJj
ZS9XZWJDb3JlL3htbC9YTUxIdHRwUmVxdWVzdC5jcHAKaW5kZXggYzdlOGMwYjJiMGZkZDNhNzli
YTA5ZDJmZDkxNWYzMjE1ZmU2YzcyOS4uNDc1ZDZmYjRkNTZiZjY1NzVlZjUwYzFjNTQ0ZDU4ODM1
MDViOTQ3NSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUveG1sL1hNTEh0dHBSZXF1ZXN0LmNw
cAorKysgYi9Tb3VyY2UvV2ViQ29yZS94bWwvWE1MSHR0cFJlcXVlc3QuY3BwCkBAIC0yNDUsNyAr
MjQ1LDcgQEAgQmxvYiogWE1MSHR0cFJlcXVlc3Q6OnJlc3BvbnNlQmxvYigpCiAgICAgICAgICAg
ICBkYXRhLmFwcGVuZChtX2JpbmFyeVJlc3BvbnNlQnVpbGRlci0+ZGF0YSgpLCBtX2JpbmFyeVJl
c3BvbnNlQnVpbGRlci0+c2l6ZSgpKTsKICAgICAgICAgICAgIFN0cmluZyBub3JtYWxpemVkQ29u
dGVudFR5cGUgPSBCbG9iOjpub3JtYWxpemVkQ29udGVudFR5cGUocmVzcG9uc2VNSU1FVHlwZSgp
KTsgLy8gcmVzcG9uc2VNSU1FVHlwZSBkZWZhdWx0cyB0byB0ZXh0L3htbCB3aGljaCBtYXkgYmUg
aW5jb3JyZWN0LgogICAgICAgICAgICAgbV9yZXNwb25zZUJsb2IgPSBCbG9iOjpjcmVhdGUoV1RG
Ojptb3ZlKGRhdGEpLCBub3JtYWxpemVkQ29udGVudFR5cGUpOwotICAgICAgICAgICAgbV9iaW5h
cnlSZXNwb25zZUJ1aWxkZXIuY2xlYXIoKTsKKyAgICAgICAgICAgIG1fYmluYXJ5UmVzcG9uc2VC
dWlsZGVyID0gbnVsbHB0cjsKICAgICAgICAgfSBlbHNlIHsKICAgICAgICAgICAgIC8vIElmIHdl
IGVycm9yZWQgb3V0IG9yIGdvdCBubyBkYXRhLCB3ZSBzdGlsbCByZXR1cm4gYSBibG9iLCBqdXN0
IGFuIGVtcHR5IG9uZS4KICAgICAgICAgICAgIG1fcmVzcG9uc2VCbG9iID0gQmxvYjo6Y3JlYXRl
KCk7CkBAIC0yNjUsNyArMjY1LDcgQEAgQXJyYXlCdWZmZXIqIFhNTEh0dHBSZXF1ZXN0OjpyZXNw
b25zZUFycmF5QnVmZmVyKCkKICAgICAgICAgICAgIG1fcmVzcG9uc2VBcnJheUJ1ZmZlciA9IG1f
YmluYXJ5UmVzcG9uc2VCdWlsZGVyLT5jcmVhdGVBcnJheUJ1ZmZlcigpOwogICAgICAgICBlbHNl
CiAgICAgICAgICAgICBtX3Jlc3BvbnNlQXJyYXlCdWZmZXIgPSBBcnJheUJ1ZmZlcjo6Y3JlYXRl
KG51bGxwdHIsIDApOwotICAgICAgICBtX2JpbmFyeVJlc3BvbnNlQnVpbGRlci5jbGVhcigpOwor
ICAgICAgICBtX2JpbmFyeVJlc3BvbnNlQnVpbGRlciA9IG51bGxwdHI7CiAgICAgfQogCiAgICAg
cmV0dXJuIG1fcmVzcG9uc2VBcnJheUJ1ZmZlci5nZXQoKTsKQEAgLTg2OCw4ICs4NjgsOCBAQCB2
b2lkIFhNTEh0dHBSZXF1ZXN0OjpjbGVhclJlc3BvbnNlQnVmZmVycygpCiAgICAgbV9jcmVhdGVk
RG9jdW1lbnQgPSBmYWxzZTsKICAgICBtX3Jlc3BvbnNlRG9jdW1lbnQgPSBudWxscHRyOwogICAg
IG1fcmVzcG9uc2VCbG9iID0gbnVsbHB0cjsKLSAgICBtX2JpbmFyeVJlc3BvbnNlQnVpbGRlci5j
bGVhcigpOwotICAgIG1fcmVzcG9uc2VBcnJheUJ1ZmZlci5jbGVhcigpOworICAgIG1fYmluYXJ5
UmVzcG9uc2VCdWlsZGVyID0gbnVsbHB0cjsKKyAgICBtX3Jlc3BvbnNlQXJyYXlCdWZmZXIgPSBu
dWxscHRyOwogICAgIG1fcmVzcG9uc2VDYWNoZUlzVmFsaWQgPSBmYWxzZTsKIH0KIApkaWZmIC0t
Z2l0IGEvU291cmNlL1dlYkNvcmUveG1sL1hTTFRQcm9jZXNzb3IuY3BwIGIvU291cmNlL1dlYkNv
cmUveG1sL1hTTFRQcm9jZXNzb3IuY3BwCmluZGV4IDA2OWNjZWNiN2JmMmM5NDAwNmRlOTQ4NWQx
NjMyODRlODQwNzkxZmIuLjQ5MWYxMmM5OWQ4YTViNDIwYWZmYzI5MDc3YzRiM2RlMjEzZDU0MDgg
MTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3htbC9YU0xUUHJvY2Vzc29yLmNwcAorKysgYi9T
b3VyY2UvV2ViQ29yZS94bWwvWFNMVFByb2Nlc3Nvci5jcHAKQEAgLTE2Miw4ICsxNjIsOCBAQCB2
b2lkIFhTTFRQcm9jZXNzb3I6OnJlbW92ZVBhcmFtZXRlcihjb25zdCBTdHJpbmcmIC8qbmFtZXNw
YWNlVVJJKi8sIGNvbnN0IFN0cmluZwogCiB2b2lkIFhTTFRQcm9jZXNzb3I6OnJlc2V0KCkKIHsK
LSAgICBtX3N0eWxlc2hlZXQuY2xlYXIoKTsKLSAgICBtX3N0eWxlc2hlZXRSb290Tm9kZS5jbGVh
cigpOworICAgIG1fc3R5bGVzaGVldCA9IG51bGxwdHI7CisgICAgbV9zdHlsZXNoZWV0Um9vdE5v
ZGUgPSBudWxscHRyOwogICAgIG1fcGFyYW1ldGVycy5jbGVhcigpOwogfQogCmRpZmYgLS1naXQg
YS9Tb3VyY2UvV2ViS2l0L1N0b3JhZ2UvU3RvcmFnZUFyZWFTeW5jLmNwcCBiL1NvdXJjZS9XZWJL
aXQvU3RvcmFnZS9TdG9yYWdlQXJlYVN5bmMuY3BwCmluZGV4IGQxZWIzMmEwZGE0Y2QzYmJlYjZm
ODhjNzYxNWUyYmZkOWI5NzcxODYuLmJhMTdmMTg5ODFlM2JlNmYxODQwZjkwOThhOGIxYWIxOTAw
NTNmNTkgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvU3RvcmFnZS9TdG9yYWdlQXJlYVN5bmMu
Y3BwCisrKyBiL1NvdXJjZS9XZWJLaXQvU3RvcmFnZS9TdG9yYWdlQXJlYVN5bmMuY3BwCkBAIC04
OCw3ICs4OCw3IEBAIHZvaWQgU3RvcmFnZUFyZWFTeW5jOjpzY2hlZHVsZUZpbmFsU3luYygpCiAg
ICAgQVNTRVJUKGlzTWFpblRocmVhZCgpKTsKICAgICAvLyBGSVhNRTogV2UgZG8gdGhpcyB0byBh
dm9pZCByYWNlcywgYnV0IGl0J2QgYmUgYmV0dGVyIHRvIG1ha2UgdGhpbmdzIHNhZmUgd2l0aG91
dCBibG9ja2luZy4KICAgICBibG9ja1VudGlsSW1wb3J0Q29tcGxldGUoKTsKLSAgICBtX3N0b3Jh
Z2VBcmVhID0gMDsgIC8vIFRoaXMgaXMgZG9uZSBpbiBibG9ja1VudGlsSW1wb3J0Q29tcGxldGUo
KSBidXQgdGhpcyBpcyBoZXJlIGFzIGEgZm9ybSBvZiBkb2N1bWVudGF0aW9uIHRoYXQgd2UgbXVz
dCBiZSBhYnNvbHV0ZWx5IHN1cmUgdGhlIHJlZiBjb3VudCBjeWNsZSBpcyBicm9rZW4uCisgICAg
bV9zdG9yYWdlQXJlYSA9IG51bGxwdHI7IC8vIFRoaXMgaXMgZG9uZSBpbiBibG9ja1VudGlsSW1w
b3J0Q29tcGxldGUoKSBidXQgdGhpcyBpcyBoZXJlIGFzIGEgZm9ybSBvZiBkb2N1bWVudGF0aW9u
IHRoYXQgd2UgbXVzdCBiZSBhYnNvbHV0ZWx5IHN1cmUgdGhlIHJlZiBjb3VudCBjeWNsZSBpcyBi
cm9rZW4uCiAKICAgICBpZiAobV9zeW5jVGltZXIuaXNBY3RpdmUoKSkKICAgICAgICAgbV9zeW5j
VGltZXIuc3RvcCgpOwpAQCAtMzc1LDcgKzM3NSw3IEBAIHZvaWQgU3RvcmFnZUFyZWFTeW5jOjpi
bG9ja1VudGlsSW1wb3J0Q29tcGxldGUoKQogICAgIE11dGV4TG9ja2VyIGxvY2tlcihtX2ltcG9y
dExvY2spOwogICAgIHdoaWxlICghbV9pbXBvcnRDb21wbGV0ZSkKICAgICAgICAgbV9pbXBvcnRD
b25kaXRpb24ud2FpdChtX2ltcG9ydExvY2spOwotICAgIG1fc3RvcmFnZUFyZWEgPSAwOworICAg
IG1fc3RvcmFnZUFyZWEgPSBudWxscHRyOwogfQogCiB2b2lkIFN0b3JhZ2VBcmVhU3luYzo6c3lu
Yyhib29sIGNsZWFySXRlbXMsIGNvbnN0IEhhc2hNYXA8U3RyaW5nLCBTdHJpbmc+JiBpdGVtcykK
ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvbWFjL1BsdWdpbnMvSG9zdGVkL1dlYkhvc3RlZE5l
dHNjYXBlUGx1Z2luVmlldy5tbSBiL1NvdXJjZS9XZWJLaXQvbWFjL1BsdWdpbnMvSG9zdGVkL1dl
Ykhvc3RlZE5ldHNjYXBlUGx1Z2luVmlldy5tbQppbmRleCA3NjAwNTgzNjkwZDc5NjBjNWQ4YTU5
YTczZTcyZDAyNWRiMmNmZjM3Li5hYzQzNGVjMWE5ZjM0OGM3MDVjOGJiMDEyY2U2YTRlYzg5N2Vm
MzBhIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L21hYy9QbHVnaW5zL0hvc3RlZC9XZWJIb3N0
ZWROZXRzY2FwZVBsdWdpblZpZXcubW0KKysrIGIvU291cmNlL1dlYktpdC9tYWMvUGx1Z2lucy9I
b3N0ZWQvV2ViSG9zdGVkTmV0c2NhcGVQbHVnaW5WaWV3Lm1tCkBAIC0yODEsNyArMjgxLDcgQEAg
LSAodm9pZClkZXN0cm95UGx1Z2luCiAgICAgICAgIH0KICAgICAgICAgCiAgICAgICAgIF9wcm94
eS0+ZGVzdHJveSgpOwotICAgICAgICBfcHJveHkgPSAwOworICAgICAgICBfcHJveHkgPSBudWxs
cHRyOwogICAgIH0KICAgICAKICAgICBfcGx1Z2luTGF5ZXIgPSAwOwpAQCAtNDMyLDcgKzQzMiw3
IEBAIC0gKHZvaWQpcGx1Z2luSG9zdERpZWQKICAgICAgICAgZG93bmNhc3Q8UmVuZGVyRW1iZWRk
ZWRPYmplY3Q+KCpfZWxlbWVudC0+cmVuZGVyZXIoKSkuc2V0UGx1Z2luVW5hdmFpbGFiaWxpdHlS
ZWFzb24oUmVuZGVyRW1iZWRkZWRPYmplY3Q6OlBsdWdpbkNyYXNoZWQpOwogCiAgICAgX3BsdWdp
bkxheWVyID0gbmlsOwotICAgIF9wcm94eSA9IDA7CisgICAgX3Byb3h5ID0gbnVsbHB0cjsKICAg
ICAKICAgICAvLyBObyBuZWVkIGZvciB1cyB0byBiZSBsYXllciBiYWNrZWQgYW55bW9yZQogICAg
IHNlbGYud2FudHNMYXllciA9IE5POwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9tYWMvV2Vi
Q29yZVN1cHBvcnQvV2ViRWRpdG9yQ2xpZW50Lm1tIGIvU291cmNlL1dlYktpdC9tYWMvV2ViQ29y
ZVN1cHBvcnQvV2ViRWRpdG9yQ2xpZW50Lm1tCmluZGV4IDZjZWQxOTQxMzg2YjBjNjkxMDYyNjdm
MWNkNzRkOGVjM2ExOWQ5NTYuLmMxODhiOWQ3Mzk1N2E0YTIzMDNkODcwMjE4MzEzMDZjZDYwMTNi
MjkgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvbWFjL1dlYkNvcmVTdXBwb3J0L1dlYkVkaXRv
ckNsaWVudC5tbQorKysgYi9Tb3VyY2UvV2ViS2l0L21hYy9XZWJDb3JlU3VwcG9ydC9XZWJFZGl0
b3JDbGllbnQubW0KQEAgLTExNDMsNyArMTE0Myw3IEBAIHZvaWQgV2ViRWRpdG9yQ2xpZW50Ojpk
aWRDaGVja1N1Y2NlZWQoaW50IHNlcXVlbmNlLCBOU0FycmF5KiByZXN1bHRzKQogewogICAgIEFT
U0VSVF9VTlVTRUQoc2VxdWVuY2UsIHNlcXVlbmNlID09IG1fdGV4dENoZWNraW5nUmVxdWVzdC0+
ZGF0YSgpLnNlcXVlbmNlKCkpOwogICAgIG1fdGV4dENoZWNraW5nUmVxdWVzdC0+ZGlkU3VjY2Vl
ZChjb3JlKHJlc3VsdHMsIG1fdGV4dENoZWNraW5nUmVxdWVzdC0+ZGF0YSgpLm1hc2soKSkpOwot
ICAgIG1fdGV4dENoZWNraW5nUmVxdWVzdC5jbGVhcigpOworICAgIG1fdGV4dENoZWNraW5nUmVx
dWVzdCA9IG51bGxwdHI7CiB9CiAjZW5kaWYKIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9t
YWMvV2ViQ29yZVN1cHBvcnQvV2ViVXNlck1lZGlhQ2xpZW50Lm1tIGIvU291cmNlL1dlYktpdC9t
YWMvV2ViQ29yZVN1cHBvcnQvV2ViVXNlck1lZGlhQ2xpZW50Lm1tCmluZGV4IDYyMmJkOWRkM2Fm
ZTA4OTJiMWRjMmRmNTBiYTdlNGI0MzIyYjE1OWQuLjE3ZjE2NDczZWQ1YjlkNDM0ODMwZWQ3Yzcy
Njk4NjVkN2E1YjM1M2YgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvbWFjL1dlYkNvcmVTdXBw
b3J0L1dlYlVzZXJNZWRpYUNsaWVudC5tbQorKysgYi9Tb3VyY2UvV2ViS2l0L21hYy9XZWJDb3Jl
U3VwcG9ydC9XZWJVc2VyTWVkaWFDbGllbnQubW0KQEAgLTE0Miw3ICsxNDIsNyBAQCAtICh2b2lk
KWNhbmNlbFJlcXVlc3QKICAgICBpZiAoIV9yZXF1ZXN0KQogICAgICAgICByZXR1cm47CiAKLSAg
ICBfcmVxdWVzdCA9IDA7CisgICAgX3JlcXVlc3QgPSBudWxscHRyOwogI2VuZGlmCiAgICAgCiB9
CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L3dpbi9XZWJWaWV3LmNwcCBiL1NvdXJjZS9XZWJL
aXQvd2luL1dlYlZpZXcuY3BwCmluZGV4IDQzNzUyNzEyOGQxNTQxZmM2OWU4N2QwNThjYjllOTA2
MmI2MzYyM2QuLmI3OWU2M2M1NDY1NWIxNzMwZjA0ZTZkNmE4ZTA3NDc0ZDZkYWJiMDEgMTAwNjQ0
Ci0tLSBhL1NvdXJjZS9XZWJLaXQvd2luL1dlYlZpZXcuY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQv
d2luL1dlYlZpZXcuY3BwCkBAIC04NTEsOCArODUxLDggQEAgdm9pZCBXZWJWaWV3OjpkZWxldGVC
YWNraW5nU3RvcmUoKQogICAgICAgICBLaWxsVGltZXIobV92aWV3V2luZG93LCBEZWxldGVCYWNr
aW5nU3RvcmVUaW1lcik7CiAgICAgICAgIG1fZGVsZXRlQmFja2luZ1N0b3JlVGltZXJBY3RpdmUg
PSBmYWxzZTsKICAgICB9Ci0gICAgbV9iYWNraW5nU3RvcmVCaXRtYXAuY2xlYXIoKTsKLSAgICBt
X2JhY2tpbmdTdG9yZURpcnR5UmVnaW9uLmNsZWFyKCk7CisgICAgbV9iYWNraW5nU3RvcmVCaXRt
YXAgPSBudWxscHRyOworICAgIG1fYmFja2luZ1N0b3JlRGlydHlSZWdpb24gPSBudWxscHRyOwog
ICAgIG1fYmFja2luZ1N0b3JlU2l6ZS5jeCA9IG1fYmFja2luZ1N0b3JlU2l6ZS5jeSA9IDA7CiB9
CiAKQEAgLTEwNzksNyArMTA3OSw3IEBAIHZvaWQgV2ViVmlldzo6dXBkYXRlQmFja2luZ1N0b3Jl
KEZyYW1lVmlldyogZnJhbWVWaWV3LCBIREMgZGMsIGJvb2wgYmFja2luZ1N0b3JlCiAgICAgICAg
IGlmIChtX3VpRGVsZWdhdGVQcml2YXRlKQogICAgICAgICAgICAgbV91aURlbGVnYXRlUHJpdmF0
ZS0+d2ViVmlld1BhaW50ZWQodGhpcyk7CiAKLSAgICAgICAgbV9iYWNraW5nU3RvcmVEaXJ0eVJl
Z2lvbi5jbGVhcigpOworICAgICAgICBtX2JhY2tpbmdTdG9yZURpcnR5UmVnaW9uID0gbnVsbHB0
cjsKICAgICB9CiAKICAgICBpZiAoIWRjKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdDIvRGF0
YWJhc2VQcm9jZXNzL0luZGV4ZWREQi9VbmlxdWVJREJEYXRhYmFzZS5jcHAgYi9Tb3VyY2UvV2Vi
S2l0Mi9EYXRhYmFzZVByb2Nlc3MvSW5kZXhlZERCL1VuaXF1ZUlEQkRhdGFiYXNlLmNwcAppbmRl
eCA2MTk4MDVjZDlhMjYxZTcxNWIyNzg4OGMxYjFiZWYxMTkzMmUzZWNkLi4zZDJjYTViYmJmYWM2
NGFlYjgxNjgwYmE4NzVmNjA3Yzg0ZTRiZDFkIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0Mi9E
YXRhYmFzZVByb2Nlc3MvSW5kZXhlZERCL1VuaXF1ZUlEQkRhdGFiYXNlLmNwcAorKysgYi9Tb3Vy
Y2UvV2ViS2l0Mi9EYXRhYmFzZVByb2Nlc3MvSW5kZXhlZERCL1VuaXF1ZUlEQkRhdGFiYXNlLmNw
cApAQCAtMTQ3LDcgKzE0Nyw3IEBAIHZvaWQgVW5pcXVlSURCRGF0YWJhc2U6OnNodXRkb3duQmFj
a2luZ1N0b3JlKFVuaXF1ZUlEQkRhdGFiYXNlU2h1dGRvd25UeXBlIHR5cGUsCiB7CiAgICAgQVNT
RVJUKCFSdW5Mb29wOjppc01haW4oKSk7CiAKLSAgICBtX2JhY2tpbmdTdG9yZS5jbGVhcigpOwor
ICAgIG1fYmFja2luZ1N0b3JlID0gbnVsbHB0cjsKIAogICAgIGlmICh0eXBlID09IFVuaXF1ZUlE
QkRhdGFiYXNlU2h1dGRvd25UeXBlOjpEZWxldGVTaHV0ZG93bikgewogICAgICAgICBTdHJpbmcg
ZGJGaWxlbmFtZSA9IFVuaXF1ZUlEQkRhdGFiYXNlOjpjYWxjdWxhdGVBYnNvbHV0ZURhdGFiYXNl
RmlsZW5hbWUoZGF0YWJhc2VEaXJlY3RvcnkpOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdDIv
UGx1Z2luUHJvY2Vzcy9QbHVnaW5Db250cm9sbGVyUHJveHkuY3BwIGIvU291cmNlL1dlYktpdDIv
UGx1Z2luUHJvY2Vzcy9QbHVnaW5Db250cm9sbGVyUHJveHkuY3BwCmluZGV4IDg4ZDZkMTc3ZGE4
NDYxZWY4ZjRlMzIzY2M2YzYyZmY5ZGNmNGMxODEuLjRhOWY0NjdlODc4ZGU4MWM2NjFiZGVkMzVk
NzYxNjYzMDYxMWM0N2MgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQyL1BsdWdpblByb2Nlc3Mv
UGx1Z2luQ29udHJvbGxlclByb3h5LmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0Mi9QbHVnaW5Qcm9j
ZXNzL1BsdWdpbkNvbnRyb2xsZXJQcm94eS5jcHAKQEAgLTEyNiw3ICsxMjYsNyBAQCBib29sIFBs
dWdpbkNvbnRyb2xsZXJQcm94eTo6aW5pdGlhbGl6ZShjb25zdCBQbHVnaW5DcmVhdGlvblBhcmFt
ZXRlcnMmIGNyZWF0aW9uUAogICAgICAgICAvLyB1c2VkIGFzIGFuIGlkZW50aWZpZXIgc28gaXQn
cyBPSyB0byBqdXN0IGdldCBhIHdlYWsgcmVmZXJlbmNlLgogICAgICAgICBQbHVnaW4qIHBsdWdp
biA9IG1fcGx1Z2luLmdldCgpOwogICAgICAgICAKLSAgICAgICAgbV9wbHVnaW4gPSAwOworICAg
ICAgICBtX3BsdWdpbiA9IG51bGxwdHI7CiAKICAgICAgICAgLy8gVGhpcyB3aWxsIGRlbGV0ZSB0
aGUgcGx1Zy1pbiBjb250cm9sbGVyIHByb3h5IG9iamVjdC4KICAgICAgICAgbV9jb25uZWN0aW9u
LT5yZW1vdmVQbHVnaW5Db250cm9sbGVyUHJveHkodGhpcywgcGx1Z2luKTsKQEAgLTE1Niw3ICsx
NTYsNyBAQCB2b2lkIFBsdWdpbkNvbnRyb2xsZXJQcm94eTo6ZGVzdHJveSgpCiAgICAgUGx1Z2lu
KiBwbHVnaW4gPSBtX3BsdWdpbi5nZXQoKTsKIAogICAgIG1fcGx1Z2luLT5kZXN0cm95UGx1Z2lu
KCk7Ci0gICAgbV9wbHVnaW4gPSAwOworICAgIG1fcGx1Z2luID0gbnVsbHB0cjsKIAogICAgIHBs
YXRmb3JtRGVzdHJveSgpOwogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9TaGFyZWQvQ2hp
bGRQcm9jZXNzUHJveHkuY3BwIGIvU291cmNlL1dlYktpdDIvU2hhcmVkL0NoaWxkUHJvY2Vzc1By
b3h5LmNwcAppbmRleCAzOTMwOTg5NzllNjhlYzEyNDQwZTEyNWZjYzNhMjQyYjA3ZTY4OTdkLi5k
OWUwN2VmNGM3ZDYyZGU4NmRmYzY5OGY3MDU0Zjg4YzRhODUzMzg1IDEwMDY0NAotLS0gYS9Tb3Vy
Y2UvV2ViS2l0Mi9TaGFyZWQvQ2hpbGRQcm9jZXNzUHJveHkuY3BwCisrKyBiL1NvdXJjZS9XZWJL
aXQyL1NoYXJlZC9DaGlsZFByb2Nlc3NQcm94eS5jcHAKQEAgLTQyLDcgKzQyLDcgQEAgQ2hpbGRQ
cm9jZXNzUHJveHk6On5DaGlsZFByb2Nlc3NQcm94eSgpCiAKICAgICBpZiAobV9wcm9jZXNzTGF1
bmNoZXIpIHsKICAgICAgICAgbV9wcm9jZXNzTGF1bmNoZXItPmludmFsaWRhdGUoKTsKLSAgICAg
ICAgbV9wcm9jZXNzTGF1bmNoZXIgPSAwOworICAgICAgICBtX3Byb2Nlc3NMYXVuY2hlciA9IG51
bGxwdHI7CiAgICAgfQogfQogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9TaGFyZWQvQ29v
cmRpbmF0ZWRHcmFwaGljcy9Db29yZGluYXRlZEJhY2tpbmdTdG9yZS5jcHAgYi9Tb3VyY2UvV2Vi
S2l0Mi9TaGFyZWQvQ29vcmRpbmF0ZWRHcmFwaGljcy9Db29yZGluYXRlZEJhY2tpbmdTdG9yZS5j
cHAKaW5kZXggYjlhMDVmOTA2ZTljMTFmMDI3ZWExYTE1MjVlZTQzZWNmZDVjNTNkNy4uYzY2ZDI4
Yjc1Mzk3NGEwNTc0MGNiNmFmNjhlMmM0ODQ4MWQ5M2MzMiAxMDA2NDQKLS0tIGEvU291cmNlL1dl
YktpdDIvU2hhcmVkL0Nvb3JkaW5hdGVkR3JhcGhpY3MvQ29vcmRpbmF0ZWRCYWNraW5nU3RvcmUu
Y3BwCisrKyBiL1NvdXJjZS9XZWJLaXQyL1NoYXJlZC9Db29yZGluYXRlZEdyYXBoaWNzL0Nvb3Jk
aW5hdGVkQmFja2luZ1N0b3JlLmNwcApAQCAtNTUsNyArNTUsNyBAQCB2b2lkIENvb3JkaW5hdGVk
QmFja2luZ1N0b3JlVGlsZTo6c3dhcEJ1ZmZlcnMoVGV4dHVyZU1hcHBlciogdGV4dHVyZU1hcHBl
cikKICAgICAgICAgdGV4dHVyZS0+cmVzZXQobV90aWxlUmVjdC5zaXplKCksIG1fc3VyZmFjZS0+
c3VwcG9ydHNBbHBoYSgpKTsKIAogICAgIG1fc3VyZmFjZS0+Y29weVRvVGV4dHVyZSh0ZXh0dXJl
LCBtX3NvdXJjZVJlY3QsIG1fc3VyZmFjZU9mZnNldCk7Ci0gICAgbV9zdXJmYWNlLmNsZWFyKCk7
CisgICAgbV9zdXJmYWNlID0gbnVsbHB0cjsKIH0KIAogdm9pZCBDb29yZGluYXRlZEJhY2tpbmdT
dG9yZVRpbGU6OnNldEJhY2tCdWZmZXIoY29uc3QgSW50UmVjdCYgdGlsZVJlY3QsIGNvbnN0IElu
dFJlY3QmIHNvdXJjZVJlY3QsIFBhc3NSZWZQdHI8Q29vcmRpbmF0ZWRTdXJmYWNlPiBidWZmZXIs
IGNvbnN0IEludFBvaW50JiBvZmZzZXQpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9VSVBy
b2Nlc3MvQVBJL2VmbC9Fd2tWaWV3LmNwcCBiL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9BUEkv
ZWZsL0V3a1ZpZXcuY3BwCmluZGV4IDc3YjUwMWE4NGRmNjQzZTFiZGVlN2U1NzQ1ZmYxOTQ0MTQy
NWFmNTkuLjQ1ODg0NjQ1Nzg3Mzc0NzM3ZDgzYmJjNDA1ZWU4YzdiZmU3NDVmYzkgMTAwNjQ0Ci0t
LSBhL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9BUEkvZWZsL0V3a1ZpZXcuY3BwCisrKyBiL1Nv
dXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9BUEkvZWZsL0V3a1ZpZXcuY3BwCkBAIC05NDAsNyArOTQw
LDcgQEAgdm9pZCBFd2tWaWV3OjpoaWRlQ29udGV4dE1lbnUoKQogICAgIGlmIChzZC0+YXBpLT5j
b250ZXh0X21lbnVfaGlkZSkKICAgICAgICAgc2QtPmFwaS0+Y29udGV4dF9tZW51X2hpZGUoc2Qp
OwogCi0gICAgbV9jb250ZXh0TWVudS5jbGVhcigpOworICAgIG1fY29udGV4dE1lbnUgPSBudWxs
cHRyOwogfQogCiB2b2lkIEV3a1ZpZXc6OnJlcXVlc3RQb3B1cE1lbnUoV0tQb3B1cE1lbnVMaXN0
ZW5lclJlZiBwb3B1cE1lbnVMaXN0ZW5lciwgY29uc3QgV0tSZWN0JiByZWN0LCBXS1BvcHVwSXRl
bVRleHREaXJlY3Rpb24gdGV4dERpcmVjdGlvbiwgZG91YmxlIHBhZ2VTY2FsZUZhY3RvciwgV0tB
cnJheVJlZiBpdGVtcywgaW50MzJfdCBzZWxlY3RlZEluZGV4KQpkaWZmIC0tZ2l0IGEvU291cmNl
L1dlYktpdDIvVUlQcm9jZXNzL0FQSS9tYWMvV0tWaWV3Lm1tIGIvU291cmNlL1dlYktpdDIvVUlQ
cm9jZXNzL0FQSS9tYWMvV0tWaWV3Lm1tCmluZGV4IGQ1NTE1YWUxZmMzZjQyOTlkYTEyNDMxYTQx
YTc0N2UzOGEzZTQ2NTcuLmU4ZDI0NDk1OGYwOWRlNWZkZWM5ZTFiYzNiMTRhMjYxMDIyZTMyYTYg
MTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9BUEkvbWFjL1dLVmlldy5tbQor
KysgYi9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvQVBJL21hYy9XS1ZpZXcubW0KQEAgLTM1MjAs
NyArMzUyMCw3IEBAIC0gKHZvaWQpX3NldFByb21pc2VkRGF0YUZvckF0dGFjaG1lbnQ6KE5TU3Ry
aW5nICopZmlsZW5hbWUgd2l0aEV4dGVuc2lvbjooTlNTdHJpCiAKIC0gKHZvaWQpcGFzdGVib2Fy
ZENoYW5nZWRPd25lcjooTlNQYXN0ZWJvYXJkICopcGFzdGVib2FyZAogewotICAgIF9kYXRhLT5f
cHJvbWlzZWRJbWFnZSA9IDA7CisgICAgX2RhdGEtPl9wcm9taXNlZEltYWdlID0gbnVsbHB0cjsK
ICAgICBfZGF0YS0+X3Byb21pc2VkRmlsZW5hbWUgPSAiIjsKICAgICBfZGF0YS0+X3Byb21pc2Vk
VVJMID0gIiI7CiB9CkBAIC0zNTMxLDcgKzM1MzEsNyBAQCAtICh2b2lkKXBhc3RlYm9hcmQ6KE5T
UGFzdGVib2FyZCAqKXBhc3RlYm9hcmQgcHJvdmlkZURhdGFGb3JUeXBlOihOU1N0cmluZyAqKXR5
cAogCiAgICAgaWYgKFt0eXBlIGlzRXF1YWw6TlNUSUZGUGJvYXJkVHlwZV0gJiYgX2RhdGEtPl9w
cm9taXNlZEltYWdlKSB7CiAgICAgICAgIFtwYXN0ZWJvYXJkIHNldERhdGE6KE5TRGF0YSAqKV9k
YXRhLT5fcHJvbWlzZWRJbWFnZS0+Z2V0VElGRlJlcHJlc2VudGF0aW9uKCkgZm9yVHlwZTpOU1RJ
RkZQYm9hcmRUeXBlXTsKLSAgICAgICAgX2RhdGEtPl9wcm9taXNlZEltYWdlID0gMDsKKyAgICAg
ICAgX2RhdGEtPl9wcm9taXNlZEltYWdlID0gbnVsbHB0cjsKICAgICB9CiB9CiAKZGlmZiAtLWdp
dCBhL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9JbnNwZWN0b3JTZXJ2ZXIvV2ViU29ja2V0U2Vy
dmVyQ29ubmVjdGlvbi5jcHAgYi9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvSW5zcGVjdG9yU2Vy
dmVyL1dlYlNvY2tldFNlcnZlckNvbm5lY3Rpb24uY3BwCmluZGV4IDgwOTdhYzFhNGNjMWUwZGRi
ZmFkZmY5OTBjM2U0ZTUyNzdiZmU0MDYuLjk0YTI0YzkwYzM4NjZhZjU5N2ViMGQ1OTFmMzY5Zjcx
MGRmNjA3YzggMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9JbnNwZWN0b3JT
ZXJ2ZXIvV2ViU29ja2V0U2VydmVyQ29ubmVjdGlvbi5jcHAKKysrIGIvU291cmNlL1dlYktpdDIv
VUlQcm9jZXNzL0luc3BlY3RvclNlcnZlci9XZWJTb2NrZXRTZXJ2ZXJDb25uZWN0aW9uLmNwcApA
QCAtMTI2LDcgKzEyNiw3IEBAIHZvaWQgV2ViU29ja2V0U2VydmVyQ29ubmVjdGlvbjo6c2VuZFJh
d0RhdGEoY29uc3QgY2hhciogZGF0YSwgc2l6ZV90IGxlbmd0aCkKIHZvaWQgV2ViU29ja2V0U2Vy
dmVyQ29ubmVjdGlvbjo6ZGlkQ2xvc2VTb2NrZXRTdHJlYW0oU29ja2V0U3RyZWFtSGFuZGxlKikK
IHsKICAgICAvLyBEZXN0cm95IHRoZSBTb2NrZXRTdHJlYW1IYW5kbGUgbm93IHRvIHByZXZlbnQg
Y2xvc2luZyBhbiBhbHJlYWR5IGNsb3NlZCBzb2NrZXQgbGF0ZXIuCi0gICAgbV9zb2NrZXQuY2xl
YXIoKTsKKyAgICBtX3NvY2tldCA9IG51bGxwdHI7CiAKICAgICAvLyBXZWIgU29ja2V0IE1vZGUu
CiAgICAgaWYgKG1fbW9kZSA9PSBXZWJTb2NrZXQpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0
Mi9VSVByb2Nlc3MvTmV0d29yay9DdXN0b21Qcm90b2NvbHMvbWFjL0N1c3RvbVByb3RvY29sTWFu
YWdlclByb3h5TWFjLm1tIGIvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL05ldHdvcmsvQ3VzdG9t
UHJvdG9jb2xzL21hYy9DdXN0b21Qcm90b2NvbE1hbmFnZXJQcm94eU1hYy5tbQppbmRleCA5NDI1
Mjk5YTJlYzczZjhiZTBkMTk5YTExM2EyZDZiYmE4YjYxOTc0Li41MTNiMWUwY2ZmOTdmYjE2ZmU0
YWJlOTFlYThiZmE0ZGRlYzEyYmE0IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nl
c3MvTmV0d29yay9DdXN0b21Qcm90b2NvbHMvbWFjL0N1c3RvbVByb3RvY29sTWFuYWdlclByb3h5
TWFjLm1tCisrKyBiL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9OZXR3b3JrL0N1c3RvbVByb3Rv
Y29scy9tYWMvQ3VzdG9tUHJvdG9jb2xNYW5hZ2VyUHJveHlNYWMubW0KQEAgLTc2LDcgKzc2LDcg
QEAgLSAoaWQpaW5pdFdpdGhDdXN0b21Qcm90b2NvbE1hbmFnZXJQcm94eTooQ3VzdG9tUHJvdG9j
b2xNYW5hZ2VyUHJveHkqKWN1c3RvbVByb3QKIAogLSAodm9pZClkZWFsbG9jCiB7Ci0gICAgX2Nv
bm5lY3Rpb24uY2xlYXIoKTsKKyAgICBfY29ubmVjdGlvbiA9IG51bGxwdHI7CiAgICAgW191cmxD
b25uZWN0aW9uIGNhbmNlbF07CiAgICAgW191cmxDb25uZWN0aW9uIHJlbGVhc2VdOwogICAgIFtz
dXBlciBkZWFsbG9jXTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9TdGF0
aXN0aWNzUmVxdWVzdC5jcHAgYi9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvU3RhdGlzdGljc1Jl
cXVlc3QuY3BwCmluZGV4IGMwZWM0OGVlM2JiOTY1MmRkNzg4N2U4NGU4NDhmMjI0ZTJmYmZiMjAu
LjgwNmUxMGYwMGZmM2YxNDRmMTdmYjdiMDI2OGUxMWZhY2ExNmYxNTkgMTAwNjQ0Ci0tLSBhL1Nv
dXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9TdGF0aXN0aWNzUmVxdWVzdC5jcHAKKysrIGIvU291cmNl
L1dlYktpdDIvVUlQcm9jZXNzL1N0YXRpc3RpY3NSZXF1ZXN0LmNwcApAQCAtOTUsNyArOTUsNyBA
QCB2b2lkIFN0YXRpc3RpY3NSZXF1ZXN0Ojpjb21wbGV0ZWRSZXF1ZXN0KHVpbnQ2NF90IHJlcXVl
c3RJRCwgY29uc3QgU3RhdGlzdGljc0RhdAogCiAgICAgaWYgKG1fb3V0c3RhbmRpbmdSZXF1ZXN0
cy5pc0VtcHR5KCkpIHsKICAgICAgICAgbV9jYWxsYmFjay0+cGVyZm9ybUNhbGxiYWNrV2l0aFJl
dHVyblZhbHVlKG1fcmVzcG9uc2VEaWN0aW9uYXJ5LmdldCgpKTsKLSAgICAgICAgbV9jYWxsYmFj
ayA9IDA7CisgICAgICAgIG1fY2FsbGJhY2sgPSBudWxscHRyOwogICAgIH0KIH0KIApkaWZmIC0t
Z2l0IGEvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL1dlYkZyYW1lTGlzdGVuZXJQcm94eS5jcHAg
Yi9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvV2ViRnJhbWVMaXN0ZW5lclByb3h5LmNwcAppbmRl
eCBlODAxMGU1YjYyNjkwNTFiMjM1ZTBiYzNhMjNmNzBkZTkwZjcyMzRmLi40MDYxZGQ1MjkxMzRl
ZDhkOGQyNWQ2OGQwY2M5YzVlOTZlODY5NjYwIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0Mi9V
SVByb2Nlc3MvV2ViRnJhbWVMaXN0ZW5lclByb3h5LmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0Mi9V
SVByb2Nlc3MvV2ViRnJhbWVMaXN0ZW5lclByb3h5LmNwcApAQCAtNDIsNyArNDIsNyBAQCBXZWJG
cmFtZUxpc3RlbmVyUHJveHk6On5XZWJGcmFtZUxpc3RlbmVyUHJveHkoKQogCiB2b2lkIFdlYkZy
YW1lTGlzdGVuZXJQcm94eTo6aW52YWxpZGF0ZSgpCiB7Ci0gICAgbV9mcmFtZSA9IDA7CisgICAg
bV9mcmFtZSA9IG51bGxwdHI7CiB9CiAKIHZvaWQgV2ViRnJhbWVMaXN0ZW5lclByb3h5OjpyZWNl
aXZlZFBvbGljeURlY2lzaW9uKFdlYkNvcmU6OlBvbGljeUFjdGlvbiBhY3Rpb24pCkBAIC01MSw3
ICs1MSw3IEBAIHZvaWQgV2ViRnJhbWVMaXN0ZW5lclByb3h5OjpyZWNlaXZlZFBvbGljeURlY2lz
aW9uKFdlYkNvcmU6OlBvbGljeUFjdGlvbiBhY3Rpb24pCiAgICAgICAgIHJldHVybjsKIAogICAg
IG1fZnJhbWUtPnJlY2VpdmVkUG9saWN5RGVjaXNpb24oYWN0aW9uLCBtX2xpc3RlbmVySUQsIG1f
bmF2aWdhdGlvbi5nZXQoKSk7Ci0gICAgbV9mcmFtZSA9IDA7CisgICAgbV9mcmFtZSA9IG51bGxw
dHI7CiB9CiAKIH0gLy8gbmFtZXNwYWNlIFdlYktpdApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktp
dDIvVUlQcm9jZXNzL1dlYkZyYW1lUHJveHkuY3BwIGIvU291cmNlL1dlYktpdDIvVUlQcm9jZXNz
L1dlYkZyYW1lUHJveHkuY3BwCmluZGV4IDQxYmI5MWExMzYxYjg4NGEyOGQxOTRjOTJiMTc2Mjhi
ZDQwNmQyMTQuLjY5MjhhZmJjNzAyYzcwYmRmMDk3NjNkNzNlMDZlNjJjYjNjYTM0MjEgMTAwNjQ0
Ci0tLSBhL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9XZWJGcmFtZVByb3h5LmNwcAorKysgYi9T
b3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvV2ViRnJhbWVQcm94eS5jcHAKQEAgLTU3LDExICs1Nywx
MSBAQCBXZWJGcmFtZVByb3h5Ojp+V2ViRnJhbWVQcm94eSgpCiAKIHZvaWQgV2ViRnJhbWVQcm94
eTo6d2ViUHJvY2Vzc1dpbGxTaHV0RG93bigpCiB7Ci0gICAgbV9wYWdlID0gMDsKKyAgICBtX3Bh
Z2UgPSBudWxscHRyOwogCiAgICAgaWYgKG1fYWN0aXZlTGlzdGVuZXIpIHsKICAgICAgICAgbV9h
Y3RpdmVMaXN0ZW5lci0+aW52YWxpZGF0ZSgpOwotICAgICAgICBtX2FjdGl2ZUxpc3RlbmVyID0g
MDsKKyAgICAgICAgbV9hY3RpdmVMaXN0ZW5lciA9IG51bGxwdHI7CiAgICAgfQogfQogCmRpZmYg
LS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvV2ViT3BlblBhbmVsUmVzdWx0TGlzdGVu
ZXJQcm94eS5jcHAgYi9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvV2ViT3BlblBhbmVsUmVzdWx0
TGlzdGVuZXJQcm94eS5jcHAKaW5kZXggZGQ2NjY3MTExOGQyNDhmODYyMWMyYjk4OGVlMzhiMWNm
YjAzZjk2MC4uYTM3N2U0YWYwOGUyOTdmM2MyZmE3NDYwNmM5ZTU5NDhhZTdkNDJlOCAxMDA2NDQK
LS0tIGEvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL1dlYk9wZW5QYW5lbFJlc3VsdExpc3RlbmVy
UHJveHkuY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9XZWJPcGVuUGFuZWxSZXN1
bHRMaXN0ZW5lclByb3h5LmNwcApAQCAtODksNyArODksNyBAQCB2b2lkIFdlYk9wZW5QYW5lbFJl
c3VsdExpc3RlbmVyUHJveHk6OmNhbmNlbCgpCiAKIHZvaWQgV2ViT3BlblBhbmVsUmVzdWx0TGlz
dGVuZXJQcm94eTo6aW52YWxpZGF0ZSgpCiB7Ci0gICAgbV9wYWdlID0gMDsKKyAgICBtX3BhZ2Ug
PSBudWxscHRyOwogfQogCiB9IC8vIG5hbWVzcGFjZSBXZWJLaXQKZGlmZiAtLWdpdCBhL1NvdXJj
ZS9XZWJLaXQyL1VJUHJvY2Vzcy9XZWJQYWdlUHJveHkuY3BwIGIvU291cmNlL1dlYktpdDIvVUlQ
cm9jZXNzL1dlYlBhZ2VQcm94eS5jcHAKaW5kZXggYmQxM2EzM2IxNjkyNGY3NDNhZDY4NmU3Yzhm
MjQ2MDAxYWFlM2Q4Yy4uNzlkMjNlMDU4NGYyOTQwMzQ5MGI2N2UwMDkxYjBlYWQzN2ZhMzVhZiAx
MDA2NDQKLS0tIGEvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL1dlYlBhZ2VQcm94eS5jcHAKKysr
IGIvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL1dlYlBhZ2VQcm94eS5jcHAKQEAgLTM3MDYsNyAr
MzcwNiw3IEBAIHZvaWQgV2ViUGFnZVByb3h5OjpydW5PcGVuUGFuZWwodWludDY0X3QgZnJhbWVJ
RCwgY29uc3QgRmlsZUNob29zZXJTZXR0aW5ncyYgc2V0CiB7CiAgICAgaWYgKG1fb3BlblBhbmVs
UmVzdWx0TGlzdGVuZXIpIHsKICAgICAgICAgbV9vcGVuUGFuZWxSZXN1bHRMaXN0ZW5lci0+aW52
YWxpZGF0ZSgpOwotICAgICAgICBtX29wZW5QYW5lbFJlc3VsdExpc3RlbmVyID0gMDsKKyAgICAg
ICAgbV9vcGVuUGFuZWxSZXN1bHRMaXN0ZW5lciA9IG51bGxwdHI7CiAgICAgfQogCiAgICAgV2Vi
RnJhbWVQcm94eSogZnJhbWUgPSBtX3Byb2Nlc3MtPndlYkZyYW1lKGZyYW1lSUQpOwpAQCAtMzgw
OCw3ICszODA4LDcgQEAgdm9pZCBXZWJQYWdlUHJveHk6OnNob3dDb2xvclBpY2tlcihjb25zdCBX
ZWJDb3JlOjpDb2xvciYgaW5pdGlhbENvbG9yLCBjb25zdCBJbnQKICNpZiBFTkFCTEUoSU5QVVRf
VFlQRV9DT0xPUl9QT1BPVkVSKQogICAgIC8vIEEgbmV3IHBvcG92ZXIgY29sb3Igd2VsbCBuZWVk
cyB0byBiZSBjcmVhdGVkIChhbmQgdGhlIHByZXZpb3VzIG9uZSBkZXN0cm95ZWQpIGZvcgogICAg
IC8vIGVhY2ggYWN0aXZhdGlvbiBvZiBhIGNvbG9yIGVsZW1lbnQuCi0gICAgbV9jb2xvclBpY2tl
ciA9IDA7CisgICAgbV9jb2xvclBpY2tlciA9IG51bGxwdHI7CiAjZW5kaWYKICAgICBpZiAoIW1f
Y29sb3JQaWNrZXIpCiAgICAgICAgIG1fY29sb3JQaWNrZXIgPSBtX3BhZ2VDbGllbnQuY3JlYXRl
Q29sb3JQaWNrZXIodGhpcywgaW5pdGlhbENvbG9yLCBlbGVtZW50UmVjdCk7CkBAIC00MzAwLDcg
KzQzMDAsNyBAQCB2b2lkIFdlYlBhZ2VQcm94eTo6ZGlkQ2hvb3NlRmlsZXNGb3JPcGVuUGFuZWwo
Y29uc3QgVmVjdG9yPFN0cmluZz4mIGZpbGVVUkxzKQogICAgIG1fcHJvY2Vzcy0+c2VuZChNZXNz
YWdlczo6V2ViUGFnZTo6RGlkQ2hvb3NlRmlsZXNGb3JPcGVuUGFuZWwoZmlsZVVSTHMpLCBtX3Bh
Z2VJRCk7CiAKICAgICBtX29wZW5QYW5lbFJlc3VsdExpc3RlbmVyLT5pbnZhbGlkYXRlKCk7Ci0g
ICAgbV9vcGVuUGFuZWxSZXN1bHRMaXN0ZW5lciA9IDA7CisgICAgbV9vcGVuUGFuZWxSZXN1bHRM
aXN0ZW5lciA9IG51bGxwdHI7CiB9CiAKIHZvaWQgV2ViUGFnZVByb3h5OjpkaWRDYW5jZWxGb3JP
cGVuUGFuZWwoKQpAQCAtNDMxMSw3ICs0MzExLDcgQEAgdm9pZCBXZWJQYWdlUHJveHk6OmRpZENh
bmNlbEZvck9wZW5QYW5lbCgpCiAgICAgbV9wcm9jZXNzLT5zZW5kKE1lc3NhZ2VzOjpXZWJQYWdl
OjpEaWRDYW5jZWxGb3JPcGVuUGFuZWwoKSwgbV9wYWdlSUQpOwogICAgIAogICAgIG1fb3BlblBh
bmVsUmVzdWx0TGlzdGVuZXItPmludmFsaWRhdGUoKTsKLSAgICBtX29wZW5QYW5lbFJlc3VsdExp
c3RlbmVyID0gMDsKKyAgICBtX29wZW5QYW5lbFJlc3VsdExpc3RlbmVyID0gbnVsbHB0cjsKIH0K
IAogdm9pZCBXZWJQYWdlUHJveHk6OmFkdmFuY2VUb05leHRNaXNzcGVsbGluZyhib29sIHN0YXJ0
QmVmb3JlU2VsZWN0aW9uKQpAQCAtNDc2Nyw3ICs0NzY3LDcgQEAgdm9pZCBXZWJQYWdlUHJveHk6
OnByaW50RmluaXNoZWRDYWxsYmFjayhjb25zdCBSZXNvdXJjZUVycm9yJiBwcmludEVycm9yLCB1
aW50NjQKIHZvaWQgV2ViUGFnZVByb3h5Ojpmb2N1c2VkRnJhbWVDaGFuZ2VkKHVpbnQ2NF90IGZy
YW1lSUQpCiB7CiAgICAgaWYgKCFmcmFtZUlEKSB7Ci0gICAgICAgIG1fZm9jdXNlZEZyYW1lID0g
MDsKKyAgICAgICAgbV9mb2N1c2VkRnJhbWUgPSBudWxscHRyOwogICAgICAgICByZXR1cm47CiAg
ICAgfQogCkBAIC00NzgwLDcgKzQ3ODAsNyBAQCB2b2lkIFdlYlBhZ2VQcm94eTo6Zm9jdXNlZEZy
YW1lQ2hhbmdlZCh1aW50NjRfdCBmcmFtZUlEKQogdm9pZCBXZWJQYWdlUHJveHk6OmZyYW1lU2V0
TGFyZ2VzdEZyYW1lQ2hhbmdlZCh1aW50NjRfdCBmcmFtZUlEKQogewogICAgIGlmICghZnJhbWVJ
RCkgewotICAgICAgICBtX2ZyYW1lU2V0TGFyZ2VzdEZyYW1lID0gMDsKKyAgICAgICAgbV9mcmFt
ZVNldExhcmdlc3RGcmFtZSA9IG51bGxwdHI7CiAgICAgICAgIHJldHVybjsKICAgICB9CiAKZGlm
ZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9pb3MvV0tHZW9sb2NhdGlvblByb3Zp
ZGVySU9TLm1tIGIvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL2lvcy9XS0dlb2xvY2F0aW9uUHJv
dmlkZXJJT1MubW0KaW5kZXggYmI2YmI2MDU0ZjdmODZiOWM2M2Q2ODVlNjVlZjc5ZjkyMWEzYWIx
ZS4uYmRkMTE0YTI0NDhkZmFhYTk3MTkxYTYyNWQ3Y2ExYmIyNjc3NjAyOSAxMDA2NDQKLS0tIGEv
U291cmNlL1dlYktpdDIvVUlQcm9jZXNzL2lvcy9XS0dlb2xvY2F0aW9uUHJvdmlkZXJJT1MubW0K
KysrIGIvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL2lvcy9XS0dlb2xvY2F0aW9uUHJvdmlkZXJJ
T1MubW0KQEAgLTExOCw3ICsxMTgsNyBAQCAtKHZvaWQpX3N0b3BVcGRhdGluZwogewogICAgIF9p
c1dlYkNvcmVHZW9sb2NhdGlvbkFjdGl2ZSA9IE5POwogICAgIFtfY29yZUxvY2F0aW9uUHJvdmlk
ZXIgc3RvcF07Ci0gICAgX2xhc3RBY3RpdmVQb3NpdGlvbi5jbGVhcigpOworICAgIF9sYXN0QWN0
aXZlUG9zaXRpb24gPSBudWxscHRyOwogfQogCiAtKHZvaWQpX3NldEVuYWJsZUhpZ2hBY2N1cmFj
eTooQk9PTCllbmFibGVIaWdoQWNjdXJhY3kKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL1dl
YlByb2Nlc3MvSW5qZWN0ZWRCdW5kbGUvbWFjL0luamVjdGVkQnVuZGxlTWFjLm1tIGIvU291cmNl
L1dlYktpdDIvV2ViUHJvY2Vzcy9JbmplY3RlZEJ1bmRsZS9tYWMvSW5qZWN0ZWRCdW5kbGVNYWMu
bW0KaW5kZXggNGU4NmFmMTlkNWM5YWNlMTYyZDQwZTI2ZDAwNDI3OTBlZDFjNDhhMi4uMjg1NzVl
Zjc0OWIyZGRiM2Q5MGZlMjk0ZGJhMzcxMmU1NTRlODhkOSAxMDA2NDQKLS0tIGEvU291cmNlL1dl
YktpdDIvV2ViUHJvY2Vzcy9JbmplY3RlZEJ1bmRsZS9tYWMvSW5qZWN0ZWRCdW5kbGVNYWMubW0K
KysrIGIvU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9JbmplY3RlZEJ1bmRsZS9tYWMvSW5qZWN0
ZWRCdW5kbGVNYWMubW0KQEAgLTU1LDcgKzU1LDcgQEAgYm9vbCBJbmplY3RlZEJ1bmRsZTo6aW5p
dGlhbGl6ZShjb25zdCBXZWJQcm9jZXNzQ3JlYXRpb25QYXJhbWV0ZXJzJiBwYXJhbWV0ZXJzLAog
ICAgICAgICAgICAgcmV0dXJuIGZhbHNlOwogICAgICAgICB9CiAKLSAgICAgICAgbV9zYW5kYm94
RXh0ZW5zaW9uID0gMDsKKyAgICAgICAgbV9zYW5kYm94RXh0ZW5zaW9uID0gbnVsbHB0cjsKICAg
ICB9CiAgICAgCiAgICAgUmV0YWluUHRyPENGU3RyaW5nUmVmPiBpbmplY3RlZEJ1bmRsZVBhdGhT
dHIgPSBtX3BhdGguY3JlYXRlQ0ZTdHJpbmcoKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQy
L1dlYlByb2Nlc3MvTmV0d29yay9XZWJSZXNvdXJjZUxvYWRlci5jcHAgYi9Tb3VyY2UvV2ViS2l0
Mi9XZWJQcm9jZXNzL05ldHdvcmsvV2ViUmVzb3VyY2VMb2FkZXIuY3BwCmluZGV4IDgzZDZjYThh
YWFmZjYyNTgzMmUzODIwMDFjZjZiMDA4MDYyZDY0OWUuLjI1Mzk3YzNiYzhlNjcxY2JkNTUwMjBl
M2NkNjk3M2M2YmEwYTI5ZTcgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3Mv
TmV0d29yay9XZWJSZXNvdXJjZUxvYWRlci5jcHAKKysrIGIvU291cmNlL1dlYktpdDIvV2ViUHJv
Y2Vzcy9OZXR3b3JrL1dlYlJlc291cmNlTG9hZGVyLmNwcApAQCAtNzYsNyArNzYsNyBAQCB2b2lk
IFdlYlJlc291cmNlTG9hZGVyOjpjYW5jZWxSZXNvdXJjZUxvYWRlcigpCiAKIHZvaWQgV2ViUmVz
b3VyY2VMb2FkZXI6OmRldGFjaEZyb21Db3JlTG9hZGVyKCkKIHsKLSAgICBtX2NvcmVMb2FkZXIg
PSAwOworICAgIG1fY29yZUxvYWRlciA9IG51bGxwdHI7CiB9CiAKIHZvaWQgV2ViUmVzb3VyY2VM
b2FkZXI6OndpbGxTZW5kUmVxdWVzdChjb25zdCBSZXNvdXJjZVJlcXVlc3QmIHByb3Bvc2VkUmVx
dWVzdCwgY29uc3QgUmVzb3VyY2VSZXNwb25zZSYgcmVkaXJlY3RSZXNwb25zZSkKZGlmZiAtLWdp
dCBhL1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvUGx1Z2lucy9OZXRzY2FwZS9OZXRzY2FwZVBs
dWdpbi5jcHAgYi9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL1BsdWdpbnMvTmV0c2NhcGUvTmV0
c2NhcGVQbHVnaW4uY3BwCmluZGV4IDBhN2I3NGRlNWM1YzY2MmJkN2QxMTg0YzQ2M2ZjOTYyNmFi
NDFlY2QuLmEzNmU0YjQxMzQ1ZGViMDEzNTBhMjQ5MGU3MDU4MDhmOTUzNDkwNjcgMTAwNjQ0Ci0t
LSBhL1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvUGx1Z2lucy9OZXRzY2FwZS9OZXRzY2FwZVBs
dWdpbi5jcHAKKysrIGIvU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9QbHVnaW5zL05ldHNjYXBl
L05ldHNjYXBlUGx1Z2luLmNwcApAQCAtMjc3LDcgKzI3Nyw3IEBAIHZvaWQgTmV0c2NhcGVQbHVn
aW46OmNhbmNlbFN0cmVhbUxvYWQoTmV0c2NhcGVQbHVnaW5TdHJlYW0qIHBsdWdpblN0cmVhbSkK
IHZvaWQgTmV0c2NhcGVQbHVnaW46OnJlbW92ZVBsdWdpblN0cmVhbShOZXRzY2FwZVBsdWdpblN0
cmVhbSogcGx1Z2luU3RyZWFtKQogewogICAgIGlmIChwbHVnaW5TdHJlYW0gPT0gbV9tYW51YWxT
dHJlYW0pIHsKLSAgICAgICAgbV9tYW51YWxTdHJlYW0gPSAwOworICAgICAgICBtX21hbnVhbFN0
cmVhbSA9IG51bGxwdHI7CiAgICAgICAgIHJldHVybjsKICAgICB9CiAKZGlmZiAtLWdpdCBhL1Nv
dXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvUGx1Z2lucy9QREYvUERGUGx1Z2luLm1tIGIvU291cmNl
L1dlYktpdDIvV2ViUHJvY2Vzcy9QbHVnaW5zL1BERi9QREZQbHVnaW4ubW0KaW5kZXggZGNjYzU0
MTA1ZmJhODcxOWU1ZmMzOGRmNGM1MDJkZGQyNzI5ZWVjZC4uNDcwNjFkNmQ2MTRkMjYxZDczMzlm
NTcwZmU2YjU4MDAwOTZmM2U5NCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdDIvV2ViUHJvY2Vz
cy9QbHVnaW5zL1BERi9QREZQbHVnaW4ubW0KKysrIGIvU291cmNlL1dlYktpdDIvV2ViUHJvY2Vz
cy9QbHVnaW5zL1BERi9QREZQbHVnaW4ubW0KQEAgLTExMDMsOCArMTEwMyw4IEBAIHZvaWQgUERG
UGx1Z2luOjpkZXN0cm95KCkKICAgICAgICAgICAgIGZyYW1lVmlldy0+cmVtb3ZlU2Nyb2xsYWJs
ZUFyZWEodGhpcyk7CiAgICAgfQogCi0gICAgbV9hY3RpdmVBbm5vdGF0aW9uID0gMDsKLSAgICBt
X2Fubm90YXRpb25Db250YWluZXIgPSAwOworICAgIG1fYWN0aXZlQW5ub3RhdGlvbiA9IG51bGxw
dHI7CisgICAgbV9hbm5vdGF0aW9uQ29udGFpbmVyID0gbnVsbHB0cjsKIAogICAgIGRlc3Ryb3lT
Y3JvbGxiYXIoSG9yaXpvbnRhbFNjcm9sbGJhcik7CiAgICAgZGVzdHJveVNjcm9sbGJhcihWZXJ0
aWNhbFNjcm9sbGJhcik7CkBAIC0xNjA0LDE0ICsxNjA0LDE0IEBAIHZvaWQgUERGUGx1Z2luOjpz
ZXRBY3RpdmVBbm5vdGF0aW9uKFBERkFubm90YXRpb24gKmFubm90YXRpb24pCiAKICAgICBpZiAo
YW5ub3RhdGlvbikgewogICAgICAgICBpZiAoW2Fubm90YXRpb24gaXNLaW5kT2ZDbGFzczpwZGZB
bm5vdGF0aW9uVGV4dFdpZGdldENsYXNzKCldICYmIHN0YXRpY19jYXN0PFBERkFubm90YXRpb25U
ZXh0V2lkZ2V0ICo+KGFubm90YXRpb24pLmlzUmVhZE9ubHkpIHsKLSAgICAgICAgICAgIG1fYWN0
aXZlQW5ub3RhdGlvbiA9IDA7CisgICAgICAgICAgICBtX2FjdGl2ZUFubm90YXRpb24gPSBudWxs
cHRyOwogICAgICAgICAgICAgcmV0dXJuOwogICAgICAgICB9CiAKICAgICAgICAgbV9hY3RpdmVB
bm5vdGF0aW9uID0gUERGUGx1Z2luQW5ub3RhdGlvbjo6Y3JlYXRlKGFubm90YXRpb24sIG1fcGRm
TGF5ZXJDb250cm9sbGVyLmdldCgpLCB0aGlzKTsKICAgICAgICAgbV9hY3RpdmVBbm5vdGF0aW9u
LT5hdHRhY2gobV9hbm5vdGF0aW9uQ29udGFpbmVyLmdldCgpKTsKICAgICB9IGVsc2UKLSAgICAg
ICAgbV9hY3RpdmVBbm5vdGF0aW9uID0gMDsKKyAgICAgICAgbV9hY3RpdmVBbm5vdGF0aW9uID0g
bnVsbHB0cjsKIH0KIAogYm9vbCBQREZQbHVnaW46OnN1cHBvcnRzRm9ybXMoKQpkaWZmIC0tZ2l0
IGEvU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9QbHVnaW5zL1BsdWdpblZpZXcuY3BwIGIvU291
cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9QbHVnaW5zL1BsdWdpblZpZXcuY3BwCmluZGV4IDZhODMz
ZjEzMTExMzUzMDc2YWNhZTEyODE0MzNiMmY1MTE5YmIyNDYuLjJhMGZkOTczMTMwYjIxMjY3OGIw
NTU0YzdkOGJlYjU1YzY4NTk2OGQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nl
c3MvUGx1Z2lucy9QbHVnaW5WaWV3LmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNz
L1BsdWdpbnMvUGx1Z2luVmlldy5jcHAKQEAgLTE2Niw3ICsxNjYsNyBAQCB2b2lkIFBsdWdpblZp
ZXc6OlN0cmVhbTo6Y2FuY2VsKCkKIAogICAgIG1fc3RyZWFtV2FzQ2FuY2VsbGVkID0gdHJ1ZTsK
ICAgICBtX2xvYWRlci0+Y2FuY2VsKG1fbG9hZGVyLT5jYW5jZWxsZWRFcnJvcigpKTsKLSAgICBt
X2xvYWRlciA9IDA7CisgICAgbV9sb2FkZXIgPSBudWxscHRyOwogfQogCiBzdGF0aWMgU3RyaW5n
IGJ1aWxkSFRUUEhlYWRlcnMoY29uc3QgUmVzb3VyY2VSZXNwb25zZSYgcmVzcG9uc2UsIGxvbmcg
bG9uZyYgZXhwZWN0ZWRDb250ZW50TGVuZ3RoKQpAQCAtNjA0LDcgKzYwNCw3IEBAIHZvaWQgUGx1
Z2luVmlldzo6aW5pdGlhbGl6ZVBsdWdpbigpCiAKIHZvaWQgUGx1Z2luVmlldzo6ZGlkRmFpbFRv
SW5pdGlhbGl6ZVBsdWdpbigpCiB7Ci0gICAgbV9wbHVnaW4gPSAwOworICAgIG1fcGx1Z2luID0g
bnVsbHB0cjsKIAogI2lmIEVOQUJMRShORVRTQ0FQRV9QTFVHSU5fQVBJKQogICAgIFN0cmluZyBm
cmFtZVVSTFN0cmluZyA9IGZyYW1lKCktPmxvYWRlcigpLmRvY3VtZW50TG9hZGVyKCktPnJlc3Bv
bnNlVVJMKCkuc3RyaW5nKCk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNz
L1dlYlBhZ2UvV2ViUGFnZS5jcHAgYi9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL1dlYlBhZ2Uv
V2ViUGFnZS5jcHAKaW5kZXggMTU1NGRiY2Y3NDk2Yzc2ZDk3MjAzM2I4ZDM5MTM2NGFiNmZlMWVi
OC4uN2I4YTkyNjAwN2RkMTgwNzg4NWRhMjgxMTZjODJiOThiMzE4MzI2NCAxMDA2NDQKLS0tIGEv
U291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9XZWJQYWdlL1dlYlBhZ2UuY3BwCisrKyBiL1NvdXJj
ZS9XZWJLaXQyL1dlYlByb2Nlc3MvV2ViUGFnZS9XZWJQYWdlLmNwcApAQCAtOTMwLDIzICs5MzAs
MjMgQEAgdm9pZCBXZWJQYWdlOjpjbG9zZSgpCiAgICAgfQogCiAjaWYgRU5BQkxFKEZVTExTQ1JF
RU5fQVBJKQotICAgIG1fZnVsbFNjcmVlbk1hbmFnZXIgPSAwOworICAgIG1fZnVsbFNjcmVlbk1h
bmFnZXIgPSBudWxscHRyOwogI2VuZGlmCiAKICAgICBpZiAobV9hY3RpdmVQb3B1cE1lbnUpIHsK
ICAgICAgICAgbV9hY3RpdmVQb3B1cE1lbnUtPmRpc2Nvbm5lY3RGcm9tUGFnZSgpOwotICAgICAg
ICBtX2FjdGl2ZVBvcHVwTWVudSA9IDA7CisgICAgICAgIG1fYWN0aXZlUG9wdXBNZW51ID0gbnVs
bHB0cjsKICAgICB9CiAKICAgICBpZiAobV9hY3RpdmVPcGVuUGFuZWxSZXN1bHRMaXN0ZW5lcikg
ewogICAgICAgICBtX2FjdGl2ZU9wZW5QYW5lbFJlc3VsdExpc3RlbmVyLT5kaXNjb25uZWN0RnJv
bVBhZ2UoKTsKLSAgICAgICAgbV9hY3RpdmVPcGVuUGFuZWxSZXN1bHRMaXN0ZW5lciA9IDA7Cisg
ICAgICAgIG1fYWN0aXZlT3BlblBhbmVsUmVzdWx0TGlzdGVuZXIgPSBudWxscHRyOwogICAgIH0K
IAogI2lmIEVOQUJMRShJTlBVVF9UWVBFX0NPTE9SKQogICAgIGlmIChtX2FjdGl2ZUNvbG9yQ2hv
b3NlcikgewogICAgICAgICBtX2FjdGl2ZUNvbG9yQ2hvb3Nlci0+ZGlzY29ubmVjdEZyb21QYWdl
KCk7Ci0gICAgICAgIG1fYWN0aXZlQ29sb3JDaG9vc2VyID0gMDsKKyAgICAgICAgbV9hY3RpdmVD
b2xvckNob29zZXIgPSBudWxscHRyOwogICAgIH0KICNlbmRpZgogCkBAIC0zMjcwLDcgKzMyNzAs
NyBAQCB2b2lkIFdlYlBhZ2U6OmNvdW50U3RyaW5nTWF0Y2hlcyhjb25zdCBTdHJpbmcmIHN0cmlu
ZywgdWludDMyX3Qgb3B0aW9ucywgdWludDMyXwogdm9pZCBXZWJQYWdlOjpkaWRDaGFuZ2VTZWxl
Y3RlZEluZGV4Rm9yQWN0aXZlUG9wdXBNZW51KGludDMyX3QgbmV3SW5kZXgpCiB7CiAgICAgY2hh
bmdlU2VsZWN0ZWRJbmRleChuZXdJbmRleCk7Ci0gICAgbV9hY3RpdmVQb3B1cE1lbnUgPSAwOwor
ICAgIG1fYWN0aXZlUG9wdXBNZW51ID0gbnVsbHB0cjsKIH0KIAogdm9pZCBXZWJQYWdlOjpjaGFu
Z2VTZWxlY3RlZEluZGV4KGludDMyX3QgaW5kZXgpCkBAIC0zMzA2LDEyICszMzA2LDEyIEBAIHZv
aWQgV2ViUGFnZTo6ZGlkQ2hvb3NlRmlsZXNGb3JPcGVuUGFuZWwoY29uc3QgVmVjdG9yPFN0cmlu
Zz4mIGZpbGVzKQogICAgICAgICByZXR1cm47CiAKICAgICBtX2FjdGl2ZU9wZW5QYW5lbFJlc3Vs
dExpc3RlbmVyLT5kaWRDaG9vc2VGaWxlcyhmaWxlcyk7Ci0gICAgbV9hY3RpdmVPcGVuUGFuZWxS
ZXN1bHRMaXN0ZW5lciA9IDA7CisgICAgbV9hY3RpdmVPcGVuUGFuZWxSZXN1bHRMaXN0ZW5lciA9
IG51bGxwdHI7CiB9CiAKIHZvaWQgV2ViUGFnZTo6ZGlkQ2FuY2VsRm9yT3BlblBhbmVsKCkKIHsK
LSAgICBtX2FjdGl2ZU9wZW5QYW5lbFJlc3VsdExpc3RlbmVyID0gMDsKKyAgICBtX2FjdGl2ZU9w
ZW5QYW5lbFJlc3VsdExpc3RlbmVyID0gbnVsbHB0cjsKIH0KIAogI2lmIEVOQUJMRShTQU5EQk9Y
X0VYVEVOU0lPTlMpCkBAIC0zNDE1LDcgKzM0MTUsNyBAQCB2b2lkIFdlYlBhZ2U6OmRpZFNlbGVj
dEl0ZW1Gcm9tQWN0aXZlQ29udGV4dE1lbnUoY29uc3QgV2ViQ29udGV4dE1lbnVJdGVtRGF0YSYg
aQogICAgICAgICByZXR1cm47CiAKICAgICBtX2NvbnRleHRNZW51LT5pdGVtU2VsZWN0ZWQoaXRl
bSk7Ci0gICAgbV9jb250ZXh0TWVudSA9IDA7CisgICAgbV9jb250ZXh0TWVudSA9IG51bGxwdHI7
CiB9CiAjZW5kaWYKIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9XZWJQ
YWdlL2lvcy9XZWJQYWdlSU9TLm1tIGIvU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9XZWJQYWdl
L2lvcy9XZWJQYWdlSU9TLm1tCmluZGV4IDIzZGU4M2VmYWQ2ODk0NjI0NzU2MGY4MTFkMDg4Y2Qy
OTc1MmE2YTcuLjlmNGNlYzcyMzFkZDQ2MjcxNTYzZDUyYjZhNGUyYjlkMzI3ODg3YzYgMTAwNjQ0
Ci0tLSBhL1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvV2ViUGFnZS9pb3MvV2ViUGFnZUlPUy5t
bQorKysgYi9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL1dlYlBhZ2UvaW9zL1dlYlBhZ2VJT1Mu
bW0KQEAgLTE5NzgsNyArMTk3OCw3IEBAIHZvaWQgV2ViUGFnZTo6c3luY0FwcGx5QXV0b2NvcnJl
Y3Rpb24oY29uc3QgU3RyaW5nJiBjb3JyZWN0aW9uLCBjb25zdCBTdHJpbmcmIG9yCiAgICAgICAg
IHdoaWxlICh0ZXh0Rm9yUmFuZ2UubGVuZ3RoKCkgJiYgdGV4dEZvclJhbmdlLmxlbmd0aCgpID4g
b3JpZ2luYWxUZXh0Lmxlbmd0aCgpICYmIGxvb3BDb3VudCA8IG1heFBvc2l0aW9uc0F0dGVtcHRz
KSB7CiAgICAgICAgICAgICBwb3NpdGlvbiA9IHBvc2l0aW9uLm5leHQoKTsKICAgICAgICAgICAg
IGlmIChwb3NpdGlvbi5pc05vdE51bGwoKSAmJiBwb3NpdGlvbiA+PSBmcmFtZS5zZWxlY3Rpb24o
KS5zZWxlY3Rpb24oKS5zdGFydCgpKQotICAgICAgICAgICAgICAgIHJhbmdlID0gTlVMTDsKKyAg
ICAgICAgICAgICAgICByYW5nZSA9IG51bGxwdHI7CiAgICAgICAgICAgICBlbHNlCiAgICAgICAg
ICAgICAgICAgcmFuZ2UgPSBSYW5nZTo6Y3JlYXRlKCpmcmFtZS5kb2N1bWVudCgpLCBwb3NpdGlv
biwgZnJhbWUuc2VsZWN0aW9uKCkuc2VsZWN0aW9uKCkuc3RhcnQoKSk7CiAgICAgICAgICAgICB0
ZXh0Rm9yUmFuZ2UgPSAocmFuZ2UpID8gcGxhaW5UZXh0UmVwbGFjaW5nTm9CcmVha1NwYWNlKHJh
bmdlLmdldCgpKSA6IGVtcHR5U3RyaW5nKCk7CkBAIC0yNDU4LDcgKzI0NTgsNyBAQCB2b2lkIFdl
YlBhZ2U6OmVsZW1lbnREaWRCbHVyKFdlYkNvcmU6Ok5vZGUqIG5vZGUpCiAgICAgICAgICAgICAg
ICAgc2VuZChNZXNzYWdlczo6V2ViUGFnZVByb3h5OjpTdG9wQXNzaXN0aW5nTm9kZSgpKTsKICAg
ICAgICAgICAgIG1faGFzUGVuZGluZ0JsdXJOb3RpZmljYXRpb24gPSBmYWxzZTsKICAgICAgICAg
fSk7Ci0gICAgICAgIG1fYXNzaXN0ZWROb2RlID0gMDsKKyAgICAgICAgbV9hc3Npc3RlZE5vZGUg
PSBudWxscHRyOwogICAgIH0KIH0KIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdDIvV2ViUHJv
Y2Vzcy9XZWJQcm9jZXNzLmNwcCBiL1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvV2ViUHJvY2Vz
cy5jcHAKaW5kZXggYTk3YmMyMWE5ODE1NDlhY2NkN2ZlZGZiMjgzM2FlYzg0ZWVkZDA3YS4uYjRj
OWUwZWU4ODFmZTczMTA1ZDM1ZTFmMTAyNDQ1MWEzYTJiOTBlYSAxMDA2NDQKLS0tIGEvU291cmNl
L1dlYktpdDIvV2ViUHJvY2Vzcy9XZWJQcm9jZXNzLmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0Mi9X
ZWJQcm9jZXNzL1dlYlByb2Nlc3MuY3BwCkBAIC0xMDM0LDcgKzEwMzQsNyBAQCB2b2lkIFdlYlBy
b2Nlc3M6Om5ldHdvcmtQcm9jZXNzQ29ubmVjdGlvbkNsb3NlZChOZXR3b3JrUHJvY2Vzc0Nvbm5l
Y3Rpb24qIGNvbm5lYwogICAgIEFTU0VSVChtX25ldHdvcmtQcm9jZXNzQ29ubmVjdGlvbik7CiAg
ICAgQVNTRVJUX1VOVVNFRChjb25uZWN0aW9uLCBtX25ldHdvcmtQcm9jZXNzQ29ubmVjdGlvbiA9
PSBjb25uZWN0aW9uKTsKIAotICAgIG1fbmV0d29ya1Byb2Nlc3NDb25uZWN0aW9uID0gMDsKKyAg
ICBtX25ldHdvcmtQcm9jZXNzQ29ubmVjdGlvbiA9IG51bGxwdHI7CiAgICAgCiAgICAgbV93ZWJS
ZXNvdXJjZUxvYWRTY2hlZHVsZXItPm5ldHdvcmtQcm9jZXNzQ3Jhc2hlZCgpOwogfQpAQCAtMTA1
MSw3ICsxMDUxLDcgQEAgdm9pZCBXZWJQcm9jZXNzOjp3ZWJUb0RhdGFiYXNlUHJvY2Vzc0Nvbm5l
Y3Rpb25DbG9zZWQoV2ViVG9EYXRhYmFzZVByb2Nlc3NDb25uZWMKICAgICBBU1NFUlQobV93ZWJU
b0RhdGFiYXNlUHJvY2Vzc0Nvbm5lY3Rpb24pOwogICAgIEFTU0VSVChtX3dlYlRvRGF0YWJhc2VQ
cm9jZXNzQ29ubmVjdGlvbiA9PSBjb25uZWN0aW9uKTsKIAotICAgIG1fd2ViVG9EYXRhYmFzZVBy
b2Nlc3NDb25uZWN0aW9uID0gMDsKKyAgICBtX3dlYlRvRGF0YWJhc2VQcm9jZXNzQ29ubmVjdGlv
biA9IG51bGxwdHI7CiB9CiAKIFdlYlRvRGF0YWJhc2VQcm9jZXNzQ29ubmVjdGlvbiogV2ViUHJv
Y2Vzczo6d2ViVG9EYXRhYmFzZVByb2Nlc3NDb25uZWN0aW9uKCkKZGlmZiAtLWdpdCBhL1Rvb2xz
L0NoYW5nZUxvZyBiL1Rvb2xzL0NoYW5nZUxvZwppbmRleCA5ODc2MGNjZjVhNDE5NzRiMDhjODIw
OThlNTRkMjg4OGFmNDcxN2E4Li42OWVlZmNmODgzZmQzMThjNjExN2RlZTBmYWYwZWFjN2IzNjZk
M2YxIDEwMDY0NAotLS0gYS9Ub29scy9DaGFuZ2VMb2cKKysrIGIvVG9vbHMvQ2hhbmdlTG9nCkBA
IC0xLDMgKzEsMTIgQEAKKzIwMTUtMDctMDMgIENocmlzIER1bWV6ICA8Y2R1bWV6QGFwcGxlLmNv
bT4KKworICAgICAgICBEcm9wIFJlZlB0cjo6Y2xlYXIoKSBtZXRob2QKKyAgICAgICAgaHR0cHM6
Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTE0NjU1NgorCisgICAgICAgIFJldmll
d2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIERyb3AgUmVmUHRyOjpjbGVhcigpIG1l
dGhvZCBpbiBmYXZvciBvZiAiPSBudWxscHRyOyIgcGF0dGVybi4KKwogMjAxNS0wNy0wMyAgRGFu
IEJlcm5zdGVpbiAgPG1pdHpAYXBwbGUuY29tPgogCiAgICAgICAgIFtYY29kZV0gVXBkYXRlIHNv
bWUgYnVpbGQgc2V0dGluZ3MgYXMgcmVjb21tZW5kZWQgYnkgWGNvZGUgNwpkaWZmIC0tZ2l0IGEv
VG9vbHMvRHVtcFJlbmRlclRyZWUvbWFjL0R1bXBSZW5kZXJUcmVlLm1tIGIvVG9vbHMvRHVtcFJl
bmRlclRyZWUvbWFjL0R1bXBSZW5kZXJUcmVlLm1tCmluZGV4IGJjY2Q0YTkxMTJlNjcyYzFjYzJi
MmQ5MzBmZjBhM2VlMDNiMDNlMDYuLjI3NmRmOGI4OTJlYzUyN2E3NDZiZjNmYTZkZGM2NGVhZDM3
NzdjMTUgMTAwNjQ0Ci0tLSBhL1Rvb2xzL0R1bXBSZW5kZXJUcmVlL21hYy9EdW1wUmVuZGVyVHJl
ZS5tbQorKysgYi9Ub29scy9EdW1wUmVuZGVyVHJlZS9tYWMvRHVtcFJlbmRlclRyZWUubW0KQEAg
LTIwNjQsNyArMjA2NCw3IEBAIHN0YXRpYyB2b2lkIHJ1blRlc3QoY29uc3Qgc3RyaW5nJiBpbnB1
dExpbmUpCiAgICAgQVNTRVJUKENGQXJyYXlHZXRDb3VudChvcGVuV2luZG93c1JlZikgPT0gMSk7
CiAgICAgQVNTRVJUKENGQXJyYXlHZXRWYWx1ZUF0SW5kZXgob3BlbldpbmRvd3NSZWYsIDApID09
IFtbbWFpbkZyYW1lIHdlYlZpZXddIHdpbmRvd10pOwogCi0gICAgZ1Rlc3RSdW5uZXIuY2xlYXIo
KTsKKyAgICBnVGVzdFJ1bm5lciA9IG51bGxwdHI7CiAKICAgICBpZiAoaWdub3JlV2ViQ29yZU5v
ZGVMZWFrcykKICAgICAgICAgW1dlYkNvcmVTdGF0aXN0aWNzIHN0b3BJZ25vcmluZ1dlYkNvcmVO
b2RlTGVha3NdOwpkaWZmIC0tZ2l0IGEvVG9vbHMvRHVtcFJlbmRlclRyZWUvd2luL0R1bXBSZW5k
ZXJUcmVlLmNwcCBiL1Rvb2xzL0R1bXBSZW5kZXJUcmVlL3dpbi9EdW1wUmVuZGVyVHJlZS5jcHAK
aW5kZXggZDk4NmNiZmQzNzM0MDI0NjZmNDBiOGU2NWE0MDQ2OWJlY2UwYThkYy4uYzg0MzU0NzIz
Y2JhOTVmNGExNWE0MTYwNzYzMjkzYmQ2NzY2OGYyOSAxMDA2NDQKLS0tIGEvVG9vbHMvRHVtcFJl
bmRlclRyZWUvd2luL0R1bXBSZW5kZXJUcmVlLmNwcAorKysgYi9Ub29scy9EdW1wUmVuZGVyVHJl
ZS93aW4vRHVtcFJlbmRlclRyZWUuY3BwCkBAIC0xMTgzLDcgKzExODMsNyBAQCBzdGF0aWMgdm9p
ZCBydW5UZXN0KGNvbnN0IHN0cmluZyYgaW5wdXRMaW5lKQogCiBleGl0OgogICAgIHJlbW92ZUZv
bnRGYWxsYmFja0lmUHJlc2VudChmYWxsYmFja1BhdGgpOwotICAgIDo6Z1Rlc3RSdW5uZXIuY2xl
YXIoKTsKKyAgICA6OmdUZXN0UnVubmVyID0gbnVsbHB0cjsKIAogICAgIGZwdXRzKCIjRU9GXG4i
LCBzdGRlcnIpOwogICAgIGZmbHVzaChzdGRlcnIpOwpkaWZmIC0tZ2l0IGEvVG9vbHMvVGVzdFdl
YktpdEFQSS9UZXN0cy9XVEYvUmVmUHRyLmNwcCBiL1Rvb2xzL1Rlc3RXZWJLaXRBUEkvVGVzdHMv
V1RGL1JlZlB0ci5jcHAKaW5kZXggZmM5MjI0NjcyNzg0NjQxZDFkMzc0OWMyMDc5ZTE1YmJkM2U4
NzI2Yy4uYjcyNmQ3ZGRmMDNjYzJmZDZhMjBlMTRkOWI0MDIzY2YyNmE3ZDQzOCAxMDA2NDQKLS0t
IGEvVG9vbHMvVGVzdFdlYktpdEFQSS9UZXN0cy9XVEYvUmVmUHRyLmNwcAorKysgYi9Ub29scy9U
ZXN0V2ViS2l0QVBJL1Rlc3RzL1dURi9SZWZQdHIuY3BwCkBAIC0xMDIsNyArMTAyLDcgQEAgVEVT
VChXVEZfUmVmUHRyLCBCYXNpYykKICAgICB7CiAgICAgICAgIFJlZlB0cjxSZWZMb2dnZXI+IHB0
cigmYSk7CiAgICAgICAgIEFTU0VSVF9FUSgmYSwgcHRyLmdldCgpKTsKLSAgICAgICAgcHRyLmNs
ZWFyKCk7CisgICAgICAgIHB0ciA9IG51bGxwdHI7CiAgICAgICAgIEFTU0VSVF9FUShudWxscHRy
LCBwdHIuZ2V0KCkpOwogICAgIH0KICAgICBBU1NFUlRfU1RSRVEoInJlZihhKSBkZXJlZihhKSAi
LCB0YWtlTG9nU3RyKCkuY19zdHIoKSk7Cg==
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>256133</attachid>
            <date>2015-07-03 21:05:06 -0700</date>
            <delta_ts>2015-07-03 21:22:40 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-146556-20150703210411.patch</filename>
            <type>text/plain</type>
            <size>184370</size>
            <attacher name="Chris Dumez">cdumez</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTg2MjcxCmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlw
dENvcmUvQ2hhbmdlTG9nIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL0NoYW5nZUxvZwppbmRleCA3
NThjNmEzYWY4NTAzMTIzOGRiZjUzY2ZjMjg4NTc5ODM0OGUzYTJiLi4xMDE2ZTQ4ODM0ODAxMjg3
MDYxYjUxMzZjNmU4MzkxZWE4NGQxMzk2IDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENv
cmUvQ2hhbmdlTG9nCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9DaGFuZ2VMb2cKQEAgLTEs
MyArMSwxMiBAQAorMjAxNS0wNy0wMyAgQ2hyaXMgRHVtZXogIDxjZHVtZXpAYXBwbGUuY29tPgor
CisgICAgICAgIERyb3AgUmVmUHRyOjpjbGVhcigpIG1ldGhvZAorICAgICAgICBodHRwczovL2J1
Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTQ2NTU2CisKKyAgICAgICAgUmV2aWV3ZWQg
YnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgRHJvcCBSZWZQdHI6OmNsZWFyKCkgbWV0aG9k
IGluIGZhdm9yIG9mICI9IG51bGxwdHI7IiBwYXR0ZXJuLgorCiAyMDE1LTA3LTAzICBEYW4gQmVy
bnN0ZWluICA8bWl0ekBhcHBsZS5jb20+CiAKICAgICAgICAgW1hjb2RlXSBVcGRhdGUgc29tZSBi
dWlsZCBzZXR0aW5ncyBhcyByZWNvbW1lbmRlZCBieSBYY29kZSA3CmRpZmYgLS1naXQgYS9Tb3Vy
Y2UvV1RGL0NoYW5nZUxvZyBiL1NvdXJjZS9XVEYvQ2hhbmdlTG9nCmluZGV4IDcxMDIyNmE3ZTZj
Nzg3NjQ2YWZhMDllN2ViYmNlZDA4ZDg1M2I0N2MuLjlhNDkxMmEwMDJkYjcwYmUxMTk5M2UxNTcw
YzU0YmIzMjQ4MDBjYjggMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XVEYvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XVEYvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMTYgQEAKKzIwMTUtMDctMDMgIENocmlzIER1
bWV6ICA8Y2R1bWV6QGFwcGxlLmNvbT4KKworICAgICAgICBEcm9wIFJlZlB0cjo6Y2xlYXIoKSBt
ZXRob2QKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTE0
NjU1NgorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIERy
b3AgUmVmUHRyOjpjbGVhcigpIG1ldGhvZCBpbiBmYXZvciBvZiAiPSBudWxscHRyOyIgcGF0dGVy
bi4KKyAgICAgICAgQWxzbyBtYWRlIHRoZSAiPSBudWxscHRyOyIgcGF0dGVybiBhcyBlZmZpY2ll
bnQgYXMgY2xlYXIoKQorICAgICAgICBieSBwcm92aWRpbmcgYSBvcGVyYXRvcj0obnVsbHB0cl90
KSBvdmVybG9hZC4gTG9jYWwgbWljcm8tCisgICAgICAgIGJlbmNobWFya2luZyBzaG93ZWQgdGhh
dCAiPSBudWxscHRyOyIgdXNlZCB0byBiZSB+MS43JSBzbG93ZXIKKyAgICAgICAgdGhhbiBjbGVh
cigpLgorCiAyMDE1LTA3LTAzICBEYW4gQmVybnN0ZWluICA8bWl0ekBhcHBsZS5jb20+CiAKICAg
ICAgICAgW1hjb2RlXSBVcGRhdGUgc29tZSBidWlsZCBzZXR0aW5ncyBhcyByZWNvbW1lbmRlZCBi
eSBYY29kZSA3CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cgYi9Tb3VyY2Uv
V2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggY2ZhNDExOWI1YWM2NmMxMDk1YjRmMzY5MDZmYjliYWQ5
YTA4MmRjNy4uNzkzMzE4N2M3YzIxYTNhMzhmYjZhMWUyZWMzN2JmNjZhZGFiYzdlYiAxMDA2NDQK
LS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1NvdXJjZS9XZWJDb3JlL0NoYW5n
ZUxvZwpAQCAtMSwzICsxLDIzMiBAQAorMjAxNS0wNy0wMyAgQ2hyaXMgRHVtZXogIDxjZHVtZXpA
YXBwbGUuY29tPgorCisgICAgICAgIERyb3AgUmVmUHRyOjpjbGVhcigpIG1ldGhvZAorICAgICAg
ICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTQ2NTU2CisKKyAgICAg
ICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgRHJvcCBSZWZQdHI6OmNs
ZWFyKCkgbWV0aG9kIGluIGZhdm9yIG9mICI9IG51bGxwdHI7IiBwYXR0ZXJuLgorCisyMDE1LTA3
LTAyICBDaHJpcyBEdW1leiAgPGNkdW1lekBhcHBsZS5jb20+CisKKyAgICAgICAgRHJvcCBSZWZQ
dHI6OmNsZWFyKCkgbWV0aG9kCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3df
YnVnLmNnaT9pZD0xNDY1NTYKKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4K
KworICAgICAgICAqIE1vZHVsZXMvaW5kZXhlZGRiL0lEQkN1cnNvci5jcHA6CisgICAgICAgIChX
ZWJDb3JlOjpJREJDdXJzb3I6OmNsb3NlKToKKyAgICAgICAgKiBNb2R1bGVzL2luZGV4ZWRkYi9J
REJEYXRhYmFzZUJhY2tlbmQuY3BwOgorICAgICAgICAoV2ViQ29yZTo6SURCRGF0YWJhc2VCYWNr
ZW5kOjp0cmFuc2FjdGlvbkZpbmlzaGVkKToKKyAgICAgICAgKiBNb2R1bGVzL2luZGV4ZWRkYi9J
REJPYmplY3RTdG9yZS5jcHA6CisgICAgICAgICogTW9kdWxlcy9pbmRleGVkZGIvSURCT3BlbkRC
UmVxdWVzdC5jcHA6CisgICAgICAgIChXZWJDb3JlOjpJREJPcGVuREJSZXF1ZXN0OjpkaXNwYXRj
aEV2ZW50KToKKyAgICAgICAgKiBNb2R1bGVzL2luZGV4ZWRkYi9JREJSZXF1ZXN0LmNwcDoKKyAg
ICAgICAgKFdlYkNvcmU6OklEQlJlcXVlc3Q6OmFib3J0KToKKyAgICAgICAgKFdlYkNvcmU6OklE
QlJlcXVlc3Q6OnNldFBlbmRpbmdDdXJzb3IpOgorICAgICAgICAoV2ViQ29yZTo6SURCUmVxdWVz
dDo6b25FcnJvcik6CisgICAgICAgIChXZWJDb3JlOjpJREJSZXF1ZXN0OjpvblN1Y2Nlc3NJbnRl
cm5hbCk6CisgICAgICAgIChXZWJDb3JlOjpJREJSZXF1ZXN0Ojp0cmFuc2FjdGlvbkRpZEZpbmlz
aEFuZERpc3BhdGNoKToKKyAgICAgICAgKiBNb2R1bGVzL2luZGV4ZWRkYi9JREJUcmFuc2FjdGlv
bi5jcHA6CisgICAgICAgIChXZWJDb3JlOjpJREJUcmFuc2FjdGlvbjo6T3BlbkN1cnNvck5vdGlm
aWVyOjpjdXJzb3JGaW5pc2hlZCk6CisgICAgICAgICogTW9kdWxlcy9tZWRpYXNvdXJjZS9NZWRp
YVNvdXJjZS5jcHA6CisgICAgICAgIChXZWJDb3JlOjpNZWRpYVNvdXJjZTo6c2V0UmVhZHlTdGF0
ZSk6CisgICAgICAgIChXZWJDb3JlOjpNZWRpYVNvdXJjZTo6c3RvcCk6CisgICAgICAgICogTW9k
dWxlcy9tZWRpYXN0cmVhbS9SVENTZXNzaW9uRGVzY3JpcHRpb25SZXF1ZXN0SW1wbC5jcHA6Cisg
ICAgICAgIChXZWJDb3JlOjpSVENTZXNzaW9uRGVzY3JpcHRpb25SZXF1ZXN0SW1wbDo6Y2xlYXIp
OgorICAgICAgICAqIE1vZHVsZXMvbWVkaWFzdHJlYW0vUlRDU3RhdHNSZXF1ZXN0SW1wbC5jcHA6
CisgICAgICAgIChXZWJDb3JlOjpSVENTdGF0c1JlcXVlc3RJbXBsOjpjbGVhcik6CisgICAgICAg
ICogTW9kdWxlcy9tZWRpYXN0cmVhbS9SVENWb2lkUmVxdWVzdEltcGwuY3BwOgorICAgICAgICAo
V2ViQ29yZTo6UlRDVm9pZFJlcXVlc3RJbXBsOjpjbGVhcik6CisgICAgICAgICogTW9kdWxlcy93
ZWJhdWRpby9BdWRpb0NvbnRleHQuY3BwOgorICAgICAgICAoV2ViQ29yZTo6QXVkaW9Db250ZXh0
OjpjbGVhcik6CisgICAgICAgICogTW9kdWxlcy93ZWJkYXRhYmFzZS9TUUxUcmFuc2FjdGlvbkJh
Y2tlbmQuY3BwOgorICAgICAgICAoV2ViQ29yZTo6U1FMVHJhbnNhY3Rpb25CYWNrZW5kOjpyZWxl
YXNlT3JpZ2luTG9ja0lmTmVlZGVkKToKKyAgICAgICAgKiBNb2R1bGVzL3dlYnNvY2tldHMvV29y
a2VyVGhyZWFkYWJsZVdlYlNvY2tldENoYW5uZWwuY3BwOgorICAgICAgICAoV2ViQ29yZTo6V29y
a2VyVGhyZWFkYWJsZVdlYlNvY2tldENoYW5uZWw6OmRpc2Nvbm5lY3QpOgorICAgICAgICAqIGJp
bmRpbmdzL2pzL1dlYkNvcmVKU0NsaWVudERhdGEuaDoKKyAgICAgICAgKFdlYkNvcmU6OldlYkNv
cmVKU0NsaWVudERhdGE6On5XZWJDb3JlSlNDbGllbnREYXRhKToKKyAgICAgICAgKiBiaW5kaW5n
cy9qcy9Xb3JrZXJTY3JpcHRDb250cm9sbGVyLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6Oldvcmtl
clNjcmlwdENvbnRyb2xsZXI6On5Xb3JrZXJTY3JpcHRDb250cm9sbGVyKToKKyAgICAgICAgKiBj
b250ZW50ZXh0ZW5zaW9ucy9Db250ZW50RXh0ZW5zaW9uUGFyc2VyLmNwcDoKKyAgICAgICAgKFdl
YkNvcmU6OkNvbnRlbnRFeHRlbnNpb25zOjpwYXJzZVJ1bGVMaXN0KToKKyAgICAgICAgKiBjc3Mv
Q1NTUGFyc2VyLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OkNTU1BhcnNlcjo6cGFyc2VGaWxsUG9z
aXRpb24pOgorICAgICAgICAoV2ViQ29yZTo6Q1NTUGFyc2VyOjpwYXJzZTJWYWx1ZXNGaWxsUG9z
aXRpb24pOgorICAgICAgICAoV2ViQ29yZTo6Q1NTUGFyc2VyOjpwb3BSdWxlRGF0YSk6CisgICAg
ICAgIChXZWJDb3JlOjpDU1NQYXJzZXI6Om1hcmtSdWxlQm9keVN0YXJ0KToKKyAgICAgICAgKiBk
b20vRG9jdW1lbnQuY3BwOgorICAgICAgICAoV2ViQ29yZTo6RG9jdW1lbnQ6OmRldGFjaFBhcnNl
cik6CisgICAgICAgIChXZWJDb3JlOjpEb2N1bWVudDo6Y2xlYXJTY3JpcHRlZEFuaW1hdGlvbkNv
bnRyb2xsZXIpOgorICAgICAgICAoV2ViQ29yZTo6RG9jdW1lbnQ6OnVwZGF0ZUhvdmVyQWN0aXZl
U3RhdGUpOgorICAgICAgICAqIGRvbS9Eb2N1bWVudE1hcmtlci5oOgorICAgICAgICAoV2ViQ29y
ZTo6RG9jdW1lbnRNYXJrZXI6OmNsZWFyRGV0YWlscyk6CisgICAgICAgICogZG9tL0VsZW1lbnQu
Y3BwOgorICAgICAgICAoV2ViQ29yZTo6RWxlbWVudDo6Y2xvbmVBdHRyaWJ1dGVzRnJvbUVsZW1l
bnQpOgorICAgICAgICAqIGRvbS9Ob2RlSXRlcmF0b3IuY3BwOgorICAgICAgICAoV2ViQ29yZTo6
Tm9kZUl0ZXJhdG9yOjpOb2RlUG9pbnRlcjo6Y2xlYXIpOgorICAgICAgICAoV2ViQ29yZTo6Tm9k
ZUl0ZXJhdG9yOjpkZXRhY2gpOgorICAgICAgICAqIGRvbS9Qb3NpdGlvbi5oOgorICAgICAgICAo
V2ViQ29yZTo6UG9zaXRpb246OmNsZWFyKToKKyAgICAgICAgKiBkb20vUmFuZ2VCb3VuZGFyeVBv
aW50Lmg6CisgICAgICAgIChXZWJDb3JlOjpSYW5nZUJvdW5kYXJ5UG9pbnQ6OmNsZWFyKToKKyAg
ICAgICAgKiBkb20vU3BhY2VTcGxpdFN0cmluZy5oOgorICAgICAgICAoV2ViQ29yZTo6U3BhY2VT
cGxpdFN0cmluZzo6Y2xlYXIpOgorICAgICAgICAqIGRvbS9TdHlsZWRFbGVtZW50LmNwcDoKKyAg
ICAgICAgKFdlYkNvcmU6OlN0eWxlZEVsZW1lbnQ6OnNldElubGluZVN0eWxlRnJvbVN0cmluZyk6
CisgICAgICAgIChXZWJDb3JlOjpTdHlsZWRFbGVtZW50OjpzdHlsZUF0dHJpYnV0ZUNoYW5nZWQp
OgorICAgICAgICAqIGVkaXRpbmcvQWx0ZXJuYXRpdmVUZXh0Q29udHJvbGxlci5jcHA6CisgICAg
ICAgIChXZWJDb3JlOjpBbHRlcm5hdGl2ZVRleHRDb250cm9sbGVyOjpzdGFydEFsdGVybmF0aXZl
VGV4dFVJVGltZXIpOgorICAgICAgICAoV2ViQ29yZTo6QWx0ZXJuYXRpdmVUZXh0Q29udHJvbGxl
cjo6c3RvcEFsdGVybmF0aXZlVGV4dFVJVGltZXIpOgorICAgICAgICAoV2ViQ29yZTo6QWx0ZXJu
YXRpdmVUZXh0Q29udHJvbGxlcjo6YXBwbHlQZW5kaW5nQ29ycmVjdGlvbik6CisgICAgICAgIChX
ZWJDb3JlOjpBbHRlcm5hdGl2ZVRleHRDb250cm9sbGVyOjp0aW1lckZpcmVkKToKKyAgICAgICAg
KFdlYkNvcmU6OkFsdGVybmF0aXZlVGV4dENvbnRyb2xsZXI6OmhhbmRsZUFsdGVybmF0aXZlVGV4
dFVJUmVzdWx0KToKKyAgICAgICAgKiBlZGl0aW5nL0VkaXRpbmdTdHlsZS5jcHA6CisgICAgICAg
IChXZWJDb3JlOjpFZGl0aW5nU3R5bGU6OmNsZWFyKToKKyAgICAgICAgKiBlZGl0aW5nL0VkaXRv
ci5jcHA6CisgICAgICAgIChXZWJDb3JlOjpFZGl0b3I6OmNsZWFyTGFzdEVkaXRDb21tYW5kKToK
KyAgICAgICAgKiBlZGl0aW5nL0ZyYW1lU2VsZWN0aW9uLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6
OkZyYW1lU2VsZWN0aW9uOjpwcmVwYXJlRm9yRGVzdHJ1Y3Rpb24pOgorICAgICAgICAqIGVkaXRp
bmcvRnJhbWVTZWxlY3Rpb24uaDoKKyAgICAgICAgKFdlYkNvcmU6OkZyYW1lU2VsZWN0aW9uOjpj
bGVhclR5cGluZ1N0eWxlKToKKyAgICAgICAgKiBlZGl0aW5nL1NwZWxsQ2hlY2tlci5jcHA6Cisg
ICAgICAgIChXZWJDb3JlOjpTcGVsbENoZWNrZXI6OmRpZENoZWNrKToKKyAgICAgICAgKiBodG1s
L0Jhc2VDaG9vc2VyT25seURhdGVBbmRUaW1lSW5wdXRUeXBlLmNwcDoKKyAgICAgICAgKFdlYkNv
cmU6OkJhc2VDaG9vc2VyT25seURhdGVBbmRUaW1lSW5wdXRUeXBlOjpkaWRFbmRDaG9vc2VyKToK
KyAgICAgICAgKiBodG1sL0ZpbGVJbnB1dFR5cGUuY3BwOgorICAgICAgICAoV2ViQ29yZTo6Rmls
ZUlucHV0VHlwZTo6c2V0VmFsdWUpOgorICAgICAgICAqIGh0bWwvSFRNTENhbnZhc0VsZW1lbnQu
Y3BwOgorICAgICAgICAoV2ViQ29yZTo6SFRNTENhbnZhc0VsZW1lbnQ6OmNsZWFyUHJlc2VudGF0
aW9uQ29weSk6CisgICAgICAgIChXZWJDb3JlOjpIVE1MQ2FudmFzRWxlbWVudDo6Y2xlYXJDb3Bp
ZWRJbWFnZSk6CisgICAgICAgICogaHRtbC9IVE1MUGx1Z0luRWxlbWVudC5jcHA6CisgICAgICAg
IChXZWJDb3JlOjpIVE1MUGx1Z0luRWxlbWVudDo6d2lsbERldGFjaFJlbmRlcmVycyk6CisgICAg
ICAgIChXZWJDb3JlOjpIVE1MUGx1Z0luRWxlbWVudDo6cmVzZXRJbnN0YW5jZSk6CisgICAgICAg
ICogaHRtbC9UZXh0RmllbGRJbnB1dFR5cGUuY3BwOgorICAgICAgICAoV2ViQ29yZTo6VGV4dEZp
ZWxkSW5wdXRUeXBlOjp1cGRhdGVQbGFjZWhvbGRlclRleHQpOgorICAgICAgICAqIGh0bWwvY2Fu
dmFzL1dlYkdMUmVuZGVyaW5nQ29udGV4dEJhc2UuY3BwOgorICAgICAgICAoV2ViQ29yZTo6V2Vi
R0xSZW5kZXJpbmdDb250ZXh0QmFzZTo6ZGVzdHJveUdyYXBoaWNzQ29udGV4dDNEKToKKyAgICAg
ICAgKiBpbnNwZWN0b3IvSW5zcGVjdG9yQXBwbGljYXRpb25DYWNoZUFnZW50LmNwcDoKKyAgICAg
ICAgKFdlYkNvcmU6Okluc3BlY3RvckFwcGxpY2F0aW9uQ2FjaGVBZ2VudDo6d2lsbERlc3Ryb3lG
cm9udGVuZEFuZEJhY2tlbmQpOgorICAgICAgICAqIGluc3BlY3Rvci9JbnNwZWN0b3JDU1NBZ2Vu
dC5jcHA6CisgICAgICAgIChXZWJDb3JlOjpJbnNwZWN0b3JDU1NBZ2VudDo6d2lsbERlc3Ryb3lG
cm9udGVuZEFuZEJhY2tlbmQpOgorICAgICAgICAqIGluc3BlY3Rvci9JbnNwZWN0b3JDb250cm9s
bGVyLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6Okluc3BlY3RvckNvbnRyb2xsZXI6OmRpc2Nvbm5l
Y3RGcm9udGVuZCk6CisgICAgICAgICogaW5zcGVjdG9yL0luc3BlY3RvckRPTUFnZW50LmNwcDoK
KyAgICAgICAgKFdlYkNvcmU6Okluc3BlY3RvckRPTUFnZW50Ojp3aWxsRGVzdHJveUZyb250ZW5k
QW5kQmFja2VuZCk6CisgICAgICAgICogaW5zcGVjdG9yL0luc3BlY3RvckRPTURlYnVnZ2VyQWdl
bnQuY3BwOgorICAgICAgICAoV2ViQ29yZTo6SW5zcGVjdG9yRE9NRGVidWdnZXJBZ2VudDo6d2ls
bERlc3Ryb3lGcm9udGVuZEFuZEJhY2tlbmQpOgorICAgICAgICAqIGluc3BlY3Rvci9JbnNwZWN0
b3JET01TdG9yYWdlQWdlbnQuY3BwOgorICAgICAgICAoV2ViQ29yZTo6SW5zcGVjdG9yRE9NU3Rv
cmFnZUFnZW50Ojp3aWxsRGVzdHJveUZyb250ZW5kQW5kQmFja2VuZCk6CisgICAgICAgICogaW5z
cGVjdG9yL0luc3BlY3RvckRhdGFiYXNlQWdlbnQuY3BwOgorICAgICAgICAoV2ViQ29yZTo6SW5z
cGVjdG9yRGF0YWJhc2VBZ2VudDo6d2lsbERlc3Ryb3lGcm9udGVuZEFuZEJhY2tlbmQpOgorICAg
ICAgICAqIGluc3BlY3Rvci9JbnNwZWN0b3JJbmRleGVkREJBZ2VudC5jcHA6CisgICAgICAgIChX
ZWJDb3JlOjpJbnNwZWN0b3JJbmRleGVkREJBZ2VudDo6d2lsbERlc3Ryb3lGcm9udGVuZEFuZEJh
Y2tlbmQpOgorICAgICAgICAqIGluc3BlY3Rvci9JbnNwZWN0b3JMYXllclRyZWVBZ2VudC5jcHA6
CisgICAgICAgIChXZWJDb3JlOjpJbnNwZWN0b3JMYXllclRyZWVBZ2VudDo6d2lsbERlc3Ryb3lG
cm9udGVuZEFuZEJhY2tlbmQpOgorICAgICAgICAqIGluc3BlY3Rvci9JbnNwZWN0b3JPdmVybGF5
LmNwcDoKKyAgICAgICAgKFdlYkNvcmU6Okluc3BlY3Rvck92ZXJsYXk6OmhpZGVIaWdobGlnaHQp
OgorICAgICAgICAoV2ViQ29yZTo6SW5zcGVjdG9yT3ZlcmxheTo6aGlnaGxpZ2h0Tm9kZUxpc3Qp
OgorICAgICAgICAoV2ViQ29yZTo6SW5zcGVjdG9yT3ZlcmxheTo6aGlnaGxpZ2h0Tm9kZSk6Cisg
ICAgICAgICogaW5zcGVjdG9yL0luc3BlY3RvclBhZ2VBZ2VudC5jcHA6CisgICAgICAgIChXZWJD
b3JlOjpJbnNwZWN0b3JQYWdlQWdlbnQ6OndpbGxEZXN0cm95RnJvbnRlbmRBbmRCYWNrZW5kKToK
KyAgICAgICAgKFdlYkNvcmU6Okluc3BlY3RvclBhZ2VBZ2VudDo6ZGlzYWJsZSk6CisgICAgICAg
ICogaW5zcGVjdG9yL0luc3BlY3RvclJlcGxheUFnZW50LmNwcDoKKyAgICAgICAgKFdlYkNvcmU6
Okluc3BlY3RvclJlcGxheUFnZW50Ojp3aWxsRGVzdHJveUZyb250ZW5kQW5kQmFja2VuZCk6Cisg
ICAgICAgICogaW5zcGVjdG9yL0luc3BlY3RvclJlc291cmNlQWdlbnQuY3BwOgorICAgICAgICAo
V2ViQ29yZTo6SW5zcGVjdG9yUmVzb3VyY2VBZ2VudDo6d2lsbERlc3Ryb3lGcm9udGVuZEFuZEJh
Y2tlbmQpOgorICAgICAgICAqIGluc3BlY3Rvci9JbnNwZWN0b3JTdHlsZVNoZWV0LmNwcDoKKyAg
ICAgICAgKFdlYkNvcmU6Okluc3BlY3RvclN0eWxlU2hlZXRGb3JJbmxpbmVTdHlsZTo6ZGlkTW9k
aWZ5RWxlbWVudEF0dHJpYnV0ZSk6CisgICAgICAgIChXZWJDb3JlOjpJbnNwZWN0b3JTdHlsZVNo
ZWV0Rm9ySW5saW5lU3R5bGU6OnNldFN0eWxlVGV4dCk6CisgICAgICAgIChXZWJDb3JlOjpJbnNw
ZWN0b3JTdHlsZVNoZWV0Rm9ySW5saW5lU3R5bGU6OmVuc3VyZVBhcnNlZERhdGFSZWFkeSk6Cisg
ICAgICAgICogaW5zcGVjdG9yL0luc3BlY3RvclRpbWVsaW5lQWdlbnQuY3BwOgorICAgICAgICAo
V2ViQ29yZTo6SW5zcGVjdG9yVGltZWxpbmVBZ2VudDo6d2lsbERlc3Ryb3lGcm9udGVuZEFuZEJh
Y2tlbmQpOgorICAgICAgICAqIGluc3BlY3Rvci9JbnNwZWN0b3JXb3JrZXJBZ2VudC5jcHA6Cisg
ICAgICAgIChXZWJDb3JlOjpJbnNwZWN0b3JXb3JrZXJBZ2VudDo6d2lsbERlc3Ryb3lGcm9udGVu
ZEFuZEJhY2tlbmQpOgorICAgICAgICAqIGluc3BlY3Rvci9QYWdlUnVudGltZUFnZW50LmNwcDoK
KyAgICAgICAgKFdlYkNvcmU6OlBhZ2VSdW50aW1lQWdlbnQ6OndpbGxEZXN0cm95RnJvbnRlbmRB
bmRCYWNrZW5kKToKKyAgICAgICAgKiBpbnNwZWN0b3IvV2ViSW5qZWN0ZWRTY3JpcHRNYW5hZ2Vy
LmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OldlYkluamVjdGVkU2NyaXB0TWFuYWdlcjo6ZGlzY29u
bmVjdCk6CisgICAgICAgICogaW5zcGVjdG9yL1dvcmtlckluc3BlY3RvckNvbnRyb2xsZXIuY3Bw
OgorICAgICAgICAoV2ViQ29yZTo6V29ya2VySW5zcGVjdG9yQ29udHJvbGxlcjo6ZGlzY29ubmVj
dEZyb250ZW5kKToKKyAgICAgICAgKiBpbnNwZWN0b3IvV29ya2VyUnVudGltZUFnZW50LmNwcDoK
KyAgICAgICAgKFdlYkNvcmU6OldvcmtlclJ1bnRpbWVBZ2VudDo6d2lsbERlc3Ryb3lGcm9udGVu
ZEFuZEJhY2tlbmQpOgorICAgICAgICAqIGxvYWRlci9GcmFtZUxvYWRlci5jcHA6CisgICAgICAg
IChXZWJDb3JlOjpGcmFtZUxvYWRlcjo6ZGlkQmVnaW5Eb2N1bWVudCk6CisgICAgICAgICogbG9h
ZGVyL2NhY2hlL0NhY2hlZENTU1N0eWxlU2hlZXQuY3BwOgorICAgICAgICAoV2ViQ29yZTo6Q2Fj
aGVkQ1NTU3R5bGVTaGVldDo6ZGVzdHJveURlY29kZWREYXRhKToKKyAgICAgICAgKFdlYkNvcmU6
OkNhY2hlZENTU1N0eWxlU2hlZXQ6OnJlc3RvcmVQYXJzZWRTdHlsZVNoZWV0KToKKyAgICAgICAg
KiBsb2FkZXIvY2FjaGUvQ2FjaGVkSW1hZ2UuY3BwOgorICAgICAgICAoV2ViQ29yZTo6Q2FjaGVk
SW1hZ2U6OmNsZWFySW1hZ2UpOgorICAgICAgICAqIGxvYWRlci9jYWNoZS9DYWNoZWRSYXdSZXNv
dXJjZS5jcHA6CisgICAgICAgIChXZWJDb3JlOjpDYWNoZWRSYXdSZXNvdXJjZTo6Y2xlYXIpOgor
ICAgICAgICAqIGxvYWRlci9jYWNoZS9DYWNoZWRSZXNvdXJjZS5jcHA6CisgICAgICAgIChXZWJD
b3JlOjpDYWNoZWRSZXNvdXJjZTo6ZXJyb3IpOgorICAgICAgICAqIGxvYWRlci9pY29uL0ljb25S
ZWNvcmQuY3BwOgorICAgICAgICAoV2ViQ29yZTo6SWNvblJlY29yZDo6c2V0SW1hZ2VEYXRhKToK
KyAgICAgICAgKiBwYWdlL0V2ZW50SGFuZGxlci5jcHA6CisgICAgICAgIChXZWJDb3JlOjpFdmVu
dEhhbmRsZXI6OmNsZWFyKToKKyAgICAgICAgKFdlYkNvcmU6OkV2ZW50SGFuZGxlcjo6aGFuZGxl
VG91Y2hFdmVudCk6CisgICAgICAgICogcGFnZS9QYWdlLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6
OlBhZ2U6OnJlZnJlc2hQbHVnaW5zKToKKyAgICAgICAgKiBwbGF0Zm9ybS9hdWRpby9tYWMvQ0FS
aW5nQnVmZmVyLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OkNBUmluZ0J1ZmZlcjo6ZGVhbGxvY2F0
ZSk6CisgICAgICAgICogcGxhdGZvcm0vZ3JhcGhpY3MvRm9udC5jcHA6CisgICAgICAgIChXZWJD
b3JlOjpGb250OjptYXRoRGF0YSk6CisgICAgICAgICogcGxhdGZvcm0vZ3JhcGhpY3MvRm9udENh
Y2hlLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OkZvbnRDYWNoZTo6Z2V0VmVydGljYWxEYXRhKToK
KyAgICAgICAgKiBwbGF0Zm9ybS9ncmFwaGljcy9HcmFwaGljc0NvbnRleHQuY3BwOgorICAgICAg
ICAoV2ViQ29yZTo6R3JhcGhpY3NDb250ZXh0OjpzZXRTdHJva2VDb2xvcik6CisgICAgICAgIChX
ZWJDb3JlOjpHcmFwaGljc0NvbnRleHQ6OnNldEZpbGxDb2xvcik6CisgICAgICAgIChXZWJDb3Jl
OjpHcmFwaGljc0NvbnRleHQ6OnNldFN0cm9rZVBhdHRlcm4pOgorICAgICAgICAoV2ViQ29yZTo6
R3JhcGhpY3NDb250ZXh0OjpzZXRGaWxsUGF0dGVybik6CisgICAgICAgIChXZWJDb3JlOjpHcmFw
aGljc0NvbnRleHQ6OnNldFN0cm9rZUdyYWRpZW50KToKKyAgICAgICAgKFdlYkNvcmU6OkdyYXBo
aWNzQ29udGV4dDo6c2V0RmlsbEdyYWRpZW50KToKKyAgICAgICAgKiBwbGF0Zm9ybS9ncmFwaGlj
cy9jYWlyby9CYWNraW5nU3RvcmVCYWNrZW5kQ2Fpcm9YMTEuY3BwOgorICAgICAgICAoV2ViQ29y
ZTo6QmFja2luZ1N0b3JlQmFja2VuZENhaXJvWDExOjp+QmFja2luZ1N0b3JlQmFja2VuZENhaXJv
WDExKToKKyAgICAgICAgKiBwbGF0Zm9ybS9ncmFwaGljcy9jYWlyby9CaXRtYXBJbWFnZUNhaXJv
LmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OkZyYW1lRGF0YTo6Y2xlYXIpOgorICAgICAgICAqIHBs
YXRmb3JtL2dyYXBoaWNzL2ZpbHRlcnMvRmlsdGVyRWZmZWN0LmNwcDoKKyAgICAgICAgKFdlYkNv
cmU6OkZpbHRlckVmZmVjdDo6Y2xlYXJSZXN1bHQpOgorICAgICAgICAoV2ViQ29yZTo6RmlsdGVy
RWZmZWN0Ojp0cmFuc2Zvcm1SZXN1bHRDb2xvclNwYWNlKToKKyAgICAgICAgKiBwbGF0Zm9ybS9n
cmFwaGljcy9nc3RyZWFtZXIvSW1hZ2VHU3RyZWFtZXJDYWlyby5jcHA6CisgICAgICAgIChJbWFn
ZUdTdHJlYW1lcjo6fkltYWdlR1N0cmVhbWVyKToKKyAgICAgICAgKiBwbGF0Zm9ybS9ncmFwaGlj
cy90ZXhtYXAvQml0bWFwVGV4dHVyZUdMLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OkJpdG1hcFRl
eHR1cmVHTDo6YXBwbHlGaWx0ZXJzKToKKyAgICAgICAgKiBwbGF0Zm9ybS9ncmFwaGljcy90ZXht
YXAvVGV4dHVyZU1hcHBlckdMLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OlRleHR1cmVNYXBwZXJH
TDo6YmluZERlZmF1bHRTdXJmYWNlKToKKyAgICAgICAgKiBwbGF0Zm9ybS9ncmFwaGljcy90ZXht
YXAvVGV4dHVyZU1hcHBlckxheWVyLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OlRleHR1cmVNYXBw
ZXJMYXllcjo6cGFpbnRXaXRoSW50ZXJtZWRpYXRlU3VyZmFjZSk6CisgICAgICAgICogcGxhdGZv
cm0vZ3JhcGhpY3MvdGV4bWFwL1RleHR1cmVNYXBwZXJUaWxlZEJhY2tpbmdTdG9yZS5jcHA6Cisg
ICAgICAgIChXZWJDb3JlOjpUZXh0dXJlTWFwcGVyVGlsZWRCYWNraW5nU3RvcmU6OnVwZGF0ZUNv
bnRlbnRzRnJvbUltYWdlSWZOZWVkZWQpOgorICAgICAgICAqIHBsYXRmb3JtL2dyYXBoaWNzL3Rl
eG1hcC9jb29yZGluYXRlZC9Db29yZGluYXRlZEdyYXBoaWNzTGF5ZXIuY3BwOgorICAgICAgICAo
V2ViQ29yZTo6Q29vcmRpbmF0ZWRHcmFwaGljc0xheWVyOjpyZWxlYXNlSW1hZ2VCYWNraW5nSWZO
ZWVkZWQpOgorICAgICAgICAqIHBsYXRmb3JtL2dyYXBoaWNzL3RleG1hcC9jb29yZGluYXRlZC9D
b29yZGluYXRlZEltYWdlQmFja2luZy5jcHA6CisgICAgICAgIChXZWJDb3JlOjpDb29yZGluYXRl
ZEltYWdlQmFja2luZzo6cmVsZWFzZVN1cmZhY2VJZk5lZWRlZCk6CisgICAgICAgICogcGxhdGZv
cm0vZ3RrL0dhbWVwYWRzR3RrLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OkdhbWVwYWRzR3RrOjp1
bnJlZ2lzdGVyRGV2aWNlKToKKyAgICAgICAgKiByZW5kZXJpbmcvSW5saW5lRmxvd0JveC5jcHA6
CisgICAgICAgIChXZWJDb3JlOjpJbmxpbmVGbG93Qm94Ojpjb21wdXRlT3ZlcmZsb3cpOgorICAg
ICAgICAqIHJlbmRlcmluZy9SZW5kZXJCb3guY3BwOgorICAgICAgICAoV2ViQ29yZTo6UmVuZGVy
Qm94OjpjbGVhck92ZXJmbG93KToKKyAgICAgICAgKiByZW5kZXJpbmcvUmVuZGVyQm94UmVnaW9u
SW5mby5oOgorICAgICAgICAoV2ViQ29yZTo6UmVuZGVyQm94UmVnaW9uSW5mbzo6Y2xlYXJPdmVy
Zmxvdyk6CisgICAgICAgICogcmVuZGVyaW5nL3N0eWxlL0ZpbGxMYXllci5oOgorICAgICAgICAo
V2ViQ29yZTo6RmlsbExheWVyOjpjbGVhck1hc2tJbWFnZSk6CisgICAgICAgIChXZWJDb3JlOjpG
aWxsTGF5ZXI6OmNsZWFySW1hZ2UpOgorICAgICAgICAqIHN2Zy9TVkdUUmVmRWxlbWVudC5jcHA6
CisgICAgICAgIChXZWJDb3JlOjpTVkdUUmVmVGFyZ2V0RXZlbnRMaXN0ZW5lcjo6ZGV0YWNoKToK
KyAgICAgICAgKiB0ZXN0aW5nL0ludGVybmFscy5jcHA6CisgICAgICAgIChXZWJDb3JlOjpJbnRl
cm5hbHM6OmNsb3NlRHVtbXlJbnNwZWN0b3JGcm9udGVuZCk6CisgICAgICAgICogd29ya2Vycy9X
b3JrZXJFdmVudFF1ZXVlLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OldvcmtlckV2ZW50UXVldWU6
OkV2ZW50RGlzcGF0Y2hlcjo6ZGlzcGF0Y2gpOgorICAgICAgICAoV2ViQ29yZTo6V29ya2VyRXZl
bnRRdWV1ZTo6RXZlbnREaXNwYXRjaGVyOjpjYW5jZWwpOgorICAgICAgICAqIHhtbC9YTUxIdHRw
UmVxdWVzdC5jcHA6CisgICAgICAgIChXZWJDb3JlOjpYTUxIdHRwUmVxdWVzdDo6cmVzcG9uc2VC
bG9iKToKKyAgICAgICAgKFdlYkNvcmU6OlhNTEh0dHBSZXF1ZXN0OjpyZXNwb25zZUFycmF5QnVm
ZmVyKToKKyAgICAgICAgKFdlYkNvcmU6OlhNTEh0dHBSZXF1ZXN0OjpjbGVhclJlc3BvbnNlQnVm
ZmVycyk6CisgICAgICAgICogeG1sL1hTTFRQcm9jZXNzb3IuY3BwOgorICAgICAgICAoV2ViQ29y
ZTo6WFNMVFByb2Nlc3Nvcjo6cmVzZXQpOgorCiAyMDE1LTA3LTAzICBEYW4gQmVybnN0ZWluICA8
bWl0ekBhcHBsZS5jb20+CiAKICAgICAgICAgVHJpZWQgdG8gZml4IHRoZSBpT1MgYnVpbGQuCmRp
ZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L0NoYW5nZUxvZyBiL1NvdXJjZS9XZWJLaXQvQ2hhbmdl
TG9nCmluZGV4IDczYWQ1MDA2MTlmNWZkMDliZDU1MTFjZTRmZTUzMjIyMTlkMmMyMmYuLjg2ODY4
MjE3Mjc1MDE5MmM2ZmZkNDMyNmMwOTg2ZTFkOGI5ODMzNGMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9X
ZWJLaXQvQ2hhbmdlTG9nCisrKyBiL1NvdXJjZS9XZWJLaXQvQ2hhbmdlTG9nCkBAIC0xLDMgKzEs
MTIgQEAKKzIwMTUtMDctMDMgIENocmlzIER1bWV6ICA8Y2R1bWV6QGFwcGxlLmNvbT4KKworICAg
ICAgICBEcm9wIFJlZlB0cjo6Y2xlYXIoKSBtZXRob2QKKyAgICAgICAgaHR0cHM6Ly9idWdzLndl
YmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTE0NjU1NgorCisgICAgICAgIFJldmlld2VkIGJ5IE5P
Qk9EWSAoT09QUyEpLgorCisgICAgICAgIERyb3AgUmVmUHRyOjpjbGVhcigpIG1ldGhvZCBpbiBm
YXZvciBvZiAiPSBudWxscHRyOyIgcGF0dGVybi4KKwogMjAxNS0wNy0wMyAgRGFuIEJlcm5zdGVp
biAgPG1pdHpAYXBwbGUuY29tPgogCiAgICAgICAgIFtYY29kZV0gVXBkYXRlIHNvbWUgYnVpbGQg
c2V0dGluZ3MgYXMgcmVjb21tZW5kZWQgYnkgWGNvZGUgNwpkaWZmIC0tZ2l0IGEvU291cmNlL1dl
YktpdC9tYWMvQ2hhbmdlTG9nIGIvU291cmNlL1dlYktpdC9tYWMvQ2hhbmdlTG9nCmluZGV4IGIx
YzA4YzQ3MmE2OTA1YzZiYzhlMmI5MTkzZmRiNTRkOGY5OGE0NDcuLmI5MTg0YzVjZWM4MGY4NWEx
MmFlMWI2YTYwODI1ZTc4YTQ0MmNkYWIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvbWFjL0No
YW5nZUxvZworKysgYi9Tb3VyY2UvV2ViS2l0L21hYy9DaGFuZ2VMb2cKQEAgLTEsMyArMSwxMiBA
QAorMjAxNS0wNy0wMyAgQ2hyaXMgRHVtZXogIDxjZHVtZXpAYXBwbGUuY29tPgorCisgICAgICAg
IERyb3AgUmVmUHRyOjpjbGVhcigpIG1ldGhvZAorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0
Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTQ2NTU2CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZ
IChPT1BTISkuCisKKyAgICAgICAgRHJvcCBSZWZQdHI6OmNsZWFyKCkgbWV0aG9kIGluIGZhdm9y
IG9mICI9IG51bGxwdHI7IiBwYXR0ZXJuLgorCiAyMDE1LTA3LTAzICBEYW4gQmVybnN0ZWluICA8
bWl0ekBhcHBsZS5jb20+CiAKICAgICAgICAgW1hjb2RlXSBVcGRhdGUgc29tZSBidWlsZCBzZXR0
aW5ncyBhcyByZWNvbW1lbmRlZCBieSBYY29kZSA3CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0
L3dpbi9DaGFuZ2VMb2cgYi9Tb3VyY2UvV2ViS2l0L3dpbi9DaGFuZ2VMb2cKaW5kZXggMTE0Mjg1
OGFjOTRiNTY2YzRiMGZjMzliYjg1Y2Q0ZWIwN2Q5OWVmZC4uNTYyYTEyYmY0NTgyMTEyN2E2YjE4
OWI0ZGU1YzY2M2Y2NmI3ZjllNiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC93aW4vQ2hhbmdl
TG9nCisrKyBiL1NvdXJjZS9XZWJLaXQvd2luL0NoYW5nZUxvZwpAQCAtMSwzICsxLDEyIEBACisy
MDE1LTA3LTAzICBDaHJpcyBEdW1leiAgPGNkdW1lekBhcHBsZS5jb20+CisKKyAgICAgICAgRHJv
cCBSZWZQdHI6OmNsZWFyKCkgbWV0aG9kCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3Jn
L3Nob3dfYnVnLmNnaT9pZD0xNDY1NTYKKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9P
UFMhKS4KKworICAgICAgICBEcm9wIFJlZlB0cjo6Y2xlYXIoKSBtZXRob2QgaW4gZmF2b3Igb2Yg
Ij0gbnVsbHB0cjsiIHBhdHRlcm4uCisKIDIwMTUtMDYtMzAgIFNpbW9uIEZyYXNlciAgPHNpbW9u
LmZyYXNlckBhcHBsZS5jb20+CiAKICAgICAgICAgRml4IE1hYyBhbmQgV2luZG93cyBidWlsZHMu
CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9DaGFuZ2VMb2cgYi9Tb3VyY2UvV2ViS2l0Mi9D
aGFuZ2VMb2cKaW5kZXggODE3MGFjODI1ZTEyY2Y0NTM3MjA3MzMxOTE2ZWU3Zjc1ZTRiNjljMi4u
OTMyYzRiNzI4N2VlOGZlMGEwNzYwZmQwZmE0NzdjOTY4OTEwOGEyYiAxMDA2NDQKLS0tIGEvU291
cmNlL1dlYktpdDIvQ2hhbmdlTG9nCisrKyBiL1NvdXJjZS9XZWJLaXQyL0NoYW5nZUxvZwpAQCAt
MSwzICsxLDEyIEBACisyMDE1LTA3LTAzICBDaHJpcyBEdW1leiAgPGNkdW1lekBhcHBsZS5jb20+
CisKKyAgICAgICAgRHJvcCBSZWZQdHI6OmNsZWFyKCkgbWV0aG9kCisgICAgICAgIGh0dHBzOi8v
YnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0xNDY1NTYKKworICAgICAgICBSZXZpZXdl
ZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICBEcm9wIFJlZlB0cjo6Y2xlYXIoKSBtZXRo
b2QgaW4gZmF2b3Igb2YgIj0gbnVsbHB0cjsiIHBhdHRlcm4uICAgICAgICAKKwogMjAxNS0wNy0w
MyAgRGFuIEJlcm5zdGVpbiAgPG1pdHpAYXBwbGUuY29tPgogCiAgICAgICAgIFtYY29kZV0gVXBk
YXRlIHNvbWUgYnVpbGQgc2V0dGluZ3MgYXMgcmVjb21tZW5kZWQgYnkgWGNvZGUgNwpkaWZmIC0t
Z2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL0FQSS9KU1ZhbHVlUmVmLmNwcCBiL1NvdXJjZS9K
YXZhU2NyaXB0Q29yZS9BUEkvSlNWYWx1ZVJlZi5jcHAKaW5kZXggNzU5YTY1YTljN2RlM2M1NjYx
OWFiNDc0NTQ4MzQ4Njg4ZGNjNDdjMS4uNTQ0MDVlMmFmNTk3YzI0ODIzNmRlZjc2OWU4YmJjNjAy
ODk3OWQyNiAxMDA2NDQKLS0tIGEvU291cmNlL0phdmFTY3JpcHRDb3JlL0FQSS9KU1ZhbHVlUmVm
LmNwcAorKysgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvQVBJL0pTVmFsdWVSZWYuY3BwCkBAIC00
MjIsNyArNDIyLDcgQEAgSlNTdHJpbmdSZWYgSlNWYWx1ZVRvU3RyaW5nQ29weShKU0NvbnRleHRS
ZWYgY3R4LCBKU1ZhbHVlUmVmIHZhbHVlLCBKU1ZhbHVlUmVmKgogICAgIAogICAgIFJlZlB0cjxP
cGFxdWVKU1N0cmluZz4gc3RyaW5nUmVmKE9wYXF1ZUpTU3RyaW5nOjpjcmVhdGUoanNWYWx1ZS50
b1N0cmluZyhleGVjKS0+dmFsdWUoZXhlYykpKTsKICAgICBpZiAoaGFuZGxlRXhjZXB0aW9uSWZO
ZWVkZWQoZXhlYywgZXhjZXB0aW9uKSA9PSBFeGNlcHRpb25TdGF0dXM6OkRpZFRocm93KQotICAg
ICAgICBzdHJpbmdSZWYuY2xlYXIoKTsKKyAgICAgICAgc3RyaW5nUmVmID0gbnVsbHB0cjsKICAg
ICByZXR1cm4gc3RyaW5nUmVmLnJlbGVhc2UoKS5sZWFrUmVmKCk7CiB9CiAKZGlmZiAtLWdpdCBh
L1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ieXRlY29kZS9DYWxsTGlua0luZm8uY3BwIGIvU291cmNl
L0phdmFTY3JpcHRDb3JlL2J5dGVjb2RlL0NhbGxMaW5rSW5mby5jcHAKaW5kZXggNzJhMGMyNDFk
ZmNjZDE2NWQ5MDMwZDVmYTg0ZWZiNjhmODFmNGIzOC4uZDkyMDA5ODc0YTkzODU3NzcyYzQzNjZm
NGQwMDliNTQ2YTMzYjlhYyAxMDA2NDQKLS0tIGEvU291cmNlL0phdmFTY3JpcHRDb3JlL2J5dGVj
b2RlL0NhbGxMaW5rSW5mby5jcHAKKysrIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL2J5dGVjb2Rl
L0NhbGxMaW5rSW5mby5jcHAKQEAgLTQzLDcgKzQzLDcgQEAgdm9pZCBDYWxsTGlua0luZm86OmNs
ZWFyU3R1YigpCiAgICAgICAgIHJldHVybjsKIAogICAgIG1fc3R1Yi0+Y2xlYXJDYWxsTm9kZXNG
b3IodGhpcyk7Ci0gICAgbV9zdHViLmNsZWFyKCk7CisgICAgbV9zdHViID0gbnVsbHB0cjsKIH0K
IAogdm9pZCBDYWxsTGlua0luZm86OnVubGluayhSZXBhdGNoQnVmZmVyJiByZXBhdGNoQnVmZmVy
KQpkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL2J5dGVjb2RlL1N0cnVjdHVyZVN0
dWJJbmZvLmggYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvYnl0ZWNvZGUvU3RydWN0dXJlU3R1Yklu
Zm8uaAppbmRleCBlYzhiNzljMWYyODUyNWJiNDg0OTVkZDFiZWM2ZjE5ZjE2MjU3NGVmLi5kNDAy
YWNlZTU3OTNiYjRmNzg2Njk1MTcxNjQxNDhlOGE3YTI3MWM4IDEwMDY0NAotLS0gYS9Tb3VyY2Uv
SmF2YVNjcmlwdENvcmUvYnl0ZWNvZGUvU3RydWN0dXJlU3R1YkluZm8uaAorKysgYi9Tb3VyY2Uv
SmF2YVNjcmlwdENvcmUvYnl0ZWNvZGUvU3RydWN0dXJlU3R1YkluZm8uaApAQCAtMTQ5LDggKzE0
OSw4IEBAIHN0cnVjdCBTdHJ1Y3R1cmVTdHViSW5mbyB7CiAgICAgewogICAgICAgICBkZXJlZigp
OwogICAgICAgICBhY2Nlc3NUeXBlID0gYWNjZXNzX3Vuc2V0OwotICAgICAgICBzdHViUm91dGlu
ZS5jbGVhcigpOwotICAgICAgICB3YXRjaHBvaW50cy5jbGVhcigpOworICAgICAgICBzdHViUm91
dGluZSA9IG51bGxwdHI7CisgICAgICAgIHdhdGNocG9pbnRzID0gbnVsbHB0cjsKICAgICB9CiAK
ICAgICB2b2lkIGRlcmVmKCk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvZGVi
dWdnZXIvRGVidWdnZXIuY3BwIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL2RlYnVnZ2VyL0RlYnVn
Z2VyLmNwcAppbmRleCA1NzQxMDY5MmUwMDgwMDc3OTc4YjM3ZWIxNjc3MDMyMzM1YzRiNGMyLi5i
YzFiNTdlNTkzYTc5OTMwNzEyODkyZGU2NTA5MzEwNmEzYWE0N2QxIDEwMDY0NAotLS0gYS9Tb3Vy
Y2UvSmF2YVNjcmlwdENvcmUvZGVidWdnZXIvRGVidWdnZXIuY3BwCisrKyBiL1NvdXJjZS9KYXZh
U2NyaXB0Q29yZS9kZWJ1Z2dlci9EZWJ1Z2dlci5jcHAKQEAgLTExNyw3ICsxMTcsNyBAQCBwdWJs
aWM6CiAgICAgewogICAgICAgICBpZiAobV9kZWJ1Z2dlci5tX2N1cnJlbnREZWJ1Z2dlckNhbGxG
cmFtZSkgewogICAgICAgICAgICAgbV9kZWJ1Z2dlci5tX2N1cnJlbnREZWJ1Z2dlckNhbGxGcmFt
ZS0+aW52YWxpZGF0ZSgpOwotICAgICAgICAgICAgbV9kZWJ1Z2dlci5tX2N1cnJlbnREZWJ1Z2dl
ckNhbGxGcmFtZSA9IDA7CisgICAgICAgICAgICBtX2RlYnVnZ2VyLm1fY3VycmVudERlYnVnZ2Vy
Q2FsbEZyYW1lID0gbnVsbHB0cjsKICAgICAgICAgfQogICAgIH0KIApkaWZmIC0tZ2l0IGEvU291
cmNlL0phdmFTY3JpcHRDb3JlL2RmZy9ERkdHcmFwaC5oIGIvU291cmNlL0phdmFTY3JpcHRDb3Jl
L2RmZy9ERkdHcmFwaC5oCmluZGV4IDJjZTdkNjBiMmEyZjhhZjdhMzM1YzU2NTEwNjk4ZDk5ZTY3
Mjg0MWIuLjUxNDhjMjZkOGUzN2U3NzMyNDRlOGQ5YjI0NDM1YjIzYWEzMDJlMjQgMTAwNjQ0Ci0t
LSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9kZmcvREZHR3JhcGguaAorKysgYi9Tb3VyY2UvSmF2
YVNjcmlwdENvcmUvZGZnL0RGR0dyYXBoLmgKQEAgLTQ0NCw3ICs0NDQsNyBAQCBwdWJsaWM6CiAg
ICAgCiAgICAgdm9pZCBraWxsQmxvY2soQmxvY2tJbmRleCBibG9ja0luZGV4KQogICAgIHsKLSAg
ICAgICAgbV9ibG9ja3NbYmxvY2tJbmRleF0uY2xlYXIoKTsKKyAgICAgICAgbV9ibG9ja3NbYmxv
Y2tJbmRleF0gPSBudWxscHRyOwogICAgIH0KICAgICAKICAgICB2b2lkIGtpbGxCbG9jayhCYXNp
Y0Jsb2NrKiBiYXNpY0Jsb2NrKQpkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL2Rm
Zy9ERkdPcGVyYXRpb25zLmNwcCBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9kZmcvREZHT3BlcmF0
aW9ucy5jcHAKaW5kZXggYTk5YTNmYTEwMjAxOGNiZTg0ZTRkMTM3NDUwZDcyNTBkNDg3ZWUwOC4u
NmY5NTEyYmE1MzRjNDkwZDRiZjk5OGFmNWQwODI0NDEyZGJiOTE0ZSAxMDA2NDQKLS0tIGEvU291
cmNlL0phdmFTY3JpcHRDb3JlL2RmZy9ERkdPcGVyYXRpb25zLmNwcAorKysgYi9Tb3VyY2UvSmF2
YVNjcmlwdENvcmUvZGZnL0RGR09wZXJhdGlvbnMuY3BwCkBAIC0xNDQ3LDcgKzE0NDcsNyBAQCBj
aGFyKiBKSVRfT1BFUkFUSU9OIHRyaWdnZXJPU1JFbnRyeU5vdygKICAgICAgICAgCiAgICAgICAg
IC8vIE9TUiBlbnRyeSBmYWlsZWQuIE9oIG5vISBUaGlzIGltcGxpZXMgdGhhdCB3ZSBuZWVkIHRv
IHJldHJ5LiBXZSByZXRyeQogICAgICAgICAvLyB3aXRob3V0IGV4cG9uZW50aWFsIGJhY2tvZmYg
YW5kIHdlIG9ubHkgZG8gdGhpcyBmb3IgdGhlIGVudHJ5IGNvZGUgYmxvY2suCi0gICAgICAgIGpp
dENvZGUtPm9zckVudHJ5QmxvY2suY2xlYXIoKTsKKyAgICAgICAgaml0Q29kZS0+b3NyRW50cnlC
bG9jayA9IG51bGxwdHI7CiAgICAgICAgIGppdENvZGUtPm9zckVudHJ5UmV0cnkgPSAwOwogICAg
ICAgICByZXR1cm4gMDsKICAgICB9CmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUv
aW5zcGVjdG9yL0NvbnNvbGVNZXNzYWdlLmNwcCBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9pbnNw
ZWN0b3IvQ29uc29sZU1lc3NhZ2UuY3BwCmluZGV4IGEwNGE5N2RjM2I0NTE0ODU2Nzc2NGY0ZDI4
ZDBmM2IyYzM4ZDFlMDYuLjlhYzBkZGVlMmRjOTBiYWY4MThmYWUzYTJkNDE2ZGQ1OGFhOTE0NDUg
MTAwNjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9pbnNwZWN0b3IvQ29uc29sZU1lc3Nh
Z2UuY3BwCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9pbnNwZWN0b3IvQ29uc29sZU1lc3Nh
Z2UuY3BwCkBAIC0yNzMsNyArMjczLDcgQEAgdm9pZCBDb25zb2xlTWVzc2FnZTo6Y2xlYXIoKQog
ICAgICAgICBtX21lc3NhZ2UgPSBBU0NJSUxpdGVyYWwoIjxtZXNzYWdlIGNvbGxlY3RlZD4iKTsK
IAogICAgIGlmIChtX2FyZ3VtZW50cykKLSAgICAgICAgbV9hcmd1bWVudHMuY2xlYXIoKTsKKyAg
ICAgICAgbV9hcmd1bWVudHMgPSBudWxscHRyOwogfQogCiBKU0M6OkV4ZWNTdGF0ZSogQ29uc29s
ZU1lc3NhZ2U6OnNjcmlwdFN0YXRlKCkgY29uc3QKZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2Ny
aXB0Q29yZS9pbnNwZWN0b3IvSlNHbG9iYWxPYmplY3RJbnNwZWN0b3JDb250cm9sbGVyLmNwcCBi
L1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9pbnNwZWN0b3IvSlNHbG9iYWxPYmplY3RJbnNwZWN0b3JD
b250cm9sbGVyLmNwcAppbmRleCA1N2Y1MmM1NTU0N2E2Mzg4NzljODJmNDBiNjhlYzNkMjJiMzJh
MDM5Li4xMWQ4NmVkMzI5NzUwMzE3MzcxNmE4NWQ5MzU4MDhmYzY3N2I1ZDQ4IDEwMDY0NAotLS0g
YS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvaW5zcGVjdG9yL0pTR2xvYmFsT2JqZWN0SW5zcGVjdG9y
Q29udHJvbGxlci5jcHAKKysrIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL2luc3BlY3Rvci9KU0ds
b2JhbE9iamVjdEluc3BlY3RvckNvbnRyb2xsZXIuY3BwCkBAIC0xMzEsNyArMTMxLDcgQEAgdm9p
ZCBKU0dsb2JhbE9iamVjdEluc3BlY3RvckNvbnRyb2xsZXI6OmRpc2Nvbm5lY3RGcm9udGVuZChE
aXNjb25uZWN0UmVhc29uIHJlYXMKICAgICBtX2FnZW50cy53aWxsRGVzdHJveUZyb250ZW5kQW5k
QmFja2VuZChyZWFzb24pOwogCiAgICAgbV9iYWNrZW5kRGlzcGF0Y2hlci0+Y2xlYXJGcm9udGVu
ZCgpOwotICAgIG1fYmFja2VuZERpc3BhdGNoZXIuY2xlYXIoKTsKKyAgICBtX2JhY2tlbmREaXNw
YXRjaGVyID0gbnVsbHB0cjsKICAgICBtX2Zyb250ZW5kQ2hhbm5lbCA9IG51bGxwdHI7CiAKICAg
ICBtX2lzQXV0b21hdGljSW5zcGVjdGlvbiA9IGZhbHNlOwpkaWZmIC0tZ2l0IGEvU291cmNlL0ph
dmFTY3JpcHRDb3JlL2luc3BlY3Rvci9hZ2VudHMvSW5zcGVjdG9yQWdlbnQuY3BwIGIvU291cmNl
L0phdmFTY3JpcHRDb3JlL2luc3BlY3Rvci9hZ2VudHMvSW5zcGVjdG9yQWdlbnQuY3BwCmluZGV4
IGJmMjQxYmE3NzgyZDljMDljYTZkYWQzNjA5MmI4MjFhNzJhODM4YWEuLjA1Mzg2OTAxZTYxZTdm
YmNkZWNlMGJjMTUyOTBkOWY1YmFjZTAxODggMTAwNjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0
Q29yZS9pbnNwZWN0b3IvYWdlbnRzL0luc3BlY3RvckFnZW50LmNwcAorKysgYi9Tb3VyY2UvSmF2
YVNjcmlwdENvcmUvaW5zcGVjdG9yL2FnZW50cy9JbnNwZWN0b3JBZ2VudC5jcHAKQEAgLTU3LDcg
KzU3LDcgQEAgdm9pZCBJbnNwZWN0b3JBZ2VudDo6ZGlkQ3JlYXRlRnJvbnRlbmRBbmRCYWNrZW5k
KEZyb250ZW5kQ2hhbm5lbCogZnJvbnRlbmRDaGFubmUKIHZvaWQgSW5zcGVjdG9yQWdlbnQ6Ondp
bGxEZXN0cm95RnJvbnRlbmRBbmRCYWNrZW5kKERpc2Nvbm5lY3RSZWFzb24pCiB7CiAgICAgbV9m
cm9udGVuZERpc3BhdGNoZXIgPSBudWxscHRyOwotICAgIG1fYmFja2VuZERpc3BhdGNoZXIuY2xl
YXIoKTsKKyAgICBtX2JhY2tlbmREaXNwYXRjaGVyID0gbnVsbHB0cjsKIAogICAgIG1fcGVuZGlu
Z0V2YWx1YXRlVGVzdENvbW1hbmRzLmNsZWFyKCk7CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZh
U2NyaXB0Q29yZS9pbnNwZWN0b3IvYWdlbnRzL0luc3BlY3RvckNvbnNvbGVBZ2VudC5jcHAgYi9T
b3VyY2UvSmF2YVNjcmlwdENvcmUvaW5zcGVjdG9yL2FnZW50cy9JbnNwZWN0b3JDb25zb2xlQWdl
bnQuY3BwCmluZGV4IDgxNGEwYzExY2Y2MDhlYzY5ODk5Y2ViZjFiYWMxNGVhYmMxOWJhZDYuLjlm
ZmQwNDg0ZjI4MDYyYzI5YmNhZGI0YjliOWQzNzBiMWY3MTEzN2YgMTAwNjQ0Ci0tLSBhL1NvdXJj
ZS9KYXZhU2NyaXB0Q29yZS9pbnNwZWN0b3IvYWdlbnRzL0luc3BlY3RvckNvbnNvbGVBZ2VudC5j
cHAKKysrIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL2luc3BlY3Rvci9hZ2VudHMvSW5zcGVjdG9y
Q29uc29sZUFnZW50LmNwcApAQCAtNjQsNyArNjQsNyBAQCB2b2lkIEluc3BlY3RvckNvbnNvbGVB
Z2VudDo6ZGlkQ3JlYXRlRnJvbnRlbmRBbmRCYWNrZW5kKEZyb250ZW5kQ2hhbm5lbCogZnJvbnRl
bgogdm9pZCBJbnNwZWN0b3JDb25zb2xlQWdlbnQ6OndpbGxEZXN0cm95RnJvbnRlbmRBbmRCYWNr
ZW5kKERpc2Nvbm5lY3RSZWFzb24pCiB7CiAgICAgbV9mcm9udGVuZERpc3BhdGNoZXIgPSBudWxs
cHRyOwotICAgIG1fYmFja2VuZERpc3BhdGNoZXIuY2xlYXIoKTsKKyAgICBtX2JhY2tlbmREaXNw
YXRjaGVyID0gbnVsbHB0cjsKIAogICAgIFN0cmluZyBlcnJvclN0cmluZzsKICAgICBkaXNhYmxl
KGVycm9yU3RyaW5nKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9pbnNwZWN0
b3IvYWdlbnRzL0luc3BlY3RvckRlYnVnZ2VyQWdlbnQuY3BwIGIvU291cmNlL0phdmFTY3JpcHRD
b3JlL2luc3BlY3Rvci9hZ2VudHMvSW5zcGVjdG9yRGVidWdnZXJBZ2VudC5jcHAKaW5kZXggYTc1
ZTBiMmI2ZWM3ZThjOWRkZDY3N2ZmOTQ4NWM5ZThmZTlkYmU0ZC4uZjBmMGI0OGRkNGQ0N2NkZTNh
MGYyYTg4MjJjNDYzMjVkZTVhYWI0ZiAxMDA2NDQKLS0tIGEvU291cmNlL0phdmFTY3JpcHRDb3Jl
L2luc3BlY3Rvci9hZ2VudHMvSW5zcGVjdG9yRGVidWdnZXJBZ2VudC5jcHAKKysrIGIvU291cmNl
L0phdmFTY3JpcHRDb3JlL2luc3BlY3Rvci9hZ2VudHMvSW5zcGVjdG9yRGVidWdnZXJBZ2VudC5j
cHAKQEAgLTc3LDcgKzc3LDcgQEAgdm9pZCBJbnNwZWN0b3JEZWJ1Z2dlckFnZW50OjpkaWRDcmVh
dGVGcm9udGVuZEFuZEJhY2tlbmQoRnJvbnRlbmRDaGFubmVsKiBmcm9udGUKIHZvaWQgSW5zcGVj
dG9yRGVidWdnZXJBZ2VudDo6d2lsbERlc3Ryb3lGcm9udGVuZEFuZEJhY2tlbmQoRGlzY29ubmVj
dFJlYXNvbiByZWFzb24pCiB7CiAgICAgbV9mcm9udGVuZERpc3BhdGNoZXIgPSBudWxscHRyOwot
ICAgIG1fYmFja2VuZERpc3BhdGNoZXIuY2xlYXIoKTsKKyAgICBtX2JhY2tlbmREaXNwYXRjaGVy
ID0gbnVsbHB0cjsKIAogICAgIGJvb2wgc2tpcFJlY29tcGlsZSA9IHJlYXNvbiA9PSBEaXNjb25u
ZWN0UmVhc29uOjpJbnNwZWN0ZWRUYXJnZXREZXN0cm95ZWQ7CiAgICAgZGlzYWJsZShza2lwUmVj
b21waWxlKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9pbnNwZWN0b3IvYWdl
bnRzL0pTR2xvYmFsT2JqZWN0UnVudGltZUFnZW50LmNwcCBiL1NvdXJjZS9KYXZhU2NyaXB0Q29y
ZS9pbnNwZWN0b3IvYWdlbnRzL0pTR2xvYmFsT2JqZWN0UnVudGltZUFnZW50LmNwcAppbmRleCA2
NThjNjdhYjE1Zjg5NTIwNWM1NWJiNTI4OWMwYjlkMmU0ZTQwYzYwLi40NjA0OWY1NmM3NWFkNzM5
OGYzYzlkMDc1ODQ2Y2U3YTFjMTI4MjY4IDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENv
cmUvaW5zcGVjdG9yL2FnZW50cy9KU0dsb2JhbE9iamVjdFJ1bnRpbWVBZ2VudC5jcHAKKysrIGIv
U291cmNlL0phdmFTY3JpcHRDb3JlL2luc3BlY3Rvci9hZ2VudHMvSlNHbG9iYWxPYmplY3RSdW50
aW1lQWdlbnQuY3BwCkBAIC00OSw3ICs0OSw3IEBAIHZvaWQgSlNHbG9iYWxPYmplY3RSdW50aW1l
QWdlbnQ6OmRpZENyZWF0ZUZyb250ZW5kQW5kQmFja2VuZChGcm9udGVuZENoYW5uZWwqIGZyCiB2
b2lkIEpTR2xvYmFsT2JqZWN0UnVudGltZUFnZW50Ojp3aWxsRGVzdHJveUZyb250ZW5kQW5kQmFj
a2VuZChEaXNjb25uZWN0UmVhc29uIHJlYXNvbikKIHsKICAgICBtX2Zyb250ZW5kRGlzcGF0Y2hl
ciA9IG51bGxwdHI7Ci0gICAgbV9iYWNrZW5kRGlzcGF0Y2hlci5jbGVhcigpOworICAgIG1fYmFj
a2VuZERpc3BhdGNoZXIgPSBudWxscHRyOwogCiAgICAgSW5zcGVjdG9yUnVudGltZUFnZW50Ojp3
aWxsRGVzdHJveUZyb250ZW5kQW5kQmFja2VuZChyZWFzb24pOwogfQpkaWZmIC0tZ2l0IGEvU291
cmNlL0phdmFTY3JpcHRDb3JlL3BhcnNlci9QYXJzZXIuY3BwIGIvU291cmNlL0phdmFTY3JpcHRD
b3JlL3BhcnNlci9QYXJzZXIuY3BwCmluZGV4IGRjMGY1NWYxMzJmYTBlMThmODQ3YTg1NGM4Y2Zm
NTZiMGE2MDk0OWYuLmEzYzVlMzEyMThiMDM5MmVlNzYxNmZlZDYxZDlkMzk1MmI0YTQ4ZTYgMTAw
NjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9wYXJzZXIvUGFyc2VyLmNwcAorKysgYi9T
b3VyY2UvSmF2YVNjcmlwdENvcmUvcGFyc2VyL1BhcnNlci5jcHAKQEAgLTQ5MSw3ICs0OTEsNyBA
QCB0ZW1wbGF0ZSA8Y2xhc3MgVHJlZUJ1aWxkZXI+IFRyZWVFeHByZXNzaW9uIFBhcnNlcjxMZXhl
clR5cGU+OjpwYXJzZVZhckRlY2xhcmF0aQogICAgIEpTVG9rZW4gbGFzdElkZW50VG9rZW47IAog
ICAgIGRvIHsKICAgICAgICAgbGFzdElkZW50ID0gMDsKLSAgICAgICAgbGFzdFBhdHRlcm4gPSAw
OworICAgICAgICBsYXN0UGF0dGVybiA9IFRyZWVEZXN0cnVjdHVyaW5nUGF0dGVybigwKTsKICAg
ICAgICAgSlNUb2tlbkxvY2F0aW9uIGxvY2F0aW9uKHRva2VuTG9jYXRpb24oKSk7CiAgICAgICAg
IG5leHQoKTsKICAgICAgICAgVHJlZUV4cHJlc3Npb24gbm9kZSA9IDA7CkBAIC04OTQsNyArODk0
LDcgQEAgdGVtcGxhdGUgPGNsYXNzIFRyZWVCdWlsZGVyPiBUcmVlU3RhdGVtZW50IFBhcnNlcjxM
ZXhlclR5cGU+OjpwYXJzZUZvclN0YXRlbWVudCgKICAgICAgICAgICAgIGRlY2xzRW5kID0gbGFz
dFRva2VuRW5kUG9zaXRpb24oKTsKICAgICAgICAgICAgIGlmIChwYXR0ZXJuICYmIChtYXRjaChJ
TlRPS0VOKSB8fCAobWF0Y2goSURFTlQpICYmICptX3Rva2VuLm1fZGF0YS5pZGVudCA9PSBtX3Zt
LT5wcm9wZXJ0eU5hbWVzLT5vZikpKQogICAgICAgICAgICAgICAgIGdvdG8gZW51bWVyYXRpb25M
b29wOwotICAgICAgICAgICAgcGF0dGVybiA9IDA7CisgICAgICAgICAgICBwYXR0ZXJuID0gVHJl
ZURlc3RydWN0dXJpbmdQYXR0ZXJuKDApOwogICAgICAgICAgICAgcmVzdG9yZVNhdmVQb2ludChz
YXZlUG9pbnQpOwogICAgICAgICB9CiAgICAgICAgIG1fYWxsb3dzSW4gPSBmYWxzZTsKZGlmZiAt
LWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0V4ZWN1dGFibGUuY3BwIGIvU291
cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvRXhlY3V0YWJsZS5jcHAKaW5kZXggNmNiMDliMDFi
MzgyNWI4NDU2ZTk1YzFhYmM5ZGZmMmI4MDZlNDExOC4uNTUyNDBmZDkxZjdiYzc4NDJmMTNlNTky
ODFkMTBkMjFkODZjNGY1MCAxMDA2NDQKLS0tIGEvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRp
bWUvRXhlY3V0YWJsZS5jcHAKKysrIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvRXhl
Y3V0YWJsZS5jcHAKQEAgLTUyLDggKzUyLDggQEAgdm9pZCBFeGVjdXRhYmxlQmFzZTo6ZGVzdHJv
eShKU0NlbGwqIGNlbGwpCiB2b2lkIEV4ZWN1dGFibGVCYXNlOjpjbGVhckNvZGUoKQogewogI2lm
IEVOQUJMRShKSVQpCi0gICAgbV9qaXRDb2RlRm9yQ2FsbC5jbGVhcigpOwotICAgIG1faml0Q29k
ZUZvckNvbnN0cnVjdC5jbGVhcigpOworICAgIG1faml0Q29kZUZvckNhbGwgPSBudWxscHRyOwor
ICAgIG1faml0Q29kZUZvckNvbnN0cnVjdCA9IG51bGxwdHI7CiAgICAgbV9qaXRDb2RlRm9yQ2Fs
bFdpdGhBcml0eUNoZWNrID0gTWFjcm9Bc3NlbWJsZXJDb2RlUHRyKCk7CiAgICAgbV9qaXRDb2Rl
Rm9yQ29uc3RydWN0V2l0aEFyaXR5Q2hlY2sgPSBNYWNyb0Fzc2VtYmxlckNvZGVQdHIoKTsKICAg
ICBtX2ppdENvZGVGb3JDYWxsV2l0aEFyaXR5Q2hlY2tBbmRQcmVzZXJ2ZVJlZ3MgPSBNYWNyb0Fz
c2VtYmxlckNvZGVQdHIoKTsKQEAgLTQ2NCw3ICs0NjQsNyBAQCB2b2lkIEV2YWxFeGVjdXRhYmxl
Ojp1bmxpbmtDYWxscygpCiAKIHZvaWQgRXZhbEV4ZWN1dGFibGU6OmNsZWFyQ29kZSgpCiB7Ci0g
ICAgbV9ldmFsQ29kZUJsb2NrLmNsZWFyKCk7CisgICAgbV9ldmFsQ29kZUJsb2NrID0gbnVsbHB0
cjsKICAgICBtX3VubGlua2VkRXZhbENvZGVCbG9jay5jbGVhcigpOwogICAgIEJhc2U6OmNsZWFy
Q29kZSgpOwogfQpAQCAtNTQzLDcgKzU0Myw3IEBAIHZvaWQgUHJvZ3JhbUV4ZWN1dGFibGU6OnZp
c2l0Q2hpbGRyZW4oSlNDZWxsKiBjZWxsLCBTbG90VmlzaXRvciYgdmlzaXRvcikKIAogdm9pZCBQ
cm9ncmFtRXhlY3V0YWJsZTo6Y2xlYXJDb2RlKCkKIHsKLSAgICBtX3Byb2dyYW1Db2RlQmxvY2su
Y2xlYXIoKTsKKyAgICBtX3Byb2dyYW1Db2RlQmxvY2sgPSBudWxscHRyOwogICAgIG1fdW5saW5r
ZWRQcm9ncmFtQ29kZUJsb2NrLmNsZWFyKCk7CiAgICAgQmFzZTo6Y2xlYXJDb2RlKCk7CiB9CkBA
IC01ODcsOCArNTg3LDggQEAgdm9pZCBGdW5jdGlvbkV4ZWN1dGFibGU6OmNsZWFyVW5saW5rZWRD
b2RlRm9yUmVjb21waWxhdGlvbigpCiAKIHZvaWQgRnVuY3Rpb25FeGVjdXRhYmxlOjpjbGVhckNv
ZGUoKQogewotICAgIG1fY29kZUJsb2NrRm9yQ2FsbC5jbGVhcigpOwotICAgIG1fY29kZUJsb2Nr
Rm9yQ29uc3RydWN0LmNsZWFyKCk7CisgICAgbV9jb2RlQmxvY2tGb3JDYWxsID0gbnVsbHB0cjsK
KyAgICBtX2NvZGVCbG9ja0ZvckNvbnN0cnVjdCA9IG51bGxwdHI7CiAgICAgQmFzZTo6Y2xlYXJD
b2RlKCk7CiB9CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0pT
TG9jay5jcHAgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9KU0xvY2suY3BwCmluZGV4
IDJlNzk5NGNmMjdjM2M1NGQ1ZDU3YzM3MDAwZGQxODBlYzRkZjlmMDUuLmMyZWUwYTU1MzJjMGI1
MTkzNjg3MTA5ZDlhMzJlYzRhMTQ0NWQ4YmQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0
Q29yZS9ydW50aW1lL0pTTG9jay5jcHAKKysrIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRp
bWUvSlNMb2NrLmNwcApAQCAtNzMsNyArNzMsNyBAQCB2b2lkIEpTTG9ja0hvbGRlcjo6aW5pdCgp
CiBKU0xvY2tIb2xkZXI6On5KU0xvY2tIb2xkZXIoKQogewogICAgIFJlZlB0cjxKU0xvY2s+IGFw
aUxvY2soJm1fdm0tPmFwaUxvY2soKSk7Ci0gICAgbV92bS5jbGVhcigpOworICAgIG1fdm0gPSBu
dWxscHRyOwogICAgIGFwaUxvY2stPnVubG9jaygpOwogfQogCmRpZmYgLS1naXQgYS9Tb3VyY2Uv
SmF2YVNjcmlwdENvcmUvcnVudGltZS9TdHJ1Y3R1cmUuY3BwIGIvU291cmNlL0phdmFTY3JpcHRD
b3JlL3J1bnRpbWUvU3RydWN0dXJlLmNwcAppbmRleCBmNzcxYjYwYmNiNjVkZThlNTRjNmE2MTFj
N2QyNmY4NjU5OGIwNzRkLi4zOTg1ODA1Y2Y1NWM4M2MxZGE2NTRhMTM1YzQ1MTBjNzUwMTcwYjE5
IDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9TdHJ1Y3R1cmUuY3Bw
CisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL1N0cnVjdHVyZS5jcHAKQEAgLTcz
Nyw3ICs3MzcsNyBAQCB2b2lkIFN0cnVjdHVyZTo6cGluKCkKICAgICBBU1NFUlQocHJvcGVydHlU
YWJsZSgpKTsKICAgICBzZXRJc1Bpbm5lZFByb3BlcnR5VGFibGUodHJ1ZSk7CiAgICAgY2xlYXJQ
cmV2aW91c0lEKCk7Ci0gICAgbV9uYW1lSW5QcmV2aW91cy5jbGVhcigpOworICAgIG1fbmFtZUlu
UHJldmlvdXMgPSBudWxscHRyOwogfQogCiB2b2lkIFN0cnVjdHVyZTo6YWxsb2NhdGVSYXJlRGF0
YShWTSYgdm0pCmRpZmYgLS1naXQgYS9Tb3VyY2UvV1RGL3d0Zi9SZWZQdHIuaCBiL1NvdXJjZS9X
VEYvd3RmL1JlZlB0ci5oCmluZGV4IDI5MTFmMGRhOTA2MmI3NmNjZDJhZDE1NDQwYjljZDI1ODVk
NTg4ODYuLjdjODMwNWUzOGVkNzJiNDQ3N2RhNWYyZTIyNzUwNzY0YTc4M2UyNjQgMTAwNjQ0Ci0t
LSBhL1NvdXJjZS9XVEYvd3RmL1JlZlB0ci5oCisrKyBiL1NvdXJjZS9XVEYvd3RmL1JlZlB0ci5o
CkBAIC02MCw3ICs2MCw2IEBAIHB1YmxpYzoKIAogICAgIFQqIGdldCgpIGNvbnN0IHsgcmV0dXJu
IG1fcHRyOyB9CiAgICAgCi0gICAgdm9pZCBjbGVhcigpOwogICAgIFBhc3NSZWZQdHI8VD4gcmVs
ZWFzZSgpIHsgUGFzc1JlZlB0cjxUPiB0bXAgPSBhZG9wdFJlZihtX3B0cik7IG1fcHRyID0gbnVs
bHB0cjsgcmV0dXJuIHRtcDsgfQogICAgIFJlZjxUPiByZWxlYXNlTm9uTnVsbCgpIHsgQVNTRVJU
KG1fcHRyKTsgUmVmPFQ+IHRtcChhZG9wdFJlZigqbV9wdHIpKTsgbV9wdHIgPSBudWxscHRyOyBy
ZXR1cm4gdG1wOyB9CiAKQEAgLTc3LDYgKzc2LDcgQEAgcHVibGljOgogICAgIAogICAgIFJlZlB0
ciYgb3BlcmF0b3I9KGNvbnN0IFJlZlB0ciYpOwogICAgIFJlZlB0ciYgb3BlcmF0b3I9KFQqKTsK
KyAgICBSZWZQdHImIG9wZXJhdG9yPShzdGQ6Om51bGxwdHJfdCk7CiAgICAgUmVmUHRyJiBvcGVy
YXRvcj0oY29uc3QgUGFzc1JlZlB0cjxUPiYpOwogICAgIHRlbXBsYXRlPHR5cGVuYW1lIFU+IFJl
ZlB0ciYgb3BlcmF0b3I9KGNvbnN0IFJlZlB0cjxVPiYpOwogICAgIHRlbXBsYXRlPHR5cGVuYW1l
IFU+IFJlZlB0ciYgb3BlcmF0b3I9KGNvbnN0IFBhc3NSZWZQdHI8VT4mKTsKQEAgLTEwOSwxMSAr
MTA5LDYgQEAgdGVtcGxhdGU8dHlwZW5hbWUgVD4gdGVtcGxhdGU8dHlwZW5hbWUgVT4gaW5saW5l
IFJlZlB0cjxUPjo6UmVmUHRyKFJlZjxVPiYmIHJlZmUKIHsKIH0KIAotdGVtcGxhdGU8dHlwZW5h
bWUgVD4gaW5saW5lIHZvaWQgUmVmUHRyPFQ+OjpjbGVhcigpCi17Ci0gICAgZGVyZWZJZk5vdE51
bGwoc3RkOjpleGNoYW5nZShtX3B0ciwgbnVsbHB0cikpOwotfQotCiB0ZW1wbGF0ZTx0eXBlbmFt
ZSBUPgogaW5saW5lIFQqIFJlZlB0cjxUPjo6bGVha1JlZigpCiB7CkBAIC0xNDEsNiArMTM2LDEy
IEBAIHRlbXBsYXRlPHR5cGVuYW1lIFQ+IGlubGluZSBSZWZQdHI8VD4mIFJlZlB0cjxUPjo6b3Bl
cmF0b3I9KFQqIG9wdHIpCiAgICAgcmV0dXJuICp0aGlzOwogfQogCit0ZW1wbGF0ZTx0eXBlbmFt
ZSBUPiBpbmxpbmUgUmVmUHRyPFQ+JiBSZWZQdHI8VD46Om9wZXJhdG9yPShzdGQ6Om51bGxwdHJf
dCkKK3sKKyAgICBkZXJlZklmTm90TnVsbChzdGQ6OmV4Y2hhbmdlKG1fcHRyLCBudWxscHRyKSk7
CisgICAgcmV0dXJuICp0aGlzOworfQorCiB0ZW1wbGF0ZTx0eXBlbmFtZSBUPiBpbmxpbmUgUmVm
UHRyPFQ+JiBSZWZQdHI8VD46Om9wZXJhdG9yPShjb25zdCBQYXNzUmVmUHRyPFQ+JiBvKQogewog
ICAgIFJlZlB0ciBwdHIgPSBvOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dURi93dGYvdGV4dC9TdHJp
bmdCdWlsZGVyLmggYi9Tb3VyY2UvV1RGL3d0Zi90ZXh0L1N0cmluZ0J1aWxkZXIuaAppbmRleCBi
ZTVjMTE3MmNjY2I5OThhNDEwNTgwMzQ1YWY0MGMyOWNiMTM0OThlLi4xZGM0YWM2MjI5NDBjMGE1
MzQyZDc2YzkyMmEzNmRkNjE4MmE5MWY4IDEwMDY0NAotLS0gYS9Tb3VyY2UvV1RGL3d0Zi90ZXh0
L1N0cmluZ0J1aWxkZXIuaAorKysgYi9Tb3VyY2UvV1RGL3d0Zi90ZXh0L1N0cmluZ0J1aWxkZXIu
aApAQCAtMjY0LDcgKzI2NCw3IEBAIHB1YmxpYzoKICAgICB7CiAgICAgICAgIG1fbGVuZ3RoID0g
MDsKICAgICAgICAgbV9zdHJpbmcgPSBTdHJpbmcoKTsKLSAgICAgICAgbV9idWZmZXIgPSAwOwor
ICAgICAgICBtX2J1ZmZlciA9IG51bGxwdHI7CiAgICAgICAgIG1fYnVmZmVyQ2hhcmFjdGVyczgg
PSAwOwogICAgICAgICBtX2lzOEJpdCA9IHRydWU7CiAgICAgfQpkaWZmIC0tZ2l0IGEvU291cmNl
L1dlYkNvcmUvTW9kdWxlcy9pbmRleGVkZGIvSURCQ3Vyc29yLmNwcCBiL1NvdXJjZS9XZWJDb3Jl
L01vZHVsZXMvaW5kZXhlZGRiL0lEQkN1cnNvci5jcHAKaW5kZXggYTIwZTFlMWFjZTI0OTk0ODRk
Zjc0NTkxOThhMTExZTE4NDI5MGU2ZC4uYzQwMTFkYzI3NTU1ZjQ4ZmNlMmQ2ZDJlMTY0MDhmMWQ3
YTc2MTM2ZiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9pbmRleGVkZGIvSURC
Q3Vyc29yLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL2luZGV4ZWRkYi9JREJDdXJz
b3IuY3BwCkBAIC0yNTksNyArMjU5LDcgQEAgdm9pZCBJREJDdXJzb3I6OmNsb3NlKCkKICAgICBt
X3RyYW5zYWN0aW9uTm90aWZpZXIuY3Vyc29yRmluaXNoZWQoKTsKICAgICBpZiAobV9yZXF1ZXN0
KSB7CiAgICAgICAgIG1fcmVxdWVzdC0+ZmluaXNoQ3Vyc29yKCk7Ci0gICAgICAgIG1fcmVxdWVz
dC5jbGVhcigpOworICAgICAgICBtX3JlcXVlc3QgPSBudWxscHRyOwogICAgIH0KIH0KIApkaWZm
IC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9pbmRleGVkZGIvSURCRGF0YWJhc2VCYWNr
ZW5kLmNwcCBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvaW5kZXhlZGRiL0lEQkRhdGFiYXNlQmFj
a2VuZC5jcHAKaW5kZXggZmMyMzEwMmRkYWE5YTM3NzA5NDBlZjRlYjA0YzEzODAzODM0ZGMzZi4u
MDllNGUyN2I4ZjkwOWUxNzgwOWI0OWQwMzRlM2I4YzRlNDVlZjUzNyAxMDA2NDQKLS0tIGEvU291
cmNlL1dlYkNvcmUvTW9kdWxlcy9pbmRleGVkZGIvSURCRGF0YWJhc2VCYWNrZW5kLmNwcAorKysg
Yi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL2luZGV4ZWRkYi9JREJEYXRhYmFzZUJhY2tlbmQuY3Bw
CkBAIC0zMzMsNyArMzMzLDcgQEAgdm9pZCBJREJEYXRhYmFzZUJhY2tlbmQ6OnRyYW5zYWN0aW9u
RmluaXNoZWQoSURCVHJhbnNhY3Rpb25CYWNrZW5kKiByYXdUcmFuc2FjdGkKICAgICBtX3RyYW5z
YWN0aW9ucy5yZW1vdmUodHJhbnNhY3Rpb24tPmlkKCkpOwogICAgIGlmICh0cmFuc2FjdGlvbi0+
bW9kZSgpID09IEluZGV4ZWREQjo6VHJhbnNhY3Rpb25Nb2RlOjpWZXJzaW9uQ2hhbmdlKSB7CiAg
ICAgICAgIEFTU0VSVCh0cmFuc2FjdGlvbi5nZXQoKSA9PSBtX3J1bm5pbmdWZXJzaW9uQ2hhbmdl
VHJhbnNhY3Rpb24uZ2V0KCkpOwotICAgICAgICBtX3J1bm5pbmdWZXJzaW9uQ2hhbmdlVHJhbnNh
Y3Rpb24uY2xlYXIoKTsKKyAgICAgICAgbV9ydW5uaW5nVmVyc2lvbkNoYW5nZVRyYW5zYWN0aW9u
ID0gbnVsbHB0cjsKICAgICB9CiB9CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL01vZHVs
ZXMvaW5kZXhlZGRiL0lEQk9iamVjdFN0b3JlLmNwcCBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMv
aW5kZXhlZGRiL0lEQk9iamVjdFN0b3JlLmNwcAppbmRleCBlOGJmOWRkZWZlNDk3YjU2M2Q5OGYw
ODUwZWFlOGQ0ODdlYjIyNWI5Li5hNmQyODE0MmY2MjIyMjJmOTQzZjhkNGUxMzViNDI0ODMxMjAz
MDE5IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL2luZGV4ZWRkYi9JREJPYmpl
Y3RTdG9yZS5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9pbmRleGVkZGIvSURCT2Jq
ZWN0U3RvcmUuY3BwCkBAIC0zMzcsNyArMzM3LDcgQEAgcHJpdmF0ZToKICAgICAgICAgICAgIC8v
IE5vdyB0aGF0IHdlIGFyZSBkb25lIGluZGV4aW5nLCB0ZWxsIHRoZSBiYWNrZW5kIHRvIGdvCiAg
ICAgICAgICAgICAvLyBiYWNrIHRvIHByb2Nlc3NpbmcgdGFza3Mgb2YgdHlwZSBOb3JtYWxUYXNr
LgogICAgICAgICAgICAgbV9kYXRhYmFzZUJhY2tlbmQtPnNldEluZGV4ZXNSZWFkeShtX3RyYW5z
YWN0aW9uSWQsIG1fb2JqZWN0U3RvcmVJZCwgaW5kZXhJZHMpOwotICAgICAgICAgICAgbV9kYXRh
YmFzZUJhY2tlbmQuY2xlYXIoKTsKKyAgICAgICAgICAgIG1fZGF0YWJhc2VCYWNrZW5kID0gbnVs
bHB0cjsKICAgICAgICAgfQogCiAgICAgfQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvTW9k
dWxlcy9pbmRleGVkZGIvSURCT3BlbkRCUmVxdWVzdC5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1
bGVzL2luZGV4ZWRkYi9JREJPcGVuREJSZXF1ZXN0LmNwcAppbmRleCA2Mzc4MDdlYWQ5NGNiNzhj
OWM5ZDkzNThkZWQ2NzBmZmYyMDE3N2RjLi43MTU3OWIwNTk1NTYyNGUwM2YyYWUxNzI3ZmM1MDQ2
NzkyNTA0N2I0IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL2luZGV4ZWRkYi9J
REJPcGVuREJSZXF1ZXN0LmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL2luZGV4ZWRk
Yi9JREJPcGVuREJSZXF1ZXN0LmNwcApAQCAtMTQyLDcgKzE0Miw3IEBAIGJvb2wgSURCT3BlbkRC
UmVxdWVzdDo6ZGlzcGF0Y2hFdmVudChQYXNzUmVmUHRyPEV2ZW50PiBldmVudCkKICAgICAvLyBJ
ZiB0aGUgY29ubmVjdGlvbiBjbG9zZWQgYmV0d2VlbiBvblVwZ3JhZGVOZWVkZWQgYW5kIHRoZSBk
ZWxpdmVyeSBvZiB0aGUgInN1Y2Nlc3MiIGV2ZW50LAogICAgIC8vIGFuICJlcnJvciIgZXZlbnQg
c2hvdWxkIGJlIGZpcmVkIGluc3RlYWQuCiAgICAgaWYgKGV2ZW50LT50eXBlKCkgPT0gZXZlbnRO
YW1lcygpLnN1Y2Nlc3NFdmVudCAmJiBtX3Jlc3VsdC0+dHlwZSgpID09IElEQkFueTo6SURCRGF0
YWJhc2VUeXBlICYmIG1fcmVzdWx0LT5pZGJEYXRhYmFzZSgpLT5pc0Nsb3NlUGVuZGluZygpKSB7
Ci0gICAgICAgIG1fcmVzdWx0LmNsZWFyKCk7CisgICAgICAgIG1fcmVzdWx0ID0gbnVsbHB0cjsK
ICAgICAgICAgb25FcnJvcihJREJEYXRhYmFzZUVycm9yOjpjcmVhdGUoSURCRGF0YWJhc2VFeGNl
cHRpb246OkFib3J0RXJyb3IsICJUaGUgY29ubmVjdGlvbiB3YXMgY2xvc2VkLiIpKTsKICAgICAg
ICAgcmV0dXJuIGZhbHNlOwogICAgIH0KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL01vZHVs
ZXMvaW5kZXhlZGRiL0lEQlJlcXVlc3QuY3BwIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9pbmRl
eGVkZGIvSURCUmVxdWVzdC5jcHAKaW5kZXggOWU1MDFiNGY4NjI2YjA0MDE2ZGVjZDk1ODYxNmE4
MTUzZmE2NWFlZi4uODY0ZGU1MzU3NTMxMWIwOWUyODc4NGEzZGE2NWM4MWZmOGE4NDVhZiAxMDA2
NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9pbmRleGVkZGIvSURCUmVxdWVzdC5jcHAK
KysrIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9pbmRleGVkZGIvSURCUmVxdWVzdC5jcHAKQEAg
LTE3MCw5ICsxNzAsOSBAQCB2b2lkIElEQlJlcXVlc3Q6OmFib3J0KCkKICAgICBtX2VucXVldWVk
RXZlbnRzLmNsZWFyKCk7CiAKICAgICBtX2Vycm9yQ29kZSA9IDA7Ci0gICAgbV9lcnJvci5jbGVh
cigpOworICAgIG1fZXJyb3IgPSBudWxscHRyOwogICAgIG1fZXJyb3JNZXNzYWdlID0gU3RyaW5n
KCk7Ci0gICAgbV9yZXN1bHQuY2xlYXIoKTsKKyAgICBtX3Jlc3VsdCA9IG51bGxwdHI7CiAgICAg
b25FcnJvcihJREJEYXRhYmFzZUVycm9yOjpjcmVhdGUoSURCRGF0YWJhc2VFeGNlcHRpb246OkFi
b3J0RXJyb3IpKTsKICAgICBtX3JlcXVlc3RBYm9ydGVkID0gdHJ1ZTsKIH0KQEAgLTE5NCwxMCAr
MTk0LDEwIEBAIHZvaWQgSURCUmVxdWVzdDo6c2V0UGVuZGluZ0N1cnNvcihQYXNzUmVmUHRyPElE
QkN1cnNvcj4gY3Vyc29yKQogICAgIEFTU0VSVChjdXJzb3IgPT0gZ2V0UmVzdWx0Q3Vyc29yKCkp
OwogCiAgICAgbV9wZW5kaW5nQ3Vyc29yID0gY3Vyc29yOwotICAgIG1fcmVzdWx0LmNsZWFyKCk7
CisgICAgbV9yZXN1bHQgPSBudWxscHRyOwogICAgIG1fcmVhZHlTdGF0ZSA9IFBFTkRJTkc7CiAg
ICAgbV9lcnJvckNvZGUgPSAwOwotICAgIG1fZXJyb3IuY2xlYXIoKTsKKyAgICBtX2Vycm9yID0g
bnVsbHB0cjsKICAgICBtX2Vycm9yTWVzc2FnZSA9IFN0cmluZygpOwogICAgIG1fdHJhbnNhY3Rp
b24tPnJlZ2lzdGVyUmVxdWVzdCh0aGlzKTsKIH0KQEAgLTI1Niw3ICsyNTYsNyBAQCB2b2lkIElE
QlJlcXVlc3Q6Om9uRXJyb3IoUGFzc1JlZlB0cjxJREJEYXRhYmFzZUVycm9yPiBlcnJvcikKICAg
ICBtX2Vycm9yQ29kZSA9IGVycm9yLT5jb2RlKCk7CiAgICAgbV9lcnJvck1lc3NhZ2UgPSBlcnJv
ci0+bWVzc2FnZSgpOwogICAgIG1fZXJyb3IgPSBET01FcnJvcjo6Y3JlYXRlKElEQkRhdGFiYXNl
RXhjZXB0aW9uOjpnZXRFcnJvck5hbWUoZXJyb3ItPmlkYkNvZGUoKSkpOwotICAgIG1fcGVuZGlu
Z0N1cnNvci5jbGVhcigpOworICAgIG1fcGVuZGluZ0N1cnNvciA9IG51bGxwdHI7CiAgICAgZW5x
dWV1ZUV2ZW50KEV2ZW50OjpjcmVhdGUoZXZlbnROYW1lcygpLmVycm9yRXZlbnQsIHRydWUsIHRy
dWUpKTsKIH0KIApAQCAtNDA0LDcgKzQwNCw3IEBAIHZvaWQgSURCUmVxdWVzdDo6b25TdWNjZXNz
SW50ZXJuYWwoY29uc3QgRGVwcmVjYXRlZDo6U2NyaXB0VmFsdWUmIHZhbHVlKQogICAgIG1fcmVz
dWx0ID0gSURCQW55OjpjcmVhdGUodmFsdWUpOwogICAgIGlmIChtX3BlbmRpbmdDdXJzb3IpIHsK
ICAgICAgICAgbV9wZW5kaW5nQ3Vyc29yLT5jbG9zZSgpOwotICAgICAgICBtX3BlbmRpbmdDdXJz
b3IuY2xlYXIoKTsKKyAgICAgICAgbV9wZW5kaW5nQ3Vyc29yID0gbnVsbHB0cjsKICAgICB9CiAg
ICAgZW5xdWV1ZUV2ZW50KGNyZWF0ZVN1Y2Nlc3NFdmVudCgpKTsKIH0KQEAgLTU1Myw3ICs1NTMs
NyBAQCB2b2lkIElEQlJlcXVlc3Q6OnRyYW5zYWN0aW9uRGlkRmluaXNoQW5kRGlzcGF0Y2goKQog
ICAgIEFTU0VSVChtX3RyYW5zYWN0aW9uLT5pc1ZlcnNpb25DaGFuZ2UoKSk7CiAgICAgQVNTRVJU
KG1fcmVhZHlTdGF0ZSA9PSBET05FKTsKICAgICBBU1NFUlQoc2NyaXB0RXhlY3V0aW9uQ29udGV4
dCgpKTsKLSAgICBtX3RyYW5zYWN0aW9uLmNsZWFyKCk7CisgICAgbV90cmFuc2FjdGlvbiA9IG51
bGxwdHI7CiAgICAgbV9yZWFkeVN0YXRlID0gUEVORElORzsKIH0KIApkaWZmIC0tZ2l0IGEvU291
cmNlL1dlYkNvcmUvTW9kdWxlcy9pbmRleGVkZGIvSURCVHJhbnNhY3Rpb24uY3BwIGIvU291cmNl
L1dlYkNvcmUvTW9kdWxlcy9pbmRleGVkZGIvSURCVHJhbnNhY3Rpb24uY3BwCmluZGV4IDk5NDhi
YzcyYmIyNTJlYWQ4MDRlZDAzNzE1M2QyNDE0ZWE4YjFlYTcuLjZlYzI5ZmE2Nzg0Yzc4ZTdiMDRi
YTMwNGUyNDg2MzA3MzkyZWQ4OWEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMv
aW5kZXhlZGRiL0lEQlRyYW5zYWN0aW9uLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVz
L2luZGV4ZWRkYi9JREJUcmFuc2FjdGlvbi5jcHAKQEAgLTI0MCw3ICsyNDAsNyBAQCB2b2lkIElE
QlRyYW5zYWN0aW9uOjpPcGVuQ3Vyc29yTm90aWZpZXI6OmN1cnNvckZpbmlzaGVkKCkKICAgICBp
ZiAobV9jdXJzb3IpIHsKICAgICAgICAgbV90cmFuc2FjdGlvbi0+dW5yZWdpc3Rlck9wZW5DdXJz
b3IobV9jdXJzb3IpOwogICAgICAgICBtX2N1cnNvciA9IG51bGxwdHI7Ci0gICAgICAgIG1fdHJh
bnNhY3Rpb24uY2xlYXIoKTsKKyAgICAgICAgbV90cmFuc2FjdGlvbiA9IG51bGxwdHI7CiAgICAg
fQogfQogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL21lZGlhc291cmNlL01l
ZGlhU291cmNlLmNwcCBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvbWVkaWFzb3VyY2UvTWVkaWFT
b3VyY2UuY3BwCmluZGV4IDkxMTcwYWE0ZTgyYTAxNzVmZDJhNDAxZGFlNDU0OTc5ZTcwYmEyYjQu
LmM0MGQ2ZTMwMzY5ZTM5OTEzYzdmYTk3NzJjMWVkNmNmMzI0MDRlMTkgMTAwNjQ0Ci0tLSBhL1Nv
dXJjZS9XZWJDb3JlL01vZHVsZXMvbWVkaWFzb3VyY2UvTWVkaWFTb3VyY2UuY3BwCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL01vZHVsZXMvbWVkaWFzb3VyY2UvTWVkaWFTb3VyY2UuY3BwCkBAIC0zOTQs
NyArMzk0LDcgQEAgdm9pZCBNZWRpYVNvdXJjZTo6c2V0UmVhZHlTdGF0ZShjb25zdCBBdG9taWNT
dHJpbmcmIHN0YXRlKQogICAgIExPRyhNZWRpYVNvdXJjZSwgIk1lZGlhU291cmNlOjpzZXRSZWFk
eVN0YXRlKCVwKSA6ICVzIC0+ICVzIiwgdGhpcywgb2xkU3RhdGUuc3RyaW5nKCkuYXNjaWkoKS5k
YXRhKCksIHN0YXRlLnN0cmluZygpLmFzY2lpKCkuZGF0YSgpKTsKIAogICAgIGlmIChzdGF0ZSA9
PSBjbG9zZWRLZXl3b3JkKCkpIHsKLSAgICAgICAgbV9wcml2YXRlLmNsZWFyKCk7CisgICAgICAg
IG1fcHJpdmF0ZSA9IG51bGxwdHI7CiAgICAgICAgIG1fbWVkaWFFbGVtZW50ID0gbnVsbHB0cjsK
ICAgICAgICAgbV9kdXJhdGlvbiA9IE1lZGlhVGltZTo6aW52YWxpZFRpbWUoKTsKICAgICB9CkBA
IC04MTEsNyArODExLDcgQEAgdm9pZCBNZWRpYVNvdXJjZTo6c3RvcCgpCiAgICAgbV9hc3luY0V2
ZW50UXVldWUuY2xvc2UoKTsKICAgICBpZiAoIWlzQ2xvc2VkKCkpCiAgICAgICAgIHNldFJlYWR5
U3RhdGUoY2xvc2VkS2V5d29yZCgpKTsKLSAgICBtX3ByaXZhdGUuY2xlYXIoKTsKKyAgICBtX3By
aXZhdGUgPSBudWxscHRyOwogfQogCiBib29sIE1lZGlhU291cmNlOjpjYW5TdXNwZW5kRm9yUGFn
ZUNhY2hlKCkgY29uc3QKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvbWVkaWFz
dHJlYW0vUlRDU2Vzc2lvbkRlc2NyaXB0aW9uUmVxdWVzdEltcGwuY3BwIGIvU291cmNlL1dlYkNv
cmUvTW9kdWxlcy9tZWRpYXN0cmVhbS9SVENTZXNzaW9uRGVzY3JpcHRpb25SZXF1ZXN0SW1wbC5j
cHAKaW5kZXggZDcxMGRjMThmNWUyM2NiNmUxMzA4ZGYyOGY2NTZhNjg5YmNiMDZkNy4uMzAxMzM0
ZGNkNTEwODVkMzI1ZjUyNGY4ZWQ5OTRhZWNiOGU2ODQ0MyAxMDA2NDQKLS0tIGEvU291cmNlL1dl
YkNvcmUvTW9kdWxlcy9tZWRpYXN0cmVhbS9SVENTZXNzaW9uRGVzY3JpcHRpb25SZXF1ZXN0SW1w
bC5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9tZWRpYXN0cmVhbS9SVENTZXNzaW9u
RGVzY3JpcHRpb25SZXF1ZXN0SW1wbC5jcHAKQEAgLTk3LDggKzk3LDggQEAgYm9vbCBSVENTZXNz
aW9uRGVzY3JpcHRpb25SZXF1ZXN0SW1wbDo6Y2FuU3VzcGVuZEZvclBhZ2VDYWNoZSgpIGNvbnN0
CiAKIHZvaWQgUlRDU2Vzc2lvbkRlc2NyaXB0aW9uUmVxdWVzdEltcGw6OmNsZWFyKCkKIHsKLSAg
ICBtX3N1Y2Nlc3NDYWxsYmFjay5jbGVhcigpOwotICAgIG1fZXJyb3JDYWxsYmFjay5jbGVhcigp
OworICAgIG1fc3VjY2Vzc0NhbGxiYWNrID0gbnVsbHB0cjsKKyAgICBtX2Vycm9yQ2FsbGJhY2sg
PSBudWxscHRyOwogfQogCiB9IC8vIG5hbWVzcGFjZSBXZWJDb3JlCmRpZmYgLS1naXQgYS9Tb3Vy
Y2UvV2ViQ29yZS9Nb2R1bGVzL21lZGlhc3RyZWFtL1JUQ1N0YXRzUmVxdWVzdEltcGwuY3BwIGIv
U291cmNlL1dlYkNvcmUvTW9kdWxlcy9tZWRpYXN0cmVhbS9SVENTdGF0c1JlcXVlc3RJbXBsLmNw
cAppbmRleCBkZWIxOWE5YWY5MGRjZmM0NTYzNzM4NjhlMTVmODgzNWRmYmU0YzhmLi5kMDAwYjEx
ZGYxN2ZlZjEwMTBlMzg5OWI3NzAyMWNlNzkyMDFmN2U5IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2Vi
Q29yZS9Nb2R1bGVzL21lZGlhc3RyZWFtL1JUQ1N0YXRzUmVxdWVzdEltcGwuY3BwCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL01vZHVsZXMvbWVkaWFzdHJlYW0vUlRDU3RhdHNSZXF1ZXN0SW1wbC5jcHAK
QEAgLTEwNCw3ICsxMDQsNyBAQCBib29sIFJUQ1N0YXRzUmVxdWVzdEltcGw6OmNhblN1c3BlbmRG
b3JQYWdlQ2FjaGUoKSBjb25zdAogCiB2b2lkIFJUQ1N0YXRzUmVxdWVzdEltcGw6OmNsZWFyKCkK
IHsKLSAgICBtX3N1Y2Nlc3NDYWxsYmFjay5jbGVhcigpOworICAgIG1fc3VjY2Vzc0NhbGxiYWNr
ID0gbnVsbHB0cjsKIH0KIAogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL21l
ZGlhc3RyZWFtL1JUQ1ZvaWRSZXF1ZXN0SW1wbC5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVz
L21lZGlhc3RyZWFtL1JUQ1ZvaWRSZXF1ZXN0SW1wbC5jcHAKaW5kZXggODJmOGExMjJkZDMwOWUz
YWQwZTQzOTRlYzljYzM1ZWUwMDlkYWQzNy4uNzA2ZjkwNzU4ZmRjMTVkYzk3ZWZhMWE1ZDMxMTJj
NGUyYWI0OWRhNiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9tZWRpYXN0cmVh
bS9SVENWb2lkUmVxdWVzdEltcGwuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvbWVk
aWFzdHJlYW0vUlRDVm9pZFJlcXVlc3RJbXBsLmNwcApAQCAtOTQsOCArOTQsOCBAQCBib29sIFJU
Q1ZvaWRSZXF1ZXN0SW1wbDo6Y2FuU3VzcGVuZEZvclBhZ2VDYWNoZSgpIGNvbnN0CiAKIHZvaWQg
UlRDVm9pZFJlcXVlc3RJbXBsOjpjbGVhcigpCiB7Ci0gICAgbV9zdWNjZXNzQ2FsbGJhY2suY2xl
YXIoKTsKLSAgICBtX2Vycm9yQ2FsbGJhY2suY2xlYXIoKTsKKyAgICBtX3N1Y2Nlc3NDYWxsYmFj
ayA9IG51bGxwdHI7CisgICAgbV9lcnJvckNhbGxiYWNrID0gbnVsbHB0cjsKIH0KIAogfSAvLyBu
YW1lc3BhY2UgV2ViQ29yZQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy93ZWJh
dWRpby9BdWRpb0NvbnRleHQuY3BwIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy93ZWJhdWRpby9B
dWRpb0NvbnRleHQuY3BwCmluZGV4IDVhM2RlYTBhNTA3MWQ4ZGFmYmNkZmUwNTVhOGQwNWNkODAz
NDBkYWYuLmZhYTk5NmI3NGNmOGIwZmIyYjA0MzIyZGIxN2JhNjY4NjM2MGM5YjkgMTAwNjQ0Ci0t
LSBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvd2ViYXVkaW8vQXVkaW9Db250ZXh0LmNwcAorKysg
Yi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL3dlYmF1ZGlvL0F1ZGlvQ29udGV4dC5jcHAKQEAgLTIz
MSw3ICsyMzEsNyBAQCB2b2lkIEF1ZGlvQ29udGV4dDo6Y2xlYXIoKQogewogICAgIC8vIFdlIGhh
dmUgdG8gcmVsZWFzZSBvdXIgcmVmZXJlbmNlIHRvIHRoZSBkZXN0aW5hdGlvbiBub2RlIGJlZm9y
ZSB0aGUgY29udGV4dCB3aWxsIGV2ZXIgYmUgZGVsZXRlZCBzaW5jZSB0aGUgZGVzdGluYXRpb24g
bm9kZSBob2xkcyBhIHJlZmVyZW5jZSB0byB0aGUgY29udGV4dC4KICAgICBpZiAobV9kZXN0aW5h
dGlvbk5vZGUpCi0gICAgICAgIG1fZGVzdGluYXRpb25Ob2RlLmNsZWFyKCk7CisgICAgICAgIG1f
ZGVzdGluYXRpb25Ob2RlID0gbnVsbHB0cjsKIAogICAgIC8vIEF1ZGlvIHRocmVhZCBpcyBkZWFk
LiBOb2JvZHkgd2lsbCBzY2hlZHVsZSBub2RlIGRlbGV0aW9uIGFjdGlvbi4gTGV0J3MgZG8gaXQg
b3Vyc2VsdmVzLgogICAgIGRvIHsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMv
d2ViZGF0YWJhc2UvU1FMVHJhbnNhY3Rpb25CYWNrZW5kLmNwcCBiL1NvdXJjZS9XZWJDb3JlL01v
ZHVsZXMvd2ViZGF0YWJhc2UvU1FMVHJhbnNhY3Rpb25CYWNrZW5kLmNwcAppbmRleCBkYTI1NGI2
NTRmMjM1ZTVhMTgyZTRkN2Y4NGMzOWExNTVlNGU4MGQ2Li5kMzExMzgwZTQ0ODU4MWFkOWU0Mzdk
MjQ1ZWVhMjlmNmE5ZjljMDk2IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL3dl
YmRhdGFiYXNlL1NRTFRyYW5zYWN0aW9uQmFja2VuZC5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUv
TW9kdWxlcy93ZWJkYXRhYmFzZS9TUUxUcmFuc2FjdGlvbkJhY2tlbmQuY3BwCkBAIC04NDUsNyAr
ODQ1LDcgQEAgdm9pZCBTUUxUcmFuc2FjdGlvbkJhY2tlbmQ6OnJlbGVhc2VPcmlnaW5Mb2NrSWZO
ZWVkZWQoKQogewogICAgIGlmIChtX29yaWdpbkxvY2spIHsKICAgICAgICAgbV9vcmlnaW5Mb2Nr
LT51bmxvY2soKTsKLSAgICAgICAgbV9vcmlnaW5Mb2NrLmNsZWFyKCk7CisgICAgICAgIG1fb3Jp
Z2luTG9jayA9IG51bGxwdHI7CiAgICAgfQogfQogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29y
ZS9Nb2R1bGVzL3dlYnNvY2tldHMvV29ya2VyVGhyZWFkYWJsZVdlYlNvY2tldENoYW5uZWwuY3Bw
IGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy93ZWJzb2NrZXRzL1dvcmtlclRocmVhZGFibGVXZWJT
b2NrZXRDaGFubmVsLmNwcAppbmRleCBiY2JkYWY5NGM3MDExN2MzZDE0MzlhODQzZWE3Y2IwMzI4
YzJlZTg1Li4zNGI2NGQ3N2EwZjU4ZDhjNTdmYmMwODI2MmE5MjMzNTVhOGVkMWQ2IDEwMDY0NAot
LS0gYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL3dlYnNvY2tldHMvV29ya2VyVGhyZWFkYWJsZVdl
YlNvY2tldENoYW5uZWwuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvd2Vic29ja2V0
cy9Xb3JrZXJUaHJlYWRhYmxlV2ViU29ja2V0Q2hhbm5lbC5jcHAKQEAgLTEyNiw3ICsxMjYsNyBA
QCB2b2lkIFdvcmtlclRocmVhZGFibGVXZWJTb2NrZXRDaGFubmVsOjpmYWlsKGNvbnN0IFN0cmlu
ZyYgcmVhc29uKQogdm9pZCBXb3JrZXJUaHJlYWRhYmxlV2ViU29ja2V0Q2hhbm5lbDo6ZGlzY29u
bmVjdCgpCiB7CiAgICAgbV9icmlkZ2UtPmRpc2Nvbm5lY3QoKTsKLSAgICBtX2JyaWRnZS5jbGVh
cigpOworICAgIG1fYnJpZGdlID0gbnVsbHB0cjsKIH0KIAogdm9pZCBXb3JrZXJUaHJlYWRhYmxl
V2ViU29ja2V0Q2hhbm5lbDo6c3VzcGVuZCgpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9h
Y2Nlc3NpYmlsaXR5L2F0ay9BWE9iamVjdENhY2hlQXRrLmNwcCBiL1NvdXJjZS9XZWJDb3JlL2Fj
Y2Vzc2liaWxpdHkvYXRrL0FYT2JqZWN0Q2FjaGVBdGsuY3BwCmluZGV4IDJmMzVmNzQwOTc4ZTc4
MzU3NTIxNGM0OTVlNDNlYjQ1NWM5Mjc0YTQuLmJjMzg0MTE4MmFmYjA2NzEwOGExNjcyZTgxYTMy
OGE0ZGUyNGQ5MmQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2FjY2Vzc2liaWxpdHkvYXRr
L0FYT2JqZWN0Q2FjaGVBdGsuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2FjY2Vzc2liaWxpdHkv
YXRrL0FYT2JqZWN0Q2FjaGVBdGsuY3BwCkBAIC0xNTMsNyArMTUzLDcgQEAgc3RhdGljIHZvaWQg
bm90aWZ5Q2hpbGRyZW5TZWxlY3Rpb25DaGFuZ2UoQWNjZXNzaWJpbGl0eU9iamVjdCogb2JqZWN0
KQogCiAgICAgQWNjZXNzaWJpbGl0eU9iamVjdCogbGlzdE9iamVjdCA9IGdldExpc3RPYmplY3Qo
b2JqZWN0KTsKICAgICBpZiAoIWxpc3RPYmplY3QpIHsKLSAgICAgICAgb2xkTGlzdE9iamVjdC5n
ZXQoKSA9IDA7CisgICAgICAgIG9sZExpc3RPYmplY3QuZ2V0KCkgPSBudWxscHRyOwogICAgICAg
ICByZXR1cm47CiAgICAgfQogCkBAIC0xNjYsNyArMTY2LDcgQEAgc3RhdGljIHZvaWQgbm90aWZ5
Q2hpbGRyZW5TZWxlY3Rpb25DaGFuZ2UoQWNjZXNzaWJpbGl0eU9iamVjdCogb2JqZWN0KQogICAg
IC8vIGZ1cnRoZXIgY29tcGFyaXNvbnMgbWFrZSBzZW5zZS4gT3RoZXJ3aXNlLCBqdXN0IHJlc2V0
CiAgICAgLy8gb2xkRm9jdXNlZE9iamVjdCBzbyBpdCB3b24ndCBiZSB0YWtlbiBpbnRvIGFjY291
bnQuCiAgICAgaWYgKG9sZExpc3RPYmplY3QuZ2V0KCkgIT0gbGlzdE9iamVjdCkKLSAgICAgICAg
b2xkRm9jdXNlZE9iamVjdC5nZXQoKSA9IDA7CisgICAgICAgIG9sZEZvY3VzZWRPYmplY3QuZ2V0
KCkgPSBudWxscHRyOwogCiAgICAgQXRrT2JqZWN0KiBheEl0ZW0gPSBpdGVtID8gaXRlbS0+d3Jh
cHBlcigpIDogbnVsbHB0cjsKICAgICBBdGtPYmplY3QqIGF4T2xkRm9jdXNlZE9iamVjdCA9IG9s
ZEZvY3VzZWRPYmplY3QuZ2V0KCkgPyBvbGRGb2N1c2VkT2JqZWN0LmdldCgpLT53cmFwcGVyKCkg
OiBudWxscHRyOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvYmluZGluZ3MvanMvU2NyaXB0
Q29udHJvbGxlci5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9qcy9TY3JpcHRDb250cm9s
bGVyLmNwcAppbmRleCAzYWJkZDJiOWRiNWE2OWFhYzQxOGVhMTlkMjVhNDRmNWJmNTcwOGQzLi5j
NTE5OWNmZGY3OWJkZTQzY2U0ZTZmZjEwZDcwNTUxMGQ2NTQ3NTdkIDEwMDY0NAotLS0gYS9Tb3Vy
Y2UvV2ViQ29yZS9iaW5kaW5ncy9qcy9TY3JpcHRDb250cm9sbGVyLmNwcAorKysgYi9Tb3VyY2Uv
V2ViQ29yZS9iaW5kaW5ncy9qcy9TY3JpcHRDb250cm9sbGVyLmNwcApAQCAtMTAyLDcgKzEwMiw3
IEBAIFNjcmlwdENvbnRyb2xsZXI6On5TY3JpcHRDb250cm9sbGVyKCkKICAgICBpZiAobV9jYWNo
ZWFibGVCaW5kaW5nUm9vdE9iamVjdCkgewogICAgICAgICBKU0xvY2tIb2xkZXIgbG9jayhKU0RP
TVdpbmRvd0Jhc2U6OmNvbW1vblZNKCkpOwogICAgICAgICBtX2NhY2hlYWJsZUJpbmRpbmdSb290
T2JqZWN0LT5pbnZhbGlkYXRlKCk7Ci0gICAgICAgIG1fY2FjaGVhYmxlQmluZGluZ1Jvb3RPYmpl
Y3QgPSAwOworICAgICAgICBtX2NhY2hlYWJsZUJpbmRpbmdSb290T2JqZWN0ID0gbnVsbHB0cjsK
ICAgICB9CiAKICAgICAvLyBJdCdzIGxpa2VseSB0aGF0IGRlc3Ryb3lpbmcgbV93aW5kb3dTaGVs
bHMgd2lsbCBjcmVhdGUgYSBsb3Qgb2YgZ2FyYmFnZS4KQEAgLTQ4OSw3ICs0ODksNyBAQCB2b2lk
IFNjcmlwdENvbnRyb2xsZXI6OmNsZWFyU2NyaXB0T2JqZWN0cygpCiAKICAgICBpZiAobV9iaW5k
aW5nUm9vdE9iamVjdCkgewogICAgICAgICBtX2JpbmRpbmdSb290T2JqZWN0LT5pbnZhbGlkYXRl
KCk7Ci0gICAgICAgIG1fYmluZGluZ1Jvb3RPYmplY3QgPSAwOworICAgICAgICBtX2JpbmRpbmdS
b290T2JqZWN0ID0gbnVsbHB0cjsKICAgICB9CiAKICNpZiBFTkFCTEUoTkVUU0NBUEVfUExVR0lO
X0FQSSkKQEAgLTQ5OCw3ICs0OTgsNyBAQCB2b2lkIFNjcmlwdENvbnRyb2xsZXI6OmNsZWFyU2Ny
aXB0T2JqZWN0cygpCiAgICAgICAgIC8vIHNjcmlwdCBvYmplY3QgcHJvcGVybHkuCiAgICAgICAg
IC8vIFRoaXMgc2hvdWxkbid0IGNhdXNlIGFueSBwcm9ibGVtcyBmb3IgcGx1Z2lucyBzaW5jZSB0
aGV5IHNob3VsZCBoYXZlIGFscmVhZHkgYmVlbiBzdG9wcGVkIGFuZCBkZXN0cm95ZWQgYXQgdGhp
cyBwb2ludC4KICAgICAgICAgX05QTl9EZWFsbG9jYXRlT2JqZWN0KG1fd2luZG93U2NyaXB0TlBP
YmplY3QpOwotICAgICAgICBtX3dpbmRvd1NjcmlwdE5QT2JqZWN0ID0gMDsKKyAgICAgICAgbV93
aW5kb3dTY3JpcHROUE9iamVjdCA9IG51bGxwdHI7CiAgICAgfQogI2VuZGlmCiB9CmRpZmYgLS1n
aXQgYS9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9qcy9XZWJDb3JlSlNDbGllbnREYXRhLmggYi9T
b3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9qcy9XZWJDb3JlSlNDbGllbnREYXRhLmgKaW5kZXggNjU0
NTEzMzVkM2Q4YTkyMWY1ODE2MjJjMjllNDkwMDBiOWE2MzY2Yy4uNDMwMmQ2OGU1YzhjNmQ3ODdk
NDcyNjI0MTRiY2ViOThkMjJlMDE5ZSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvYmluZGlu
Z3MvanMvV2ViQ29yZUpTQ2xpZW50RGF0YS5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdz
L2pzL1dlYkNvcmVKU0NsaWVudERhdGEuaApAQCAtNDQsNyArNDQsNyBAQCBwdWJsaWM6CiAgICAg
ICAgIEFTU0VSVChtX3dvcmxkU2V0LmNvbnRhaW5zKG1fbm9ybWFsV29ybGQuZ2V0KCkpKTsKICAg
ICAgICAgQVNTRVJUKG1fd29ybGRTZXQuc2l6ZSgpID09IDEpOwogICAgICAgICBBU1NFUlQobV9u
b3JtYWxXb3JsZC0+aGFzT25lUmVmKCkpOwotICAgICAgICBtX25vcm1hbFdvcmxkLmNsZWFyKCk7
CisgICAgICAgIG1fbm9ybWFsV29ybGQgPSBudWxscHRyOwogICAgICAgICBBU1NFUlQobV93b3Js
ZFNldC5pc0VtcHR5KCkpOwogICAgIH0KIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvYmlu
ZGluZ3MvanMvV29ya2VyU2NyaXB0Q29udHJvbGxlci5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9iaW5k
aW5ncy9qcy9Xb3JrZXJTY3JpcHRDb250cm9sbGVyLmNwcAppbmRleCA5MGUwZmY1MTA4OGFhNjU0
OTNkZWVjZTVjOTRmOWEwZGMwMDdjZWNhLi4yOGM5ZWYwZjI3MDNmMzIzYzYxYzhmMjI0NTg5Y2M2
OWQ2ZGQ2YmU2IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9qcy9Xb3JrZXJT
Y3JpcHRDb250cm9sbGVyLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9qcy9Xb3Jr
ZXJTY3JpcHRDb250cm9sbGVyLmNwcApAQCAtNjIsNyArNjIsNyBAQCBXb3JrZXJTY3JpcHRDb250
cm9sbGVyOjp+V29ya2VyU2NyaXB0Q29udHJvbGxlcigpCiB7CiAgICAgSlNMb2NrSG9sZGVyIGxv
Y2sodm0oKSk7CiAgICAgbV93b3JrZXJHbG9iYWxTY29wZVdyYXBwZXIuY2xlYXIoKTsKLSAgICBt
X3ZtLmNsZWFyKCk7CisgICAgbV92bSA9IG51bGxwdHI7CiB9CiAKIHZvaWQgV29ya2VyU2NyaXB0
Q29udHJvbGxlcjo6aW5pdFNjcmlwdCgpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9icmlk
Z2UvcnVudGltZV9vYmplY3QuY3BwIGIvU291cmNlL1dlYkNvcmUvYnJpZGdlL3J1bnRpbWVfb2Jq
ZWN0LmNwcAppbmRleCA5MWYwN2JjNTM3Y2YwZjNmMjAzMGY1ZWQ0ZmVlYzYzMjcyNGViMjM4Li41
ZDBmYTRmODEyYTlhZGZiOGYyNmE5NzUxZTg5ZDZlYmRkZWZmZDYyIDEwMDY0NAotLS0gYS9Tb3Vy
Y2UvV2ViQ29yZS9icmlkZ2UvcnVudGltZV9vYmplY3QuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3Jl
L2JyaWRnZS9ydW50aW1lX29iamVjdC5jcHAKQEAgLTU5LDcgKzU5LDcgQEAgdm9pZCBSdW50aW1l
T2JqZWN0OjppbnZhbGlkYXRlKCkKICAgICBBU1NFUlQobV9pbnN0YW5jZSk7CiAgICAgaWYgKG1f
aW5zdGFuY2UpCiAgICAgICAgIG1faW5zdGFuY2UtPndpbGxJbnZhbGlkYXRlUnVudGltZU9iamVj
dCgpOwotICAgIG1faW5zdGFuY2UgPSAwOworICAgIG1faW5zdGFuY2UgPSBudWxscHRyOwogfQog
CiBFbmNvZGVkSlNWYWx1ZSBSdW50aW1lT2JqZWN0OjpmYWxsYmFja09iamVjdEdldHRlcihFeGVj
U3RhdGUqIGV4ZWMsIEpTT2JqZWN0KiBzbG90QmFzZSwgRW5jb2RlZEpTVmFsdWUsIFByb3BlcnR5
TmFtZSBwcm9wZXJ0eU5hbWUpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9jb250ZW50ZXh0
ZW5zaW9ucy9Db250ZW50RXh0ZW5zaW9uUGFyc2VyLmNwcCBiL1NvdXJjZS9XZWJDb3JlL2NvbnRl
bnRleHRlbnNpb25zL0NvbnRlbnRFeHRlbnNpb25QYXJzZXIuY3BwCmluZGV4IDAyMjY1MmIyZDY5
Zjg5MWNlYTczOTRhMTA5ZDdmYmRmNTAxMmFiMjUuLjdiZjU2ZTdkNGIyZTY3ODZjMzNmN2U4OTUy
ZmM4NTQ3Mjg4YjVmMmIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2NvbnRlbnRleHRlbnNp
b25zL0NvbnRlbnRFeHRlbnNpb25QYXJzZXIuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2NvbnRl
bnRleHRlbnNpb25zL0NvbnRlbnRFeHRlbnNpb25QYXJzZXIuY3BwCkBAIC0yNzcsNyArMjc3LDcg
QEAgc3RkOjplcnJvcl9jb2RlIHBhcnNlUnVsZUxpc3QoY29uc3QgU3RyaW5nJiBydWxlcywgVmVj
dG9yPENvbnRlbnRFeHRlbnNpb25SdWxlPiYKICAgICBFeGVjU3RhdGUqIGV4ZWMgPSBnbG9iYWxP
YmplY3QtPmdsb2JhbEV4ZWMoKTsKICAgICBhdXRvIGVycm9yID0gbG9hZEVuY29kZWRSdWxlcygq
ZXhlYywgcnVsZXMsIHJ1bGVMaXN0KTsKIAotICAgIHZtLmNsZWFyKCk7CisgICAgdm0gPSBudWxs
cHRyOwogCiAgICAgaWYgKGVycm9yKQogICAgICAgICByZXR1cm4gZXJyb3I7CmRpZmYgLS1naXQg
YS9Tb3VyY2UvV2ViQ29yZS9jc3MvQ1NTUGFyc2VyLmNwcCBiL1NvdXJjZS9XZWJDb3JlL2Nzcy9D
U1NQYXJzZXIuY3BwCmluZGV4IDVlOGYwNWNlMDgxNmU3MTYwZTUzZTQ0M2EwYjEzZTQ0Yjg0MmY1
NjcuLjljYzMwOGI0ZjgzYTA5MDlmZDMzYWQzMTA2ZjhmOTZjZDRlNTA3YTEgMTAwNjQ0Ci0tLSBh
L1NvdXJjZS9XZWJDb3JlL2Nzcy9DU1NQYXJzZXIuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2Nz
cy9DU1NQYXJzZXIuY3BwCkBAIC00NTAyLDE1ICs0NTAyLDE1IEBAIHZvaWQgQ1NTUGFyc2VyOjpw
YXJzZUZpbGxQb3NpdGlvbihDU1NQYXJzZXJWYWx1ZUxpc3QmIHZhbHVlTGlzdCwgUmVmUHRyPENT
U1ZhbHVlCiAgICAgaWYgKHZhbHVlMikKICAgICAgICAgdmFsdWVMaXN0Lm5leHQoKTsKICAgICBl
bHNlIHsKLSAgICAgICAgdmFsdWUxLmNsZWFyKCk7CisgICAgICAgIHZhbHVlMSA9IG51bGxwdHI7
CiAgICAgICAgIHJldHVybjsKICAgICB9CiAKICAgICBSZWZQdHI8Q1NTUHJpbWl0aXZlVmFsdWU+
IHBhcnNlZFZhbHVlMSA9IGRvd25jYXN0PENTU1ByaW1pdGl2ZVZhbHVlPih2YWx1ZTEuZ2V0KCkp
OwogICAgIFJlZlB0cjxDU1NQcmltaXRpdmVWYWx1ZT4gcGFyc2VkVmFsdWUyID0gZG93bmNhc3Q8
Q1NTUHJpbWl0aXZlVmFsdWU+KHZhbHVlMi5nZXQoKSk7CiAKLSAgICB2YWx1ZTEuY2xlYXIoKTsK
LSAgICB2YWx1ZTIuY2xlYXIoKTsKKyAgICB2YWx1ZTEgPSBudWxscHRyOworICAgIHZhbHVlMiA9
IG51bGxwdHI7CiAKICAgICAvLyBQZXIgQ1NTMyBzeW50YXgsIDxwb3NpdGlvbj4gY2FuJ3QgaGF2
ZSAnY2VudGVyJyBhcyBpdHMgc2Vjb25kIGtleXdvcmQgYXMgd2UgaGF2ZSBtb3JlIGFyZ3VtZW50
cyB0byBmb2xsb3cuCiAgICAgaWYgKHBhcnNlZFZhbHVlMi0+Z2V0VmFsdWVJRCgpID09IENTU1Zh
bHVlQ2VudGVyKQpAQCAtNDU0OSw3ICs0NTQ5LDcgQEAgdm9pZCBDU1NQYXJzZXI6OnBhcnNlMlZh
bHVlc0ZpbGxQb3NpdGlvbihDU1NQYXJzZXJWYWx1ZUxpc3QmIHZhbHVlTGlzdCwgUmVmUHRyPEMK
ICAgICAgICAgICAgIHZhbHVlTGlzdC5uZXh0KCk7CiAgICAgICAgIGVsc2UgewogICAgICAgICAg
ICAgaWYgKCFpblNob3J0aGFuZCgpKSB7Ci0gICAgICAgICAgICAgICAgdmFsdWUxLmNsZWFyKCk7
CisgICAgICAgICAgICAgICAgdmFsdWUxID0gbnVsbHB0cjsKICAgICAgICAgICAgICAgICByZXR1
cm47CiAgICAgICAgICAgICB9CiAgICAgICAgIH0KQEAgLTc1ODcsOCArNzU4Nyw4IEBAIHN0cnVj
dCBTaGFkb3dQYXJzZUNvbnRleHQgewogICAgICAgICB9CiAKICAgICAgICAgLy8gTm93IHJlc2V0
IGZvciB0aGUgbmV4dCBzaGFkb3cgdmFsdWUuCi0gICAgICAgIHggPSAwOwotICAgICAgICB5ID0g
MDsKKyAgICAgICAgeCA9IG51bGxwdHI7CisgICAgICAgIHkgPSBudWxscHRyOwogICAgICAgICBi
bHVyID0gbnVsbHB0cjsKICAgICAgICAgc3ByZWFkID0gbnVsbHB0cjsKICAgICAgICAgc3R5bGUg
PSBudWxscHRyOwpAQCAtMTIxODQsNyArMTIxODQsNyBAQCBQYXNzUmVmUHRyPENTU1J1bGVTb3Vy
Y2VEYXRhPiBDU1NQYXJzZXI6OnBvcFJ1bGVEYXRhKCkKICAgICAgICAgcmV0dXJuIG51bGxwdHI7
CiAKICAgICBBU1NFUlQoIW1fY3VycmVudFJ1bGVEYXRhU3RhY2stPmlzRW1wdHkoKSk7Ci0gICAg
bV9jdXJyZW50UnVsZURhdGEuY2xlYXIoKTsKKyAgICBtX2N1cnJlbnRSdWxlRGF0YSA9IG51bGxw
dHI7CiAgICAgUmVmUHRyPENTU1J1bGVTb3VyY2VEYXRhPiBkYXRhID0gbV9jdXJyZW50UnVsZURh
dGFTdGFjay0+bGFzdCgpOwogICAgIG1fY3VycmVudFJ1bGVEYXRhU3RhY2stPnJlbW92ZUxhc3Qo
KTsKICAgICByZXR1cm4gZGF0YS5yZWxlYXNlKCk7CkBAIC0xMjYwNSw3ICsxMjYwNSw3IEBAIHZv
aWQgQ1NTUGFyc2VyOjptYXJrUnVsZUJvZHlTdGFydCgpCiB7CiAgICAgaWYgKCFpc0V4dHJhY3Rp
bmdTb3VyY2VEYXRhKCkpCiAgICAgICAgIHJldHVybjsKLSAgICBtX2N1cnJlbnRSdWxlRGF0YS5j
bGVhcigpOworICAgIG1fY3VycmVudFJ1bGVEYXRhID0gbnVsbHB0cjsKICAgICB1bnNpZ25lZCBv
ZmZzZXQgPSB0b2tlblN0YXJ0T2Zmc2V0KCk7CiAgICAgaWYgKHRva2VuU3RhcnRDaGFyKCkgPT0g
J3snKQogICAgICAgICArK29mZnNldDsgLy8gU2tpcCB0aGUgcnVsZSBib2R5IG9wZW5pbmcgYnJh
Y2UuCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9jc3MvQ1NTVmFsdWVQb29sLmNwcCBiL1Nv
dXJjZS9XZWJDb3JlL2Nzcy9DU1NWYWx1ZVBvb2wuY3BwCmluZGV4IDFmNDEzMTE1YTM2ZDBmNDk0
M2NiNTM3YTk5NDY4OWRkYzg2ZmQ5ZDEuLmFlM2UwZmQ0YWViNjBkNmRjODg2ZGM5MWI5YjAwNGM1
ZjVjNDkxZGEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2Nzcy9DU1NWYWx1ZVBvb2wuY3Bw
CisrKyBiL1NvdXJjZS9XZWJDb3JlL2Nzcy9DU1NWYWx1ZVBvb2wuY3BwCkBAIC0xNTMsMTIgKzE1
MywxMiBAQCB2b2lkIENTU1ZhbHVlUG9vbDo6ZHJhaW4oKQogICAgIG1fZm9udEZhbWlseVZhbHVl
Q2FjaGUuY2xlYXIoKTsKIAogICAgIGZvciAoaW50IGkgPSAwOyBpIDwgbnVtQ1NTVmFsdWVLZXl3
b3JkczsgKytpKQotICAgICAgICBtX2lkZW50aWZpZXJWYWx1ZUNhY2hlW2ldID0gMDsKKyAgICAg
ICAgbV9pZGVudGlmaWVyVmFsdWVDYWNoZVtpXSA9IG51bGxwdHI7CiAKICAgICBmb3IgKGludCBp
ID0gMDsgaSA8IG1heGltdW1DYWNoZWFibGVJbnRlZ2VyVmFsdWU7ICsraSkgewotICAgICAgICBt
X3BpeGVsVmFsdWVDYWNoZVtpXSA9IDA7Ci0gICAgICAgIG1fcGVyY2VudFZhbHVlQ2FjaGVbaV0g
PSAwOwotICAgICAgICBtX251bWJlclZhbHVlQ2FjaGVbaV0gPSAwOworICAgICAgICBtX3BpeGVs
VmFsdWVDYWNoZVtpXSA9IG51bGxwdHI7CisgICAgICAgIG1fcGVyY2VudFZhbHVlQ2FjaGVbaV0g
PSBudWxscHRyOworICAgICAgICBtX251bWJlclZhbHVlQ2FjaGVbaV0gPSBudWxscHRyOwogICAg
IH0KIH0KIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvY3NzL1N0eWxlUHJvcGVydGllcy5j
cHAgYi9Tb3VyY2UvV2ViQ29yZS9jc3MvU3R5bGVQcm9wZXJ0aWVzLmNwcAppbmRleCBiOTA5MDhk
MzFkOGUxZGJmNmE1OTRkMDQ3Nzk4OTJkZDJhYTdhMDVjLi5kZWRkMDcwMDdhZTVlOTVlM2E0ZTQ4
ODQyMWU4OGE1YWVkMzdkMzY0IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9jc3MvU3R5bGVQ
cm9wZXJ0aWVzLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9jc3MvU3R5bGVQcm9wZXJ0aWVzLmNw
cApAQCAtMzk3LDkgKzM5Nyw5IEBAIFN0cmluZyBTdHlsZVByb3BlcnRpZXM6OmdldExheWVyZWRT
aG9ydGhhbmRWYWx1ZShjb25zdCBTdHlsZVByb3BlcnR5U2hvcnRoYW5kJiBzCiAgICAgICAgICAg
ICAgICAgICAgIC8vIENvbG9yIG9ubHkgYmVsb25ncyBpbiB0aGUgbGFzdCBsYXllci4KICAgICAg
ICAgICAgICAgICAgICAgaWYgKHNob3J0aGFuZC5wcm9wZXJ0aWVzKClbal0gPT0gQ1NTUHJvcGVy
dHlCYWNrZ3JvdW5kQ29sb3IpIHsKICAgICAgICAgICAgICAgICAgICAgICAgIGlmIChpICE9IG51
bUxheWVycyAtIDEpCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgdmFsdWUgPSAwOworICAg
ICAgICAgICAgICAgICAgICAgICAgICAgIHZhbHVlID0gbnVsbHB0cjsKICAgICAgICAgICAgICAg
ICAgICAgfSBlbHNlIGlmIChpKSAvLyBPdGhlciBzaW5nbGV0b25zIG9ubHkgYmVsb25nIGluIHRo
ZSBmaXJzdCBsYXllci4KLSAgICAgICAgICAgICAgICAgICAgICAgIHZhbHVlID0gMDsKKyAgICAg
ICAgICAgICAgICAgICAgICAgIHZhbHVlID0gbnVsbHB0cjsKICAgICAgICAgICAgICAgICB9CiAg
ICAgICAgICAgICB9CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2Nzcy9WaWV3cG9ydFN0
eWxlUmVzb2x2ZXIuY3BwIGIvU291cmNlL1dlYkNvcmUvY3NzL1ZpZXdwb3J0U3R5bGVSZXNvbHZl
ci5jcHAKaW5kZXggZjg5ZWZmMDA4NjNhYzg5ZGI3NzhkYjMyM2ZlNzg1MDE1NjZhZGYwOS4uZGJi
NmNjNGRmNDQwNDE1YTRiYzQwZTBjOWUwZGFhNmMxMmE1NjliYSAxMDA2NDQKLS0tIGEvU291cmNl
L1dlYkNvcmUvY3NzL1ZpZXdwb3J0U3R5bGVSZXNvbHZlci5jcHAKKysrIGIvU291cmNlL1dlYkNv
cmUvY3NzL1ZpZXdwb3J0U3R5bGVSZXNvbHZlci5jcHAKQEAgLTcxLDcgKzcxLDcgQEAgdm9pZCBW
aWV3cG9ydFN0eWxlUmVzb2x2ZXI6OmFkZFZpZXdwb3J0UnVsZShTdHlsZVJ1bGVWaWV3cG9ydCog
dmlld3BvcnRSdWxlKQogCiB2b2lkIFZpZXdwb3J0U3R5bGVSZXNvbHZlcjo6Y2xlYXJEb2N1bWVu
dCgpCiB7Ci0gICAgbV9kb2N1bWVudCA9IDA7CisgICAgbV9kb2N1bWVudCA9IG51bGxwdHI7CiB9
CiAKIHZvaWQgVmlld3BvcnRTdHlsZVJlc29sdmVyOjpyZXNvbHZlKCkKQEAgLTk0LDcgKzk0LDcg
QEAgdm9pZCBWaWV3cG9ydFN0eWxlUmVzb2x2ZXI6OnJlc29sdmUoKQogICAgIG1fZG9jdW1lbnQt
PnNldFZpZXdwb3J0QXJndW1lbnRzKGFyZ3VtZW50cyk7CiAgICAgbV9kb2N1bWVudC0+dXBkYXRl
Vmlld3BvcnRBcmd1bWVudHMoKTsKIAotICAgIG1fcHJvcGVydHlTZXQgPSAwOworICAgIG1fcHJv
cGVydHlTZXQgPSBudWxscHRyOwogfQogCiBmbG9hdCBWaWV3cG9ydFN0eWxlUmVzb2x2ZXI6Omdl
dFZpZXdwb3J0QXJndW1lbnRWYWx1ZShDU1NQcm9wZXJ0eUlEIGlkKSBjb25zdApkaWZmIC0tZ2l0
IGEvU291cmNlL1dlYkNvcmUvZG9tL0RvY3VtZW50LmNwcCBiL1NvdXJjZS9XZWJDb3JlL2RvbS9E
b2N1bWVudC5jcHAKaW5kZXggZTUwMjY2OTYxMmQ3YzRjNTgyODM0YTRjMWIxOWJiMDM4OTRlZGFm
OS4uZjY0MGI3Y2ZiZGYxNDE4OWMxZTk4OGY0ZWJhZGI0ZGM1MjhhZTFiYSAxMDA2NDQKLS0tIGEv
U291cmNlL1dlYkNvcmUvZG9tL0RvY3VtZW50LmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9kb20v
RG9jdW1lbnQuY3BwCkBAIC0yNDI0LDcgKzI0MjQsNyBAQCB2b2lkIERvY3VtZW50OjpkZXRhY2hQ
YXJzZXIoKQogICAgIGlmICghbV9wYXJzZXIpCiAgICAgICAgIHJldHVybjsKICAgICBtX3BhcnNl
ci0+ZGV0YWNoKCk7Ci0gICAgbV9wYXJzZXIuY2xlYXIoKTsKKyAgICBtX3BhcnNlciA9IG51bGxw
dHI7CiB9CiAKIHZvaWQgRG9jdW1lbnQ6OmNhbmNlbFBhcnNpbmcoKQpAQCAtNTg4Miw3ICs1ODgy
LDcgQEAgdm9pZCBEb2N1bWVudDo6Y2xlYXJTY3JpcHRlZEFuaW1hdGlvbkNvbnRyb2xsZXIoKQog
ICAgIC8vIEZJWE1FOiBjb25zaWRlciB1c2luZyBBY3RpdmVET01PYmplY3QuCiAgICAgaWYgKG1f
c2NyaXB0ZWRBbmltYXRpb25Db250cm9sbGVyKQogICAgICAgICBtX3NjcmlwdGVkQW5pbWF0aW9u
Q29udHJvbGxlci0+Y2xlYXJEb2N1bWVudFBvaW50ZXIoKTsKLSAgICBtX3NjcmlwdGVkQW5pbWF0
aW9uQ29udHJvbGxlci5jbGVhcigpOworICAgIG1fc2NyaXB0ZWRBbmltYXRpb25Db250cm9sbGVy
ID0gbnVsbHB0cjsKIH0KICNlbmRpZgogICAgIApAQCAtNjMwMCw3ICs2MzAwLDcgQEAgdm9pZCBE
b2N1bWVudDo6dXBkYXRlSG92ZXJBY3RpdmVTdGF0ZShjb25zdCBIaXRUZXN0UmVxdWVzdCYgcmVx
dWVzdCwgRWxlbWVudCogaW4KICAgICAgICAgICAgIGN1cnItPnNldEFjdGl2ZShmYWxzZSk7CiAg
ICAgICAgICAgICBtX3VzZXJBY3Rpb25FbGVtZW50cy5zZXRJbkFjdGl2ZUNoYWluKGN1cnIsIGZh
bHNlKTsKICAgICAgICAgfQotICAgICAgICBtX2FjdGl2ZUVsZW1lbnQuY2xlYXIoKTsKKyAgICAg
ICAgbV9hY3RpdmVFbGVtZW50ID0gbnVsbHB0cjsKICAgICB9IGVsc2UgewogICAgICAgICBFbGVt
ZW50KiBuZXdBY3RpdmVFbGVtZW50ID0gaW5uZXJFbGVtZW50SW5Eb2N1bWVudDsKICAgICAgICAg
aWYgKCFvbGRBY3RpdmVFbGVtZW50ICYmIG5ld0FjdGl2ZUVsZW1lbnQgJiYgcmVxdWVzdC5hY3Rp
dmUoKSAmJiAhcmVxdWVzdC50b3VjaE1vdmUoKSkgewpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNv
cmUvZG9tL0RvY3VtZW50TWFya2VyLmggYi9Tb3VyY2UvV2ViQ29yZS9kb20vRG9jdW1lbnRNYXJr
ZXIuaAppbmRleCA0Nzk0OWZlODBiZGQ5YjExZTY4ZGFlNjI1NmVhMmIzMzA2ZmJiNDYzLi5lYzUy
NDg5NDBjMTY3ZWQxYzZjYTAyYjMxZGM0ZTQ3Mzc5YTU1NDE5IDEwMDY0NAotLS0gYS9Tb3VyY2Uv
V2ViQ29yZS9kb20vRG9jdW1lbnRNYXJrZXIuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9kb20vRG9j
dW1lbnRNYXJrZXIuaApAQCAtMTMxLDcgKzEzMSw3IEBAIHB1YmxpYzoKICAgICBEb2N1bWVudE1h
cmtlckRldGFpbHMqIGRldGFpbHMoKSBjb25zdDsKIAogICAgIHZvaWQgc2V0QWN0aXZlTWF0Y2go
Ym9vbCk7Ci0gICAgdm9pZCBjbGVhckRldGFpbHMoKSB7IG1fZGV0YWlscy5jbGVhcigpOyB9Cisg
ICAgdm9pZCBjbGVhckRldGFpbHMoKSB7IG1fZGV0YWlscyA9IG51bGxwdHI7IH0KIAogICAgIC8v
IE9mZnNldCBtb2RpZmljYXRpb25zIGFyZSBkb25lIGJ5IERvY3VtZW50TWFya2VyQ29udHJvbGxl
ci4KICAgICAvLyBPdGhlciBjbGFzc2VzIHNob3VsZCBub3QgY2FsbCBmb2xsb3dpbmcgc2V0dGVy
cy4KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2RvbS9Eb2N1bWVudFN0eWxlU2hlZXRDb2xs
ZWN0aW9uLmNwcCBiL1NvdXJjZS9XZWJDb3JlL2RvbS9Eb2N1bWVudFN0eWxlU2hlZXRDb2xsZWN0
aW9uLmNwcAppbmRleCAxY2JiZTg1MTU1MjVlMGExNTMyYzIyODM2ZjBlN2IzYWEzYmVkZWJhLi4z
MjJhYzg0YmQzMWI2ZWMyZDAzMmQxOWJmYzJhY2JmMzkzM2ZiNGE0IDEwMDY0NAotLS0gYS9Tb3Vy
Y2UvV2ViQ29yZS9kb20vRG9jdW1lbnRTdHlsZVNoZWV0Q29sbGVjdGlvbi5jcHAKKysrIGIvU291
cmNlL1dlYkNvcmUvZG9tL0RvY3VtZW50U3R5bGVTaGVldENvbGxlY3Rpb24uY3BwCkBAIC0xMDQs
NyArMTA0LDcgQEAgQ1NTU3R5bGVTaGVldCogRG9jdW1lbnRTdHlsZVNoZWV0Q29sbGVjdGlvbjo6
cGFnZVVzZXJTaGVldCgpCiB2b2lkIERvY3VtZW50U3R5bGVTaGVldENvbGxlY3Rpb246OmNsZWFy
UGFnZVVzZXJTaGVldCgpCiB7CiAgICAgaWYgKG1fcGFnZVVzZXJTaGVldCkgewotICAgICAgICBt
X3BhZ2VVc2VyU2hlZXQgPSAwOworICAgICAgICBtX3BhZ2VVc2VyU2hlZXQgPSBudWxscHRyOwog
ICAgICAgICBtX2RvY3VtZW50LnN0eWxlUmVzb2x2ZXJDaGFuZ2VkKERlZmVyUmVjYWxjU3R5bGUp
OwogICAgIH0KIH0KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2RvbS9FbGVtZW50LmNwcCBi
L1NvdXJjZS9XZWJDb3JlL2RvbS9FbGVtZW50LmNwcAppbmRleCBiZTg4NGViNTcxYTQwMmZiYjg3
YjFlZGFmYzJkNWI0MzAyNGY4Mzk4Li42YzhjOWUxNzBiYzllYjYxYmM1N2IwMjAwMDk5OTBmYjMy
OGIzMjk0IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9kb20vRWxlbWVudC5jcHAKKysrIGIv
U291cmNlL1dlYkNvcmUvZG9tL0VsZW1lbnQuY3BwCkBAIC0zMjA3LDcgKzMyMDcsNyBAQCB2b2lk
IEVsZW1lbnQ6OmNsb25lQXR0cmlidXRlc0Zyb21FbGVtZW50KGNvbnN0IEVsZW1lbnQmIG90aGVy
KQogCiAgICAgb3RoZXIuc3luY2hyb25pemVBbGxBdHRyaWJ1dGVzKCk7CiAgICAgaWYgKCFvdGhl
ci5tX2VsZW1lbnREYXRhKSB7Ci0gICAgICAgIG1fZWxlbWVudERhdGEuY2xlYXIoKTsKKyAgICAg
ICAgbV9lbGVtZW50RGF0YSA9IG51bGxwdHI7CiAgICAgICAgIHJldHVybjsKICAgICB9CiAKZGlm
ZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2RvbS9NdXRhdGlvbk9ic2VydmVyUmVnaXN0cmF0aW9u
LmNwcCBiL1NvdXJjZS9XZWJDb3JlL2RvbS9NdXRhdGlvbk9ic2VydmVyUmVnaXN0cmF0aW9uLmNw
cAppbmRleCA0NGU4ZjcwZmNiNmM0ODRjYmIwMmE3OTgzN2EzMzI1YzIxNzNmZjE0Li43MGEzMWRl
Y2FjMzVmMWRlYWJmODhkMGU4YTg4NWZiN2ZhODM0MTNkIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2Vi
Q29yZS9kb20vTXV0YXRpb25PYnNlcnZlclJlZ2lzdHJhdGlvbi5jcHAKKysrIGIvU291cmNlL1dl
YkNvcmUvZG9tL011dGF0aW9uT2JzZXJ2ZXJSZWdpc3RyYXRpb24uY3BwCkBAIC04OSw3ICs4OSw3
IEBAIHZvaWQgTXV0YXRpb25PYnNlcnZlclJlZ2lzdHJhdGlvbjo6Y2xlYXJUcmFuc2llbnRSZWdp
c3RyYXRpb25zKCkKICAgICBtX3RyYW5zaWVudFJlZ2lzdHJhdGlvbk5vZGVzID0gbnVsbHB0cjsK
IAogICAgIEFTU0VSVChtX3JlZ2lzdHJhdGlvbk5vZGVLZWVwQWxpdmUpOwotICAgIG1fcmVnaXN0
cmF0aW9uTm9kZUtlZXBBbGl2ZSA9IDA7IC8vIEJhbGFuY2VkIGluIG9ic2VydmVTdWJ0cmVlTm9k
ZVdpbGxEZXRhY2guCisgICAgbV9yZWdpc3RyYXRpb25Ob2RlS2VlcEFsaXZlID0gbnVsbHB0cjsg
Ly8gQmFsYW5jZWQgaW4gb2JzZXJ2ZVN1YnRyZWVOb2RlV2lsbERldGFjaC4KIH0KIAogdm9pZCBN
dXRhdGlvbk9ic2VydmVyUmVnaXN0cmF0aW9uOjp1bnJlZ2lzdGVyQW5kRGVsZXRlKE11dGF0aW9u
T2JzZXJ2ZXJSZWdpc3RyYXRpb24qIHJlZ2lzdHJ5KQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNv
cmUvZG9tL05vZGVJdGVyYXRvci5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9kb20vTm9kZUl0ZXJhdG9y
LmNwcAppbmRleCA1OGIyYjlmNjRjNzZlN2VjNjhhNzRmY2U2ZWVjNDU3NzY4YzVmZmEzLi42MWFl
MjhmNmY4ZTk4OTdjNGVhNjAxYjM1M2NkYTA5MWY0MjE0Y2UyIDEwMDY0NAotLS0gYS9Tb3VyY2Uv
V2ViQ29yZS9kb20vTm9kZUl0ZXJhdG9yLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9kb20vTm9k
ZUl0ZXJhdG9yLmNwcApAQCAtNDUsNyArNDUsNyBAQCBOb2RlSXRlcmF0b3I6Ok5vZGVQb2ludGVy
OjpOb2RlUG9pbnRlcihQYXNzUmVmUHRyPE5vZGU+IG4sIGJvb2wgYikKIAogdm9pZCBOb2RlSXRl
cmF0b3I6Ok5vZGVQb2ludGVyOjpjbGVhcigpCiB7Ci0gICAgbm9kZS5jbGVhcigpOworICAgIG5v
ZGUgPSBudWxscHRyOwogfQogCiBib29sIE5vZGVJdGVyYXRvcjo6Tm9kZVBvaW50ZXI6Om1vdmVU
b05leHQoTm9kZSogcm9vdCkKQEAgLTE1MSw3ICsxNTEsNyBAQCB2b2lkIE5vZGVJdGVyYXRvcjo6
ZGV0YWNoKCkKIHsKICAgICByb290KCktPmRvY3VtZW50KCkuZGV0YWNoTm9kZUl0ZXJhdG9yKHRo
aXMpOwogICAgIG1fZGV0YWNoZWQgPSB0cnVlOwotICAgIG1fcmVmZXJlbmNlTm9kZS5ub2RlLmNs
ZWFyKCk7CisgICAgbV9yZWZlcmVuY2VOb2RlLm5vZGUgPSBudWxscHRyOwogfQogCiB2b2lkIE5v
ZGVJdGVyYXRvcjo6bm9kZVdpbGxCZVJlbW92ZWQoTm9kZSYgcmVtb3ZlZE5vZGUpCmRpZmYgLS1n
aXQgYS9Tb3VyY2UvV2ViQ29yZS9kb20vUG9zaXRpb24uaCBiL1NvdXJjZS9XZWJDb3JlL2RvbS9Q
b3NpdGlvbi5oCmluZGV4IDBmMzE2ZGE4NTg4YTUxOTI5ZmQ0NzUxYzlmY2IzM2I5OTE2NzMzZWIu
LjYwM2U4OGYzZWMxYjFhYzNhYTkyMjkwNWMwMTM4MTIzODQyMGRkZWIgMTAwNjQ0Ci0tLSBhL1Nv
dXJjZS9XZWJDb3JlL2RvbS9Qb3NpdGlvbi5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL2RvbS9Qb3Np
dGlvbi5oCkBAIC05Miw3ICs5Miw3IEBAIHB1YmxpYzoKIAogICAgIEFuY2hvclR5cGUgYW5jaG9y
VHlwZSgpIGNvbnN0IHsgcmV0dXJuIHN0YXRpY19jYXN0PEFuY2hvclR5cGU+KG1fYW5jaG9yVHlw
ZSk7IH0KIAotICAgIHZvaWQgY2xlYXIoKSB7IG1fYW5jaG9yTm9kZS5jbGVhcigpOyBtX29mZnNl
dCA9IDA7IG1fYW5jaG9yVHlwZSA9IFBvc2l0aW9uSXNPZmZzZXRJbkFuY2hvcjsgbV9pc0xlZ2Fj
eUVkaXRpbmdQb3NpdGlvbiA9IGZhbHNlOyB9CisgICAgdm9pZCBjbGVhcigpIHsgbV9hbmNob3JO
b2RlID0gbnVsbHB0cjsgbV9vZmZzZXQgPSAwOyBtX2FuY2hvclR5cGUgPSBQb3NpdGlvbklzT2Zm
c2V0SW5BbmNob3I7IG1faXNMZWdhY3lFZGl0aW5nUG9zaXRpb24gPSBmYWxzZTsgfQogCiAgICAg
Ly8gVGhlc2UgYXJlIGFsd2F5cyBET00gY29tcGxpYW50IHZhbHVlcy4gIEVkaXRpbmcgcG9zaXRp
b25zIGxpa2UgW2ltZywgMF0gKGFrYSBbaW1nLCBiZWZvcmVdKQogICAgIC8vIHdpbGwgcmV0dXJu
IGltZy0+cGFyZW50Tm9kZSgpIGFuZCBpbWctPmNvbXB1dGVOb2RlSW5kZXgoKSBmcm9tIHRoZXNl
IGZ1bmN0aW9ucy4KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2RvbS9Qcm9jZXNzaW5nSW5z
dHJ1Y3Rpb24uY3BwIGIvU291cmNlL1dlYkNvcmUvZG9tL1Byb2Nlc3NpbmdJbnN0cnVjdGlvbi5j
cHAKaW5kZXggM2VjYjY0NjM5Y2ZhYmE2MGE1ZDNiNjZlMmZhZGU1MGRkY2I3ZjFiMC4uYjM0M2Nh
M2EwMWFlOGVlZmRiNTk3ZTVkNGUyMmUyN2I5OTNmZWY5MCAxMDA2NDQKLS0tIGEvU291cmNlL1dl
YkNvcmUvZG9tL1Byb2Nlc3NpbmdJbnN0cnVjdGlvbi5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUv
ZG9tL1Byb2Nlc3NpbmdJbnN0cnVjdGlvbi5jcHAKQEAgLTI4MSw3ICsyODEsNyBAQCB2b2lkIFBy
b2Nlc3NpbmdJbnN0cnVjdGlvbjo6cmVtb3ZlZEZyb20oQ29udGFpbmVyTm9kZSYgaW5zZXJ0aW9u
UG9pbnQpCiAgICAgaWYgKG1fc2hlZXQpIHsKICAgICAgICAgQVNTRVJUKG1fc2hlZXQtPm93bmVy
Tm9kZSgpID09IHRoaXMpOwogICAgICAgICBtX3NoZWV0LT5jbGVhck93bmVyTm9kZSgpOwotICAg
ICAgICBtX3NoZWV0ID0gMDsKKyAgICAgICAgbV9zaGVldCA9IG51bGxwdHI7CiAgICAgfQogCiAg
ICAgLy8gSWYgd2UncmUgaW4gZG9jdW1lbnQgdGVhcmRvd24sIHRoZW4gd2UgZG9uJ3QgbmVlZCB0
byBkbyBhbnkgbm90aWZpY2F0aW9uIG9mIG91ciBzaGVldCdzIHJlbW92YWwuCmRpZmYgLS1naXQg
YS9Tb3VyY2UvV2ViQ29yZS9kb20vUmFuZ2VCb3VuZGFyeVBvaW50LmggYi9Tb3VyY2UvV2ViQ29y
ZS9kb20vUmFuZ2VCb3VuZGFyeVBvaW50LmgKaW5kZXggYjA0ZGMwOGI1NWJmMDIxY2NkZGZiMjZh
ZWU1ZDM4NGIxMTI2YWUwMy4uNWIxNGEzZGZjMWUyZTI5ZjE0NzliZjQ2YzljZThiYWQ3ZGJlZWIx
OSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvZG9tL1JhbmdlQm91bmRhcnlQb2ludC5oCisr
KyBiL1NvdXJjZS9XZWJDb3JlL2RvbS9SYW5nZUJvdW5kYXJ5UG9pbnQuaApAQCAtMTEyLDkgKzEx
Miw5IEBAIGlubGluZSBpbnQgUmFuZ2VCb3VuZGFyeVBvaW50OjpvZmZzZXQoKSBjb25zdAogCiBp
bmxpbmUgdm9pZCBSYW5nZUJvdW5kYXJ5UG9pbnQ6OmNsZWFyKCkKIHsKLSAgICBtX2NvbnRhaW5l
ck5vZGUuY2xlYXIoKTsKKyAgICBtX2NvbnRhaW5lck5vZGUgPSBudWxscHRyOwogICAgIG1fb2Zm
c2V0SW5Db250YWluZXIgPSAwOwotICAgIG1fY2hpbGRCZWZvcmVCb3VuZGFyeSA9IDA7CisgICAg
bV9jaGlsZEJlZm9yZUJvdW5kYXJ5ID0gbnVsbHB0cjsKIH0KIAogaW5saW5lIHZvaWQgUmFuZ2VC
b3VuZGFyeVBvaW50OjpzZXQoUGFzc1JlZlB0cjxOb2RlPiBjb250YWluZXIsIGludCBvZmZzZXQs
IE5vZGUqIGNoaWxkQmVmb3JlKQpAQCAtMTQ5LDcgKzE0OSw3IEBAIGlubGluZSB2b2lkIFJhbmdl
Qm91bmRhcnlQb2ludDo6c2V0VG9TdGFydE9mTm9kZShQYXNzUmVmUHRyPE5vZGU+IGNvbnRhaW5l
cikKICAgICBBU1NFUlQoY29udGFpbmVyKTsKICAgICBtX2NvbnRhaW5lck5vZGUgPSBjb250YWlu
ZXI7CiAgICAgbV9vZmZzZXRJbkNvbnRhaW5lciA9IDA7Ci0gICAgbV9jaGlsZEJlZm9yZUJvdW5k
YXJ5ID0gMDsKKyAgICBtX2NoaWxkQmVmb3JlQm91bmRhcnkgPSBudWxscHRyOwogfQogCiBpbmxp
bmUgdm9pZCBSYW5nZUJvdW5kYXJ5UG9pbnQ6OnNldFRvRW5kT2ZOb2RlKFBhc3NSZWZQdHI8Tm9k
ZT4gY29udGFpbmVyKQpAQCAtMTU4LDcgKzE1OCw3IEBAIGlubGluZSB2b2lkIFJhbmdlQm91bmRh
cnlQb2ludDo6c2V0VG9FbmRPZk5vZGUoUGFzc1JlZlB0cjxOb2RlPiBjb250YWluZXIpCiAgICAg
bV9jb250YWluZXJOb2RlID0gY29udGFpbmVyOwogICAgIGlmIChtX2NvbnRhaW5lck5vZGUtPm9m
ZnNldEluQ2hhcmFjdGVycygpKSB7CiAgICAgICAgIG1fb2Zmc2V0SW5Db250YWluZXIgPSBtX2Nv
bnRhaW5lck5vZGUtPm1heENoYXJhY3Rlck9mZnNldCgpOwotICAgICAgICBtX2NoaWxkQmVmb3Jl
Qm91bmRhcnkgPSAwOworICAgICAgICBtX2NoaWxkQmVmb3JlQm91bmRhcnkgPSBudWxscHRyOwog
ICAgIH0gZWxzZSB7CiAgICAgICAgIG1fY2hpbGRCZWZvcmVCb3VuZGFyeSA9IG1fY29udGFpbmVy
Tm9kZS0+bGFzdENoaWxkKCk7CiAgICAgICAgIG1fb2Zmc2V0SW5Db250YWluZXIgPSBtX2NoaWxk
QmVmb3JlQm91bmRhcnkgPyBpbnZhbGlkT2Zmc2V0IDogMDsKZGlmZiAtLWdpdCBhL1NvdXJjZS9X
ZWJDb3JlL2RvbS9TcGFjZVNwbGl0U3RyaW5nLmggYi9Tb3VyY2UvV2ViQ29yZS9kb20vU3BhY2VT
cGxpdFN0cmluZy5oCmluZGV4IGVmNTY4MDFhNzcxMWRmNWEyY2I1NTgxM2JlNTY3M2YxOTAzMjhl
NzMuLmY4NWI5NjQyMTJkMWRhOGU4MDJkMTY2MDg5NDZjMzc3YWUwYjc4NWQgMTAwNjQ0Ci0tLSBh
L1NvdXJjZS9XZWJDb3JlL2RvbS9TcGFjZVNwbGl0U3RyaW5nLmgKKysrIGIvU291cmNlL1dlYkNv
cmUvZG9tL1NwYWNlU3BsaXRTdHJpbmcuaApAQCAtMTA1LDcgKzEwNSw3IEBAIHB1YmxpYzoKICAg
ICBib29sIG9wZXJhdG9yIT0oY29uc3QgU3BhY2VTcGxpdFN0cmluZyYgb3RoZXIpIGNvbnN0IHsg
cmV0dXJuIG1fZGF0YSAhPSBvdGhlci5tX2RhdGE7IH0KIAogICAgIHZvaWQgc2V0KGNvbnN0IEF0
b21pY1N0cmluZyYsIGJvb2wgc2hvdWxkRm9sZENhc2UpOwotICAgIHZvaWQgY2xlYXIoKSB7IG1f
ZGF0YS5jbGVhcigpOyB9CisgICAgdm9pZCBjbGVhcigpIHsgbV9kYXRhID0gbnVsbHB0cjsgfQog
CiAgICAgYm9vbCBjb250YWlucyhjb25zdCBBdG9taWNTdHJpbmcmIHN0cmluZykgY29uc3QgeyBy
ZXR1cm4gbV9kYXRhICYmIG1fZGF0YS0+Y29udGFpbnMoc3RyaW5nKTsgfQogICAgIGJvb2wgY29u
dGFpbnNBbGwoY29uc3QgU3BhY2VTcGxpdFN0cmluZyYgbmFtZXMpIGNvbnN0IHsgcmV0dXJuICFu
YW1lcy5tX2RhdGEgfHwgKG1fZGF0YSAmJiBtX2RhdGEtPmNvbnRhaW5zQWxsKCpuYW1lcy5tX2Rh
dGEpKTsgfQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvZG9tL1N0eWxlZEVsZW1lbnQuY3Bw
IGIvU291cmNlL1dlYkNvcmUvZG9tL1N0eWxlZEVsZW1lbnQuY3BwCmluZGV4IDViMjY5NjZiNWMz
ODdiOWM4ODdmODAwNmUwZDI1MGE1OGY2OTNkMDkuLjBlYzBkN2Y1YTBlZWE5ZGNiMWU4ZTY1ZTU2
OWQ2MjBkYzJkMmNjMDQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2RvbS9TdHlsZWRFbGVt
ZW50LmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9kb20vU3R5bGVkRWxlbWVudC5jcHAKQEAgLTE4
NSw3ICsxODUsNyBAQCBpbmxpbmUgdm9pZCBTdHlsZWRFbGVtZW50OjpzZXRJbmxpbmVTdHlsZUZy
b21TdHJpbmcoY29uc3QgQXRvbWljU3RyaW5nJiBuZXdTdHlsZQogICAgIC8vIFdlIHJlY29uc3Ry
dWN0IHRoZSBwcm9wZXJ0eSBzZXQgaW5zdGVhZCBvZiBtdXRhdGluZyBpZiB0aGVyZSBpcyBubyBD
U1NPTSB3cmFwcGVyLgogICAgIC8vIFRoaXMgbWFrZXMgd3JhcHBlcmxlc3MgcHJvcGVydHkgc2V0
cyBpbW11dGFibGUgYW5kIHNvIGNhY2hlYWJsZS4KICAgICBpZiAoaW5saW5lU3R5bGUgJiYgIWlz
PE11dGFibGVTdHlsZVByb3BlcnRpZXM+KCppbmxpbmVTdHlsZSkpCi0gICAgICAgIGlubGluZVN0
eWxlLmNsZWFyKCk7CisgICAgICAgIGlubGluZVN0eWxlID0gbnVsbHB0cjsKIAogICAgIGlmICgh
aW5saW5lU3R5bGUpCiAgICAgICAgIGlubGluZVN0eWxlID0gQ1NTUGFyc2VyOjpwYXJzZUlubGlu
ZVN0eWxlRGVjbGFyYXRpb24obmV3U3R5bGVTdHJpbmcsIHRoaXMpOwpAQCAtMjAyLDcgKzIwMiw3
IEBAIHZvaWQgU3R5bGVkRWxlbWVudDo6c3R5bGVBdHRyaWJ1dGVDaGFuZ2VkKGNvbnN0IEF0b21p
Y1N0cmluZyYgbmV3U3R5bGVTdHJpbmcsIEF0CiAgICAgaWYgKG5ld1N0eWxlU3RyaW5nLmlzTnVs
bCgpKSB7CiAgICAgICAgIGlmIChQcm9wZXJ0eVNldENTU1N0eWxlRGVjbGFyYXRpb24qIGNzc29t
V3JhcHBlciA9IGlubGluZVN0eWxlQ1NTT01XcmFwcGVyKCkpCiAgICAgICAgICAgICBjc3NvbVdy
YXBwZXItPmNsZWFyUGFyZW50RWxlbWVudCgpOwotICAgICAgICBlbnN1cmVVbmlxdWVFbGVtZW50
RGF0YSgpLm1faW5saW5lU3R5bGUuY2xlYXIoKTsKKyAgICAgICAgZW5zdXJlVW5pcXVlRWxlbWVu
dERhdGEoKS5tX2lubGluZVN0eWxlID0gbnVsbHB0cjsKICAgICB9IGVsc2UgaWYgKHJlYXNvbiA9
PSBNb2RpZmllZEJ5Q2xvbmluZyB8fCBkb2N1bWVudCgpLmNvbnRlbnRTZWN1cml0eVBvbGljeSgp
LT5hbGxvd0lubGluZVN0eWxlKGRvY3VtZW50KCkudXJsKCksIHN0YXJ0TGluZU51bWJlcikpCiAg
ICAgICAgIHNldElubGluZVN0eWxlRnJvbVN0cmluZyhuZXdTdHlsZVN0cmluZyk7CiAKZGlmZiAt
LWdpdCBhL1NvdXJjZS9XZWJDb3JlL2RvbS9kZWZhdWx0L1BsYXRmb3JtTWVzc2FnZVBvcnRDaGFu
bmVsLmNwcCBiL1NvdXJjZS9XZWJDb3JlL2RvbS9kZWZhdWx0L1BsYXRmb3JtTWVzc2FnZVBvcnRD
aGFubmVsLmNwcAppbmRleCBjNjg2MTFmYzhmYzdiZWNmYWRmOGQ4NDgzYjE0ZmY5MDhjZjQ2MWZh
Li5jNDE3NDg2Mzc0OTE3MzY3MzNmN2MyOTFhNDZlNWE5ZDE3YjdkMjc2IDEwMDY0NAotLS0gYS9T
b3VyY2UvV2ViQ29yZS9kb20vZGVmYXVsdC9QbGF0Zm9ybU1lc3NhZ2VQb3J0Q2hhbm5lbC5jcHAK
KysrIGIvU291cmNlL1dlYkNvcmUvZG9tL2RlZmF1bHQvUGxhdGZvcm1NZXNzYWdlUG9ydENoYW5u
ZWwuY3BwCkBAIC0xODMsOSArMTgzLDkgQEAgdm9pZCBQbGF0Zm9ybU1lc3NhZ2VQb3J0Q2hhbm5l
bDo6Y2xvc2VJbnRlcm5hbCgpCiB7CiAgICAgTXV0ZXhMb2NrZXIgbG9jayhtX211dGV4KTsKICAg
ICAvLyBEaXNlbnRhbmdsZSBvdXJzZWx2ZXMgZnJvbSB0aGUgb3RoZXIgZW5kLiBXZSBzdGlsbCBt
YWludGFpbiBhIHJlZmVyZW5jZSB0byBvdXIgaW5jb21pbmcgcXVldWUsIHNpbmNlIHByZXZpb3Vz
bHktZXhpc3RpbmcgbWVzc2FnZXMgc2hvdWxkIHN0aWxsIGJlIGRlbGl2ZXJlZC4KLSAgICBtX3Jl
bW90ZVBvcnQgPSAwOwotICAgIG1fZW50YW5nbGVkQ2hhbm5lbCA9IDA7Ci0gICAgbV9vdXRnb2lu
Z1F1ZXVlID0gMDsKKyAgICBtX3JlbW90ZVBvcnQgPSBudWxscHRyOworICAgIG1fZW50YW5nbGVk
Q2hhbm5lbCA9IG51bGxwdHI7CisgICAgbV9vdXRnb2luZ1F1ZXVlID0gbnVsbHB0cjsKIH0KIAog
fSAvLyBuYW1lc3BhY2UgV2ViQ29yZQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvZWRpdGlu
Zy9BbHRlcm5hdGl2ZVRleHRDb250cm9sbGVyLmNwcCBiL1NvdXJjZS9XZWJDb3JlL2VkaXRpbmcv
QWx0ZXJuYXRpdmVUZXh0Q29udHJvbGxlci5jcHAKaW5kZXggZjViYzk0ODkxY2FmN2U3MDk3YTAz
ZTI3MjllNzI4ZjI2MzZmMDhiZC4uMjc1ZTQzMGViNzNjMTRjYTJjZmYzM2M2NTc3NjFlNDYxOWU1
ZWFlOSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvZWRpdGluZy9BbHRlcm5hdGl2ZVRleHRD
b250cm9sbGVyLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9lZGl0aW5nL0FsdGVybmF0aXZlVGV4
dENvbnRyb2xsZXIuY3BwCkBAIC0xNDcsNyArMTQ3LDcgQEAgdm9pZCBBbHRlcm5hdGl2ZVRleHRD
b250cm9sbGVyOjpzdGFydEFsdGVybmF0aXZlVGV4dFVJVGltZXIoQWx0ZXJuYXRpdmVUZXh0VHlw
ZQogCiAgICAgLy8gSWYgdHlwZSBpcyBQYW5lbFR5cGVSZXZlcnNpb24sIHRoZW4gdGhlIG5ldyBy
YW5nZSBoYXMgYmVlbiBzZXQuIFNvIHdlIHNob3VsZG4ndCBjbGVhciBpdC4KICAgICBpZiAodHlw
ZSA9PSBBbHRlcm5hdGl2ZVRleHRUeXBlQ29ycmVjdGlvbikKLSAgICAgICAgbV9hbHRlcm5hdGl2
ZVRleHRJbmZvLnJhbmdlV2l0aEFsdGVybmF0aXZlLmNsZWFyKCk7CisgICAgICAgIG1fYWx0ZXJu
YXRpdmVUZXh0SW5mby5yYW5nZVdpdGhBbHRlcm5hdGl2ZSA9IG51bGxwdHI7CiAgICAgbV9hbHRl
cm5hdGl2ZVRleHRJbmZvLnR5cGUgPSB0eXBlOwogICAgIG1fdGltZXIuc3RhcnRPbmVTaG90KGNv
cnJlY3Rpb25QYW5lbFRpbWVySW50ZXJ2YWwpOwogfQpAQCAtMTU1LDcgKzE1NSw3IEBAIHZvaWQg
QWx0ZXJuYXRpdmVUZXh0Q29udHJvbGxlcjo6c3RhcnRBbHRlcm5hdGl2ZVRleHRVSVRpbWVyKEFs
dGVybmF0aXZlVGV4dFR5cGUKIHZvaWQgQWx0ZXJuYXRpdmVUZXh0Q29udHJvbGxlcjo6c3RvcEFs
dGVybmF0aXZlVGV4dFVJVGltZXIoKQogewogICAgIG1fdGltZXIuc3RvcCgpOwotICAgIG1fYWx0
ZXJuYXRpdmVUZXh0SW5mby5yYW5nZVdpdGhBbHRlcm5hdGl2ZS5jbGVhcigpOworICAgIG1fYWx0
ZXJuYXRpdmVUZXh0SW5mby5yYW5nZVdpdGhBbHRlcm5hdGl2ZSA9IG51bGxwdHI7CiB9CiAKIHZv
aWQgQWx0ZXJuYXRpdmVUZXh0Q29udHJvbGxlcjo6c3RvcFBlbmRpbmdDb3JyZWN0aW9uKGNvbnN0
IFZpc2libGVTZWxlY3Rpb24mIG9sZFNlbGVjdGlvbikKQEAgLTE4Myw3ICsxODMsNyBAQCB2b2lk
IEFsdGVybmF0aXZlVGV4dENvbnRyb2xsZXI6OmFwcGx5UGVuZGluZ0NvcnJlY3Rpb24oY29uc3Qg
VmlzaWJsZVNlbGVjdGlvbiYgcwogICAgIGlmIChkb0FwcGx5Q29ycmVjdGlvbikKICAgICAgICAg
aGFuZGxlQWx0ZXJuYXRpdmVUZXh0VUlSZXN1bHQoZGlzbWlzc1Nvb24oUmVhc29uRm9yRGlzbWlz
c2luZ0FsdGVybmF0aXZlVGV4dEFjY2VwdGVkKSk7IAogICAgIGVsc2UKLSAgICAgICAgbV9hbHRl
cm5hdGl2ZVRleHRJbmZvLnJhbmdlV2l0aEFsdGVybmF0aXZlLmNsZWFyKCk7CisgICAgICAgIG1f
YWx0ZXJuYXRpdmVUZXh0SW5mby5yYW5nZVdpdGhBbHRlcm5hdGl2ZSA9IG51bGxwdHI7CiB9CiAK
IGJvb2wgQWx0ZXJuYXRpdmVUZXh0Q29udHJvbGxlcjo6aGFzUGVuZGluZ0NvcnJlY3Rpb24oKSBj
b25zdApAQCAtMzU5LDcgKzM1OSw3IEBAIHZvaWQgQWx0ZXJuYXRpdmVUZXh0Q29udHJvbGxlcjo6
dGltZXJGaXJlZCgpCiAgICAgICAgIFZlY3RvcjxTdHJpbmc+IHN1Z2dlc3Rpb25zOwogICAgICAg
ICB0ZXh0Q2hlY2tlcigpLT5nZXRHdWVzc2VzRm9yV29yZChtX2FsdGVybmF0aXZlVGV4dEluZm8u
b3JpZ2luYWxUZXh0LCBwYXJhZ3JhcGhUZXh0LCBzdWdnZXN0aW9ucyk7CiAgICAgICAgIGlmIChz
dWdnZXN0aW9ucy5pc0VtcHR5KCkpIHsKLSAgICAgICAgICAgIG1fYWx0ZXJuYXRpdmVUZXh0SW5m
by5yYW5nZVdpdGhBbHRlcm5hdGl2ZS5jbGVhcigpOworICAgICAgICAgICAgbV9hbHRlcm5hdGl2
ZVRleHRJbmZvLnJhbmdlV2l0aEFsdGVybmF0aXZlID0gbnVsbHB0cjsKICAgICAgICAgICAgIGJy
ZWFrOwogICAgICAgICB9CiAgICAgICAgIFN0cmluZyB0b3BTdWdnZXN0aW9uID0gc3VnZ2VzdGlv
bnMuZmlyc3QoKTsKQEAgLTQyMiw3ICs0MjIsNyBAQCB2b2lkIEFsdGVybmF0aXZlVGV4dENvbnRy
b2xsZXI6OmhhbmRsZUFsdGVybmF0aXZlVGV4dFVJUmVzdWx0KGNvbnN0IFN0cmluZyYgcmVzdQog
ICAgICAgICBicmVhazsKICAgICB9CiAKLSAgICBtX2FsdGVybmF0aXZlVGV4dEluZm8ucmFuZ2VX
aXRoQWx0ZXJuYXRpdmUuY2xlYXIoKTsKKyAgICBtX2FsdGVybmF0aXZlVGV4dEluZm8ucmFuZ2VX
aXRoQWx0ZXJuYXRpdmUgPSBudWxscHRyOwogfQogCiBib29sIEFsdGVybmF0aXZlVGV4dENvbnRy
b2xsZXI6OmlzQXV0b21hdGljU3BlbGxpbmdDb3JyZWN0aW9uRW5hYmxlZCgpCmRpZmYgLS1naXQg
YS9Tb3VyY2UvV2ViQ29yZS9lZGl0aW5nL0FwcGx5QmxvY2tFbGVtZW50Q29tbWFuZC5jcHAgYi9T
b3VyY2UvV2ViQ29yZS9lZGl0aW5nL0FwcGx5QmxvY2tFbGVtZW50Q29tbWFuZC5jcHAKaW5kZXgg
NDMzZTk1MzY2NGY3MDFkMTIxMjZmYjQwM2E2N2NiZmJhN2Y0ZjA4OC4uMjFhYmU3MWNjOGVkZDUw
ZjE2MzRmMDQzMzBhOGMxMmJjYzkxNjVlZSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvZWRp
dGluZy9BcHBseUJsb2NrRWxlbWVudENvbW1hbmQuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2Vk
aXRpbmcvQXBwbHlCbG9ja0VsZW1lbnRDb21tYW5kLmNwcApAQCAtMTQzLDcgKzE0Myw3IEBAIHZv
aWQgQXBwbHlCbG9ja0VsZW1lbnRDb21tYW5kOjpmb3JtYXRTZWxlY3Rpb24oY29uc3QgVmlzaWJs
ZVBvc2l0aW9uJiBzdGFydE9mU2VsCiAgICAgICAgIC8vIERvbid0IHB1dCB0aGUgbmV4dCBwYXJh
Z3JhcGggaW4gdGhlIGJsb2NrcXVvdGUgd2UganVzdCBjcmVhdGVkIGZvciB0aGlzIHBhcmFncmFw
aCB1bmxlc3MgCiAgICAgICAgIC8vIHRoZSBuZXh0IHBhcmFncmFwaCBpcyBpbiB0aGUgc2FtZSBj
ZWxsLgogICAgICAgICBpZiAoZW5jbG9zaW5nQ2VsbCAmJiBlbmNsb3NpbmdDZWxsICE9IGVuY2xv
c2luZ05vZGVPZlR5cGUoZW5kT2ZOZXh0UGFyYWdyYXBoLmRlZXBFcXVpdmFsZW50KCksICZpc1Rh
YmxlQ2VsbCkpCi0gICAgICAgICAgICBibG9ja3F1b3RlRm9yTmV4dEluZGVudCA9IDA7CisgICAg
ICAgICAgICBibG9ja3F1b3RlRm9yTmV4dEluZGVudCA9IG51bGxwdHI7CiAKICAgICAgICAgLy8g
aW5kZW50SW50b0Jsb2NrcXVvdGUgY291bGQgbW92ZSBtb3JlIHRoYW4gb25lIHBhcmFncmFwaCBp
ZiB0aGUgcGFyYWdyYXBoCiAgICAgICAgIC8vIGlzIGluIGEgbGlzdCBpdGVtIG9yIGEgdGFibGUu
IEFzIGEgcmVzdWx0LCBlbmRBZnRlclNlbGVjdGlvbiBjb3VsZCByZWZlciB0byBhIHBvc2l0aW9u
CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9lZGl0aW5nL0RlbGV0ZVNlbGVjdGlvbkNvbW1h
bmQuY3BwIGIvU291cmNlL1dlYkNvcmUvZWRpdGluZy9EZWxldGVTZWxlY3Rpb25Db21tYW5kLmNw
cAppbmRleCBlYjNhNWYzMGEwM2YyODRlMjI2MGZmNDhmYmE5ZjFiOTk5YWQ5OTI3Li5jNjQ5MWQy
NjkyNjVlNWFiNmNlOTY1ZWFhOTUzNDFiNjU0NDdkMWFlIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2Vi
Q29yZS9lZGl0aW5nL0RlbGV0ZVNlbGVjdGlvbkNvbW1hbmQuY3BwCisrKyBiL1NvdXJjZS9XZWJD
b3JlL2VkaXRpbmcvRGVsZXRlU2VsZWN0aW9uQ29tbWFuZC5jcHAKQEAgLTMwMiw3ICszMDIsNyBA
QCB2b2lkIERlbGV0ZVNlbGVjdGlvbkNvbW1hbmQ6OnNhdmVUeXBpbmdTdHlsZVN0YXRlKCkKICAg
ICBpZiAoZW5jbG9zaW5nTm9kZU9mVHlwZShtX3NlbGVjdGlvblRvRGVsZXRlLnN0YXJ0KCksIGlz
TWFpbEJsb2NrcXVvdGUpKQogICAgICAgICBtX2RlbGV0ZUludG9CbG9ja3F1b3RlU3R5bGUgPSBF
ZGl0aW5nU3R5bGU6OmNyZWF0ZShtX3NlbGVjdGlvblRvRGVsZXRlLmVuZCgpKTsKICAgICBlbHNl
Ci0gICAgICAgIG1fZGVsZXRlSW50b0Jsb2NrcXVvdGVTdHlsZSA9IDA7CisgICAgICAgIG1fZGVs
ZXRlSW50b0Jsb2NrcXVvdGVTdHlsZSA9IG51bGxwdHI7CiB9CiAKIGJvb2wgRGVsZXRlU2VsZWN0
aW9uQ29tbWFuZDo6aGFuZGxlU3BlY2lhbENhc2VCUkRlbGV0ZSgpCkBAIC03MjgsMTEgKzcyOCwx
MSBAQCB2b2lkIERlbGV0ZVNlbGVjdGlvbkNvbW1hbmQ6OmNhbGN1bGF0ZVR5cGluZ1N0eWxlQWZ0
ZXJEZWxldGUoKQogICAgIC8vIElmIHdlIGRlbGV0ZWQgaW50byBhIGJsb2NrcXVvdGUsIGJ1dCBh
cmUgbm93IG5vIGxvbmdlciBpbiBhIGJsb2NrcXVvdGUsIHVzZSB0aGUgYWx0ZXJuYXRlIHR5cGlu
ZyBzdHlsZQogICAgIGlmIChtX2RlbGV0ZUludG9CbG9ja3F1b3RlU3R5bGUgJiYgIWVuY2xvc2lu
Z05vZGVPZlR5cGUobV9lbmRpbmdQb3NpdGlvbiwgaXNNYWlsQmxvY2txdW90ZSwgQ2FuQ3Jvc3NF
ZGl0aW5nQm91bmRhcnkpKQogICAgICAgICBtX3R5cGluZ1N0eWxlID0gbV9kZWxldGVJbnRvQmxv
Y2txdW90ZVN0eWxlOwotICAgIG1fZGVsZXRlSW50b0Jsb2NrcXVvdGVTdHlsZSA9IDA7CisgICAg
bV9kZWxldGVJbnRvQmxvY2txdW90ZVN0eWxlID0gbnVsbHB0cjsKIAogICAgIG1fdHlwaW5nU3R5
bGUtPnByZXBhcmVUb0FwcGx5QXQobV9lbmRpbmdQb3NpdGlvbik7CiAgICAgaWYgKG1fdHlwaW5n
U3R5bGUtPmlzRW1wdHkoKSkKLSAgICAgICAgbV90eXBpbmdTdHlsZSA9IDA7CisgICAgICAgIG1f
dHlwaW5nU3R5bGUgPSBudWxscHRyOwogICAgIC8vIFRoaXMgaXMgd2hlcmUgd2UndmUgZGVsZXRl
ZCBhbGwgdHJhY2VzIG9mIGEgc3R5bGUgYnV0IG5vdCBhIHdob2xlIHBhcmFncmFwaCAodGhhdCdz
IGhhbmRsZWQgYWJvdmUpLgogICAgIC8vIEluIHRoaXMgY2FzZSBpZiB3ZSBzdGFydCB0eXBpbmcs
IHRoZSBuZXcgY2hhcmFjdGVycyBzaG91bGQgaGF2ZSB0aGUgc2FtZSBzdHlsZSBhcyB0aGUganVz
dCBkZWxldGVkIG9uZXMsCiAgICAgLy8gYnV0LCBpZiB3ZSBjaGFuZ2UgdGhlIHNlbGVjdGlvbiwg
Y29tZSBiYWNrIGFuZCBzdGFydCB0eXBpbmcgdGhhdCBzdHlsZSBzaG91bGQgYmUgbG9zdC4gIEFs
c28gc2VlIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvZWRpdGluZy9FZGl0aW5nU3R5bGUu
Y3BwIGIvU291cmNlL1dlYkNvcmUvZWRpdGluZy9FZGl0aW5nU3R5bGUuY3BwCmluZGV4IDVjZjEy
Y2Q5YjczOGExZGQ3NDBkNWVjZDU1YmQ1OTcyZDllZDI2NjEuLjE3YWFiMjk1YmE2YjkyZGFlMmE3
MjQ0ZGMxNTY4ZWZmMmY1NTc0N2EgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2VkaXRpbmcv
RWRpdGluZ1N0eWxlLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9lZGl0aW5nL0VkaXRpbmdTdHls
ZS5jcHAKQEAgLTYzOCw3ICs2MzgsNyBAQCB2b2lkIEVkaXRpbmdTdHlsZTo6b3ZlcnJpZGVUeXBp
bmdTdHlsZUF0KGNvbnN0IEVkaXRpbmdTdHlsZSYgc3R5bGUsIGNvbnN0IFBvc2l0aQogCiB2b2lk
IEVkaXRpbmdTdHlsZTo6Y2xlYXIoKQogewotICAgIG1fbXV0YWJsZVN0eWxlLmNsZWFyKCk7Cisg
ICAgbV9tdXRhYmxlU3R5bGUgPSBudWxscHRyOwogICAgIG1fc2hvdWxkVXNlRml4ZWREZWZhdWx0
Rm9udFNpemUgPSBmYWxzZTsKICAgICBtX2ZvbnRTaXplRGVsdGEgPSBOb0ZvbnREZWx0YTsKICAg
ICBzZXRVbmRlcmxpbmVDaGFuZ2UoVGV4dERlY29yYXRpb25DaGFuZ2U6Ok5vbmUpOwpkaWZmIC0t
Z2l0IGEvU291cmNlL1dlYkNvcmUvZWRpdGluZy9FZGl0b3IuY3BwIGIvU291cmNlL1dlYkNvcmUv
ZWRpdGluZy9FZGl0b3IuY3BwCmluZGV4IGEzYzNjOWMzYjQzNDQyOTc1MWY3M2VmMTkyOGM0MTlj
OTVkNWE5N2MuLmU3Njg3ZWMyNDY1MDA1ZGI1NzQ2ZmU2YzRhZGY2YzE1ODY4N2IzNzQgMTAwNjQ0
Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2VkaXRpbmcvRWRpdG9yLmNwcAorKysgYi9Tb3VyY2UvV2Vi
Q29yZS9lZGl0aW5nL0VkaXRvci5jcHAKQEAgLTgyOCw3ICs4MjgsNyBAQCB2b2lkIEVkaXRvcjo6
cmVtb3ZlRm9ybWF0dGluZ0FuZFN0eWxlKCkKIAogdm9pZCBFZGl0b3I6OmNsZWFyTGFzdEVkaXRD
b21tYW5kKCkgCiB7Ci0gICAgbV9sYXN0RWRpdENvbW1hbmQuY2xlYXIoKTsKKyAgICBtX2xhc3RF
ZGl0Q29tbWFuZCA9IG51bGxwdHI7CiB9CiAjaWYgUExBVEZPUk0oSU9TKQogLy8gSWYgdGhlIHNl
bGVjdGlvbiBpcyBhZGp1c3RlZCBmcm9tIFVJS2l0IHdpdGhvdXQgY2xvc2luZyB0aGUgdHlwaW5n
LCB0aGUgdHlwaW5nIGNvbW1hbmQgbWF5CkBAIC0xMDY2LDcgKzEwNjYsNyBAQCB2b2lkIEVkaXRv
cjo6dW5hcHBsaWVkRWRpdGluZyhQYXNzUmVmUHRyPEVkaXRDb21tYW5kQ29tcG9zaXRpb24+IGNt
ZCkKIAogICAgIG1fYWx0ZXJuYXRpdmVUZXh0Q29udHJvbGxlci0+cmVzcG9uZFRvVW5hcHBsaWVk
RWRpdGluZyhjbWQuZ2V0KCkpOwogCi0gICAgbV9sYXN0RWRpdENvbW1hbmQgPSAwOworICAgIG1f
bGFzdEVkaXRDb21tYW5kID0gbnVsbHB0cjsKICAgICBpZiAoY2xpZW50KCkpCiAgICAgICAgIGNs
aWVudCgpLT5yZWdpc3RlclJlZG9TdGVwKGNtZCk7CiAgICAgcmVzcG9uZFRvQ2hhbmdlZENvbnRl
bnRzKG5ld1NlbGVjdGlvbik7CkBAIC0xMDg0LDcgKzEwODQsNyBAQCB2b2lkIEVkaXRvcjo6cmVh
cHBsaWVkRWRpdGluZyhQYXNzUmVmUHRyPEVkaXRDb21tYW5kQ29tcG9zaXRpb24+IGNtZCkKICAg
ICAKICAgICB1cGRhdGVFZGl0b3JVSU5vd0lmU2NoZWR1bGVkKCk7CiAKLSAgICBtX2xhc3RFZGl0
Q29tbWFuZCA9IDA7CisgICAgbV9sYXN0RWRpdENvbW1hbmQgPSBudWxscHRyOwogICAgIGlmIChj
bGllbnQoKSkKICAgICAgICAgY2xpZW50KCktPnJlZ2lzdGVyVW5kb1N0ZXAoY21kKTsKICAgICBy
ZXNwb25kVG9DaGFuZ2VkQ29udGVudHMobmV3U2VsZWN0aW9uKTsKQEAgLTE3MjcsNyArMTcyNyw3
IEBAIHZvaWQgRWRpdG9yOjpzZXRDb21wb3NpdGlvbihjb25zdCBTdHJpbmcmIHRleHQsIFNldENv
bXBvc2l0aW9uTW9kZSBtb2RlKQogICAgIGlmICh0ZXh0LmlzRW1wdHkoKSAmJiBtb2RlICE9IENh
bmNlbENvbXBvc2l0aW9uKQogICAgICAgICBUeXBpbmdDb21tYW5kOjpkZWxldGVTZWxlY3Rpb24o
ZG9jdW1lbnQoKSwgMCk7CiAKLSAgICBtX2NvbXBvc2l0aW9uTm9kZSA9IDA7CisgICAgbV9jb21w
b3NpdGlvbk5vZGUgPSBudWxscHRyOwogICAgIG1fY3VzdG9tQ29tcG9zaXRpb25VbmRlcmxpbmVz
LmNsZWFyKCk7CiAKICAgICBpbnNlcnRUZXh0Rm9yQ29uZmlybWVkQ29tcG9zaXRpb24odGV4dCk7
CkBAIC0xODAyLDcgKzE4MDIsNyBAQCB2b2lkIEVkaXRvcjo6c2V0Q29tcG9zaXRpb24oY29uc3Qg
U3RyaW5nJiB0ZXh0LCBjb25zdCBWZWN0b3I8Q29tcG9zaXRpb25VbmRlcmxpbgogICAgIGlmICh0
ZXh0LmlzRW1wdHkoKSkKICAgICAgICAgVHlwaW5nQ29tbWFuZDo6ZGVsZXRlU2VsZWN0aW9uKGRv
Y3VtZW50KCksIFR5cGluZ0NvbW1hbmQ6OlByZXZlbnRTcGVsbENoZWNraW5nKTsKIAotICAgIG1f
Y29tcG9zaXRpb25Ob2RlID0gMDsKKyAgICBtX2NvbXBvc2l0aW9uTm9kZSA9IG51bGxwdHI7CiAg
ICAgbV9jdXN0b21Db21wb3NpdGlvblVuZGVybGluZXMuY2xlYXIoKTsKIAogICAgIGlmICghdGV4
dC5pc0VtcHR5KCkpIHsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2VkaXRpbmcvRnJhbWVT
ZWxlY3Rpb24uY3BwIGIvU291cmNlL1dlYkNvcmUvZWRpdGluZy9GcmFtZVNlbGVjdGlvbi5jcHAK
aW5kZXggYjBlMjUzNTg3ZmQ4YWRjZGUzNGQ4YmIyMWFiM2FlZmI4NjNkNmI4Mi4uZmEwODgzNzEy
NTM3MWExMWNiODc5OThmYTRhMTU3MWRkMTg0ZmIzMyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNv
cmUvZWRpdGluZy9GcmFtZVNlbGVjdGlvbi5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvZWRpdGlu
Zy9GcmFtZVNlbGVjdGlvbi5jcHAKQEAgLTEzNTksNyArMTM1OSw3IEBAIHZvaWQgRnJhbWVTZWxl
Y3Rpb246OnByZXBhcmVGb3JEZXN0cnVjdGlvbigpCiAgICAgICAgIHZpZXctPmNsZWFyU2VsZWN0
aW9uKCk7CiAKICAgICBzZXRTZWxlY3Rpb25XaXRob3V0VXBkYXRpbmdBcHBlYXJhbmNlKFZpc2li
bGVTZWxlY3Rpb24oKSwgZGVmYXVsdFNldFNlbGVjdGlvbk9wdGlvbnMoKSwgQWxpZ25DdXJzb3JP
blNjcm9sbElmTmVlZGVkLCBDaGFyYWN0ZXJHcmFudWxhcml0eSk7Ci0gICAgbV9wcmV2aW91c0Nh
cmV0Tm9kZS5jbGVhcigpOworICAgIG1fcHJldmlvdXNDYXJldE5vZGUgPSBudWxscHRyOwogfQog
CiB2b2lkIEZyYW1lU2VsZWN0aW9uOjpzZXRTdGFydChjb25zdCBWaXNpYmxlUG9zaXRpb24gJnBv
cywgRVVzZXJUcmlnZ2VyZWQgdHJpZ2dlcikKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2Vk
aXRpbmcvRnJhbWVTZWxlY3Rpb24uaCBiL1NvdXJjZS9XZWJDb3JlL2VkaXRpbmcvRnJhbWVTZWxl
Y3Rpb24uaAppbmRleCBlZDg3OTZlZjAzMTAyOGM3YmYyOTBiZTM0ODhkOTg2OWIyM2VlOWIyLi4z
MTBhNzRhYWI5ZDJmNTFkZmE3MWJkMWFkOTY2MzQ4MzdiNjEyNWMwIDEwMDY0NAotLS0gYS9Tb3Vy
Y2UvV2ViQ29yZS9lZGl0aW5nL0ZyYW1lU2VsZWN0aW9uLmgKKysrIGIvU291cmNlL1dlYkNvcmUv
ZWRpdGluZy9GcmFtZVNlbGVjdGlvbi5oCkBAIC0zNTksNyArMzU5LDcgQEAgaW5saW5lIEVkaXRp
bmdTdHlsZSogRnJhbWVTZWxlY3Rpb246OnR5cGluZ1N0eWxlKCkgY29uc3QKIAogaW5saW5lIHZv
aWQgRnJhbWVTZWxlY3Rpb246OmNsZWFyVHlwaW5nU3R5bGUoKQogewotICAgIG1fdHlwaW5nU3R5
bGUuY2xlYXIoKTsKKyAgICBtX3R5cGluZ1N0eWxlID0gbnVsbHB0cjsKIH0KIAogaW5saW5lIHZv
aWQgRnJhbWVTZWxlY3Rpb246OnNldFR5cGluZ1N0eWxlKFBhc3NSZWZQdHI8RWRpdGluZ1N0eWxl
PiBzdHlsZSkKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2VkaXRpbmcvSW5kZW50T3V0ZGVu
dENvbW1hbmQuY3BwIGIvU291cmNlL1dlYkNvcmUvZWRpdGluZy9JbmRlbnRPdXRkZW50Q29tbWFu
ZC5jcHAKaW5kZXggYjIzOGY4NzkzMTU2YzcyOTcyZTVhN2NkZTNhYWNkZTM5Y2UwMWIwZi4uZWM0
ZDI3MjQ0N2VjYWI3NTY1MDQxOTdkNjc1NTI3MmQ4YjhjZjYzMSAxMDA2NDQKLS0tIGEvU291cmNl
L1dlYkNvcmUvZWRpdGluZy9JbmRlbnRPdXRkZW50Q29tbWFuZC5jcHAKKysrIGIvU291cmNlL1dl
YkNvcmUvZWRpdGluZy9JbmRlbnRPdXRkZW50Q29tbWFuZC5jcHAKQEAgLTIzMiw3ICsyMzIsNyBA
QCB2b2lkIEluZGVudE91dGRlbnRDb21tYW5kOjpmb3JtYXRTZWxlY3Rpb24oY29uc3QgVmlzaWJs
ZVBvc2l0aW9uJiBzdGFydE9mU2VsZWN0aQogdm9pZCBJbmRlbnRPdXRkZW50Q29tbWFuZDo6Zm9y
bWF0UmFuZ2UoY29uc3QgUG9zaXRpb24mIHN0YXJ0LCBjb25zdCBQb3NpdGlvbiYgZW5kLCBjb25z
dCBQb3NpdGlvbiYsIFJlZlB0cjxFbGVtZW50PiYgYmxvY2txdW90ZUZvck5leHRJbmRlbnQpCiB7
CiAgICAgaWYgKHRyeUluZGVudGluZ0FzTGlzdEl0ZW0oc3RhcnQsIGVuZCkpCi0gICAgICAgIGJs
b2NrcXVvdGVGb3JOZXh0SW5kZW50ID0gMDsKKyAgICAgICAgYmxvY2txdW90ZUZvck5leHRJbmRl
bnQgPSBudWxscHRyOwogICAgIGVsc2UKICAgICAgICAgaW5kZW50SW50b0Jsb2NrcXVvdGUoc3Rh
cnQsIGVuZCwgYmxvY2txdW90ZUZvck5leHRJbmRlbnQpOwogfQpkaWZmIC0tZ2l0IGEvU291cmNl
L1dlYkNvcmUvZWRpdGluZy9SZXBsYWNlU2VsZWN0aW9uQ29tbWFuZC5jcHAgYi9Tb3VyY2UvV2Vi
Q29yZS9lZGl0aW5nL1JlcGxhY2VTZWxlY3Rpb25Db21tYW5kLmNwcAppbmRleCAyZTI1ZWVmMGVj
NjBiNTdmZWYyMzlkNDM5Y2IxZWU5MTQ2NjFjODAyLi5lZWUyMjBjODZmOThhNWU3ZDI4OTljNDMz
ZmE5MWYwMDAwNTQ2YmUzIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9lZGl0aW5nL1JlcGxh
Y2VTZWxlY3Rpb25Db21tYW5kLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9lZGl0aW5nL1JlcGxh
Y2VTZWxlY3Rpb25Db21tYW5kLmNwcApAQCAtMzU0LDggKzM1NCw4IEBAIGlubGluZSB2b2lkIFJl
cGxhY2VTZWxlY3Rpb25Db21tYW5kOjpJbnNlcnRlZE5vZGVzOjp3aWxsUmVtb3ZlTm9kZVByZXNl
cnZpbmdDaGlsCiBpbmxpbmUgdm9pZCBSZXBsYWNlU2VsZWN0aW9uQ29tbWFuZDo6SW5zZXJ0ZWRO
b2Rlczo6d2lsbFJlbW92ZU5vZGUoTm9kZSogbm9kZSkKIHsKICAgICBpZiAobV9maXJzdE5vZGVJ
bnNlcnRlZCA9PSBub2RlICYmIG1fbGFzdE5vZGVJbnNlcnRlZCA9PSBub2RlKSB7Ci0gICAgICAg
IG1fZmlyc3ROb2RlSW5zZXJ0ZWQgPSAwOwotICAgICAgICBtX2xhc3ROb2RlSW5zZXJ0ZWQgPSAw
OworICAgICAgICBtX2ZpcnN0Tm9kZUluc2VydGVkID0gbnVsbHB0cjsKKyAgICAgICAgbV9sYXN0
Tm9kZUluc2VydGVkID0gbnVsbHB0cjsKICAgICB9IGVsc2UgaWYgKG1fZmlyc3ROb2RlSW5zZXJ0
ZWQgPT0gbm9kZSkKICAgICAgICAgbV9maXJzdE5vZGVJbnNlcnRlZCA9IE5vZGVUcmF2ZXJzYWw6
Om5leHRTa2lwcGluZ0NoaWxkcmVuKCptX2ZpcnN0Tm9kZUluc2VydGVkKTsKICAgICBlbHNlIGlm
IChtX2xhc3ROb2RlSW5zZXJ0ZWQgPT0gbm9kZSkKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3Jl
L2VkaXRpbmcvU3BlbGxDaGVja2VyLmNwcCBiL1NvdXJjZS9XZWJDb3JlL2VkaXRpbmcvU3BlbGxD
aGVja2VyLmNwcAppbmRleCA4YjRkNTQxMTljMDEzYzQ4NWVmNDRlYjkzMzc1NzM5MjhjNjQ4MGRi
Li4wM2YyZTUxMDQ4MzUyMTUyMGQyOWI3N2U3NjhkZmM5M2JhYTQwNTkzIDEwMDY0NAotLS0gYS9T
b3VyY2UvV2ViQ29yZS9lZGl0aW5nL1NwZWxsQ2hlY2tlci5jcHAKKysrIGIvU291cmNlL1dlYkNv
cmUvZWRpdGluZy9TcGVsbENoZWNrZXIuY3BwCkBAIC0yMTQsNyArMjE0LDcgQEAgdm9pZCBTcGVs
bENoZWNrZXI6OmRpZENoZWNrKGludCBzZXF1ZW5jZSwgY29uc3QgVmVjdG9yPFRleHRDaGVja2lu
Z1Jlc3VsdD4mIHJlc3UKICAgICBpZiAobV9sYXN0UHJvY2Vzc2VkU2VxdWVuY2UgPCBzZXF1ZW5j
ZSkKICAgICAgICAgbV9sYXN0UHJvY2Vzc2VkU2VxdWVuY2UgPSBzZXF1ZW5jZTsKIAotICAgIG1f
cHJvY2Vzc2luZ1JlcXVlc3QuY2xlYXIoKTsKKyAgICBtX3Byb2Nlc3NpbmdSZXF1ZXN0ID0gbnVs
bHB0cjsKICAgICBpZiAoIW1fcmVxdWVzdFF1ZXVlLmlzRW1wdHkoKSkKICAgICAgICAgbV90aW1l
clRvUHJvY2Vzc1F1ZXVlZFJlcXVlc3Quc3RhcnRPbmVTaG90KDApOwogfQpkaWZmIC0tZ2l0IGEv
U291cmNlL1dlYkNvcmUvZWRpdGluZy9UZXh0Q2hlY2tpbmdIZWxwZXIuY3BwIGIvU291cmNlL1dl
YkNvcmUvZWRpdGluZy9UZXh0Q2hlY2tpbmdIZWxwZXIuY3BwCmluZGV4IDAyNGQyYWQ3YzI0ZjQx
NGU1MWZlMTY2NmNmOTA5MjcyMTNkZWYxNzAuLmU5NjEzNGQ3OGE5MmJiMDVlN2YyZWQ3NzA5Yjhj
Y2E0YzRhY2EzYjUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2VkaXRpbmcvVGV4dENoZWNr
aW5nSGVscGVyLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9lZGl0aW5nL1RleHRDaGVja2luZ0hl
bHBlci5jcHAKQEAgLTE0Niw3ICsxNDYsNyBAQCB2b2lkIFRleHRDaGVja2luZ1BhcmFncmFwaDo6
ZXhwYW5kUmFuZ2VUb05leHRFbmQoKQogdm9pZCBUZXh0Q2hlY2tpbmdQYXJhZ3JhcGg6OmludmFs
aWRhdGVQYXJhZ3JhcGhSYW5nZVZhbHVlcygpCiB7CiAgICAgbV9jaGVja2luZ1N0YXJ0ID0gbV9j
aGVja2luZ0VuZCA9IC0xOwotICAgIG1fb2Zmc2V0QXNSYW5nZSA9IDA7CisgICAgbV9vZmZzZXRB
c1JhbmdlID0gbnVsbHB0cjsKICAgICBtX3RleHQgPSBTdHJpbmcoKTsKIH0KIApkaWZmIC0tZ2l0
IGEvU291cmNlL1dlYkNvcmUvZmlsZWFwaS9GaWxlUmVhZGVyLmNwcCBiL1NvdXJjZS9XZWJDb3Jl
L2ZpbGVhcGkvRmlsZVJlYWRlci5jcHAKaW5kZXggN2Y0YzA1ZDI5MzU2NGY5ODRiZmI4YmQzMDJl
OWZhNDhiYzYzODY2NS4uNjFmYzJkZTYxYWVmOGEzZWJiMDg4NGQ3NDA3NmU2YjNiZDFkMGIxMyAx
MDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvZmlsZWFwaS9GaWxlUmVhZGVyLmNwcAorKysgYi9T
b3VyY2UvV2ViQ29yZS9maWxlYXBpL0ZpbGVSZWFkZXIuY3BwCkBAIC0xNDAsNyArMTQwLDcgQEAg
dm9pZCBGaWxlUmVhZGVyOjpyZWFkSW50ZXJuYWwoQmxvYiogYmxvYiwgRmlsZVJlYWRlckxvYWRl
cjo6UmVhZFR5cGUgdHlwZSwgRXhjZXAKICAgICBtX2Jsb2IgPSBibG9iOwogICAgIG1fcmVhZFR5
cGUgPSB0eXBlOwogICAgIG1fc3RhdGUgPSBMT0FESU5HOwotICAgIG1fZXJyb3IgPSAwOworICAg
IG1fZXJyb3IgPSBudWxscHRyOwogCiAgICAgbV9sb2FkZXIgPSBzdGQ6Om1ha2VfdW5pcXVlPEZp
bGVSZWFkZXJMb2FkZXI+KG1fcmVhZFR5cGUsIHRoaXMpOwogICAgIG1fbG9hZGVyLT5zZXRFbmNv
ZGluZyhtX2VuY29kaW5nKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2ZpbGVhcGkvRmls
ZVJlYWRlckxvYWRlci5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9maWxlYXBpL0ZpbGVSZWFkZXJMb2Fk
ZXIuY3BwCmluZGV4IDk0ZTBhNGE3Y2I0MTBiYWZlM2FlZWQzOGZiNmNlMmZjZTI5YWUyNmEuLmQ4
ZmZjMTAyMzM1ZjFiMjVkNTcyZGI2YjI3NWE3NDQ0NTI3ZWEyZDkgMTAwNjQ0Ci0tLSBhL1NvdXJj
ZS9XZWJDb3JlL2ZpbGVhcGkvRmlsZVJlYWRlckxvYWRlci5jcHAKKysrIGIvU291cmNlL1dlYkNv
cmUvZmlsZWFwaS9GaWxlUmVhZGVyTG9hZGVyLmNwcApAQCAtMTIxLDExICsxMjEsMTEgQEAgdm9p
ZCBGaWxlUmVhZGVyTG9hZGVyOjp0ZXJtaW5hdGUoKQogCiB2b2lkIEZpbGVSZWFkZXJMb2FkZXI6
OmNsZWFudXAoKQogewotICAgIG1fbG9hZGVyID0gMDsKKyAgICBtX2xvYWRlciA9IG51bGxwdHI7
CiAKICAgICAvLyBJZiB3ZSBnZXQgYW55IGVycm9yLCB3ZSBkbyBub3QgbmVlZCB0byBrZWVwIGEg
YnVmZmVyIGFyb3VuZC4KICAgICBpZiAobV9lcnJvckNvZGUpIHsKLSAgICAgICAgbV9yYXdEYXRh
ID0gMDsKKyAgICAgICAgbV9yYXdEYXRhID0gbnVsbHB0cjsKICAgICAgICAgbV9zdHJpbmdSZXN1
bHQgPSAiIjsKICAgICB9CiB9CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9oaXN0b3J5L0hp
c3RvcnlJdGVtLmNwcCBiL1NvdXJjZS9XZWJDb3JlL2hpc3RvcnkvSGlzdG9yeUl0ZW0uY3BwCmlu
ZGV4IDIyOWJhYjhlN2EyM2FjMDVjMGFkMDVlN2VkNDMxNTdkY2Q3ZThiMDMuLjgyOTU3M2Y3ZDc5
YjZhOTI3NTJiNmEwN2JiOGI1NzkwOTYzMmRiZDEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3Jl
L2hpc3RvcnkvSGlzdG9yeUl0ZW0uY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2hpc3RvcnkvSGlz
dG9yeUl0ZW0uY3BwCkBAIC0xOTYsMTAgKzE5NiwxMCBAQCB2b2lkIEhpc3RvcnlJdGVtOjpyZXNl
dCgpCiAKICAgICBtX2l0ZW1TZXF1ZW5jZU51bWJlciA9IGdlbmVyYXRlU2VxdWVuY2VOdW1iZXIo
KTsKIAotICAgIG1fc3RhdGVPYmplY3QgPSAwOworICAgIG1fc3RhdGVPYmplY3QgPSBudWxscHRy
OwogICAgIG1fZG9jdW1lbnRTZXF1ZW5jZU51bWJlciA9IGdlbmVyYXRlU2VxdWVuY2VOdW1iZXIo
KTsKIAotICAgIG1fZm9ybURhdGEgPSAwOworICAgIG1fZm9ybURhdGEgPSBudWxscHRyOwogICAg
IG1fZm9ybUNvbnRlbnRUeXBlID0gU3RyaW5nKCk7CiAKICAgICBjbGVhckNoaWxkcmVuKCk7CkBA
IC01MjQsNyArNTI0LDcgQEAgdm9pZCBIaXN0b3J5SXRlbTo6c2V0Rm9ybUluZm9Gcm9tUmVxdWVz
dChjb25zdCBSZXNvdXJjZVJlcXVlc3QmIHJlcXVlc3QpCiAgICAgICAgIG1fZm9ybURhdGEgPSBy
ZXF1ZXN0Lmh0dHBCb2R5KCk7CiAgICAgICAgIG1fZm9ybUNvbnRlbnRUeXBlID0gcmVxdWVzdC5o
dHRwQ29udGVudFR5cGUoKTsKICAgICB9IGVsc2UgewotICAgICAgICBtX2Zvcm1EYXRhID0gMDsK
KyAgICAgICAgbV9mb3JtRGF0YSA9IG51bGxwdHI7CiAgICAgICAgIG1fZm9ybUNvbnRlbnRUeXBl
ID0gU3RyaW5nKCk7CiAgICAgfQogfQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvaHRtbC9C
YXNlQ2hvb3Nlck9ubHlEYXRlQW5kVGltZUlucHV0VHlwZS5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9o
dG1sL0Jhc2VDaG9vc2VyT25seURhdGVBbmRUaW1lSW5wdXRUeXBlLmNwcAppbmRleCBlOWE2Y2Mw
MzkzYzUwNTU2OGQ1MTM0M2M2NTdhNmJkYmFkMWE5NTIzLi5kYmVhMGU5OWJkOTM0YzdkYmRlYTUy
ZDI1ZDAxYzJmODE3NWRjMWQwIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9odG1sL0Jhc2VD
aG9vc2VyT25seURhdGVBbmRUaW1lSW5wdXRUeXBlLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9o
dG1sL0Jhc2VDaG9vc2VyT25seURhdGVBbmRUaW1lSW5wdXRUeXBlLmNwcApAQCAtOTgsNyArOTgs
NyBAQCB2b2lkIEJhc2VDaG9vc2VyT25seURhdGVBbmRUaW1lSW5wdXRUeXBlOjpkaWRDaG9vc2VW
YWx1ZShjb25zdCBTdHJpbmcmIHZhbHVlKQogCiB2b2lkIEJhc2VDaG9vc2VyT25seURhdGVBbmRU
aW1lSW5wdXRUeXBlOjpkaWRFbmRDaG9vc2VyKCkKIHsKLSAgICBtX2RhdGVUaW1lQ2hvb3Nlci5j
bGVhcigpOworICAgIG1fZGF0ZVRpbWVDaG9vc2VyID0gbnVsbHB0cjsKIH0KIAogdm9pZCBCYXNl
Q2hvb3Nlck9ubHlEYXRlQW5kVGltZUlucHV0VHlwZTo6Y2xvc2VEYXRlVGltZUNob29zZXIoKQpk
aWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvaHRtbC9GVFBEaXJlY3RvcnlEb2N1bWVudC5jcHAg
Yi9Tb3VyY2UvV2ViQ29yZS9odG1sL0ZUUERpcmVjdG9yeURvY3VtZW50LmNwcAppbmRleCBlNzU1
M2Q3NDMwM2RkOTRkYjI2MTBkY2RkMmExODBmNGY4ZWIyMDllLi4wMGRlOWZmNTcxYThlMzhlMmMy
ZDhjYzVlOWMxYmM3YzIzOTdlZTY5IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9odG1sL0ZU
UERpcmVjdG9yeURvY3VtZW50LmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9odG1sL0ZUUERpcmVj
dG9yeURvY3VtZW50LmNwcApAQCAtNDExLDcgKzQxMSw3IEBAIHZvaWQgRlRQRGlyZWN0b3J5RG9j
dW1lbnRQYXJzZXI6OmZpbmlzaCgpCiAgICAgICAgIG1fY2FycnlPdmVyID0gU3RyaW5nKCk7CiAg
ICAgfQogCi0gICAgbV90YWJsZUVsZW1lbnQgPSAwOworICAgIG1fdGFibGVFbGVtZW50ID0gbnVs
bHB0cjsKICAgICBmYXN0RnJlZShtX2J1ZmZlcik7CiAKICAgICBIVE1MRG9jdW1lbnRQYXJzZXI6
OmZpbmlzaCgpOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvaHRtbC9GaWxlSW5wdXRUeXBl
LmNwcCBiL1NvdXJjZS9XZWJDb3JlL2h0bWwvRmlsZUlucHV0VHlwZS5jcHAKaW5kZXggYTNkM2I2
YjcxMWZmZTFlOGFhMWFmZGZmYzE4NmViYzBhZjUyYzE0Ny4uNDg5ZDc5OTM4ZmNmZDIyNmZjOTk0
YzI2MGU2ZTU1MzUzYzU0YWYyOSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvaHRtbC9GaWxl
SW5wdXRUeXBlLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9odG1sL0ZpbGVJbnB1dFR5cGUuY3Bw
CkBAIC0yNTAsNyArMjUwLDcgQEAgdm9pZCBGaWxlSW5wdXRUeXBlOjpzZXRWYWx1ZShjb25zdCBT
dHJpbmcmLCBib29sLCBUZXh0RmllbGRFdmVudEJlaGF2aW9yKQogewogICAgIC8vIEZJWE1FOiBT
aG91bGQgd2UgY2xlYXIgdGhlIGZpbGUgbGlzdCwgb3IgcmVwbGFjZSBpdCB3aXRoIGEgbmV3IGVt
cHR5IG9uZSBoZXJlPyBUaGlzIGlzIG9ic2VydmFibGUgZnJvbSBKYXZhU2NyaXB0IHRocm91Z2gg
Y3VzdG9tIHByb3BlcnRpZXMuCiAgICAgbV9maWxlTGlzdC0+Y2xlYXIoKTsKLSAgICBtX2ljb24u
Y2xlYXIoKTsKKyAgICBtX2ljb24gPSBudWxscHRyOwogICAgIGVsZW1lbnQoKS5zZXROZWVkc1N0
eWxlUmVjYWxjKCk7CiB9CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTENh
bnZhc0VsZW1lbnQuY3BwIGIvU291cmNlL1dlYkNvcmUvaHRtbC9IVE1MQ2FudmFzRWxlbWVudC5j
cHAKaW5kZXggODZkNDVhNDhhMGM3NjJkYWI3MjZmZDk5NmFmNzI0NmM4MTg3ODY2My4uY2U1ZDdi
MmE1ZjI3ZjRjNzZmNTEwZDZlZjU5NWUzMGFhMjU0YTMyYSAxMDA2NDQKLS0tIGEvU291cmNlL1dl
YkNvcmUvaHRtbC9IVE1MQ2FudmFzRWxlbWVudC5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvaHRt
bC9IVE1MQ2FudmFzRWxlbWVudC5jcHAKQEAgLTQyMyw3ICs0MjMsNyBAQCB2b2lkIEhUTUxDYW52
YXNFbGVtZW50OjptYWtlUHJlc2VudGF0aW9uQ29weSgpCiAKIHZvaWQgSFRNTENhbnZhc0VsZW1l
bnQ6OmNsZWFyUHJlc2VudGF0aW9uQ29weSgpCiB7Ci0gICAgbV9wcmVzZW50ZWRJbWFnZS5jbGVh
cigpOworICAgIG1fcHJlc2VudGVkSW1hZ2UgPSBudWxscHRyOwogfQogCiB2b2lkIEhUTUxDYW52
YXNFbGVtZW50OjpzZXRTdXJmYWNlU2l6ZShjb25zdCBJbnRTaXplJiBzaXplKQpAQCAtNjQ0LDcg
KzY0NCw3IEBAIHZvaWQgSFRNTENhbnZhc0VsZW1lbnQ6OmNsZWFySW1hZ2VCdWZmZXIoKSBjb25z
dAogCiB2b2lkIEhUTUxDYW52YXNFbGVtZW50OjpjbGVhckNvcGllZEltYWdlKCkKIHsKLSAgICBt
X2NvcGllZEltYWdlLmNsZWFyKCk7CisgICAgbV9jb3BpZWRJbWFnZSA9IG51bGxwdHI7CiAgICAg
bV9kaWRDbGVhckltYWdlQnVmZmVyID0gZmFsc2U7CiB9CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9X
ZWJDb3JlL2h0bWwvSFRNTExpbmtFbGVtZW50LmNwcCBiL1NvdXJjZS9XZWJDb3JlL2h0bWwvSFRN
TExpbmtFbGVtZW50LmNwcAppbmRleCBjMjNlZGZmM2EyYWFlY2YxYjBkYzBhNjVlOTg0OWQ1OTky
ZDZhYjI3Li5lNGUxMjgxMWM4NDUxMzIwMzhkODdjZjNiYzZjODQ0NjMzZjAwZWUxIDEwMDY0NAot
LS0gYS9Tb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxMaW5rRWxlbWVudC5jcHAKKysrIGIvU291cmNl
L1dlYkNvcmUvaHRtbC9IVE1MTGlua0VsZW1lbnQuY3BwCkBAIC0yNjQsNyArMjY0LDcgQEAgdm9p
ZCBIVE1MTGlua0VsZW1lbnQ6OmNsZWFyU2hlZXQoKQogICAgIEFTU0VSVChtX3NoZWV0KTsKICAg
ICBBU1NFUlQobV9zaGVldC0+b3duZXJOb2RlKCkgPT0gdGhpcyk7CiAgICAgbV9zaGVldC0+Y2xl
YXJPd25lck5vZGUoKTsKLSAgICBtX3NoZWV0ID0gMDsKKyAgICBtX3NoZWV0ID0gbnVsbHB0cjsK
IH0KIAogTm9kZTo6SW5zZXJ0aW9uTm90aWZpY2F0aW9uUmVxdWVzdCBIVE1MTGlua0VsZW1lbnQ6
Omluc2VydGVkSW50byhDb250YWluZXJOb2RlJiBpbnNlcnRpb25Qb2ludCkKZGlmZiAtLWdpdCBh
L1NvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTE1lZGlhRWxlbWVudC5jcHAgYi9Tb3VyY2UvV2ViQ29y
ZS9odG1sL0hUTUxNZWRpYUVsZW1lbnQuY3BwCmluZGV4IDRmZWFlYjk3Yzk5YzE4NTE1NGQ3ZjM5
OTM3ZjRiZTVjNmM0MzgzZTEuLmRkODg5MmYzY2I0Y2Q3OGRkNGZkZjc4MGZlMmUwNTFkYTJkYzQ5
NjYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTE1lZGlhRWxlbWVudC5jcHAK
KysrIGIvU291cmNlL1dlYkNvcmUvaHRtbC9IVE1MTWVkaWFFbGVtZW50LmNwcApAQCAtNDU3LDcg
KzQ1Nyw3IEBAIEhUTUxNZWRpYUVsZW1lbnQ6On5IVE1MTWVkaWFFbGVtZW50KCkKIAogICAgIGlm
IChtX21lZGlhQ29udHJvbGxlcikgewogICAgICAgICBtX21lZGlhQ29udHJvbGxlci0+cmVtb3Zl
TWVkaWFFbGVtZW50KHRoaXMpOwotICAgICAgICBtX21lZGlhQ29udHJvbGxlciA9IDA7CisgICAg
ICAgIG1fbWVkaWFDb250cm9sbGVyID0gbnVsbHB0cjsKICAgICB9CiAKICNpZiBFTkFCTEUoTUVE
SUFfU09VUkNFKQpAQCAtOTQyLDcgKzk0Miw3IEBAIHZvaWQgSFRNTE1lZGlhRWxlbWVudDo6cHJl
cGFyZUZvckxvYWQoKQogCiAgICAgLy8gMSAtIEFib3J0IGFueSBhbHJlYWR5LXJ1bm5pbmcgaW5z
dGFuY2Ugb2YgdGhlIHJlc291cmNlIHNlbGVjdGlvbiBhbGdvcml0aG0gZm9yIHRoaXMgZWxlbWVu
dC4KICAgICBtX2xvYWRTdGF0ZSA9IFdhaXRpbmdGb3JTb3VyY2U7Ci0gICAgbV9jdXJyZW50U291
cmNlTm9kZSA9IDA7CisgICAgbV9jdXJyZW50U291cmNlTm9kZSA9IG51bGxwdHI7CiAKICAgICAv
LyAyIC0gSWYgdGhlcmUgYXJlIGFueSB0YXNrcyBmcm9tIHRoZSBtZWRpYSBlbGVtZW50J3MgbWVk
aWEgZWxlbWVudCBldmVudCB0YXNrIHNvdXJjZSBpbiAKICAgICAvLyBvbmUgb2YgdGhlIHRhc2sg
cXVldWVzLCB0aGVuIHJlbW92ZSB0aG9zZSB0YXNrcy4KQEAgLTEwMDYsNyArMTAwNiw3IEBAIHZv
aWQgSFRNTE1lZGlhRWxlbWVudDo6cHJlcGFyZUZvckxvYWQoKQogICAgIHNldFBsYXliYWNrUmF0
ZShkZWZhdWx0UGxheWJhY2tSYXRlKCkpOwogCiAgICAgLy8gNiAtIFNldCB0aGUgZXJyb3IgYXR0
cmlidXRlIHRvIG51bGwgYW5kIHRoZSBhdXRvcGxheWluZyBmbGFnIHRvIHRydWUuCi0gICAgbV9l
cnJvciA9IDA7CisgICAgbV9lcnJvciA9IG51bGxwdHI7CiAgICAgbV9hdXRvcGxheWluZyA9IHRy
dWU7CiAKICAgICAvLyA3IC0gSW52b2tlIHRoZSBtZWRpYSBlbGVtZW50J3MgcmVzb3VyY2Ugc2Vs
ZWN0aW9uIGFsZ29yaXRobS4KQEAgLTExMDEsNyArMTEwMSw3IEBAIHZvaWQgSFRNTE1lZGlhRWxl
bWVudDo6c2VsZWN0TWVkaWFSZXNvdXJjZSgpCiAgICAgICAgIGlmIChhdXRvIGZpcnN0U291cmNl
ID0gY2hpbGRyZW5PZlR5cGU8SFRNTFNvdXJjZUVsZW1lbnQ+KCp0aGlzKS5maXJzdCgpKSB7CiAg
ICAgICAgICAgICBtb2RlID0gY2hpbGRyZW47CiAgICAgICAgICAgICBtX25leHRDaGlsZE5vZGVU
b0NvbnNpZGVyID0gZmlyc3RTb3VyY2U7Ci0gICAgICAgICAgICBtX2N1cnJlbnRTb3VyY2VOb2Rl
ID0gMDsKKyAgICAgICAgICAgIG1fY3VycmVudFNvdXJjZU5vZGUgPSBudWxscHRyOwogICAgICAg
ICB9IGVsc2UgewogICAgICAgICAgICAgLy8gT3RoZXJ3aXNlIHRoZSBtZWRpYSBlbGVtZW50IGhh
cyBuZWl0aGVyIGEgc3JjIGF0dHJpYnV0ZSBub3IgYSBzb3VyY2UgZWxlbWVudCAKICAgICAgICAg
ICAgIC8vIGNoaWxkOiBzZXQgdGhlIG5ldHdvcmtTdGF0ZSB0byBORVRXT1JLX0VNUFRZLCBhbmQg
YWJvcnQgdGhlc2Ugc3RlcHM7IHRoZSAKQEAgLTEyNzcsNyArMTI3Nyw3IEBAIHZvaWQgSFRNTE1l
ZGlhRWxlbWVudDo6bG9hZFJlc291cmNlKGNvbnN0IFVSTCYgaW5pdGlhbFVSTCwgQ29udGVudFR5
cGUmIGNvbnRlbnRUCiAgICAgICAgIGVsc2UgewogICAgICAgICAgICAgLy8gRm9yZ2V0IG91ciBy
ZWZlcmVuY2UgdG8gdGhlIE1lZGlhU291cmNlLCBzbyB3ZSBsZWF2ZSBpdCBhbG9uZQogICAgICAg
ICAgICAgLy8gd2hpbGUgcHJvY2Vzc2luZyByZW1haW5kZXIgb2YgbG9hZCBmYWlsdXJlLgotICAg
ICAgICAgICAgbV9tZWRpYVNvdXJjZSA9IDA7CisgICAgICAgICAgICBtX21lZGlhU291cmNlID0g
bnVsbHB0cjsKICAgICAgICAgICAgIG1lZGlhTG9hZGluZ0ZhaWxlZChNZWRpYVBsYXllcjo6Rm9y
bWF0RXJyb3IpOwogICAgICAgICB9CiAgICAgfSBlbHNlCkBAIC0xODAwLDcgKzE4MDAsNyBAQCB2
b2lkIEhUTUxNZWRpYUVsZW1lbnQ6Om5vbmVTdXBwb3J0ZWQoKQogCiAgICAgc3RvcFBlcmlvZGlj
VGltZXJzKCk7CiAgICAgbV9sb2FkU3RhdGUgPSBXYWl0aW5nRm9yU291cmNlOwotICAgIG1fY3Vy
cmVudFNvdXJjZU5vZGUgPSAwOworICAgIG1fY3VycmVudFNvdXJjZU5vZGUgPSBudWxscHRyOwog
CiAgICAgLy8gNC44LjEwLjUgCiAgICAgLy8gNiAtIFJlYWNoaW5nIHRoaXMgc3RlcCBpbmRpY2F0
ZXMgdGhhdCB0aGUgbWVkaWEgcmVzb3VyY2UgZmFpbGVkIHRvIGxvYWQgb3IgdGhhdCB0aGUgZ2l2
ZW4gCkBAIC0yOTM5LDcgKzI5MzksNyBAQCB2b2lkIEhUTUxNZWRpYUVsZW1lbnQ6OmNsb3NlTWVk
aWFTb3VyY2UoKQogICAgICAgICByZXR1cm47CiAKICAgICBtX21lZGlhU291cmNlLT5jbG9zZSgp
OwotICAgIG1fbWVkaWFTb3VyY2UgPSAwOworICAgIG1fbWVkaWFTb3VyY2UgPSBudWxscHRyOwog
fQogI2VuZGlmCiAKQEAgLTQxMTIsOCArNDExMiw4IEBAIGNoZWNrX2FnYWluOgogICAgICAgICBt
X2N1cnJlbnRTb3VyY2VOb2RlID0gc291cmNlOwogICAgICAgICBtX25leHRDaGlsZE5vZGVUb0Nv
bnNpZGVyID0gc291cmNlLT5uZXh0U2libGluZygpOwogICAgIH0gZWxzZSB7Ci0gICAgICAgIG1f
Y3VycmVudFNvdXJjZU5vZGUgPSAwOwotICAgICAgICBtX25leHRDaGlsZE5vZGVUb0NvbnNpZGVy
ID0gMDsKKyAgICAgICAgbV9jdXJyZW50U291cmNlTm9kZSA9IG51bGxwdHI7CisgICAgICAgIG1f
bmV4dENoaWxkTm9kZVRvQ29uc2lkZXIgPSBudWxscHRyOwogICAgIH0KIAogI2lmICFMT0dfRElT
QUJMRUQKQEAgLTQxOTMsNyArNDE5Myw3IEBAIHZvaWQgSFRNTE1lZGlhRWxlbWVudDo6c291cmNl
V2FzUmVtb3ZlZChIVE1MU291cmNlRWxlbWVudCogc291cmNlKQogICAgICAgICAvLyBDbGVhciB0
aGUgY3VycmVudCBzb3VyY2Ugbm9kZSBwb2ludGVyLCBidXQgZG9uJ3QgY2hhbmdlIHRoZSBtb3Zp
ZSBhcyB0aGUgc3BlYyBzYXlzOgogICAgICAgICAvLyA0LjguOCAtIER5bmFtaWNhbGx5IG1vZGlm
eWluZyBhIHNvdXJjZSBlbGVtZW50IGFuZCBpdHMgYXR0cmlidXRlIHdoZW4gdGhlIGVsZW1lbnQg
aXMgYWxyZWFkeSAKICAgICAgICAgLy8gaW5zZXJ0ZWQgaW4gYSB2aWRlbyBvciBhdWRpbyBlbGVt
ZW50IHdpbGwgaGF2ZSBubyBlZmZlY3QuCi0gICAgICAgIG1fY3VycmVudFNvdXJjZU5vZGUgPSAw
OworICAgICAgICBtX2N1cnJlbnRTb3VyY2VOb2RlID0gbnVsbHB0cjsKICAgICAgICAgTE9HKE1l
ZGlhLCAiSFRNTE1lZGlhRWxlbWVudDo6c291cmNlUmVtb3ZlZCglcCkgLSBtX2N1cnJlbnRTb3Vy
Y2VOb2RlIHNldCB0byAwIiwgdGhpcyk7CiAgICAgfQogfQpAQCAtNDc5NSw3ICs0Nzk1LDcgQEAg
dm9pZCBIVE1MTWVkaWFFbGVtZW50Ojp1c2VyQ2FuY2VsbGVkTG9hZCgpCiAgICAgc2V0U2hvdWxk
RGVsYXlMb2FkRXZlbnQoZmFsc2UpOwogCiAgICAgLy8gNiAtIEFib3J0IHRoZSBvdmVyYWxsIHJl
c291cmNlIHNlbGVjdGlvbiBhbGdvcml0aG0uCi0gICAgbV9jdXJyZW50U291cmNlTm9kZSA9IDA7
CisgICAgbV9jdXJyZW50U291cmNlTm9kZSA9IG51bGxwdHI7CiAKICAgICAvLyBSZXNldCBtX3Jl
YWR5U3RhdGUgc2luY2UgbV9wbGF5ZXIgaXMgZ29uZS4KICAgICBtX3JlYWR5U3RhdGUgPSBIQVZF
X05PVEhJTkc7CkBAIC00ODEyLDggKzQ4MTIsOCBAQCB2b2lkIEhUTUxNZWRpYUVsZW1lbnQ6OmNs
ZWFyTWVkaWFQbGF5ZXIoaW50IGZsYWdzKQogCiAjaWYgVVNFKFBMQVRGT1JNX1RFWFRfVFJBQ0tf
TUVOVSkKICAgICBpZiAocGxhdGZvcm1UZXh0VHJhY2tNZW51KCkpIHsKLSAgICAgICAgbV9wbGF0
Zm9ybU1lbnUtPnNldENsaWVudCgwKTsKLSAgICAgICAgbV9wbGF0Zm9ybU1lbnUgPSAwOworICAg
ICAgICBtX3BsYXRmb3JtTWVudS0+c2V0Q2xpZW50KG51bGxwdHIpOworICAgICAgICBtX3BsYXRm
b3JtTWVudSA9IG51bGxwdHI7CiAgICAgfQogI2VuZGlmCiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9X
ZWJDb3JlL2h0bWwvSFRNTFBsdWdJbkVsZW1lbnQuY3BwIGIvU291cmNlL1dlYkNvcmUvaHRtbC9I
VE1MUGx1Z0luRWxlbWVudC5jcHAKaW5kZXggMjIwNDZlYTg0MzU1NmM0ODBmMTNiNzk1NjMyZTc5
M2NmYTc0M2E5OS4uZDc4NmRmNGZlODcxMDNmNTIwMTNhYjdkNzc5OTcxMDQ1ZGEyYzk2MSAxMDA2
NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvaHRtbC9IVE1MUGx1Z0luRWxlbWVudC5jcHAKKysrIGIv
U291cmNlL1dlYkNvcmUvaHRtbC9IVE1MUGx1Z0luRWxlbWVudC5jcHAKQEAgLTEwNCw3ICsxMDQs
NyBAQCBib29sIEhUTUxQbHVnSW5FbGVtZW50Ojp3aWxsUmVzcG9uZFRvTW91c2VDbGlja0V2ZW50
cygpCiAKIHZvaWQgSFRNTFBsdWdJbkVsZW1lbnQ6OndpbGxEZXRhY2hSZW5kZXJlcnMoKQogewot
ICAgIG1faW5zdGFuY2UuY2xlYXIoKTsKKyAgICBtX2luc3RhbmNlID0gbnVsbHB0cjsKIAogICAg
IGlmIChtX2lzQ2FwdHVyaW5nTW91c2VFdmVudHMpIHsKICAgICAgICAgaWYgKEZyYW1lKiBmcmFt
ZSA9IGRvY3VtZW50KCkuZnJhbWUoKSkKQEAgLTEyMiw3ICsxMjIsNyBAQCB2b2lkIEhUTUxQbHVn
SW5FbGVtZW50Ojp3aWxsRGV0YWNoUmVuZGVyZXJzKCkKIAogdm9pZCBIVE1MUGx1Z0luRWxlbWVu
dDo6cmVzZXRJbnN0YW5jZSgpCiB7Ci0gICAgbV9pbnN0YW5jZS5jbGVhcigpOworICAgIG1faW5z
dGFuY2UgPSBudWxscHRyOwogfQogCiBQYXNzUmVmUHRyPEpTQzo6QmluZGluZ3M6Okluc3RhbmNl
PiBIVE1MUGx1Z0luRWxlbWVudDo6Z2V0SW5zdGFuY2UoKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dl
YkNvcmUvaHRtbC9IVE1MVGFibGVFbGVtZW50LmNwcCBiL1NvdXJjZS9XZWJDb3JlL2h0bWwvSFRN
TFRhYmxlRWxlbWVudC5jcHAKaW5kZXggNGZiNjU2OWFlMjFlOTU3MzYzNzAwMjM2MGNhMzNmOWI1
MTcyYzU1ZC4uNzQ1NzM2MWI2ZTEyNWVhZWY5NjVhZjU0NTMzYmYzM2Y2ODQ2ZWFhNyAxMDA2NDQK
LS0tIGEvU291cmNlL1dlYkNvcmUvaHRtbC9IVE1MVGFibGVFbGVtZW50LmNwcAorKysgYi9Tb3Vy
Y2UvV2ViQ29yZS9odG1sL0hUTUxUYWJsZUVsZW1lbnQuY3BwCkBAIC00MDIsNyArNDAyLDcgQEAg
dm9pZCBIVE1MVGFibGVFbGVtZW50OjpwYXJzZUF0dHJpYnV0ZShjb25zdCBRdWFsaWZpZWROYW1l
JiBuYW1lLCBjb25zdCBBdG9taWNTdHIKICAgICAgICAgSFRNTEVsZW1lbnQ6OnBhcnNlQXR0cmli
dXRlKG5hbWUsIHZhbHVlKTsKIAogICAgIGlmIChib3JkZXJzQmVmb3JlICE9IGNlbGxCb3JkZXJz
KCkgfHwgb2xkUGFkZGluZyAhPSBtX3BhZGRpbmcpIHsKLSAgICAgICAgbV9zaGFyZWRDZWxsU3R5
bGUgPSAwOworICAgICAgICBtX3NoYXJlZENlbGxTdHlsZSA9IG51bGxwdHI7CiAgICAgICAgIGJv
b2wgY2VsbENoYW5nZWQgPSBmYWxzZTsKICAgICAgICAgZm9yIChOb2RlKiBjaGlsZCA9IGZpcnN0
Q2hpbGQoKTsgY2hpbGQ7IGNoaWxkID0gY2hpbGQtPm5leHRTaWJsaW5nKCkpCiAgICAgICAgICAg
ICBjZWxsQ2hhbmdlZCB8PSBzZXRUYWJsZUNlbGxzQ2hhbmdlZChjaGlsZCk7CmRpZmYgLS1naXQg
YS9Tb3VyY2UvV2ViQ29yZS9odG1sL1BsdWdpbkRvY3VtZW50LmNwcCBiL1NvdXJjZS9XZWJDb3Jl
L2h0bWwvUGx1Z2luRG9jdW1lbnQuY3BwCmluZGV4IDc3OTZjMjdiM2RjMTg3MmNiNjExYjc4NjUx
ZDQyMjVlYTIzNjM0OTguLmU5Njc3MDkwZjRjMzg1M2E3Y2ZmMjA4YjIzYzMxZGM5ZDI1NDQ4MjEg
MTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2h0bWwvUGx1Z2luRG9jdW1lbnQuY3BwCisrKyBi
L1NvdXJjZS9XZWJDb3JlL2h0bWwvUGx1Z2luRG9jdW1lbnQuY3BwCkBAIC0xNjgsOCArMTY4LDgg
QEAgdm9pZCBQbHVnaW5Eb2N1bWVudDo6c2V0UGx1Z2luRWxlbWVudChQYXNzUmVmUHRyPEhUTUxQ
bHVnSW5FbGVtZW50PiBlbGVtZW50KQogdm9pZCBQbHVnaW5Eb2N1bWVudDo6ZGV0YWNoRnJvbVBs
dWdpbkVsZW1lbnQoKQogewogICAgIC8vIFJlbGVhc2UgdGhlIHBsdWdpbiBFbGVtZW50IHNvIHRo
YXQgd2UgZG9uJ3QgaGF2ZSBhIGNpcmN1bGFyIHJlZmVyZW5jZS4KLSAgICBtX3BsdWdpbkVsZW1l
bnQgPSAwOwotICAgIGZyYW1lKCktPmxvYWRlcigpLmNsaWVudCgpLnJlZGlyZWN0RGF0YVRvUGx1
Z2luKDApOworICAgIG1fcGx1Z2luRWxlbWVudCA9IG51bGxwdHI7CisgICAgZnJhbWUoKS0+bG9h
ZGVyKCkuY2xpZW50KCkucmVkaXJlY3REYXRhVG9QbHVnaW4obnVsbHB0cik7CiB9CiAKIHZvaWQg
UGx1Z2luRG9jdW1lbnQ6OmNhbmNlbE1hbnVhbFBsdWdpbkxvYWQoKQpkaWZmIC0tZ2l0IGEvU291
cmNlL1dlYkNvcmUvaHRtbC9UZXh0RmllbGRJbnB1dFR5cGUuY3BwIGIvU291cmNlL1dlYkNvcmUv
aHRtbC9UZXh0RmllbGRJbnB1dFR5cGUuY3BwCmluZGV4IDRiMjhhYThkYTJkMWE1NWRkOWVhNDIw
ZTQxNDJlMTRlNzMxYjc5YzUuLmVhZTNkYjI5ZWVlM2MyZGU5NWZlNzE4MGM1NDZmZjhlN2UyYTc2
N2UgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2h0bWwvVGV4dEZpZWxkSW5wdXRUeXBlLmNw
cAorKysgYi9Tb3VyY2UvV2ViQ29yZS9odG1sL1RleHRGaWVsZElucHV0VHlwZS5jcHAKQEAgLTQ2
Miw3ICs0NjIsNyBAQCB2b2lkIFRleHRGaWVsZElucHV0VHlwZTo6dXBkYXRlUGxhY2Vob2xkZXJU
ZXh0KCkKICAgICBpZiAocGxhY2Vob2xkZXJUZXh0LmlzRW1wdHkoKSkgewogICAgICAgICBpZiAo
bV9wbGFjZWhvbGRlcikgewogICAgICAgICAgICAgbV9wbGFjZWhvbGRlci0+cGFyZW50Tm9kZSgp
LT5yZW1vdmVDaGlsZChtX3BsYWNlaG9sZGVyLmdldCgpLCBBU1NFUlRfTk9fRVhDRVBUSU9OKTsK
LSAgICAgICAgICAgIG1fcGxhY2Vob2xkZXIuY2xlYXIoKTsKKyAgICAgICAgICAgIG1fcGxhY2Vo
b2xkZXIgPSBudWxscHRyOwogICAgICAgICB9CiAgICAgICAgIHJldHVybjsKICAgICB9CmRpZmYg
LS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9odG1sL1ZhbGlkYXRpb25NZXNzYWdlLmNwcCBiL1NvdXJj
ZS9XZWJDb3JlL2h0bWwvVmFsaWRhdGlvbk1lc3NhZ2UuY3BwCmluZGV4IDUzYjY3NWJjMmI0OTQ2
NzRlN2JmYzViYTM5YjY5YjY2Zjg5NWYwYjguLmY2MWUxYjVlZmUyNzA5MzFkYWIwZWMyZWVkZjBm
MzRiZDc3ODJiOTYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2h0bWwvVmFsaWRhdGlvbk1l
c3NhZ2UuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2h0bWwvVmFsaWRhdGlvbk1lc3NhZ2UuY3Bw
CkBAIC0yMzUsMTAgKzIzNSwxMCBAQCB2b2lkIFZhbGlkYXRpb25NZXNzYWdlOjpkZWxldGVCdWJi
bGVUcmVlKCkKIHsKICAgICBBU1NFUlQoIXZhbGlkYXRpb25NZXNzYWdlQ2xpZW50KCkpOwogICAg
IGlmIChtX2J1YmJsZSkgewotICAgICAgICBtX21lc3NhZ2VIZWFkaW5nID0gMDsKLSAgICAgICAg
bV9tZXNzYWdlQm9keSA9IDA7CisgICAgICAgIG1fbWVzc2FnZUhlYWRpbmcgPSBudWxscHRyOwor
ICAgICAgICBtX21lc3NhZ2VCb2R5ID0gbnVsbHB0cjsKICAgICAgICAgbV9lbGVtZW50LT51c2Vy
QWdlbnRTaGFkb3dSb290KCktPnJlbW92ZUNoaWxkKG1fYnViYmxlLmdldCgpLCBBU1NFUlRfTk9f
RVhDRVBUSU9OKTsKLSAgICAgICAgbV9idWJibGUgPSAwOworICAgICAgICBtX2J1YmJsZSA9IG51
bGxwdHI7CiAgICAgfQogICAgIG1fbWVzc2FnZSA9IFN0cmluZygpOwogfQpkaWZmIC0tZ2l0IGEv
U291cmNlL1dlYkNvcmUvaHRtbC9jYW52YXMvV2ViR0xQcm9ncmFtLmNwcCBiL1NvdXJjZS9XZWJD
b3JlL2h0bWwvY2FudmFzL1dlYkdMUHJvZ3JhbS5jcHAKaW5kZXggOTJjMDUxMTkwMWQzMDZjMzg1
MzlkNTUzMzk4ZjE1MDJiM2YwYWRhYy4uMWI3NTJlNmUwZmRiNGJhNjNjOTNiYzJlNzUzMDYyNTY1
YzJkNGNkNyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvaHRtbC9jYW52YXMvV2ViR0xQcm9n
cmFtLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9odG1sL2NhbnZhcy9XZWJHTFByb2dyYW0uY3Bw
CkBAIC01OCwxMSArNTgsMTEgQEAgdm9pZCBXZWJHTFByb2dyYW06OmRlbGV0ZU9iamVjdEltcGwo
R3JhcGhpY3NDb250ZXh0M0QqIGNvbnRleHQzZCwgUGxhdGZvcm0zRE9iamUKICAgICBjb250ZXh0
M2QtPmRlbGV0ZVByb2dyYW0ob2JqKTsKICAgICBpZiAobV92ZXJ0ZXhTaGFkZXIpIHsKICAgICAg
ICAgbV92ZXJ0ZXhTaGFkZXItPm9uRGV0YWNoZWQoY29udGV4dDNkKTsKLSAgICAgICAgbV92ZXJ0
ZXhTaGFkZXIgPSAwOworICAgICAgICBtX3ZlcnRleFNoYWRlciA9IG51bGxwdHI7CiAgICAgfQog
ICAgIGlmIChtX2ZyYWdtZW50U2hhZGVyKSB7CiAgICAgICAgIG1fZnJhZ21lbnRTaGFkZXItPm9u
RGV0YWNoZWQoY29udGV4dDNkKTsKLSAgICAgICAgbV9mcmFnbWVudFNoYWRlciA9IDA7CisgICAg
ICAgIG1fZnJhZ21lbnRTaGFkZXIgPSBudWxscHRyOwogICAgIH0KIH0KIApAQCAtMTQ4LDEyICsx
NDgsMTIgQEAgYm9vbCBXZWJHTFByb2dyYW06OmRldGFjaFNoYWRlcihXZWJHTFNoYWRlciogc2hh
ZGVyKQogICAgIGNhc2UgR3JhcGhpY3NDb250ZXh0M0Q6OlZFUlRFWF9TSEFERVI6CiAgICAgICAg
IGlmIChtX3ZlcnRleFNoYWRlciAhPSBzaGFkZXIpCiAgICAgICAgICAgICByZXR1cm4gZmFsc2U7
Ci0gICAgICAgIG1fdmVydGV4U2hhZGVyID0gMDsKKyAgICAgICAgbV92ZXJ0ZXhTaGFkZXIgPSBu
dWxscHRyOwogICAgICAgICByZXR1cm4gdHJ1ZTsKICAgICBjYXNlIEdyYXBoaWNzQ29udGV4dDNE
OjpGUkFHTUVOVF9TSEFERVI6CiAgICAgICAgIGlmIChtX2ZyYWdtZW50U2hhZGVyICE9IHNoYWRl
cikKICAgICAgICAgICAgIHJldHVybiBmYWxzZTsKLSAgICAgICAgbV9mcmFnbWVudFNoYWRlciA9
IDA7CisgICAgICAgIG1fZnJhZ21lbnRTaGFkZXIgPSBudWxscHRyOwogICAgICAgICByZXR1cm4g
dHJ1ZTsKICAgICBkZWZhdWx0OgogICAgICAgICByZXR1cm4gZmFsc2U7CmRpZmYgLS1naXQgYS9T
b3VyY2UvV2ViQ29yZS9odG1sL2NhbnZhcy9XZWJHTFJlbmRlcmluZ0NvbnRleHRCYXNlLmNwcCBi
L1NvdXJjZS9XZWJDb3JlL2h0bWwvY2FudmFzL1dlYkdMUmVuZGVyaW5nQ29udGV4dEJhc2UuY3Bw
CmluZGV4IGI2NmI2NjkwNGIxNGZmZGUyZjMzOWFkNmRhMjc2ZjZkNzZjMWI0YTMuLjdhMWNmZjNm
MjgzYTg4ODZjMTcyM2FhMDNmZGY5NzE5MWNlZGZlNTggMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJD
b3JlL2h0bWwvY2FudmFzL1dlYkdMUmVuZGVyaW5nQ29udGV4dEJhc2UuY3BwCisrKyBiL1NvdXJj
ZS9XZWJDb3JlL2h0bWwvY2FudmFzL1dlYkdMUmVuZGVyaW5nQ29udGV4dEJhc2UuY3BwCkBAIC00
OTQsMTAgKzQ5NCwxMCBAQCB2b2lkIFdlYkdMUmVuZGVyaW5nQ29udGV4dEJhc2U6OmluaXRpYWxp
emVOZXdDb250ZXh0KCkKICAgICBtX3VucGFja0ZsaXBZID0gZmFsc2U7CiAgICAgbV91bnBhY2tQ
cmVtdWx0aXBseUFscGhhID0gZmFsc2U7CiAgICAgbV91bnBhY2tDb2xvcnNwYWNlQ29udmVyc2lv
biA9IEdyYXBoaWNzQ29udGV4dDNEOjpCUk9XU0VSX0RFRkFVTFRfV0VCR0w7Ci0gICAgbV9ib3Vu
ZEFycmF5QnVmZmVyID0gMDsKLSAgICBtX2N1cnJlbnRQcm9ncmFtID0gMDsKLSAgICBtX2ZyYW1l
YnVmZmVyQmluZGluZyA9IDA7Ci0gICAgbV9yZW5kZXJidWZmZXJCaW5kaW5nID0gMDsKKyAgICBt
X2JvdW5kQXJyYXlCdWZmZXIgPSBudWxscHRyOworICAgIG1fY3VycmVudFByb2dyYW0gPSBudWxs
cHRyOworICAgIG1fZnJhbWVidWZmZXJCaW5kaW5nID0gbnVsbHB0cjsKKyAgICBtX3JlbmRlcmJ1
ZmZlckJpbmRpbmcgPSBudWxscHRyOwogICAgIG1fZGVwdGhNYXNrID0gdHJ1ZTsKICAgICBtX3N0
ZW5jaWxFbmFibGVkID0gZmFsc2U7CiAgICAgbV9zdGVuY2lsTWFzayA9IDB4RkZGRkZGRkY7CkBA
IC02MjMsNyArNjIzLDcgQEAgdm9pZCBXZWJHTFJlbmRlcmluZ0NvbnRleHRCYXNlOjpkZXN0cm95
R3JhcGhpY3NDb250ZXh0M0QoKQogICAgIGlmIChtX2NvbnRleHQpIHsKICAgICAgICAgbV9jb250
ZXh0LT5zZXRDb250ZXh0TG9zdENhbGxiYWNrKG51bGxwdHIpOwogICAgICAgICBtX2NvbnRleHQt
PnNldEVycm9yTWVzc2FnZUNhbGxiYWNrKG51bGxwdHIpOwotICAgICAgICBtX2NvbnRleHQuY2xl
YXIoKTsKKyAgICAgICAgbV9jb250ZXh0ID0gbnVsbHB0cjsKICAgICB9CiB9CiAKQEAgLTE0Nzks
NyArMTQ3OSw3IEBAIHZvaWQgV2ViR0xSZW5kZXJpbmdDb250ZXh0QmFzZTo6ZGVsZXRlQnVmZmVy
KFdlYkdMQnVmZmVyKiBidWZmZXIpCiAgICAgaWYgKCFkZWxldGVPYmplY3QoYnVmZmVyKSkKICAg
ICAgICAgcmV0dXJuOwogICAgIGlmIChtX2JvdW5kQXJyYXlCdWZmZXIgPT0gYnVmZmVyKQotICAg
ICAgICBtX2JvdW5kQXJyYXlCdWZmZXIgPSAwOworICAgICAgICBtX2JvdW5kQXJyYXlCdWZmZXIg
PSBudWxscHRyOwogCiAgICAgbV9ib3VuZFZlcnRleEFycmF5T2JqZWN0LT51bmJpbmRCdWZmZXIo
YnVmZmVyKTsKIH0KQEAgLTE0ODksNyArMTQ4OSw3IEBAIHZvaWQgV2ViR0xSZW5kZXJpbmdDb250
ZXh0QmFzZTo6ZGVsZXRlRnJhbWVidWZmZXIoV2ViR0xGcmFtZWJ1ZmZlciogZnJhbWVidWZmZXIp
CiAgICAgaWYgKCFkZWxldGVPYmplY3QoZnJhbWVidWZmZXIpKQogICAgICAgICByZXR1cm47CiAg
ICAgaWYgKGZyYW1lYnVmZmVyID09IG1fZnJhbWVidWZmZXJCaW5kaW5nKSB7Ci0gICAgICAgIG1f
ZnJhbWVidWZmZXJCaW5kaW5nID0gMDsKKyAgICAgICAgbV9mcmFtZWJ1ZmZlckJpbmRpbmcgPSBu
dWxscHRyOwogICAgICAgICBtX2NvbnRleHQtPmJpbmRGcmFtZWJ1ZmZlcihHcmFwaGljc0NvbnRl
eHQzRDo6RlJBTUVCVUZGRVIsIDApOwogICAgIH0KIH0KQEAgLTE1MDYsNyArMTUwNiw3IEBAIHZv
aWQgV2ViR0xSZW5kZXJpbmdDb250ZXh0QmFzZTo6ZGVsZXRlUmVuZGVyYnVmZmVyKFdlYkdMUmVu
ZGVyYnVmZmVyKiByZW5kZXJidWZmCiAgICAgaWYgKCFkZWxldGVPYmplY3QocmVuZGVyYnVmZmVy
KSkKICAgICAgICAgcmV0dXJuOwogICAgIGlmIChyZW5kZXJidWZmZXIgPT0gbV9yZW5kZXJidWZm
ZXJCaW5kaW5nKQotICAgICAgICBtX3JlbmRlcmJ1ZmZlckJpbmRpbmcgPSAwOworICAgICAgICBt
X3JlbmRlcmJ1ZmZlckJpbmRpbmcgPSBudWxscHRyOwogICAgIGlmIChtX2ZyYW1lYnVmZmVyQmlu
ZGluZykKICAgICAgICAgbV9mcmFtZWJ1ZmZlckJpbmRpbmctPnJlbW92ZUF0dGFjaG1lbnRGcm9t
Qm91bmRGcmFtZWJ1ZmZlcihyZW5kZXJidWZmZXIpOwogfQpkaWZmIC0tZ2l0IGEvU291cmNlL1dl
YkNvcmUvaHRtbC9jYW52YXMvV2ViR0xWZXJ0ZXhBcnJheU9iamVjdEJhc2UuY3BwIGIvU291cmNl
L1dlYkNvcmUvaHRtbC9jYW52YXMvV2ViR0xWZXJ0ZXhBcnJheU9iamVjdEJhc2UuY3BwCmluZGV4
IGY2ZDhkYTY2ZTgwMTQ3OTc4ZjgxNzU3YzYzYmU0NmVhYzY5NTU4NDkuLmYzOWMwZGRkMjI3Nzlk
MDVmMTYwZDE5Nzk1NjMxOGE2MDBlYjkzY2MgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2h0
bWwvY2FudmFzL1dlYkdMVmVydGV4QXJyYXlPYmplY3RCYXNlLmNwcAorKysgYi9Tb3VyY2UvV2Vi
Q29yZS9odG1sL2NhbnZhcy9XZWJHTFZlcnRleEFycmF5T2JqZWN0QmFzZS5jcHAKQEAgLTc2LDcg
Kzc2LDcgQEAgdm9pZCBXZWJHTFZlcnRleEFycmF5T2JqZWN0QmFzZTo6dW5iaW5kQnVmZmVyKFBh
c3NSZWZQdHI8V2ViR0xCdWZmZXI+IGJ1ZmZlcikKIHsKICAgICBpZiAobV9ib3VuZEVsZW1lbnRB
cnJheUJ1ZmZlciA9PSBidWZmZXIpIHsKICAgICAgICAgbV9ib3VuZEVsZW1lbnRBcnJheUJ1ZmZl
ci0+b25EZXRhY2hlZChjb250ZXh0KCktPmdyYXBoaWNzQ29udGV4dDNEKCkpOwotICAgICAgICBt
X2JvdW5kRWxlbWVudEFycmF5QnVmZmVyID0gMDsKKyAgICAgICAgbV9ib3VuZEVsZW1lbnRBcnJh
eUJ1ZmZlciA9IG51bGxwdHI7CiAgICAgfQogICAgIAogICAgIGZvciAoc2l6ZV90IGkgPSAwOyBp
IDwgbV92ZXJ0ZXhBdHRyaWJTdGF0ZS5zaXplKCk7ICsraSkgewpAQCAtOTUsNyArOTUsNyBAQCB2
b2lkIFdlYkdMVmVydGV4QXJyYXlPYmplY3RCYXNlOjp1bmJpbmRCdWZmZXIoUGFzc1JlZlB0cjxX
ZWJHTEJ1ZmZlcj4gYnVmZmVyKQogICAgICAgICAgICAgICAgIHN0YXRlLm9yaWdpbmFsU3RyaWRl
ID0gMDsKICAgICAgICAgICAgICAgICBzdGF0ZS5vZmZzZXQgPSAwOwogICAgICAgICAgICAgfSBl
bHNlCi0gICAgICAgICAgICAgICAgc3RhdGUuYnVmZmVyQmluZGluZyA9IDA7CisgICAgICAgICAg
ICAgICAgc3RhdGUuYnVmZmVyQmluZGluZyA9IG51bGxwdHI7CiAgICAgICAgIH0KICAgICB9CiB9
CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9odG1sL3RyYWNrL1RleHRUcmFjay5jcHAgYi9T
b3VyY2UvV2ViQ29yZS9odG1sL3RyYWNrL1RleHRUcmFjay5jcHAKaW5kZXggNzRlY2YxNmQ3MDk3
NjZmNGFmMWY0NWRjMjA2YzJkZWM2MzM2YTZmMS4uMmExMzNhNWZjZWFmZTNjN2IzYmMxODZhZDJi
ODU3MGY2MTJlZDMxOSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvaHRtbC90cmFjay9UZXh0
VHJhY2suY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2h0bWwvdHJhY2svVGV4dFRyYWNrLmNwcApA
QCAtMjQ1LDcgKzI0NSw3IEBAIFRleHRUcmFja0N1ZUxpc3QqIFRleHRUcmFjazo6Y3VlcygpCiAg
ICAgLy8gaHR0cDovL3d3dy53aGF0d2cub3JnL3NwZWNzL3dlYi1hcHBzL2N1cnJlbnQtd29yay8j
ZG9tLXRleHR0cmFjay1jdWVzCiAgICAgaWYgKG1fbW9kZSAhPSBkaXNhYmxlZEtleXdvcmQoKSkK
ICAgICAgICAgcmV0dXJuIGVuc3VyZVRleHRUcmFja0N1ZUxpc3QoKTsKLSAgICByZXR1cm4gMDsK
KyAgICByZXR1cm4gbnVsbHB0cjsKIH0KIAogdm9pZCBUZXh0VHJhY2s6OnJlbW92ZUFsbEN1ZXMo
KQpAQCAtMjU3LDkgKzI1Nyw5IEBAIHZvaWQgVGV4dFRyYWNrOjpyZW1vdmVBbGxDdWVzKCkKICAg
ICAgICAgbV9jbGllbnQtPnRleHRUcmFja1JlbW92ZUN1ZXModGhpcywgbV9jdWVzLmdldCgpKTsK
ICAgICAKICAgICBmb3IgKHNpemVfdCBpID0gMDsgaSA8IG1fY3Vlcy0+bGVuZ3RoKCk7ICsraSkK
LSAgICAgICAgbV9jdWVzLT5pdGVtKGkpLT5zZXRUcmFjaygwKTsKKyAgICAgICAgbV9jdWVzLT5p
dGVtKGkpLT5zZXRUcmFjayhudWxscHRyKTsKICAgICAKLSAgICBtX2N1ZXMgPSAwOworICAgIG1f
Y3VlcyA9IG51bGxwdHI7CiB9CiAKIFRleHRUcmFja0N1ZUxpc3QqIFRleHRUcmFjazo6YWN0aXZl
Q3VlcygpIGNvbnN0CkBAIC0yNzIsNyArMjcyLDcgQEAgVGV4dFRyYWNrQ3VlTGlzdCogVGV4dFRy
YWNrOjphY3RpdmVDdWVzKCkgY29uc3QKICAgICAvLyBodHRwOi8vd3d3LndoYXR3Zy5vcmcvc3Bl
Y3Mvd2ViLWFwcHMvY3VycmVudC13b3JrLyNkb20tdGV4dHRyYWNrLWFjdGl2ZWN1ZXMKICAgICBp
ZiAobV9jdWVzICYmIG1fbW9kZSAhPSBkaXNhYmxlZEtleXdvcmQoKSkKICAgICAgICAgcmV0dXJu
IG1fY3Vlcy0+YWN0aXZlQ3VlcygpOwotICAgIHJldHVybiAwOworICAgIHJldHVybiBudWxscHRy
OwogfQogCiB2b2lkIFRleHRUcmFjazo6YWRkQ3VlKFBhc3NSZWZQdHI8VGV4dFRyYWNrQ3VlPiBw
cnBDdWUsIEV4Y2VwdGlvbkNvZGUmIGVjKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvaHRt
bC90cmFjay9WVFRDdWUuY3BwIGIvU291cmNlL1dlYkNvcmUvaHRtbC90cmFjay9WVFRDdWUuY3Bw
CmluZGV4IDM0YTJlZTc5NmE4ODgwMDY5MDMyODgzYzMxZWI4ZmYxNWU3NDdiZDMuLjBiOWM3MTc5
MzBiZjA2N2I1ZWEyM2U1MTQzMWY5ZmNlYTk3ZDZiYjUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJD
b3JlL2h0bWwvdHJhY2svVlRUQ3VlLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9odG1sL3RyYWNr
L1ZUVEN1ZS5jcHAKQEAgLTQ4Miw3ICs0ODIsNyBAQCB2b2lkIFZUVEN1ZTo6c2V0VGV4dChjb25z
dCBTdHJpbmcmIHRleHQpCiAgICAgd2lsbENoYW5nZSgpOwogICAgIC8vIENsZWFyIHRoZSBkb2N1
bWVudCBmcmFnbWVudCBidXQgZG9uJ3QgYm90aGVyIHRvIGNyZWF0ZSBpdCBhZ2FpbiBqdXN0IHll
dCBhcyB3ZSBjYW4gZG8gdGhhdAogICAgIC8vIHdoZW4gaXQgaXMgcmVxdWVzdGVkLgotICAgIG1f
d2ViVlRUTm9kZVRyZWUgPSAwOworICAgIG1fd2ViVlRUTm9kZVRyZWUgPSBudWxscHRyOwogICAg
IG1fY29udGVudCA9IHRleHQ7CiAgICAgZGlkQ2hhbmdlKCk7CiB9CmRpZmYgLS1naXQgYS9Tb3Vy
Y2UvV2ViQ29yZS9pbnNwZWN0b3IvSW5zcGVjdG9yQXBwbGljYXRpb25DYWNoZUFnZW50LmNwcCBi
L1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9JbnNwZWN0b3JBcHBsaWNhdGlvbkNhY2hlQWdlbnQu
Y3BwCmluZGV4IGZkNGNhZjYyMTQxMTlhODQ0N2MwMjk0NTc0MDRmMWY1MmJjOGUzN2EuLjJkY2Qy
NmU5OWJmM2EwN2E2NzYwOGFhZTEyZDU3NDQzOTA1YTYyNjUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9X
ZWJDb3JlL2luc3BlY3Rvci9JbnNwZWN0b3JBcHBsaWNhdGlvbkNhY2hlQWdlbnQuY3BwCisrKyBi
L1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9JbnNwZWN0b3JBcHBsaWNhdGlvbkNhY2hlQWdlbnQu
Y3BwCkBAIC01OCw3ICs1OCw3IEBAIHZvaWQgSW5zcGVjdG9yQXBwbGljYXRpb25DYWNoZUFnZW50
OjpkaWRDcmVhdGVGcm9udGVuZEFuZEJhY2tlbmQoRnJvbnRlbmRDaGFubmVsCiB2b2lkIEluc3Bl
Y3RvckFwcGxpY2F0aW9uQ2FjaGVBZ2VudDo6d2lsbERlc3Ryb3lGcm9udGVuZEFuZEJhY2tlbmQo
SW5zcGVjdG9yOjpEaXNjb25uZWN0UmVhc29uKQogewogICAgIG1fZnJvbnRlbmREaXNwYXRjaGVy
ID0gbnVsbHB0cjsKLSAgICBtX2JhY2tlbmREaXNwYXRjaGVyLmNsZWFyKCk7CisgICAgbV9iYWNr
ZW5kRGlzcGF0Y2hlciA9IG51bGxwdHI7CiAKICAgICBtX2luc3RydW1lbnRpbmdBZ2VudHMtPnNl
dEluc3BlY3RvckFwcGxpY2F0aW9uQ2FjaGVBZ2VudChudWxscHRyKTsKIH0KZGlmZiAtLWdpdCBh
L1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9JbnNwZWN0b3JDU1NBZ2VudC5jcHAgYi9Tb3VyY2Uv
V2ViQ29yZS9pbnNwZWN0b3IvSW5zcGVjdG9yQ1NTQWdlbnQuY3BwCmluZGV4IGE5MDgzZDA4MTQy
N2I5YzAxOTE4OWU2YzQ5YjgxNDYyZWYzNjM1OWUuLjNkMDYyMDgzNGViMjhjZGZkMDZiNThjZDY2
MjZiYTNjMTQ4ZTcxOTEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9JbnNw
ZWN0b3JDU1NBZ2VudC5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL0luc3BlY3Rv
ckNTU0FnZW50LmNwcApAQCAtMzYwLDcgKzM2MCw3IEBAIHZvaWQgSW5zcGVjdG9yQ1NTQWdlbnQ6
OmRpZENyZWF0ZUZyb250ZW5kQW5kQmFja2VuZChJbnNwZWN0b3I6OkZyb250ZW5kQ2hhbm5lbCoK
IHZvaWQgSW5zcGVjdG9yQ1NTQWdlbnQ6OndpbGxEZXN0cm95RnJvbnRlbmRBbmRCYWNrZW5kKElu
c3BlY3Rvcjo6RGlzY29ubmVjdFJlYXNvbikKIHsKICAgICBtX2Zyb250ZW5kRGlzcGF0Y2hlciA9
IG51bGxwdHI7Ci0gICAgbV9iYWNrZW5kRGlzcGF0Y2hlci5jbGVhcigpOworICAgIG1fYmFja2Vu
ZERpc3BhdGNoZXIgPSBudWxscHRyOwogCiAgICAgcmVzZXROb25QZXJzaXN0ZW50RGF0YSgpOwog
fQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL0luc3BlY3RvckNvbnRyb2xs
ZXIuY3BwIGIvU291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL0luc3BlY3RvckNvbnRyb2xsZXIuY3Bw
CmluZGV4IGYyM2E1ZWEwZWU1NmQwNWUxNDQ1MTA2YTcyNWFjMWM5NmE0NjhlOTkuLmJjODBiY2Ey
OWM5NTE0Nzc3ZGEwNGRjMWNhZTFiNzUxY2Y5ZmY4YWYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJD
b3JlL2luc3BlY3Rvci9JbnNwZWN0b3JDb250cm9sbGVyLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29y
ZS9pbnNwZWN0b3IvSW5zcGVjdG9yQ29udHJvbGxlci5jcHAKQEAgLTI2Myw3ICsyNjMsNyBAQCB2
b2lkIEluc3BlY3RvckNvbnRyb2xsZXI6OmRpc2Nvbm5lY3RGcm9udGVuZChEaXNjb25uZWN0UmVh
c29uIHJlYXNvbikKICAgICBtX2FnZW50cy53aWxsRGVzdHJveUZyb250ZW5kQW5kQmFja2VuZChy
ZWFzb24pOwogCiAgICAgbV9iYWNrZW5kRGlzcGF0Y2hlci0+Y2xlYXJGcm9udGVuZCgpOwotICAg
IG1fYmFja2VuZERpc3BhdGNoZXIuY2xlYXIoKTsKKyAgICBtX2JhY2tlbmREaXNwYXRjaGVyID0g
bnVsbHB0cjsKICAgICBtX2Zyb250ZW5kQ2hhbm5lbCA9IG51bGxwdHI7CiAKICAgICBtX2lzQXV0
b21hdGljSW5zcGVjdGlvbiA9IGZhbHNlOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvaW5z
cGVjdG9yL0luc3BlY3RvckRPTUFnZW50LmNwcCBiL1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9J
bnNwZWN0b3JET01BZ2VudC5jcHAKaW5kZXggMGVkMmM1YzA0ZmFhM2IxY2M4YmIwNWQ0OWFkOTZh
NmQxOTcxMmNhMS4uNzE5Zjc2MWRlNTZkOTA5MTU0YWYxNjIxNjBlMDJhMTQ2Y2E2MjYyZCAxMDA2
NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL0luc3BlY3RvckRPTUFnZW50LmNwcAor
KysgYi9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvSW5zcGVjdG9yRE9NQWdlbnQuY3BwCkBAIC0y
MzgsNyArMjM4LDcgQEAgdm9pZCBJbnNwZWN0b3JET01BZ2VudDo6ZGlkQ3JlYXRlRnJvbnRlbmRB
bmRCYWNrZW5kKEluc3BlY3Rvcjo6RnJvbnRlbmRDaGFubmVsKgogdm9pZCBJbnNwZWN0b3JET01B
Z2VudDo6d2lsbERlc3Ryb3lGcm9udGVuZEFuZEJhY2tlbmQoSW5zcGVjdG9yOjpEaXNjb25uZWN0
UmVhc29uKQogewogICAgIG1fZnJvbnRlbmREaXNwYXRjaGVyID0gbnVsbHB0cjsKLSAgICBtX2Jh
Y2tlbmREaXNwYXRjaGVyLmNsZWFyKCk7CisgICAgbV9iYWNrZW5kRGlzcGF0Y2hlciA9IG51bGxw
dHI7CiAKICAgICBtX2hpc3RvcnkucmVzZXQoKTsKICAgICBtX2RvbUVkaXRvci5yZXNldCgpOwpA
QCAtMjcyLDcgKzI3Miw3IEBAIHZvaWQgSW5zcGVjdG9yRE9NQWdlbnQ6OnJlc2V0KCkKICAgICBk
aXNjYXJkQmluZGluZ3MoKTsKICAgICBpZiAobV9yZXZhbGlkYXRlU3R5bGVBdHRyVGFzaykKICAg
ICAgICAgbV9yZXZhbGlkYXRlU3R5bGVBdHRyVGFzay0+cmVzZXQoKTsKLSAgICBtX2RvY3VtZW50
ID0gMDsKKyAgICBtX2RvY3VtZW50ID0gbnVsbHB0cjsKIH0KIAogdm9pZCBJbnNwZWN0b3JET01B
Z2VudDo6c2V0RE9NTGlzdGVuZXIoRE9NTGlzdGVuZXIqIGxpc3RlbmVyKQpkaWZmIC0tZ2l0IGEv
U291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL0luc3BlY3RvckRPTURlYnVnZ2VyQWdlbnQuY3BwIGIv
U291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL0luc3BlY3RvckRPTURlYnVnZ2VyQWdlbnQuY3BwCmlu
ZGV4IGY3NzhkZDk2MmNiMmRkYzE2MDYzMTc0NmE5OTViZGRhMGE5YjI3OGIuLmQ1MWQ0YmVhZTkx
MjIzNTA3YjZjNDQ2Nzc5NDRjYjI3YmEzNmM0NjQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3Jl
L2luc3BlY3Rvci9JbnNwZWN0b3JET01EZWJ1Z2dlckFnZW50LmNwcAorKysgYi9Tb3VyY2UvV2Vi
Q29yZS9pbnNwZWN0b3IvSW5zcGVjdG9yRE9NRGVidWdnZXJBZ2VudC5jcHAKQEAgLTEwOSw3ICsx
MDksNyBAQCB2b2lkIEluc3BlY3RvckRPTURlYnVnZ2VyQWdlbnQ6OmRpZENyZWF0ZUZyb250ZW5k
QW5kQmFja2VuZChJbnNwZWN0b3I6OkZyb250ZW5kQwogCiB2b2lkIEluc3BlY3RvckRPTURlYnVn
Z2VyQWdlbnQ6OndpbGxEZXN0cm95RnJvbnRlbmRBbmRCYWNrZW5kKEluc3BlY3Rvcjo6RGlzY29u
bmVjdFJlYXNvbikKIHsKLSAgICBtX2JhY2tlbmREaXNwYXRjaGVyLmNsZWFyKCk7CisgICAgbV9i
YWNrZW5kRGlzcGF0Y2hlciA9IG51bGxwdHI7CiAKICAgICBkaXNhYmxlKCk7CiB9CmRpZmYgLS1n
aXQgYS9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvSW5zcGVjdG9yRE9NU3RvcmFnZUFnZW50LmNw
cCBiL1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9JbnNwZWN0b3JET01TdG9yYWdlQWdlbnQuY3Bw
CmluZGV4IGIxNjg3Y2Y1NDg1M2Y2MjJmNTJhNjc2OGM5MmNjZjQyNThlN2E1ZjEuLjA0YWY4OGJj
ZTNkYzAwNTE0ODViM2UyYTUwZDk3MTYwMTdjMmY2OWYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJD
b3JlL2luc3BlY3Rvci9JbnNwZWN0b3JET01TdG9yYWdlQWdlbnQuY3BwCisrKyBiL1NvdXJjZS9X
ZWJDb3JlL2luc3BlY3Rvci9JbnNwZWN0b3JET01TdG9yYWdlQWdlbnQuY3BwCkBAIC03Niw3ICs3
Niw3IEBAIHZvaWQgSW5zcGVjdG9yRE9NU3RvcmFnZUFnZW50OjpkaWRDcmVhdGVGcm9udGVuZEFu
ZEJhY2tlbmQoSW5zcGVjdG9yOjpGcm9udGVuZENoCiB2b2lkIEluc3BlY3RvckRPTVN0b3JhZ2VB
Z2VudDo6d2lsbERlc3Ryb3lGcm9udGVuZEFuZEJhY2tlbmQoSW5zcGVjdG9yOjpEaXNjb25uZWN0
UmVhc29uKQogewogICAgIG1fZnJvbnRlbmREaXNwYXRjaGVyID0gbnVsbHB0cjsKLSAgICBtX2Jh
Y2tlbmREaXNwYXRjaGVyLmNsZWFyKCk7CisgICAgbV9iYWNrZW5kRGlzcGF0Y2hlciA9IG51bGxw
dHI7CiAKICAgICBFcnJvclN0cmluZyB1bnVzZWQ7CiAgICAgZGlzYWJsZSh1bnVzZWQpOwpkaWZm
IC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL0luc3BlY3RvckRhdGFiYXNlQWdlbnQu
Y3BwIGIvU291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL0luc3BlY3RvckRhdGFiYXNlQWdlbnQuY3Bw
CmluZGV4IDkxMzRkZmU0N2M3OWM2YzZlZjQ0MTM0NDUyMGI3MDQ2ZTFkNWRjMTMuLmJlMjdmOTU2
MTQ0NTlmYmZmZDFiMDJkNDg1Y2YxZDc3ZGVkOTY2ZWQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJD
b3JlL2luc3BlY3Rvci9JbnNwZWN0b3JEYXRhYmFzZUFnZW50LmNwcAorKysgYi9Tb3VyY2UvV2Vi
Q29yZS9pbnNwZWN0b3IvSW5zcGVjdG9yRGF0YWJhc2VBZ2VudC5jcHAKQEAgLTIzMSw3ICsyMzEs
NyBAQCB2b2lkIEluc3BlY3RvckRhdGFiYXNlQWdlbnQ6OmRpZENyZWF0ZUZyb250ZW5kQW5kQmFj
a2VuZChJbnNwZWN0b3I6OkZyb250ZW5kQ2hhbgogdm9pZCBJbnNwZWN0b3JEYXRhYmFzZUFnZW50
Ojp3aWxsRGVzdHJveUZyb250ZW5kQW5kQmFja2VuZChJbnNwZWN0b3I6OkRpc2Nvbm5lY3RSZWFz
b24pCiB7CiAgICAgbV9mcm9udGVuZERpc3BhdGNoZXIgPSBudWxscHRyOwotICAgIG1fYmFja2Vu
ZERpc3BhdGNoZXIuY2xlYXIoKTsKKyAgICBtX2JhY2tlbmREaXNwYXRjaGVyID0gbnVsbHB0cjsK
IAogICAgIEVycm9yU3RyaW5nIHVudXNlZDsKICAgICBkaXNhYmxlKHVudXNlZCk7CmRpZmYgLS1n
aXQgYS9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvSW5zcGVjdG9ySW5kZXhlZERCQWdlbnQuY3Bw
IGIvU291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL0luc3BlY3RvckluZGV4ZWREQkFnZW50LmNwcApp
bmRleCA5YmYxMjkxMTZjNGRjODBhMDg2MzFjMDRkNzA3YjE4M2FiOGJjYWNmLi4xNzJmYjU4MTI4
MDIwYTNhZTU1ZDY1ZDRmMDhmNTdhZTE2YTBlY2Y3IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29y
ZS9pbnNwZWN0b3IvSW5zcGVjdG9ySW5kZXhlZERCQWdlbnQuY3BwCisrKyBiL1NvdXJjZS9XZWJD
b3JlL2luc3BlY3Rvci9JbnNwZWN0b3JJbmRleGVkREJBZ2VudC5jcHAKQEAgLTU4Miw3ICs1ODIs
NyBAQCB2b2lkIEluc3BlY3RvckluZGV4ZWREQkFnZW50OjpkaWRDcmVhdGVGcm9udGVuZEFuZEJh
Y2tlbmQoSW5zcGVjdG9yOjpGcm9udGVuZENoYQogCiB2b2lkIEluc3BlY3RvckluZGV4ZWREQkFn
ZW50Ojp3aWxsRGVzdHJveUZyb250ZW5kQW5kQmFja2VuZChJbnNwZWN0b3I6OkRpc2Nvbm5lY3RS
ZWFzb24pCiB7Ci0gICAgbV9iYWNrZW5kRGlzcGF0Y2hlci5jbGVhcigpOworICAgIG1fYmFja2Vu
ZERpc3BhdGNoZXIgPSBudWxscHRyOwogCiAgICAgRXJyb3JTdHJpbmcgdW51c2VkOwogICAgIGRp
c2FibGUodW51c2VkKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9JbnNw
ZWN0b3JMYXllclRyZWVBZ2VudC5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvSW5zcGVj
dG9yTGF5ZXJUcmVlQWdlbnQuY3BwCmluZGV4IGJlNjQ0OTZlNDYzOGQwMGMzZWMyODkwODY1NmFl
Njc3YTczODk3NTguLmY2ZTQxZmFjODI4YWM2YzRmNzc2MDY1YWRmN2EzZGJmOGQ3OGJlMDQgMTAw
NjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9JbnNwZWN0b3JMYXllclRyZWVBZ2Vu
dC5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL0luc3BlY3RvckxheWVyVHJlZUFn
ZW50LmNwcApAQCAtNjUsNyArNjUsNyBAQCB2b2lkIEluc3BlY3RvckxheWVyVHJlZUFnZW50Ojpk
aWRDcmVhdGVGcm9udGVuZEFuZEJhY2tlbmQoSW5zcGVjdG9yOjpGcm9udGVuZENoYQogdm9pZCBJ
bnNwZWN0b3JMYXllclRyZWVBZ2VudDo6d2lsbERlc3Ryb3lGcm9udGVuZEFuZEJhY2tlbmQoSW5z
cGVjdG9yOjpEaXNjb25uZWN0UmVhc29uKQogewogICAgIG1fZnJvbnRlbmREaXNwYXRjaGVyID0g
bnVsbHB0cjsKLSAgICBtX2JhY2tlbmREaXNwYXRjaGVyLmNsZWFyKCk7CisgICAgbV9iYWNrZW5k
RGlzcGF0Y2hlciA9IG51bGxwdHI7CiAKICAgICBFcnJvclN0cmluZyB1bnVzZWQ7CiAgICAgZGlz
YWJsZSh1bnVzZWQpOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL0luc3Bl
Y3Rvck92ZXJsYXkuY3BwIGIvU291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL0luc3BlY3Rvck92ZXJs
YXkuY3BwCmluZGV4IDZkM2EwZjNjYTcyNjVhMWFmZjhjMzI4YTVmM2Y2Yjc5YzMzMWQ4ZDQuLmZh
ZWE3Y2VmMmM2MzJlZTUxMDJjZGYyYjY1NDQ5N2FiODA3YmUxNzcgMTAwNjQ0Ci0tLSBhL1NvdXJj
ZS9XZWJDb3JlL2luc3BlY3Rvci9JbnNwZWN0b3JPdmVybGF5LmNwcAorKysgYi9Tb3VyY2UvV2Vi
Q29yZS9pbnNwZWN0b3IvSW5zcGVjdG9yT3ZlcmxheS5jcHAKQEAgLTI0Myw5ICsyNDMsOSBAQCB2
b2lkIEluc3BlY3Rvck92ZXJsYXk6OnNldFBhdXNlZEluRGVidWdnZXJNZXNzYWdlKGNvbnN0IFN0
cmluZyogbWVzc2FnZSkKIAogdm9pZCBJbnNwZWN0b3JPdmVybGF5OjpoaWRlSGlnaGxpZ2h0KCkK
IHsKLSAgICBtX2hpZ2hsaWdodE5vZGUuY2xlYXIoKTsKLSAgICBtX2hpZ2hsaWdodE5vZGVMaXN0
LmNsZWFyKCk7Ci0gICAgbV9oaWdobGlnaHRRdWFkLnJlc2V0KCk7CisgICAgbV9oaWdobGlnaHRO
b2RlID0gbnVsbHB0cjsKKyAgICBtX2hpZ2hsaWdodE5vZGVMaXN0ID0gbnVsbHB0cjsKKyAgICBt
X2hpZ2hsaWdodFF1YWQgPSBudWxscHRyOwogICAgIHVwZGF0ZSgpOwogfQogCkBAIC0yNTMsNyAr
MjUzLDcgQEAgdm9pZCBJbnNwZWN0b3JPdmVybGF5OjpoaWdobGlnaHROb2RlTGlzdChQYXNzUmVm
UHRyPE5vZGVMaXN0PiBub2RlcywgY29uc3QgSGlnaGwKIHsKICAgICBtX25vZGVIaWdobGlnaHRD
b25maWcgPSBoaWdobGlnaHRDb25maWc7CiAgICAgbV9oaWdobGlnaHROb2RlTGlzdCA9IG5vZGVz
OwotICAgIG1faGlnaGxpZ2h0Tm9kZS5jbGVhcigpOworICAgIG1faGlnaGxpZ2h0Tm9kZSA9IG51
bGxwdHI7CiAgICAgdXBkYXRlKCk7CiB9CiAKQEAgLTI2MSw3ICsyNjEsNyBAQCB2b2lkIEluc3Bl
Y3Rvck92ZXJsYXk6OmhpZ2hsaWdodE5vZGUoTm9kZSogbm9kZSwgY29uc3QgSGlnaGxpZ2h0Q29u
ZmlnJiBoaWdobGlnaAogewogICAgIG1fbm9kZUhpZ2hsaWdodENvbmZpZyA9IGhpZ2hsaWdodENv
bmZpZzsKICAgICBtX2hpZ2hsaWdodE5vZGUgPSBub2RlOwotICAgIG1faGlnaGxpZ2h0Tm9kZUxp
c3QuY2xlYXIoKTsKKyAgICBtX2hpZ2hsaWdodE5vZGVMaXN0ID0gbnVsbHB0cjsKICAgICB1cGRh
dGUoKTsKIH0KIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL0luc3BlY3Rv
clBhZ2VBZ2VudC5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvSW5zcGVjdG9yUGFnZUFn
ZW50LmNwcAppbmRleCA2ZjUyYmZhZTBiNTIzYzk2ZjE0ZTU3NDE3MjI2OTVhMTc1NTFjYThhLi4z
ZTlmZWJlZmI1NGZlNDQ4YWM4ODA3NmQ5OTZmOWE4YWQwN2E1YjlhIDEwMDY0NAotLS0gYS9Tb3Vy
Y2UvV2ViQ29yZS9pbnNwZWN0b3IvSW5zcGVjdG9yUGFnZUFnZW50LmNwcAorKysgYi9Tb3VyY2Uv
V2ViQ29yZS9pbnNwZWN0b3IvSW5zcGVjdG9yUGFnZUFnZW50LmNwcApAQCAtMzQ4LDcgKzM0OCw3
IEBAIHZvaWQgSW5zcGVjdG9yUGFnZUFnZW50OjpkaWRDcmVhdGVGcm9udGVuZEFuZEJhY2tlbmQo
SW5zcGVjdG9yOjpGcm9udGVuZENoYW5uZWwqCiB2b2lkIEluc3BlY3RvclBhZ2VBZ2VudDo6d2ls
bERlc3Ryb3lGcm9udGVuZEFuZEJhY2tlbmQoSW5zcGVjdG9yOjpEaXNjb25uZWN0UmVhc29uKQog
ewogICAgIG1fZnJvbnRlbmREaXNwYXRjaGVyID0gbnVsbHB0cjsKLSAgICBtX2JhY2tlbmREaXNw
YXRjaGVyLmNsZWFyKCk7CisgICAgbV9iYWNrZW5kRGlzcGF0Y2hlciA9IG51bGxwdHI7CiAKICAg
ICBFcnJvclN0cmluZyB1bnVzZWQ7CiAgICAgZGlzYWJsZSh1bnVzZWQpOwpAQCAtMzc0LDcgKzM3
NCw3IEBAIHZvaWQgSW5zcGVjdG9yUGFnZUFnZW50OjplbmFibGUoRXJyb3JTdHJpbmcmKQogdm9p
ZCBJbnNwZWN0b3JQYWdlQWdlbnQ6OmRpc2FibGUoRXJyb3JTdHJpbmcmKQogewogICAgIG1fZW5h
YmxlZCA9IGZhbHNlOwotICAgIG1fc2NyaXB0c1RvRXZhbHVhdGVPbkxvYWQuY2xlYXIoKTsKKyAg
ICBtX3NjcmlwdHNUb0V2YWx1YXRlT25Mb2FkID0gbnVsbHB0cjsKICAgICBtX2luc3RydW1lbnRp
bmdBZ2VudHMtPnNldEluc3BlY3RvclBhZ2VBZ2VudChudWxscHRyKTsKIAogICAgIEVycm9yU3Ry
aW5nIHVudXNlZDsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9JbnNwZWN0
b3JSZXBsYXlBZ2VudC5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvSW5zcGVjdG9yUmVw
bGF5QWdlbnQuY3BwCmluZGV4IDY0Y2I4MTE3Yzc5ODFkYWM0MzRmNDNjYmYzYmZkOWUzMzEyODQ3
YTEuLjE4MWE2MDk4MmFmNzI2YzI0NGE0YzFiMzNkNmJjODdjMjliNTA1ODUgMTAwNjQ0Ci0tLSBh
L1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9JbnNwZWN0b3JSZXBsYXlBZ2VudC5jcHAKKysrIGIv
U291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL0luc3BlY3RvclJlcGxheUFnZW50LmNwcApAQCAtMTkz
LDcgKzE5Myw3IEBAIHZvaWQgSW5zcGVjdG9yUmVwbGF5QWdlbnQ6OmRpZENyZWF0ZUZyb250ZW5k
QW5kQmFja2VuZChJbnNwZWN0b3I6OkZyb250ZW5kQ2hhbm5lCiB2b2lkIEluc3BlY3RvclJlcGxh
eUFnZW50Ojp3aWxsRGVzdHJveUZyb250ZW5kQW5kQmFja2VuZChJbnNwZWN0b3I6OkRpc2Nvbm5l
Y3RSZWFzb24pCiB7CiAgICAgbV9mcm9udGVuZERpc3BhdGNoZXIgPSBudWxscHRyOwotICAgIG1f
YmFja2VuZERpc3BhdGNoZXIuY2xlYXIoKTsKKyAgICBtX2JhY2tlbmREaXNwYXRjaGVyID0gbnVs
bHB0cjsKIAogICAgIG1faW5zdHJ1bWVudGluZ0FnZW50cy0+c2V0SW5zcGVjdG9yUmVwbGF5QWdl
bnQobnVsbHB0cik7CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9JbnNw
ZWN0b3JSZXNvdXJjZUFnZW50LmNwcCBiL1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9JbnNwZWN0
b3JSZXNvdXJjZUFnZW50LmNwcAppbmRleCA4NTQ0ODljMDRmOTc0ZDk3Y2QzNjY0YWVhYWQ0NWZl
MDFiYjFlZjAxLi43YjU2YTBmZjlkMTU4ZjZiYThiMTM1M2EwYmFiMmU0ZDBlODlhMWQ3IDEwMDY0
NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvSW5zcGVjdG9yUmVzb3VyY2VBZ2VudC5j
cHAKKysrIGIvU291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL0luc3BlY3RvclJlc291cmNlQWdlbnQu
Y3BwCkBAIC0xODEsNyArMTgxLDcgQEAgdm9pZCBJbnNwZWN0b3JSZXNvdXJjZUFnZW50OjpkaWRD
cmVhdGVGcm9udGVuZEFuZEJhY2tlbmQoSW5zcGVjdG9yOjpGcm9udGVuZENoYW4KIHZvaWQgSW5z
cGVjdG9yUmVzb3VyY2VBZ2VudDo6d2lsbERlc3Ryb3lGcm9udGVuZEFuZEJhY2tlbmQoSW5zcGVj
dG9yOjpEaXNjb25uZWN0UmVhc29uKQogewogICAgIG1fZnJvbnRlbmREaXNwYXRjaGVyID0gbnVs
bHB0cjsKLSAgICBtX2JhY2tlbmREaXNwYXRjaGVyLmNsZWFyKCk7CisgICAgbV9iYWNrZW5kRGlz
cGF0Y2hlciA9IG51bGxwdHI7CiAKICAgICBFcnJvclN0cmluZyB1bnVzZWQ7CiAgICAgZGlzYWJs
ZSh1bnVzZWQpOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL0luc3BlY3Rv
clN0eWxlU2hlZXQuY3BwIGIvU291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL0luc3BlY3RvclN0eWxl
U2hlZXQuY3BwCmluZGV4IGI0N2M2NTRkM2Q3NjJjZTQ1ZGNmZTRmMTQ0YjRjOTY1N2VjYzlmYzQu
LjA2ZWMxYjZmMmY2NDRjMmMxZDA2ZDNmZWU5YWJlMTI4ZmMwYTVmOGMgMTAwNjQ0Ci0tLSBhL1Nv
dXJjZS9XZWJDb3JlL2luc3BlY3Rvci9JbnNwZWN0b3JTdHlsZVNoZWV0LmNwcAorKysgYi9Tb3Vy
Y2UvV2ViQ29yZS9pbnNwZWN0b3IvSW5zcGVjdG9yU3R5bGVTaGVldC5jcHAKQEAgLTEyNjEsNyAr
MTI2MSw3IEBAIHZvaWQgSW5zcGVjdG9yU3R5bGVTaGVldEZvcklubGluZVN0eWxlOjpkaWRNb2Rp
ZnlFbGVtZW50QXR0cmlidXRlKCkKICAgICBtX2lzU3R5bGVUZXh0VmFsaWQgPSBmYWxzZTsKICAg
ICBpZiAobV9lbGVtZW50LT5pc1N0eWxlZEVsZW1lbnQoKSAmJiBtX2VsZW1lbnQtPnN0eWxlKCkg
IT0gbV9pbnNwZWN0b3JTdHlsZS0+Y3NzU3R5bGUoKSkKICAgICAgICAgbV9pbnNwZWN0b3JTdHls
ZSA9IEluc3BlY3RvclN0eWxlOjpjcmVhdGUoSW5zcGVjdG9yQ1NTSWQoaWQoKSwgMCksIGlubGlu
ZVN0eWxlKCksIHRoaXMpOwotICAgIG1fcnVsZVNvdXJjZURhdGEuY2xlYXIoKTsKKyAgICBtX3J1
bGVTb3VyY2VEYXRhID0gbnVsbHB0cjsKIH0KIAogYm9vbCBJbnNwZWN0b3JTdHlsZVNoZWV0Rm9y
SW5saW5lU3R5bGU6OmdldFRleHQoU3RyaW5nKiByZXN1bHQpIGNvbnN0CkBAIC0xMjg1LDcgKzEy
ODUsNyBAQCBib29sIEluc3BlY3RvclN0eWxlU2hlZXRGb3JJbmxpbmVTdHlsZTo6c2V0U3R5bGVU
ZXh0KENTU1N0eWxlRGVjbGFyYXRpb24qIHN0eWxlLAogCiAgICAgbV9zdHlsZVRleHQgPSB0ZXh0
OwogICAgIG1faXNTdHlsZVRleHRWYWxpZCA9IHRydWU7Ci0gICAgbV9ydWxlU291cmNlRGF0YS5j
bGVhcigpOworICAgIG1fcnVsZVNvdXJjZURhdGEgPSBudWxscHRyOwogICAgIHJldHVybiAhZWM7
CiB9CiAKQEAgLTEzMDQsNyArMTMwNCw3IEBAIGJvb2wgSW5zcGVjdG9yU3R5bGVTaGVldEZvcklu
bGluZVN0eWxlOjplbnN1cmVQYXJzZWREYXRhUmVhZHkoKQogICAgIC8vIFRoZSAic3R5bGUiIHBy
b3BlcnR5IHZhbHVlIGNhbiBnZXQgY2hhbmdlZCBpbmRpcmVjdGx5LCBlLmcuIHZpYSBlbGVtZW50
LnN0eWxlLmJvcmRlcldpZHRoID0gIjJweCIuCiAgICAgY29uc3QgU3RyaW5nJiBjdXJyZW50U3R5
bGVUZXh0ID0gZWxlbWVudFN0eWxlVGV4dCgpOwogICAgIGlmIChtX3N0eWxlVGV4dCAhPSBjdXJy
ZW50U3R5bGVUZXh0KSB7Ci0gICAgICAgIG1fcnVsZVNvdXJjZURhdGEuY2xlYXIoKTsKKyAgICAg
ICAgbV9ydWxlU291cmNlRGF0YSA9IG51bGxwdHI7CiAgICAgICAgIG1fc3R5bGVUZXh0ID0gY3Vy
cmVudFN0eWxlVGV4dDsKICAgICAgICAgbV9pc1N0eWxlVGV4dFZhbGlkID0gdHJ1ZTsKICAgICB9
CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvSW5zcGVjdG9yVGltZWxpbmVB
Z2VudC5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvSW5zcGVjdG9yVGltZWxpbmVBZ2Vu
dC5jcHAKaW5kZXggMGUzMmJjNWU2Mzg5OGFmZjhlZDJiMDZhYmIwZjdhMWJhOTgwMDhhNC4uZjU3
NTZhMmQxZWE4Mzg3MTE1MGQ1MjFmOGVmZjE0OWEyM2FjNzhjYiAxMDA2NDQKLS0tIGEvU291cmNl
L1dlYkNvcmUvaW5zcGVjdG9yL0luc3BlY3RvclRpbWVsaW5lQWdlbnQuY3BwCisrKyBiL1NvdXJj
ZS9XZWJDb3JlL2luc3BlY3Rvci9JbnNwZWN0b3JUaW1lbGluZUFnZW50LmNwcApAQCAtMTAzLDcg
KzEwMyw3IEBAIHZvaWQgSW5zcGVjdG9yVGltZWxpbmVBZ2VudDo6ZGlkQ3JlYXRlRnJvbnRlbmRB
bmRCYWNrZW5kKEluc3BlY3Rvcjo6RnJvbnRlbmRDaGFuCiB2b2lkIEluc3BlY3RvclRpbWVsaW5l
QWdlbnQ6OndpbGxEZXN0cm95RnJvbnRlbmRBbmRCYWNrZW5kKEluc3BlY3Rvcjo6RGlzY29ubmVj
dFJlYXNvbiByZWFzb24pCiB7CiAgICAgbV9mcm9udGVuZERpc3BhdGNoZXIgPSBudWxscHRyOwot
ICAgIG1fYmFja2VuZERpc3BhdGNoZXIuY2xlYXIoKTsKKyAgICBtX2JhY2tlbmREaXNwYXRjaGVy
ID0gbnVsbHB0cjsKIAogICAgIG1faW5zdHJ1bWVudGluZ0FnZW50cy0+c2V0UGVyc2lzdGVudElu
c3BlY3RvclRpbWVsaW5lQWdlbnQobnVsbHB0cik7CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJD
b3JlL2luc3BlY3Rvci9JbnNwZWN0b3JXb3JrZXJBZ2VudC5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9p
bnNwZWN0b3IvSW5zcGVjdG9yV29ya2VyQWdlbnQuY3BwCmluZGV4IGRlYmM2OTg3OTVkOThjNDJi
OGViMThjMTBmZGEyYTI1Zjg1ZjJlOWIuLjVlMjFmMzViYjQ4MDNiZWIxZWEyZDU5ODRiNDJkMDg2
NjQ1ZDkxODEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9JbnNwZWN0b3JX
b3JrZXJBZ2VudC5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL0luc3BlY3Rvcldv
cmtlckFnZW50LmNwcApAQCAtMTI3LDcgKzEyNyw3IEBAIHZvaWQgSW5zcGVjdG9yV29ya2VyQWdl
bnQ6OndpbGxEZXN0cm95RnJvbnRlbmRBbmRCYWNrZW5kKEluc3BlY3Rvcjo6RGlzY29ubmVjdFJl
CiAgICAgZGlzYWJsZSh1bnVzZWQpOwogCiAgICAgbV9mcm9udGVuZERpc3BhdGNoZXIgPSBudWxs
cHRyOwotICAgIG1fYmFja2VuZERpc3BhdGNoZXIuY2xlYXIoKTsKKyAgICBtX2JhY2tlbmREaXNw
YXRjaGVyID0gbnVsbHB0cjsKIH0KIAogdm9pZCBJbnNwZWN0b3JXb3JrZXJBZ2VudDo6ZW5hYmxl
KEVycm9yU3RyaW5nJikKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9QYWdl
UnVudGltZUFnZW50LmNwcCBiL1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9QYWdlUnVudGltZUFn
ZW50LmNwcAppbmRleCA5M2RiNTcyYTdmMDQ1NTA1YjllNTE1ZTUwOTBjNGZjMGI1MDIxZTJkLi5l
MjQ0NWFiZjQ0M2QwOGY0Mzg0YTAzOWJjOWU1NWQ4ZDVmM2Y3MTJiIDEwMDY0NAotLS0gYS9Tb3Vy
Y2UvV2ViQ29yZS9pbnNwZWN0b3IvUGFnZVJ1bnRpbWVBZ2VudC5jcHAKKysrIGIvU291cmNlL1dl
YkNvcmUvaW5zcGVjdG9yL1BhZ2VSdW50aW1lQWdlbnQuY3BwCkBAIC02OSw3ICs2OSw3IEBAIHZv
aWQgUGFnZVJ1bnRpbWVBZ2VudDo6ZGlkQ3JlYXRlRnJvbnRlbmRBbmRCYWNrZW5kKEluc3BlY3Rv
cjo6RnJvbnRlbmRDaGFubmVsKiBmCiB2b2lkIFBhZ2VSdW50aW1lQWdlbnQ6OndpbGxEZXN0cm95
RnJvbnRlbmRBbmRCYWNrZW5kKEluc3BlY3Rvcjo6RGlzY29ubmVjdFJlYXNvbiByZWFzb24pCiB7
CiAgICAgbV9mcm9udGVuZERpc3BhdGNoZXIgPSBudWxscHRyOwotICAgIG1fYmFja2VuZERpc3Bh
dGNoZXIuY2xlYXIoKTsKKyAgICBtX2JhY2tlbmREaXNwYXRjaGVyID0gbnVsbHB0cjsKIAogICAg
IFN0cmluZyB1bnVzZWQ7CiAgICAgZGlzYWJsZSh1bnVzZWQpOwpkaWZmIC0tZ2l0IGEvU291cmNl
L1dlYkNvcmUvaW5zcGVjdG9yL1dlYkluamVjdGVkU2NyaXB0TWFuYWdlci5jcHAgYi9Tb3VyY2Uv
V2ViQ29yZS9pbnNwZWN0b3IvV2ViSW5qZWN0ZWRTY3JpcHRNYW5hZ2VyLmNwcAppbmRleCA5ZjRh
ZjQyNjkzZWM1NzU5NTMxMzM5NDQ2MGIxOTA1ZGZlMGFkNTg3Li41NjE5NmYwYWUzNzFlZjQ0M2Mw
NTIzZWIzMWJiNmZjNWVhZjNlNWIxIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0
b3IvV2ViSW5qZWN0ZWRTY3JpcHRNYW5hZ2VyLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9pbnNw
ZWN0b3IvV2ViSW5qZWN0ZWRTY3JpcHRNYW5hZ2VyLmNwcApAQCAtNDQsNyArNDQsNyBAQCB2b2lk
IFdlYkluamVjdGVkU2NyaXB0TWFuYWdlcjo6ZGlzY29ubmVjdCgpCiAgICAgSW5qZWN0ZWRTY3Jp
cHRNYW5hZ2VyOjpkaXNjb25uZWN0KCk7CiAKICAgICBtX2NvbW1hbmRMaW5lQVBJSG9zdC0+ZGlz
Y29ubmVjdCgpOwotICAgIG1fY29tbWFuZExpbmVBUElIb3N0LmNsZWFyKCk7CisgICAgbV9jb21t
YW5kTGluZUFQSUhvc3QgPSBudWxscHRyOwogfQogCiB2b2lkIFdlYkluamVjdGVkU2NyaXB0TWFu
YWdlcjo6ZGlkQ3JlYXRlSW5qZWN0ZWRTY3JpcHQoSW5qZWN0ZWRTY3JpcHQgaW5qZWN0ZWRTY3Jp
cHQpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvV29ya2VySW5zcGVjdG9y
Q29udHJvbGxlci5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvV29ya2VySW5zcGVjdG9y
Q29udHJvbGxlci5jcHAKaW5kZXggZjFmZTQxMDA1YWRmZWE0YmMwMWUwYWQ1Yjc3ZjU4ZjBiOTZj
MjcwZC4uZDgzNGUwZWE5ZjVhMzAwYTgzMjRmNGFmMWQ2NjZkM2I5MDZhYzY1MiAxMDA2NDQKLS0t
IGEvU291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL1dvcmtlckluc3BlY3RvckNvbnRyb2xsZXIuY3Bw
CisrKyBiL1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9Xb3JrZXJJbnNwZWN0b3JDb250cm9sbGVy
LmNwcApAQCAtMTI2LDcgKzEyNiw3IEBAIHZvaWQgV29ya2VySW5zcGVjdG9yQ29udHJvbGxlcjo6
ZGlzY29ubmVjdEZyb250ZW5kKEluc3BlY3Rvcjo6RGlzY29ubmVjdFJlYXNvbiByCiAKICAgICBt
X2FnZW50cy53aWxsRGVzdHJveUZyb250ZW5kQW5kQmFja2VuZChyZWFzb24pOwogICAgIG1fYmFj
a2VuZERpc3BhdGNoZXItPmNsZWFyRnJvbnRlbmQoKTsKLSAgICBtX2JhY2tlbmREaXNwYXRjaGVy
LmNsZWFyKCk7CisgICAgbV9iYWNrZW5kRGlzcGF0Y2hlciA9IG51bGxwdHI7CiAgICAgbV9mcm9u
dGVuZENoYW5uZWwgPSBudWxscHRyOwogfQogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9p
bnNwZWN0b3IvV29ya2VyUnVudGltZUFnZW50LmNwcCBiL1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rv
ci9Xb3JrZXJSdW50aW1lQWdlbnQuY3BwCmluZGV4IDIwNmE0MWY1ZmI0MmNkMTVhMzM2Y2NiMzk0
YjJlYWM1MWRlNTRmZmEuLjEyMjJlNTUyNzk4YmI2MzczOTlmOGFlNzU3YjRmZjRmZGJkMmU1MGQg
MTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9Xb3JrZXJSdW50aW1lQWdlbnQu
Y3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9Xb3JrZXJSdW50aW1lQWdlbnQuY3Bw
CkBAIC02MCw3ICs2MCw3IEBAIHZvaWQgV29ya2VyUnVudGltZUFnZW50OjpkaWRDcmVhdGVGcm9u
dGVuZEFuZEJhY2tlbmQoSW5zcGVjdG9yOjpGcm9udGVuZENoYW5uZWwqCiAKIHZvaWQgV29ya2Vy
UnVudGltZUFnZW50Ojp3aWxsRGVzdHJveUZyb250ZW5kQW5kQmFja2VuZChJbnNwZWN0b3I6OkRp
c2Nvbm5lY3RSZWFzb24gcmVhc29uKQogewotICAgIG1fYmFja2VuZERpc3BhdGNoZXIuY2xlYXIo
KTsKKyAgICBtX2JhY2tlbmREaXNwYXRjaGVyID0gbnVsbHB0cjsKIAogICAgIEluc3BlY3RvclJ1
bnRpbWVBZ2VudDo6d2lsbERlc3Ryb3lGcm9udGVuZEFuZEJhY2tlbmQocmVhc29uKTsKIH0KZGlm
ZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2xvYWRlci9Eb2N1bWVudExvYWRlci5jcHAgYi9Tb3Vy
Y2UvV2ViQ29yZS9sb2FkZXIvRG9jdW1lbnRMb2FkZXIuY3BwCmluZGV4IDVlYzQ3YWMzMWYzMzVi
MzVhZWUyODc3MjJkYjYwYzU0NDZkMWJiOGEuLjdjYTFmMjM4NjZlNmQxNzc1YzA2YTUyYWNlMzIy
MmMyMTE1NGI0OTUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2xvYWRlci9Eb2N1bWVudExv
YWRlci5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvbG9hZGVyL0RvY3VtZW50TG9hZGVyLmNwcApA
QCAtMTUyNCw3ICsxNTI0LDcgQEAgdm9pZCBEb2N1bWVudExvYWRlcjo6Z2V0SWNvbkxvYWREZWNp
c2lvbkZvckljb25VUkwoY29uc3QgU3RyaW5nJiB1cmxTdHJpbmcpCiB2b2lkIERvY3VtZW50TG9h
ZGVyOjpjb250aW51ZUljb25Mb2FkV2l0aERlY2lzaW9uKEljb25Mb2FkRGVjaXNpb24gZGVjaXNp
b24pCiB7CiAgICAgQVNTRVJUKG1faWNvbkxvYWREZWNpc2lvbkNhbGxiYWNrKTsKLSAgICBtX2lj
b25Mb2FkRGVjaXNpb25DYWxsYmFjayA9IDA7CisgICAgbV9pY29uTG9hZERlY2lzaW9uQ2FsbGJh
Y2sgPSBudWxscHRyOwogICAgIGlmIChtX2ZyYW1lKQogICAgICAgICBtX2ZyYW1lLT5sb2FkZXIo
KS5pY29uKCkuY29udGludWVMb2FkV2l0aERlY2lzaW9uKGRlY2lzaW9uKTsKIH0KZGlmZiAtLWdp
dCBhL1NvdXJjZS9XZWJDb3JlL2xvYWRlci9Eb2N1bWVudFRocmVhZGFibGVMb2FkZXIuY3BwIGIv
U291cmNlL1dlYkNvcmUvbG9hZGVyL0RvY3VtZW50VGhyZWFkYWJsZUxvYWRlci5jcHAKaW5kZXgg
MWU4NmZhYzFiZGY4MjlhNjNlMTY5MGFmMmEzZTQ3NTI2MzIwN2QxYy4uYjBlNTg5OGJiY2Y4MGY5
ZmZhOWQyODY1NGIyNzRlY2ZhYjgyOWZmMSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvbG9h
ZGVyL0RvY3VtZW50VGhyZWFkYWJsZUxvYWRlci5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvbG9h
ZGVyL0RvY3VtZW50VGhyZWFkYWJsZUxvYWRlci5jcHAKQEAgLTY0LDcgKzY0LDcgQEAgUGFzc1Jl
ZlB0cjxEb2N1bWVudFRocmVhZGFibGVMb2FkZXI+IERvY3VtZW50VGhyZWFkYWJsZUxvYWRlcjo6
Y3JlYXRlKERvY3VtZW50JgogewogICAgIFJlZlB0cjxEb2N1bWVudFRocmVhZGFibGVMb2FkZXI+
IGxvYWRlciA9IGFkb3B0UmVmKG5ldyBEb2N1bWVudFRocmVhZGFibGVMb2FkZXIoZG9jdW1lbnQs
IGNsaWVudCwgTG9hZEFzeW5jaHJvbm91c2x5LCByZXF1ZXN0LCBvcHRpb25zKSk7CiAgICAgaWYg
KCFsb2FkZXItPm1fcmVzb3VyY2UpCi0gICAgICAgIGxvYWRlciA9IDA7CisgICAgICAgIGxvYWRl
ciA9IG51bGxwdHI7CiAgICAgcmV0dXJuIGxvYWRlci5yZWxlYXNlKCk7CiB9CiAKZGlmZiAtLWdp
dCBhL1NvdXJjZS9XZWJDb3JlL2xvYWRlci9Eb2N1bWVudFdyaXRlci5jcHAgYi9Tb3VyY2UvV2Vi
Q29yZS9sb2FkZXIvRG9jdW1lbnRXcml0ZXIuY3BwCmluZGV4IGNjNTEzOTNjMTBmNjM2YmQ3NmVk
MTA5OGIzZWJjYzM2YzQyMmMxMTEuLmExYzM3N2Y4ZTFiMzQ2MDdkMjU3NTQxNWFjZmE0YWJjZjkx
MGI0MzEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2xvYWRlci9Eb2N1bWVudFdyaXRlci5j
cHAKKysrIGIvU291cmNlL1dlYkNvcmUvbG9hZGVyL0RvY3VtZW50V3JpdGVyLmNwcApAQCAtOTAs
NyArOTAsNyBAQCB2b2lkIERvY3VtZW50V3JpdGVyOjpyZXBsYWNlRG9jdW1lbnQoY29uc3QgU3Ry
aW5nJiBzb3VyY2UsIERvY3VtZW50KiBvd25lckRvY3VtZQogCiB2b2lkIERvY3VtZW50V3JpdGVy
OjpjbGVhcigpCiB7Ci0gICAgbV9kZWNvZGVyID0gMDsKKyAgICBtX2RlY29kZXIgPSBudWxscHRy
OwogICAgIG1faGFzUmVjZWl2ZWRTb21lRGF0YSA9IGZhbHNlOwogICAgIGlmICghbV9lbmNvZGlu
Z1dhc0Nob3NlbkJ5VXNlcikKICAgICAgICAgbV9lbmNvZGluZyA9IFN0cmluZygpOwpAQCAtMjQ1
LDcgKzI0NSw3IEBAIHZvaWQgRG9jdW1lbnRXcml0ZXI6OmVuZCgpCiAgICAgaWYgKCFtX3BhcnNl
cikKICAgICAgICAgcmV0dXJuOwogICAgIG1fcGFyc2VyLT5maW5pc2goKTsKLSAgICBtX3BhcnNl
ciA9IDA7CisgICAgbV9wYXJzZXIgPSBudWxscHRyOwogfQogCiB2b2lkIERvY3VtZW50V3JpdGVy
OjpzZXRFbmNvZGluZyhjb25zdCBTdHJpbmcmIG5hbWUsIGJvb2wgdXNlckNob3NlbikKZGlmZiAt
LWdpdCBhL1NvdXJjZS9XZWJDb3JlL2xvYWRlci9GcmFtZUxvYWRlci5jcHAgYi9Tb3VyY2UvV2Vi
Q29yZS9sb2FkZXIvRnJhbWVMb2FkZXIuY3BwCmluZGV4IDUyMmIxNTdkYmNiZWMwYjUwMTFmOTVl
ODY2NjZhOWUyMGM2OWJmY2QuLjNiZGI2MjFkN2RhYjU2MzZlMDA5ZTk1YTFjM2IwYjdmOWNiZjM4
OGIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2xvYWRlci9GcmFtZUxvYWRlci5jcHAKKysr
IGIvU291cmNlL1dlYkNvcmUvbG9hZGVyL0ZyYW1lTG9hZGVyLmNwcApAQCAtNjkyLDcgKzY5Miw3
IEBAIHZvaWQgRnJhbWVMb2FkZXI6OmRpZEJlZ2luRG9jdW1lbnQoYm9vbCBkaXNwYXRjaCkKIAog
ICAgIGlmIChtX3BlbmRpbmdTdGF0ZU9iamVjdCkgewogICAgICAgICBtX2ZyYW1lLmRvY3VtZW50
KCktPnN0YXRlUG9wcGVkKG1fcGVuZGluZ1N0YXRlT2JqZWN0LmdldCgpKTsKLSAgICAgICAgbV9w
ZW5kaW5nU3RhdGVPYmplY3QuY2xlYXIoKTsKKyAgICAgICAgbV9wZW5kaW5nU3RhdGVPYmplY3Qg
PSBudWxscHRyOwogICAgIH0KIAogICAgIGlmIChkaXNwYXRjaCkKQEAgLTgxOCw3ICs4MTgsNyBA
QCB2b2lkIEZyYW1lTG9hZGVyOjpjaGVja0NvbXBsZXRlZCgpCiAKICAgICAvLyBPSywgY29tcGxl
dGVkLgogICAgIG1faXNDb21wbGV0ZSA9IHRydWU7Ci0gICAgbV9yZXF1ZXN0ZWRIaXN0b3J5SXRl
bSA9IDA7CisgICAgbV9yZXF1ZXN0ZWRIaXN0b3J5SXRlbSA9IG51bGxwdHI7CiAgICAgbV9mcmFt
ZS5kb2N1bWVudCgpLT5zZXRSZWFkeVN0YXRlKERvY3VtZW50OjpDb21wbGV0ZSk7CiAKICNpZiBQ
TEFURk9STShJT1MpCkBAIC0xMTM3LDcgKzExMzcsNyBAQCB2b2lkIEZyYW1lTG9hZGVyOjpzZXR1
cEZvclJlcGxhY2UoKQogICAgIG1fY2xpZW50LnJldmVydFRvUHJvdmlzaW9uYWxTdGF0ZShtX2Rv
Y3VtZW50TG9hZGVyLmdldCgpKTsKICAgICBzZXRTdGF0ZShGcmFtZVN0YXRlUHJvdmlzaW9uYWwp
OwogICAgIG1fcHJvdmlzaW9uYWxEb2N1bWVudExvYWRlciA9IG1fZG9jdW1lbnRMb2FkZXI7Ci0g
ICAgbV9kb2N1bWVudExvYWRlciA9IDA7CisgICAgbV9kb2N1bWVudExvYWRlciA9IG51bGxwdHI7
CiAgICAgZGV0YWNoQ2hpbGRyZW4oKTsKIH0KIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUv
bG9hZGVyL1Byb2dyZXNzVHJhY2tlci5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9sb2FkZXIvUHJvZ3Jl
c3NUcmFja2VyLmNwcAppbmRleCAwNDA1NGRlNGVhYjM5NTFmOTVlMDdlOWRlZDMyZGM5MTZmZDdl
ZTA2Li5kNTZjYTA1ZGI5OTBiMzBhNmIwN2QxMmZiMmMwOWU5OTZiNzk3MjBmIDEwMDY0NAotLS0g
YS9Tb3VyY2UvV2ViQ29yZS9sb2FkZXIvUHJvZ3Jlc3NUcmFja2VyLmNwcAorKysgYi9Tb3VyY2Uv
V2ViQ29yZS9sb2FkZXIvUHJvZ3Jlc3NUcmFja2VyLmNwcApAQCAtMTEzLDcgKzExMyw3IEBAIHZv
aWQgUHJvZ3Jlc3NUcmFja2VyOjpyZXNldCgpCiAgICAgbV9sYXN0Tm90aWZpZWRQcm9ncmVzc1Rp
bWUgPSBzdGQ6OmNocm9ubzo6c3RlYWR5X2Nsb2NrOjp0aW1lX3BvaW50KCk7CiAgICAgbV9maW5h
bFByb2dyZXNzQ2hhbmdlZFNlbnQgPSBmYWxzZTsKICAgICBtX251bVByb2dyZXNzVHJhY2tlZEZy
YW1lcyA9IDA7Ci0gICAgbV9vcmlnaW5hdGluZ1Byb2dyZXNzRnJhbWUgPSAwOworICAgIG1fb3Jp
Z2luYXRpbmdQcm9ncmVzc0ZyYW1lID0gbnVsbHB0cjsKIAogICAgIG1faGVhcnRiZWF0c1dpdGhO
b1Byb2dyZXNzID0gMDsKICAgICBtX3RvdGFsQnl0ZXNSZWNlaXZlZEJlZm9yZVByZXZpb3VzSGVh
cnRiZWF0ID0gMDsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2xvYWRlci9SZXNvdXJjZUxv
YWRlci5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9sb2FkZXIvUmVzb3VyY2VMb2FkZXIuY3BwCmluZGV4
IDQzMWEwY2IxZDQ0NWJlMmZmNTkwM2Q2MjM1NDc2NmFhY2NlNDM1MzYuLjE2NmE0NTRjMTA5MGJh
OGJkMmRkYzBjY2M3YmEyMDMxMzJhOTEzODAgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2xv
YWRlci9SZXNvdXJjZUxvYWRlci5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvbG9hZGVyL1Jlc291
cmNlTG9hZGVyLmNwcApAQCAtOTAsOCArOTAsOCBAQCB2b2lkIFJlc291cmNlTG9hZGVyOjpyZWxl
YXNlUmVzb3VyY2VzKCkKICAgICAvLyBoYXMgYmVlbiBkZWFsbG9jYXRlZCBhbmQgYWxzbyB0byBh
dm9pZCByZWVudGVyaW5nIHRoaXMgbWV0aG9kLgogICAgIFJlZjxSZXNvdXJjZUxvYWRlcj4gcHJv
dGVjdCgqdGhpcyk7CiAKLSAgICBtX2ZyYW1lID0gMDsKLSAgICBtX2RvY3VtZW50TG9hZGVyID0g
MDsKKyAgICBtX2ZyYW1lID0gbnVsbHB0cjsKKyAgICBtX2RvY3VtZW50TG9hZGVyID0gbnVsbHB0
cjsKICAgICAKICAgICAvLyBXZSBuZWVkIHRvIHNldCByZWFjaGVkVGVybWluYWxTdGF0ZSB0byB0
cnVlIGJlZm9yZSB3ZSByZWxlYXNlCiAgICAgLy8gdGhlIHJlc291cmNlcyB0byBwcmV2ZW50IGEg
ZG91YmxlIGRlYWxsb2Mgb2YgV2ViVmlldyA8cmRhcjovL3Byb2JsZW0vNDM3MjYyOD4KQEAgLTEw
NCwxMSArMTA0LDExIEBAIHZvaWQgUmVzb3VyY2VMb2FkZXI6OnJlbGVhc2VSZXNvdXJjZXMoKQog
ICAgICAgICAvLyBDbGVhciBvdXQgdGhlIFJlc291cmNlSGFuZGxlJ3MgY2xpZW50IHNvIHRoYXQg
aXQgZG9lc24ndCB0cnkgdG8gY2FsbAogICAgICAgICAvLyB1cyBiYWNrIGFmdGVyIHdlIHJlbGVh
c2UgaXQsIHVubGVzcyBpdCBoYXMgYmVlbiByZXBsYWNlZCBieSBzb21lb25lIGVsc2UuCiAgICAg
ICAgIGlmIChtX2hhbmRsZS0+Y2xpZW50KCkgPT0gdGhpcykKLSAgICAgICAgICAgIG1faGFuZGxl
LT5zZXRDbGllbnQoMCk7Ci0gICAgICAgIG1faGFuZGxlID0gMDsKKyAgICAgICAgICAgIG1faGFu
ZGxlLT5zZXRDbGllbnQobnVsbHB0cik7CisgICAgICAgIG1faGFuZGxlID0gbnVsbHB0cjsKICAg
ICB9CiAKLSAgICBtX3Jlc291cmNlRGF0YSA9IDA7CisgICAgbV9yZXNvdXJjZURhdGEgPSBudWxs
cHRyOwogICAgIG1fZGVmZXJyZWRSZXF1ZXN0ID0gUmVzb3VyY2VSZXF1ZXN0KCk7CiB9CiAKQEAg
LTIyNSw3ICsyMjUsNyBAQCB2b2lkIFJlc291cmNlTG9hZGVyOjpzZXREZWZlcnNMb2FkaW5nKGJv
b2wgZGVmZXJzKQogRnJhbWVMb2FkZXIqIFJlc291cmNlTG9hZGVyOjpmcmFtZUxvYWRlcigpIGNv
bnN0CiB7CiAgICAgaWYgKCFtX2ZyYW1lKQotICAgICAgICByZXR1cm4gMDsKKyAgICAgICAgcmV0
dXJuIG51bGxwdHI7CiAgICAgcmV0dXJuICZtX2ZyYW1lLT5sb2FkZXIoKTsKIH0KIApAQCAtMjQ0
LDcgKzI0NCw3IEBAIHZvaWQgUmVzb3VyY2VMb2FkZXI6OnNldERhdGFCdWZmZXJpbmdQb2xpY3ko
RGF0YUJ1ZmZlcmluZ1BvbGljeSBkYXRhQnVmZmVyaW5nUG9sCiAKICAgICAvLyBSZXNldCBhbnkg
YWxyZWFkeSBidWZmZXJlZCBkYXRhCiAgICAgaWYgKGRhdGFCdWZmZXJpbmdQb2xpY3kgPT0gRG9O
b3RCdWZmZXJEYXRhKQotICAgICAgICBtX3Jlc291cmNlRGF0YSA9IDA7CisgICAgICAgIG1fcmVz
b3VyY2VEYXRhID0gbnVsbHB0cjsKIH0KICAgICAKIHZvaWQgUmVzb3VyY2VMb2FkZXI6OndpbGxT
d2l0Y2hUb1N1YnN0aXR1dGVSZXNvdXJjZSgpCkBAIC01MzAsNyArNTMwLDcgQEAgdm9pZCBSZXNv
dXJjZUxvYWRlcjo6Y2FuY2VsKGNvbnN0IFJlc291cmNlRXJyb3ImIGVycm9yKQogICAgICAgICBt
X2RvY3VtZW50TG9hZGVyLT5jYW5jZWxQZW5kaW5nU3Vic3RpdHV0ZUxvYWQodGhpcyk7CiAgICAg
ICAgIGlmIChtX2hhbmRsZSkgewogICAgICAgICAgICAgbV9oYW5kbGUtPmNhbmNlbCgpOwotICAg
ICAgICAgICAgbV9oYW5kbGUgPSAwOworICAgICAgICAgICAgbV9oYW5kbGUgPSBudWxscHRyOwog
ICAgICAgICB9CiAgICAgICAgIGNsZWFudXBGb3JFcnJvcihub25OdWxsRXJyb3IpOwogICAgIH0K
ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2xvYWRlci9hcHBjYWNoZS9BcHBsaWNhdGlvbkNh
Y2hlR3JvdXAuY3BwIGIvU291cmNlL1dlYkNvcmUvbG9hZGVyL2FwcGNhY2hlL0FwcGxpY2F0aW9u
Q2FjaGVHcm91cC5jcHAKaW5kZXggNjI3YzBmZTc5ZTc1ZTA4MzljNjYxOWNhNzRhYjk3MDkxODk4
OTJhNi4uNTliY2FjOWExMDBiYmM1NDM4YWQ0MDMyN2ZmN2ZmY2QzOTg5NzA2MyAxMDA2NDQKLS0t
IGEvU291cmNlL1dlYkNvcmUvbG9hZGVyL2FwcGNhY2hlL0FwcGxpY2F0aW9uQ2FjaGVHcm91cC5j
cHAKKysrIGIvU291cmNlL1dlYkNvcmUvbG9hZGVyL2FwcGNhY2hlL0FwcGxpY2F0aW9uQ2FjaGVH
cm91cC5jcHAKQEAgLTMyNyw3ICszMjcsNyBAQCB2b2lkIEFwcGxpY2F0aW9uQ2FjaGVHcm91cDo6
c3RvcExvYWRpbmcoKQogICAgICAgICBtX21hbmlmZXN0SGFuZGxlLT5zZXRDbGllbnQoMCk7CiAK
ICAgICAgICAgbV9tYW5pZmVzdEhhbmRsZS0+Y2FuY2VsKCk7Ci0gICAgICAgIG1fbWFuaWZlc3RI
YW5kbGUgPSAwOworICAgICAgICBtX21hbmlmZXN0SGFuZGxlID0gbnVsbHB0cjsKICAgICB9CiAg
ICAgCiAgICAgaWYgKG1fY3VycmVudEhhbmRsZSkgewpAQCAtMzM4LDExICszMzgsMTEgQEAgdm9p
ZCBBcHBsaWNhdGlvbkNhY2hlR3JvdXA6OnN0b3BMb2FkaW5nKCkKICAgICAgICAgbV9jdXJyZW50
SGFuZGxlLT5zZXRDbGllbnQoMCk7CiAKICAgICAgICAgbV9jdXJyZW50SGFuZGxlLT5jYW5jZWwo
KTsKLSAgICAgICAgbV9jdXJyZW50SGFuZGxlID0gMDsKKyAgICAgICAgbV9jdXJyZW50SGFuZGxl
ID0gbnVsbHB0cjsKICAgICB9ICAgIAogCiAgICAgLy8gRklYTUU6IFJlc2V0dGluZyBqdXN0IGEg
dGlueSBwYXJ0IG9mIHRoZSBzdGF0ZSBpbiB0aGlzIGZ1bmN0aW9uIGlzIGNvbmZ1c2luZy4gQ2Fs
bGVycyBoYXZlIHRvIHRha2UgY2FyZSBvZiBhIGxvdCBtb3JlLgotICAgIG1fY2FjaGVCZWluZ1Vw
ZGF0ZWQgPSAwOworICAgIG1fY2FjaGVCZWluZ1VwZGF0ZWQgPSBudWxscHRyOwogICAgIG1fcGVu
ZGluZ0VudHJpZXMuY2xlYXIoKTsKIH0gICAgCiAKQEAgLTUyMSw3ICs1MjEsNyBAQCB2b2lkIEFw
cGxpY2F0aW9uQ2FjaGVHcm91cDo6ZGlkUmVjZWl2ZVJlc3BvbnNlKFJlc291cmNlSGFuZGxlKiBo
YW5kbGUsIGNvbnN0IFJlcwogICAgICAgICAgICAgbV9jYWNoZUJlaW5nVXBkYXRlZC0+YWRkUmVz
b3VyY2UoQXBwbGljYXRpb25DYWNoZVJlc291cmNlOjpjcmVhdGUodXJsLCBuZXdlc3RDYWNoZWRS
ZXNvdXJjZS0+cmVzcG9uc2UoKSwgdHlwZSwgbmV3ZXN0Q2FjaGVkUmVzb3VyY2UtPmRhdGEoKSwg
bmV3ZXN0Q2FjaGVkUmVzb3VyY2UtPnBhdGgoKSkpOwogICAgICAgICAgICAgbV9wZW5kaW5nRW50
cmllcy5yZW1vdmUobV9jdXJyZW50SGFuZGxlLT5maXJzdFJlcXVlc3QoKS51cmwoKSk7CiAgICAg
ICAgICAgICBtX2N1cnJlbnRIYW5kbGUtPmNhbmNlbCgpOwotICAgICAgICAgICAgbV9jdXJyZW50
SGFuZGxlID0gMDsKKyAgICAgICAgICAgIG1fY3VycmVudEhhbmRsZSA9IG51bGxwdHI7CiAgICAg
ICAgICAgICAvLyBMb2FkIHRoZSBuZXh0IHJlc291cmNlLCBpZiBhbnkuCiAgICAgICAgICAgICBz
dGFydExvYWRpbmdFbnRyeSgpOwogICAgICAgICAgICAgcmV0dXJuOwpAQCAtNTM4LDcgKzUzOCw3
IEBAIHZvaWQgQXBwbGljYXRpb25DYWNoZUdyb3VwOjpkaWRSZWNlaXZlUmVzcG9uc2UoUmVzb3Vy
Y2VIYW5kbGUqIGhhbmRsZSwgY29uc3QgUmVzCiAgICAgICAgIH0gZWxzZSBpZiAocmVzcG9uc2Uu
aHR0cFN0YXR1c0NvZGUoKSA9PSA0MDQgfHwgcmVzcG9uc2UuaHR0cFN0YXR1c0NvZGUoKSA9PSA0
MTApIHsKICAgICAgICAgICAgIC8vIFNraXAgdGhpcyByZXNvdXJjZS4gSXQgaXMgZHJvcHBlZCBm
cm9tIHRoZSBjYWNoZS4KICAgICAgICAgICAgIG1fY3VycmVudEhhbmRsZS0+Y2FuY2VsKCk7Ci0g
ICAgICAgICAgICBtX2N1cnJlbnRIYW5kbGUgPSAwOworICAgICAgICAgICAgbV9jdXJyZW50SGFu
ZGxlID0gbnVsbHB0cjsKICAgICAgICAgICAgIG1fcGVuZGluZ0VudHJpZXMucmVtb3ZlKHVybCk7
CiAgICAgICAgICAgICAvLyBMb2FkIHRoZSBuZXh0IHJlc291cmNlLCBpZiBhbnkuCiAgICAgICAg
ICAgICBzdGFydExvYWRpbmdFbnRyeSgpOwpAQCAtNTUxLDcgKzU1MSw3IEBAIHZvaWQgQXBwbGlj
YXRpb25DYWNoZUdyb3VwOjpkaWRSZWNlaXZlUmVzcG9uc2UoUmVzb3VyY2VIYW5kbGUqIGhhbmRs
ZSwgY29uc3QgUmVzCiAgICAgICAgICAgICBtX2NhY2hlQmVpbmdVcGRhdGVkLT5hZGRSZXNvdXJj
ZShBcHBsaWNhdGlvbkNhY2hlUmVzb3VyY2U6OmNyZWF0ZSh1cmwsIG5ld2VzdENhY2hlZFJlc291
cmNlLT5yZXNwb25zZSgpLCB0eXBlLCBuZXdlc3RDYWNoZWRSZXNvdXJjZS0+ZGF0YSgpLCBuZXdl
c3RDYWNoZWRSZXNvdXJjZS0+cGF0aCgpKSk7CiAgICAgICAgICAgICBtX3BlbmRpbmdFbnRyaWVz
LnJlbW92ZShtX2N1cnJlbnRIYW5kbGUtPmZpcnN0UmVxdWVzdCgpLnVybCgpKTsKICAgICAgICAg
ICAgIG1fY3VycmVudEhhbmRsZS0+Y2FuY2VsKCk7Ci0gICAgICAgICAgICBtX2N1cnJlbnRIYW5k
bGUgPSAwOworICAgICAgICAgICAgbV9jdXJyZW50SGFuZGxlID0gbnVsbHB0cjsKICAgICAgICAg
ICAgIC8vIExvYWQgdGhlIG5leHQgcmVzb3VyY2UsIGlmIGFueS4KICAgICAgICAgICAgIHN0YXJ0
TG9hZGluZ0VudHJ5KCk7CiAgICAgICAgIH0KQEAgLTU5NSw3ICs1OTUsNyBAQCB2b2lkIEFwcGxp
Y2F0aW9uQ2FjaGVHcm91cDo6ZGlkRmluaXNoTG9hZGluZyhSZXNvdXJjZUhhbmRsZSogaGFuZGxl
LCBkb3VibGUgZmluaQogICAgIEFTU0VSVChtX2NhY2hlQmVpbmdVcGRhdGVkKTsKIAogICAgIG1f
Y2FjaGVCZWluZ1VwZGF0ZWQtPmFkZFJlc291cmNlKG1fY3VycmVudFJlc291cmNlLnJlbGVhc2Uo
KSk7Ci0gICAgbV9jdXJyZW50SGFuZGxlID0gMDsKKyAgICBtX2N1cnJlbnRIYW5kbGUgPSBudWxs
cHRyOwogCiAgICAgLy8gV2hpbGUgZG93bmxvYWRpbmcgY2hlY2sgdG8gc2VlIGlmIHdlIGhhdmUg
ZXhjZWVkZWQgdGhlIGF2YWlsYWJsZSBxdW90YS4KICAgICAvLyBXZSBjYW4gc3RvcCBpbW1lZGlh
dGVseSBpZiB3ZSBoYXZlIGFscmVhZHkgcHJldmlvdXNseSBmYWlsZWQKQEAgLTYwMyw3ICs2MDMs
NyBAQCB2b2lkIEFwcGxpY2F0aW9uQ2FjaGVHcm91cDo6ZGlkRmluaXNoTG9hZGluZyhSZXNvdXJj
ZUhhbmRsZSogaGFuZGxlLCBkb3VibGUgZmluaQogICAgIC8vIG9mIHRoZSBxdW90YSBiZWluZyBy
ZWFjaGVkIGFuZCBkZWNpZGVkIG5vdCB0byBpbmNyZWFzZSBpdCB0aGVuLgogICAgIC8vIEZJWE1F
OiBTaG91bGQgd2UgYnJlYWsgZWFybGllciBhbmQgcHJldmVudCByZWRvd25sb2FkaW5nIG9uIGxh
dGVyIHBhZ2UgbG9hZHM/CiAgICAgaWYgKG1fb3JpZ2luUXVvdGFFeGNlZWRlZFByZXZpb3VzbHkg
JiYgbV9hdmFpbGFibGVTcGFjZUluUXVvdGEgPCBtX2NhY2hlQmVpbmdVcGRhdGVkLT5lc3RpbWF0
ZWRTaXplSW5TdG9yYWdlKCkpIHsKLSAgICAgICAgbV9jdXJyZW50UmVzb3VyY2UgPSAwOworICAg
ICAgICBtX2N1cnJlbnRSZXNvdXJjZSA9IG51bGxwdHI7CiAgICAgICAgIG1fZnJhbWUtPmRvY3Vt
ZW50KCktPmFkZENvbnNvbGVNZXNzYWdlKE1lc3NhZ2VTb3VyY2U6OkFwcENhY2hlLCBNZXNzYWdl
TGV2ZWw6OkVycm9yLCBBU0NJSUxpdGVyYWwoIkFwcGxpY2F0aW9uIENhY2hlIHVwZGF0ZSBmYWls
ZWQsIGJlY2F1c2Ugc2l6ZSBxdW90YSB3YXMgZXhjZWVkZWQuIikpOwogICAgICAgICBjYWNoZVVw
ZGF0ZUZhaWxlZCgpOwogICAgICAgICByZXR1cm47CkBAIC02MzEsNyArNjMxLDcgQEAgdm9pZCBB
cHBsaWNhdGlvbkNhY2hlR3JvdXA6OmRpZEZhaWwoUmVzb3VyY2VIYW5kbGUqIGhhbmRsZSwgY29u
c3QgUmVzb3VyY2VFcnJvciYKICAgICAgICAgdXJsLnJlbW92ZUZyYWdtZW50SWRlbnRpZmllcigp
OwogCiAgICAgQVNTRVJUKCFtX2N1cnJlbnRSZXNvdXJjZSB8fCAhbV9wZW5kaW5nRW50cmllcy5j
b250YWlucyh1cmwpKTsKLSAgICBtX2N1cnJlbnRSZXNvdXJjZSA9IDA7CisgICAgbV9jdXJyZW50
UmVzb3VyY2UgPSBudWxscHRyOwogICAgIG1fcGVuZGluZ0VudHJpZXMucmVtb3ZlKHVybCk7CiAK
ICAgICBpZiAoKHR5cGUgJiBBcHBsaWNhdGlvbkNhY2hlUmVzb3VyY2U6OkV4cGxpY2l0KSB8fCAo
dHlwZSAmIEFwcGxpY2F0aW9uQ2FjaGVSZXNvdXJjZTo6RmFsbGJhY2spKSB7CkBAIC02OTUsNyAr
Njk1LDcgQEAgdm9pZCBBcHBsaWNhdGlvbkNhY2hlR3JvdXA6OmRpZEZpbmlzaExvYWRpbmdNYW5p
ZmVzdCgpCiAgICAgICAgIHJldHVybjsKICAgICB9CiAKLSAgICBtX21hbmlmZXN0SGFuZGxlID0g
MDsKKyAgICBtX21hbmlmZXN0SGFuZGxlID0gbnVsbHB0cjsKIAogICAgIC8vIENoZWNrIGlmIHRo
ZSBtYW5pZmVzdCB3YXMgbm90IG1vZGlmaWVkLgogICAgIGlmIChpc1VwZ3JhZGVBdHRlbXB0KSB7
CkBAIC03MDYsNyArNzA2LDcgQEAgdm9pZCBBcHBsaWNhdGlvbkNhY2hlR3JvdXA6OmRpZEZpbmlz
aExvYWRpbmdNYW5pZmVzdCgpCiAgICAgICAgICAgICAobmV3ZXN0TWFuaWZlc3QtPmRhdGEoKS0+
c2l6ZSgpID09IG1fbWFuaWZlc3RSZXNvdXJjZS0+ZGF0YSgpLT5zaXplKCkgJiYgIW1lbWNtcChu
ZXdlc3RNYW5pZmVzdC0+ZGF0YSgpLT5kYXRhKCksIG1fbWFuaWZlc3RSZXNvdXJjZS0+ZGF0YSgp
LT5kYXRhKCksIG5ld2VzdE1hbmlmZXN0LT5kYXRhKCktPnNpemUoKSkpKSB7CiAKICAgICAgICAg
ICAgIG1fY29tcGxldGlvblR5cGUgPSBOb1VwZGF0ZTsKLSAgICAgICAgICAgIG1fbWFuaWZlc3RS
ZXNvdXJjZSA9IDA7CisgICAgICAgICAgICBtX21hbmlmZXN0UmVzb3VyY2UgPSBudWxscHRyOwog
ICAgICAgICAgICAgZGVsaXZlckRlbGF5ZWRNYWluUmVzb3VyY2VzKCk7CiAKICAgICAgICAgICAg
IHJldHVybjsKQEAgLTc4Miw3ICs3ODIsNyBAQCB2b2lkIEFwcGxpY2F0aW9uQ2FjaGVHcm91cDo6
ZGlkUmVhY2hPcmlnaW5RdW90YShpbnQ2NF90IHRvdGFsU3BhY2VOZWVkZWQpCiB2b2lkIEFwcGxp
Y2F0aW9uQ2FjaGVHcm91cDo6Y2FjaGVVcGRhdGVGYWlsZWQoKQogewogICAgIHN0b3BMb2FkaW5n
KCk7Ci0gICAgbV9tYW5pZmVzdFJlc291cmNlID0gMDsKKyAgICBtX21hbmlmZXN0UmVzb3VyY2Ug
PSBudWxscHRyOwogCiAgICAgLy8gV2FpdCBmb3IgbWFzdGVyIHJlc291cmNlIGxvYWRzIHRvIGZp
bmlzaC4KICAgICBtX2NvbXBsZXRpb25UeXBlID0gRmFpbHVyZTsKQEAgLTgwNyw3ICs4MDcsNyBA
QCB2b2lkIEFwcGxpY2F0aW9uQ2FjaGVHcm91cDo6bWFuaWZlc3ROb3RGb3VuZCgpCiAgICAgc3Rv
cExvYWRpbmcoKTsKIAogICAgIEFTU0VSVChtX3BlbmRpbmdFbnRyaWVzLmlzRW1wdHkoKSk7Ci0g
ICAgbV9tYW5pZmVzdFJlc291cmNlID0gMDsKKyAgICBtX21hbmlmZXN0UmVzb3VyY2UgPSBudWxs
cHRyOwogCiAgICAgd2hpbGUgKCFtX3BlbmRpbmdNYXN0ZXJSZXNvdXJjZUxvYWRlcnMuaXNFbXB0
eSgpKSB7CiAgICAgICAgIEhhc2hTZXQ8RG9jdW1lbnRMb2FkZXIqPjo6aXRlcmF0b3IgaXQgPSBt
X3BlbmRpbmdNYXN0ZXJSZXNvdXJjZUxvYWRlcnMuYmVnaW4oKTsKZGlmZiAtLWdpdCBhL1NvdXJj
ZS9XZWJDb3JlL2xvYWRlci9jYWNoZS9DYWNoZWRDU1NTdHlsZVNoZWV0LmNwcCBiL1NvdXJjZS9X
ZWJDb3JlL2xvYWRlci9jYWNoZS9DYWNoZWRDU1NTdHlsZVNoZWV0LmNwcAppbmRleCA3YzJmZTdk
ODkyNGY0ZjkwZWNkZDU4MjA2NmFmZTI3YzA5ZjMwOGMxLi42ZDExODgwMWFmODI2ODQ1ZmI2MTk5
MjcwNDRhZjliMmIyZDIzNmM0IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9sb2FkZXIvY2Fj
aGUvQ2FjaGVkQ1NTU3R5bGVTaGVldC5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvbG9hZGVyL2Nh
Y2hlL0NhY2hlZENTU1N0eWxlU2hlZXQuY3BwCkBAIC0xMzgsNyArMTM4LDcgQEAgdm9pZCBDYWNo
ZWRDU1NTdHlsZVNoZWV0OjpkZXN0cm95RGVjb2RlZERhdGEoKQogICAgICAgICByZXR1cm47CiAK
ICAgICBtX3BhcnNlZFN0eWxlU2hlZXRDYWNoZS0+cmVtb3ZlZEZyb21NZW1vcnlDYWNoZSgpOwot
ICAgIG1fcGFyc2VkU3R5bGVTaGVldENhY2hlLmNsZWFyKCk7CisgICAgbV9wYXJzZWRTdHlsZVNo
ZWV0Q2FjaGUgPSBudWxscHRyOwogCiAgICAgc2V0RGVjb2RlZFNpemUoMCk7CiB9CkBAIC0xNDYs
MTEgKzE0NiwxMSBAQCB2b2lkIENhY2hlZENTU1N0eWxlU2hlZXQ6OmRlc3Ryb3lEZWNvZGVkRGF0
YSgpCiBQYXNzUmVmUHRyPFN0eWxlU2hlZXRDb250ZW50cz4gQ2FjaGVkQ1NTU3R5bGVTaGVldDo6
cmVzdG9yZVBhcnNlZFN0eWxlU2hlZXQoY29uc3QgQ1NTUGFyc2VyQ29udGV4dCYgY29udGV4dCwg
Q2FjaGVQb2xpY3kgY2FjaGVQb2xpY3kpCiB7CiAgICAgaWYgKCFtX3BhcnNlZFN0eWxlU2hlZXRD
YWNoZSkKLSAgICAgICAgcmV0dXJuIDA7CisgICAgICAgIHJldHVybiBudWxscHRyOwogICAgIGlm
ICghbV9wYXJzZWRTdHlsZVNoZWV0Q2FjaGUtPnN1YnJlc291cmNlc0FsbG93UmV1c2UoY2FjaGVQ
b2xpY3kpKSB7CiAgICAgICAgIG1fcGFyc2VkU3R5bGVTaGVldENhY2hlLT5yZW1vdmVkRnJvbU1l
bW9yeUNhY2hlKCk7Ci0gICAgICAgIG1fcGFyc2VkU3R5bGVTaGVldENhY2hlLmNsZWFyKCk7Ci0g
ICAgICAgIHJldHVybiAwOworICAgICAgICBtX3BhcnNlZFN0eWxlU2hlZXRDYWNoZSA9IG51bGxw
dHI7CisgICAgICAgIHJldHVybiBudWxscHRyOwogICAgIH0KIAogICAgIEFTU0VSVChtX3BhcnNl
ZFN0eWxlU2hlZXRDYWNoZS0+aXNDYWNoZWFibGUoKSk7CkBAIC0xNTgsNyArMTU4LDcgQEAgUGFz
c1JlZlB0cjxTdHlsZVNoZWV0Q29udGVudHM+IENhY2hlZENTU1N0eWxlU2hlZXQ6OnJlc3RvcmVQ
YXJzZWRTdHlsZVNoZWV0KGNvbnMKIAogICAgIC8vIENvbnRleHRzIG11c3QgYmUgaWRlbnRpY2Fs
IHNvIHdlIGtub3cgd2Ugd291bGQgZ2V0IHRoZSBzYW1lIGV4YWN0IHJlc3VsdCBpZiB3ZSBwYXJz
ZWQgYWdhaW4uCiAgICAgaWYgKG1fcGFyc2VkU3R5bGVTaGVldENhY2hlLT5wYXJzZXJDb250ZXh0
KCkgIT0gY29udGV4dCkKLSAgICAgICAgcmV0dXJuIDA7CisgICAgICAgIHJldHVybiBudWxscHRy
OwogCiAgICAgZGlkQWNjZXNzRGVjb2RlZERhdGEobW9ub3RvbmljYWxseUluY3JlYXNpbmdUaW1l
KCkpOwogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9sb2FkZXIvY2FjaGUvQ2FjaGVkSW1h
Z2UuY3BwIGIvU291cmNlL1dlYkNvcmUvbG9hZGVyL2NhY2hlL0NhY2hlZEltYWdlLmNwcAppbmRl
eCA1Mjc2OWRiOTZjZTE3ZGVhZDcyMDQxYTc2ODFiYTZmMmEwYWQ1OTg5Li5kZjMzNjc1YzYzYjVk
YjRhZjAzZTMyOTM3YzkxYTlkNzM0MDRhNzBhIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9s
b2FkZXIvY2FjaGUvQ2FjaGVkSW1hZ2UuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2xvYWRlci9j
YWNoZS9DYWNoZWRJbWFnZS5jcHAKQEAgLTM2NSw4ICszNjUsOCBAQCBpbmxpbmUgdm9pZCBDYWNo
ZWRJbWFnZTo6Y2xlYXJJbWFnZSgpCiAgICAgLy8gSWYgb3VyIEltYWdlIGhhcyBhbiBvYnNlcnZl
ciwgaXQncyBhbHdheXMgdXMgc28gd2UgbmVlZCB0byBjbGVhciB0aGUgYmFjayBwb2ludGVyCiAg
ICAgLy8gYmVmb3JlIGRyb3BwaW5nIG91ciByZWZlcmVuY2UuCiAgICAgaWYgKG1faW1hZ2UpCi0g
ICAgICAgIG1faW1hZ2UtPnNldEltYWdlT2JzZXJ2ZXIoMCk7Ci0gICAgbV9pbWFnZS5jbGVhcigp
OworICAgICAgICBtX2ltYWdlLT5zZXRJbWFnZU9ic2VydmVyKG51bGxwdHIpOworICAgIG1faW1h
Z2UgPSBudWxscHRyOwogfQogCiB2b2lkIENhY2hlZEltYWdlOjphZGRJbmNyZW1lbnRhbERhdGFC
dWZmZXIoU2hhcmVkQnVmZmVyJiBkYXRhKQpAQCAtNDU4LDcgKzQ1OCw3IEBAIHZvaWQgQ2FjaGVk
SW1hZ2U6OmRlc3Ryb3lEZWNvZGVkRGF0YSgpCiB7CiAgICAgYm9vbCBjYW5EZWxldGVJbWFnZSA9
ICFtX2ltYWdlIHx8IChtX2ltYWdlLT5oYXNPbmVSZWYoKSAmJiBtX2ltYWdlLT5pc0JpdG1hcElt
YWdlKCkpOwogICAgIGlmIChjYW5EZWxldGVJbWFnZSAmJiAhaXNMb2FkaW5nKCkgJiYgIWhhc0Ns
aWVudHMoKSkgewotICAgICAgICBtX2ltYWdlID0gMDsKKyAgICAgICAgbV9pbWFnZSA9IG51bGxw
dHI7CiAgICAgICAgIHNldERlY29kZWRTaXplKDApOwogICAgIH0gZWxzZSBpZiAobV9pbWFnZSAm
JiAhZXJyb3JPY2N1cnJlZCgpKQogICAgICAgICBtX2ltYWdlLT5kZXN0cm95RGVjb2RlZERhdGEo
KTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2xvYWRlci9jYWNoZS9DYWNoZWRSYXdSZXNv
dXJjZS5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9sb2FkZXIvY2FjaGUvQ2FjaGVkUmF3UmVzb3VyY2Uu
Y3BwCmluZGV4IDNjMWIyOTU1NGIxOWMwNWUyZmU5MWViMDdlMGU1NTJjMmY5OGE4ZjQuLjU0YmJk
ZTFhYzhlYzg3MTQ4YTk1M2QzZGQ3NzgyYTdiM2UzMjQ1NjUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9X
ZWJDb3JlL2xvYWRlci9jYWNoZS9DYWNoZWRSYXdSZXNvdXJjZS5jcHAKKysrIGIvU291cmNlL1dl
YkNvcmUvbG9hZGVyL2NhY2hlL0NhY2hlZFJhd1Jlc291cmNlLmNwcApAQCAtMjY4LDcgKzI2OCw3
IEBAIGJvb2wgQ2FjaGVkUmF3UmVzb3VyY2U6OmNhblJldXNlKGNvbnN0IFJlc291cmNlUmVxdWVz
dCYgbmV3UmVxdWVzdCkgY29uc3QKIAogdm9pZCBDYWNoZWRSYXdSZXNvdXJjZTo6Y2xlYXIoKQog
ewotICAgIG1fZGF0YS5jbGVhcigpOworICAgIG1fZGF0YSA9IG51bGxwdHI7CiAgICAgc2V0RW5j
b2RlZFNpemUoMCk7CiAgICAgaWYgKG1fbG9hZGVyKQogICAgICAgICBtX2xvYWRlci0+Y2xlYXJS
ZXNvdXJjZURhdGEoKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2xvYWRlci9jYWNoZS9D
YWNoZWRSZXNvdXJjZS5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9sb2FkZXIvY2FjaGUvQ2FjaGVkUmVz
b3VyY2UuY3BwCmluZGV4IGY0NDMxYmYzZGRhZmNkMmZiNzAzODM3YzZmN2NjZDAxMzA3NTExZjAu
LjNiZWYyMWU4ZDk4OTg4YTAzOGRlYjdlMTBlMGVmNGUzY2VmNDNhNmIgMTAwNjQ0Ci0tLSBhL1Nv
dXJjZS9XZWJDb3JlL2xvYWRlci9jYWNoZS9DYWNoZWRSZXNvdXJjZS5jcHAKKysrIGIvU291cmNl
L1dlYkNvcmUvbG9hZGVyL2NhY2hlL0NhY2hlZFJlc291cmNlLmNwcApAQCAtMzE3LDcgKzMxNyw3
IEBAIHZvaWQgQ2FjaGVkUmVzb3VyY2U6OmVycm9yKENhY2hlZFJlc291cmNlOjpTdGF0dXMgc3Rh
dHVzKQogewogICAgIHNldFN0YXR1cyhzdGF0dXMpOwogICAgIEFTU0VSVChlcnJvck9jY3VycmVk
KCkpOwotICAgIG1fZGF0YS5jbGVhcigpOworICAgIG1fZGF0YSA9IG51bGxwdHI7CiAKICAgICBz
ZXRMb2FkaW5nKGZhbHNlKTsKICAgICBjaGVja05vdGlmeSgpOwpkaWZmIC0tZ2l0IGEvU291cmNl
L1dlYkNvcmUvbG9hZGVyL2ljb24vSWNvblJlY29yZC5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9sb2Fk
ZXIvaWNvbi9JY29uUmVjb3JkLmNwcAppbmRleCBkNGJjMGQxYTE5ZjM3MDYyYmY3Y2E1OGVkYzY0
MmJmZWU2MjA1YTg4Li5lN2YxZDRiMjMzNDYxMDY5NGRkMzFlZTdlYzQ0MDQ3ZjgzNzNiNzY1IDEw
MDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9sb2FkZXIvaWNvbi9JY29uUmVjb3JkLmNwcAorKysg
Yi9Tb3VyY2UvV2ViQ29yZS9sb2FkZXIvaWNvbi9JY29uUmVjb3JkLmNwcApAQCAtNzEsNyArNzEs
NyBAQCB2b2lkIEljb25SZWNvcmQ6OnNldEltYWdlRGF0YShQYXNzUmVmUHRyPFNoYXJlZEJ1ZmZl
cj4gZGF0YSkKICAgICAvLyBDb3B5IHRoZSBwcm92aWRlZCBkYXRhIGludG8gdGhlIGJ1ZmZlciBv
ZiB0aGUgbmV3IEltYWdlIG9iamVjdC4KICAgICBpZiAoIW1faW1hZ2UtPnNldERhdGEoZGF0YSwg
dHJ1ZSkpIHsKICAgICAgICAgTE9HKEljb25EYXRhYmFzZSwgIk1hbnVhbCBpbWFnZSBkYXRhIGZv
ciBpY29uVVJMICclcycgRkFJTEVEIC0gaXQgd2FzIHByb2JhYmx5IGludmFsaWQgaW1hZ2UgZGF0
YSIsIG1faWNvblVSTC5hc2NpaSgpLmRhdGEoKSk7Ci0gICAgICAgIG1faW1hZ2UuY2xlYXIoKTsK
KyAgICAgICAgbV9pbWFnZSA9IG51bGxwdHI7CiAgICAgfQogICAgIAogICAgIG1fZGF0YVNldCA9
IHRydWU7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wYWdlL0V2ZW50SGFuZGxlci5jcHAg
Yi9Tb3VyY2UvV2ViQ29yZS9wYWdlL0V2ZW50SGFuZGxlci5jcHAKaW5kZXggNjU0YTRmZWM3NzM3
OTcyM2Q3YjYxZjM2MTY3YWJhMjVlODk0NTA5Yy4uM2FhNjZkOWJjODE0ZWMzYmZkYmQzNGM5ZDc1
ZTNlNzM1NjExNTRlMyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGFnZS9FdmVudEhhbmRs
ZXIuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BhZ2UvRXZlbnRIYW5kbGVyLmNwcApAQCAtNDg1
LDcgKzQ4NSw3IEBAIHZvaWQgRXZlbnRIYW5kbGVyOjpjbGVhcigpCiAgICAgbV9tb3VzZVBvc2l0
aW9uSXNVbmtub3duID0gdHJ1ZTsKICAgICBtX2xhc3RLbm93bk1vdXNlUG9zaXRpb24gPSBJbnRQ
b2ludCgpOwogICAgIG1fbGFzdEtub3duTW91c2VHbG9iYWxQb3NpdGlvbiA9IEludFBvaW50KCk7
Ci0gICAgbV9tb3VzZVByZXNzTm9kZSA9IDA7CisgICAgbV9tb3VzZVByZXNzTm9kZSA9IG51bGxw
dHI7CiAgICAgbV9tb3VzZVByZXNzZWQgPSBmYWxzZTsKICAgICBtX2NhcHR1cmVzRHJhZ2dpbmcg
PSBmYWxzZTsKICAgICBtX2NhcHR1cmluZ01vdXNlRXZlbnRzRWxlbWVudCA9IG51bGxwdHI7CkBA
IC00OTQsNyArNDk0LDcgQEAgdm9pZCBFdmVudEhhbmRsZXI6OmNsZWFyKCkKICNlbmRpZgogI2lm
IEVOQUJMRShUT1VDSF9FVkVOVFMpICYmICFFTkFCTEUoSU9TX1RPVUNIX0VWRU5UUykKICAgICBt
X29yaWdpbmF0aW5nVG91Y2hQb2ludFRhcmdldHMuY2xlYXIoKTsKLSAgICBtX29yaWdpbmF0aW5n
VG91Y2hQb2ludERvY3VtZW50LmNsZWFyKCk7CisgICAgbV9vcmlnaW5hdGluZ1RvdWNoUG9pbnRE
b2N1bWVudCA9IG51bGxwdHI7CiAgICAgbV9vcmlnaW5hdGluZ1RvdWNoUG9pbnRUYXJnZXRLZXkg
PSAwOwogI2VuZGlmCiAgICAgbV9tYXhNb3VzZU1vdmVkRHVyYXRpb24gPSAwOwpAQCAtMzk5NCw3
ICszOTk0LDcgQEAgYm9vbCBFdmVudEhhbmRsZXI6OmhhbmRsZVRvdWNoRXZlbnQoY29uc3QgUGxh
dGZvcm1Ub3VjaEV2ZW50JiBldmVudCkKICAgICB9CiAgICAgbV90b3VjaFByZXNzZWQgPSB0b3Vj
aGVzLT5sZW5ndGgoKSA+IDA7CiAgICAgaWYgKGFsbFRvdWNoUmVsZWFzZWQpCi0gICAgICAgIG1f
b3JpZ2luYXRpbmdUb3VjaFBvaW50RG9jdW1lbnQuY2xlYXIoKTsKKyAgICAgICAgbV9vcmlnaW5h
dGluZ1RvdWNoUG9pbnREb2N1bWVudCA9IG51bGxwdHI7CiAKICAgICAvLyBOb3cgaXRlcmF0ZSB0
aGUgY2hhbmdlZFRvdWNoZXMgbGlzdCBhbmQgbV90YXJnZXRzIHdpdGhpbiBpdCwgc2VuZGluZyBl
dmVudHMgdG8gdGhlIHRhcmdldHMgYXMgcmVxdWlyZWQuCiAgICAgYm9vbCBzd2FsbG93ZWRFdmVu
dCA9IGZhbHNlOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGFnZS9QYWdlLmNwcCBiL1Nv
dXJjZS9XZWJDb3JlL3BhZ2UvUGFnZS5jcHAKaW5kZXggMWQzZGNjMmI1NjM5NjIxNGU5ZjgwZjcy
YzhlMzNlYTE4OWI5M2FkMi4uZjg2ZDgxZmQwNTMwYTAzYzYyNjIyMTE2YzkwYmZlOTA1NjcxNjdi
MCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGFnZS9QYWdlLmNwcAorKysgYi9Tb3VyY2Uv
V2ViQ29yZS9wYWdlL1BhZ2UuY3BwCkBAIC01MTYsNyArNTE2LDcgQEAgdm9pZCBQYWdlOjpyZWZy
ZXNoUGx1Z2lucyhib29sIHJlbG9hZCkKICAgICBWZWN0b3I8UmVmPEZyYW1lPj4gZnJhbWVzTmVl
ZGluZ1JlbG9hZDsKIAogICAgIGZvciAoYXV0byYgcGFnZSA6ICphbGxQYWdlcykgewotICAgICAg
ICBwYWdlLT5tX3BsdWdpbkRhdGEuY2xlYXIoKTsKKyAgICAgICAgcGFnZS0+bV9wbHVnaW5EYXRh
ID0gbnVsbHB0cjsKIAogICAgICAgICBpZiAoIXJlbG9hZCkKICAgICAgICAgICAgIGNvbnRpbnVl
OwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vYXVkaW8vbWFjL0NBUmluZ0J1
ZmZlci5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9hdWRpby9tYWMvQ0FSaW5nQnVmZmVy
LmNwcAppbmRleCBmNzZlOGRmOTA2YjVhNjFlNTdjNzc1YzRjZTZkMmNjNDRiYzhhYTUyLi4wNTQ0
MmFkYzQ1ZTk3Nzg5OTMxNTIwNWMzNzJlNjE5NjAxMjc5ZDM3IDEwMDY0NAotLS0gYS9Tb3VyY2Uv
V2ViQ29yZS9wbGF0Zm9ybS9hdWRpby9tYWMvQ0FSaW5nQnVmZmVyLmNwcAorKysgYi9Tb3VyY2Uv
V2ViQ29yZS9wbGF0Zm9ybS9hdWRpby9tYWMvQ0FSaW5nQnVmZmVyLmNwcApAQCAtODYsNyArODYs
NyBAQCB2b2lkIENBUmluZ0J1ZmZlcjo6YWxsb2NhdGUodWludDMyX3QgY2hhbm5lbENvdW50LCBz
aXplX3QgYnl0ZXNQZXJGcmFtZSwgc2l6ZV90CiB2b2lkIENBUmluZ0J1ZmZlcjo6ZGVhbGxvY2F0
ZSgpCiB7CiAgICAgaWYgKG1fYnVmZmVycykKLSAgICAgICAgbV9idWZmZXJzLmNsZWFyKCk7Cisg
ICAgICAgIG1fYnVmZmVycyA9IG51bGxwdHI7CiAKICAgICBtX2NoYW5uZWxDb3VudCA9IDA7CiAg
ICAgbV9jYXBhY2l0eUJ5dGVzID0gMDsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRm
b3JtL2dyYXBoaWNzL0ZvbnQuY3BwIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3Mv
Rm9udC5jcHAKaW5kZXggNjAzZWJhODFmMDEwZmVmMGIwOWVhOTQ3YWU4ODZhNTE5OThiNWFjYy4u
ZDkyNjViNThkMmJlMjRhZDcxNDczYWJhNWIyM2I1MjZkMDkxMzcyZSAxMDA2NDQKLS0tIGEvU291
cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvRm9udC5jcHAKKysrIGIvU291cmNlL1dlYkNv
cmUvcGxhdGZvcm0vZ3JhcGhpY3MvRm9udC5jcHAKQEAgLTM2Myw3ICszNjMsNyBAQCBjb25zdCBP
cGVuVHlwZU1hdGhEYXRhKiBGb250OjptYXRoRGF0YSgpIGNvbnN0CiAgICAgaWYgKCFtX21hdGhE
YXRhKSB7CiAgICAgICAgIG1fbWF0aERhdGEgPSBPcGVuVHlwZU1hdGhEYXRhOjpjcmVhdGUobV9w
bGF0Zm9ybURhdGEpOwogICAgICAgICBpZiAoIW1fbWF0aERhdGEtPmhhc01hdGhEYXRhKCkpCi0g
ICAgICAgICAgICBtX21hdGhEYXRhLmNsZWFyKCk7CisgICAgICAgICAgICBtX21hdGhEYXRhID0g
bnVsbHB0cjsKICAgICB9CiAgICAgcmV0dXJuIG1fbWF0aERhdGEuZ2V0KCk7CiB9CmRpZmYgLS1n
aXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9Gb250Q2FjaGUuY3BwIGIvU291
cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvRm9udENhY2hlLmNwcAppbmRleCBhNmM0MDQ5
OTQ4Y2YzNjMyMWI3M2RkNTExYjkxOGEyYThhYWUwNDVjLi44ZDFhODM1OWQ2OWNiNzBlNGMyMGI1
ZWE4MzI4NzY1YTZiY2Q0NjM0IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9n
cmFwaGljcy9Gb250Q2FjaGUuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBo
aWNzL0ZvbnRDYWNoZS5jcHAKQEAgLTMyMCw3ICszMjAsNyBAQCBQYXNzUmVmUHRyPE9wZW5UeXBl
VmVydGljYWxEYXRhPiBGb250Q2FjaGU6OmdldFZlcnRpY2FsRGF0YShjb25zdCBGb250RmlsZUtl
eSYgawogCiAgICAgUmVmUHRyPE9wZW5UeXBlVmVydGljYWxEYXRhPiB2ZXJ0aWNhbERhdGEgPSBP
cGVuVHlwZVZlcnRpY2FsRGF0YTo6Y3JlYXRlKHBsYXRmb3JtRGF0YSk7CiAgICAgaWYgKCF2ZXJ0
aWNhbERhdGEtPmlzT3BlblR5cGUoKSkKLSAgICAgICAgdmVydGljYWxEYXRhLmNsZWFyKCk7Cisg
ICAgICAgIHZlcnRpY2FsRGF0YSA9IG51bGxwdHI7CiAgICAgZm9udFZlcnRpY2FsRGF0YUNhY2hl
LnNldChrZXksIHZlcnRpY2FsRGF0YSk7CiAgICAgcmV0dXJuIHZlcnRpY2FsRGF0YTsKIH0KZGlm
ZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL0dyYXBoaWNzQ29udGV4
dC5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9HcmFwaGljc0NvbnRleHQu
Y3BwCmluZGV4IGQzOGMxZmFmNzc1MjU4MzNmMzdlM2NiNjE3OGJiNGM2ZjY3Y2MzOTkuLmU2YjM3
ZmRlNWY5NWVjMDJjMmY3ZDY4YTYxZjQwZjQ3YTc3ZjI3MzEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9X
ZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL0dyYXBoaWNzQ29udGV4dC5jcHAKKysrIGIvU291cmNl
L1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvR3JhcGhpY3NDb250ZXh0LmNwcApAQCAtMTc4LDgg
KzE3OCw4IEBAIHZvaWQgR3JhcGhpY3NDb250ZXh0OjpzZXRTdHJva2VDb2xvcihjb25zdCBDb2xv
ciYgY29sb3IsIENvbG9yU3BhY2UgY29sb3JTcGFjZSkKIHsKICAgICBtX3N0YXRlLnN0cm9rZUNv
bG9yID0gY29sb3I7CiAgICAgbV9zdGF0ZS5zdHJva2VDb2xvclNwYWNlID0gY29sb3JTcGFjZTsK
LSAgICBtX3N0YXRlLnN0cm9rZUdyYWRpZW50LmNsZWFyKCk7Ci0gICAgbV9zdGF0ZS5zdHJva2VQ
YXR0ZXJuLmNsZWFyKCk7CisgICAgbV9zdGF0ZS5zdHJva2VHcmFkaWVudCA9IG51bGxwdHI7Cisg
ICAgbV9zdGF0ZS5zdHJva2VQYXR0ZXJuID0gbnVsbHB0cjsKICAgICBzZXRQbGF0Zm9ybVN0cm9r
ZUNvbG9yKGNvbG9yLCBjb2xvclNwYWNlKTsKIH0KIApAQCAtMjQ1LDggKzI0NSw4IEBAIHZvaWQg
R3JhcGhpY3NDb250ZXh0OjpzZXRGaWxsQ29sb3IoY29uc3QgQ29sb3ImIGNvbG9yLCBDb2xvclNw
YWNlIGNvbG9yU3BhY2UpCiB7CiAgICAgbV9zdGF0ZS5maWxsQ29sb3IgPSBjb2xvcjsKICAgICBt
X3N0YXRlLmZpbGxDb2xvclNwYWNlID0gY29sb3JTcGFjZTsKLSAgICBtX3N0YXRlLmZpbGxHcmFk
aWVudC5jbGVhcigpOwotICAgIG1fc3RhdGUuZmlsbFBhdHRlcm4uY2xlYXIoKTsKKyAgICBtX3N0
YXRlLmZpbGxHcmFkaWVudCA9IG51bGxwdHI7CisgICAgbV9zdGF0ZS5maWxsUGF0dGVybiA9IG51
bGxwdHI7CiAgICAgc2V0UGxhdGZvcm1GaWxsQ29sb3IoY29sb3IsIGNvbG9yU3BhY2UpOwogfQog
CkBAIC0yNjksMjYgKzI2OSwyNiBAQCB2b2lkIEdyYXBoaWNzQ29udGV4dDo6c2V0QW50aWFsaWFz
ZWRGb250RGlsYXRpb25FbmFibGVkKGJvb2wgYW50aWFsaWFzZWRGb250RGlsYQogCiB2b2lkIEdy
YXBoaWNzQ29udGV4dDo6c2V0U3Ryb2tlUGF0dGVybihSZWY8UGF0dGVybj4mJiBwYXR0ZXJuKQog
ewotICAgIG1fc3RhdGUuc3Ryb2tlR3JhZGllbnQuY2xlYXIoKTsKKyAgICBtX3N0YXRlLnN0cm9r
ZUdyYWRpZW50ID0gbnVsbHB0cjsKICAgICBtX3N0YXRlLnN0cm9rZVBhdHRlcm4gPSBXVEY6Om1v
dmUocGF0dGVybik7CiB9CiAKIHZvaWQgR3JhcGhpY3NDb250ZXh0OjpzZXRGaWxsUGF0dGVybihS
ZWY8UGF0dGVybj4mJiBwYXR0ZXJuKQogewotICAgIG1fc3RhdGUuZmlsbEdyYWRpZW50LmNsZWFy
KCk7CisgICAgbV9zdGF0ZS5maWxsR3JhZGllbnQgPSBudWxscHRyOwogICAgIG1fc3RhdGUuZmls
bFBhdHRlcm4gPSBXVEY6Om1vdmUocGF0dGVybik7CiB9CiAKIHZvaWQgR3JhcGhpY3NDb250ZXh0
OjpzZXRTdHJva2VHcmFkaWVudChSZWY8R3JhZGllbnQ+JiYgZ3JhZGllbnQpCiB7CiAgICAgbV9z
dGF0ZS5zdHJva2VHcmFkaWVudCA9IFdURjo6bW92ZShncmFkaWVudCk7Ci0gICAgbV9zdGF0ZS5z
dHJva2VQYXR0ZXJuLmNsZWFyKCk7CisgICAgbV9zdGF0ZS5zdHJva2VQYXR0ZXJuID0gbnVsbHB0
cjsKIH0KIAogdm9pZCBHcmFwaGljc0NvbnRleHQ6OnNldEZpbGxHcmFkaWVudChSZWY8R3JhZGll
bnQ+JiYgZ3JhZGllbnQpCiB7CiAgICAgbV9zdGF0ZS5maWxsR3JhZGllbnQgPSBXVEY6Om1vdmUo
Z3JhZGllbnQpOwotICAgIG1fc3RhdGUuZmlsbFBhdHRlcm4uY2xlYXIoKTsKKyAgICBtX3N0YXRl
LmZpbGxQYXR0ZXJuID0gbnVsbHB0cjsKIH0KIAogdm9pZCBHcmFwaGljc0NvbnRleHQ6OmJlZ2lu
VHJhbnNwYXJlbmN5TGF5ZXIoZmxvYXQgb3BhY2l0eSkKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJD
b3JlL3BsYXRmb3JtL2dyYXBoaWNzL01lZGlhUGxheWVyLmNwcCBiL1NvdXJjZS9XZWJDb3JlL3Bs
YXRmb3JtL2dyYXBoaWNzL01lZGlhUGxheWVyLmNwcAppbmRleCAyOTRhNzZkOWY4NmVmMmU3NzUw
ZDM2YTgzYTk4N2Q3NjBkNDBiMWQyLi4wMTI3OTVlNDY1YmVhMDRkMGY4N2U3Mjc3ZTc0ZTBmZTVi
NTg3MmIxIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9NZWRp
YVBsYXllci5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvTWVkaWFQ
bGF5ZXIuY3BwCkBAIC0zMTQsMTAgKzMxNCwxMCBAQCBib29sIE1lZGlhUGxheWVyOjpsb2FkKGNv
bnN0IFVSTCYgdXJsLCBjb25zdCBDb250ZW50VHlwZSYgY29udGVudFR5cGUsIGNvbnN0IFN0cgog
ICAgIG1fY29udGVudE1JTUVUeXBlV2FzSW5mZXJyZWRGcm9tRXh0ZW5zaW9uID0gZmFsc2U7CiAK
ICNpZiBFTkFCTEUoTUVESUFfU09VUkNFKQotICAgIG1fbWVkaWFTb3VyY2UgPSAwOworICAgIG1f
bWVkaWFTb3VyY2UgPSBudWxscHRyOwogI2VuZGlmCiAjaWYgRU5BQkxFKE1FRElBX1NUUkVBTSkK
LSAgICBtX21lZGlhU3RyZWFtID0gMDsKKyAgICBtX21lZGlhU3RyZWFtID0gbnVsbHB0cjsKICNl
bmRpZgogCiAgICAgLy8gSWYgdGhlIE1JTUUgdHlwZSBpcyBtaXNzaW5nIG9yIGlzIG5vdCBtZWFu
aW5nZnVsLCB0cnkgdG8gZmlndXJlIGl0IG91dCBmcm9tIHRoZSBVUkwuCmRpZmYgLS1naXQgYS9T
b3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9jYS9HcmFwaGljc0xheWVyQ0EuY3BwIGIv
U291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvY2EvR3JhcGhpY3NMYXllckNBLmNwcApp
bmRleCA4MmMwNzY5MTI3YmY5ZTUxNjlkYWU0OGRmYjRiMjg5MDJmZTkwNmMwLi4zNGY0Y2UxMDNh
OTM2ZTNhMDExYjg1Y2ZiNGRmZWVjZDYxNTJjOGU4IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29y
ZS9wbGF0Zm9ybS9ncmFwaGljcy9jYS9HcmFwaGljc0xheWVyQ0EuY3BwCisrKyBiL1NvdXJjZS9X
ZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2NhL0dyYXBoaWNzTGF5ZXJDQS5jcHAKQEAgLTIyMDgs
NyArMjIwOCw3IEBAIHZvaWQgR3JhcGhpY3NMYXllckNBOjp1cGRhdGVDb250ZW50c0ltYWdlKCkK
ICAgICB9IGVsc2UgewogICAgICAgICAvLyBObyBpbWFnZS4KICAgICAgICAgLy8gbV9jb250ZW50
c0xheWVyIHdpbGwgYmUgcmVtb3ZlZCB2aWEgdXBkYXRlU3VibGF5ZXJMaXN0LgotICAgICAgICBt
X2NvbnRlbnRzTGF5ZXIgPSAwOworICAgICAgICBtX2NvbnRlbnRzTGF5ZXIgPSBudWxscHRyOwog
ICAgIH0KIH0KIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3Mv
Y2Fpcm8vQmFja2luZ1N0b3JlQmFja2VuZENhaXJvWDExLmNwcCBiL1NvdXJjZS9XZWJDb3JlL3Bs
YXRmb3JtL2dyYXBoaWNzL2NhaXJvL0JhY2tpbmdTdG9yZUJhY2tlbmRDYWlyb1gxMS5jcHAKaW5k
ZXggN2I4NjMxYWYwYTlkOGY0YWU5MDYzYjI3OWU0MGNlZTM0NTQ5Y2ZhNC4uNDM3ZGFmYzgyZmQy
MmVjYmYwNjA0N2EzYzI4Njg5ZWJlMDIyMzZkMiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUv
cGxhdGZvcm0vZ3JhcGhpY3MvY2Fpcm8vQmFja2luZ1N0b3JlQmFja2VuZENhaXJvWDExLmNwcAor
KysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9jYWlyby9CYWNraW5nU3RvcmVC
YWNrZW5kQ2Fpcm9YMTEuY3BwCkBAIC00Myw3ICs0Myw3IEBAIEJhY2tpbmdTdG9yZUJhY2tlbmRD
YWlyb1gxMTo6QmFja2luZ1N0b3JlQmFja2VuZENhaXJvWDExKHVuc2lnbmVkIGxvbmcgcm9vdFdp
bmRvCiBCYWNraW5nU3RvcmVCYWNrZW5kQ2Fpcm9YMTE6On5CYWNraW5nU3RvcmVCYWNrZW5kQ2Fp
cm9YMTEoKQogewogICAgIC8vIFRoZSBwaXhtYXAgbmVlZHMgdG8gZXhpc3Qgd2hlbiB0aGUgc3Vy
ZmFjZSBpcyBkZXN0cm95ZWQsIHNvIGJlZ2luIGJ5IGNsZWFyaW5nIGl0LgotICAgIG1fc3VyZmFj
ZS5jbGVhcigpOworICAgIG1fc3VyZmFjZSA9IG51bGxwdHI7CiB9CiAKIHZvaWQgQmFja2luZ1N0
b3JlQmFja2VuZENhaXJvWDExOjpzY3JvbGwoY29uc3QgSW50UmVjdCYgc2Nyb2xsUmVjdCwgY29u
c3QgSW50U2l6ZSYgc2Nyb2xsT2Zmc2V0KQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxh
dGZvcm0vZ3JhcGhpY3MvY2Fpcm8vQml0bWFwSW1hZ2VDYWlyby5jcHAgYi9Tb3VyY2UvV2ViQ29y
ZS9wbGF0Zm9ybS9ncmFwaGljcy9jYWlyby9CaXRtYXBJbWFnZUNhaXJvLmNwcAppbmRleCAyNmRm
NWRmM2FiYTQ5MDc2MDEyNzg5YzI2NmZhOTYwMjc3NWJlMmRlLi5mMGQzYTdhNzJkYjkyZmRlMWQx
YjVmOTkzOGIzYzBjMWU3YWQ2MWYxIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9y
bS9ncmFwaGljcy9jYWlyby9CaXRtYXBJbWFnZUNhaXJvLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29y
ZS9wbGF0Zm9ybS9ncmFwaGljcy9jYWlyby9CaXRtYXBJbWFnZUNhaXJvLmNwcApAQCAtMTU5LDcg
KzE1OSw3IEBAIGJvb2wgRnJhbWVEYXRhOjpjbGVhcihib29sIGNsZWFyTWV0YWRhdGEpCiAgICAg
ICAgIG1faGF2ZU1ldGFkYXRhID0gZmFsc2U7CiAKICAgICBpZiAobV9mcmFtZSkgewotICAgICAg
ICBtX2ZyYW1lLmNsZWFyKCk7CisgICAgICAgIG1fZnJhbWUgPSBudWxscHRyOwogICAgICAgICBy
ZXR1cm4gdHJ1ZTsKICAgICB9CiAgICAgcmV0dXJuIGZhbHNlOwpkaWZmIC0tZ2l0IGEvU291cmNl
L1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvZmlsdGVycy9GaWx0ZXJFZmZlY3QuY3BwIGIvU291
cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvZmlsdGVycy9GaWx0ZXJFZmZlY3QuY3BwCmlu
ZGV4IDc2MjcwMDgwMzBkN2VmYWU2ZTA4MGU2ODc1OGRjMTYwZWFjMmMwYjkuLmM5OGQ1Yjk4NWFm
M2JiMWU1YjBjMGMyMjZiYjQ1ZmM2MDU0ZjQzM2MgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3Jl
L3BsYXRmb3JtL2dyYXBoaWNzL2ZpbHRlcnMvRmlsdGVyRWZmZWN0LmNwcAorKysgYi9Tb3VyY2Uv
V2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9maWx0ZXJzL0ZpbHRlckVmZmVjdC5jcHAKQEAgLTI0
NSwxMiArMjQ1LDEyIEBAIHZvaWQgRmlsdGVyRWZmZWN0OjpjbGVhclJlc3VsdCgpCiAgICAgaWYg
KG1faW1hZ2VCdWZmZXJSZXN1bHQpCiAgICAgICAgIG1faW1hZ2VCdWZmZXJSZXN1bHQucmVzZXQo
KTsKICAgICBpZiAobV91bm11bHRpcGxpZWRJbWFnZVJlc3VsdCkKLSAgICAgICAgbV91bm11bHRp
cGxpZWRJbWFnZVJlc3VsdC5jbGVhcigpOworICAgICAgICBtX3VubXVsdGlwbGllZEltYWdlUmVz
dWx0ID0gbnVsbHB0cjsKICAgICBpZiAobV9wcmVtdWx0aXBsaWVkSW1hZ2VSZXN1bHQpCi0gICAg
ICAgIG1fcHJlbXVsdGlwbGllZEltYWdlUmVzdWx0LmNsZWFyKCk7CisgICAgICAgIG1fcHJlbXVs
dGlwbGllZEltYWdlUmVzdWx0ID0gbnVsbHB0cjsKICNpZiBFTkFCTEUoT1BFTkNMKQogICAgIGlm
IChtX29wZW5DTEltYWdlUmVzdWx0KQotICAgICAgICBtX29wZW5DTEltYWdlUmVzdWx0LmNsZWFy
KCk7CisgICAgICAgIG1fb3BlbkNMSW1hZ2VSZXN1bHQgPSBudWxscHRyOwogI2VuZGlmCiB9CiAK
QEAgLTU0MCw3ICs1NDAsNyBAQCB2b2lkIEZpbHRlckVmZmVjdDo6dHJhbnNmb3JtUmVzdWx0Q29s
b3JTcGFjZShDb2xvclNwYWNlIGRzdENvbG9yU3BhY2UpCiAjaWYgRU5BQkxFKE9QRU5DTCkKICAg
ICBpZiAob3BlbkNMSW1hZ2UoKSkgewogICAgICAgICBpZiAobV9pbWFnZUJ1ZmZlclJlc3VsdCkK
LSAgICAgICAgICAgIG1faW1hZ2VCdWZmZXJSZXN1bHQuY2xlYXIoKTsKKyAgICAgICAgICAgIG1f
aW1hZ2VCdWZmZXJSZXN1bHQgPSBudWxscHRyOwogICAgICAgICBGaWx0ZXJDb250ZXh0T3BlbkNM
KiBjb250ZXh0ID0gRmlsdGVyQ29udGV4dE9wZW5DTDo6Y29udGV4dCgpOwogICAgICAgICBBU1NF
UlQoY29udGV4dCk7CiAgICAgICAgIGNvbnRleHQtPm9wZW5DTFRyYW5zZm9ybUNvbG9yU3BhY2Uo
bV9vcGVuQ0xJbWFnZVJlc3VsdCwgYWJzb2x1dGVQYWludFJlY3QoKSwgbV9yZXN1bHRDb2xvclNw
YWNlLCBkc3RDb2xvclNwYWNlKTsKQEAgLTU1OCw5ICs1NTgsOSBAQCB2b2lkIEZpbHRlckVmZmVj
dDo6dHJhbnNmb3JtUmVzdWx0Q29sb3JTcGFjZShDb2xvclNwYWNlIGRzdENvbG9yU3BhY2UpCiAg
ICAgbV9yZXN1bHRDb2xvclNwYWNlID0gZHN0Q29sb3JTcGFjZTsKIAogICAgIGlmIChtX3VubXVs
dGlwbGllZEltYWdlUmVzdWx0KQotICAgICAgICBtX3VubXVsdGlwbGllZEltYWdlUmVzdWx0LmNs
ZWFyKCk7CisgICAgICAgIG1fdW5tdWx0aXBsaWVkSW1hZ2VSZXN1bHQgPSBudWxscHRyOwogICAg
IGlmIChtX3ByZW11bHRpcGxpZWRJbWFnZVJlc3VsdCkKLSAgICAgICAgbV9wcmVtdWx0aXBsaWVk
SW1hZ2VSZXN1bHQuY2xlYXIoKTsKKyAgICAgICAgbV9wcmVtdWx0aXBsaWVkSW1hZ2VSZXN1bHQg
PSBudWxscHRyOwogI2VuZGlmCiB9CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRm
b3JtL2dyYXBoaWNzL2dzdHJlYW1lci9JbWFnZUdTdHJlYW1lckNhaXJvLmNwcCBiL1NvdXJjZS9X
ZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2dzdHJlYW1lci9JbWFnZUdTdHJlYW1lckNhaXJvLmNw
cAppbmRleCAwNmZhZWNhMTliYTI1M2VhNzgzNzBmNTg1NDRhYmYxYWNiMmU1MjVlLi5lZTI3Mjc3
ZmYwYjdlOTAzM2Y0YjkzMzYwMjhhY2Y0MjE4YjIwYTVmIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2Vi
Q29yZS9wbGF0Zm9ybS9ncmFwaGljcy9nc3RyZWFtZXIvSW1hZ2VHU3RyZWFtZXJDYWlyby5jcHAK
KysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvZ3N0cmVhbWVyL0ltYWdlR1N0
cmVhbWVyQ2Fpcm8uY3BwCkBAIC03MSw5ICs3MSw3IEBAIEltYWdlR1N0cmVhbWVyOjpJbWFnZUdT
dHJlYW1lcihHc3RTYW1wbGUqIHNhbXBsZSkKIEltYWdlR1N0cmVhbWVyOjp+SW1hZ2VHU3RyZWFt
ZXIoKQogewogICAgIGlmIChtX2ltYWdlKQotICAgICAgICBtX2ltYWdlLmNsZWFyKCk7Ci0KLSAg
ICBtX2ltYWdlID0gMDsKKyAgICAgICAgbV9pbWFnZSA9IG51bGxwdHI7CiAKICAgICAvLyBXZSBr
ZWVwIHRoZSBidWZmZXIgbWVtb3J5IG1hcHBlZCB1bnRpbCB0aGUgaW1hZ2UgaXMgZGVzdHJveWVk
IGJlY2F1c2UgdGhlIGludGVybmFsCiAgICAgLy8gY2Fpcm9fc3VyZmFjZV90IHdhcyBjcmVhdGVk
IHVzaW5nIGNhaXJvX2ltYWdlX3N1cmZhY2VfY3JlYXRlX2Zvcl9kYXRhKCkuCmRpZmYgLS1naXQg
YS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9nc3RyZWFtZXIvV2ViS2l0V2ViU291
cmNlR1N0cmVhbWVyLmNwcCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2dzdHJl
YW1lci9XZWJLaXRXZWJTb3VyY2VHU3RyZWFtZXIuY3BwCmluZGV4IDkzNGRhZjhjYjZkNTk4Yzdl
ZWI2YTdkMjZjNzRmNDIxYWY2Nzk0YTAuLmMyZGEzNzA2NDVhYjgwNjA2MzEwMDBmZWJmMzY2Mjkw
ZTNhYzdlOGQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2dz
dHJlYW1lci9XZWJLaXRXZWJTb3VyY2VHU3RyZWFtZXIuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3Jl
L3BsYXRmb3JtL2dyYXBoaWNzL2dzdHJlYW1lci9XZWJLaXRXZWJTb3VyY2VHU3RyZWFtZXIuY3Bw
CkBAIC0xMTY5LDggKzExNjksNyBAQCBSZXNvdXJjZUhhbmRsZVN0cmVhbWluZ0NsaWVudDo6flJl
c291cmNlSGFuZGxlU3RyZWFtaW5nQ2xpZW50KCkKIHsKICAgICBpZiAobV9yZXNvdXJjZSkgewog
ICAgICAgICBtX3Jlc291cmNlLT5jYW5jZWwoKTsKLSAgICAgICAgbV9yZXNvdXJjZS5yZWxlYXNl
KCk7Ci0gICAgICAgIG1fcmVzb3VyY2UgPSAwOworICAgICAgICBtX3Jlc291cmNlID0gbnVsbHB0
cjsKICAgICB9CiB9CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBo
aWNzL3RleG1hcC9CaXRtYXBUZXh0dXJlR0wuY3BwIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0v
Z3JhcGhpY3MvdGV4bWFwL0JpdG1hcFRleHR1cmVHTC5jcHAKaW5kZXggOTc1YzM4ZjJmZjRiMTkx
ODI4ZDdkMWVjZTE2ZTRkNjA5YjA5MGJmNi4uMGU1MmQ3YjRiMjU4NDVhNjAzOGRiNDVlZDhmOGE5
YWJkNGFlZjk5NCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3Mv
dGV4bWFwL0JpdG1hcFRleHR1cmVHTC5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0v
Z3JhcGhpY3MvdGV4bWFwL0JpdG1hcFRleHR1cmVHTC5jcHAKQEAgLTI3OCw3ICsyNzgsNyBAQCBQ
YXNzUmVmUHRyPEJpdG1hcFRleHR1cmU+IEJpdG1hcFRleHR1cmVHTDo6YXBwbHlGaWx0ZXJzKFRl
eHR1cmVNYXBwZXIqIHRleHR1cmVNYQogICAgICAgICAgICAgdGV4bWFwR0wtPmRyYXdGaWx0ZXJl
ZCgqcmVzdWx0U3VyZmFjZS5nZXQoKSwgc3BhcmVTdXJmYWNlLmdldCgpLCAqZmlsdGVyLCBqKTsK
ICAgICAgICAgICAgIGlmICghaiAmJiBmaWx0ZXItPnR5cGUoKSA9PSBGaWx0ZXJPcGVyYXRpb246
OkRST1BfU0hBRE9XKSB7CiAgICAgICAgICAgICAgICAgc3BhcmVTdXJmYWNlID0gcmVzdWx0U3Vy
ZmFjZTsKLSAgICAgICAgICAgICAgICByZXN1bHRTdXJmYWNlLmNsZWFyKCk7CisgICAgICAgICAg
ICAgICAgcmVzdWx0U3VyZmFjZSA9IG51bGxwdHI7CiAgICAgICAgICAgICB9CiAgICAgICAgICAg
ICBzdGQ6OnN3YXAocmVzdWx0U3VyZmFjZSwgaW50ZXJtZWRpYXRlU3VyZmFjZSk7CiAgICAgICAg
IH0KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL3RleG1hcC9H
cmFwaGljc0xheWVyVGV4dHVyZU1hcHBlci5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9n
cmFwaGljcy90ZXhtYXAvR3JhcGhpY3NMYXllclRleHR1cmVNYXBwZXIuY3BwCmluZGV4IDllZTRh
Nzg0Yzg1N2FiMWNmMTI2ZGEyY2IxMmRhZmFlYmMwOWRlN2UuLmQ1MzQ3MDQ0ZTg4YzA4ZWRiYTRk
NDYwNDY5ZjNmOTA3YTAwYjlkYzEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3Jt
L2dyYXBoaWNzL3RleG1hcC9HcmFwaGljc0xheWVyVGV4dHVyZU1hcHBlci5jcHAKKysrIGIvU291
cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvdGV4bWFwL0dyYXBoaWNzTGF5ZXJUZXh0dXJl
TWFwcGVyLmNwcApAQCAtMzAxLDggKzMwMSw4IEBAIHZvaWQgR3JhcGhpY3NMYXllclRleHR1cmVN
YXBwZXI6OnNldENvbnRlbnRzVG9JbWFnZShJbWFnZSogaW1hZ2UpCiAgICAgICAgICAgICBtX2Nv
bXBvc2l0ZWRJbWFnZSA9IFRleHR1cmVNYXBwZXJUaWxlZEJhY2tpbmdTdG9yZTo6Y3JlYXRlKCk7
CiAgICAgICAgIG1fY29tcG9zaXRlZEltYWdlLT5zZXRDb250ZW50c1RvSW1hZ2UoaW1hZ2UpOwog
ICAgIH0gZWxzZSB7Ci0gICAgICAgIG1fY29tcG9zaXRlZE5hdGl2ZUltYWdlUHRyID0gMDsKLSAg
ICAgICAgbV9jb21wb3NpdGVkSW1hZ2UgPSAwOworICAgICAgICBtX2NvbXBvc2l0ZWROYXRpdmVJ
bWFnZVB0ciA9IG51bGxwdHI7CisgICAgICAgIG1fY29tcG9zaXRlZEltYWdlID0gbnVsbHB0cjsK
ICAgICB9CiAKICAgICBzZXRDb250ZW50c1RvUGxhdGZvcm1MYXllcihtX2NvbXBvc2l0ZWRJbWFn
ZS5nZXQoKSwgQ29udGVudHNMYXllckZvckltYWdlKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJD
b3JlL3BsYXRmb3JtL2dyYXBoaWNzL3RleG1hcC9UZXh0dXJlTWFwcGVyR0wuY3BwIGIvU291cmNl
L1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvdGV4bWFwL1RleHR1cmVNYXBwZXJHTC5jcHAKaW5k
ZXggMGJjZThjNzQyMGQ3ZDBhNDRiMzA5ZTI2ZjU2NmE5MjE5M2U0ODYwYS4uNGM1NDgwNTYyMzVl
Mzk4ZmFjOTgzNjBmZTljYmY2MjVjNzVhMWQwNSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUv
cGxhdGZvcm0vZ3JhcGhpY3MvdGV4bWFwL1RleHR1cmVNYXBwZXJHTC5jcHAKKysrIGIvU291cmNl
L1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvdGV4bWFwL1RleHR1cmVNYXBwZXJHTC5jcHAKQEAg
LTY5MSw3ICs2OTEsNyBAQCB2b2lkIFRleHR1cmVNYXBwZXJHTDo6YmluZERlZmF1bHRTdXJmYWNl
KCkKICAgICBkYXRhKCkucHJvamVjdGlvbk1hdHJpeCA9IGNyZWF0ZVByb2plY3Rpb25NYXRyaXgo
dmlld3BvcnRTaXplLCBkYXRhKCkuUGFpbnRGbGFncyAmIFBhaW50aW5nTWlycm9yZWQpOwogICAg
IG1fY29udGV4dDNELT52aWV3cG9ydChkYXRhKCkudmlld3BvcnRbMF0sIGRhdGEoKS52aWV3cG9y
dFsxXSwgdmlld3BvcnRTaXplLndpZHRoKCksIHZpZXdwb3J0U2l6ZS5oZWlnaHQoKSk7CiAgICAg
bV9jbGlwU3RhY2suYXBwbHkobV9jb250ZXh0M0QuZ2V0KCkpOwotICAgIGRhdGEoKS5jdXJyZW50
U3VyZmFjZS5jbGVhcigpOworICAgIGRhdGEoKS5jdXJyZW50U3VyZmFjZSA9IG51bGxwdHI7CiB9
CiAKIHZvaWQgVGV4dHVyZU1hcHBlckdMOjpiaW5kU3VyZmFjZShCaXRtYXBUZXh0dXJlICpzdXJm
YWNlKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvdGV4bWFw
L1RleHR1cmVNYXBwZXJMYXllci5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGlj
cy90ZXhtYXAvVGV4dHVyZU1hcHBlckxheWVyLmNwcAppbmRleCBjODY0MjAyMmEzYWMxNDY1Nzcw
ODgxZjEyNDg3ZmY3ZGRiYjU0NGQ4Li4zNDU1Mzk4NzAyNGE2ZTc1ZmQ5ZDFlMzkwNjgxNzhiOWVk
NzIzYTJiIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy90ZXht
YXAvVGV4dHVyZU1hcHBlckxheWVyLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9n
cmFwaGljcy90ZXhtYXAvVGV4dHVyZU1hcHBlckxheWVyLmNwcApAQCAtNDA4LDcgKzQwOCw3IEBA
IHZvaWQgVGV4dHVyZU1hcHBlckxheWVyOjpwYWludFdpdGhJbnRlcm1lZGlhdGVTdXJmYWNlKGNv
bnN0IFRleHR1cmVNYXBwZXJQYWludE9wCiAKICAgICBpZiAocmVwbGljYVN1cmZhY2UgJiYgb3B0
aW9ucy5vcGFjaXR5ID09IDEpIHsKICAgICAgICAgY29tbWl0U3VyZmFjZShvcHRpb25zLCByZXBs
aWNhU3VyZmFjZSwgcmVjdCwgMSk7Ci0gICAgICAgIHJlcGxpY2FTdXJmYWNlLmNsZWFyKCk7Cisg
ICAgICAgIHJlcGxpY2FTdXJmYWNlID0gbnVsbHB0cjsKICAgICB9CiAKICAgICBtYWluU3VyZmFj
ZSA9IHBhaW50SW50b1N1cmZhY2UocGFpbnRPcHRpb25zLCByZWN0LnNpemUoKSk7CmRpZmYgLS1n
aXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy90ZXhtYXAvVGV4dHVyZU1hcHBl
clRpbGVkQmFja2luZ1N0b3JlLmNwcCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNz
L3RleG1hcC9UZXh0dXJlTWFwcGVyVGlsZWRCYWNraW5nU3RvcmUuY3BwCmluZGV4IDIwODA0NjIz
OTNiZGJiOWNiMDE0ODIyODM5NGU4YjJmNjVmMGM2ZDcuLmQzNTcxMGE2OTI4MWE4MjA2MTZkZTMx
MjEzM2M0ZDNjN2ZmOTE3ZTggMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dy
YXBoaWNzL3RleG1hcC9UZXh0dXJlTWFwcGVyVGlsZWRCYWNraW5nU3RvcmUuY3BwCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL3RleG1hcC9UZXh0dXJlTWFwcGVyVGlsZWRC
YWNraW5nU3RvcmUuY3BwCkBAIC0zOSw3ICszOSw3IEBAIHZvaWQgVGV4dHVyZU1hcHBlclRpbGVk
QmFja2luZ1N0b3JlOjp1cGRhdGVDb250ZW50c0Zyb21JbWFnZUlmTmVlZGVkKFRleHR1cmVNYXBw
CiAgICAgICAgIHJldHVybjsKIAogICAgIHVwZGF0ZUNvbnRlbnRzKHRleHR1cmVNYXBwZXIsIG1f
aW1hZ2UuZ2V0KCksIG1faW1hZ2UtPnNpemUoKSwgZW5jbG9zaW5nSW50UmVjdChtX2ltYWdlLT5y
ZWN0KCkpLCBCaXRtYXBUZXh0dXJlOjpVcGRhdGVDYW5ub3RNb2RpZnlPcmlnaW5hbEltYWdlRGF0
YSk7Ci0gICAgbV9pbWFnZS5jbGVhcigpOworICAgIG1faW1hZ2UgPSBudWxscHRyOwogfQogCiBU
cmFuc2Zvcm1hdGlvbk1hdHJpeCBUZXh0dXJlTWFwcGVyVGlsZWRCYWNraW5nU3RvcmU6OmFkanVz
dGVkVHJhbnNmb3JtRm9yUmVjdChjb25zdCBGbG9hdFJlY3QmIHRhcmdldFJlY3QpCmRpZmYgLS1n
aXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy90ZXhtYXAvY29vcmRpbmF0ZWQv
Q29vcmRpbmF0ZWRHcmFwaGljc0xheWVyLmNwcCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dy
YXBoaWNzL3RleG1hcC9jb29yZGluYXRlZC9Db29yZGluYXRlZEdyYXBoaWNzTGF5ZXIuY3BwCmlu
ZGV4IGUyZTFmNGFiOGZhMTk5NjRmZjZkZmNkNTJjN2I3ZDdlZDkxOGNhYjAuLmZhYTE2NWVhZTYz
ODIxZWMzZDEzOWQxOGVmZWYxN2RhZTAyODc4ZTAgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3Jl
L3BsYXRmb3JtL2dyYXBoaWNzL3RleG1hcC9jb29yZGluYXRlZC9Db29yZGluYXRlZEdyYXBoaWNz
TGF5ZXIuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL3RleG1hcC9j
b29yZGluYXRlZC9Db29yZGluYXRlZEdyYXBoaWNzTGF5ZXIuY3BwCkBAIC00NzAsOCArNDcwLDgg
QEAgdm9pZCBDb29yZGluYXRlZEdyYXBoaWNzTGF5ZXI6OnNldENvbnRlbnRzVG9JbWFnZShJbWFn
ZSogaW1hZ2UpCiAgICAgICAgIG1fY29tcG9zaXRlZEltYWdlID0gaW1hZ2U7CiAgICAgICAgIG1f
Y29tcG9zaXRlZE5hdGl2ZUltYWdlUHRyID0gbmV3TmF0aXZlSW1hZ2VQdHI7CiAgICAgfSBlbHNl
IHsKLSAgICAgICAgbV9jb21wb3NpdGVkSW1hZ2UgPSAwOwotICAgICAgICBtX2NvbXBvc2l0ZWRO
YXRpdmVJbWFnZVB0ciA9IDA7CisgICAgICAgIG1fY29tcG9zaXRlZEltYWdlID0gbnVsbHB0cjsK
KyAgICAgICAgbV9jb21wb3NpdGVkTmF0aXZlSW1hZ2VQdHIgPSBudWxscHRyOwogICAgIH0KIAog
ICAgIEdyYXBoaWNzTGF5ZXI6OnNldENvbnRlbnRzVG9JbWFnZShpbWFnZSk7CkBAIC04MjAsNyAr
ODIwLDcgQEAgdm9pZCBDb29yZGluYXRlZEdyYXBoaWNzTGF5ZXI6OnJlbGVhc2VJbWFnZUJhY2tp
bmdJZk5lZWRlZCgpCiAKICAgICBBU1NFUlQobV9jb29yZGluYXRvcik7CiAgICAgbV9jb29yZGlu
YXRlZEltYWdlQmFja2luZy0+cmVtb3ZlSG9zdCh0aGlzKTsKLSAgICBtX2Nvb3JkaW5hdGVkSW1h
Z2VCYWNraW5nLmNsZWFyKCk7CisgICAgbV9jb29yZGluYXRlZEltYWdlQmFja2luZyA9IG51bGxw
dHI7CiAgICAgbV9sYXllclN0YXRlLmltYWdlSUQgPSBJbnZhbGlkQ29vcmRpbmF0ZWRJbWFnZUJh
Y2tpbmdJRDsKICAgICBtX2xheWVyU3RhdGUuaW1hZ2VDaGFuZ2VkID0gdHJ1ZTsKIH0KZGlmZiAt
LWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL3RleG1hcC9jb29yZGluYXRl
ZC9Db29yZGluYXRlZEltYWdlQmFja2luZy5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9n
cmFwaGljcy90ZXhtYXAvY29vcmRpbmF0ZWQvQ29vcmRpbmF0ZWRJbWFnZUJhY2tpbmcuY3BwCmlu
ZGV4IGQyMmIxNWVkZDMwYWY5ZWEwOWMyNDY4NTYyMmIwMzkzYjViNTUyOTMuLmUyNjE1MGZlZWU5
ZTI3OWJhMzMyMDcwZGU4NGJmNDI0OWZmMjMxZTcgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3Jl
L3BsYXRmb3JtL2dyYXBoaWNzL3RleG1hcC9jb29yZGluYXRlZC9Db29yZGluYXRlZEltYWdlQmFj
a2luZy5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvdGV4bWFwL2Nv
b3JkaW5hdGVkL0Nvb3JkaW5hdGVkSW1hZ2VCYWNraW5nLmNwcApAQCAtMTQxLDcgKzE0MSw3IEBA
IHZvaWQgQ29vcmRpbmF0ZWRJbWFnZUJhY2tpbmc6OnJlbGVhc2VTdXJmYWNlSWZOZWVkZWQoKQog
ewogICAgIC8vIFdlIG11c3Qga2VlcCBtX3N1cmZhY2UgdW50aWwgVUkgUHJvY2VzcyByZWFkcyBt
X3N1cmZhY2UuCiAgICAgLy8gSWYgbV9zdXJmYWNlIGV4aXN0cywgaXQgd2FzIGNyZWF0ZWQgaW4g
dGhlIHByZXZpb3VzIHVwZGF0ZS4KLSAgICBtX3N1cmZhY2UuY2xlYXIoKTsKKyAgICBtX3N1cmZh
Y2UgPSBudWxscHRyOwogfQogCiBzdGF0aWMgY29uc3QgZG91YmxlIGNsZWFyQ29udGVudHNUaW1l
ckludGVydmFsID0gMzsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2d0ay9H
YW1lcGFkc0d0ay5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ndGsvR2FtZXBhZHNHdGsu
Y3BwCmluZGV4IDI2ZjliZTYyYzc2NDYzYzZlMDgxZmNlZmU3OTZiMmVhZjE3NTk1OGQuLjlmYjI5
ZjJiOTU0NmZjMTgzOWM0ZWE4ZWI1Nzg0YThhNTYyMzIzNDkgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9X
ZWJDb3JlL3BsYXRmb3JtL2d0ay9HYW1lcGFkc0d0ay5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUv
cGxhdGZvcm0vZ3RrL0dhbWVwYWRzR3RrLmNwcApAQCAtMTU1LDcgKzE1NSw3IEBAIHZvaWQgR2Ft
ZXBhZHNHdGs6OnVucmVnaXN0ZXJEZXZpY2UoU3RyaW5nIGRldmljZUZpbGUpCiAgICAgc2l6ZV90
IGluZGV4ID0gbV9zbG90cy5maW5kKGdhbWVwYWREZXZpY2UpOwogICAgIEFTU0VSVChpbmRleCAh
PSBub3RGb3VuZCk7CiAKLSAgICBtX3Nsb3RzW2luZGV4XS5jbGVhcigpOworICAgIG1fc2xvdHNb
aW5kZXhdID0gbnVsbHB0cjsKIH0KIAogdm9pZCBHYW1lcGFkc0d0azo6dXBkYXRlR2FtZXBhZExp
c3QoR2FtZXBhZExpc3QqIGludG8pCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9y
bS9pb3MvUGxhdGZvcm1TcGVlY2hTeW50aGVzaXplcklPUy5tbSBiL1NvdXJjZS9XZWJDb3JlL3Bs
YXRmb3JtL2lvcy9QbGF0Zm9ybVNwZWVjaFN5bnRoZXNpemVySU9TLm1tCmluZGV4IGFiMTRjNzA5
MDUyOTI4MmRiNGM1NTNkZjFhNWU1NTUxY2JlODI3MTYuLmRjMGNhYTg4YTA1ZTA4NGVhMDk4Y2U0
MTBiYTZkMmFiZDM4ZDkwYzcgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2lv
cy9QbGF0Zm9ybVNwZWVjaFN5bnRoZXNpemVySU9TLm1tCisrKyBiL1NvdXJjZS9XZWJDb3JlL3Bs
YXRmb3JtL2lvcy9QbGF0Zm9ybVNwZWVjaFN5bnRoZXNpemVySU9TLm1tCkBAIC0xNzksNyArMTc5
LDcgQEAgLSAodm9pZClzcGVlY2hTeW50aGVzaXplcjooQVZTcGVlY2hTeW50aGVzaXplciAqKXN5
bnRoZXNpemVyIGRpZEZpbmlzaFNwZWVjaFV0dGUKICAgICAKICAgICAvLyBDbGVhciB0aGUgbV91
dHRlcmFuY2UgdmFyaWFibGUgaW4gY2FzZSBmaW5pc2ggc3BlYWtpbmcga2lja3Mgb2ZmIGEgbmV3
IHNwZWFraW5nIGpvYiBpbW1lZGlhdGVseS4KICAgICBSZWZQdHI8V2ViQ29yZTo6UGxhdGZvcm1T
cGVlY2hTeW50aGVzaXNVdHRlcmFuY2U+IHBsYXRmb3JtVXR0ZXJhbmNlID0gbV91dHRlcmFuY2U7
Ci0gICAgbV91dHRlcmFuY2UgPSAwOworICAgIG1fdXR0ZXJhbmNlID0gbnVsbHB0cjsKICAgICAK
ICAgICBtX3N5bnRoZXNpemVyT2JqZWN0LT5jbGllbnQoKS0+ZGlkRmluaXNoU3BlYWtpbmcocGxh
dGZvcm1VdHRlcmFuY2UpOwogfQpAQCAtMjEzLDcgKzIxMyw3IEBAIC0gKHZvaWQpc3BlZWNoU3lu
dGhlc2l6ZXI6KEFWU3BlZWNoU3ludGhlc2l6ZXIgKilzeW50aGVzaXplciBkaWRDYW5jZWxTcGVl
Y2hVdHRlCiAgICAgCiAgICAgLy8gQ2xlYXIgdGhlIG1fdXR0ZXJhbmNlIHZhcmlhYmxlIGluIGNh
c2UgZmluaXNoIHNwZWFraW5nIGtpY2tzIG9mZiBhIG5ldyBzcGVha2luZyBqb2IgaW1tZWRpYXRl
bHkuCiAgICAgUmVmUHRyPFdlYkNvcmU6OlBsYXRmb3JtU3BlZWNoU3ludGhlc2lzVXR0ZXJhbmNl
PiBwbGF0Zm9ybVV0dGVyYW5jZSA9IG1fdXR0ZXJhbmNlOwotICAgIG1fdXR0ZXJhbmNlID0gMDsK
KyAgICBtX3V0dGVyYW5jZSA9IG51bGxwdHI7CiAgICAgCiAgICAgbV9zeW50aGVzaXplck9iamVj
dC0+Y2xpZW50KCktPmRpZEZpbmlzaFNwZWFraW5nKHBsYXRmb3JtVXR0ZXJhbmNlKTsKIH0KZGlm
ZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL21vY2svR2VvbG9jYXRpb25DbGllbnRN
b2NrLmNwcCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL21vY2svR2VvbG9jYXRpb25DbGllbnRN
b2NrLmNwcAppbmRleCA4MTg2YTZhNTIzM2VlODViZTY1MjY4YjY4ZjA1NDQ3ZTg1NTIzMzAwLi5i
N2NmYjliZTA2ZGNiZmZjN2MxNmIzY2ZlNzQ2NTAxMzBmYTcwMGU1IDEwMDY0NAotLS0gYS9Tb3Vy
Y2UvV2ViQ29yZS9wbGF0Zm9ybS9tb2NrL0dlb2xvY2F0aW9uQ2xpZW50TW9jay5jcHAKKysrIGIv
U291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbW9jay9HZW9sb2NhdGlvbkNsaWVudE1vY2suY3BwCkBA
IC0xMjYsNyArMTI2LDcgQEAgdm9pZCBHZW9sb2NhdGlvbkNsaWVudE1vY2s6OnBlcm1pc3Npb25U
aW1lckZpcmVkKCkKIAogdm9pZCBHZW9sb2NhdGlvbkNsaWVudE1vY2s6OnJlc2V0KCkKIHsKLSAg
ICBtX2xhc3RQb3NpdGlvbiA9IDA7CisgICAgbV9sYXN0UG9zaXRpb24gPSBudWxscHRyOwogICAg
IGNsZWFyRXJyb3IoKTsKICAgICBtX3Blcm1pc3Npb25TdGF0ZSA9IFBlcm1pc3Npb25TdGF0ZVVu
c2V0OwogfQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbW9jay9QbGF0Zm9y
bVNwZWVjaFN5bnRoZXNpemVyTW9jay5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9tb2Nr
L1BsYXRmb3JtU3BlZWNoU3ludGhlc2l6ZXJNb2NrLmNwcAppbmRleCAzODM4MzcyYzU3NzhlYzI3
MmM4YjU1ZjgzMTUwNjUzODRkOWNmODc0Li5jMGI0ZGZhMmM2ZjIyNDRlYWE0ZGE4ODY0ZDVjNGIz
MjYzMjU5MmRjIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9tb2NrL1BsYXRm
b3JtU3BlZWNoU3ludGhlc2l6ZXJNb2NrLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9y
bS9tb2NrL1BsYXRmb3JtU3BlZWNoU3ludGhlc2l6ZXJNb2NrLmNwcApAQCAtNDUsNyArNDUsNyBA
QCB2b2lkIFBsYXRmb3JtU3BlZWNoU3ludGhlc2l6ZXJNb2NrOjpzcGVha2luZ0ZpbmlzaGVkKCkK
IHsKICAgICBBU1NFUlQobV91dHRlcmFuY2UuZ2V0KCkpOwogICAgIFJlZlB0cjxQbGF0Zm9ybVNw
ZWVjaFN5bnRoZXNpc1V0dGVyYW5jZT4gcHJvdGVjdChtX3V0dGVyYW5jZSk7Ci0gICAgbV91dHRl
cmFuY2UgPSAwOworICAgIG1fdXR0ZXJhbmNlID0gbnVsbHB0cjsKICAgICAKICAgICBjbGllbnQo
KS0+ZGlkRmluaXNoU3BlYWtpbmcocHJvdGVjdCk7CiB9CkBAIC03OCw3ICs3OCw3IEBAIHZvaWQg
UGxhdGZvcm1TcGVlY2hTeW50aGVzaXplck1vY2s6OmNhbmNlbCgpCiAgICAgCiAgICAgbV9zcGVh
a2luZ0ZpbmlzaGVkVGltZXIuc3RvcCgpOwogICAgIGNsaWVudCgpLT5zcGVha2luZ0Vycm9yT2Nj
dXJyZWQobV91dHRlcmFuY2UpOwotICAgIG1fdXR0ZXJhbmNlID0gMDsKKyAgICBtX3V0dGVyYW5j
ZSA9IG51bGxwdHI7CiB9CiAKIHZvaWQgUGxhdGZvcm1TcGVlY2hTeW50aGVzaXplck1vY2s6OnBh
dXNlKCkKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL25ldHdvcmsvY2YvUmVz
b3VyY2VSZXF1ZXN0Q0ZOZXQuY3BwIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbmV0d29yay9j
Zi9SZXNvdXJjZVJlcXVlc3RDRk5ldC5jcHAKaW5kZXggY2RjN2Q3MzQ2ZDVhN2JmZTE5NzJjZmI3
ODZiZWNjZjJlM2QzOWU5ZS4uYTRkNDNkZjNjMGE0MjhmMTcwNjE4MmU4YThhYWJjMDVkZGEyM2E5
ZSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbmV0d29yay9jZi9SZXNvdXJj
ZVJlcXVlc3RDRk5ldC5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbmV0d29yay9j
Zi9SZXNvdXJjZVJlcXVlc3RDRk5ldC5jcHAKQEAgLTI5NSw3ICsyOTUsNyBAQCB2b2lkIFJlc291
cmNlUmVxdWVzdDo6ZG9VcGRhdGVSZXNvdXJjZVJlcXVlc3QoKQogdm9pZCBSZXNvdXJjZVJlcXVl
c3Q6OmRvVXBkYXRlUmVzb3VyY2VIVFRQQm9keSgpCiB7CiAgICAgaWYgKCFtX2NmUmVxdWVzdCkg
ewotICAgICAgICBtX2h0dHBCb2R5ID0gMDsKKyAgICAgICAgbV9odHRwQm9keSA9IG51bGxwdHI7
CiAgICAgICAgIHJldHVybjsKICAgICB9CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3Jl
bmRlcmluZy9JbmxpbmVGbG93Qm94LmNwcCBiL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9Jbmxp
bmVGbG93Qm94LmNwcAppbmRleCA0MTY4MmM4ZTJiNjBjYjkyOGU0NjFiNGVmZmFhM2JmNzljMzYx
YzI4Li4yZDZmYjY5NDQ4ZjhmMWJiNTk0NGMxMGJhNTQ5MDExNTY3ZDY3NzM3IDEwMDY0NAotLS0g
YS9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvSW5saW5lRmxvd0JveC5jcHAKKysrIGIvU291cmNl
L1dlYkNvcmUvcmVuZGVyaW5nL0lubGluZUZsb3dCb3guY3BwCkBAIC05NTQsNyArOTU0LDcgQEAg
dm9pZCBJbmxpbmVGbG93Qm94Ojpjb21wdXRlT3ZlcmZsb3coTGF5b3V0VW5pdCBsaW5lVG9wLCBM
YXlvdXRVbml0IGxpbmVCb3R0b20sIEcKICAgICAgICAgcmV0dXJuOwogCiAgICAgaWYgKG1fb3Zl
cmZsb3cpCi0gICAgICAgIG1fb3ZlcmZsb3cuY2xlYXIoKTsKKyAgICAgICAgbV9vdmVyZmxvdyA9
IG51bGxwdHI7CiAKICAgICAvLyBWaXN1YWwgb3ZlcmZsb3cganVzdCBpbmNsdWRlcyBvdmVyZmxv
dyBmb3Igc3R1ZmYgd2UgbmVlZCB0byByZXBhaW50IG91cnNlbHZlcy4gIFNlbGYtcGFpbnRpbmcg
bGF5ZXJzIGFyZSBpZ25vcmVkLgogICAgIC8vIExheW91dCBvdmVyZmxvdyBpcyB1c2VkIHRvIGRl
dGVybWluZSBzY3JvbGxpbmcgZXh0ZW50LCBzbyBpdCBzdGlsbCBpbmNsdWRlcyBjaGlsZCBsYXll
cnMgYW5kIGFsc28gZmFjdG9ycyBpbgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcmVuZGVy
aW5nL1JlbmRlckJveC5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyQm94LmNw
cAppbmRleCA1MDJkZjY2YzBkMGRlOThhOWE0MmNkOTRmNzBiMjBiNGUwYjJhY2JjLi42MTcxZGI1
ZTBhOGE5MjI1N2NiZTJkMzA3ZDZmNzZkYTM2OWFkYjI0IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2Vi
Q29yZS9yZW5kZXJpbmcvUmVuZGVyQm94LmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJp
bmcvUmVuZGVyQm94LmNwcApAQCAtNDQ5Nyw3ICs0NDk3LDcgQEAgdm9pZCBSZW5kZXJCb3g6OmFk
ZFZpc3VhbE92ZXJmbG93KGNvbnN0IExheW91dFJlY3QmIHJlY3QpCiAKIHZvaWQgUmVuZGVyQm94
OjpjbGVhck92ZXJmbG93KCkKIHsKLSAgICBtX292ZXJmbG93LmNsZWFyKCk7CisgICAgbV9vdmVy
ZmxvdyA9IG51bGxwdHI7CiAgICAgUmVuZGVyRmxvd1RocmVhZCogZmxvd1RocmVhZCA9IGZsb3dU
aHJlYWRDb250YWluaW5nQmxvY2soKTsKICAgICBpZiAoZmxvd1RocmVhZCkKICAgICAgICAgZmxv
d1RocmVhZC0+Y2xlYXJSZWdpb25zT3ZlcmZsb3codGhpcyk7CmRpZmYgLS1naXQgYS9Tb3VyY2Uv
V2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyQm94UmVnaW9uSW5mby5oIGIvU291cmNlL1dlYkNvcmUv
cmVuZGVyaW5nL1JlbmRlckJveFJlZ2lvbkluZm8uaAppbmRleCA2MjM2MDhkNjc1ZGNjNjkxMWUy
N2RhZjI0YWNiODQwOWQ0NmUxOGFmLi5lYTIzYzFlYzhlZTM3NWU3YTYxMWMxNGVjMDQxOWY2NTZk
YTE5N2IyIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyQm94UmVn
aW9uSW5mby5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJCb3hSZWdpb25J
bmZvLmgKQEAgLTUzLDcgKzUzLDcgQEAgcHVibGljOgogICAgIHZvaWQgY2xlYXJPdmVyZmxvdygp
CiAgICAgewogICAgICAgICBpZiAobV9vdmVyZmxvdykKLSAgICAgICAgICAgIG1fb3ZlcmZsb3cu
Y2xlYXIoKTsKKyAgICAgICAgICAgIG1fb3ZlcmZsb3cgPSBudWxscHRyOwogICAgIH0KIAogcHJp
dmF0ZToKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJDb3VudGVy
LmNwcCBiL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJDb3VudGVyLmNwcAppbmRleCA5
MThhNGY4OGEyM2Q5NmQ4YWU1ZTIzNjY5NTY3MTc4MGEwOTM2MjdlLi5jNzQ1NjM5ZjhhMGFiZTRk
OGZkZjY4MTA1NGMxNjg1MjI5ODZlZjM2IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9yZW5k
ZXJpbmcvUmVuZGVyQ291bnRlci5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1Jl
bmRlckNvdW50ZXIuY3BwCkBAIC0xODYsOCArMTg2LDggQEAgc3RhdGljIGJvb2wgZmluZFBsYWNl
Rm9yQ291bnRlcihSZW5kZXJFbGVtZW50JiBjb3VudGVyT3duZXIsIGNvbnN0IEF0b21pY1N0cmlu
ZyYKICAgICAvLyB0b3dhcmRzIHRoZSBiZWdpbmluZyBvZiB0aGUgZG9jdW1lbnQgZm9yIGNvdW50
ZXJzIHdpdGggdGhlIHNhbWUgaWRlbnRpZmllciBhcyB0aGUgb25lCiAgICAgLy8gd2UgYXJlIHRy
eWluZyB0byBmaW5kIGEgcGxhY2UgZm9yLiBUaGlzIGlzIHRoZSBuZXh0IHJlbmRlcmVyIHRvIGJl
IGNoZWNrZWQuCiAgICAgUmVuZGVyRWxlbWVudCogY3VycmVudFJlbmRlcmVyID0gcHJldmlvdXNJ
blByZU9yZGVyKGNvdW50ZXJPd25lcik7Ci0gICAgcHJldmlvdXNTaWJsaW5nID0gMDsKLSAgICBS
ZWZQdHI8Q291bnRlck5vZGU+IHByZXZpb3VzU2libGluZ1Byb3RlY3RvciA9IDA7CisgICAgcHJl
dmlvdXNTaWJsaW5nID0gbnVsbHB0cjsKKyAgICBSZWZQdHI8Q291bnRlck5vZGU+IHByZXZpb3Vz
U2libGluZ1Byb3RlY3RvcjsKIAogICAgIHdoaWxlIChjdXJyZW50UmVuZGVyZXIpIHsKICAgICAg
ICAgQ291bnRlck5vZGUqIGN1cnJlbnRDb3VudGVyID0gbWFrZUNvdW50ZXJOb2RlKCpjdXJyZW50
UmVuZGVyZXIsIGlkZW50aWZpZXIsIGZhbHNlKTsKQEAgLTIwMyw3ICsyMDMsNyBAQCBzdGF0aWMg
Ym9vbCBmaW5kUGxhY2VGb3JDb3VudGVyKFJlbmRlckVsZW1lbnQmIGNvdW50ZXJPd25lciwgY29u
c3QgQXRvbWljU3RyaW5nJgogICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8vIGhlbmNlIHdl
IGFyZSB0aGUgbmV4dCBzaWJsaW5nIG9mIHRoYXQgY291bnRlciBpZiB0aGF0IHJlc2V0IGlzIG5v
dCBhIHJvb3Qgb3IKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAvLyB3ZSBhcmUgYSByb290
IG5vZGUgaWYgdGhhdCByZXNldCBpcyBhIHJvb3QuCiAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgcGFyZW50ID0gY3VycmVudENvdW50ZXItPnBhcmVudCgpOwotICAgICAgICAgICAgICAgICAg
ICAgICAgICAgIHByZXZpb3VzU2libGluZyA9IHBhcmVudCA/IGN1cnJlbnRDb3VudGVyIDogMDsK
KyAgICAgICAgICAgICAgICAgICAgICAgICAgICBwcmV2aW91c1NpYmxpbmcgPSBwYXJlbnQgPyBj
dXJyZW50Q291bnRlciA6IG51bGxwdHI7CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgcmV0
dXJuIHBhcmVudDsKICAgICAgICAgICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgICAgICAg
ICAgICAgIC8vIFdlIGFyZSBub3QgYSByZXNldCBub2RlIG9yIHRoZSBwcmV2aW91cyByZXNldCBt
dXN0IGJlIG9uIGFuIGFuY2VzdG9yIG9mIG91ciBvd25lciByZW5kZXJlcgpAQCAtMjEzLDcgKzIx
Myw3IEBAIHN0YXRpYyBib29sIGZpbmRQbGFjZUZvckNvdW50ZXIoUmVuZGVyRWxlbWVudCYgY291
bnRlck93bmVyLCBjb25zdCBBdG9taWNTdHJpbmcmCiAgICAgICAgICAgICAgICAgICAgICAgICAv
LyBJbiB0aGVzZSBjYXNlcyB0aGUgaWRlbnRpZmllZCBwcmV2aW91c1NpYmxpbmcgd2lsbCBiZSBp
bnZhbGlkIGFzIGl0cyBwYXJlbnQgaXMgZGlmZmVyZW50IGZyb20KICAgICAgICAgICAgICAgICAg
ICAgICAgIC8vIG91ciBpZGVudGlmaWVkIHBhcmVudC4KICAgICAgICAgICAgICAgICAgICAgICAg
IGlmIChwcmV2aW91c1NpYmxpbmdQcm90ZWN0b3ItPnBhcmVudCgpICE9IGN1cnJlbnRDb3VudGVy
KQotICAgICAgICAgICAgICAgICAgICAgICAgICAgIHByZXZpb3VzU2libGluZ1Byb3RlY3RvciA9
IDA7CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgcHJldmlvdXNTaWJsaW5nUHJvdGVjdG9y
ID0gbnVsbHB0cjsKIAogICAgICAgICAgICAgICAgICAgICAgICAgcHJldmlvdXNTaWJsaW5nID0g
cHJldmlvdXNTaWJsaW5nUHJvdGVjdG9yLmdldCgpOwogICAgICAgICAgICAgICAgICAgICAgICAg
cmV0dXJuIHRydWU7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVy
TWVudUxpc3QuY3BwIGIvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlck1lbnVMaXN0LmNw
cAppbmRleCBmZjlhMmM1ODZiYmQ5YmU5OWM3NzU1ZTIyMmUwMDM4NjQ2YzE3NGQ2Li5kYjk5NDk5
Y2JkZmYwM2E1NTEwMWQyYWQ4NmUxODM3NmNmYWZhMjhiIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2Vi
Q29yZS9yZW5kZXJpbmcvUmVuZGVyTWVudUxpc3QuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3Jl
bmRlcmluZy9SZW5kZXJNZW51TGlzdC5jcHAKQEAgLTg4LDcgKzg4LDcgQEAgUmVuZGVyTWVudUxp
c3Q6On5SZW5kZXJNZW51TGlzdCgpCiAjaWYgIVBMQVRGT1JNKElPUykKICAgICBpZiAobV9wb3B1
cCkKICAgICAgICAgbV9wb3B1cC0+ZGlzY29ubmVjdENsaWVudCgpOwotICAgIG1fcG9wdXAgPSAw
OworICAgIG1fcG9wdXAgPSBudWxscHRyOwogI2VuZGlmCiB9CiAKZGlmZiAtLWdpdCBhL1NvdXJj
ZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJTZWFyY2hGaWVsZC5jcHAgYi9Tb3VyY2UvV2ViQ29y
ZS9yZW5kZXJpbmcvUmVuZGVyU2VhcmNoRmllbGQuY3BwCmluZGV4IGZhNmUzOTY3MzE2NDhlYTA1
MWM2ODA2YzE5MjRkYzJjZjhiZTRjMDAuLjg5ZGMzNGM0ZjQ0NGRjYzVjNmM5ZTA3NWUxN2Q3N2M2
ZWQyZDQ4MDUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJTZWFy
Y2hGaWVsZC5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlclNlYXJjaEZp
ZWxkLmNwcApAQCAtNjIsNyArNjIsNyBAQCBSZW5kZXJTZWFyY2hGaWVsZDo6flJlbmRlclNlYXJj
aEZpZWxkKCkKIHsKICAgICBpZiAobV9zZWFyY2hQb3B1cCkgewogICAgICAgICBtX3NlYXJjaFBv
cHVwLT5wb3B1cE1lbnUoKS0+ZGlzY29ubmVjdENsaWVudCgpOwotICAgICAgICBtX3NlYXJjaFBv
cHVwID0gMDsKKyAgICAgICAgbV9zZWFyY2hQb3B1cCA9IG51bGxwdHI7CiAgICAgfQogfQogCmRp
ZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvc3R5bGUvRmlsbExheWVyLmggYi9T
b3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvc3R5bGUvRmlsbExheWVyLmgKaW5kZXggOGIwNmNlM2I3
ZTg3N2UyNTU2ZjY3Njg4YTM0M2FhZmMyZDEzMThmOS4uMDMwOTg2M2RhZTYwZTc4ZTc2OTRiMTY5
ZTY2YmJjZTVmMTljYzgwNCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL3N0
eWxlL0ZpbGxMYXllci5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9zdHlsZS9GaWxs
TGF5ZXIuaApAQCAtMTIxLDggKzEyMSw4IEBAIHB1YmxpYzoKICAgICB2b2lkIHNldFNpemUoRmls
bFNpemUgZikgeyBtX3NpemVUeXBlID0gZi50eXBlOyBtX3NpemVMZW5ndGggPSBmLnNpemU7IH0K
ICAgICB2b2lkIHNldE1hc2tTb3VyY2VUeXBlKEVNYXNrU291cmNlVHlwZSBtKSB7IG1fbWFza1Nv
dXJjZVR5cGUgPSBtOyBtX21hc2tTb3VyY2VUeXBlU2V0ID0gdHJ1ZTsgfQogCi0gICAgdm9pZCBj
bGVhck1hc2tJbWFnZSgpIHsgbV9tYXNrSW1hZ2VPcGVyYXRpb24uY2xlYXIoKTsgfQotICAgIHZv
aWQgY2xlYXJJbWFnZSgpIHsgbV9pbWFnZS5jbGVhcigpOyBtX2ltYWdlU2V0ID0gZmFsc2U7IH0K
KyAgICB2b2lkIGNsZWFyTWFza0ltYWdlKCkgeyBtX21hc2tJbWFnZU9wZXJhdGlvbiA9IG51bGxw
dHI7IH0KKyAgICB2b2lkIGNsZWFySW1hZ2UoKSB7IG1faW1hZ2UgPSBudWxscHRyOyBtX2ltYWdl
U2V0ID0gZmFsc2U7IH0KICAgICB2b2lkIGNsZWFyWFBvc2l0aW9uKCkgeyBtX3hQb3NTZXQgPSBm
YWxzZTsgbV9iYWNrZ3JvdW5kT3JpZ2luU2V0ID0gZmFsc2U7IH0KICAgICB2b2lkIGNsZWFyWVBv
c2l0aW9uKCkgeyBtX3lQb3NTZXQgPSBmYWxzZTsgbV9iYWNrZ3JvdW5kT3JpZ2luU2V0ID0gZmFs
c2U7IH0KIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL3N0eWxlL1JlbmRl
clN0eWxlLmNwcCBiL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9zdHlsZS9SZW5kZXJTdHlsZS5j
cHAKaW5kZXggODdjNThlOWJmYzdmNDRlNGYyYjljMjZmMWVmNTlkNjhmMTIwOWZkYy4uNDdmZWU4
OTUxY2M4NjlmZjk5YmIyMmY2NTk3YzA3ZjI0YWZmMWUxMSAxMDA2NDQKLS0tIGEvU291cmNlL1dl
YkNvcmUvcmVuZGVyaW5nL3N0eWxlL1JlbmRlclN0eWxlLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29y
ZS9yZW5kZXJpbmcvc3R5bGUvUmVuZGVyU3R5bGUuY3BwCkBAIC05NTAsNyArOTUwLDcgQEAgdm9p
ZCBSZW5kZXJTdHlsZTo6c2V0UXVvdGVzKFBhc3NSZWZQdHI8UXVvdGVzRGF0YT4gcSkKIHZvaWQg
UmVuZGVyU3R5bGU6OmNsZWFyQ3Vyc29yTGlzdCgpCiB7CiAgICAgaWYgKHJhcmVJbmhlcml0ZWRE
YXRhLT5jdXJzb3JEYXRhKQotICAgICAgICByYXJlSW5oZXJpdGVkRGF0YS5hY2Nlc3MoKS0+Y3Vy
c29yRGF0YSA9IDA7CisgICAgICAgIHJhcmVJbmhlcml0ZWREYXRhLmFjY2VzcygpLT5jdXJzb3JE
YXRhID0gbnVsbHB0cjsKIH0KIAogdm9pZCBSZW5kZXJTdHlsZTo6Y2xlYXJDb250ZW50KCkKZGlm
ZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3N2Zy9TVkdUUmVmRWxlbWVudC5jcHAgYi9Tb3VyY2Uv
V2ViQ29yZS9zdmcvU1ZHVFJlZkVsZW1lbnQuY3BwCmluZGV4IDIyNWEzMDQ2YTQ5OTJjOTcwNWJh
Nzk1MDk5NTYxYjNiOWViYWZmYmQuLmUzZmFkOGQ1OTBjNTRkZTZiZTk0Njc5Yzk1NzE3Yjk4NWFj
NzRhMjEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3N2Zy9TVkdUUmVmRWxlbWVudC5jcHAK
KysrIGIvU291cmNlL1dlYkNvcmUvc3ZnL1NWR1RSZWZFbGVtZW50LmNwcApAQCAtMTA0LDcgKzEw
NCw3IEBAIHZvaWQgU1ZHVFJlZlRhcmdldEV2ZW50TGlzdGVuZXI6OmRldGFjaCgpCiAKICAgICBt
X3RhcmdldC0+cmVtb3ZlRXZlbnRMaXN0ZW5lcihldmVudE5hbWVzKCkuRE9NU3VidHJlZU1vZGlm
aWVkRXZlbnQsIHRoaXMsIGZhbHNlKTsKICAgICBtX3RhcmdldC0+cmVtb3ZlRXZlbnRMaXN0ZW5l
cihldmVudE5hbWVzKCkuRE9NTm9kZVJlbW92ZWRGcm9tRG9jdW1lbnRFdmVudCwgdGhpcywgZmFs
c2UpOwotICAgIG1fdGFyZ2V0LmNsZWFyKCk7CisgICAgbV90YXJnZXQgPSBudWxscHRyOwogfQog
CiBib29sIFNWR1RSZWZUYXJnZXRFdmVudExpc3RlbmVyOjpvcGVyYXRvcj09KGNvbnN0IEV2ZW50
TGlzdGVuZXImIGxpc3RlbmVyKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvdGVzdGluZy9J
bnRlcm5hbHMuY3BwIGIvU291cmNlL1dlYkNvcmUvdGVzdGluZy9JbnRlcm5hbHMuY3BwCmluZGV4
IDFhMTA1MTc0NzllOGU4ZTk4MWE3NDUzYWJkYTZmZGMyNDc1NzUxYjcuLjQ3NmQxZTI3NTllNjA2
ZjIwNzY0NTgyMTBkYjQ5MzNjODIzMDZlODIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3Rl
c3RpbmcvSW50ZXJuYWxzLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS90ZXN0aW5nL0ludGVybmFs
cy5jcHAKQEAgLTE3MjMsNyArMTcyMyw3IEBAIHZvaWQgSW50ZXJuYWxzOjpjbG9zZUR1bW15SW5z
cGVjdG9yRnJvbnRlbmQoKQogICAgIG1fZnJvbnRlbmRDaGFubmVsID0gbnVsbHB0cjsKIAogICAg
IG1fZnJvbnRlbmRXaW5kb3ctPmNsb3NlKG1fZnJvbnRlbmRXaW5kb3ctPnNjcmlwdEV4ZWN1dGlv
bkNvbnRleHQoKSk7Ci0gICAgbV9mcm9udGVuZFdpbmRvdy5jbGVhcigpOworICAgIG1fZnJvbnRl
bmRXaW5kb3cgPSBudWxscHRyOwogfQogCiB2b2lkIEludGVybmFsczo6c2V0SmF2YVNjcmlwdFBy
b2ZpbGluZ0VuYWJsZWQoYm9vbCBlbmFibGVkLCBFeGNlcHRpb25Db2RlJiBlYykKZGlmZiAtLWdp
dCBhL1NvdXJjZS9XZWJDb3JlL3dvcmtlcnMvV29ya2VyRXZlbnRRdWV1ZS5jcHAgYi9Tb3VyY2Uv
V2ViQ29yZS93b3JrZXJzL1dvcmtlckV2ZW50UXVldWUuY3BwCmluZGV4IGY1MjBjMWRlZWZhYjFl
YjE0ZjFiN2ZkOTI0MGZlODY0N2FjMjRhODkuLjA3MjEwNzY5ZmQwNmJhOWNlODdhYzQ2NTJjOTll
MmMxNzhkMjg0ZjEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3dvcmtlcnMvV29ya2VyRXZl
bnRRdWV1ZS5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvd29ya2Vycy9Xb3JrZXJFdmVudFF1ZXVl
LmNwcApAQCAtNjgsMTMgKzY4LDEzIEBAIHB1YmxpYzoKICAgICAgICAgICAgIHJldHVybjsKICAg
ICAgICAgbV9ldmVudFF1ZXVlLm1fZXZlbnREaXNwYXRjaGVyTWFwLnJlbW92ZShtX2V2ZW50Lmdl
dCgpKTsKICAgICAgICAgbV9ldmVudC0+dGFyZ2V0KCktPmRpc3BhdGNoRXZlbnQobV9ldmVudCk7
Ci0gICAgICAgIG1fZXZlbnQuY2xlYXIoKTsKKyAgICAgICAgbV9ldmVudCA9IG51bGxwdHI7CiAg
ICAgfQogCiAgICAgdm9pZCBjYW5jZWwoKQogICAgIHsKICAgICAgICAgbV9pc0NhbmNlbGxlZCA9
IHRydWU7Ci0gICAgICAgIG1fZXZlbnQuY2xlYXIoKTsKKyAgICAgICAgbV9ldmVudCA9IG51bGxw
dHI7CiAgICAgfQogCiBwcml2YXRlOgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvd29ya2Vy
cy9Xb3JrZXJNZXNzYWdpbmdQcm94eS5jcHAgYi9Tb3VyY2UvV2ViQ29yZS93b3JrZXJzL1dvcmtl
ck1lc3NhZ2luZ1Byb3h5LmNwcAppbmRleCA3ODQ1YjYxZmE4ZGNmYWY5ZjY3ZmFhMGQ5NDI1ZDBm
OWIyYjVkNjE1Li5iZDc0ZWFjZTAyY2QzYzEwNmZkZWFiYzdlNGNkZjYxNjhhM2RiZTFlIDEwMDY0
NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS93b3JrZXJzL1dvcmtlck1lc3NhZ2luZ1Byb3h5LmNwcAor
KysgYi9Tb3VyY2UvV2ViQ29yZS93b3JrZXJzL1dvcmtlck1lc3NhZ2luZ1Byb3h5LmNwcApAQCAt
MjY0LDcgKzI2NCw3IEBAIHZvaWQgV29ya2VyTWVzc2FnaW5nUHJveHk6Ondvcmtlckdsb2JhbFNj
b3BlRGVzdHJveWVkSW50ZXJuYWwoKQogICAgIC8vIFdvcmtlckdsb2JhbFNjb3BlRGVzdHJveWVk
VGFzayBpcyBhbHdheXMgdGhlIGxhc3QgdG8gYmUgcGVyZm9ybWVkLCBzbyB0aGUgcHJveHkgaXMg
bm90IG5lZWRlZCBmb3IgY29tbXVuaWNhdGlvbgogICAgIC8vIGluIGVpdGhlciBzaWRlIGFueSBt
b3JlLiBIb3dldmVyLCB0aGUgV29ya2VyIG9iamVjdCBtYXkgc3RpbGwgZXhpc3QsIGFuZCBpdCBh
c3N1bWVzIHRoYXQgdGhlIHByb3h5IGV4aXN0cywgdG9vLgogICAgIG1fYXNrZWRUb1Rlcm1pbmF0
ZSA9IHRydWU7Ci0gICAgbV93b3JrZXJUaHJlYWQgPSAwOworICAgIG1fd29ya2VyVGhyZWFkID0g
bnVsbHB0cjsKIAogICAgIEluc3BlY3Rvckluc3RydW1lbnRhdGlvbjo6d29ya2VyR2xvYmFsU2Nv
cGVUZXJtaW5hdGVkKG1fc2NyaXB0RXhlY3V0aW9uQ29udGV4dC5nZXQoKSwgdGhpcyk7CiAKZGlm
ZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3dvcmtlcnMvV29ya2VyVGhyZWFkLmNwcCBiL1NvdXJj
ZS9XZWJDb3JlL3dvcmtlcnMvV29ya2VyVGhyZWFkLmNwcAppbmRleCA4NzNjODI5NmU2ZTJlZjEx
NzE0MmUwNWRmODlmNGJjNDZhMTRkOTA0Li5lNTE1NTUyNmM5OGU5MTAyOTdlMDFiODZmZWQyOGIx
MmY0ZDAyMjkwIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS93b3JrZXJzL1dvcmtlclRocmVh
ZC5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvd29ya2Vycy9Xb3JrZXJUaHJlYWQuY3BwCkBAIC0x
NzEsNyArMTcxLDcgQEAgdm9pZCBXb3JrZXJUaHJlYWQ6OndvcmtlclRocmVhZCgpCiAKICAgICAv
LyBUaGUgYmVsb3cgYXNzaWdubWVudCB3aWxsIGRlc3Ryb3kgdGhlIGNvbnRleHQsIHdoaWNoIHdp
bGwgaW4gdHVybiBub3RpZnkgbWVzc2FnaW5nIHByb3h5LgogICAgIC8vIFdlIGNhbm5vdCBsZXQg
YW55IG9iamVjdHMgc3Vydml2ZSBwYXN0IHRocmVhZCBleGl0LCBiZWNhdXNlIG5vIG90aGVyIHRo
cmVhZCB3aWxsIHJ1biBHQyBvciBvdGhlcndpc2UgZGVzdHJveSB0aGVtLgotICAgIG1fd29ya2Vy
R2xvYmFsU2NvcGUgPSAwOworICAgIG1fd29ya2VyR2xvYmFsU2NvcGUgPSBudWxscHRyOwogCiAg
ICAgLy8gQ2xlYW4gdXAgV2ViQ29yZTo6VGhyZWFkR2xvYmFsRGF0YSBiZWZvcmUgV1RGOjpXVEZU
aHJlYWREYXRhIGdvZXMgYXdheSEKICAgICB0aHJlYWRHbG9iYWxEYXRhKCkuZGVzdHJveSgpOwpk
aWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUveG1sL1hNTEh0dHBSZXF1ZXN0LmNwcCBiL1NvdXJj
ZS9XZWJDb3JlL3htbC9YTUxIdHRwUmVxdWVzdC5jcHAKaW5kZXggYzdlOGMwYjJiMGZkZDNhNzli
YTA5ZDJmZDkxNWYzMjE1ZmU2YzcyOS4uNDc1ZDZmYjRkNTZiZjY1NzVlZjUwYzFjNTQ0ZDU4ODM1
MDViOTQ3NSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUveG1sL1hNTEh0dHBSZXF1ZXN0LmNw
cAorKysgYi9Tb3VyY2UvV2ViQ29yZS94bWwvWE1MSHR0cFJlcXVlc3QuY3BwCkBAIC0yNDUsNyAr
MjQ1LDcgQEAgQmxvYiogWE1MSHR0cFJlcXVlc3Q6OnJlc3BvbnNlQmxvYigpCiAgICAgICAgICAg
ICBkYXRhLmFwcGVuZChtX2JpbmFyeVJlc3BvbnNlQnVpbGRlci0+ZGF0YSgpLCBtX2JpbmFyeVJl
c3BvbnNlQnVpbGRlci0+c2l6ZSgpKTsKICAgICAgICAgICAgIFN0cmluZyBub3JtYWxpemVkQ29u
dGVudFR5cGUgPSBCbG9iOjpub3JtYWxpemVkQ29udGVudFR5cGUocmVzcG9uc2VNSU1FVHlwZSgp
KTsgLy8gcmVzcG9uc2VNSU1FVHlwZSBkZWZhdWx0cyB0byB0ZXh0L3htbCB3aGljaCBtYXkgYmUg
aW5jb3JyZWN0LgogICAgICAgICAgICAgbV9yZXNwb25zZUJsb2IgPSBCbG9iOjpjcmVhdGUoV1RG
Ojptb3ZlKGRhdGEpLCBub3JtYWxpemVkQ29udGVudFR5cGUpOwotICAgICAgICAgICAgbV9iaW5h
cnlSZXNwb25zZUJ1aWxkZXIuY2xlYXIoKTsKKyAgICAgICAgICAgIG1fYmluYXJ5UmVzcG9uc2VC
dWlsZGVyID0gbnVsbHB0cjsKICAgICAgICAgfSBlbHNlIHsKICAgICAgICAgICAgIC8vIElmIHdl
IGVycm9yZWQgb3V0IG9yIGdvdCBubyBkYXRhLCB3ZSBzdGlsbCByZXR1cm4gYSBibG9iLCBqdXN0
IGFuIGVtcHR5IG9uZS4KICAgICAgICAgICAgIG1fcmVzcG9uc2VCbG9iID0gQmxvYjo6Y3JlYXRl
KCk7CkBAIC0yNjUsNyArMjY1LDcgQEAgQXJyYXlCdWZmZXIqIFhNTEh0dHBSZXF1ZXN0OjpyZXNw
b25zZUFycmF5QnVmZmVyKCkKICAgICAgICAgICAgIG1fcmVzcG9uc2VBcnJheUJ1ZmZlciA9IG1f
YmluYXJ5UmVzcG9uc2VCdWlsZGVyLT5jcmVhdGVBcnJheUJ1ZmZlcigpOwogICAgICAgICBlbHNl
CiAgICAgICAgICAgICBtX3Jlc3BvbnNlQXJyYXlCdWZmZXIgPSBBcnJheUJ1ZmZlcjo6Y3JlYXRl
KG51bGxwdHIsIDApOwotICAgICAgICBtX2JpbmFyeVJlc3BvbnNlQnVpbGRlci5jbGVhcigpOwor
ICAgICAgICBtX2JpbmFyeVJlc3BvbnNlQnVpbGRlciA9IG51bGxwdHI7CiAgICAgfQogCiAgICAg
cmV0dXJuIG1fcmVzcG9uc2VBcnJheUJ1ZmZlci5nZXQoKTsKQEAgLTg2OCw4ICs4NjgsOCBAQCB2
b2lkIFhNTEh0dHBSZXF1ZXN0OjpjbGVhclJlc3BvbnNlQnVmZmVycygpCiAgICAgbV9jcmVhdGVk
RG9jdW1lbnQgPSBmYWxzZTsKICAgICBtX3Jlc3BvbnNlRG9jdW1lbnQgPSBudWxscHRyOwogICAg
IG1fcmVzcG9uc2VCbG9iID0gbnVsbHB0cjsKLSAgICBtX2JpbmFyeVJlc3BvbnNlQnVpbGRlci5j
bGVhcigpOwotICAgIG1fcmVzcG9uc2VBcnJheUJ1ZmZlci5jbGVhcigpOworICAgIG1fYmluYXJ5
UmVzcG9uc2VCdWlsZGVyID0gbnVsbHB0cjsKKyAgICBtX3Jlc3BvbnNlQXJyYXlCdWZmZXIgPSBu
dWxscHRyOwogICAgIG1fcmVzcG9uc2VDYWNoZUlzVmFsaWQgPSBmYWxzZTsKIH0KIApkaWZmIC0t
Z2l0IGEvU291cmNlL1dlYkNvcmUveG1sL1hTTFRQcm9jZXNzb3IuY3BwIGIvU291cmNlL1dlYkNv
cmUveG1sL1hTTFRQcm9jZXNzb3IuY3BwCmluZGV4IDA2OWNjZWNiN2JmMmM5NDAwNmRlOTQ4NWQx
NjMyODRlODQwNzkxZmIuLjQ5MWYxMmM5OWQ4YTViNDIwYWZmYzI5MDc3YzRiM2RlMjEzZDU0MDgg
MTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3htbC9YU0xUUHJvY2Vzc29yLmNwcAorKysgYi9T
b3VyY2UvV2ViQ29yZS94bWwvWFNMVFByb2Nlc3Nvci5jcHAKQEAgLTE2Miw4ICsxNjIsOCBAQCB2
b2lkIFhTTFRQcm9jZXNzb3I6OnJlbW92ZVBhcmFtZXRlcihjb25zdCBTdHJpbmcmIC8qbmFtZXNw
YWNlVVJJKi8sIGNvbnN0IFN0cmluZwogCiB2b2lkIFhTTFRQcm9jZXNzb3I6OnJlc2V0KCkKIHsK
LSAgICBtX3N0eWxlc2hlZXQuY2xlYXIoKTsKLSAgICBtX3N0eWxlc2hlZXRSb290Tm9kZS5jbGVh
cigpOworICAgIG1fc3R5bGVzaGVldCA9IG51bGxwdHI7CisgICAgbV9zdHlsZXNoZWV0Um9vdE5v
ZGUgPSBudWxscHRyOwogICAgIG1fcGFyYW1ldGVycy5jbGVhcigpOwogfQogCmRpZmYgLS1naXQg
YS9Tb3VyY2UvV2ViS2l0L1N0b3JhZ2UvU3RvcmFnZUFyZWFTeW5jLmNwcCBiL1NvdXJjZS9XZWJL
aXQvU3RvcmFnZS9TdG9yYWdlQXJlYVN5bmMuY3BwCmluZGV4IGQxZWIzMmEwZGE0Y2QzYmJlYjZm
ODhjNzYxNWUyYmZkOWI5NzcxODYuLmJhMTdmMTg5ODFlM2JlNmYxODQwZjkwOThhOGIxYWIxOTAw
NTNmNTkgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvU3RvcmFnZS9TdG9yYWdlQXJlYVN5bmMu
Y3BwCisrKyBiL1NvdXJjZS9XZWJLaXQvU3RvcmFnZS9TdG9yYWdlQXJlYVN5bmMuY3BwCkBAIC04
OCw3ICs4OCw3IEBAIHZvaWQgU3RvcmFnZUFyZWFTeW5jOjpzY2hlZHVsZUZpbmFsU3luYygpCiAg
ICAgQVNTRVJUKGlzTWFpblRocmVhZCgpKTsKICAgICAvLyBGSVhNRTogV2UgZG8gdGhpcyB0byBh
dm9pZCByYWNlcywgYnV0IGl0J2QgYmUgYmV0dGVyIHRvIG1ha2UgdGhpbmdzIHNhZmUgd2l0aG91
dCBibG9ja2luZy4KICAgICBibG9ja1VudGlsSW1wb3J0Q29tcGxldGUoKTsKLSAgICBtX3N0b3Jh
Z2VBcmVhID0gMDsgIC8vIFRoaXMgaXMgZG9uZSBpbiBibG9ja1VudGlsSW1wb3J0Q29tcGxldGUo
KSBidXQgdGhpcyBpcyBoZXJlIGFzIGEgZm9ybSBvZiBkb2N1bWVudGF0aW9uIHRoYXQgd2UgbXVz
dCBiZSBhYnNvbHV0ZWx5IHN1cmUgdGhlIHJlZiBjb3VudCBjeWNsZSBpcyBicm9rZW4uCisgICAg
bV9zdG9yYWdlQXJlYSA9IG51bGxwdHI7IC8vIFRoaXMgaXMgZG9uZSBpbiBibG9ja1VudGlsSW1w
b3J0Q29tcGxldGUoKSBidXQgdGhpcyBpcyBoZXJlIGFzIGEgZm9ybSBvZiBkb2N1bWVudGF0aW9u
IHRoYXQgd2UgbXVzdCBiZSBhYnNvbHV0ZWx5IHN1cmUgdGhlIHJlZiBjb3VudCBjeWNsZSBpcyBi
cm9rZW4uCiAKICAgICBpZiAobV9zeW5jVGltZXIuaXNBY3RpdmUoKSkKICAgICAgICAgbV9zeW5j
VGltZXIuc3RvcCgpOwpAQCAtMzc1LDcgKzM3NSw3IEBAIHZvaWQgU3RvcmFnZUFyZWFTeW5jOjpi
bG9ja1VudGlsSW1wb3J0Q29tcGxldGUoKQogICAgIE11dGV4TG9ja2VyIGxvY2tlcihtX2ltcG9y
dExvY2spOwogICAgIHdoaWxlICghbV9pbXBvcnRDb21wbGV0ZSkKICAgICAgICAgbV9pbXBvcnRD
b25kaXRpb24ud2FpdChtX2ltcG9ydExvY2spOwotICAgIG1fc3RvcmFnZUFyZWEgPSAwOworICAg
IG1fc3RvcmFnZUFyZWEgPSBudWxscHRyOwogfQogCiB2b2lkIFN0b3JhZ2VBcmVhU3luYzo6c3lu
Yyhib29sIGNsZWFySXRlbXMsIGNvbnN0IEhhc2hNYXA8U3RyaW5nLCBTdHJpbmc+JiBpdGVtcykK
ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvbWFjL1BsdWdpbnMvSG9zdGVkL1dlYkhvc3RlZE5l
dHNjYXBlUGx1Z2luVmlldy5tbSBiL1NvdXJjZS9XZWJLaXQvbWFjL1BsdWdpbnMvSG9zdGVkL1dl
Ykhvc3RlZE5ldHNjYXBlUGx1Z2luVmlldy5tbQppbmRleCA3NjAwNTgzNjkwZDc5NjBjNWQ4YTU5
YTczZTcyZDAyNWRiMmNmZjM3Li5hYzQzNGVjMWE5ZjM0OGM3MDVjOGJiMDEyY2U2YTRlYzg5N2Vm
MzBhIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L21hYy9QbHVnaW5zL0hvc3RlZC9XZWJIb3N0
ZWROZXRzY2FwZVBsdWdpblZpZXcubW0KKysrIGIvU291cmNlL1dlYktpdC9tYWMvUGx1Z2lucy9I
b3N0ZWQvV2ViSG9zdGVkTmV0c2NhcGVQbHVnaW5WaWV3Lm1tCkBAIC0yODEsNyArMjgxLDcgQEAg
LSAodm9pZClkZXN0cm95UGx1Z2luCiAgICAgICAgIH0KICAgICAgICAgCiAgICAgICAgIF9wcm94
eS0+ZGVzdHJveSgpOwotICAgICAgICBfcHJveHkgPSAwOworICAgICAgICBfcHJveHkgPSBudWxs
cHRyOwogICAgIH0KICAgICAKICAgICBfcGx1Z2luTGF5ZXIgPSAwOwpAQCAtNDMyLDcgKzQzMiw3
IEBAIC0gKHZvaWQpcGx1Z2luSG9zdERpZWQKICAgICAgICAgZG93bmNhc3Q8UmVuZGVyRW1iZWRk
ZWRPYmplY3Q+KCpfZWxlbWVudC0+cmVuZGVyZXIoKSkuc2V0UGx1Z2luVW5hdmFpbGFiaWxpdHlS
ZWFzb24oUmVuZGVyRW1iZWRkZWRPYmplY3Q6OlBsdWdpbkNyYXNoZWQpOwogCiAgICAgX3BsdWdp
bkxheWVyID0gbmlsOwotICAgIF9wcm94eSA9IDA7CisgICAgX3Byb3h5ID0gbnVsbHB0cjsKICAg
ICAKICAgICAvLyBObyBuZWVkIGZvciB1cyB0byBiZSBsYXllciBiYWNrZWQgYW55bW9yZQogICAg
IHNlbGYud2FudHNMYXllciA9IE5POwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9tYWMvV2Vi
Q29yZVN1cHBvcnQvV2ViRWRpdG9yQ2xpZW50Lm1tIGIvU291cmNlL1dlYktpdC9tYWMvV2ViQ29y
ZVN1cHBvcnQvV2ViRWRpdG9yQ2xpZW50Lm1tCmluZGV4IDZjZWQxOTQxMzg2YjBjNjkxMDYyNjdm
MWNkNzRkOGVjM2ExOWQ5NTYuLmMxODhiOWQ3Mzk1N2E0YTIzMDNkODcwMjE4MzEzMDZjZDYwMTNi
MjkgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvbWFjL1dlYkNvcmVTdXBwb3J0L1dlYkVkaXRv
ckNsaWVudC5tbQorKysgYi9Tb3VyY2UvV2ViS2l0L21hYy9XZWJDb3JlU3VwcG9ydC9XZWJFZGl0
b3JDbGllbnQubW0KQEAgLTExNDMsNyArMTE0Myw3IEBAIHZvaWQgV2ViRWRpdG9yQ2xpZW50Ojpk
aWRDaGVja1N1Y2NlZWQoaW50IHNlcXVlbmNlLCBOU0FycmF5KiByZXN1bHRzKQogewogICAgIEFT
U0VSVF9VTlVTRUQoc2VxdWVuY2UsIHNlcXVlbmNlID09IG1fdGV4dENoZWNraW5nUmVxdWVzdC0+
ZGF0YSgpLnNlcXVlbmNlKCkpOwogICAgIG1fdGV4dENoZWNraW5nUmVxdWVzdC0+ZGlkU3VjY2Vl
ZChjb3JlKHJlc3VsdHMsIG1fdGV4dENoZWNraW5nUmVxdWVzdC0+ZGF0YSgpLm1hc2soKSkpOwot
ICAgIG1fdGV4dENoZWNraW5nUmVxdWVzdC5jbGVhcigpOworICAgIG1fdGV4dENoZWNraW5nUmVx
dWVzdCA9IG51bGxwdHI7CiB9CiAjZW5kaWYKIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9t
YWMvV2ViQ29yZVN1cHBvcnQvV2ViVXNlck1lZGlhQ2xpZW50Lm1tIGIvU291cmNlL1dlYktpdC9t
YWMvV2ViQ29yZVN1cHBvcnQvV2ViVXNlck1lZGlhQ2xpZW50Lm1tCmluZGV4IDYyMmJkOWRkM2Fm
ZTA4OTJiMWRjMmRmNTBiYTdlNGI0MzIyYjE1OWQuLjE3ZjE2NDczZWQ1YjlkNDM0ODMwZWQ3Yzcy
Njk4NjVkN2E1YjM1M2YgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvbWFjL1dlYkNvcmVTdXBw
b3J0L1dlYlVzZXJNZWRpYUNsaWVudC5tbQorKysgYi9Tb3VyY2UvV2ViS2l0L21hYy9XZWJDb3Jl
U3VwcG9ydC9XZWJVc2VyTWVkaWFDbGllbnQubW0KQEAgLTE0Miw3ICsxNDIsNyBAQCAtICh2b2lk
KWNhbmNlbFJlcXVlc3QKICAgICBpZiAoIV9yZXF1ZXN0KQogICAgICAgICByZXR1cm47CiAKLSAg
ICBfcmVxdWVzdCA9IDA7CisgICAgX3JlcXVlc3QgPSBudWxscHRyOwogI2VuZGlmCiAgICAgCiB9
CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L3dpbi9XZWJWaWV3LmNwcCBiL1NvdXJjZS9XZWJL
aXQvd2luL1dlYlZpZXcuY3BwCmluZGV4IDQzNzUyNzEyOGQxNTQxZmM2OWU4N2QwNThjYjllOTA2
MmI2MzYyM2QuLmI3OWU2M2M1NDY1NWIxNzMwZjA0ZTZkNmE4ZTA3NDc0ZDZkYWJiMDEgMTAwNjQ0
Ci0tLSBhL1NvdXJjZS9XZWJLaXQvd2luL1dlYlZpZXcuY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQv
d2luL1dlYlZpZXcuY3BwCkBAIC04NTEsOCArODUxLDggQEAgdm9pZCBXZWJWaWV3OjpkZWxldGVC
YWNraW5nU3RvcmUoKQogICAgICAgICBLaWxsVGltZXIobV92aWV3V2luZG93LCBEZWxldGVCYWNr
aW5nU3RvcmVUaW1lcik7CiAgICAgICAgIG1fZGVsZXRlQmFja2luZ1N0b3JlVGltZXJBY3RpdmUg
PSBmYWxzZTsKICAgICB9Ci0gICAgbV9iYWNraW5nU3RvcmVCaXRtYXAuY2xlYXIoKTsKLSAgICBt
X2JhY2tpbmdTdG9yZURpcnR5UmVnaW9uLmNsZWFyKCk7CisgICAgbV9iYWNraW5nU3RvcmVCaXRt
YXAgPSBudWxscHRyOworICAgIG1fYmFja2luZ1N0b3JlRGlydHlSZWdpb24gPSBudWxscHRyOwog
ICAgIG1fYmFja2luZ1N0b3JlU2l6ZS5jeCA9IG1fYmFja2luZ1N0b3JlU2l6ZS5jeSA9IDA7CiB9
CiAKQEAgLTEwNzksNyArMTA3OSw3IEBAIHZvaWQgV2ViVmlldzo6dXBkYXRlQmFja2luZ1N0b3Jl
KEZyYW1lVmlldyogZnJhbWVWaWV3LCBIREMgZGMsIGJvb2wgYmFja2luZ1N0b3JlCiAgICAgICAg
IGlmIChtX3VpRGVsZWdhdGVQcml2YXRlKQogICAgICAgICAgICAgbV91aURlbGVnYXRlUHJpdmF0
ZS0+d2ViVmlld1BhaW50ZWQodGhpcyk7CiAKLSAgICAgICAgbV9iYWNraW5nU3RvcmVEaXJ0eVJl
Z2lvbi5jbGVhcigpOworICAgICAgICBtX2JhY2tpbmdTdG9yZURpcnR5UmVnaW9uID0gbnVsbHB0
cjsKICAgICB9CiAKICAgICBpZiAoIWRjKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdDIvRGF0
YWJhc2VQcm9jZXNzL0luZGV4ZWREQi9VbmlxdWVJREJEYXRhYmFzZS5jcHAgYi9Tb3VyY2UvV2Vi
S2l0Mi9EYXRhYmFzZVByb2Nlc3MvSW5kZXhlZERCL1VuaXF1ZUlEQkRhdGFiYXNlLmNwcAppbmRl
eCA2MTk4MDVjZDlhMjYxZTcxNWIyNzg4OGMxYjFiZWYxMTkzMmUzZWNkLi4zZDJjYTViYmJmYWM2
NGFlYjgxNjgwYmE4NzVmNjA3Yzg0ZTRiZDFkIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0Mi9E
YXRhYmFzZVByb2Nlc3MvSW5kZXhlZERCL1VuaXF1ZUlEQkRhdGFiYXNlLmNwcAorKysgYi9Tb3Vy
Y2UvV2ViS2l0Mi9EYXRhYmFzZVByb2Nlc3MvSW5kZXhlZERCL1VuaXF1ZUlEQkRhdGFiYXNlLmNw
cApAQCAtMTQ3LDcgKzE0Nyw3IEBAIHZvaWQgVW5pcXVlSURCRGF0YWJhc2U6OnNodXRkb3duQmFj
a2luZ1N0b3JlKFVuaXF1ZUlEQkRhdGFiYXNlU2h1dGRvd25UeXBlIHR5cGUsCiB7CiAgICAgQVNT
RVJUKCFSdW5Mb29wOjppc01haW4oKSk7CiAKLSAgICBtX2JhY2tpbmdTdG9yZS5jbGVhcigpOwor
ICAgIG1fYmFja2luZ1N0b3JlID0gbnVsbHB0cjsKIAogICAgIGlmICh0eXBlID09IFVuaXF1ZUlE
QkRhdGFiYXNlU2h1dGRvd25UeXBlOjpEZWxldGVTaHV0ZG93bikgewogICAgICAgICBTdHJpbmcg
ZGJGaWxlbmFtZSA9IFVuaXF1ZUlEQkRhdGFiYXNlOjpjYWxjdWxhdGVBYnNvbHV0ZURhdGFiYXNl
RmlsZW5hbWUoZGF0YWJhc2VEaXJlY3RvcnkpOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdDIv
UGx1Z2luUHJvY2Vzcy9QbHVnaW5Db250cm9sbGVyUHJveHkuY3BwIGIvU291cmNlL1dlYktpdDIv
UGx1Z2luUHJvY2Vzcy9QbHVnaW5Db250cm9sbGVyUHJveHkuY3BwCmluZGV4IDg4ZDZkMTc3ZGE4
NDYxZWY4ZjRlMzIzY2M2YzYyZmY5ZGNmNGMxODEuLjRhOWY0NjdlODc4ZGU4MWM2NjFiZGVkMzVk
NzYxNjYzMDYxMWM0N2MgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQyL1BsdWdpblByb2Nlc3Mv
UGx1Z2luQ29udHJvbGxlclByb3h5LmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0Mi9QbHVnaW5Qcm9j
ZXNzL1BsdWdpbkNvbnRyb2xsZXJQcm94eS5jcHAKQEAgLTEyNiw3ICsxMjYsNyBAQCBib29sIFBs
dWdpbkNvbnRyb2xsZXJQcm94eTo6aW5pdGlhbGl6ZShjb25zdCBQbHVnaW5DcmVhdGlvblBhcmFt
ZXRlcnMmIGNyZWF0aW9uUAogICAgICAgICAvLyB1c2VkIGFzIGFuIGlkZW50aWZpZXIgc28gaXQn
cyBPSyB0byBqdXN0IGdldCBhIHdlYWsgcmVmZXJlbmNlLgogICAgICAgICBQbHVnaW4qIHBsdWdp
biA9IG1fcGx1Z2luLmdldCgpOwogICAgICAgICAKLSAgICAgICAgbV9wbHVnaW4gPSAwOworICAg
ICAgICBtX3BsdWdpbiA9IG51bGxwdHI7CiAKICAgICAgICAgLy8gVGhpcyB3aWxsIGRlbGV0ZSB0
aGUgcGx1Zy1pbiBjb250cm9sbGVyIHByb3h5IG9iamVjdC4KICAgICAgICAgbV9jb25uZWN0aW9u
LT5yZW1vdmVQbHVnaW5Db250cm9sbGVyUHJveHkodGhpcywgcGx1Z2luKTsKQEAgLTE1Niw3ICsx
NTYsNyBAQCB2b2lkIFBsdWdpbkNvbnRyb2xsZXJQcm94eTo6ZGVzdHJveSgpCiAgICAgUGx1Z2lu
KiBwbHVnaW4gPSBtX3BsdWdpbi5nZXQoKTsKIAogICAgIG1fcGx1Z2luLT5kZXN0cm95UGx1Z2lu
KCk7Ci0gICAgbV9wbHVnaW4gPSAwOworICAgIG1fcGx1Z2luID0gbnVsbHB0cjsKIAogICAgIHBs
YXRmb3JtRGVzdHJveSgpOwogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9TaGFyZWQvQ2hp
bGRQcm9jZXNzUHJveHkuY3BwIGIvU291cmNlL1dlYktpdDIvU2hhcmVkL0NoaWxkUHJvY2Vzc1By
b3h5LmNwcAppbmRleCAzOTMwOTg5NzllNjhlYzEyNDQwZTEyNWZjYzNhMjQyYjA3ZTY4OTdkLi5k
OWUwN2VmNGM3ZDYyZGU4NmRmYzY5OGY3MDU0Zjg4YzRhODUzMzg1IDEwMDY0NAotLS0gYS9Tb3Vy
Y2UvV2ViS2l0Mi9TaGFyZWQvQ2hpbGRQcm9jZXNzUHJveHkuY3BwCisrKyBiL1NvdXJjZS9XZWJL
aXQyL1NoYXJlZC9DaGlsZFByb2Nlc3NQcm94eS5jcHAKQEAgLTQyLDcgKzQyLDcgQEAgQ2hpbGRQ
cm9jZXNzUHJveHk6On5DaGlsZFByb2Nlc3NQcm94eSgpCiAKICAgICBpZiAobV9wcm9jZXNzTGF1
bmNoZXIpIHsKICAgICAgICAgbV9wcm9jZXNzTGF1bmNoZXItPmludmFsaWRhdGUoKTsKLSAgICAg
ICAgbV9wcm9jZXNzTGF1bmNoZXIgPSAwOworICAgICAgICBtX3Byb2Nlc3NMYXVuY2hlciA9IG51
bGxwdHI7CiAgICAgfQogfQogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9TaGFyZWQvQ29v
cmRpbmF0ZWRHcmFwaGljcy9Db29yZGluYXRlZEJhY2tpbmdTdG9yZS5jcHAgYi9Tb3VyY2UvV2Vi
S2l0Mi9TaGFyZWQvQ29vcmRpbmF0ZWRHcmFwaGljcy9Db29yZGluYXRlZEJhY2tpbmdTdG9yZS5j
cHAKaW5kZXggYjlhMDVmOTA2ZTljMTFmMDI3ZWExYTE1MjVlZTQzZWNmZDVjNTNkNy4uYzY2ZDI4
Yjc1Mzk3NGEwNTc0MGNiNmFmNjhlMmM0ODQ4MWQ5M2MzMiAxMDA2NDQKLS0tIGEvU291cmNlL1dl
YktpdDIvU2hhcmVkL0Nvb3JkaW5hdGVkR3JhcGhpY3MvQ29vcmRpbmF0ZWRCYWNraW5nU3RvcmUu
Y3BwCisrKyBiL1NvdXJjZS9XZWJLaXQyL1NoYXJlZC9Db29yZGluYXRlZEdyYXBoaWNzL0Nvb3Jk
aW5hdGVkQmFja2luZ1N0b3JlLmNwcApAQCAtNTUsNyArNTUsNyBAQCB2b2lkIENvb3JkaW5hdGVk
QmFja2luZ1N0b3JlVGlsZTo6c3dhcEJ1ZmZlcnMoVGV4dHVyZU1hcHBlciogdGV4dHVyZU1hcHBl
cikKICAgICAgICAgdGV4dHVyZS0+cmVzZXQobV90aWxlUmVjdC5zaXplKCksIG1fc3VyZmFjZS0+
c3VwcG9ydHNBbHBoYSgpKTsKIAogICAgIG1fc3VyZmFjZS0+Y29weVRvVGV4dHVyZSh0ZXh0dXJl
LCBtX3NvdXJjZVJlY3QsIG1fc3VyZmFjZU9mZnNldCk7Ci0gICAgbV9zdXJmYWNlLmNsZWFyKCk7
CisgICAgbV9zdXJmYWNlID0gbnVsbHB0cjsKIH0KIAogdm9pZCBDb29yZGluYXRlZEJhY2tpbmdT
dG9yZVRpbGU6OnNldEJhY2tCdWZmZXIoY29uc3QgSW50UmVjdCYgdGlsZVJlY3QsIGNvbnN0IElu
dFJlY3QmIHNvdXJjZVJlY3QsIFBhc3NSZWZQdHI8Q29vcmRpbmF0ZWRTdXJmYWNlPiBidWZmZXIs
IGNvbnN0IEludFBvaW50JiBvZmZzZXQpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9VSVBy
b2Nlc3MvQVBJL2VmbC9Fd2tWaWV3LmNwcCBiL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9BUEkv
ZWZsL0V3a1ZpZXcuY3BwCmluZGV4IDc3YjUwMWE4NGRmNjQzZTFiZGVlN2U1NzQ1ZmYxOTQ0MTQy
NWFmNTkuLjQ1ODg0NjQ1Nzg3Mzc0NzM3ZDgzYmJjNDA1ZWU4YzdiZmU3NDVmYzkgMTAwNjQ0Ci0t
LSBhL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9BUEkvZWZsL0V3a1ZpZXcuY3BwCisrKyBiL1Nv
dXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9BUEkvZWZsL0V3a1ZpZXcuY3BwCkBAIC05NDAsNyArOTQw
LDcgQEAgdm9pZCBFd2tWaWV3OjpoaWRlQ29udGV4dE1lbnUoKQogICAgIGlmIChzZC0+YXBpLT5j
b250ZXh0X21lbnVfaGlkZSkKICAgICAgICAgc2QtPmFwaS0+Y29udGV4dF9tZW51X2hpZGUoc2Qp
OwogCi0gICAgbV9jb250ZXh0TWVudS5jbGVhcigpOworICAgIG1fY29udGV4dE1lbnUgPSBudWxs
cHRyOwogfQogCiB2b2lkIEV3a1ZpZXc6OnJlcXVlc3RQb3B1cE1lbnUoV0tQb3B1cE1lbnVMaXN0
ZW5lclJlZiBwb3B1cE1lbnVMaXN0ZW5lciwgY29uc3QgV0tSZWN0JiByZWN0LCBXS1BvcHVwSXRl
bVRleHREaXJlY3Rpb24gdGV4dERpcmVjdGlvbiwgZG91YmxlIHBhZ2VTY2FsZUZhY3RvciwgV0tB
cnJheVJlZiBpdGVtcywgaW50MzJfdCBzZWxlY3RlZEluZGV4KQpkaWZmIC0tZ2l0IGEvU291cmNl
L1dlYktpdDIvVUlQcm9jZXNzL0FQSS9ndGsvV2ViS2l0Rm9ybVN1Ym1pc3Npb25SZXF1ZXN0LmNw
cCBiL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9BUEkvZ3RrL1dlYktpdEZvcm1TdWJtaXNzaW9u
UmVxdWVzdC5jcHAKaW5kZXggZDJkNWU2ODIxOGZhMjYxMzRkOGQ2Y2IzMzg4ZjQ1ZmNjZWFlZmEy
OS4uN2FmMmFlZTEwYjc1NDhmOWVkN2JiZjdlZGMyMzNjNDNkMTY5NTE3NSAxMDA2NDQKLS0tIGEv
U291cmNlL1dlYktpdDIvVUlQcm9jZXNzL0FQSS9ndGsvV2ViS2l0Rm9ybVN1Ym1pc3Npb25SZXF1
ZXN0LmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvQVBJL2d0ay9XZWJLaXRGb3Jt
U3VibWlzc2lvblJlcXVlc3QuY3BwCkBAIC05Niw3ICs5Niw3IEBAIEdIYXNoVGFibGUqIHdlYmtp
dF9mb3JtX3N1Ym1pc3Npb25fcmVxdWVzdF9nZXRfdGV4dF9maWVsZHMoV2ViS2l0Rm9ybVN1Ym1p
c3Npb25SCiAgICAgICAgIHJldHVybiByZXF1ZXN0LT5wcml2LT52YWx1ZXMuZ2V0KCk7CiAKICAg
ICBpZiAoIXJlcXVlc3QtPnByaXYtPndlYlZhbHVlcy0+c2l6ZSgpKQotICAgICAgICByZXR1cm4g
MDsKKyAgICAgICAgcmV0dXJuIG51bGxwdHI7CiAKICAgICByZXF1ZXN0LT5wcml2LT52YWx1ZXMg
PSBhZG9wdEdSZWYoZ19oYXNoX3RhYmxlX25ld19mdWxsKGdfc3RyX2hhc2gsIGdfc3RyX2VxdWFs
LCBnX2ZyZWUsIGdfZnJlZSkpOwogCkBAIC0xMDcsNyArMTA3LDcgQEAgR0hhc2hUYWJsZSogd2Vi
a2l0X2Zvcm1fc3VibWlzc2lvbl9yZXF1ZXN0X2dldF90ZXh0X2ZpZWxkcyhXZWJLaXRGb3JtU3Vi
bWlzc2lvblIKICAgICAgICAgZ19oYXNoX3RhYmxlX2luc2VydChyZXF1ZXN0LT5wcml2LT52YWx1
ZXMuZ2V0KCksIGdfc3RyZHVwKGl0LT5rZXkudXRmOCgpLmRhdGEoKSksIGdfc3RyZHVwKHZhbHVl
LT5zdHJpbmcoKS51dGY4KCkuZGF0YSgpKSk7CiAgICAgfQogCi0gICAgcmVxdWVzdC0+cHJpdi0+
d2ViVmFsdWVzID0gMDsKKyAgICByZXF1ZXN0LT5wcml2LT53ZWJWYWx1ZXMgPSBudWxscHRyOwog
CiAgICAgcmV0dXJuIHJlcXVlc3QtPnByaXYtPnZhbHVlcy5nZXQoKTsKIH0KZGlmZiAtLWdpdCBh
L1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9BUEkvbWFjL1dLVmlldy5tbSBiL1NvdXJjZS9XZWJL
aXQyL1VJUHJvY2Vzcy9BUEkvbWFjL1dLVmlldy5tbQppbmRleCBkNTUxNWFlMWZjM2Y0Mjk5ZGEx
MjQzMWE0MWE3NDdlMzhhM2U0NjU3Li5lOGQyNDQ5NThmMDlkZTVmZGVjOWUxYmMzYjE0YTI2MTAy
MmUzMmE2IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvQVBJL21hYy9XS1Zp
ZXcubW0KKysrIGIvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL0FQSS9tYWMvV0tWaWV3Lm1tCkBA
IC0zNTIwLDcgKzM1MjAsNyBAQCAtICh2b2lkKV9zZXRQcm9taXNlZERhdGFGb3JBdHRhY2htZW50
OihOU1N0cmluZyAqKWZpbGVuYW1lIHdpdGhFeHRlbnNpb246KE5TU3RyaQogCiAtICh2b2lkKXBh
c3RlYm9hcmRDaGFuZ2VkT3duZXI6KE5TUGFzdGVib2FyZCAqKXBhc3RlYm9hcmQKIHsKLSAgICBf
ZGF0YS0+X3Byb21pc2VkSW1hZ2UgPSAwOworICAgIF9kYXRhLT5fcHJvbWlzZWRJbWFnZSA9IG51
bGxwdHI7CiAgICAgX2RhdGEtPl9wcm9taXNlZEZpbGVuYW1lID0gIiI7CiAgICAgX2RhdGEtPl9w
cm9taXNlZFVSTCA9ICIiOwogfQpAQCAtMzUzMSw3ICszNTMxLDcgQEAgLSAodm9pZClwYXN0ZWJv
YXJkOihOU1Bhc3RlYm9hcmQgKilwYXN0ZWJvYXJkIHByb3ZpZGVEYXRhRm9yVHlwZTooTlNTdHJp
bmcgKil0eXAKIAogICAgIGlmIChbdHlwZSBpc0VxdWFsOk5TVElGRlBib2FyZFR5cGVdICYmIF9k
YXRhLT5fcHJvbWlzZWRJbWFnZSkgewogICAgICAgICBbcGFzdGVib2FyZCBzZXREYXRhOihOU0Rh
dGEgKilfZGF0YS0+X3Byb21pc2VkSW1hZ2UtPmdldFRJRkZSZXByZXNlbnRhdGlvbigpIGZvclR5
cGU6TlNUSUZGUGJvYXJkVHlwZV07Ci0gICAgICAgIF9kYXRhLT5fcHJvbWlzZWRJbWFnZSA9IDA7
CisgICAgICAgIF9kYXRhLT5fcHJvbWlzZWRJbWFnZSA9IG51bGxwdHI7CiAgICAgfQogfQogCmRp
ZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvSW5zcGVjdG9yU2VydmVyL1dlYlNv
Y2tldFNlcnZlckNvbm5lY3Rpb24uY3BwIGIvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL0luc3Bl
Y3RvclNlcnZlci9XZWJTb2NrZXRTZXJ2ZXJDb25uZWN0aW9uLmNwcAppbmRleCA4MDk3YWMxYTRj
YzFlMGRkYmZhZGZmOTkwYzNlNGU1Mjc3YmZlNDA2Li45NGEyNGM5MGMzODY2YWY1OTdlYjBkNTkx
ZjM2OWY3MTBkZjYwN2M4IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvSW5z
cGVjdG9yU2VydmVyL1dlYlNvY2tldFNlcnZlckNvbm5lY3Rpb24uY3BwCisrKyBiL1NvdXJjZS9X
ZWJLaXQyL1VJUHJvY2Vzcy9JbnNwZWN0b3JTZXJ2ZXIvV2ViU29ja2V0U2VydmVyQ29ubmVjdGlv
bi5jcHAKQEAgLTEyNiw3ICsxMjYsNyBAQCB2b2lkIFdlYlNvY2tldFNlcnZlckNvbm5lY3Rpb246
OnNlbmRSYXdEYXRhKGNvbnN0IGNoYXIqIGRhdGEsIHNpemVfdCBsZW5ndGgpCiB2b2lkIFdlYlNv
Y2tldFNlcnZlckNvbm5lY3Rpb246OmRpZENsb3NlU29ja2V0U3RyZWFtKFNvY2tldFN0cmVhbUhh
bmRsZSopCiB7CiAgICAgLy8gRGVzdHJveSB0aGUgU29ja2V0U3RyZWFtSGFuZGxlIG5vdyB0byBw
cmV2ZW50IGNsb3NpbmcgYW4gYWxyZWFkeSBjbG9zZWQgc29ja2V0IGxhdGVyLgotICAgIG1fc29j
a2V0LmNsZWFyKCk7CisgICAgbV9zb2NrZXQgPSBudWxscHRyOwogCiAgICAgLy8gV2ViIFNvY2tl
dCBNb2RlLgogICAgIGlmIChtX21vZGUgPT0gV2ViU29ja2V0KQpkaWZmIC0tZ2l0IGEvU291cmNl
L1dlYktpdDIvVUlQcm9jZXNzL05ldHdvcmsvQ3VzdG9tUHJvdG9jb2xzL21hYy9DdXN0b21Qcm90
b2NvbE1hbmFnZXJQcm94eU1hYy5tbSBiL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9OZXR3b3Jr
L0N1c3RvbVByb3RvY29scy9tYWMvQ3VzdG9tUHJvdG9jb2xNYW5hZ2VyUHJveHlNYWMubW0KaW5k
ZXggOTQyNTI5OWEyZWM3M2Y4YmUwZDE5OWExMTNhMmQ2YmJhOGI2MTk3NC4uNTEzYjFlMGNmZjk3
ZmIxNmZlNGFiZTkxZWE4YmZhNGRkZWMxMmJhNCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdDIv
VUlQcm9jZXNzL05ldHdvcmsvQ3VzdG9tUHJvdG9jb2xzL21hYy9DdXN0b21Qcm90b2NvbE1hbmFn
ZXJQcm94eU1hYy5tbQorKysgYi9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvTmV0d29yay9DdXN0
b21Qcm90b2NvbHMvbWFjL0N1c3RvbVByb3RvY29sTWFuYWdlclByb3h5TWFjLm1tCkBAIC03Niw3
ICs3Niw3IEBAIC0gKGlkKWluaXRXaXRoQ3VzdG9tUHJvdG9jb2xNYW5hZ2VyUHJveHk6KEN1c3Rv
bVByb3RvY29sTWFuYWdlclByb3h5KiljdXN0b21Qcm90CiAKIC0gKHZvaWQpZGVhbGxvYwogewot
ICAgIF9jb25uZWN0aW9uLmNsZWFyKCk7CisgICAgX2Nvbm5lY3Rpb24gPSBudWxscHRyOwogICAg
IFtfdXJsQ29ubmVjdGlvbiBjYW5jZWxdOwogICAgIFtfdXJsQ29ubmVjdGlvbiByZWxlYXNlXTsK
ICAgICBbc3VwZXIgZGVhbGxvY107CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nl
c3MvU3RhdGlzdGljc1JlcXVlc3QuY3BwIGIvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL1N0YXRp
c3RpY3NSZXF1ZXN0LmNwcAppbmRleCBjMGVjNDhlZTNiYjk2NTJkZDc4ODdlODRlODQ4ZjIyNGUy
ZmJmYjIwLi44MDZlMTBmMDBmZjNmMTQ0ZjE3ZmI3YjAyNjhlMTFmYWNhMTZmMTU5IDEwMDY0NAot
LS0gYS9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvU3RhdGlzdGljc1JlcXVlc3QuY3BwCisrKyBi
L1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9TdGF0aXN0aWNzUmVxdWVzdC5jcHAKQEAgLTk1LDcg
Kzk1LDcgQEAgdm9pZCBTdGF0aXN0aWNzUmVxdWVzdDo6Y29tcGxldGVkUmVxdWVzdCh1aW50NjRf
dCByZXF1ZXN0SUQsIGNvbnN0IFN0YXRpc3RpY3NEYXQKIAogICAgIGlmIChtX291dHN0YW5kaW5n
UmVxdWVzdHMuaXNFbXB0eSgpKSB7CiAgICAgICAgIG1fY2FsbGJhY2stPnBlcmZvcm1DYWxsYmFj
a1dpdGhSZXR1cm5WYWx1ZShtX3Jlc3BvbnNlRGljdGlvbmFyeS5nZXQoKSk7Ci0gICAgICAgIG1f
Y2FsbGJhY2sgPSAwOworICAgICAgICBtX2NhbGxiYWNrID0gbnVsbHB0cjsKICAgICB9CiB9CiAK
ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9XZWJGcmFtZUxpc3RlbmVyUHJv
eHkuY3BwIGIvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL1dlYkZyYW1lTGlzdGVuZXJQcm94eS5j
cHAKaW5kZXggZTgwMTBlNWI2MjY5MDUxYjIzNWUwYmMzYTIzZjcwZGU5MGY3MjM0Zi4uNDA2MWRk
NTI5MTM0ZWQ4ZDhkMjVkNjhkMGNjOWM1ZTk2ZTg2OTY2MCAxMDA2NDQKLS0tIGEvU291cmNlL1dl
YktpdDIvVUlQcm9jZXNzL1dlYkZyYW1lTGlzdGVuZXJQcm94eS5jcHAKKysrIGIvU291cmNlL1dl
YktpdDIvVUlQcm9jZXNzL1dlYkZyYW1lTGlzdGVuZXJQcm94eS5jcHAKQEAgLTQyLDcgKzQyLDcg
QEAgV2ViRnJhbWVMaXN0ZW5lclByb3h5Ojp+V2ViRnJhbWVMaXN0ZW5lclByb3h5KCkKIAogdm9p
ZCBXZWJGcmFtZUxpc3RlbmVyUHJveHk6OmludmFsaWRhdGUoKQogewotICAgIG1fZnJhbWUgPSAw
OworICAgIG1fZnJhbWUgPSBudWxscHRyOwogfQogCiB2b2lkIFdlYkZyYW1lTGlzdGVuZXJQcm94
eTo6cmVjZWl2ZWRQb2xpY3lEZWNpc2lvbihXZWJDb3JlOjpQb2xpY3lBY3Rpb24gYWN0aW9uKQpA
QCAtNTEsNyArNTEsNyBAQCB2b2lkIFdlYkZyYW1lTGlzdGVuZXJQcm94eTo6cmVjZWl2ZWRQb2xp
Y3lEZWNpc2lvbihXZWJDb3JlOjpQb2xpY3lBY3Rpb24gYWN0aW9uKQogICAgICAgICByZXR1cm47
CiAKICAgICBtX2ZyYW1lLT5yZWNlaXZlZFBvbGljeURlY2lzaW9uKGFjdGlvbiwgbV9saXN0ZW5l
cklELCBtX25hdmlnYXRpb24uZ2V0KCkpOwotICAgIG1fZnJhbWUgPSAwOworICAgIG1fZnJhbWUg
PSBudWxscHRyOwogfQogCiB9IC8vIG5hbWVzcGFjZSBXZWJLaXQKZGlmZiAtLWdpdCBhL1NvdXJj
ZS9XZWJLaXQyL1VJUHJvY2Vzcy9XZWJGcmFtZVByb3h5LmNwcCBiL1NvdXJjZS9XZWJLaXQyL1VJ
UHJvY2Vzcy9XZWJGcmFtZVByb3h5LmNwcAppbmRleCA0MWJiOTFhMTM2MWI4ODRhMjhkMTk0Yzky
YjE3NjI4YmQ0MDZkMjE0Li42OTI4YWZiYzcwMmM3MGJkZjA5NzYzZDczZTA2ZTYyY2IzY2EzNDIx
IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvV2ViRnJhbWVQcm94eS5jcHAK
KysrIGIvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL1dlYkZyYW1lUHJveHkuY3BwCkBAIC01Nywx
MSArNTcsMTEgQEAgV2ViRnJhbWVQcm94eTo6fldlYkZyYW1lUHJveHkoKQogCiB2b2lkIFdlYkZy
YW1lUHJveHk6OndlYlByb2Nlc3NXaWxsU2h1dERvd24oKQogewotICAgIG1fcGFnZSA9IDA7Cisg
ICAgbV9wYWdlID0gbnVsbHB0cjsKIAogICAgIGlmIChtX2FjdGl2ZUxpc3RlbmVyKSB7CiAgICAg
ICAgIG1fYWN0aXZlTGlzdGVuZXItPmludmFsaWRhdGUoKTsKLSAgICAgICAgbV9hY3RpdmVMaXN0
ZW5lciA9IDA7CisgICAgICAgIG1fYWN0aXZlTGlzdGVuZXIgPSBudWxscHRyOwogICAgIH0KIH0K
IApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL1dlYk9wZW5QYW5lbFJlc3Vs
dExpc3RlbmVyUHJveHkuY3BwIGIvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL1dlYk9wZW5QYW5l
bFJlc3VsdExpc3RlbmVyUHJveHkuY3BwCmluZGV4IGRkNjY2NzExMThkMjQ4Zjg2MjFjMmI5ODhl
ZTM4YjFjZmIwM2Y5NjAuLmEzNzdlNGFmMDhlMjk3ZjNjMmZhNzQ2MDZjOWU1OTQ4YWU3ZDQyZTgg
MTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9XZWJPcGVuUGFuZWxSZXN1bHRM
aXN0ZW5lclByb3h5LmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvV2ViT3BlblBh
bmVsUmVzdWx0TGlzdGVuZXJQcm94eS5jcHAKQEAgLTg5LDcgKzg5LDcgQEAgdm9pZCBXZWJPcGVu
UGFuZWxSZXN1bHRMaXN0ZW5lclByb3h5OjpjYW5jZWwoKQogCiB2b2lkIFdlYk9wZW5QYW5lbFJl
c3VsdExpc3RlbmVyUHJveHk6OmludmFsaWRhdGUoKQogewotICAgIG1fcGFnZSA9IDA7CisgICAg
bV9wYWdlID0gbnVsbHB0cjsKIH0KIAogfSAvLyBuYW1lc3BhY2UgV2ViS2l0CmRpZmYgLS1naXQg
YS9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvV2ViUGFnZVByb3h5LmNwcCBiL1NvdXJjZS9XZWJL
aXQyL1VJUHJvY2Vzcy9XZWJQYWdlUHJveHkuY3BwCmluZGV4IGJkMTNhMzNiMTY5MjRmNzQzYWQ2
ODZlN2M4ZjI0NjAwMWFhZTNkOGMuLjc5ZDIzZTA1ODRmMjk0MDM0OTBiNjdlMDA5MWIwZWFkMzdm
YTM1YWYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9XZWJQYWdlUHJveHku
Y3BwCisrKyBiL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9XZWJQYWdlUHJveHkuY3BwCkBAIC0z
NzA2LDcgKzM3MDYsNyBAQCB2b2lkIFdlYlBhZ2VQcm94eTo6cnVuT3BlblBhbmVsKHVpbnQ2NF90
IGZyYW1lSUQsIGNvbnN0IEZpbGVDaG9vc2VyU2V0dGluZ3MmIHNldAogewogICAgIGlmIChtX29w
ZW5QYW5lbFJlc3VsdExpc3RlbmVyKSB7CiAgICAgICAgIG1fb3BlblBhbmVsUmVzdWx0TGlzdGVu
ZXItPmludmFsaWRhdGUoKTsKLSAgICAgICAgbV9vcGVuUGFuZWxSZXN1bHRMaXN0ZW5lciA9IDA7
CisgICAgICAgIG1fb3BlblBhbmVsUmVzdWx0TGlzdGVuZXIgPSBudWxscHRyOwogICAgIH0KIAog
ICAgIFdlYkZyYW1lUHJveHkqIGZyYW1lID0gbV9wcm9jZXNzLT53ZWJGcmFtZShmcmFtZUlEKTsK
QEAgLTM4MDgsNyArMzgwOCw3IEBAIHZvaWQgV2ViUGFnZVByb3h5OjpzaG93Q29sb3JQaWNrZXIo
Y29uc3QgV2ViQ29yZTo6Q29sb3ImIGluaXRpYWxDb2xvciwgY29uc3QgSW50CiAjaWYgRU5BQkxF
KElOUFVUX1RZUEVfQ09MT1JfUE9QT1ZFUikKICAgICAvLyBBIG5ldyBwb3BvdmVyIGNvbG9yIHdl
bGwgbmVlZHMgdG8gYmUgY3JlYXRlZCAoYW5kIHRoZSBwcmV2aW91cyBvbmUgZGVzdHJveWVkKSBm
b3IKICAgICAvLyBlYWNoIGFjdGl2YXRpb24gb2YgYSBjb2xvciBlbGVtZW50LgotICAgIG1fY29s
b3JQaWNrZXIgPSAwOworICAgIG1fY29sb3JQaWNrZXIgPSBudWxscHRyOwogI2VuZGlmCiAgICAg
aWYgKCFtX2NvbG9yUGlja2VyKQogICAgICAgICBtX2NvbG9yUGlja2VyID0gbV9wYWdlQ2xpZW50
LmNyZWF0ZUNvbG9yUGlja2VyKHRoaXMsIGluaXRpYWxDb2xvciwgZWxlbWVudFJlY3QpOwpAQCAt
NDMwMCw3ICs0MzAwLDcgQEAgdm9pZCBXZWJQYWdlUHJveHk6OmRpZENob29zZUZpbGVzRm9yT3Bl
blBhbmVsKGNvbnN0IFZlY3RvcjxTdHJpbmc+JiBmaWxlVVJMcykKICAgICBtX3Byb2Nlc3MtPnNl
bmQoTWVzc2FnZXM6OldlYlBhZ2U6OkRpZENob29zZUZpbGVzRm9yT3BlblBhbmVsKGZpbGVVUkxz
KSwgbV9wYWdlSUQpOwogCiAgICAgbV9vcGVuUGFuZWxSZXN1bHRMaXN0ZW5lci0+aW52YWxpZGF0
ZSgpOwotICAgIG1fb3BlblBhbmVsUmVzdWx0TGlzdGVuZXIgPSAwOworICAgIG1fb3BlblBhbmVs
UmVzdWx0TGlzdGVuZXIgPSBudWxscHRyOwogfQogCiB2b2lkIFdlYlBhZ2VQcm94eTo6ZGlkQ2Fu
Y2VsRm9yT3BlblBhbmVsKCkKQEAgLTQzMTEsNyArNDMxMSw3IEBAIHZvaWQgV2ViUGFnZVByb3h5
OjpkaWRDYW5jZWxGb3JPcGVuUGFuZWwoKQogICAgIG1fcHJvY2Vzcy0+c2VuZChNZXNzYWdlczo6
V2ViUGFnZTo6RGlkQ2FuY2VsRm9yT3BlblBhbmVsKCksIG1fcGFnZUlEKTsKICAgICAKICAgICBt
X29wZW5QYW5lbFJlc3VsdExpc3RlbmVyLT5pbnZhbGlkYXRlKCk7Ci0gICAgbV9vcGVuUGFuZWxS
ZXN1bHRMaXN0ZW5lciA9IDA7CisgICAgbV9vcGVuUGFuZWxSZXN1bHRMaXN0ZW5lciA9IG51bGxw
dHI7CiB9CiAKIHZvaWQgV2ViUGFnZVByb3h5OjphZHZhbmNlVG9OZXh0TWlzc3BlbGxpbmcoYm9v
bCBzdGFydEJlZm9yZVNlbGVjdGlvbikKQEAgLTQ3NjcsNyArNDc2Nyw3IEBAIHZvaWQgV2ViUGFn
ZVByb3h5OjpwcmludEZpbmlzaGVkQ2FsbGJhY2soY29uc3QgUmVzb3VyY2VFcnJvciYgcHJpbnRF
cnJvciwgdWludDY0CiB2b2lkIFdlYlBhZ2VQcm94eTo6Zm9jdXNlZEZyYW1lQ2hhbmdlZCh1aW50
NjRfdCBmcmFtZUlEKQogewogICAgIGlmICghZnJhbWVJRCkgewotICAgICAgICBtX2ZvY3VzZWRG
cmFtZSA9IDA7CisgICAgICAgIG1fZm9jdXNlZEZyYW1lID0gbnVsbHB0cjsKICAgICAgICAgcmV0
dXJuOwogICAgIH0KIApAQCAtNDc4MCw3ICs0NzgwLDcgQEAgdm9pZCBXZWJQYWdlUHJveHk6OmZv
Y3VzZWRGcmFtZUNoYW5nZWQodWludDY0X3QgZnJhbWVJRCkKIHZvaWQgV2ViUGFnZVByb3h5Ojpm
cmFtZVNldExhcmdlc3RGcmFtZUNoYW5nZWQodWludDY0X3QgZnJhbWVJRCkKIHsKICAgICBpZiAo
IWZyYW1lSUQpIHsKLSAgICAgICAgbV9mcmFtZVNldExhcmdlc3RGcmFtZSA9IDA7CisgICAgICAg
IG1fZnJhbWVTZXRMYXJnZXN0RnJhbWUgPSBudWxscHRyOwogICAgICAgICByZXR1cm47CiAgICAg
fQogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvaW9zL1dLR2VvbG9jYXRp
b25Qcm92aWRlcklPUy5tbSBiL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9pb3MvV0tHZW9sb2Nh
dGlvblByb3ZpZGVySU9TLm1tCmluZGV4IGJiNmJiNjA1NGY3Zjg2YjljNjNkNjg1ZTY1ZWY3OWY5
MjFhM2FiMWUuLmJkZDExNGEyNDQ4ZGZhYWE5NzE5MWE2MjVkN2NhMWJiMjY3NzYwMjkgMTAwNjQ0
Ci0tLSBhL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9pb3MvV0tHZW9sb2NhdGlvblByb3ZpZGVy
SU9TLm1tCisrKyBiL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9pb3MvV0tHZW9sb2NhdGlvblBy
b3ZpZGVySU9TLm1tCkBAIC0xMTgsNyArMTE4LDcgQEAgLSh2b2lkKV9zdG9wVXBkYXRpbmcKIHsK
ICAgICBfaXNXZWJDb3JlR2VvbG9jYXRpb25BY3RpdmUgPSBOTzsKICAgICBbX2NvcmVMb2NhdGlv
blByb3ZpZGVyIHN0b3BdOwotICAgIF9sYXN0QWN0aXZlUG9zaXRpb24uY2xlYXIoKTsKKyAgICBf
bGFzdEFjdGl2ZVBvc2l0aW9uID0gbnVsbHB0cjsKIH0KIAogLSh2b2lkKV9zZXRFbmFibGVIaWdo
QWNjdXJhY3k6KEJPT0wpZW5hYmxlSGlnaEFjY3VyYWN5CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2Vi
S2l0Mi9XZWJQcm9jZXNzL0luamVjdGVkQnVuZGxlL21hYy9JbmplY3RlZEJ1bmRsZU1hYy5tbSBi
L1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvSW5qZWN0ZWRCdW5kbGUvbWFjL0luamVjdGVkQnVu
ZGxlTWFjLm1tCmluZGV4IDRlODZhZjE5ZDVjOWFjZTE2MmQ0MGUyNmQwMDQyNzkwZWQxYzQ4YTIu
LjI4NTc1ZWY3NDliMmRkYjNkOTBmZTI5NGRiYTM3MTJlNTU0ZTg4ZDkgMTAwNjQ0Ci0tLSBhL1Nv
dXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvSW5qZWN0ZWRCdW5kbGUvbWFjL0luamVjdGVkQnVuZGxl
TWFjLm1tCisrKyBiL1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvSW5qZWN0ZWRCdW5kbGUvbWFj
L0luamVjdGVkQnVuZGxlTWFjLm1tCkBAIC01NSw3ICs1NSw3IEBAIGJvb2wgSW5qZWN0ZWRCdW5k
bGU6OmluaXRpYWxpemUoY29uc3QgV2ViUHJvY2Vzc0NyZWF0aW9uUGFyYW1ldGVycyYgcGFyYW1l
dGVycywKICAgICAgICAgICAgIHJldHVybiBmYWxzZTsKICAgICAgICAgfQogCi0gICAgICAgIG1f
c2FuZGJveEV4dGVuc2lvbiA9IDA7CisgICAgICAgIG1fc2FuZGJveEV4dGVuc2lvbiA9IG51bGxw
dHI7CiAgICAgfQogICAgIAogICAgIFJldGFpblB0cjxDRlN0cmluZ1JlZj4gaW5qZWN0ZWRCdW5k
bGVQYXRoU3RyID0gbV9wYXRoLmNyZWF0ZUNGU3RyaW5nKCk7CmRpZmYgLS1naXQgYS9Tb3VyY2Uv
V2ViS2l0Mi9XZWJQcm9jZXNzL05ldHdvcmsvV2ViUmVzb3VyY2VMb2FkZXIuY3BwIGIvU291cmNl
L1dlYktpdDIvV2ViUHJvY2Vzcy9OZXR3b3JrL1dlYlJlc291cmNlTG9hZGVyLmNwcAppbmRleCA4
M2Q2Y2E4YWFhZmY2MjU4MzJlMzgyMDAxY2Y2YjAwODA2MmQ2NDllLi4yNTM5N2MzYmM4ZTY3MWNi
ZDU1MDIwZTNjZDY5NzNjNmJhMGEyOWU3IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0Mi9XZWJQ
cm9jZXNzL05ldHdvcmsvV2ViUmVzb3VyY2VMb2FkZXIuY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQy
L1dlYlByb2Nlc3MvTmV0d29yay9XZWJSZXNvdXJjZUxvYWRlci5jcHAKQEAgLTc2LDcgKzc2LDcg
QEAgdm9pZCBXZWJSZXNvdXJjZUxvYWRlcjo6Y2FuY2VsUmVzb3VyY2VMb2FkZXIoKQogCiB2b2lk
IFdlYlJlc291cmNlTG9hZGVyOjpkZXRhY2hGcm9tQ29yZUxvYWRlcigpCiB7Ci0gICAgbV9jb3Jl
TG9hZGVyID0gMDsKKyAgICBtX2NvcmVMb2FkZXIgPSBudWxscHRyOwogfQogCiB2b2lkIFdlYlJl
c291cmNlTG9hZGVyOjp3aWxsU2VuZFJlcXVlc3QoY29uc3QgUmVzb3VyY2VSZXF1ZXN0JiBwcm9w
b3NlZFJlcXVlc3QsIGNvbnN0IFJlc291cmNlUmVzcG9uc2UmIHJlZGlyZWN0UmVzcG9uc2UpCmRp
ZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL1BsdWdpbnMvTmV0c2NhcGUvTmV0
c2NhcGVQbHVnaW4uY3BwIGIvU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9QbHVnaW5zL05ldHNj
YXBlL05ldHNjYXBlUGx1Z2luLmNwcAppbmRleCAwYTdiNzRkZTVjNWM2NjJiZDdkMTE4NGM0NjNm
Yzk2MjZhYjQxZWNkLi5hMzZlNGI0MTM0NWRlYjAxMzUwYTI0OTBlNzA1ODA4Zjk1MzQ5MDY3IDEw
MDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL1BsdWdpbnMvTmV0c2NhcGUvTmV0
c2NhcGVQbHVnaW4uY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvUGx1Z2lucy9O
ZXRzY2FwZS9OZXRzY2FwZVBsdWdpbi5jcHAKQEAgLTI3Nyw3ICsyNzcsNyBAQCB2b2lkIE5ldHNj
YXBlUGx1Z2luOjpjYW5jZWxTdHJlYW1Mb2FkKE5ldHNjYXBlUGx1Z2luU3RyZWFtKiBwbHVnaW5T
dHJlYW0pCiB2b2lkIE5ldHNjYXBlUGx1Z2luOjpyZW1vdmVQbHVnaW5TdHJlYW0oTmV0c2NhcGVQ
bHVnaW5TdHJlYW0qIHBsdWdpblN0cmVhbSkKIHsKICAgICBpZiAocGx1Z2luU3RyZWFtID09IG1f
bWFudWFsU3RyZWFtKSB7Ci0gICAgICAgIG1fbWFudWFsU3RyZWFtID0gMDsKKyAgICAgICAgbV9t
YW51YWxTdHJlYW0gPSBudWxscHRyOwogICAgICAgICByZXR1cm47CiAgICAgfQogCmRpZmYgLS1n
aXQgYS9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL1BsdWdpbnMvUERGL1BERlBsdWdpbi5tbSBi
L1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvUGx1Z2lucy9QREYvUERGUGx1Z2luLm1tCmluZGV4
IGRjY2M1NDEwNWZiYTg3MTllNWZjMzhkZjRjNTAyZGRkMjcyOWVlY2QuLjQ3MDYxZDZkNjE0ZDI2
MWQ3MzM5ZjU3MGZlNmI1ODAwMDk2ZjNlOTQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQyL1dl
YlByb2Nlc3MvUGx1Z2lucy9QREYvUERGUGx1Z2luLm1tCisrKyBiL1NvdXJjZS9XZWJLaXQyL1dl
YlByb2Nlc3MvUGx1Z2lucy9QREYvUERGUGx1Z2luLm1tCkBAIC0xMTAzLDggKzExMDMsOCBAQCB2
b2lkIFBERlBsdWdpbjo6ZGVzdHJveSgpCiAgICAgICAgICAgICBmcmFtZVZpZXctPnJlbW92ZVNj
cm9sbGFibGVBcmVhKHRoaXMpOwogICAgIH0KIAotICAgIG1fYWN0aXZlQW5ub3RhdGlvbiA9IDA7
Ci0gICAgbV9hbm5vdGF0aW9uQ29udGFpbmVyID0gMDsKKyAgICBtX2FjdGl2ZUFubm90YXRpb24g
PSBudWxscHRyOworICAgIG1fYW5ub3RhdGlvbkNvbnRhaW5lciA9IG51bGxwdHI7CiAKICAgICBk
ZXN0cm95U2Nyb2xsYmFyKEhvcml6b250YWxTY3JvbGxiYXIpOwogICAgIGRlc3Ryb3lTY3JvbGxi
YXIoVmVydGljYWxTY3JvbGxiYXIpOwpAQCAtMTYwNCwxNCArMTYwNCwxNCBAQCB2b2lkIFBERlBs
dWdpbjo6c2V0QWN0aXZlQW5ub3RhdGlvbihQREZBbm5vdGF0aW9uICphbm5vdGF0aW9uKQogCiAg
ICAgaWYgKGFubm90YXRpb24pIHsKICAgICAgICAgaWYgKFthbm5vdGF0aW9uIGlzS2luZE9mQ2xh
c3M6cGRmQW5ub3RhdGlvblRleHRXaWRnZXRDbGFzcygpXSAmJiBzdGF0aWNfY2FzdDxQREZBbm5v
dGF0aW9uVGV4dFdpZGdldCAqPihhbm5vdGF0aW9uKS5pc1JlYWRPbmx5KSB7Ci0gICAgICAgICAg
ICBtX2FjdGl2ZUFubm90YXRpb24gPSAwOworICAgICAgICAgICAgbV9hY3RpdmVBbm5vdGF0aW9u
ID0gbnVsbHB0cjsKICAgICAgICAgICAgIHJldHVybjsKICAgICAgICAgfQogCiAgICAgICAgIG1f
YWN0aXZlQW5ub3RhdGlvbiA9IFBERlBsdWdpbkFubm90YXRpb246OmNyZWF0ZShhbm5vdGF0aW9u
LCBtX3BkZkxheWVyQ29udHJvbGxlci5nZXQoKSwgdGhpcyk7CiAgICAgICAgIG1fYWN0aXZlQW5u
b3RhdGlvbi0+YXR0YWNoKG1fYW5ub3RhdGlvbkNvbnRhaW5lci5nZXQoKSk7CiAgICAgfSBlbHNl
Ci0gICAgICAgIG1fYWN0aXZlQW5ub3RhdGlvbiA9IDA7CisgICAgICAgIG1fYWN0aXZlQW5ub3Rh
dGlvbiA9IG51bGxwdHI7CiB9CiAKIGJvb2wgUERGUGx1Z2luOjpzdXBwb3J0c0Zvcm1zKCkKZGlm
ZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvUGx1Z2lucy9QbHVnaW5WaWV3LmNw
cCBiL1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvUGx1Z2lucy9QbHVnaW5WaWV3LmNwcAppbmRl
eCA2YTgzM2YxMzExMTM1MzA3NmFjYWUxMjgxNDMzYjJmNTExOWJiMjQ2Li4yYTBmZDk3MzEzMGIy
MTI2NzhiMDU1NGM3ZDhiZWI1NWM2ODU5NjhkIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0Mi9X
ZWJQcm9jZXNzL1BsdWdpbnMvUGx1Z2luVmlldy5jcHAKKysrIGIvU291cmNlL1dlYktpdDIvV2Vi
UHJvY2Vzcy9QbHVnaW5zL1BsdWdpblZpZXcuY3BwCkBAIC0xNjYsNyArMTY2LDcgQEAgdm9pZCBQ
bHVnaW5WaWV3OjpTdHJlYW06OmNhbmNlbCgpCiAKICAgICBtX3N0cmVhbVdhc0NhbmNlbGxlZCA9
IHRydWU7CiAgICAgbV9sb2FkZXItPmNhbmNlbChtX2xvYWRlci0+Y2FuY2VsbGVkRXJyb3IoKSk7
Ci0gICAgbV9sb2FkZXIgPSAwOworICAgIG1fbG9hZGVyID0gbnVsbHB0cjsKIH0KIAogc3RhdGlj
IFN0cmluZyBidWlsZEhUVFBIZWFkZXJzKGNvbnN0IFJlc291cmNlUmVzcG9uc2UmIHJlc3BvbnNl
LCBsb25nIGxvbmcmIGV4cGVjdGVkQ29udGVudExlbmd0aCkKQEAgLTYwNCw3ICs2MDQsNyBAQCB2
b2lkIFBsdWdpblZpZXc6OmluaXRpYWxpemVQbHVnaW4oKQogCiB2b2lkIFBsdWdpblZpZXc6OmRp
ZEZhaWxUb0luaXRpYWxpemVQbHVnaW4oKQogewotICAgIG1fcGx1Z2luID0gMDsKKyAgICBtX3Bs
dWdpbiA9IG51bGxwdHI7CiAKICNpZiBFTkFCTEUoTkVUU0NBUEVfUExVR0lOX0FQSSkKICAgICBT
dHJpbmcgZnJhbWVVUkxTdHJpbmcgPSBmcmFtZSgpLT5sb2FkZXIoKS5kb2N1bWVudExvYWRlcigp
LT5yZXNwb25zZVVSTCgpLnN0cmluZygpOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdDIvV2Vi
UHJvY2Vzcy9XZWJQYWdlL1dlYlBhZ2UuY3BwIGIvU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9X
ZWJQYWdlL1dlYlBhZ2UuY3BwCmluZGV4IDE1NTRkYmNmNzQ5NmM3NmQ5NzIwMzNiOGQzOTEzNjRh
YjZmZTFlYjguLjdiOGE5MjYwMDdkZDE4MDc4ODVkYTI4MTE2YzgyYjk4YjMxODMyNjQgMTAwNjQ0
Ci0tLSBhL1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvV2ViUGFnZS9XZWJQYWdlLmNwcAorKysg
Yi9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL1dlYlBhZ2UvV2ViUGFnZS5jcHAKQEAgLTkzMCwy
MyArOTMwLDIzIEBAIHZvaWQgV2ViUGFnZTo6Y2xvc2UoKQogICAgIH0KIAogI2lmIEVOQUJMRShG
VUxMU0NSRUVOX0FQSSkKLSAgICBtX2Z1bGxTY3JlZW5NYW5hZ2VyID0gMDsKKyAgICBtX2Z1bGxT
Y3JlZW5NYW5hZ2VyID0gbnVsbHB0cjsKICNlbmRpZgogCiAgICAgaWYgKG1fYWN0aXZlUG9wdXBN
ZW51KSB7CiAgICAgICAgIG1fYWN0aXZlUG9wdXBNZW51LT5kaXNjb25uZWN0RnJvbVBhZ2UoKTsK
LSAgICAgICAgbV9hY3RpdmVQb3B1cE1lbnUgPSAwOworICAgICAgICBtX2FjdGl2ZVBvcHVwTWVu
dSA9IG51bGxwdHI7CiAgICAgfQogCiAgICAgaWYgKG1fYWN0aXZlT3BlblBhbmVsUmVzdWx0TGlz
dGVuZXIpIHsKICAgICAgICAgbV9hY3RpdmVPcGVuUGFuZWxSZXN1bHRMaXN0ZW5lci0+ZGlzY29u
bmVjdEZyb21QYWdlKCk7Ci0gICAgICAgIG1fYWN0aXZlT3BlblBhbmVsUmVzdWx0TGlzdGVuZXIg
PSAwOworICAgICAgICBtX2FjdGl2ZU9wZW5QYW5lbFJlc3VsdExpc3RlbmVyID0gbnVsbHB0cjsK
ICAgICB9CiAKICNpZiBFTkFCTEUoSU5QVVRfVFlQRV9DT0xPUikKICAgICBpZiAobV9hY3RpdmVD
b2xvckNob29zZXIpIHsKICAgICAgICAgbV9hY3RpdmVDb2xvckNob29zZXItPmRpc2Nvbm5lY3RG
cm9tUGFnZSgpOwotICAgICAgICBtX2FjdGl2ZUNvbG9yQ2hvb3NlciA9IDA7CisgICAgICAgIG1f
YWN0aXZlQ29sb3JDaG9vc2VyID0gbnVsbHB0cjsKICAgICB9CiAjZW5kaWYKIApAQCAtMzI3MCw3
ICszMjcwLDcgQEAgdm9pZCBXZWJQYWdlOjpjb3VudFN0cmluZ01hdGNoZXMoY29uc3QgU3RyaW5n
JiBzdHJpbmcsIHVpbnQzMl90IG9wdGlvbnMsIHVpbnQzMl8KIHZvaWQgV2ViUGFnZTo6ZGlkQ2hh
bmdlU2VsZWN0ZWRJbmRleEZvckFjdGl2ZVBvcHVwTWVudShpbnQzMl90IG5ld0luZGV4KQogewog
ICAgIGNoYW5nZVNlbGVjdGVkSW5kZXgobmV3SW5kZXgpOwotICAgIG1fYWN0aXZlUG9wdXBNZW51
ID0gMDsKKyAgICBtX2FjdGl2ZVBvcHVwTWVudSA9IG51bGxwdHI7CiB9CiAKIHZvaWQgV2ViUGFn
ZTo6Y2hhbmdlU2VsZWN0ZWRJbmRleChpbnQzMl90IGluZGV4KQpAQCAtMzMwNiwxMiArMzMwNiwx
MiBAQCB2b2lkIFdlYlBhZ2U6OmRpZENob29zZUZpbGVzRm9yT3BlblBhbmVsKGNvbnN0IFZlY3Rv
cjxTdHJpbmc+JiBmaWxlcykKICAgICAgICAgcmV0dXJuOwogCiAgICAgbV9hY3RpdmVPcGVuUGFu
ZWxSZXN1bHRMaXN0ZW5lci0+ZGlkQ2hvb3NlRmlsZXMoZmlsZXMpOwotICAgIG1fYWN0aXZlT3Bl
blBhbmVsUmVzdWx0TGlzdGVuZXIgPSAwOworICAgIG1fYWN0aXZlT3BlblBhbmVsUmVzdWx0TGlz
dGVuZXIgPSBudWxscHRyOwogfQogCiB2b2lkIFdlYlBhZ2U6OmRpZENhbmNlbEZvck9wZW5QYW5l
bCgpCiB7Ci0gICAgbV9hY3RpdmVPcGVuUGFuZWxSZXN1bHRMaXN0ZW5lciA9IDA7CisgICAgbV9h
Y3RpdmVPcGVuUGFuZWxSZXN1bHRMaXN0ZW5lciA9IG51bGxwdHI7CiB9CiAKICNpZiBFTkFCTEUo
U0FOREJPWF9FWFRFTlNJT05TKQpAQCAtMzQxNSw3ICszNDE1LDcgQEAgdm9pZCBXZWJQYWdlOjpk
aWRTZWxlY3RJdGVtRnJvbUFjdGl2ZUNvbnRleHRNZW51KGNvbnN0IFdlYkNvbnRleHRNZW51SXRl
bURhdGEmIGkKICAgICAgICAgcmV0dXJuOwogCiAgICAgbV9jb250ZXh0TWVudS0+aXRlbVNlbGVj
dGVkKGl0ZW0pOwotICAgIG1fY29udGV4dE1lbnUgPSAwOworICAgIG1fY29udGV4dE1lbnUgPSBu
dWxscHRyOwogfQogI2VuZGlmCiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nl
c3MvV2ViUGFnZS9pb3MvV2ViUGFnZUlPUy5tbSBiL1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3Mv
V2ViUGFnZS9pb3MvV2ViUGFnZUlPUy5tbQppbmRleCAyM2RlODNlZmFkNjg5NDYyNDc1NjBmODEx
ZDA4OGNkMjk3NTJhNmE3Li45ZjRjZWM3MjMxZGQ0NjI3MTU2M2Q1MmI2YTRlMmI5ZDMyNzg4N2M2
IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL1dlYlBhZ2UvaW9zL1dlYlBh
Z2VJT1MubW0KKysrIGIvU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9XZWJQYWdlL2lvcy9XZWJQ
YWdlSU9TLm1tCkBAIC0xOTc4LDcgKzE5NzgsNyBAQCB2b2lkIFdlYlBhZ2U6OnN5bmNBcHBseUF1
dG9jb3JyZWN0aW9uKGNvbnN0IFN0cmluZyYgY29ycmVjdGlvbiwgY29uc3QgU3RyaW5nJiBvcgog
ICAgICAgICB3aGlsZSAodGV4dEZvclJhbmdlLmxlbmd0aCgpICYmIHRleHRGb3JSYW5nZS5sZW5n
dGgoKSA+IG9yaWdpbmFsVGV4dC5sZW5ndGgoKSAmJiBsb29wQ291bnQgPCBtYXhQb3NpdGlvbnNB
dHRlbXB0cykgewogICAgICAgICAgICAgcG9zaXRpb24gPSBwb3NpdGlvbi5uZXh0KCk7CiAgICAg
ICAgICAgICBpZiAocG9zaXRpb24uaXNOb3ROdWxsKCkgJiYgcG9zaXRpb24gPj0gZnJhbWUuc2Vs
ZWN0aW9uKCkuc2VsZWN0aW9uKCkuc3RhcnQoKSkKLSAgICAgICAgICAgICAgICByYW5nZSA9IE5V
TEw7CisgICAgICAgICAgICAgICAgcmFuZ2UgPSBudWxscHRyOwogICAgICAgICAgICAgZWxzZQog
ICAgICAgICAgICAgICAgIHJhbmdlID0gUmFuZ2U6OmNyZWF0ZSgqZnJhbWUuZG9jdW1lbnQoKSwg
cG9zaXRpb24sIGZyYW1lLnNlbGVjdGlvbigpLnNlbGVjdGlvbigpLnN0YXJ0KCkpOwogICAgICAg
ICAgICAgdGV4dEZvclJhbmdlID0gKHJhbmdlKSA/IHBsYWluVGV4dFJlcGxhY2luZ05vQnJlYWtT
cGFjZShyYW5nZS5nZXQoKSkgOiBlbXB0eVN0cmluZygpOwpAQCAtMjQ1OCw3ICsyNDU4LDcgQEAg
dm9pZCBXZWJQYWdlOjplbGVtZW50RGlkQmx1cihXZWJDb3JlOjpOb2RlKiBub2RlKQogICAgICAg
ICAgICAgICAgIHNlbmQoTWVzc2FnZXM6OldlYlBhZ2VQcm94eTo6U3RvcEFzc2lzdGluZ05vZGUo
KSk7CiAgICAgICAgICAgICBtX2hhc1BlbmRpbmdCbHVyTm90aWZpY2F0aW9uID0gZmFsc2U7CiAg
ICAgICAgIH0pOwotICAgICAgICBtX2Fzc2lzdGVkTm9kZSA9IDA7CisgICAgICAgIG1fYXNzaXN0
ZWROb2RlID0gbnVsbHB0cjsKICAgICB9CiB9CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQy
L1dlYlByb2Nlc3MvV2ViUHJvY2Vzcy5jcHAgYi9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL1dl
YlByb2Nlc3MuY3BwCmluZGV4IGE5N2JjMjFhOTgxNTQ5YWNjZDdmZWRmYjI4MzNhZWM4NGVlZGQw
N2EuLmI0YzllMGVlODgxZmU3MzEwNWQzNWUxZjEwMjQ0NTFhM2EyYjkwZWEgMTAwNjQ0Ci0tLSBh
L1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvV2ViUHJvY2Vzcy5jcHAKKysrIGIvU291cmNlL1dl
YktpdDIvV2ViUHJvY2Vzcy9XZWJQcm9jZXNzLmNwcApAQCAtMTAzNCw3ICsxMDM0LDcgQEAgdm9p
ZCBXZWJQcm9jZXNzOjpuZXR3b3JrUHJvY2Vzc0Nvbm5lY3Rpb25DbG9zZWQoTmV0d29ya1Byb2Nl
c3NDb25uZWN0aW9uKiBjb25uZWMKICAgICBBU1NFUlQobV9uZXR3b3JrUHJvY2Vzc0Nvbm5lY3Rp
b24pOwogICAgIEFTU0VSVF9VTlVTRUQoY29ubmVjdGlvbiwgbV9uZXR3b3JrUHJvY2Vzc0Nvbm5l
Y3Rpb24gPT0gY29ubmVjdGlvbik7CiAKLSAgICBtX25ldHdvcmtQcm9jZXNzQ29ubmVjdGlvbiA9
IDA7CisgICAgbV9uZXR3b3JrUHJvY2Vzc0Nvbm5lY3Rpb24gPSBudWxscHRyOwogICAgIAogICAg
IG1fd2ViUmVzb3VyY2VMb2FkU2NoZWR1bGVyLT5uZXR3b3JrUHJvY2Vzc0NyYXNoZWQoKTsKIH0K
QEAgLTEwNTEsNyArMTA1MSw3IEBAIHZvaWQgV2ViUHJvY2Vzczo6d2ViVG9EYXRhYmFzZVByb2Nl
c3NDb25uZWN0aW9uQ2xvc2VkKFdlYlRvRGF0YWJhc2VQcm9jZXNzQ29ubmVjCiAgICAgQVNTRVJU
KG1fd2ViVG9EYXRhYmFzZVByb2Nlc3NDb25uZWN0aW9uKTsKICAgICBBU1NFUlQobV93ZWJUb0Rh
dGFiYXNlUHJvY2Vzc0Nvbm5lY3Rpb24gPT0gY29ubmVjdGlvbik7CiAKLSAgICBtX3dlYlRvRGF0
YWJhc2VQcm9jZXNzQ29ubmVjdGlvbiA9IDA7CisgICAgbV93ZWJUb0RhdGFiYXNlUHJvY2Vzc0Nv
bm5lY3Rpb24gPSBudWxscHRyOwogfQogCiBXZWJUb0RhdGFiYXNlUHJvY2Vzc0Nvbm5lY3Rpb24q
IFdlYlByb2Nlc3M6OndlYlRvRGF0YWJhc2VQcm9jZXNzQ29ubmVjdGlvbigpCmRpZmYgLS1naXQg
YS9Ub29scy9DaGFuZ2VMb2cgYi9Ub29scy9DaGFuZ2VMb2cKaW5kZXggOTg3NjBjY2Y1YTQxOTc0
YjA4YzgyMDk4ZTU0ZDI4ODhhZjQ3MTdhOC4uNjllZWZjZjg4M2ZkMzE4YzYxMTdkZWUwZmFmMGVh
YzdiMzY2ZDNmMSAxMDA2NDQKLS0tIGEvVG9vbHMvQ2hhbmdlTG9nCisrKyBiL1Rvb2xzL0NoYW5n
ZUxvZwpAQCAtMSwzICsxLDEyIEBACisyMDE1LTA3LTAzICBDaHJpcyBEdW1leiAgPGNkdW1lekBh
cHBsZS5jb20+CisKKyAgICAgICAgRHJvcCBSZWZQdHI6OmNsZWFyKCkgbWV0aG9kCisgICAgICAg
IGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0xNDY1NTYKKworICAgICAg
ICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICBEcm9wIFJlZlB0cjo6Y2xl
YXIoKSBtZXRob2QgaW4gZmF2b3Igb2YgIj0gbnVsbHB0cjsiIHBhdHRlcm4uCisKIDIwMTUtMDct
MDMgIERhbiBCZXJuc3RlaW4gIDxtaXR6QGFwcGxlLmNvbT4KIAogICAgICAgICBbWGNvZGVdIFVw
ZGF0ZSBzb21lIGJ1aWxkIHNldHRpbmdzIGFzIHJlY29tbWVuZGVkIGJ5IFhjb2RlIDcKZGlmZiAt
LWdpdCBhL1Rvb2xzL0R1bXBSZW5kZXJUcmVlL21hYy9EdW1wUmVuZGVyVHJlZS5tbSBiL1Rvb2xz
L0R1bXBSZW5kZXJUcmVlL21hYy9EdW1wUmVuZGVyVHJlZS5tbQppbmRleCBiY2NkNGE5MTEyZTY3
MmMxY2MyYjJkOTMwZmYwYTNlZTAzYjAzZTA2Li4yNzZkZjhiODkyZWM1MjdhNzQ2YmYzZmE2ZGRj
NjRlYWQzNzc3YzE1IDEwMDY0NAotLS0gYS9Ub29scy9EdW1wUmVuZGVyVHJlZS9tYWMvRHVtcFJl
bmRlclRyZWUubW0KKysrIGIvVG9vbHMvRHVtcFJlbmRlclRyZWUvbWFjL0R1bXBSZW5kZXJUcmVl
Lm1tCkBAIC0yMDY0LDcgKzIwNjQsNyBAQCBzdGF0aWMgdm9pZCBydW5UZXN0KGNvbnN0IHN0cmlu
ZyYgaW5wdXRMaW5lKQogICAgIEFTU0VSVChDRkFycmF5R2V0Q291bnQob3BlbldpbmRvd3NSZWYp
ID09IDEpOwogICAgIEFTU0VSVChDRkFycmF5R2V0VmFsdWVBdEluZGV4KG9wZW5XaW5kb3dzUmVm
LCAwKSA9PSBbW21haW5GcmFtZSB3ZWJWaWV3XSB3aW5kb3ddKTsKIAotICAgIGdUZXN0UnVubmVy
LmNsZWFyKCk7CisgICAgZ1Rlc3RSdW5uZXIgPSBudWxscHRyOwogCiAgICAgaWYgKGlnbm9yZVdl
YkNvcmVOb2RlTGVha3MpCiAgICAgICAgIFtXZWJDb3JlU3RhdGlzdGljcyBzdG9wSWdub3JpbmdX
ZWJDb3JlTm9kZUxlYWtzXTsKZGlmZiAtLWdpdCBhL1Rvb2xzL0R1bXBSZW5kZXJUcmVlL3dpbi9E
dW1wUmVuZGVyVHJlZS5jcHAgYi9Ub29scy9EdW1wUmVuZGVyVHJlZS93aW4vRHVtcFJlbmRlclRy
ZWUuY3BwCmluZGV4IGQ5ODZjYmZkMzczNDAyNDY2ZjQwYjhlNjVhNDA0NjliZWNlMGE4ZGMuLmM4
NDM1NDcyM2NiYTk1ZjRhMTVhNDE2MDc2MzI5M2JkNjc2NjhmMjkgMTAwNjQ0Ci0tLSBhL1Rvb2xz
L0R1bXBSZW5kZXJUcmVlL3dpbi9EdW1wUmVuZGVyVHJlZS5jcHAKKysrIGIvVG9vbHMvRHVtcFJl
bmRlclRyZWUvd2luL0R1bXBSZW5kZXJUcmVlLmNwcApAQCAtMTE4Myw3ICsxMTgzLDcgQEAgc3Rh
dGljIHZvaWQgcnVuVGVzdChjb25zdCBzdHJpbmcmIGlucHV0TGluZSkKIAogZXhpdDoKICAgICBy
ZW1vdmVGb250RmFsbGJhY2tJZlByZXNlbnQoZmFsbGJhY2tQYXRoKTsKLSAgICA6OmdUZXN0UnVu
bmVyLmNsZWFyKCk7CisgICAgOjpnVGVzdFJ1bm5lciA9IG51bGxwdHI7CiAKICAgICBmcHV0cygi
I0VPRlxuIiwgc3RkZXJyKTsKICAgICBmZmx1c2goc3RkZXJyKTsKZGlmZiAtLWdpdCBhL1Rvb2xz
L1Rlc3RXZWJLaXRBUEkvVGVzdHMvV1RGL1JlZlB0ci5jcHAgYi9Ub29scy9UZXN0V2ViS2l0QVBJ
L1Rlc3RzL1dURi9SZWZQdHIuY3BwCmluZGV4IGZjOTIyNDY3Mjc4NDY0MWQxZDM3NDljMjA3OWUx
NWJiZDNlODcyNmMuLmI3MjZkN2RkZjAzY2MyZmQ2YTIwZTE0ZDliNDAyM2NmMjZhN2Q0MzggMTAw
NjQ0Ci0tLSBhL1Rvb2xzL1Rlc3RXZWJLaXRBUEkvVGVzdHMvV1RGL1JlZlB0ci5jcHAKKysrIGIv
VG9vbHMvVGVzdFdlYktpdEFQSS9UZXN0cy9XVEYvUmVmUHRyLmNwcApAQCAtMTAyLDcgKzEwMiw3
IEBAIFRFU1QoV1RGX1JlZlB0ciwgQmFzaWMpCiAgICAgewogICAgICAgICBSZWZQdHI8UmVmTG9n
Z2VyPiBwdHIoJmEpOwogICAgICAgICBBU1NFUlRfRVEoJmEsIHB0ci5nZXQoKSk7Ci0gICAgICAg
IHB0ci5jbGVhcigpOworICAgICAgICBwdHIgPSBudWxscHRyOwogICAgICAgICBBU1NFUlRfRVEo
bnVsbHB0ciwgcHRyLmdldCgpKTsKICAgICB9CiAgICAgQVNTRVJUX1NUUkVRKCJyZWYoYSkgZGVy
ZWYoYSkgIiwgdGFrZUxvZ1N0cigpLmNfc3RyKCkpOwo=
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>256134</attachid>
            <date>2015-07-03 21:22:45 -0700</date>
            <delta_ts>2015-07-03 21:28:10 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-146556-20150703212149.patch</filename>
            <type>text/plain</type>
            <size>185230</size>
            <attacher name="Chris Dumez">cdumez</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTg2MjcxCmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlw
dENvcmUvQ2hhbmdlTG9nIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL0NoYW5nZUxvZwppbmRleCA3
NThjNmEzYWY4NTAzMTIzOGRiZjUzY2ZjMjg4NTc5ODM0OGUzYTJiLi4xMDE2ZTQ4ODM0ODAxMjg3
MDYxYjUxMzZjNmU4MzkxZWE4NGQxMzk2IDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENv
cmUvQ2hhbmdlTG9nCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9DaGFuZ2VMb2cKQEAgLTEs
MyArMSwxMiBAQAorMjAxNS0wNy0wMyAgQ2hyaXMgRHVtZXogIDxjZHVtZXpAYXBwbGUuY29tPgor
CisgICAgICAgIERyb3AgUmVmUHRyOjpjbGVhcigpIG1ldGhvZAorICAgICAgICBodHRwczovL2J1
Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTQ2NTU2CisKKyAgICAgICAgUmV2aWV3ZWQg
YnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgRHJvcCBSZWZQdHI6OmNsZWFyKCkgbWV0aG9k
IGluIGZhdm9yIG9mICI9IG51bGxwdHI7IiBwYXR0ZXJuLgorCiAyMDE1LTA3LTAzICBEYW4gQmVy
bnN0ZWluICA8bWl0ekBhcHBsZS5jb20+CiAKICAgICAgICAgW1hjb2RlXSBVcGRhdGUgc29tZSBi
dWlsZCBzZXR0aW5ncyBhcyByZWNvbW1lbmRlZCBieSBYY29kZSA3CmRpZmYgLS1naXQgYS9Tb3Vy
Y2UvV1RGL0NoYW5nZUxvZyBiL1NvdXJjZS9XVEYvQ2hhbmdlTG9nCmluZGV4IDcxMDIyNmE3ZTZj
Nzg3NjQ2YWZhMDllN2ViYmNlZDA4ZDg1M2I0N2MuLjlhNDkxMmEwMDJkYjcwYmUxMTk5M2UxNTcw
YzU0YmIzMjQ4MDBjYjggMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XVEYvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XVEYvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMTYgQEAKKzIwMTUtMDctMDMgIENocmlzIER1
bWV6ICA8Y2R1bWV6QGFwcGxlLmNvbT4KKworICAgICAgICBEcm9wIFJlZlB0cjo6Y2xlYXIoKSBt
ZXRob2QKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTE0
NjU1NgorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIERy
b3AgUmVmUHRyOjpjbGVhcigpIG1ldGhvZCBpbiBmYXZvciBvZiAiPSBudWxscHRyOyIgcGF0dGVy
bi4KKyAgICAgICAgQWxzbyBtYWRlIHRoZSAiPSBudWxscHRyOyIgcGF0dGVybiBhcyBlZmZpY2ll
bnQgYXMgY2xlYXIoKQorICAgICAgICBieSBwcm92aWRpbmcgYSBvcGVyYXRvcj0obnVsbHB0cl90
KSBvdmVybG9hZC4gTG9jYWwgbWljcm8tCisgICAgICAgIGJlbmNobWFya2luZyBzaG93ZWQgdGhh
dCAiPSBudWxscHRyOyIgdXNlZCB0byBiZSB+MS43JSBzbG93ZXIKKyAgICAgICAgdGhhbiBjbGVh
cigpLgorCiAyMDE1LTA3LTAzICBEYW4gQmVybnN0ZWluICA8bWl0ekBhcHBsZS5jb20+CiAKICAg
ICAgICAgW1hjb2RlXSBVcGRhdGUgc29tZSBidWlsZCBzZXR0aW5ncyBhcyByZWNvbW1lbmRlZCBi
eSBYY29kZSA3CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cgYi9Tb3VyY2Uv
V2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggY2ZhNDExOWI1YWM2NmMxMDk1YjRmMzY5MDZmYjliYWQ5
YTA4MmRjNy4uNzkzMzE4N2M3YzIxYTNhMzhmYjZhMWUyZWMzN2JmNjZhZGFiYzdlYiAxMDA2NDQK
LS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1NvdXJjZS9XZWJDb3JlL0NoYW5n
ZUxvZwpAQCAtMSwzICsxLDIzMiBAQAorMjAxNS0wNy0wMyAgQ2hyaXMgRHVtZXogIDxjZHVtZXpA
YXBwbGUuY29tPgorCisgICAgICAgIERyb3AgUmVmUHRyOjpjbGVhcigpIG1ldGhvZAorICAgICAg
ICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTQ2NTU2CisKKyAgICAg
ICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgRHJvcCBSZWZQdHI6OmNs
ZWFyKCkgbWV0aG9kIGluIGZhdm9yIG9mICI9IG51bGxwdHI7IiBwYXR0ZXJuLgorCisyMDE1LTA3
LTAyICBDaHJpcyBEdW1leiAgPGNkdW1lekBhcHBsZS5jb20+CisKKyAgICAgICAgRHJvcCBSZWZQ
dHI6OmNsZWFyKCkgbWV0aG9kCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3df
YnVnLmNnaT9pZD0xNDY1NTYKKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4K
KworICAgICAgICAqIE1vZHVsZXMvaW5kZXhlZGRiL0lEQkN1cnNvci5jcHA6CisgICAgICAgIChX
ZWJDb3JlOjpJREJDdXJzb3I6OmNsb3NlKToKKyAgICAgICAgKiBNb2R1bGVzL2luZGV4ZWRkYi9J
REJEYXRhYmFzZUJhY2tlbmQuY3BwOgorICAgICAgICAoV2ViQ29yZTo6SURCRGF0YWJhc2VCYWNr
ZW5kOjp0cmFuc2FjdGlvbkZpbmlzaGVkKToKKyAgICAgICAgKiBNb2R1bGVzL2luZGV4ZWRkYi9J
REJPYmplY3RTdG9yZS5jcHA6CisgICAgICAgICogTW9kdWxlcy9pbmRleGVkZGIvSURCT3BlbkRC
UmVxdWVzdC5jcHA6CisgICAgICAgIChXZWJDb3JlOjpJREJPcGVuREJSZXF1ZXN0OjpkaXNwYXRj
aEV2ZW50KToKKyAgICAgICAgKiBNb2R1bGVzL2luZGV4ZWRkYi9JREJSZXF1ZXN0LmNwcDoKKyAg
ICAgICAgKFdlYkNvcmU6OklEQlJlcXVlc3Q6OmFib3J0KToKKyAgICAgICAgKFdlYkNvcmU6OklE
QlJlcXVlc3Q6OnNldFBlbmRpbmdDdXJzb3IpOgorICAgICAgICAoV2ViQ29yZTo6SURCUmVxdWVz
dDo6b25FcnJvcik6CisgICAgICAgIChXZWJDb3JlOjpJREJSZXF1ZXN0OjpvblN1Y2Nlc3NJbnRl
cm5hbCk6CisgICAgICAgIChXZWJDb3JlOjpJREJSZXF1ZXN0Ojp0cmFuc2FjdGlvbkRpZEZpbmlz
aEFuZERpc3BhdGNoKToKKyAgICAgICAgKiBNb2R1bGVzL2luZGV4ZWRkYi9JREJUcmFuc2FjdGlv
bi5jcHA6CisgICAgICAgIChXZWJDb3JlOjpJREJUcmFuc2FjdGlvbjo6T3BlbkN1cnNvck5vdGlm
aWVyOjpjdXJzb3JGaW5pc2hlZCk6CisgICAgICAgICogTW9kdWxlcy9tZWRpYXNvdXJjZS9NZWRp
YVNvdXJjZS5jcHA6CisgICAgICAgIChXZWJDb3JlOjpNZWRpYVNvdXJjZTo6c2V0UmVhZHlTdGF0
ZSk6CisgICAgICAgIChXZWJDb3JlOjpNZWRpYVNvdXJjZTo6c3RvcCk6CisgICAgICAgICogTW9k
dWxlcy9tZWRpYXN0cmVhbS9SVENTZXNzaW9uRGVzY3JpcHRpb25SZXF1ZXN0SW1wbC5jcHA6Cisg
ICAgICAgIChXZWJDb3JlOjpSVENTZXNzaW9uRGVzY3JpcHRpb25SZXF1ZXN0SW1wbDo6Y2xlYXIp
OgorICAgICAgICAqIE1vZHVsZXMvbWVkaWFzdHJlYW0vUlRDU3RhdHNSZXF1ZXN0SW1wbC5jcHA6
CisgICAgICAgIChXZWJDb3JlOjpSVENTdGF0c1JlcXVlc3RJbXBsOjpjbGVhcik6CisgICAgICAg
ICogTW9kdWxlcy9tZWRpYXN0cmVhbS9SVENWb2lkUmVxdWVzdEltcGwuY3BwOgorICAgICAgICAo
V2ViQ29yZTo6UlRDVm9pZFJlcXVlc3RJbXBsOjpjbGVhcik6CisgICAgICAgICogTW9kdWxlcy93
ZWJhdWRpby9BdWRpb0NvbnRleHQuY3BwOgorICAgICAgICAoV2ViQ29yZTo6QXVkaW9Db250ZXh0
OjpjbGVhcik6CisgICAgICAgICogTW9kdWxlcy93ZWJkYXRhYmFzZS9TUUxUcmFuc2FjdGlvbkJh
Y2tlbmQuY3BwOgorICAgICAgICAoV2ViQ29yZTo6U1FMVHJhbnNhY3Rpb25CYWNrZW5kOjpyZWxl
YXNlT3JpZ2luTG9ja0lmTmVlZGVkKToKKyAgICAgICAgKiBNb2R1bGVzL3dlYnNvY2tldHMvV29y
a2VyVGhyZWFkYWJsZVdlYlNvY2tldENoYW5uZWwuY3BwOgorICAgICAgICAoV2ViQ29yZTo6V29y
a2VyVGhyZWFkYWJsZVdlYlNvY2tldENoYW5uZWw6OmRpc2Nvbm5lY3QpOgorICAgICAgICAqIGJp
bmRpbmdzL2pzL1dlYkNvcmVKU0NsaWVudERhdGEuaDoKKyAgICAgICAgKFdlYkNvcmU6OldlYkNv
cmVKU0NsaWVudERhdGE6On5XZWJDb3JlSlNDbGllbnREYXRhKToKKyAgICAgICAgKiBiaW5kaW5n
cy9qcy9Xb3JrZXJTY3JpcHRDb250cm9sbGVyLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6Oldvcmtl
clNjcmlwdENvbnRyb2xsZXI6On5Xb3JrZXJTY3JpcHRDb250cm9sbGVyKToKKyAgICAgICAgKiBj
b250ZW50ZXh0ZW5zaW9ucy9Db250ZW50RXh0ZW5zaW9uUGFyc2VyLmNwcDoKKyAgICAgICAgKFdl
YkNvcmU6OkNvbnRlbnRFeHRlbnNpb25zOjpwYXJzZVJ1bGVMaXN0KToKKyAgICAgICAgKiBjc3Mv
Q1NTUGFyc2VyLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OkNTU1BhcnNlcjo6cGFyc2VGaWxsUG9z
aXRpb24pOgorICAgICAgICAoV2ViQ29yZTo6Q1NTUGFyc2VyOjpwYXJzZTJWYWx1ZXNGaWxsUG9z
aXRpb24pOgorICAgICAgICAoV2ViQ29yZTo6Q1NTUGFyc2VyOjpwb3BSdWxlRGF0YSk6CisgICAg
ICAgIChXZWJDb3JlOjpDU1NQYXJzZXI6Om1hcmtSdWxlQm9keVN0YXJ0KToKKyAgICAgICAgKiBk
b20vRG9jdW1lbnQuY3BwOgorICAgICAgICAoV2ViQ29yZTo6RG9jdW1lbnQ6OmRldGFjaFBhcnNl
cik6CisgICAgICAgIChXZWJDb3JlOjpEb2N1bWVudDo6Y2xlYXJTY3JpcHRlZEFuaW1hdGlvbkNv
bnRyb2xsZXIpOgorICAgICAgICAoV2ViQ29yZTo6RG9jdW1lbnQ6OnVwZGF0ZUhvdmVyQWN0aXZl
U3RhdGUpOgorICAgICAgICAqIGRvbS9Eb2N1bWVudE1hcmtlci5oOgorICAgICAgICAoV2ViQ29y
ZTo6RG9jdW1lbnRNYXJrZXI6OmNsZWFyRGV0YWlscyk6CisgICAgICAgICogZG9tL0VsZW1lbnQu
Y3BwOgorICAgICAgICAoV2ViQ29yZTo6RWxlbWVudDo6Y2xvbmVBdHRyaWJ1dGVzRnJvbUVsZW1l
bnQpOgorICAgICAgICAqIGRvbS9Ob2RlSXRlcmF0b3IuY3BwOgorICAgICAgICAoV2ViQ29yZTo6
Tm9kZUl0ZXJhdG9yOjpOb2RlUG9pbnRlcjo6Y2xlYXIpOgorICAgICAgICAoV2ViQ29yZTo6Tm9k
ZUl0ZXJhdG9yOjpkZXRhY2gpOgorICAgICAgICAqIGRvbS9Qb3NpdGlvbi5oOgorICAgICAgICAo
V2ViQ29yZTo6UG9zaXRpb246OmNsZWFyKToKKyAgICAgICAgKiBkb20vUmFuZ2VCb3VuZGFyeVBv
aW50Lmg6CisgICAgICAgIChXZWJDb3JlOjpSYW5nZUJvdW5kYXJ5UG9pbnQ6OmNsZWFyKToKKyAg
ICAgICAgKiBkb20vU3BhY2VTcGxpdFN0cmluZy5oOgorICAgICAgICAoV2ViQ29yZTo6U3BhY2VT
cGxpdFN0cmluZzo6Y2xlYXIpOgorICAgICAgICAqIGRvbS9TdHlsZWRFbGVtZW50LmNwcDoKKyAg
ICAgICAgKFdlYkNvcmU6OlN0eWxlZEVsZW1lbnQ6OnNldElubGluZVN0eWxlRnJvbVN0cmluZyk6
CisgICAgICAgIChXZWJDb3JlOjpTdHlsZWRFbGVtZW50OjpzdHlsZUF0dHJpYnV0ZUNoYW5nZWQp
OgorICAgICAgICAqIGVkaXRpbmcvQWx0ZXJuYXRpdmVUZXh0Q29udHJvbGxlci5jcHA6CisgICAg
ICAgIChXZWJDb3JlOjpBbHRlcm5hdGl2ZVRleHRDb250cm9sbGVyOjpzdGFydEFsdGVybmF0aXZl
VGV4dFVJVGltZXIpOgorICAgICAgICAoV2ViQ29yZTo6QWx0ZXJuYXRpdmVUZXh0Q29udHJvbGxl
cjo6c3RvcEFsdGVybmF0aXZlVGV4dFVJVGltZXIpOgorICAgICAgICAoV2ViQ29yZTo6QWx0ZXJu
YXRpdmVUZXh0Q29udHJvbGxlcjo6YXBwbHlQZW5kaW5nQ29ycmVjdGlvbik6CisgICAgICAgIChX
ZWJDb3JlOjpBbHRlcm5hdGl2ZVRleHRDb250cm9sbGVyOjp0aW1lckZpcmVkKToKKyAgICAgICAg
KFdlYkNvcmU6OkFsdGVybmF0aXZlVGV4dENvbnRyb2xsZXI6OmhhbmRsZUFsdGVybmF0aXZlVGV4
dFVJUmVzdWx0KToKKyAgICAgICAgKiBlZGl0aW5nL0VkaXRpbmdTdHlsZS5jcHA6CisgICAgICAg
IChXZWJDb3JlOjpFZGl0aW5nU3R5bGU6OmNsZWFyKToKKyAgICAgICAgKiBlZGl0aW5nL0VkaXRv
ci5jcHA6CisgICAgICAgIChXZWJDb3JlOjpFZGl0b3I6OmNsZWFyTGFzdEVkaXRDb21tYW5kKToK
KyAgICAgICAgKiBlZGl0aW5nL0ZyYW1lU2VsZWN0aW9uLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6
OkZyYW1lU2VsZWN0aW9uOjpwcmVwYXJlRm9yRGVzdHJ1Y3Rpb24pOgorICAgICAgICAqIGVkaXRp
bmcvRnJhbWVTZWxlY3Rpb24uaDoKKyAgICAgICAgKFdlYkNvcmU6OkZyYW1lU2VsZWN0aW9uOjpj
bGVhclR5cGluZ1N0eWxlKToKKyAgICAgICAgKiBlZGl0aW5nL1NwZWxsQ2hlY2tlci5jcHA6Cisg
ICAgICAgIChXZWJDb3JlOjpTcGVsbENoZWNrZXI6OmRpZENoZWNrKToKKyAgICAgICAgKiBodG1s
L0Jhc2VDaG9vc2VyT25seURhdGVBbmRUaW1lSW5wdXRUeXBlLmNwcDoKKyAgICAgICAgKFdlYkNv
cmU6OkJhc2VDaG9vc2VyT25seURhdGVBbmRUaW1lSW5wdXRUeXBlOjpkaWRFbmRDaG9vc2VyKToK
KyAgICAgICAgKiBodG1sL0ZpbGVJbnB1dFR5cGUuY3BwOgorICAgICAgICAoV2ViQ29yZTo6Rmls
ZUlucHV0VHlwZTo6c2V0VmFsdWUpOgorICAgICAgICAqIGh0bWwvSFRNTENhbnZhc0VsZW1lbnQu
Y3BwOgorICAgICAgICAoV2ViQ29yZTo6SFRNTENhbnZhc0VsZW1lbnQ6OmNsZWFyUHJlc2VudGF0
aW9uQ29weSk6CisgICAgICAgIChXZWJDb3JlOjpIVE1MQ2FudmFzRWxlbWVudDo6Y2xlYXJDb3Bp
ZWRJbWFnZSk6CisgICAgICAgICogaHRtbC9IVE1MUGx1Z0luRWxlbWVudC5jcHA6CisgICAgICAg
IChXZWJDb3JlOjpIVE1MUGx1Z0luRWxlbWVudDo6d2lsbERldGFjaFJlbmRlcmVycyk6CisgICAg
ICAgIChXZWJDb3JlOjpIVE1MUGx1Z0luRWxlbWVudDo6cmVzZXRJbnN0YW5jZSk6CisgICAgICAg
ICogaHRtbC9UZXh0RmllbGRJbnB1dFR5cGUuY3BwOgorICAgICAgICAoV2ViQ29yZTo6VGV4dEZp
ZWxkSW5wdXRUeXBlOjp1cGRhdGVQbGFjZWhvbGRlclRleHQpOgorICAgICAgICAqIGh0bWwvY2Fu
dmFzL1dlYkdMUmVuZGVyaW5nQ29udGV4dEJhc2UuY3BwOgorICAgICAgICAoV2ViQ29yZTo6V2Vi
R0xSZW5kZXJpbmdDb250ZXh0QmFzZTo6ZGVzdHJveUdyYXBoaWNzQ29udGV4dDNEKToKKyAgICAg
ICAgKiBpbnNwZWN0b3IvSW5zcGVjdG9yQXBwbGljYXRpb25DYWNoZUFnZW50LmNwcDoKKyAgICAg
ICAgKFdlYkNvcmU6Okluc3BlY3RvckFwcGxpY2F0aW9uQ2FjaGVBZ2VudDo6d2lsbERlc3Ryb3lG
cm9udGVuZEFuZEJhY2tlbmQpOgorICAgICAgICAqIGluc3BlY3Rvci9JbnNwZWN0b3JDU1NBZ2Vu
dC5jcHA6CisgICAgICAgIChXZWJDb3JlOjpJbnNwZWN0b3JDU1NBZ2VudDo6d2lsbERlc3Ryb3lG
cm9udGVuZEFuZEJhY2tlbmQpOgorICAgICAgICAqIGluc3BlY3Rvci9JbnNwZWN0b3JDb250cm9s
bGVyLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6Okluc3BlY3RvckNvbnRyb2xsZXI6OmRpc2Nvbm5l
Y3RGcm9udGVuZCk6CisgICAgICAgICogaW5zcGVjdG9yL0luc3BlY3RvckRPTUFnZW50LmNwcDoK
KyAgICAgICAgKFdlYkNvcmU6Okluc3BlY3RvckRPTUFnZW50Ojp3aWxsRGVzdHJveUZyb250ZW5k
QW5kQmFja2VuZCk6CisgICAgICAgICogaW5zcGVjdG9yL0luc3BlY3RvckRPTURlYnVnZ2VyQWdl
bnQuY3BwOgorICAgICAgICAoV2ViQ29yZTo6SW5zcGVjdG9yRE9NRGVidWdnZXJBZ2VudDo6d2ls
bERlc3Ryb3lGcm9udGVuZEFuZEJhY2tlbmQpOgorICAgICAgICAqIGluc3BlY3Rvci9JbnNwZWN0
b3JET01TdG9yYWdlQWdlbnQuY3BwOgorICAgICAgICAoV2ViQ29yZTo6SW5zcGVjdG9yRE9NU3Rv
cmFnZUFnZW50Ojp3aWxsRGVzdHJveUZyb250ZW5kQW5kQmFja2VuZCk6CisgICAgICAgICogaW5z
cGVjdG9yL0luc3BlY3RvckRhdGFiYXNlQWdlbnQuY3BwOgorICAgICAgICAoV2ViQ29yZTo6SW5z
cGVjdG9yRGF0YWJhc2VBZ2VudDo6d2lsbERlc3Ryb3lGcm9udGVuZEFuZEJhY2tlbmQpOgorICAg
ICAgICAqIGluc3BlY3Rvci9JbnNwZWN0b3JJbmRleGVkREJBZ2VudC5jcHA6CisgICAgICAgIChX
ZWJDb3JlOjpJbnNwZWN0b3JJbmRleGVkREJBZ2VudDo6d2lsbERlc3Ryb3lGcm9udGVuZEFuZEJh
Y2tlbmQpOgorICAgICAgICAqIGluc3BlY3Rvci9JbnNwZWN0b3JMYXllclRyZWVBZ2VudC5jcHA6
CisgICAgICAgIChXZWJDb3JlOjpJbnNwZWN0b3JMYXllclRyZWVBZ2VudDo6d2lsbERlc3Ryb3lG
cm9udGVuZEFuZEJhY2tlbmQpOgorICAgICAgICAqIGluc3BlY3Rvci9JbnNwZWN0b3JPdmVybGF5
LmNwcDoKKyAgICAgICAgKFdlYkNvcmU6Okluc3BlY3Rvck92ZXJsYXk6OmhpZGVIaWdobGlnaHQp
OgorICAgICAgICAoV2ViQ29yZTo6SW5zcGVjdG9yT3ZlcmxheTo6aGlnaGxpZ2h0Tm9kZUxpc3Qp
OgorICAgICAgICAoV2ViQ29yZTo6SW5zcGVjdG9yT3ZlcmxheTo6aGlnaGxpZ2h0Tm9kZSk6Cisg
ICAgICAgICogaW5zcGVjdG9yL0luc3BlY3RvclBhZ2VBZ2VudC5jcHA6CisgICAgICAgIChXZWJD
b3JlOjpJbnNwZWN0b3JQYWdlQWdlbnQ6OndpbGxEZXN0cm95RnJvbnRlbmRBbmRCYWNrZW5kKToK
KyAgICAgICAgKFdlYkNvcmU6Okluc3BlY3RvclBhZ2VBZ2VudDo6ZGlzYWJsZSk6CisgICAgICAg
ICogaW5zcGVjdG9yL0luc3BlY3RvclJlcGxheUFnZW50LmNwcDoKKyAgICAgICAgKFdlYkNvcmU6
Okluc3BlY3RvclJlcGxheUFnZW50Ojp3aWxsRGVzdHJveUZyb250ZW5kQW5kQmFja2VuZCk6Cisg
ICAgICAgICogaW5zcGVjdG9yL0luc3BlY3RvclJlc291cmNlQWdlbnQuY3BwOgorICAgICAgICAo
V2ViQ29yZTo6SW5zcGVjdG9yUmVzb3VyY2VBZ2VudDo6d2lsbERlc3Ryb3lGcm9udGVuZEFuZEJh
Y2tlbmQpOgorICAgICAgICAqIGluc3BlY3Rvci9JbnNwZWN0b3JTdHlsZVNoZWV0LmNwcDoKKyAg
ICAgICAgKFdlYkNvcmU6Okluc3BlY3RvclN0eWxlU2hlZXRGb3JJbmxpbmVTdHlsZTo6ZGlkTW9k
aWZ5RWxlbWVudEF0dHJpYnV0ZSk6CisgICAgICAgIChXZWJDb3JlOjpJbnNwZWN0b3JTdHlsZVNo
ZWV0Rm9ySW5saW5lU3R5bGU6OnNldFN0eWxlVGV4dCk6CisgICAgICAgIChXZWJDb3JlOjpJbnNw
ZWN0b3JTdHlsZVNoZWV0Rm9ySW5saW5lU3R5bGU6OmVuc3VyZVBhcnNlZERhdGFSZWFkeSk6Cisg
ICAgICAgICogaW5zcGVjdG9yL0luc3BlY3RvclRpbWVsaW5lQWdlbnQuY3BwOgorICAgICAgICAo
V2ViQ29yZTo6SW5zcGVjdG9yVGltZWxpbmVBZ2VudDo6d2lsbERlc3Ryb3lGcm9udGVuZEFuZEJh
Y2tlbmQpOgorICAgICAgICAqIGluc3BlY3Rvci9JbnNwZWN0b3JXb3JrZXJBZ2VudC5jcHA6Cisg
ICAgICAgIChXZWJDb3JlOjpJbnNwZWN0b3JXb3JrZXJBZ2VudDo6d2lsbERlc3Ryb3lGcm9udGVu
ZEFuZEJhY2tlbmQpOgorICAgICAgICAqIGluc3BlY3Rvci9QYWdlUnVudGltZUFnZW50LmNwcDoK
KyAgICAgICAgKFdlYkNvcmU6OlBhZ2VSdW50aW1lQWdlbnQ6OndpbGxEZXN0cm95RnJvbnRlbmRB
bmRCYWNrZW5kKToKKyAgICAgICAgKiBpbnNwZWN0b3IvV2ViSW5qZWN0ZWRTY3JpcHRNYW5hZ2Vy
LmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OldlYkluamVjdGVkU2NyaXB0TWFuYWdlcjo6ZGlzY29u
bmVjdCk6CisgICAgICAgICogaW5zcGVjdG9yL1dvcmtlckluc3BlY3RvckNvbnRyb2xsZXIuY3Bw
OgorICAgICAgICAoV2ViQ29yZTo6V29ya2VySW5zcGVjdG9yQ29udHJvbGxlcjo6ZGlzY29ubmVj
dEZyb250ZW5kKToKKyAgICAgICAgKiBpbnNwZWN0b3IvV29ya2VyUnVudGltZUFnZW50LmNwcDoK
KyAgICAgICAgKFdlYkNvcmU6OldvcmtlclJ1bnRpbWVBZ2VudDo6d2lsbERlc3Ryb3lGcm9udGVu
ZEFuZEJhY2tlbmQpOgorICAgICAgICAqIGxvYWRlci9GcmFtZUxvYWRlci5jcHA6CisgICAgICAg
IChXZWJDb3JlOjpGcmFtZUxvYWRlcjo6ZGlkQmVnaW5Eb2N1bWVudCk6CisgICAgICAgICogbG9h
ZGVyL2NhY2hlL0NhY2hlZENTU1N0eWxlU2hlZXQuY3BwOgorICAgICAgICAoV2ViQ29yZTo6Q2Fj
aGVkQ1NTU3R5bGVTaGVldDo6ZGVzdHJveURlY29kZWREYXRhKToKKyAgICAgICAgKFdlYkNvcmU6
OkNhY2hlZENTU1N0eWxlU2hlZXQ6OnJlc3RvcmVQYXJzZWRTdHlsZVNoZWV0KToKKyAgICAgICAg
KiBsb2FkZXIvY2FjaGUvQ2FjaGVkSW1hZ2UuY3BwOgorICAgICAgICAoV2ViQ29yZTo6Q2FjaGVk
SW1hZ2U6OmNsZWFySW1hZ2UpOgorICAgICAgICAqIGxvYWRlci9jYWNoZS9DYWNoZWRSYXdSZXNv
dXJjZS5jcHA6CisgICAgICAgIChXZWJDb3JlOjpDYWNoZWRSYXdSZXNvdXJjZTo6Y2xlYXIpOgor
ICAgICAgICAqIGxvYWRlci9jYWNoZS9DYWNoZWRSZXNvdXJjZS5jcHA6CisgICAgICAgIChXZWJD
b3JlOjpDYWNoZWRSZXNvdXJjZTo6ZXJyb3IpOgorICAgICAgICAqIGxvYWRlci9pY29uL0ljb25S
ZWNvcmQuY3BwOgorICAgICAgICAoV2ViQ29yZTo6SWNvblJlY29yZDo6c2V0SW1hZ2VEYXRhKToK
KyAgICAgICAgKiBwYWdlL0V2ZW50SGFuZGxlci5jcHA6CisgICAgICAgIChXZWJDb3JlOjpFdmVu
dEhhbmRsZXI6OmNsZWFyKToKKyAgICAgICAgKFdlYkNvcmU6OkV2ZW50SGFuZGxlcjo6aGFuZGxl
VG91Y2hFdmVudCk6CisgICAgICAgICogcGFnZS9QYWdlLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6
OlBhZ2U6OnJlZnJlc2hQbHVnaW5zKToKKyAgICAgICAgKiBwbGF0Zm9ybS9hdWRpby9tYWMvQ0FS
aW5nQnVmZmVyLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OkNBUmluZ0J1ZmZlcjo6ZGVhbGxvY2F0
ZSk6CisgICAgICAgICogcGxhdGZvcm0vZ3JhcGhpY3MvRm9udC5jcHA6CisgICAgICAgIChXZWJD
b3JlOjpGb250OjptYXRoRGF0YSk6CisgICAgICAgICogcGxhdGZvcm0vZ3JhcGhpY3MvRm9udENh
Y2hlLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OkZvbnRDYWNoZTo6Z2V0VmVydGljYWxEYXRhKToK
KyAgICAgICAgKiBwbGF0Zm9ybS9ncmFwaGljcy9HcmFwaGljc0NvbnRleHQuY3BwOgorICAgICAg
ICAoV2ViQ29yZTo6R3JhcGhpY3NDb250ZXh0OjpzZXRTdHJva2VDb2xvcik6CisgICAgICAgIChX
ZWJDb3JlOjpHcmFwaGljc0NvbnRleHQ6OnNldEZpbGxDb2xvcik6CisgICAgICAgIChXZWJDb3Jl
OjpHcmFwaGljc0NvbnRleHQ6OnNldFN0cm9rZVBhdHRlcm4pOgorICAgICAgICAoV2ViQ29yZTo6
R3JhcGhpY3NDb250ZXh0OjpzZXRGaWxsUGF0dGVybik6CisgICAgICAgIChXZWJDb3JlOjpHcmFw
aGljc0NvbnRleHQ6OnNldFN0cm9rZUdyYWRpZW50KToKKyAgICAgICAgKFdlYkNvcmU6OkdyYXBo
aWNzQ29udGV4dDo6c2V0RmlsbEdyYWRpZW50KToKKyAgICAgICAgKiBwbGF0Zm9ybS9ncmFwaGlj
cy9jYWlyby9CYWNraW5nU3RvcmVCYWNrZW5kQ2Fpcm9YMTEuY3BwOgorICAgICAgICAoV2ViQ29y
ZTo6QmFja2luZ1N0b3JlQmFja2VuZENhaXJvWDExOjp+QmFja2luZ1N0b3JlQmFja2VuZENhaXJv
WDExKToKKyAgICAgICAgKiBwbGF0Zm9ybS9ncmFwaGljcy9jYWlyby9CaXRtYXBJbWFnZUNhaXJv
LmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OkZyYW1lRGF0YTo6Y2xlYXIpOgorICAgICAgICAqIHBs
YXRmb3JtL2dyYXBoaWNzL2ZpbHRlcnMvRmlsdGVyRWZmZWN0LmNwcDoKKyAgICAgICAgKFdlYkNv
cmU6OkZpbHRlckVmZmVjdDo6Y2xlYXJSZXN1bHQpOgorICAgICAgICAoV2ViQ29yZTo6RmlsdGVy
RWZmZWN0Ojp0cmFuc2Zvcm1SZXN1bHRDb2xvclNwYWNlKToKKyAgICAgICAgKiBwbGF0Zm9ybS9n
cmFwaGljcy9nc3RyZWFtZXIvSW1hZ2VHU3RyZWFtZXJDYWlyby5jcHA6CisgICAgICAgIChJbWFn
ZUdTdHJlYW1lcjo6fkltYWdlR1N0cmVhbWVyKToKKyAgICAgICAgKiBwbGF0Zm9ybS9ncmFwaGlj
cy90ZXhtYXAvQml0bWFwVGV4dHVyZUdMLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OkJpdG1hcFRl
eHR1cmVHTDo6YXBwbHlGaWx0ZXJzKToKKyAgICAgICAgKiBwbGF0Zm9ybS9ncmFwaGljcy90ZXht
YXAvVGV4dHVyZU1hcHBlckdMLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OlRleHR1cmVNYXBwZXJH
TDo6YmluZERlZmF1bHRTdXJmYWNlKToKKyAgICAgICAgKiBwbGF0Zm9ybS9ncmFwaGljcy90ZXht
YXAvVGV4dHVyZU1hcHBlckxheWVyLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OlRleHR1cmVNYXBw
ZXJMYXllcjo6cGFpbnRXaXRoSW50ZXJtZWRpYXRlU3VyZmFjZSk6CisgICAgICAgICogcGxhdGZv
cm0vZ3JhcGhpY3MvdGV4bWFwL1RleHR1cmVNYXBwZXJUaWxlZEJhY2tpbmdTdG9yZS5jcHA6Cisg
ICAgICAgIChXZWJDb3JlOjpUZXh0dXJlTWFwcGVyVGlsZWRCYWNraW5nU3RvcmU6OnVwZGF0ZUNv
bnRlbnRzRnJvbUltYWdlSWZOZWVkZWQpOgorICAgICAgICAqIHBsYXRmb3JtL2dyYXBoaWNzL3Rl
eG1hcC9jb29yZGluYXRlZC9Db29yZGluYXRlZEdyYXBoaWNzTGF5ZXIuY3BwOgorICAgICAgICAo
V2ViQ29yZTo6Q29vcmRpbmF0ZWRHcmFwaGljc0xheWVyOjpyZWxlYXNlSW1hZ2VCYWNraW5nSWZO
ZWVkZWQpOgorICAgICAgICAqIHBsYXRmb3JtL2dyYXBoaWNzL3RleG1hcC9jb29yZGluYXRlZC9D
b29yZGluYXRlZEltYWdlQmFja2luZy5jcHA6CisgICAgICAgIChXZWJDb3JlOjpDb29yZGluYXRl
ZEltYWdlQmFja2luZzo6cmVsZWFzZVN1cmZhY2VJZk5lZWRlZCk6CisgICAgICAgICogcGxhdGZv
cm0vZ3RrL0dhbWVwYWRzR3RrLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OkdhbWVwYWRzR3RrOjp1
bnJlZ2lzdGVyRGV2aWNlKToKKyAgICAgICAgKiByZW5kZXJpbmcvSW5saW5lRmxvd0JveC5jcHA6
CisgICAgICAgIChXZWJDb3JlOjpJbmxpbmVGbG93Qm94Ojpjb21wdXRlT3ZlcmZsb3cpOgorICAg
ICAgICAqIHJlbmRlcmluZy9SZW5kZXJCb3guY3BwOgorICAgICAgICAoV2ViQ29yZTo6UmVuZGVy
Qm94OjpjbGVhck92ZXJmbG93KToKKyAgICAgICAgKiByZW5kZXJpbmcvUmVuZGVyQm94UmVnaW9u
SW5mby5oOgorICAgICAgICAoV2ViQ29yZTo6UmVuZGVyQm94UmVnaW9uSW5mbzo6Y2xlYXJPdmVy
Zmxvdyk6CisgICAgICAgICogcmVuZGVyaW5nL3N0eWxlL0ZpbGxMYXllci5oOgorICAgICAgICAo
V2ViQ29yZTo6RmlsbExheWVyOjpjbGVhck1hc2tJbWFnZSk6CisgICAgICAgIChXZWJDb3JlOjpG
aWxsTGF5ZXI6OmNsZWFySW1hZ2UpOgorICAgICAgICAqIHN2Zy9TVkdUUmVmRWxlbWVudC5jcHA6
CisgICAgICAgIChXZWJDb3JlOjpTVkdUUmVmVGFyZ2V0RXZlbnRMaXN0ZW5lcjo6ZGV0YWNoKToK
KyAgICAgICAgKiB0ZXN0aW5nL0ludGVybmFscy5jcHA6CisgICAgICAgIChXZWJDb3JlOjpJbnRl
cm5hbHM6OmNsb3NlRHVtbXlJbnNwZWN0b3JGcm9udGVuZCk6CisgICAgICAgICogd29ya2Vycy9X
b3JrZXJFdmVudFF1ZXVlLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OldvcmtlckV2ZW50UXVldWU6
OkV2ZW50RGlzcGF0Y2hlcjo6ZGlzcGF0Y2gpOgorICAgICAgICAoV2ViQ29yZTo6V29ya2VyRXZl
bnRRdWV1ZTo6RXZlbnREaXNwYXRjaGVyOjpjYW5jZWwpOgorICAgICAgICAqIHhtbC9YTUxIdHRw
UmVxdWVzdC5jcHA6CisgICAgICAgIChXZWJDb3JlOjpYTUxIdHRwUmVxdWVzdDo6cmVzcG9uc2VC
bG9iKToKKyAgICAgICAgKFdlYkNvcmU6OlhNTEh0dHBSZXF1ZXN0OjpyZXNwb25zZUFycmF5QnVm
ZmVyKToKKyAgICAgICAgKFdlYkNvcmU6OlhNTEh0dHBSZXF1ZXN0OjpjbGVhclJlc3BvbnNlQnVm
ZmVycyk6CisgICAgICAgICogeG1sL1hTTFRQcm9jZXNzb3IuY3BwOgorICAgICAgICAoV2ViQ29y
ZTo6WFNMVFByb2Nlc3Nvcjo6cmVzZXQpOgorCiAyMDE1LTA3LTAzICBEYW4gQmVybnN0ZWluICA8
bWl0ekBhcHBsZS5jb20+CiAKICAgICAgICAgVHJpZWQgdG8gZml4IHRoZSBpT1MgYnVpbGQuCmRp
ZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L0NoYW5nZUxvZyBiL1NvdXJjZS9XZWJLaXQvQ2hhbmdl
TG9nCmluZGV4IDczYWQ1MDA2MTlmNWZkMDliZDU1MTFjZTRmZTUzMjIyMTlkMmMyMmYuLjg2ODY4
MjE3Mjc1MDE5MmM2ZmZkNDMyNmMwOTg2ZTFkOGI5ODMzNGMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9X
ZWJLaXQvQ2hhbmdlTG9nCisrKyBiL1NvdXJjZS9XZWJLaXQvQ2hhbmdlTG9nCkBAIC0xLDMgKzEs
MTIgQEAKKzIwMTUtMDctMDMgIENocmlzIER1bWV6ICA8Y2R1bWV6QGFwcGxlLmNvbT4KKworICAg
ICAgICBEcm9wIFJlZlB0cjo6Y2xlYXIoKSBtZXRob2QKKyAgICAgICAgaHR0cHM6Ly9idWdzLndl
YmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTE0NjU1NgorCisgICAgICAgIFJldmlld2VkIGJ5IE5P
Qk9EWSAoT09QUyEpLgorCisgICAgICAgIERyb3AgUmVmUHRyOjpjbGVhcigpIG1ldGhvZCBpbiBm
YXZvciBvZiAiPSBudWxscHRyOyIgcGF0dGVybi4KKwogMjAxNS0wNy0wMyAgRGFuIEJlcm5zdGVp
biAgPG1pdHpAYXBwbGUuY29tPgogCiAgICAgICAgIFtYY29kZV0gVXBkYXRlIHNvbWUgYnVpbGQg
c2V0dGluZ3MgYXMgcmVjb21tZW5kZWQgYnkgWGNvZGUgNwpkaWZmIC0tZ2l0IGEvU291cmNlL1dl
YktpdC9tYWMvQ2hhbmdlTG9nIGIvU291cmNlL1dlYktpdC9tYWMvQ2hhbmdlTG9nCmluZGV4IGIx
YzA4YzQ3MmE2OTA1YzZiYzhlMmI5MTkzZmRiNTRkOGY5OGE0NDcuLmI5MTg0YzVjZWM4MGY4NWEx
MmFlMWI2YTYwODI1ZTc4YTQ0MmNkYWIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvbWFjL0No
YW5nZUxvZworKysgYi9Tb3VyY2UvV2ViS2l0L21hYy9DaGFuZ2VMb2cKQEAgLTEsMyArMSwxMiBA
QAorMjAxNS0wNy0wMyAgQ2hyaXMgRHVtZXogIDxjZHVtZXpAYXBwbGUuY29tPgorCisgICAgICAg
IERyb3AgUmVmUHRyOjpjbGVhcigpIG1ldGhvZAorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0
Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTQ2NTU2CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZ
IChPT1BTISkuCisKKyAgICAgICAgRHJvcCBSZWZQdHI6OmNsZWFyKCkgbWV0aG9kIGluIGZhdm9y
IG9mICI9IG51bGxwdHI7IiBwYXR0ZXJuLgorCiAyMDE1LTA3LTAzICBEYW4gQmVybnN0ZWluICA8
bWl0ekBhcHBsZS5jb20+CiAKICAgICAgICAgW1hjb2RlXSBVcGRhdGUgc29tZSBidWlsZCBzZXR0
aW5ncyBhcyByZWNvbW1lbmRlZCBieSBYY29kZSA3CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0
L3dpbi9DaGFuZ2VMb2cgYi9Tb3VyY2UvV2ViS2l0L3dpbi9DaGFuZ2VMb2cKaW5kZXggMTE0Mjg1
OGFjOTRiNTY2YzRiMGZjMzliYjg1Y2Q0ZWIwN2Q5OWVmZC4uNTYyYTEyYmY0NTgyMTEyN2E2YjE4
OWI0ZGU1YzY2M2Y2NmI3ZjllNiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC93aW4vQ2hhbmdl
TG9nCisrKyBiL1NvdXJjZS9XZWJLaXQvd2luL0NoYW5nZUxvZwpAQCAtMSwzICsxLDEyIEBACisy
MDE1LTA3LTAzICBDaHJpcyBEdW1leiAgPGNkdW1lekBhcHBsZS5jb20+CisKKyAgICAgICAgRHJv
cCBSZWZQdHI6OmNsZWFyKCkgbWV0aG9kCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3Jn
L3Nob3dfYnVnLmNnaT9pZD0xNDY1NTYKKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9P
UFMhKS4KKworICAgICAgICBEcm9wIFJlZlB0cjo6Y2xlYXIoKSBtZXRob2QgaW4gZmF2b3Igb2Yg
Ij0gbnVsbHB0cjsiIHBhdHRlcm4uCisKIDIwMTUtMDYtMzAgIFNpbW9uIEZyYXNlciAgPHNpbW9u
LmZyYXNlckBhcHBsZS5jb20+CiAKICAgICAgICAgRml4IE1hYyBhbmQgV2luZG93cyBidWlsZHMu
CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9DaGFuZ2VMb2cgYi9Tb3VyY2UvV2ViS2l0Mi9D
aGFuZ2VMb2cKaW5kZXggODE3MGFjODI1ZTEyY2Y0NTM3MjA3MzMxOTE2ZWU3Zjc1ZTRiNjljMi4u
OTMyYzRiNzI4N2VlOGZlMGEwNzYwZmQwZmE0NzdjOTY4OTEwOGEyYiAxMDA2NDQKLS0tIGEvU291
cmNlL1dlYktpdDIvQ2hhbmdlTG9nCisrKyBiL1NvdXJjZS9XZWJLaXQyL0NoYW5nZUxvZwpAQCAt
MSwzICsxLDEyIEBACisyMDE1LTA3LTAzICBDaHJpcyBEdW1leiAgPGNkdW1lekBhcHBsZS5jb20+
CisKKyAgICAgICAgRHJvcCBSZWZQdHI6OmNsZWFyKCkgbWV0aG9kCisgICAgICAgIGh0dHBzOi8v
YnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0xNDY1NTYKKworICAgICAgICBSZXZpZXdl
ZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICBEcm9wIFJlZlB0cjo6Y2xlYXIoKSBtZXRo
b2QgaW4gZmF2b3Igb2YgIj0gbnVsbHB0cjsiIHBhdHRlcm4uICAgICAgICAKKwogMjAxNS0wNy0w
MyAgRGFuIEJlcm5zdGVpbiAgPG1pdHpAYXBwbGUuY29tPgogCiAgICAgICAgIFtYY29kZV0gVXBk
YXRlIHNvbWUgYnVpbGQgc2V0dGluZ3MgYXMgcmVjb21tZW5kZWQgYnkgWGNvZGUgNwpkaWZmIC0t
Z2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL0FQSS9KU1ZhbHVlUmVmLmNwcCBiL1NvdXJjZS9K
YXZhU2NyaXB0Q29yZS9BUEkvSlNWYWx1ZVJlZi5jcHAKaW5kZXggNzU5YTY1YTljN2RlM2M1NjYx
OWFiNDc0NTQ4MzQ4Njg4ZGNjNDdjMS4uNTQ0MDVlMmFmNTk3YzI0ODIzNmRlZjc2OWU4YmJjNjAy
ODk3OWQyNiAxMDA2NDQKLS0tIGEvU291cmNlL0phdmFTY3JpcHRDb3JlL0FQSS9KU1ZhbHVlUmVm
LmNwcAorKysgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvQVBJL0pTVmFsdWVSZWYuY3BwCkBAIC00
MjIsNyArNDIyLDcgQEAgSlNTdHJpbmdSZWYgSlNWYWx1ZVRvU3RyaW5nQ29weShKU0NvbnRleHRS
ZWYgY3R4LCBKU1ZhbHVlUmVmIHZhbHVlLCBKU1ZhbHVlUmVmKgogICAgIAogICAgIFJlZlB0cjxP
cGFxdWVKU1N0cmluZz4gc3RyaW5nUmVmKE9wYXF1ZUpTU3RyaW5nOjpjcmVhdGUoanNWYWx1ZS50
b1N0cmluZyhleGVjKS0+dmFsdWUoZXhlYykpKTsKICAgICBpZiAoaGFuZGxlRXhjZXB0aW9uSWZO
ZWVkZWQoZXhlYywgZXhjZXB0aW9uKSA9PSBFeGNlcHRpb25TdGF0dXM6OkRpZFRocm93KQotICAg
ICAgICBzdHJpbmdSZWYuY2xlYXIoKTsKKyAgICAgICAgc3RyaW5nUmVmID0gbnVsbHB0cjsKICAg
ICByZXR1cm4gc3RyaW5nUmVmLnJlbGVhc2UoKS5sZWFrUmVmKCk7CiB9CiAKZGlmZiAtLWdpdCBh
L1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ieXRlY29kZS9DYWxsTGlua0luZm8uY3BwIGIvU291cmNl
L0phdmFTY3JpcHRDb3JlL2J5dGVjb2RlL0NhbGxMaW5rSW5mby5jcHAKaW5kZXggNzJhMGMyNDFk
ZmNjZDE2NWQ5MDMwZDVmYTg0ZWZiNjhmODFmNGIzOC4uZDkyMDA5ODc0YTkzODU3NzcyYzQzNjZm
NGQwMDliNTQ2YTMzYjlhYyAxMDA2NDQKLS0tIGEvU291cmNlL0phdmFTY3JpcHRDb3JlL2J5dGVj
b2RlL0NhbGxMaW5rSW5mby5jcHAKKysrIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL2J5dGVjb2Rl
L0NhbGxMaW5rSW5mby5jcHAKQEAgLTQzLDcgKzQzLDcgQEAgdm9pZCBDYWxsTGlua0luZm86OmNs
ZWFyU3R1YigpCiAgICAgICAgIHJldHVybjsKIAogICAgIG1fc3R1Yi0+Y2xlYXJDYWxsTm9kZXNG
b3IodGhpcyk7Ci0gICAgbV9zdHViLmNsZWFyKCk7CisgICAgbV9zdHViID0gbnVsbHB0cjsKIH0K
IAogdm9pZCBDYWxsTGlua0luZm86OnVubGluayhSZXBhdGNoQnVmZmVyJiByZXBhdGNoQnVmZmVy
KQpkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL2J5dGVjb2RlL1N0cnVjdHVyZVN0
dWJJbmZvLmggYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvYnl0ZWNvZGUvU3RydWN0dXJlU3R1Yklu
Zm8uaAppbmRleCBlYzhiNzljMWYyODUyNWJiNDg0OTVkZDFiZWM2ZjE5ZjE2MjU3NGVmLi5kNDAy
YWNlZTU3OTNiYjRmNzg2Njk1MTcxNjQxNDhlOGE3YTI3MWM4IDEwMDY0NAotLS0gYS9Tb3VyY2Uv
SmF2YVNjcmlwdENvcmUvYnl0ZWNvZGUvU3RydWN0dXJlU3R1YkluZm8uaAorKysgYi9Tb3VyY2Uv
SmF2YVNjcmlwdENvcmUvYnl0ZWNvZGUvU3RydWN0dXJlU3R1YkluZm8uaApAQCAtMTQ5LDggKzE0
OSw4IEBAIHN0cnVjdCBTdHJ1Y3R1cmVTdHViSW5mbyB7CiAgICAgewogICAgICAgICBkZXJlZigp
OwogICAgICAgICBhY2Nlc3NUeXBlID0gYWNjZXNzX3Vuc2V0OwotICAgICAgICBzdHViUm91dGlu
ZS5jbGVhcigpOwotICAgICAgICB3YXRjaHBvaW50cy5jbGVhcigpOworICAgICAgICBzdHViUm91
dGluZSA9IG51bGxwdHI7CisgICAgICAgIHdhdGNocG9pbnRzID0gbnVsbHB0cjsKICAgICB9CiAK
ICAgICB2b2lkIGRlcmVmKCk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvZGVi
dWdnZXIvRGVidWdnZXIuY3BwIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL2RlYnVnZ2VyL0RlYnVn
Z2VyLmNwcAppbmRleCA1NzQxMDY5MmUwMDgwMDc3OTc4YjM3ZWIxNjc3MDMyMzM1YzRiNGMyLi5i
YzFiNTdlNTkzYTc5OTMwNzEyODkyZGU2NTA5MzEwNmEzYWE0N2QxIDEwMDY0NAotLS0gYS9Tb3Vy
Y2UvSmF2YVNjcmlwdENvcmUvZGVidWdnZXIvRGVidWdnZXIuY3BwCisrKyBiL1NvdXJjZS9KYXZh
U2NyaXB0Q29yZS9kZWJ1Z2dlci9EZWJ1Z2dlci5jcHAKQEAgLTExNyw3ICsxMTcsNyBAQCBwdWJs
aWM6CiAgICAgewogICAgICAgICBpZiAobV9kZWJ1Z2dlci5tX2N1cnJlbnREZWJ1Z2dlckNhbGxG
cmFtZSkgewogICAgICAgICAgICAgbV9kZWJ1Z2dlci5tX2N1cnJlbnREZWJ1Z2dlckNhbGxGcmFt
ZS0+aW52YWxpZGF0ZSgpOwotICAgICAgICAgICAgbV9kZWJ1Z2dlci5tX2N1cnJlbnREZWJ1Z2dl
ckNhbGxGcmFtZSA9IDA7CisgICAgICAgICAgICBtX2RlYnVnZ2VyLm1fY3VycmVudERlYnVnZ2Vy
Q2FsbEZyYW1lID0gbnVsbHB0cjsKICAgICAgICAgfQogICAgIH0KIApkaWZmIC0tZ2l0IGEvU291
cmNlL0phdmFTY3JpcHRDb3JlL2RmZy9ERkdHcmFwaC5oIGIvU291cmNlL0phdmFTY3JpcHRDb3Jl
L2RmZy9ERkdHcmFwaC5oCmluZGV4IDJjZTdkNjBiMmEyZjhhZjdhMzM1YzU2NTEwNjk4ZDk5ZTY3
Mjg0MWIuLjUxNDhjMjZkOGUzN2U3NzMyNDRlOGQ5YjI0NDM1YjIzYWEzMDJlMjQgMTAwNjQ0Ci0t
LSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9kZmcvREZHR3JhcGguaAorKysgYi9Tb3VyY2UvSmF2
YVNjcmlwdENvcmUvZGZnL0RGR0dyYXBoLmgKQEAgLTQ0NCw3ICs0NDQsNyBAQCBwdWJsaWM6CiAg
ICAgCiAgICAgdm9pZCBraWxsQmxvY2soQmxvY2tJbmRleCBibG9ja0luZGV4KQogICAgIHsKLSAg
ICAgICAgbV9ibG9ja3NbYmxvY2tJbmRleF0uY2xlYXIoKTsKKyAgICAgICAgbV9ibG9ja3NbYmxv
Y2tJbmRleF0gPSBudWxscHRyOwogICAgIH0KICAgICAKICAgICB2b2lkIGtpbGxCbG9jayhCYXNp
Y0Jsb2NrKiBiYXNpY0Jsb2NrKQpkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL2Rm
Zy9ERkdPcGVyYXRpb25zLmNwcCBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9kZmcvREZHT3BlcmF0
aW9ucy5jcHAKaW5kZXggYTk5YTNmYTEwMjAxOGNiZTg0ZTRkMTM3NDUwZDcyNTBkNDg3ZWUwOC4u
NmY5NTEyYmE1MzRjNDkwZDRiZjk5OGFmNWQwODI0NDEyZGJiOTE0ZSAxMDA2NDQKLS0tIGEvU291
cmNlL0phdmFTY3JpcHRDb3JlL2RmZy9ERkdPcGVyYXRpb25zLmNwcAorKysgYi9Tb3VyY2UvSmF2
YVNjcmlwdENvcmUvZGZnL0RGR09wZXJhdGlvbnMuY3BwCkBAIC0xNDQ3LDcgKzE0NDcsNyBAQCBj
aGFyKiBKSVRfT1BFUkFUSU9OIHRyaWdnZXJPU1JFbnRyeU5vdygKICAgICAgICAgCiAgICAgICAg
IC8vIE9TUiBlbnRyeSBmYWlsZWQuIE9oIG5vISBUaGlzIGltcGxpZXMgdGhhdCB3ZSBuZWVkIHRv
IHJldHJ5LiBXZSByZXRyeQogICAgICAgICAvLyB3aXRob3V0IGV4cG9uZW50aWFsIGJhY2tvZmYg
YW5kIHdlIG9ubHkgZG8gdGhpcyBmb3IgdGhlIGVudHJ5IGNvZGUgYmxvY2suCi0gICAgICAgIGpp
dENvZGUtPm9zckVudHJ5QmxvY2suY2xlYXIoKTsKKyAgICAgICAgaml0Q29kZS0+b3NyRW50cnlC
bG9jayA9IG51bGxwdHI7CiAgICAgICAgIGppdENvZGUtPm9zckVudHJ5UmV0cnkgPSAwOwogICAg
ICAgICByZXR1cm4gMDsKICAgICB9CmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUv
aW5zcGVjdG9yL0NvbnNvbGVNZXNzYWdlLmNwcCBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9pbnNw
ZWN0b3IvQ29uc29sZU1lc3NhZ2UuY3BwCmluZGV4IGEwNGE5N2RjM2I0NTE0ODU2Nzc2NGY0ZDI4
ZDBmM2IyYzM4ZDFlMDYuLjlhYzBkZGVlMmRjOTBiYWY4MThmYWUzYTJkNDE2ZGQ1OGFhOTE0NDUg
MTAwNjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9pbnNwZWN0b3IvQ29uc29sZU1lc3Nh
Z2UuY3BwCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9pbnNwZWN0b3IvQ29uc29sZU1lc3Nh
Z2UuY3BwCkBAIC0yNzMsNyArMjczLDcgQEAgdm9pZCBDb25zb2xlTWVzc2FnZTo6Y2xlYXIoKQog
ICAgICAgICBtX21lc3NhZ2UgPSBBU0NJSUxpdGVyYWwoIjxtZXNzYWdlIGNvbGxlY3RlZD4iKTsK
IAogICAgIGlmIChtX2FyZ3VtZW50cykKLSAgICAgICAgbV9hcmd1bWVudHMuY2xlYXIoKTsKKyAg
ICAgICAgbV9hcmd1bWVudHMgPSBudWxscHRyOwogfQogCiBKU0M6OkV4ZWNTdGF0ZSogQ29uc29s
ZU1lc3NhZ2U6OnNjcmlwdFN0YXRlKCkgY29uc3QKZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2Ny
aXB0Q29yZS9pbnNwZWN0b3IvSlNHbG9iYWxPYmplY3RJbnNwZWN0b3JDb250cm9sbGVyLmNwcCBi
L1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9pbnNwZWN0b3IvSlNHbG9iYWxPYmplY3RJbnNwZWN0b3JD
b250cm9sbGVyLmNwcAppbmRleCA1N2Y1MmM1NTU0N2E2Mzg4NzljODJmNDBiNjhlYzNkMjJiMzJh
MDM5Li4xMWQ4NmVkMzI5NzUwMzE3MzcxNmE4NWQ5MzU4MDhmYzY3N2I1ZDQ4IDEwMDY0NAotLS0g
YS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvaW5zcGVjdG9yL0pTR2xvYmFsT2JqZWN0SW5zcGVjdG9y
Q29udHJvbGxlci5jcHAKKysrIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL2luc3BlY3Rvci9KU0ds
b2JhbE9iamVjdEluc3BlY3RvckNvbnRyb2xsZXIuY3BwCkBAIC0xMzEsNyArMTMxLDcgQEAgdm9p
ZCBKU0dsb2JhbE9iamVjdEluc3BlY3RvckNvbnRyb2xsZXI6OmRpc2Nvbm5lY3RGcm9udGVuZChE
aXNjb25uZWN0UmVhc29uIHJlYXMKICAgICBtX2FnZW50cy53aWxsRGVzdHJveUZyb250ZW5kQW5k
QmFja2VuZChyZWFzb24pOwogCiAgICAgbV9iYWNrZW5kRGlzcGF0Y2hlci0+Y2xlYXJGcm9udGVu
ZCgpOwotICAgIG1fYmFja2VuZERpc3BhdGNoZXIuY2xlYXIoKTsKKyAgICBtX2JhY2tlbmREaXNw
YXRjaGVyID0gbnVsbHB0cjsKICAgICBtX2Zyb250ZW5kQ2hhbm5lbCA9IG51bGxwdHI7CiAKICAg
ICBtX2lzQXV0b21hdGljSW5zcGVjdGlvbiA9IGZhbHNlOwpkaWZmIC0tZ2l0IGEvU291cmNlL0ph
dmFTY3JpcHRDb3JlL2luc3BlY3Rvci9hZ2VudHMvSW5zcGVjdG9yQWdlbnQuY3BwIGIvU291cmNl
L0phdmFTY3JpcHRDb3JlL2luc3BlY3Rvci9hZ2VudHMvSW5zcGVjdG9yQWdlbnQuY3BwCmluZGV4
IGJmMjQxYmE3NzgyZDljMDljYTZkYWQzNjA5MmI4MjFhNzJhODM4YWEuLjA1Mzg2OTAxZTYxZTdm
YmNkZWNlMGJjMTUyOTBkOWY1YmFjZTAxODggMTAwNjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0
Q29yZS9pbnNwZWN0b3IvYWdlbnRzL0luc3BlY3RvckFnZW50LmNwcAorKysgYi9Tb3VyY2UvSmF2
YVNjcmlwdENvcmUvaW5zcGVjdG9yL2FnZW50cy9JbnNwZWN0b3JBZ2VudC5jcHAKQEAgLTU3LDcg
KzU3LDcgQEAgdm9pZCBJbnNwZWN0b3JBZ2VudDo6ZGlkQ3JlYXRlRnJvbnRlbmRBbmRCYWNrZW5k
KEZyb250ZW5kQ2hhbm5lbCogZnJvbnRlbmRDaGFubmUKIHZvaWQgSW5zcGVjdG9yQWdlbnQ6Ondp
bGxEZXN0cm95RnJvbnRlbmRBbmRCYWNrZW5kKERpc2Nvbm5lY3RSZWFzb24pCiB7CiAgICAgbV9m
cm9udGVuZERpc3BhdGNoZXIgPSBudWxscHRyOwotICAgIG1fYmFja2VuZERpc3BhdGNoZXIuY2xl
YXIoKTsKKyAgICBtX2JhY2tlbmREaXNwYXRjaGVyID0gbnVsbHB0cjsKIAogICAgIG1fcGVuZGlu
Z0V2YWx1YXRlVGVzdENvbW1hbmRzLmNsZWFyKCk7CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZh
U2NyaXB0Q29yZS9pbnNwZWN0b3IvYWdlbnRzL0luc3BlY3RvckNvbnNvbGVBZ2VudC5jcHAgYi9T
b3VyY2UvSmF2YVNjcmlwdENvcmUvaW5zcGVjdG9yL2FnZW50cy9JbnNwZWN0b3JDb25zb2xlQWdl
bnQuY3BwCmluZGV4IDgxNGEwYzExY2Y2MDhlYzY5ODk5Y2ViZjFiYWMxNGVhYmMxOWJhZDYuLjlm
ZmQwNDg0ZjI4MDYyYzI5YmNhZGI0YjliOWQzNzBiMWY3MTEzN2YgMTAwNjQ0Ci0tLSBhL1NvdXJj
ZS9KYXZhU2NyaXB0Q29yZS9pbnNwZWN0b3IvYWdlbnRzL0luc3BlY3RvckNvbnNvbGVBZ2VudC5j
cHAKKysrIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL2luc3BlY3Rvci9hZ2VudHMvSW5zcGVjdG9y
Q29uc29sZUFnZW50LmNwcApAQCAtNjQsNyArNjQsNyBAQCB2b2lkIEluc3BlY3RvckNvbnNvbGVB
Z2VudDo6ZGlkQ3JlYXRlRnJvbnRlbmRBbmRCYWNrZW5kKEZyb250ZW5kQ2hhbm5lbCogZnJvbnRl
bgogdm9pZCBJbnNwZWN0b3JDb25zb2xlQWdlbnQ6OndpbGxEZXN0cm95RnJvbnRlbmRBbmRCYWNr
ZW5kKERpc2Nvbm5lY3RSZWFzb24pCiB7CiAgICAgbV9mcm9udGVuZERpc3BhdGNoZXIgPSBudWxs
cHRyOwotICAgIG1fYmFja2VuZERpc3BhdGNoZXIuY2xlYXIoKTsKKyAgICBtX2JhY2tlbmREaXNw
YXRjaGVyID0gbnVsbHB0cjsKIAogICAgIFN0cmluZyBlcnJvclN0cmluZzsKICAgICBkaXNhYmxl
KGVycm9yU3RyaW5nKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9pbnNwZWN0
b3IvYWdlbnRzL0luc3BlY3RvckRlYnVnZ2VyQWdlbnQuY3BwIGIvU291cmNlL0phdmFTY3JpcHRD
b3JlL2luc3BlY3Rvci9hZ2VudHMvSW5zcGVjdG9yRGVidWdnZXJBZ2VudC5jcHAKaW5kZXggYTc1
ZTBiMmI2ZWM3ZThjOWRkZDY3N2ZmOTQ4NWM5ZThmZTlkYmU0ZC4uZjBmMGI0OGRkNGQ0N2NkZTNh
MGYyYTg4MjJjNDYzMjVkZTVhYWI0ZiAxMDA2NDQKLS0tIGEvU291cmNlL0phdmFTY3JpcHRDb3Jl
L2luc3BlY3Rvci9hZ2VudHMvSW5zcGVjdG9yRGVidWdnZXJBZ2VudC5jcHAKKysrIGIvU291cmNl
L0phdmFTY3JpcHRDb3JlL2luc3BlY3Rvci9hZ2VudHMvSW5zcGVjdG9yRGVidWdnZXJBZ2VudC5j
cHAKQEAgLTc3LDcgKzc3LDcgQEAgdm9pZCBJbnNwZWN0b3JEZWJ1Z2dlckFnZW50OjpkaWRDcmVh
dGVGcm9udGVuZEFuZEJhY2tlbmQoRnJvbnRlbmRDaGFubmVsKiBmcm9udGUKIHZvaWQgSW5zcGVj
dG9yRGVidWdnZXJBZ2VudDo6d2lsbERlc3Ryb3lGcm9udGVuZEFuZEJhY2tlbmQoRGlzY29ubmVj
dFJlYXNvbiByZWFzb24pCiB7CiAgICAgbV9mcm9udGVuZERpc3BhdGNoZXIgPSBudWxscHRyOwot
ICAgIG1fYmFja2VuZERpc3BhdGNoZXIuY2xlYXIoKTsKKyAgICBtX2JhY2tlbmREaXNwYXRjaGVy
ID0gbnVsbHB0cjsKIAogICAgIGJvb2wgc2tpcFJlY29tcGlsZSA9IHJlYXNvbiA9PSBEaXNjb25u
ZWN0UmVhc29uOjpJbnNwZWN0ZWRUYXJnZXREZXN0cm95ZWQ7CiAgICAgZGlzYWJsZShza2lwUmVj
b21waWxlKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9pbnNwZWN0b3IvYWdl
bnRzL0pTR2xvYmFsT2JqZWN0UnVudGltZUFnZW50LmNwcCBiL1NvdXJjZS9KYXZhU2NyaXB0Q29y
ZS9pbnNwZWN0b3IvYWdlbnRzL0pTR2xvYmFsT2JqZWN0UnVudGltZUFnZW50LmNwcAppbmRleCA2
NThjNjdhYjE1Zjg5NTIwNWM1NWJiNTI4OWMwYjlkMmU0ZTQwYzYwLi40NjA0OWY1NmM3NWFkNzM5
OGYzYzlkMDc1ODQ2Y2U3YTFjMTI4MjY4IDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENv
cmUvaW5zcGVjdG9yL2FnZW50cy9KU0dsb2JhbE9iamVjdFJ1bnRpbWVBZ2VudC5jcHAKKysrIGIv
U291cmNlL0phdmFTY3JpcHRDb3JlL2luc3BlY3Rvci9hZ2VudHMvSlNHbG9iYWxPYmplY3RSdW50
aW1lQWdlbnQuY3BwCkBAIC00OSw3ICs0OSw3IEBAIHZvaWQgSlNHbG9iYWxPYmplY3RSdW50aW1l
QWdlbnQ6OmRpZENyZWF0ZUZyb250ZW5kQW5kQmFja2VuZChGcm9udGVuZENoYW5uZWwqIGZyCiB2
b2lkIEpTR2xvYmFsT2JqZWN0UnVudGltZUFnZW50Ojp3aWxsRGVzdHJveUZyb250ZW5kQW5kQmFj
a2VuZChEaXNjb25uZWN0UmVhc29uIHJlYXNvbikKIHsKICAgICBtX2Zyb250ZW5kRGlzcGF0Y2hl
ciA9IG51bGxwdHI7Ci0gICAgbV9iYWNrZW5kRGlzcGF0Y2hlci5jbGVhcigpOworICAgIG1fYmFj
a2VuZERpc3BhdGNoZXIgPSBudWxscHRyOwogCiAgICAgSW5zcGVjdG9yUnVudGltZUFnZW50Ojp3
aWxsRGVzdHJveUZyb250ZW5kQW5kQmFja2VuZChyZWFzb24pOwogfQpkaWZmIC0tZ2l0IGEvU291
cmNlL0phdmFTY3JpcHRDb3JlL3BhcnNlci9QYXJzZXIuY3BwIGIvU291cmNlL0phdmFTY3JpcHRD
b3JlL3BhcnNlci9QYXJzZXIuY3BwCmluZGV4IGRjMGY1NWYxMzJmYTBlMThmODQ3YTg1NGM4Y2Zm
NTZiMGE2MDk0OWYuLmEzYzVlMzEyMThiMDM5MmVlNzYxNmZlZDYxZDlkMzk1MmI0YTQ4ZTYgMTAw
NjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9wYXJzZXIvUGFyc2VyLmNwcAorKysgYi9T
b3VyY2UvSmF2YVNjcmlwdENvcmUvcGFyc2VyL1BhcnNlci5jcHAKQEAgLTQ5MSw3ICs0OTEsNyBA
QCB0ZW1wbGF0ZSA8Y2xhc3MgVHJlZUJ1aWxkZXI+IFRyZWVFeHByZXNzaW9uIFBhcnNlcjxMZXhl
clR5cGU+OjpwYXJzZVZhckRlY2xhcmF0aQogICAgIEpTVG9rZW4gbGFzdElkZW50VG9rZW47IAog
ICAgIGRvIHsKICAgICAgICAgbGFzdElkZW50ID0gMDsKLSAgICAgICAgbGFzdFBhdHRlcm4gPSAw
OworICAgICAgICBsYXN0UGF0dGVybiA9IFRyZWVEZXN0cnVjdHVyaW5nUGF0dGVybigwKTsKICAg
ICAgICAgSlNUb2tlbkxvY2F0aW9uIGxvY2F0aW9uKHRva2VuTG9jYXRpb24oKSk7CiAgICAgICAg
IG5leHQoKTsKICAgICAgICAgVHJlZUV4cHJlc3Npb24gbm9kZSA9IDA7CkBAIC04OTQsNyArODk0
LDcgQEAgdGVtcGxhdGUgPGNsYXNzIFRyZWVCdWlsZGVyPiBUcmVlU3RhdGVtZW50IFBhcnNlcjxM
ZXhlclR5cGU+OjpwYXJzZUZvclN0YXRlbWVudCgKICAgICAgICAgICAgIGRlY2xzRW5kID0gbGFz
dFRva2VuRW5kUG9zaXRpb24oKTsKICAgICAgICAgICAgIGlmIChwYXR0ZXJuICYmIChtYXRjaChJ
TlRPS0VOKSB8fCAobWF0Y2goSURFTlQpICYmICptX3Rva2VuLm1fZGF0YS5pZGVudCA9PSBtX3Zt
LT5wcm9wZXJ0eU5hbWVzLT5vZikpKQogICAgICAgICAgICAgICAgIGdvdG8gZW51bWVyYXRpb25M
b29wOwotICAgICAgICAgICAgcGF0dGVybiA9IDA7CisgICAgICAgICAgICBwYXR0ZXJuID0gVHJl
ZURlc3RydWN0dXJpbmdQYXR0ZXJuKDApOwogICAgICAgICAgICAgcmVzdG9yZVNhdmVQb2ludChz
YXZlUG9pbnQpOwogICAgICAgICB9CiAgICAgICAgIG1fYWxsb3dzSW4gPSBmYWxzZTsKZGlmZiAt
LWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0V4ZWN1dGFibGUuY3BwIGIvU291
cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvRXhlY3V0YWJsZS5jcHAKaW5kZXggNmNiMDliMDFi
MzgyNWI4NDU2ZTk1YzFhYmM5ZGZmMmI4MDZlNDExOC4uNTUyNDBmZDkxZjdiYzc4NDJmMTNlNTky
ODFkMTBkMjFkODZjNGY1MCAxMDA2NDQKLS0tIGEvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRp
bWUvRXhlY3V0YWJsZS5jcHAKKysrIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvRXhl
Y3V0YWJsZS5jcHAKQEAgLTUyLDggKzUyLDggQEAgdm9pZCBFeGVjdXRhYmxlQmFzZTo6ZGVzdHJv
eShKU0NlbGwqIGNlbGwpCiB2b2lkIEV4ZWN1dGFibGVCYXNlOjpjbGVhckNvZGUoKQogewogI2lm
IEVOQUJMRShKSVQpCi0gICAgbV9qaXRDb2RlRm9yQ2FsbC5jbGVhcigpOwotICAgIG1faml0Q29k
ZUZvckNvbnN0cnVjdC5jbGVhcigpOworICAgIG1faml0Q29kZUZvckNhbGwgPSBudWxscHRyOwor
ICAgIG1faml0Q29kZUZvckNvbnN0cnVjdCA9IG51bGxwdHI7CiAgICAgbV9qaXRDb2RlRm9yQ2Fs
bFdpdGhBcml0eUNoZWNrID0gTWFjcm9Bc3NlbWJsZXJDb2RlUHRyKCk7CiAgICAgbV9qaXRDb2Rl
Rm9yQ29uc3RydWN0V2l0aEFyaXR5Q2hlY2sgPSBNYWNyb0Fzc2VtYmxlckNvZGVQdHIoKTsKICAg
ICBtX2ppdENvZGVGb3JDYWxsV2l0aEFyaXR5Q2hlY2tBbmRQcmVzZXJ2ZVJlZ3MgPSBNYWNyb0Fz
c2VtYmxlckNvZGVQdHIoKTsKQEAgLTQ2NCw3ICs0NjQsNyBAQCB2b2lkIEV2YWxFeGVjdXRhYmxl
Ojp1bmxpbmtDYWxscygpCiAKIHZvaWQgRXZhbEV4ZWN1dGFibGU6OmNsZWFyQ29kZSgpCiB7Ci0g
ICAgbV9ldmFsQ29kZUJsb2NrLmNsZWFyKCk7CisgICAgbV9ldmFsQ29kZUJsb2NrID0gbnVsbHB0
cjsKICAgICBtX3VubGlua2VkRXZhbENvZGVCbG9jay5jbGVhcigpOwogICAgIEJhc2U6OmNsZWFy
Q29kZSgpOwogfQpAQCAtNTQzLDcgKzU0Myw3IEBAIHZvaWQgUHJvZ3JhbUV4ZWN1dGFibGU6OnZp
c2l0Q2hpbGRyZW4oSlNDZWxsKiBjZWxsLCBTbG90VmlzaXRvciYgdmlzaXRvcikKIAogdm9pZCBQ
cm9ncmFtRXhlY3V0YWJsZTo6Y2xlYXJDb2RlKCkKIHsKLSAgICBtX3Byb2dyYW1Db2RlQmxvY2su
Y2xlYXIoKTsKKyAgICBtX3Byb2dyYW1Db2RlQmxvY2sgPSBudWxscHRyOwogICAgIG1fdW5saW5r
ZWRQcm9ncmFtQ29kZUJsb2NrLmNsZWFyKCk7CiAgICAgQmFzZTo6Y2xlYXJDb2RlKCk7CiB9CkBA
IC01ODcsOCArNTg3LDggQEAgdm9pZCBGdW5jdGlvbkV4ZWN1dGFibGU6OmNsZWFyVW5saW5rZWRD
b2RlRm9yUmVjb21waWxhdGlvbigpCiAKIHZvaWQgRnVuY3Rpb25FeGVjdXRhYmxlOjpjbGVhckNv
ZGUoKQogewotICAgIG1fY29kZUJsb2NrRm9yQ2FsbC5jbGVhcigpOwotICAgIG1fY29kZUJsb2Nr
Rm9yQ29uc3RydWN0LmNsZWFyKCk7CisgICAgbV9jb2RlQmxvY2tGb3JDYWxsID0gbnVsbHB0cjsK
KyAgICBtX2NvZGVCbG9ja0ZvckNvbnN0cnVjdCA9IG51bGxwdHI7CiAgICAgQmFzZTo6Y2xlYXJD
b2RlKCk7CiB9CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0pT
TG9jay5jcHAgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9KU0xvY2suY3BwCmluZGV4
IDJlNzk5NGNmMjdjM2M1NGQ1ZDU3YzM3MDAwZGQxODBlYzRkZjlmMDUuLmMyZWUwYTU1MzJjMGI1
MTkzNjg3MTA5ZDlhMzJlYzRhMTQ0NWQ4YmQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0
Q29yZS9ydW50aW1lL0pTTG9jay5jcHAKKysrIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRp
bWUvSlNMb2NrLmNwcApAQCAtNzMsNyArNzMsNyBAQCB2b2lkIEpTTG9ja0hvbGRlcjo6aW5pdCgp
CiBKU0xvY2tIb2xkZXI6On5KU0xvY2tIb2xkZXIoKQogewogICAgIFJlZlB0cjxKU0xvY2s+IGFw
aUxvY2soJm1fdm0tPmFwaUxvY2soKSk7Ci0gICAgbV92bS5jbGVhcigpOworICAgIG1fdm0gPSBu
dWxscHRyOwogICAgIGFwaUxvY2stPnVubG9jaygpOwogfQogCmRpZmYgLS1naXQgYS9Tb3VyY2Uv
SmF2YVNjcmlwdENvcmUvcnVudGltZS9TdHJ1Y3R1cmUuY3BwIGIvU291cmNlL0phdmFTY3JpcHRD
b3JlL3J1bnRpbWUvU3RydWN0dXJlLmNwcAppbmRleCBmNzcxYjYwYmNiNjVkZThlNTRjNmE2MTFj
N2QyNmY4NjU5OGIwNzRkLi4zOTg1ODA1Y2Y1NWM4M2MxZGE2NTRhMTM1YzQ1MTBjNzUwMTcwYjE5
IDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9TdHJ1Y3R1cmUuY3Bw
CisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL1N0cnVjdHVyZS5jcHAKQEAgLTcz
Nyw3ICs3MzcsNyBAQCB2b2lkIFN0cnVjdHVyZTo6cGluKCkKICAgICBBU1NFUlQocHJvcGVydHlU
YWJsZSgpKTsKICAgICBzZXRJc1Bpbm5lZFByb3BlcnR5VGFibGUodHJ1ZSk7CiAgICAgY2xlYXJQ
cmV2aW91c0lEKCk7Ci0gICAgbV9uYW1lSW5QcmV2aW91cy5jbGVhcigpOworICAgIG1fbmFtZUlu
UHJldmlvdXMgPSBudWxscHRyOwogfQogCiB2b2lkIFN0cnVjdHVyZTo6YWxsb2NhdGVSYXJlRGF0
YShWTSYgdm0pCmRpZmYgLS1naXQgYS9Tb3VyY2UvV1RGL3d0Zi9SZWZQdHIuaCBiL1NvdXJjZS9X
VEYvd3RmL1JlZlB0ci5oCmluZGV4IDI5MTFmMGRhOTA2MmI3NmNjZDJhZDE1NDQwYjljZDI1ODVk
NTg4ODYuLjdjODMwNWUzOGVkNzJiNDQ3N2RhNWYyZTIyNzUwNzY0YTc4M2UyNjQgMTAwNjQ0Ci0t
LSBhL1NvdXJjZS9XVEYvd3RmL1JlZlB0ci5oCisrKyBiL1NvdXJjZS9XVEYvd3RmL1JlZlB0ci5o
CkBAIC02MCw3ICs2MCw2IEBAIHB1YmxpYzoKIAogICAgIFQqIGdldCgpIGNvbnN0IHsgcmV0dXJu
IG1fcHRyOyB9CiAgICAgCi0gICAgdm9pZCBjbGVhcigpOwogICAgIFBhc3NSZWZQdHI8VD4gcmVs
ZWFzZSgpIHsgUGFzc1JlZlB0cjxUPiB0bXAgPSBhZG9wdFJlZihtX3B0cik7IG1fcHRyID0gbnVs
bHB0cjsgcmV0dXJuIHRtcDsgfQogICAgIFJlZjxUPiByZWxlYXNlTm9uTnVsbCgpIHsgQVNTRVJU
KG1fcHRyKTsgUmVmPFQ+IHRtcChhZG9wdFJlZigqbV9wdHIpKTsgbV9wdHIgPSBudWxscHRyOyBy
ZXR1cm4gdG1wOyB9CiAKQEAgLTc3LDYgKzc2LDcgQEAgcHVibGljOgogICAgIAogICAgIFJlZlB0
ciYgb3BlcmF0b3I9KGNvbnN0IFJlZlB0ciYpOwogICAgIFJlZlB0ciYgb3BlcmF0b3I9KFQqKTsK
KyAgICBSZWZQdHImIG9wZXJhdG9yPShzdGQ6Om51bGxwdHJfdCk7CiAgICAgUmVmUHRyJiBvcGVy
YXRvcj0oY29uc3QgUGFzc1JlZlB0cjxUPiYpOwogICAgIHRlbXBsYXRlPHR5cGVuYW1lIFU+IFJl
ZlB0ciYgb3BlcmF0b3I9KGNvbnN0IFJlZlB0cjxVPiYpOwogICAgIHRlbXBsYXRlPHR5cGVuYW1l
IFU+IFJlZlB0ciYgb3BlcmF0b3I9KGNvbnN0IFBhc3NSZWZQdHI8VT4mKTsKQEAgLTEwOSwxMSAr
MTA5LDYgQEAgdGVtcGxhdGU8dHlwZW5hbWUgVD4gdGVtcGxhdGU8dHlwZW5hbWUgVT4gaW5saW5l
IFJlZlB0cjxUPjo6UmVmUHRyKFJlZjxVPiYmIHJlZmUKIHsKIH0KIAotdGVtcGxhdGU8dHlwZW5h
bWUgVD4gaW5saW5lIHZvaWQgUmVmUHRyPFQ+OjpjbGVhcigpCi17Ci0gICAgZGVyZWZJZk5vdE51
bGwoc3RkOjpleGNoYW5nZShtX3B0ciwgbnVsbHB0cikpOwotfQotCiB0ZW1wbGF0ZTx0eXBlbmFt
ZSBUPgogaW5saW5lIFQqIFJlZlB0cjxUPjo6bGVha1JlZigpCiB7CkBAIC0xNDEsNiArMTM2LDEy
IEBAIHRlbXBsYXRlPHR5cGVuYW1lIFQ+IGlubGluZSBSZWZQdHI8VD4mIFJlZlB0cjxUPjo6b3Bl
cmF0b3I9KFQqIG9wdHIpCiAgICAgcmV0dXJuICp0aGlzOwogfQogCit0ZW1wbGF0ZTx0eXBlbmFt
ZSBUPiBpbmxpbmUgUmVmUHRyPFQ+JiBSZWZQdHI8VD46Om9wZXJhdG9yPShzdGQ6Om51bGxwdHJf
dCkKK3sKKyAgICBkZXJlZklmTm90TnVsbChzdGQ6OmV4Y2hhbmdlKG1fcHRyLCBudWxscHRyKSk7
CisgICAgcmV0dXJuICp0aGlzOworfQorCiB0ZW1wbGF0ZTx0eXBlbmFtZSBUPiBpbmxpbmUgUmVm
UHRyPFQ+JiBSZWZQdHI8VD46Om9wZXJhdG9yPShjb25zdCBQYXNzUmVmUHRyPFQ+JiBvKQogewog
ICAgIFJlZlB0ciBwdHIgPSBvOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dURi93dGYvdGV4dC9TdHJp
bmdCdWlsZGVyLmggYi9Tb3VyY2UvV1RGL3d0Zi90ZXh0L1N0cmluZ0J1aWxkZXIuaAppbmRleCBi
ZTVjMTE3MmNjY2I5OThhNDEwNTgwMzQ1YWY0MGMyOWNiMTM0OThlLi4xZGM0YWM2MjI5NDBjMGE1
MzQyZDc2YzkyMmEzNmRkNjE4MmE5MWY4IDEwMDY0NAotLS0gYS9Tb3VyY2UvV1RGL3d0Zi90ZXh0
L1N0cmluZ0J1aWxkZXIuaAorKysgYi9Tb3VyY2UvV1RGL3d0Zi90ZXh0L1N0cmluZ0J1aWxkZXIu
aApAQCAtMjY0LDcgKzI2NCw3IEBAIHB1YmxpYzoKICAgICB7CiAgICAgICAgIG1fbGVuZ3RoID0g
MDsKICAgICAgICAgbV9zdHJpbmcgPSBTdHJpbmcoKTsKLSAgICAgICAgbV9idWZmZXIgPSAwOwor
ICAgICAgICBtX2J1ZmZlciA9IG51bGxwdHI7CiAgICAgICAgIG1fYnVmZmVyQ2hhcmFjdGVyczgg
PSAwOwogICAgICAgICBtX2lzOEJpdCA9IHRydWU7CiAgICAgfQpkaWZmIC0tZ2l0IGEvU291cmNl
L1dlYkNvcmUvTW9kdWxlcy9pbmRleGVkZGIvSURCQ3Vyc29yLmNwcCBiL1NvdXJjZS9XZWJDb3Jl
L01vZHVsZXMvaW5kZXhlZGRiL0lEQkN1cnNvci5jcHAKaW5kZXggYTIwZTFlMWFjZTI0OTk0ODRk
Zjc0NTkxOThhMTExZTE4NDI5MGU2ZC4uYzQwMTFkYzI3NTU1ZjQ4ZmNlMmQ2ZDJlMTY0MDhmMWQ3
YTc2MTM2ZiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9pbmRleGVkZGIvSURC
Q3Vyc29yLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL2luZGV4ZWRkYi9JREJDdXJz
b3IuY3BwCkBAIC0yNTksNyArMjU5LDcgQEAgdm9pZCBJREJDdXJzb3I6OmNsb3NlKCkKICAgICBt
X3RyYW5zYWN0aW9uTm90aWZpZXIuY3Vyc29yRmluaXNoZWQoKTsKICAgICBpZiAobV9yZXF1ZXN0
KSB7CiAgICAgICAgIG1fcmVxdWVzdC0+ZmluaXNoQ3Vyc29yKCk7Ci0gICAgICAgIG1fcmVxdWVz
dC5jbGVhcigpOworICAgICAgICBtX3JlcXVlc3QgPSBudWxscHRyOwogICAgIH0KIH0KIApkaWZm
IC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9pbmRleGVkZGIvSURCRGF0YWJhc2VCYWNr
ZW5kLmNwcCBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvaW5kZXhlZGRiL0lEQkRhdGFiYXNlQmFj
a2VuZC5jcHAKaW5kZXggZmMyMzEwMmRkYWE5YTM3NzA5NDBlZjRlYjA0YzEzODAzODM0ZGMzZi4u
MDllNGUyN2I4ZjkwOWUxNzgwOWI0OWQwMzRlM2I4YzRlNDVlZjUzNyAxMDA2NDQKLS0tIGEvU291
cmNlL1dlYkNvcmUvTW9kdWxlcy9pbmRleGVkZGIvSURCRGF0YWJhc2VCYWNrZW5kLmNwcAorKysg
Yi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL2luZGV4ZWRkYi9JREJEYXRhYmFzZUJhY2tlbmQuY3Bw
CkBAIC0zMzMsNyArMzMzLDcgQEAgdm9pZCBJREJEYXRhYmFzZUJhY2tlbmQ6OnRyYW5zYWN0aW9u
RmluaXNoZWQoSURCVHJhbnNhY3Rpb25CYWNrZW5kKiByYXdUcmFuc2FjdGkKICAgICBtX3RyYW5z
YWN0aW9ucy5yZW1vdmUodHJhbnNhY3Rpb24tPmlkKCkpOwogICAgIGlmICh0cmFuc2FjdGlvbi0+
bW9kZSgpID09IEluZGV4ZWREQjo6VHJhbnNhY3Rpb25Nb2RlOjpWZXJzaW9uQ2hhbmdlKSB7CiAg
ICAgICAgIEFTU0VSVCh0cmFuc2FjdGlvbi5nZXQoKSA9PSBtX3J1bm5pbmdWZXJzaW9uQ2hhbmdl
VHJhbnNhY3Rpb24uZ2V0KCkpOwotICAgICAgICBtX3J1bm5pbmdWZXJzaW9uQ2hhbmdlVHJhbnNh
Y3Rpb24uY2xlYXIoKTsKKyAgICAgICAgbV9ydW5uaW5nVmVyc2lvbkNoYW5nZVRyYW5zYWN0aW9u
ID0gbnVsbHB0cjsKICAgICB9CiB9CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL01vZHVs
ZXMvaW5kZXhlZGRiL0lEQk9iamVjdFN0b3JlLmNwcCBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMv
aW5kZXhlZGRiL0lEQk9iamVjdFN0b3JlLmNwcAppbmRleCBlOGJmOWRkZWZlNDk3YjU2M2Q5OGYw
ODUwZWFlOGQ0ODdlYjIyNWI5Li5hNmQyODE0MmY2MjIyMjJmOTQzZjhkNGUxMzViNDI0ODMxMjAz
MDE5IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL2luZGV4ZWRkYi9JREJPYmpl
Y3RTdG9yZS5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9pbmRleGVkZGIvSURCT2Jq
ZWN0U3RvcmUuY3BwCkBAIC0zMzcsNyArMzM3LDcgQEAgcHJpdmF0ZToKICAgICAgICAgICAgIC8v
IE5vdyB0aGF0IHdlIGFyZSBkb25lIGluZGV4aW5nLCB0ZWxsIHRoZSBiYWNrZW5kIHRvIGdvCiAg
ICAgICAgICAgICAvLyBiYWNrIHRvIHByb2Nlc3NpbmcgdGFza3Mgb2YgdHlwZSBOb3JtYWxUYXNr
LgogICAgICAgICAgICAgbV9kYXRhYmFzZUJhY2tlbmQtPnNldEluZGV4ZXNSZWFkeShtX3RyYW5z
YWN0aW9uSWQsIG1fb2JqZWN0U3RvcmVJZCwgaW5kZXhJZHMpOwotICAgICAgICAgICAgbV9kYXRh
YmFzZUJhY2tlbmQuY2xlYXIoKTsKKyAgICAgICAgICAgIG1fZGF0YWJhc2VCYWNrZW5kID0gbnVs
bHB0cjsKICAgICAgICAgfQogCiAgICAgfQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvTW9k
dWxlcy9pbmRleGVkZGIvSURCT3BlbkRCUmVxdWVzdC5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1
bGVzL2luZGV4ZWRkYi9JREJPcGVuREJSZXF1ZXN0LmNwcAppbmRleCA2Mzc4MDdlYWQ5NGNiNzhj
OWM5ZDkzNThkZWQ2NzBmZmYyMDE3N2RjLi43MTU3OWIwNTk1NTYyNGUwM2YyYWUxNzI3ZmM1MDQ2
NzkyNTA0N2I0IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL2luZGV4ZWRkYi9J
REJPcGVuREJSZXF1ZXN0LmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL2luZGV4ZWRk
Yi9JREJPcGVuREJSZXF1ZXN0LmNwcApAQCAtMTQyLDcgKzE0Miw3IEBAIGJvb2wgSURCT3BlbkRC
UmVxdWVzdDo6ZGlzcGF0Y2hFdmVudChQYXNzUmVmUHRyPEV2ZW50PiBldmVudCkKICAgICAvLyBJ
ZiB0aGUgY29ubmVjdGlvbiBjbG9zZWQgYmV0d2VlbiBvblVwZ3JhZGVOZWVkZWQgYW5kIHRoZSBk
ZWxpdmVyeSBvZiB0aGUgInN1Y2Nlc3MiIGV2ZW50LAogICAgIC8vIGFuICJlcnJvciIgZXZlbnQg
c2hvdWxkIGJlIGZpcmVkIGluc3RlYWQuCiAgICAgaWYgKGV2ZW50LT50eXBlKCkgPT0gZXZlbnRO
YW1lcygpLnN1Y2Nlc3NFdmVudCAmJiBtX3Jlc3VsdC0+dHlwZSgpID09IElEQkFueTo6SURCRGF0
YWJhc2VUeXBlICYmIG1fcmVzdWx0LT5pZGJEYXRhYmFzZSgpLT5pc0Nsb3NlUGVuZGluZygpKSB7
Ci0gICAgICAgIG1fcmVzdWx0LmNsZWFyKCk7CisgICAgICAgIG1fcmVzdWx0ID0gbnVsbHB0cjsK
ICAgICAgICAgb25FcnJvcihJREJEYXRhYmFzZUVycm9yOjpjcmVhdGUoSURCRGF0YWJhc2VFeGNl
cHRpb246OkFib3J0RXJyb3IsICJUaGUgY29ubmVjdGlvbiB3YXMgY2xvc2VkLiIpKTsKICAgICAg
ICAgcmV0dXJuIGZhbHNlOwogICAgIH0KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL01vZHVs
ZXMvaW5kZXhlZGRiL0lEQlJlcXVlc3QuY3BwIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9pbmRl
eGVkZGIvSURCUmVxdWVzdC5jcHAKaW5kZXggOWU1MDFiNGY4NjI2YjA0MDE2ZGVjZDk1ODYxNmE4
MTUzZmE2NWFlZi4uODY0ZGU1MzU3NTMxMWIwOWUyODc4NGEzZGE2NWM4MWZmOGE4NDVhZiAxMDA2
NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9pbmRleGVkZGIvSURCUmVxdWVzdC5jcHAK
KysrIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9pbmRleGVkZGIvSURCUmVxdWVzdC5jcHAKQEAg
LTE3MCw5ICsxNzAsOSBAQCB2b2lkIElEQlJlcXVlc3Q6OmFib3J0KCkKICAgICBtX2VucXVldWVk
RXZlbnRzLmNsZWFyKCk7CiAKICAgICBtX2Vycm9yQ29kZSA9IDA7Ci0gICAgbV9lcnJvci5jbGVh
cigpOworICAgIG1fZXJyb3IgPSBudWxscHRyOwogICAgIG1fZXJyb3JNZXNzYWdlID0gU3RyaW5n
KCk7Ci0gICAgbV9yZXN1bHQuY2xlYXIoKTsKKyAgICBtX3Jlc3VsdCA9IG51bGxwdHI7CiAgICAg
b25FcnJvcihJREJEYXRhYmFzZUVycm9yOjpjcmVhdGUoSURCRGF0YWJhc2VFeGNlcHRpb246OkFi
b3J0RXJyb3IpKTsKICAgICBtX3JlcXVlc3RBYm9ydGVkID0gdHJ1ZTsKIH0KQEAgLTE5NCwxMCAr
MTk0LDEwIEBAIHZvaWQgSURCUmVxdWVzdDo6c2V0UGVuZGluZ0N1cnNvcihQYXNzUmVmUHRyPElE
QkN1cnNvcj4gY3Vyc29yKQogICAgIEFTU0VSVChjdXJzb3IgPT0gZ2V0UmVzdWx0Q3Vyc29yKCkp
OwogCiAgICAgbV9wZW5kaW5nQ3Vyc29yID0gY3Vyc29yOwotICAgIG1fcmVzdWx0LmNsZWFyKCk7
CisgICAgbV9yZXN1bHQgPSBudWxscHRyOwogICAgIG1fcmVhZHlTdGF0ZSA9IFBFTkRJTkc7CiAg
ICAgbV9lcnJvckNvZGUgPSAwOwotICAgIG1fZXJyb3IuY2xlYXIoKTsKKyAgICBtX2Vycm9yID0g
bnVsbHB0cjsKICAgICBtX2Vycm9yTWVzc2FnZSA9IFN0cmluZygpOwogICAgIG1fdHJhbnNhY3Rp
b24tPnJlZ2lzdGVyUmVxdWVzdCh0aGlzKTsKIH0KQEAgLTI1Niw3ICsyNTYsNyBAQCB2b2lkIElE
QlJlcXVlc3Q6Om9uRXJyb3IoUGFzc1JlZlB0cjxJREJEYXRhYmFzZUVycm9yPiBlcnJvcikKICAg
ICBtX2Vycm9yQ29kZSA9IGVycm9yLT5jb2RlKCk7CiAgICAgbV9lcnJvck1lc3NhZ2UgPSBlcnJv
ci0+bWVzc2FnZSgpOwogICAgIG1fZXJyb3IgPSBET01FcnJvcjo6Y3JlYXRlKElEQkRhdGFiYXNl
RXhjZXB0aW9uOjpnZXRFcnJvck5hbWUoZXJyb3ItPmlkYkNvZGUoKSkpOwotICAgIG1fcGVuZGlu
Z0N1cnNvci5jbGVhcigpOworICAgIG1fcGVuZGluZ0N1cnNvciA9IG51bGxwdHI7CiAgICAgZW5x
dWV1ZUV2ZW50KEV2ZW50OjpjcmVhdGUoZXZlbnROYW1lcygpLmVycm9yRXZlbnQsIHRydWUsIHRy
dWUpKTsKIH0KIApAQCAtNDA0LDcgKzQwNCw3IEBAIHZvaWQgSURCUmVxdWVzdDo6b25TdWNjZXNz
SW50ZXJuYWwoY29uc3QgRGVwcmVjYXRlZDo6U2NyaXB0VmFsdWUmIHZhbHVlKQogICAgIG1fcmVz
dWx0ID0gSURCQW55OjpjcmVhdGUodmFsdWUpOwogICAgIGlmIChtX3BlbmRpbmdDdXJzb3IpIHsK
ICAgICAgICAgbV9wZW5kaW5nQ3Vyc29yLT5jbG9zZSgpOwotICAgICAgICBtX3BlbmRpbmdDdXJz
b3IuY2xlYXIoKTsKKyAgICAgICAgbV9wZW5kaW5nQ3Vyc29yID0gbnVsbHB0cjsKICAgICB9CiAg
ICAgZW5xdWV1ZUV2ZW50KGNyZWF0ZVN1Y2Nlc3NFdmVudCgpKTsKIH0KQEAgLTU1Myw3ICs1NTMs
NyBAQCB2b2lkIElEQlJlcXVlc3Q6OnRyYW5zYWN0aW9uRGlkRmluaXNoQW5kRGlzcGF0Y2goKQog
ICAgIEFTU0VSVChtX3RyYW5zYWN0aW9uLT5pc1ZlcnNpb25DaGFuZ2UoKSk7CiAgICAgQVNTRVJU
KG1fcmVhZHlTdGF0ZSA9PSBET05FKTsKICAgICBBU1NFUlQoc2NyaXB0RXhlY3V0aW9uQ29udGV4
dCgpKTsKLSAgICBtX3RyYW5zYWN0aW9uLmNsZWFyKCk7CisgICAgbV90cmFuc2FjdGlvbiA9IG51
bGxwdHI7CiAgICAgbV9yZWFkeVN0YXRlID0gUEVORElORzsKIH0KIApkaWZmIC0tZ2l0IGEvU291
cmNlL1dlYkNvcmUvTW9kdWxlcy9pbmRleGVkZGIvSURCVHJhbnNhY3Rpb24uY3BwIGIvU291cmNl
L1dlYkNvcmUvTW9kdWxlcy9pbmRleGVkZGIvSURCVHJhbnNhY3Rpb24uY3BwCmluZGV4IDk5NDhi
YzcyYmIyNTJlYWQ4MDRlZDAzNzE1M2QyNDE0ZWE4YjFlYTcuLjZlYzI5ZmE2Nzg0Yzc4ZTdiMDRi
YTMwNGUyNDg2MzA3MzkyZWQ4OWEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMv
aW5kZXhlZGRiL0lEQlRyYW5zYWN0aW9uLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVz
L2luZGV4ZWRkYi9JREJUcmFuc2FjdGlvbi5jcHAKQEAgLTI0MCw3ICsyNDAsNyBAQCB2b2lkIElE
QlRyYW5zYWN0aW9uOjpPcGVuQ3Vyc29yTm90aWZpZXI6OmN1cnNvckZpbmlzaGVkKCkKICAgICBp
ZiAobV9jdXJzb3IpIHsKICAgICAgICAgbV90cmFuc2FjdGlvbi0+dW5yZWdpc3Rlck9wZW5DdXJz
b3IobV9jdXJzb3IpOwogICAgICAgICBtX2N1cnNvciA9IG51bGxwdHI7Ci0gICAgICAgIG1fdHJh
bnNhY3Rpb24uY2xlYXIoKTsKKyAgICAgICAgbV90cmFuc2FjdGlvbiA9IG51bGxwdHI7CiAgICAg
fQogfQogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL21lZGlhc291cmNlL01l
ZGlhU291cmNlLmNwcCBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvbWVkaWFzb3VyY2UvTWVkaWFT
b3VyY2UuY3BwCmluZGV4IDkxMTcwYWE0ZTgyYTAxNzVmZDJhNDAxZGFlNDU0OTc5ZTcwYmEyYjQu
LmM0MGQ2ZTMwMzY5ZTM5OTEzYzdmYTk3NzJjMWVkNmNmMzI0MDRlMTkgMTAwNjQ0Ci0tLSBhL1Nv
dXJjZS9XZWJDb3JlL01vZHVsZXMvbWVkaWFzb3VyY2UvTWVkaWFTb3VyY2UuY3BwCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL01vZHVsZXMvbWVkaWFzb3VyY2UvTWVkaWFTb3VyY2UuY3BwCkBAIC0zOTQs
NyArMzk0LDcgQEAgdm9pZCBNZWRpYVNvdXJjZTo6c2V0UmVhZHlTdGF0ZShjb25zdCBBdG9taWNT
dHJpbmcmIHN0YXRlKQogICAgIExPRyhNZWRpYVNvdXJjZSwgIk1lZGlhU291cmNlOjpzZXRSZWFk
eVN0YXRlKCVwKSA6ICVzIC0+ICVzIiwgdGhpcywgb2xkU3RhdGUuc3RyaW5nKCkuYXNjaWkoKS5k
YXRhKCksIHN0YXRlLnN0cmluZygpLmFzY2lpKCkuZGF0YSgpKTsKIAogICAgIGlmIChzdGF0ZSA9
PSBjbG9zZWRLZXl3b3JkKCkpIHsKLSAgICAgICAgbV9wcml2YXRlLmNsZWFyKCk7CisgICAgICAg
IG1fcHJpdmF0ZSA9IG51bGxwdHI7CiAgICAgICAgIG1fbWVkaWFFbGVtZW50ID0gbnVsbHB0cjsK
ICAgICAgICAgbV9kdXJhdGlvbiA9IE1lZGlhVGltZTo6aW52YWxpZFRpbWUoKTsKICAgICB9CkBA
IC04MTEsNyArODExLDcgQEAgdm9pZCBNZWRpYVNvdXJjZTo6c3RvcCgpCiAgICAgbV9hc3luY0V2
ZW50UXVldWUuY2xvc2UoKTsKICAgICBpZiAoIWlzQ2xvc2VkKCkpCiAgICAgICAgIHNldFJlYWR5
U3RhdGUoY2xvc2VkS2V5d29yZCgpKTsKLSAgICBtX3ByaXZhdGUuY2xlYXIoKTsKKyAgICBtX3By
aXZhdGUgPSBudWxscHRyOwogfQogCiBib29sIE1lZGlhU291cmNlOjpjYW5TdXNwZW5kRm9yUGFn
ZUNhY2hlKCkgY29uc3QKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvbWVkaWFz
dHJlYW0vUlRDU2Vzc2lvbkRlc2NyaXB0aW9uUmVxdWVzdEltcGwuY3BwIGIvU291cmNlL1dlYkNv
cmUvTW9kdWxlcy9tZWRpYXN0cmVhbS9SVENTZXNzaW9uRGVzY3JpcHRpb25SZXF1ZXN0SW1wbC5j
cHAKaW5kZXggZDcxMGRjMThmNWUyM2NiNmUxMzA4ZGYyOGY2NTZhNjg5YmNiMDZkNy4uMzAxMzM0
ZGNkNTEwODVkMzI1ZjUyNGY4ZWQ5OTRhZWNiOGU2ODQ0MyAxMDA2NDQKLS0tIGEvU291cmNlL1dl
YkNvcmUvTW9kdWxlcy9tZWRpYXN0cmVhbS9SVENTZXNzaW9uRGVzY3JpcHRpb25SZXF1ZXN0SW1w
bC5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9tZWRpYXN0cmVhbS9SVENTZXNzaW9u
RGVzY3JpcHRpb25SZXF1ZXN0SW1wbC5jcHAKQEAgLTk3LDggKzk3LDggQEAgYm9vbCBSVENTZXNz
aW9uRGVzY3JpcHRpb25SZXF1ZXN0SW1wbDo6Y2FuU3VzcGVuZEZvclBhZ2VDYWNoZSgpIGNvbnN0
CiAKIHZvaWQgUlRDU2Vzc2lvbkRlc2NyaXB0aW9uUmVxdWVzdEltcGw6OmNsZWFyKCkKIHsKLSAg
ICBtX3N1Y2Nlc3NDYWxsYmFjay5jbGVhcigpOwotICAgIG1fZXJyb3JDYWxsYmFjay5jbGVhcigp
OworICAgIG1fc3VjY2Vzc0NhbGxiYWNrID0gbnVsbHB0cjsKKyAgICBtX2Vycm9yQ2FsbGJhY2sg
PSBudWxscHRyOwogfQogCiB9IC8vIG5hbWVzcGFjZSBXZWJDb3JlCmRpZmYgLS1naXQgYS9Tb3Vy
Y2UvV2ViQ29yZS9Nb2R1bGVzL21lZGlhc3RyZWFtL1JUQ1N0YXRzUmVxdWVzdEltcGwuY3BwIGIv
U291cmNlL1dlYkNvcmUvTW9kdWxlcy9tZWRpYXN0cmVhbS9SVENTdGF0c1JlcXVlc3RJbXBsLmNw
cAppbmRleCBkZWIxOWE5YWY5MGRjZmM0NTYzNzM4NjhlMTVmODgzNWRmYmU0YzhmLi5kMDAwYjEx
ZGYxN2ZlZjEwMTBlMzg5OWI3NzAyMWNlNzkyMDFmN2U5IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2Vi
Q29yZS9Nb2R1bGVzL21lZGlhc3RyZWFtL1JUQ1N0YXRzUmVxdWVzdEltcGwuY3BwCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL01vZHVsZXMvbWVkaWFzdHJlYW0vUlRDU3RhdHNSZXF1ZXN0SW1wbC5jcHAK
QEAgLTEwNCw3ICsxMDQsNyBAQCBib29sIFJUQ1N0YXRzUmVxdWVzdEltcGw6OmNhblN1c3BlbmRG
b3JQYWdlQ2FjaGUoKSBjb25zdAogCiB2b2lkIFJUQ1N0YXRzUmVxdWVzdEltcGw6OmNsZWFyKCkK
IHsKLSAgICBtX3N1Y2Nlc3NDYWxsYmFjay5jbGVhcigpOworICAgIG1fc3VjY2Vzc0NhbGxiYWNr
ID0gbnVsbHB0cjsKIH0KIAogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL21l
ZGlhc3RyZWFtL1JUQ1ZvaWRSZXF1ZXN0SW1wbC5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVz
L21lZGlhc3RyZWFtL1JUQ1ZvaWRSZXF1ZXN0SW1wbC5jcHAKaW5kZXggODJmOGExMjJkZDMwOWUz
YWQwZTQzOTRlYzljYzM1ZWUwMDlkYWQzNy4uNzA2ZjkwNzU4ZmRjMTVkYzk3ZWZhMWE1ZDMxMTJj
NGUyYWI0OWRhNiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9tZWRpYXN0cmVh
bS9SVENWb2lkUmVxdWVzdEltcGwuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvbWVk
aWFzdHJlYW0vUlRDVm9pZFJlcXVlc3RJbXBsLmNwcApAQCAtOTQsOCArOTQsOCBAQCBib29sIFJU
Q1ZvaWRSZXF1ZXN0SW1wbDo6Y2FuU3VzcGVuZEZvclBhZ2VDYWNoZSgpIGNvbnN0CiAKIHZvaWQg
UlRDVm9pZFJlcXVlc3RJbXBsOjpjbGVhcigpCiB7Ci0gICAgbV9zdWNjZXNzQ2FsbGJhY2suY2xl
YXIoKTsKLSAgICBtX2Vycm9yQ2FsbGJhY2suY2xlYXIoKTsKKyAgICBtX3N1Y2Nlc3NDYWxsYmFj
ayA9IG51bGxwdHI7CisgICAgbV9lcnJvckNhbGxiYWNrID0gbnVsbHB0cjsKIH0KIAogfSAvLyBu
YW1lc3BhY2UgV2ViQ29yZQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy93ZWJh
dWRpby9BdWRpb0NvbnRleHQuY3BwIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy93ZWJhdWRpby9B
dWRpb0NvbnRleHQuY3BwCmluZGV4IDVhM2RlYTBhNTA3MWQ4ZGFmYmNkZmUwNTVhOGQwNWNkODAz
NDBkYWYuLmZhYTk5NmI3NGNmOGIwZmIyYjA0MzIyZGIxN2JhNjY4NjM2MGM5YjkgMTAwNjQ0Ci0t
LSBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvd2ViYXVkaW8vQXVkaW9Db250ZXh0LmNwcAorKysg
Yi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL3dlYmF1ZGlvL0F1ZGlvQ29udGV4dC5jcHAKQEAgLTIz
MSw3ICsyMzEsNyBAQCB2b2lkIEF1ZGlvQ29udGV4dDo6Y2xlYXIoKQogewogICAgIC8vIFdlIGhh
dmUgdG8gcmVsZWFzZSBvdXIgcmVmZXJlbmNlIHRvIHRoZSBkZXN0aW5hdGlvbiBub2RlIGJlZm9y
ZSB0aGUgY29udGV4dCB3aWxsIGV2ZXIgYmUgZGVsZXRlZCBzaW5jZSB0aGUgZGVzdGluYXRpb24g
bm9kZSBob2xkcyBhIHJlZmVyZW5jZSB0byB0aGUgY29udGV4dC4KICAgICBpZiAobV9kZXN0aW5h
dGlvbk5vZGUpCi0gICAgICAgIG1fZGVzdGluYXRpb25Ob2RlLmNsZWFyKCk7CisgICAgICAgIG1f
ZGVzdGluYXRpb25Ob2RlID0gbnVsbHB0cjsKIAogICAgIC8vIEF1ZGlvIHRocmVhZCBpcyBkZWFk
LiBOb2JvZHkgd2lsbCBzY2hlZHVsZSBub2RlIGRlbGV0aW9uIGFjdGlvbi4gTGV0J3MgZG8gaXQg
b3Vyc2VsdmVzLgogICAgIGRvIHsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMv
d2ViZGF0YWJhc2UvU1FMVHJhbnNhY3Rpb25CYWNrZW5kLmNwcCBiL1NvdXJjZS9XZWJDb3JlL01v
ZHVsZXMvd2ViZGF0YWJhc2UvU1FMVHJhbnNhY3Rpb25CYWNrZW5kLmNwcAppbmRleCBkYTI1NGI2
NTRmMjM1ZTVhMTgyZTRkN2Y4NGMzOWExNTVlNGU4MGQ2Li5kMzExMzgwZTQ0ODU4MWFkOWU0Mzdk
MjQ1ZWVhMjlmNmE5ZjljMDk2IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL3dl
YmRhdGFiYXNlL1NRTFRyYW5zYWN0aW9uQmFja2VuZC5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUv
TW9kdWxlcy93ZWJkYXRhYmFzZS9TUUxUcmFuc2FjdGlvbkJhY2tlbmQuY3BwCkBAIC04NDUsNyAr
ODQ1LDcgQEAgdm9pZCBTUUxUcmFuc2FjdGlvbkJhY2tlbmQ6OnJlbGVhc2VPcmlnaW5Mb2NrSWZO
ZWVkZWQoKQogewogICAgIGlmIChtX29yaWdpbkxvY2spIHsKICAgICAgICAgbV9vcmlnaW5Mb2Nr
LT51bmxvY2soKTsKLSAgICAgICAgbV9vcmlnaW5Mb2NrLmNsZWFyKCk7CisgICAgICAgIG1fb3Jp
Z2luTG9jayA9IG51bGxwdHI7CiAgICAgfQogfQogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29y
ZS9Nb2R1bGVzL3dlYnNvY2tldHMvV29ya2VyVGhyZWFkYWJsZVdlYlNvY2tldENoYW5uZWwuY3Bw
IGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy93ZWJzb2NrZXRzL1dvcmtlclRocmVhZGFibGVXZWJT
b2NrZXRDaGFubmVsLmNwcAppbmRleCBiY2JkYWY5NGM3MDExN2MzZDE0MzlhODQzZWE3Y2IwMzI4
YzJlZTg1Li4zNGI2NGQ3N2EwZjU4ZDhjNTdmYmMwODI2MmE5MjMzNTVhOGVkMWQ2IDEwMDY0NAot
LS0gYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL3dlYnNvY2tldHMvV29ya2VyVGhyZWFkYWJsZVdl
YlNvY2tldENoYW5uZWwuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvd2Vic29ja2V0
cy9Xb3JrZXJUaHJlYWRhYmxlV2ViU29ja2V0Q2hhbm5lbC5jcHAKQEAgLTEyNiw3ICsxMjYsNyBA
QCB2b2lkIFdvcmtlclRocmVhZGFibGVXZWJTb2NrZXRDaGFubmVsOjpmYWlsKGNvbnN0IFN0cmlu
ZyYgcmVhc29uKQogdm9pZCBXb3JrZXJUaHJlYWRhYmxlV2ViU29ja2V0Q2hhbm5lbDo6ZGlzY29u
bmVjdCgpCiB7CiAgICAgbV9icmlkZ2UtPmRpc2Nvbm5lY3QoKTsKLSAgICBtX2JyaWRnZS5jbGVh
cigpOworICAgIG1fYnJpZGdlID0gbnVsbHB0cjsKIH0KIAogdm9pZCBXb3JrZXJUaHJlYWRhYmxl
V2ViU29ja2V0Q2hhbm5lbDo6c3VzcGVuZCgpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9h
Y2Nlc3NpYmlsaXR5L2F0ay9BWE9iamVjdENhY2hlQXRrLmNwcCBiL1NvdXJjZS9XZWJDb3JlL2Fj
Y2Vzc2liaWxpdHkvYXRrL0FYT2JqZWN0Q2FjaGVBdGsuY3BwCmluZGV4IDJmMzVmNzQwOTc4ZTc4
MzU3NTIxNGM0OTVlNDNlYjQ1NWM5Mjc0YTQuLmJjMzg0MTE4MmFmYjA2NzEwOGExNjcyZTgxYTMy
OGE0ZGUyNGQ5MmQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2FjY2Vzc2liaWxpdHkvYXRr
L0FYT2JqZWN0Q2FjaGVBdGsuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2FjY2Vzc2liaWxpdHkv
YXRrL0FYT2JqZWN0Q2FjaGVBdGsuY3BwCkBAIC0xNTMsNyArMTUzLDcgQEAgc3RhdGljIHZvaWQg
bm90aWZ5Q2hpbGRyZW5TZWxlY3Rpb25DaGFuZ2UoQWNjZXNzaWJpbGl0eU9iamVjdCogb2JqZWN0
KQogCiAgICAgQWNjZXNzaWJpbGl0eU9iamVjdCogbGlzdE9iamVjdCA9IGdldExpc3RPYmplY3Qo
b2JqZWN0KTsKICAgICBpZiAoIWxpc3RPYmplY3QpIHsKLSAgICAgICAgb2xkTGlzdE9iamVjdC5n
ZXQoKSA9IDA7CisgICAgICAgIG9sZExpc3RPYmplY3QuZ2V0KCkgPSBudWxscHRyOwogICAgICAg
ICByZXR1cm47CiAgICAgfQogCkBAIC0xNjYsNyArMTY2LDcgQEAgc3RhdGljIHZvaWQgbm90aWZ5
Q2hpbGRyZW5TZWxlY3Rpb25DaGFuZ2UoQWNjZXNzaWJpbGl0eU9iamVjdCogb2JqZWN0KQogICAg
IC8vIGZ1cnRoZXIgY29tcGFyaXNvbnMgbWFrZSBzZW5zZS4gT3RoZXJ3aXNlLCBqdXN0IHJlc2V0
CiAgICAgLy8gb2xkRm9jdXNlZE9iamVjdCBzbyBpdCB3b24ndCBiZSB0YWtlbiBpbnRvIGFjY291
bnQuCiAgICAgaWYgKG9sZExpc3RPYmplY3QuZ2V0KCkgIT0gbGlzdE9iamVjdCkKLSAgICAgICAg
b2xkRm9jdXNlZE9iamVjdC5nZXQoKSA9IDA7CisgICAgICAgIG9sZEZvY3VzZWRPYmplY3QuZ2V0
KCkgPSBudWxscHRyOwogCiAgICAgQXRrT2JqZWN0KiBheEl0ZW0gPSBpdGVtID8gaXRlbS0+d3Jh
cHBlcigpIDogbnVsbHB0cjsKICAgICBBdGtPYmplY3QqIGF4T2xkRm9jdXNlZE9iamVjdCA9IG9s
ZEZvY3VzZWRPYmplY3QuZ2V0KCkgPyBvbGRGb2N1c2VkT2JqZWN0LmdldCgpLT53cmFwcGVyKCkg
OiBudWxscHRyOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvYmluZGluZ3MvanMvU2NyaXB0
Q29udHJvbGxlci5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9qcy9TY3JpcHRDb250cm9s
bGVyLmNwcAppbmRleCAzYWJkZDJiOWRiNWE2OWFhYzQxOGVhMTlkMjVhNDRmNWJmNTcwOGQzLi5j
NTE5OWNmZGY3OWJkZTQzY2U0ZTZmZjEwZDcwNTUxMGQ2NTQ3NTdkIDEwMDY0NAotLS0gYS9Tb3Vy
Y2UvV2ViQ29yZS9iaW5kaW5ncy9qcy9TY3JpcHRDb250cm9sbGVyLmNwcAorKysgYi9Tb3VyY2Uv
V2ViQ29yZS9iaW5kaW5ncy9qcy9TY3JpcHRDb250cm9sbGVyLmNwcApAQCAtMTAyLDcgKzEwMiw3
IEBAIFNjcmlwdENvbnRyb2xsZXI6On5TY3JpcHRDb250cm9sbGVyKCkKICAgICBpZiAobV9jYWNo
ZWFibGVCaW5kaW5nUm9vdE9iamVjdCkgewogICAgICAgICBKU0xvY2tIb2xkZXIgbG9jayhKU0RP
TVdpbmRvd0Jhc2U6OmNvbW1vblZNKCkpOwogICAgICAgICBtX2NhY2hlYWJsZUJpbmRpbmdSb290
T2JqZWN0LT5pbnZhbGlkYXRlKCk7Ci0gICAgICAgIG1fY2FjaGVhYmxlQmluZGluZ1Jvb3RPYmpl
Y3QgPSAwOworICAgICAgICBtX2NhY2hlYWJsZUJpbmRpbmdSb290T2JqZWN0ID0gbnVsbHB0cjsK
ICAgICB9CiAKICAgICAvLyBJdCdzIGxpa2VseSB0aGF0IGRlc3Ryb3lpbmcgbV93aW5kb3dTaGVs
bHMgd2lsbCBjcmVhdGUgYSBsb3Qgb2YgZ2FyYmFnZS4KQEAgLTQ4OSw3ICs0ODksNyBAQCB2b2lk
IFNjcmlwdENvbnRyb2xsZXI6OmNsZWFyU2NyaXB0T2JqZWN0cygpCiAKICAgICBpZiAobV9iaW5k
aW5nUm9vdE9iamVjdCkgewogICAgICAgICBtX2JpbmRpbmdSb290T2JqZWN0LT5pbnZhbGlkYXRl
KCk7Ci0gICAgICAgIG1fYmluZGluZ1Jvb3RPYmplY3QgPSAwOworICAgICAgICBtX2JpbmRpbmdS
b290T2JqZWN0ID0gbnVsbHB0cjsKICAgICB9CiAKICNpZiBFTkFCTEUoTkVUU0NBUEVfUExVR0lO
X0FQSSkKQEAgLTQ5OCw3ICs0OTgsNyBAQCB2b2lkIFNjcmlwdENvbnRyb2xsZXI6OmNsZWFyU2Ny
aXB0T2JqZWN0cygpCiAgICAgICAgIC8vIHNjcmlwdCBvYmplY3QgcHJvcGVybHkuCiAgICAgICAg
IC8vIFRoaXMgc2hvdWxkbid0IGNhdXNlIGFueSBwcm9ibGVtcyBmb3IgcGx1Z2lucyBzaW5jZSB0
aGV5IHNob3VsZCBoYXZlIGFscmVhZHkgYmVlbiBzdG9wcGVkIGFuZCBkZXN0cm95ZWQgYXQgdGhp
cyBwb2ludC4KICAgICAgICAgX05QTl9EZWFsbG9jYXRlT2JqZWN0KG1fd2luZG93U2NyaXB0TlBP
YmplY3QpOwotICAgICAgICBtX3dpbmRvd1NjcmlwdE5QT2JqZWN0ID0gMDsKKyAgICAgICAgbV93
aW5kb3dTY3JpcHROUE9iamVjdCA9IG51bGxwdHI7CiAgICAgfQogI2VuZGlmCiB9CmRpZmYgLS1n
aXQgYS9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9qcy9XZWJDb3JlSlNDbGllbnREYXRhLmggYi9T
b3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9qcy9XZWJDb3JlSlNDbGllbnREYXRhLmgKaW5kZXggNjU0
NTEzMzVkM2Q4YTkyMWY1ODE2MjJjMjllNDkwMDBiOWE2MzY2Yy4uNDMwMmQ2OGU1YzhjNmQ3ODdk
NDcyNjI0MTRiY2ViOThkMjJlMDE5ZSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvYmluZGlu
Z3MvanMvV2ViQ29yZUpTQ2xpZW50RGF0YS5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdz
L2pzL1dlYkNvcmVKU0NsaWVudERhdGEuaApAQCAtNDQsNyArNDQsNyBAQCBwdWJsaWM6CiAgICAg
ICAgIEFTU0VSVChtX3dvcmxkU2V0LmNvbnRhaW5zKG1fbm9ybWFsV29ybGQuZ2V0KCkpKTsKICAg
ICAgICAgQVNTRVJUKG1fd29ybGRTZXQuc2l6ZSgpID09IDEpOwogICAgICAgICBBU1NFUlQobV9u
b3JtYWxXb3JsZC0+aGFzT25lUmVmKCkpOwotICAgICAgICBtX25vcm1hbFdvcmxkLmNsZWFyKCk7
CisgICAgICAgIG1fbm9ybWFsV29ybGQgPSBudWxscHRyOwogICAgICAgICBBU1NFUlQobV93b3Js
ZFNldC5pc0VtcHR5KCkpOwogICAgIH0KIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvYmlu
ZGluZ3MvanMvV29ya2VyU2NyaXB0Q29udHJvbGxlci5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9iaW5k
aW5ncy9qcy9Xb3JrZXJTY3JpcHRDb250cm9sbGVyLmNwcAppbmRleCA5MGUwZmY1MTA4OGFhNjU0
OTNkZWVjZTVjOTRmOWEwZGMwMDdjZWNhLi4yOGM5ZWYwZjI3MDNmMzIzYzYxYzhmMjI0NTg5Y2M2
OWQ2ZGQ2YmU2IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9qcy9Xb3JrZXJT
Y3JpcHRDb250cm9sbGVyLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9qcy9Xb3Jr
ZXJTY3JpcHRDb250cm9sbGVyLmNwcApAQCAtNjIsNyArNjIsNyBAQCBXb3JrZXJTY3JpcHRDb250
cm9sbGVyOjp+V29ya2VyU2NyaXB0Q29udHJvbGxlcigpCiB7CiAgICAgSlNMb2NrSG9sZGVyIGxv
Y2sodm0oKSk7CiAgICAgbV93b3JrZXJHbG9iYWxTY29wZVdyYXBwZXIuY2xlYXIoKTsKLSAgICBt
X3ZtLmNsZWFyKCk7CisgICAgbV92bSA9IG51bGxwdHI7CiB9CiAKIHZvaWQgV29ya2VyU2NyaXB0
Q29udHJvbGxlcjo6aW5pdFNjcmlwdCgpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9icmlk
Z2UvcnVudGltZV9vYmplY3QuY3BwIGIvU291cmNlL1dlYkNvcmUvYnJpZGdlL3J1bnRpbWVfb2Jq
ZWN0LmNwcAppbmRleCA5MWYwN2JjNTM3Y2YwZjNmMjAzMGY1ZWQ0ZmVlYzYzMjcyNGViMjM4Li41
ZDBmYTRmODEyYTlhZGZiOGYyNmE5NzUxZTg5ZDZlYmRkZWZmZDYyIDEwMDY0NAotLS0gYS9Tb3Vy
Y2UvV2ViQ29yZS9icmlkZ2UvcnVudGltZV9vYmplY3QuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3Jl
L2JyaWRnZS9ydW50aW1lX29iamVjdC5jcHAKQEAgLTU5LDcgKzU5LDcgQEAgdm9pZCBSdW50aW1l
T2JqZWN0OjppbnZhbGlkYXRlKCkKICAgICBBU1NFUlQobV9pbnN0YW5jZSk7CiAgICAgaWYgKG1f
aW5zdGFuY2UpCiAgICAgICAgIG1faW5zdGFuY2UtPndpbGxJbnZhbGlkYXRlUnVudGltZU9iamVj
dCgpOwotICAgIG1faW5zdGFuY2UgPSAwOworICAgIG1faW5zdGFuY2UgPSBudWxscHRyOwogfQog
CiBFbmNvZGVkSlNWYWx1ZSBSdW50aW1lT2JqZWN0OjpmYWxsYmFja09iamVjdEdldHRlcihFeGVj
U3RhdGUqIGV4ZWMsIEpTT2JqZWN0KiBzbG90QmFzZSwgRW5jb2RlZEpTVmFsdWUsIFByb3BlcnR5
TmFtZSBwcm9wZXJ0eU5hbWUpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9jb250ZW50ZXh0
ZW5zaW9ucy9Db250ZW50RXh0ZW5zaW9uUGFyc2VyLmNwcCBiL1NvdXJjZS9XZWJDb3JlL2NvbnRl
bnRleHRlbnNpb25zL0NvbnRlbnRFeHRlbnNpb25QYXJzZXIuY3BwCmluZGV4IDAyMjY1MmIyZDY5
Zjg5MWNlYTczOTRhMTA5ZDdmYmRmNTAxMmFiMjUuLjdiZjU2ZTdkNGIyZTY3ODZjMzNmN2U4OTUy
ZmM4NTQ3Mjg4YjVmMmIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2NvbnRlbnRleHRlbnNp
b25zL0NvbnRlbnRFeHRlbnNpb25QYXJzZXIuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2NvbnRl
bnRleHRlbnNpb25zL0NvbnRlbnRFeHRlbnNpb25QYXJzZXIuY3BwCkBAIC0yNzcsNyArMjc3LDcg
QEAgc3RkOjplcnJvcl9jb2RlIHBhcnNlUnVsZUxpc3QoY29uc3QgU3RyaW5nJiBydWxlcywgVmVj
dG9yPENvbnRlbnRFeHRlbnNpb25SdWxlPiYKICAgICBFeGVjU3RhdGUqIGV4ZWMgPSBnbG9iYWxP
YmplY3QtPmdsb2JhbEV4ZWMoKTsKICAgICBhdXRvIGVycm9yID0gbG9hZEVuY29kZWRSdWxlcygq
ZXhlYywgcnVsZXMsIHJ1bGVMaXN0KTsKIAotICAgIHZtLmNsZWFyKCk7CisgICAgdm0gPSBudWxs
cHRyOwogCiAgICAgaWYgKGVycm9yKQogICAgICAgICByZXR1cm4gZXJyb3I7CmRpZmYgLS1naXQg
YS9Tb3VyY2UvV2ViQ29yZS9jc3MvQ1NTUGFyc2VyLmNwcCBiL1NvdXJjZS9XZWJDb3JlL2Nzcy9D
U1NQYXJzZXIuY3BwCmluZGV4IDVlOGYwNWNlMDgxNmU3MTYwZTUzZTQ0M2EwYjEzZTQ0Yjg0MmY1
NjcuLjljYzMwOGI0ZjgzYTA5MDlmZDMzYWQzMTA2ZjhmOTZjZDRlNTA3YTEgMTAwNjQ0Ci0tLSBh
L1NvdXJjZS9XZWJDb3JlL2Nzcy9DU1NQYXJzZXIuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2Nz
cy9DU1NQYXJzZXIuY3BwCkBAIC00NTAyLDE1ICs0NTAyLDE1IEBAIHZvaWQgQ1NTUGFyc2VyOjpw
YXJzZUZpbGxQb3NpdGlvbihDU1NQYXJzZXJWYWx1ZUxpc3QmIHZhbHVlTGlzdCwgUmVmUHRyPENT
U1ZhbHVlCiAgICAgaWYgKHZhbHVlMikKICAgICAgICAgdmFsdWVMaXN0Lm5leHQoKTsKICAgICBl
bHNlIHsKLSAgICAgICAgdmFsdWUxLmNsZWFyKCk7CisgICAgICAgIHZhbHVlMSA9IG51bGxwdHI7
CiAgICAgICAgIHJldHVybjsKICAgICB9CiAKICAgICBSZWZQdHI8Q1NTUHJpbWl0aXZlVmFsdWU+
IHBhcnNlZFZhbHVlMSA9IGRvd25jYXN0PENTU1ByaW1pdGl2ZVZhbHVlPih2YWx1ZTEuZ2V0KCkp
OwogICAgIFJlZlB0cjxDU1NQcmltaXRpdmVWYWx1ZT4gcGFyc2VkVmFsdWUyID0gZG93bmNhc3Q8
Q1NTUHJpbWl0aXZlVmFsdWU+KHZhbHVlMi5nZXQoKSk7CiAKLSAgICB2YWx1ZTEuY2xlYXIoKTsK
LSAgICB2YWx1ZTIuY2xlYXIoKTsKKyAgICB2YWx1ZTEgPSBudWxscHRyOworICAgIHZhbHVlMiA9
IG51bGxwdHI7CiAKICAgICAvLyBQZXIgQ1NTMyBzeW50YXgsIDxwb3NpdGlvbj4gY2FuJ3QgaGF2
ZSAnY2VudGVyJyBhcyBpdHMgc2Vjb25kIGtleXdvcmQgYXMgd2UgaGF2ZSBtb3JlIGFyZ3VtZW50
cyB0byBmb2xsb3cuCiAgICAgaWYgKHBhcnNlZFZhbHVlMi0+Z2V0VmFsdWVJRCgpID09IENTU1Zh
bHVlQ2VudGVyKQpAQCAtNDU0OSw3ICs0NTQ5LDcgQEAgdm9pZCBDU1NQYXJzZXI6OnBhcnNlMlZh
bHVlc0ZpbGxQb3NpdGlvbihDU1NQYXJzZXJWYWx1ZUxpc3QmIHZhbHVlTGlzdCwgUmVmUHRyPEMK
ICAgICAgICAgICAgIHZhbHVlTGlzdC5uZXh0KCk7CiAgICAgICAgIGVsc2UgewogICAgICAgICAg
ICAgaWYgKCFpblNob3J0aGFuZCgpKSB7Ci0gICAgICAgICAgICAgICAgdmFsdWUxLmNsZWFyKCk7
CisgICAgICAgICAgICAgICAgdmFsdWUxID0gbnVsbHB0cjsKICAgICAgICAgICAgICAgICByZXR1
cm47CiAgICAgICAgICAgICB9CiAgICAgICAgIH0KQEAgLTc1ODcsOCArNzU4Nyw4IEBAIHN0cnVj
dCBTaGFkb3dQYXJzZUNvbnRleHQgewogICAgICAgICB9CiAKICAgICAgICAgLy8gTm93IHJlc2V0
IGZvciB0aGUgbmV4dCBzaGFkb3cgdmFsdWUuCi0gICAgICAgIHggPSAwOwotICAgICAgICB5ID0g
MDsKKyAgICAgICAgeCA9IG51bGxwdHI7CisgICAgICAgIHkgPSBudWxscHRyOwogICAgICAgICBi
bHVyID0gbnVsbHB0cjsKICAgICAgICAgc3ByZWFkID0gbnVsbHB0cjsKICAgICAgICAgc3R5bGUg
PSBudWxscHRyOwpAQCAtMTIxODQsNyArMTIxODQsNyBAQCBQYXNzUmVmUHRyPENTU1J1bGVTb3Vy
Y2VEYXRhPiBDU1NQYXJzZXI6OnBvcFJ1bGVEYXRhKCkKICAgICAgICAgcmV0dXJuIG51bGxwdHI7
CiAKICAgICBBU1NFUlQoIW1fY3VycmVudFJ1bGVEYXRhU3RhY2stPmlzRW1wdHkoKSk7Ci0gICAg
bV9jdXJyZW50UnVsZURhdGEuY2xlYXIoKTsKKyAgICBtX2N1cnJlbnRSdWxlRGF0YSA9IG51bGxw
dHI7CiAgICAgUmVmUHRyPENTU1J1bGVTb3VyY2VEYXRhPiBkYXRhID0gbV9jdXJyZW50UnVsZURh
dGFTdGFjay0+bGFzdCgpOwogICAgIG1fY3VycmVudFJ1bGVEYXRhU3RhY2stPnJlbW92ZUxhc3Qo
KTsKICAgICByZXR1cm4gZGF0YS5yZWxlYXNlKCk7CkBAIC0xMjYwNSw3ICsxMjYwNSw3IEBAIHZv
aWQgQ1NTUGFyc2VyOjptYXJrUnVsZUJvZHlTdGFydCgpCiB7CiAgICAgaWYgKCFpc0V4dHJhY3Rp
bmdTb3VyY2VEYXRhKCkpCiAgICAgICAgIHJldHVybjsKLSAgICBtX2N1cnJlbnRSdWxlRGF0YS5j
bGVhcigpOworICAgIG1fY3VycmVudFJ1bGVEYXRhID0gbnVsbHB0cjsKICAgICB1bnNpZ25lZCBv
ZmZzZXQgPSB0b2tlblN0YXJ0T2Zmc2V0KCk7CiAgICAgaWYgKHRva2VuU3RhcnRDaGFyKCkgPT0g
J3snKQogICAgICAgICArK29mZnNldDsgLy8gU2tpcCB0aGUgcnVsZSBib2R5IG9wZW5pbmcgYnJh
Y2UuCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9jc3MvQ1NTVmFsdWVQb29sLmNwcCBiL1Nv
dXJjZS9XZWJDb3JlL2Nzcy9DU1NWYWx1ZVBvb2wuY3BwCmluZGV4IDFmNDEzMTE1YTM2ZDBmNDk0
M2NiNTM3YTk5NDY4OWRkYzg2ZmQ5ZDEuLmFlM2UwZmQ0YWViNjBkNmRjODg2ZGM5MWI5YjAwNGM1
ZjVjNDkxZGEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2Nzcy9DU1NWYWx1ZVBvb2wuY3Bw
CisrKyBiL1NvdXJjZS9XZWJDb3JlL2Nzcy9DU1NWYWx1ZVBvb2wuY3BwCkBAIC0xNTMsMTIgKzE1
MywxMiBAQCB2b2lkIENTU1ZhbHVlUG9vbDo6ZHJhaW4oKQogICAgIG1fZm9udEZhbWlseVZhbHVl
Q2FjaGUuY2xlYXIoKTsKIAogICAgIGZvciAoaW50IGkgPSAwOyBpIDwgbnVtQ1NTVmFsdWVLZXl3
b3JkczsgKytpKQotICAgICAgICBtX2lkZW50aWZpZXJWYWx1ZUNhY2hlW2ldID0gMDsKKyAgICAg
ICAgbV9pZGVudGlmaWVyVmFsdWVDYWNoZVtpXSA9IG51bGxwdHI7CiAKICAgICBmb3IgKGludCBp
ID0gMDsgaSA8IG1heGltdW1DYWNoZWFibGVJbnRlZ2VyVmFsdWU7ICsraSkgewotICAgICAgICBt
X3BpeGVsVmFsdWVDYWNoZVtpXSA9IDA7Ci0gICAgICAgIG1fcGVyY2VudFZhbHVlQ2FjaGVbaV0g
PSAwOwotICAgICAgICBtX251bWJlclZhbHVlQ2FjaGVbaV0gPSAwOworICAgICAgICBtX3BpeGVs
VmFsdWVDYWNoZVtpXSA9IG51bGxwdHI7CisgICAgICAgIG1fcGVyY2VudFZhbHVlQ2FjaGVbaV0g
PSBudWxscHRyOworICAgICAgICBtX251bWJlclZhbHVlQ2FjaGVbaV0gPSBudWxscHRyOwogICAg
IH0KIH0KIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvY3NzL1N0eWxlUHJvcGVydGllcy5j
cHAgYi9Tb3VyY2UvV2ViQ29yZS9jc3MvU3R5bGVQcm9wZXJ0aWVzLmNwcAppbmRleCBiOTA5MDhk
MzFkOGUxZGJmNmE1OTRkMDQ3Nzk4OTJkZDJhYTdhMDVjLi5kZWRkMDcwMDdhZTVlOTVlM2E0ZTQ4
ODQyMWU4OGE1YWVkMzdkMzY0IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9jc3MvU3R5bGVQ
cm9wZXJ0aWVzLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9jc3MvU3R5bGVQcm9wZXJ0aWVzLmNw
cApAQCAtMzk3LDkgKzM5Nyw5IEBAIFN0cmluZyBTdHlsZVByb3BlcnRpZXM6OmdldExheWVyZWRT
aG9ydGhhbmRWYWx1ZShjb25zdCBTdHlsZVByb3BlcnR5U2hvcnRoYW5kJiBzCiAgICAgICAgICAg
ICAgICAgICAgIC8vIENvbG9yIG9ubHkgYmVsb25ncyBpbiB0aGUgbGFzdCBsYXllci4KICAgICAg
ICAgICAgICAgICAgICAgaWYgKHNob3J0aGFuZC5wcm9wZXJ0aWVzKClbal0gPT0gQ1NTUHJvcGVy
dHlCYWNrZ3JvdW5kQ29sb3IpIHsKICAgICAgICAgICAgICAgICAgICAgICAgIGlmIChpICE9IG51
bUxheWVycyAtIDEpCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgdmFsdWUgPSAwOworICAg
ICAgICAgICAgICAgICAgICAgICAgICAgIHZhbHVlID0gbnVsbHB0cjsKICAgICAgICAgICAgICAg
ICAgICAgfSBlbHNlIGlmIChpKSAvLyBPdGhlciBzaW5nbGV0b25zIG9ubHkgYmVsb25nIGluIHRo
ZSBmaXJzdCBsYXllci4KLSAgICAgICAgICAgICAgICAgICAgICAgIHZhbHVlID0gMDsKKyAgICAg
ICAgICAgICAgICAgICAgICAgIHZhbHVlID0gbnVsbHB0cjsKICAgICAgICAgICAgICAgICB9CiAg
ICAgICAgICAgICB9CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2Nzcy9WaWV3cG9ydFN0
eWxlUmVzb2x2ZXIuY3BwIGIvU291cmNlL1dlYkNvcmUvY3NzL1ZpZXdwb3J0U3R5bGVSZXNvbHZl
ci5jcHAKaW5kZXggZjg5ZWZmMDA4NjNhYzg5ZGI3NzhkYjMyM2ZlNzg1MDE1NjZhZGYwOS4uZGJi
NmNjNGRmNDQwNDE1YTRiYzQwZTBjOWUwZGFhNmMxMmE1NjliYSAxMDA2NDQKLS0tIGEvU291cmNl
L1dlYkNvcmUvY3NzL1ZpZXdwb3J0U3R5bGVSZXNvbHZlci5jcHAKKysrIGIvU291cmNlL1dlYkNv
cmUvY3NzL1ZpZXdwb3J0U3R5bGVSZXNvbHZlci5jcHAKQEAgLTcxLDcgKzcxLDcgQEAgdm9pZCBW
aWV3cG9ydFN0eWxlUmVzb2x2ZXI6OmFkZFZpZXdwb3J0UnVsZShTdHlsZVJ1bGVWaWV3cG9ydCog
dmlld3BvcnRSdWxlKQogCiB2b2lkIFZpZXdwb3J0U3R5bGVSZXNvbHZlcjo6Y2xlYXJEb2N1bWVu
dCgpCiB7Ci0gICAgbV9kb2N1bWVudCA9IDA7CisgICAgbV9kb2N1bWVudCA9IG51bGxwdHI7CiB9
CiAKIHZvaWQgVmlld3BvcnRTdHlsZVJlc29sdmVyOjpyZXNvbHZlKCkKQEAgLTk0LDcgKzk0LDcg
QEAgdm9pZCBWaWV3cG9ydFN0eWxlUmVzb2x2ZXI6OnJlc29sdmUoKQogICAgIG1fZG9jdW1lbnQt
PnNldFZpZXdwb3J0QXJndW1lbnRzKGFyZ3VtZW50cyk7CiAgICAgbV9kb2N1bWVudC0+dXBkYXRl
Vmlld3BvcnRBcmd1bWVudHMoKTsKIAotICAgIG1fcHJvcGVydHlTZXQgPSAwOworICAgIG1fcHJv
cGVydHlTZXQgPSBudWxscHRyOwogfQogCiBmbG9hdCBWaWV3cG9ydFN0eWxlUmVzb2x2ZXI6Omdl
dFZpZXdwb3J0QXJndW1lbnRWYWx1ZShDU1NQcm9wZXJ0eUlEIGlkKSBjb25zdApkaWZmIC0tZ2l0
IGEvU291cmNlL1dlYkNvcmUvZG9tL0RvY3VtZW50LmNwcCBiL1NvdXJjZS9XZWJDb3JlL2RvbS9E
b2N1bWVudC5jcHAKaW5kZXggZTUwMjY2OTYxMmQ3YzRjNTgyODM0YTRjMWIxOWJiMDM4OTRlZGFm
OS4uZjY0MGI3Y2ZiZGYxNDE4OWMxZTk4OGY0ZWJhZGI0ZGM1MjhhZTFiYSAxMDA2NDQKLS0tIGEv
U291cmNlL1dlYkNvcmUvZG9tL0RvY3VtZW50LmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9kb20v
RG9jdW1lbnQuY3BwCkBAIC0yNDI0LDcgKzI0MjQsNyBAQCB2b2lkIERvY3VtZW50OjpkZXRhY2hQ
YXJzZXIoKQogICAgIGlmICghbV9wYXJzZXIpCiAgICAgICAgIHJldHVybjsKICAgICBtX3BhcnNl
ci0+ZGV0YWNoKCk7Ci0gICAgbV9wYXJzZXIuY2xlYXIoKTsKKyAgICBtX3BhcnNlciA9IG51bGxw
dHI7CiB9CiAKIHZvaWQgRG9jdW1lbnQ6OmNhbmNlbFBhcnNpbmcoKQpAQCAtNTg4Miw3ICs1ODgy
LDcgQEAgdm9pZCBEb2N1bWVudDo6Y2xlYXJTY3JpcHRlZEFuaW1hdGlvbkNvbnRyb2xsZXIoKQog
ICAgIC8vIEZJWE1FOiBjb25zaWRlciB1c2luZyBBY3RpdmVET01PYmplY3QuCiAgICAgaWYgKG1f
c2NyaXB0ZWRBbmltYXRpb25Db250cm9sbGVyKQogICAgICAgICBtX3NjcmlwdGVkQW5pbWF0aW9u
Q29udHJvbGxlci0+Y2xlYXJEb2N1bWVudFBvaW50ZXIoKTsKLSAgICBtX3NjcmlwdGVkQW5pbWF0
aW9uQ29udHJvbGxlci5jbGVhcigpOworICAgIG1fc2NyaXB0ZWRBbmltYXRpb25Db250cm9sbGVy
ID0gbnVsbHB0cjsKIH0KICNlbmRpZgogICAgIApAQCAtNjMwMCw3ICs2MzAwLDcgQEAgdm9pZCBE
b2N1bWVudDo6dXBkYXRlSG92ZXJBY3RpdmVTdGF0ZShjb25zdCBIaXRUZXN0UmVxdWVzdCYgcmVx
dWVzdCwgRWxlbWVudCogaW4KICAgICAgICAgICAgIGN1cnItPnNldEFjdGl2ZShmYWxzZSk7CiAg
ICAgICAgICAgICBtX3VzZXJBY3Rpb25FbGVtZW50cy5zZXRJbkFjdGl2ZUNoYWluKGN1cnIsIGZh
bHNlKTsKICAgICAgICAgfQotICAgICAgICBtX2FjdGl2ZUVsZW1lbnQuY2xlYXIoKTsKKyAgICAg
ICAgbV9hY3RpdmVFbGVtZW50ID0gbnVsbHB0cjsKICAgICB9IGVsc2UgewogICAgICAgICBFbGVt
ZW50KiBuZXdBY3RpdmVFbGVtZW50ID0gaW5uZXJFbGVtZW50SW5Eb2N1bWVudDsKICAgICAgICAg
aWYgKCFvbGRBY3RpdmVFbGVtZW50ICYmIG5ld0FjdGl2ZUVsZW1lbnQgJiYgcmVxdWVzdC5hY3Rp
dmUoKSAmJiAhcmVxdWVzdC50b3VjaE1vdmUoKSkgewpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNv
cmUvZG9tL0RvY3VtZW50TWFya2VyLmggYi9Tb3VyY2UvV2ViQ29yZS9kb20vRG9jdW1lbnRNYXJr
ZXIuaAppbmRleCA0Nzk0OWZlODBiZGQ5YjExZTY4ZGFlNjI1NmVhMmIzMzA2ZmJiNDYzLi5lYzUy
NDg5NDBjMTY3ZWQxYzZjYTAyYjMxZGM0ZTQ3Mzc5YTU1NDE5IDEwMDY0NAotLS0gYS9Tb3VyY2Uv
V2ViQ29yZS9kb20vRG9jdW1lbnRNYXJrZXIuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9kb20vRG9j
dW1lbnRNYXJrZXIuaApAQCAtMTMxLDcgKzEzMSw3IEBAIHB1YmxpYzoKICAgICBEb2N1bWVudE1h
cmtlckRldGFpbHMqIGRldGFpbHMoKSBjb25zdDsKIAogICAgIHZvaWQgc2V0QWN0aXZlTWF0Y2go
Ym9vbCk7Ci0gICAgdm9pZCBjbGVhckRldGFpbHMoKSB7IG1fZGV0YWlscy5jbGVhcigpOyB9Cisg
ICAgdm9pZCBjbGVhckRldGFpbHMoKSB7IG1fZGV0YWlscyA9IG51bGxwdHI7IH0KIAogICAgIC8v
IE9mZnNldCBtb2RpZmljYXRpb25zIGFyZSBkb25lIGJ5IERvY3VtZW50TWFya2VyQ29udHJvbGxl
ci4KICAgICAvLyBPdGhlciBjbGFzc2VzIHNob3VsZCBub3QgY2FsbCBmb2xsb3dpbmcgc2V0dGVy
cy4KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2RvbS9Eb2N1bWVudFN0eWxlU2hlZXRDb2xs
ZWN0aW9uLmNwcCBiL1NvdXJjZS9XZWJDb3JlL2RvbS9Eb2N1bWVudFN0eWxlU2hlZXRDb2xsZWN0
aW9uLmNwcAppbmRleCAxY2JiZTg1MTU1MjVlMGExNTMyYzIyODM2ZjBlN2IzYWEzYmVkZWJhLi4z
MjJhYzg0YmQzMWI2ZWMyZDAzMmQxOWJmYzJhY2JmMzkzM2ZiNGE0IDEwMDY0NAotLS0gYS9Tb3Vy
Y2UvV2ViQ29yZS9kb20vRG9jdW1lbnRTdHlsZVNoZWV0Q29sbGVjdGlvbi5jcHAKKysrIGIvU291
cmNlL1dlYkNvcmUvZG9tL0RvY3VtZW50U3R5bGVTaGVldENvbGxlY3Rpb24uY3BwCkBAIC0xMDQs
NyArMTA0LDcgQEAgQ1NTU3R5bGVTaGVldCogRG9jdW1lbnRTdHlsZVNoZWV0Q29sbGVjdGlvbjo6
cGFnZVVzZXJTaGVldCgpCiB2b2lkIERvY3VtZW50U3R5bGVTaGVldENvbGxlY3Rpb246OmNsZWFy
UGFnZVVzZXJTaGVldCgpCiB7CiAgICAgaWYgKG1fcGFnZVVzZXJTaGVldCkgewotICAgICAgICBt
X3BhZ2VVc2VyU2hlZXQgPSAwOworICAgICAgICBtX3BhZ2VVc2VyU2hlZXQgPSBudWxscHRyOwog
ICAgICAgICBtX2RvY3VtZW50LnN0eWxlUmVzb2x2ZXJDaGFuZ2VkKERlZmVyUmVjYWxjU3R5bGUp
OwogICAgIH0KIH0KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2RvbS9FbGVtZW50LmNwcCBi
L1NvdXJjZS9XZWJDb3JlL2RvbS9FbGVtZW50LmNwcAppbmRleCBiZTg4NGViNTcxYTQwMmZiYjg3
YjFlZGFmYzJkNWI0MzAyNGY4Mzk4Li42YzhjOWUxNzBiYzllYjYxYmM1N2IwMjAwMDk5OTBmYjMy
OGIzMjk0IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9kb20vRWxlbWVudC5jcHAKKysrIGIv
U291cmNlL1dlYkNvcmUvZG9tL0VsZW1lbnQuY3BwCkBAIC0zMjA3LDcgKzMyMDcsNyBAQCB2b2lk
IEVsZW1lbnQ6OmNsb25lQXR0cmlidXRlc0Zyb21FbGVtZW50KGNvbnN0IEVsZW1lbnQmIG90aGVy
KQogCiAgICAgb3RoZXIuc3luY2hyb25pemVBbGxBdHRyaWJ1dGVzKCk7CiAgICAgaWYgKCFvdGhl
ci5tX2VsZW1lbnREYXRhKSB7Ci0gICAgICAgIG1fZWxlbWVudERhdGEuY2xlYXIoKTsKKyAgICAg
ICAgbV9lbGVtZW50RGF0YSA9IG51bGxwdHI7CiAgICAgICAgIHJldHVybjsKICAgICB9CiAKZGlm
ZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2RvbS9NdXRhdGlvbk9ic2VydmVyUmVnaXN0cmF0aW9u
LmNwcCBiL1NvdXJjZS9XZWJDb3JlL2RvbS9NdXRhdGlvbk9ic2VydmVyUmVnaXN0cmF0aW9uLmNw
cAppbmRleCA0NGU4ZjcwZmNiNmM0ODRjYmIwMmE3OTgzN2EzMzI1YzIxNzNmZjE0Li43MGEzMWRl
Y2FjMzVmMWRlYWJmODhkMGU4YTg4NWZiN2ZhODM0MTNkIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2Vi
Q29yZS9kb20vTXV0YXRpb25PYnNlcnZlclJlZ2lzdHJhdGlvbi5jcHAKKysrIGIvU291cmNlL1dl
YkNvcmUvZG9tL011dGF0aW9uT2JzZXJ2ZXJSZWdpc3RyYXRpb24uY3BwCkBAIC04OSw3ICs4OSw3
IEBAIHZvaWQgTXV0YXRpb25PYnNlcnZlclJlZ2lzdHJhdGlvbjo6Y2xlYXJUcmFuc2llbnRSZWdp
c3RyYXRpb25zKCkKICAgICBtX3RyYW5zaWVudFJlZ2lzdHJhdGlvbk5vZGVzID0gbnVsbHB0cjsK
IAogICAgIEFTU0VSVChtX3JlZ2lzdHJhdGlvbk5vZGVLZWVwQWxpdmUpOwotICAgIG1fcmVnaXN0
cmF0aW9uTm9kZUtlZXBBbGl2ZSA9IDA7IC8vIEJhbGFuY2VkIGluIG9ic2VydmVTdWJ0cmVlTm9k
ZVdpbGxEZXRhY2guCisgICAgbV9yZWdpc3RyYXRpb25Ob2RlS2VlcEFsaXZlID0gbnVsbHB0cjsg
Ly8gQmFsYW5jZWQgaW4gb2JzZXJ2ZVN1YnRyZWVOb2RlV2lsbERldGFjaC4KIH0KIAogdm9pZCBN
dXRhdGlvbk9ic2VydmVyUmVnaXN0cmF0aW9uOjp1bnJlZ2lzdGVyQW5kRGVsZXRlKE11dGF0aW9u
T2JzZXJ2ZXJSZWdpc3RyYXRpb24qIHJlZ2lzdHJ5KQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNv
cmUvZG9tL05vZGVJdGVyYXRvci5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9kb20vTm9kZUl0ZXJhdG9y
LmNwcAppbmRleCA1OGIyYjlmNjRjNzZlN2VjNjhhNzRmY2U2ZWVjNDU3NzY4YzVmZmEzLi42MWFl
MjhmNmY4ZTk4OTdjNGVhNjAxYjM1M2NkYTA5MWY0MjE0Y2UyIDEwMDY0NAotLS0gYS9Tb3VyY2Uv
V2ViQ29yZS9kb20vTm9kZUl0ZXJhdG9yLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9kb20vTm9k
ZUl0ZXJhdG9yLmNwcApAQCAtNDUsNyArNDUsNyBAQCBOb2RlSXRlcmF0b3I6Ok5vZGVQb2ludGVy
OjpOb2RlUG9pbnRlcihQYXNzUmVmUHRyPE5vZGU+IG4sIGJvb2wgYikKIAogdm9pZCBOb2RlSXRl
cmF0b3I6Ok5vZGVQb2ludGVyOjpjbGVhcigpCiB7Ci0gICAgbm9kZS5jbGVhcigpOworICAgIG5v
ZGUgPSBudWxscHRyOwogfQogCiBib29sIE5vZGVJdGVyYXRvcjo6Tm9kZVBvaW50ZXI6Om1vdmVU
b05leHQoTm9kZSogcm9vdCkKQEAgLTE1MSw3ICsxNTEsNyBAQCB2b2lkIE5vZGVJdGVyYXRvcjo6
ZGV0YWNoKCkKIHsKICAgICByb290KCktPmRvY3VtZW50KCkuZGV0YWNoTm9kZUl0ZXJhdG9yKHRo
aXMpOwogICAgIG1fZGV0YWNoZWQgPSB0cnVlOwotICAgIG1fcmVmZXJlbmNlTm9kZS5ub2RlLmNs
ZWFyKCk7CisgICAgbV9yZWZlcmVuY2VOb2RlLm5vZGUgPSBudWxscHRyOwogfQogCiB2b2lkIE5v
ZGVJdGVyYXRvcjo6bm9kZVdpbGxCZVJlbW92ZWQoTm9kZSYgcmVtb3ZlZE5vZGUpCmRpZmYgLS1n
aXQgYS9Tb3VyY2UvV2ViQ29yZS9kb20vUG9zaXRpb24uaCBiL1NvdXJjZS9XZWJDb3JlL2RvbS9Q
b3NpdGlvbi5oCmluZGV4IDBmMzE2ZGE4NTg4YTUxOTI5ZmQ0NzUxYzlmY2IzM2I5OTE2NzMzZWIu
LjYwM2U4OGYzZWMxYjFhYzNhYTkyMjkwNWMwMTM4MTIzODQyMGRkZWIgMTAwNjQ0Ci0tLSBhL1Nv
dXJjZS9XZWJDb3JlL2RvbS9Qb3NpdGlvbi5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL2RvbS9Qb3Np
dGlvbi5oCkBAIC05Miw3ICs5Miw3IEBAIHB1YmxpYzoKIAogICAgIEFuY2hvclR5cGUgYW5jaG9y
VHlwZSgpIGNvbnN0IHsgcmV0dXJuIHN0YXRpY19jYXN0PEFuY2hvclR5cGU+KG1fYW5jaG9yVHlw
ZSk7IH0KIAotICAgIHZvaWQgY2xlYXIoKSB7IG1fYW5jaG9yTm9kZS5jbGVhcigpOyBtX29mZnNl
dCA9IDA7IG1fYW5jaG9yVHlwZSA9IFBvc2l0aW9uSXNPZmZzZXRJbkFuY2hvcjsgbV9pc0xlZ2Fj
eUVkaXRpbmdQb3NpdGlvbiA9IGZhbHNlOyB9CisgICAgdm9pZCBjbGVhcigpIHsgbV9hbmNob3JO
b2RlID0gbnVsbHB0cjsgbV9vZmZzZXQgPSAwOyBtX2FuY2hvclR5cGUgPSBQb3NpdGlvbklzT2Zm
c2V0SW5BbmNob3I7IG1faXNMZWdhY3lFZGl0aW5nUG9zaXRpb24gPSBmYWxzZTsgfQogCiAgICAg
Ly8gVGhlc2UgYXJlIGFsd2F5cyBET00gY29tcGxpYW50IHZhbHVlcy4gIEVkaXRpbmcgcG9zaXRp
b25zIGxpa2UgW2ltZywgMF0gKGFrYSBbaW1nLCBiZWZvcmVdKQogICAgIC8vIHdpbGwgcmV0dXJu
IGltZy0+cGFyZW50Tm9kZSgpIGFuZCBpbWctPmNvbXB1dGVOb2RlSW5kZXgoKSBmcm9tIHRoZXNl
IGZ1bmN0aW9ucy4KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2RvbS9Qcm9jZXNzaW5nSW5z
dHJ1Y3Rpb24uY3BwIGIvU291cmNlL1dlYkNvcmUvZG9tL1Byb2Nlc3NpbmdJbnN0cnVjdGlvbi5j
cHAKaW5kZXggM2VjYjY0NjM5Y2ZhYmE2MGE1ZDNiNjZlMmZhZGU1MGRkY2I3ZjFiMC4uYjM0M2Nh
M2EwMWFlOGVlZmRiNTk3ZTVkNGUyMmUyN2I5OTNmZWY5MCAxMDA2NDQKLS0tIGEvU291cmNlL1dl
YkNvcmUvZG9tL1Byb2Nlc3NpbmdJbnN0cnVjdGlvbi5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUv
ZG9tL1Byb2Nlc3NpbmdJbnN0cnVjdGlvbi5jcHAKQEAgLTI4MSw3ICsyODEsNyBAQCB2b2lkIFBy
b2Nlc3NpbmdJbnN0cnVjdGlvbjo6cmVtb3ZlZEZyb20oQ29udGFpbmVyTm9kZSYgaW5zZXJ0aW9u
UG9pbnQpCiAgICAgaWYgKG1fc2hlZXQpIHsKICAgICAgICAgQVNTRVJUKG1fc2hlZXQtPm93bmVy
Tm9kZSgpID09IHRoaXMpOwogICAgICAgICBtX3NoZWV0LT5jbGVhck93bmVyTm9kZSgpOwotICAg
ICAgICBtX3NoZWV0ID0gMDsKKyAgICAgICAgbV9zaGVldCA9IG51bGxwdHI7CiAgICAgfQogCiAg
ICAgLy8gSWYgd2UncmUgaW4gZG9jdW1lbnQgdGVhcmRvd24sIHRoZW4gd2UgZG9uJ3QgbmVlZCB0
byBkbyBhbnkgbm90aWZpY2F0aW9uIG9mIG91ciBzaGVldCdzIHJlbW92YWwuCmRpZmYgLS1naXQg
YS9Tb3VyY2UvV2ViQ29yZS9kb20vUmFuZ2VCb3VuZGFyeVBvaW50LmggYi9Tb3VyY2UvV2ViQ29y
ZS9kb20vUmFuZ2VCb3VuZGFyeVBvaW50LmgKaW5kZXggYjA0ZGMwOGI1NWJmMDIxY2NkZGZiMjZh
ZWU1ZDM4NGIxMTI2YWUwMy4uNWIxNGEzZGZjMWUyZTI5ZjE0NzliZjQ2YzljZThiYWQ3ZGJlZWIx
OSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvZG9tL1JhbmdlQm91bmRhcnlQb2ludC5oCisr
KyBiL1NvdXJjZS9XZWJDb3JlL2RvbS9SYW5nZUJvdW5kYXJ5UG9pbnQuaApAQCAtMTEyLDkgKzEx
Miw5IEBAIGlubGluZSBpbnQgUmFuZ2VCb3VuZGFyeVBvaW50OjpvZmZzZXQoKSBjb25zdAogCiBp
bmxpbmUgdm9pZCBSYW5nZUJvdW5kYXJ5UG9pbnQ6OmNsZWFyKCkKIHsKLSAgICBtX2NvbnRhaW5l
ck5vZGUuY2xlYXIoKTsKKyAgICBtX2NvbnRhaW5lck5vZGUgPSBudWxscHRyOwogICAgIG1fb2Zm
c2V0SW5Db250YWluZXIgPSAwOwotICAgIG1fY2hpbGRCZWZvcmVCb3VuZGFyeSA9IDA7CisgICAg
bV9jaGlsZEJlZm9yZUJvdW5kYXJ5ID0gbnVsbHB0cjsKIH0KIAogaW5saW5lIHZvaWQgUmFuZ2VC
b3VuZGFyeVBvaW50OjpzZXQoUGFzc1JlZlB0cjxOb2RlPiBjb250YWluZXIsIGludCBvZmZzZXQs
IE5vZGUqIGNoaWxkQmVmb3JlKQpAQCAtMTQ5LDcgKzE0OSw3IEBAIGlubGluZSB2b2lkIFJhbmdl
Qm91bmRhcnlQb2ludDo6c2V0VG9TdGFydE9mTm9kZShQYXNzUmVmUHRyPE5vZGU+IGNvbnRhaW5l
cikKICAgICBBU1NFUlQoY29udGFpbmVyKTsKICAgICBtX2NvbnRhaW5lck5vZGUgPSBjb250YWlu
ZXI7CiAgICAgbV9vZmZzZXRJbkNvbnRhaW5lciA9IDA7Ci0gICAgbV9jaGlsZEJlZm9yZUJvdW5k
YXJ5ID0gMDsKKyAgICBtX2NoaWxkQmVmb3JlQm91bmRhcnkgPSBudWxscHRyOwogfQogCiBpbmxp
bmUgdm9pZCBSYW5nZUJvdW5kYXJ5UG9pbnQ6OnNldFRvRW5kT2ZOb2RlKFBhc3NSZWZQdHI8Tm9k
ZT4gY29udGFpbmVyKQpAQCAtMTU4LDcgKzE1OCw3IEBAIGlubGluZSB2b2lkIFJhbmdlQm91bmRh
cnlQb2ludDo6c2V0VG9FbmRPZk5vZGUoUGFzc1JlZlB0cjxOb2RlPiBjb250YWluZXIpCiAgICAg
bV9jb250YWluZXJOb2RlID0gY29udGFpbmVyOwogICAgIGlmIChtX2NvbnRhaW5lck5vZGUtPm9m
ZnNldEluQ2hhcmFjdGVycygpKSB7CiAgICAgICAgIG1fb2Zmc2V0SW5Db250YWluZXIgPSBtX2Nv
bnRhaW5lck5vZGUtPm1heENoYXJhY3Rlck9mZnNldCgpOwotICAgICAgICBtX2NoaWxkQmVmb3Jl
Qm91bmRhcnkgPSAwOworICAgICAgICBtX2NoaWxkQmVmb3JlQm91bmRhcnkgPSBudWxscHRyOwog
ICAgIH0gZWxzZSB7CiAgICAgICAgIG1fY2hpbGRCZWZvcmVCb3VuZGFyeSA9IG1fY29udGFpbmVy
Tm9kZS0+bGFzdENoaWxkKCk7CiAgICAgICAgIG1fb2Zmc2V0SW5Db250YWluZXIgPSBtX2NoaWxk
QmVmb3JlQm91bmRhcnkgPyBpbnZhbGlkT2Zmc2V0IDogMDsKZGlmZiAtLWdpdCBhL1NvdXJjZS9X
ZWJDb3JlL2RvbS9TcGFjZVNwbGl0U3RyaW5nLmggYi9Tb3VyY2UvV2ViQ29yZS9kb20vU3BhY2VT
cGxpdFN0cmluZy5oCmluZGV4IGVmNTY4MDFhNzcxMWRmNWEyY2I1NTgxM2JlNTY3M2YxOTAzMjhl
NzMuLmY4NWI5NjQyMTJkMWRhOGU4MDJkMTY2MDg5NDZjMzc3YWUwYjc4NWQgMTAwNjQ0Ci0tLSBh
L1NvdXJjZS9XZWJDb3JlL2RvbS9TcGFjZVNwbGl0U3RyaW5nLmgKKysrIGIvU291cmNlL1dlYkNv
cmUvZG9tL1NwYWNlU3BsaXRTdHJpbmcuaApAQCAtMTA1LDcgKzEwNSw3IEBAIHB1YmxpYzoKICAg
ICBib29sIG9wZXJhdG9yIT0oY29uc3QgU3BhY2VTcGxpdFN0cmluZyYgb3RoZXIpIGNvbnN0IHsg
cmV0dXJuIG1fZGF0YSAhPSBvdGhlci5tX2RhdGE7IH0KIAogICAgIHZvaWQgc2V0KGNvbnN0IEF0
b21pY1N0cmluZyYsIGJvb2wgc2hvdWxkRm9sZENhc2UpOwotICAgIHZvaWQgY2xlYXIoKSB7IG1f
ZGF0YS5jbGVhcigpOyB9CisgICAgdm9pZCBjbGVhcigpIHsgbV9kYXRhID0gbnVsbHB0cjsgfQog
CiAgICAgYm9vbCBjb250YWlucyhjb25zdCBBdG9taWNTdHJpbmcmIHN0cmluZykgY29uc3QgeyBy
ZXR1cm4gbV9kYXRhICYmIG1fZGF0YS0+Y29udGFpbnMoc3RyaW5nKTsgfQogICAgIGJvb2wgY29u
dGFpbnNBbGwoY29uc3QgU3BhY2VTcGxpdFN0cmluZyYgbmFtZXMpIGNvbnN0IHsgcmV0dXJuICFu
YW1lcy5tX2RhdGEgfHwgKG1fZGF0YSAmJiBtX2RhdGEtPmNvbnRhaW5zQWxsKCpuYW1lcy5tX2Rh
dGEpKTsgfQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvZG9tL1N0eWxlZEVsZW1lbnQuY3Bw
IGIvU291cmNlL1dlYkNvcmUvZG9tL1N0eWxlZEVsZW1lbnQuY3BwCmluZGV4IDViMjY5NjZiNWMz
ODdiOWM4ODdmODAwNmUwZDI1MGE1OGY2OTNkMDkuLjBlYzBkN2Y1YTBlZWE5ZGNiMWU4ZTY1ZTU2
OWQ2MjBkYzJkMmNjMDQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2RvbS9TdHlsZWRFbGVt
ZW50LmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9kb20vU3R5bGVkRWxlbWVudC5jcHAKQEAgLTE4
NSw3ICsxODUsNyBAQCBpbmxpbmUgdm9pZCBTdHlsZWRFbGVtZW50OjpzZXRJbmxpbmVTdHlsZUZy
b21TdHJpbmcoY29uc3QgQXRvbWljU3RyaW5nJiBuZXdTdHlsZQogICAgIC8vIFdlIHJlY29uc3Ry
dWN0IHRoZSBwcm9wZXJ0eSBzZXQgaW5zdGVhZCBvZiBtdXRhdGluZyBpZiB0aGVyZSBpcyBubyBD
U1NPTSB3cmFwcGVyLgogICAgIC8vIFRoaXMgbWFrZXMgd3JhcHBlcmxlc3MgcHJvcGVydHkgc2V0
cyBpbW11dGFibGUgYW5kIHNvIGNhY2hlYWJsZS4KICAgICBpZiAoaW5saW5lU3R5bGUgJiYgIWlz
PE11dGFibGVTdHlsZVByb3BlcnRpZXM+KCppbmxpbmVTdHlsZSkpCi0gICAgICAgIGlubGluZVN0
eWxlLmNsZWFyKCk7CisgICAgICAgIGlubGluZVN0eWxlID0gbnVsbHB0cjsKIAogICAgIGlmICgh
aW5saW5lU3R5bGUpCiAgICAgICAgIGlubGluZVN0eWxlID0gQ1NTUGFyc2VyOjpwYXJzZUlubGlu
ZVN0eWxlRGVjbGFyYXRpb24obmV3U3R5bGVTdHJpbmcsIHRoaXMpOwpAQCAtMjAyLDcgKzIwMiw3
IEBAIHZvaWQgU3R5bGVkRWxlbWVudDo6c3R5bGVBdHRyaWJ1dGVDaGFuZ2VkKGNvbnN0IEF0b21p
Y1N0cmluZyYgbmV3U3R5bGVTdHJpbmcsIEF0CiAgICAgaWYgKG5ld1N0eWxlU3RyaW5nLmlzTnVs
bCgpKSB7CiAgICAgICAgIGlmIChQcm9wZXJ0eVNldENTU1N0eWxlRGVjbGFyYXRpb24qIGNzc29t
V3JhcHBlciA9IGlubGluZVN0eWxlQ1NTT01XcmFwcGVyKCkpCiAgICAgICAgICAgICBjc3NvbVdy
YXBwZXItPmNsZWFyUGFyZW50RWxlbWVudCgpOwotICAgICAgICBlbnN1cmVVbmlxdWVFbGVtZW50
RGF0YSgpLm1faW5saW5lU3R5bGUuY2xlYXIoKTsKKyAgICAgICAgZW5zdXJlVW5pcXVlRWxlbWVu
dERhdGEoKS5tX2lubGluZVN0eWxlID0gbnVsbHB0cjsKICAgICB9IGVsc2UgaWYgKHJlYXNvbiA9
PSBNb2RpZmllZEJ5Q2xvbmluZyB8fCBkb2N1bWVudCgpLmNvbnRlbnRTZWN1cml0eVBvbGljeSgp
LT5hbGxvd0lubGluZVN0eWxlKGRvY3VtZW50KCkudXJsKCksIHN0YXJ0TGluZU51bWJlcikpCiAg
ICAgICAgIHNldElubGluZVN0eWxlRnJvbVN0cmluZyhuZXdTdHlsZVN0cmluZyk7CiAKZGlmZiAt
LWdpdCBhL1NvdXJjZS9XZWJDb3JlL2RvbS9kZWZhdWx0L1BsYXRmb3JtTWVzc2FnZVBvcnRDaGFu
bmVsLmNwcCBiL1NvdXJjZS9XZWJDb3JlL2RvbS9kZWZhdWx0L1BsYXRmb3JtTWVzc2FnZVBvcnRD
aGFubmVsLmNwcAppbmRleCBjNjg2MTFmYzhmYzdiZWNmYWRmOGQ4NDgzYjE0ZmY5MDhjZjQ2MWZh
Li5jNDE3NDg2Mzc0OTE3MzY3MzNmN2MyOTFhNDZlNWE5ZDE3YjdkMjc2IDEwMDY0NAotLS0gYS9T
b3VyY2UvV2ViQ29yZS9kb20vZGVmYXVsdC9QbGF0Zm9ybU1lc3NhZ2VQb3J0Q2hhbm5lbC5jcHAK
KysrIGIvU291cmNlL1dlYkNvcmUvZG9tL2RlZmF1bHQvUGxhdGZvcm1NZXNzYWdlUG9ydENoYW5u
ZWwuY3BwCkBAIC0xODMsOSArMTgzLDkgQEAgdm9pZCBQbGF0Zm9ybU1lc3NhZ2VQb3J0Q2hhbm5l
bDo6Y2xvc2VJbnRlcm5hbCgpCiB7CiAgICAgTXV0ZXhMb2NrZXIgbG9jayhtX211dGV4KTsKICAg
ICAvLyBEaXNlbnRhbmdsZSBvdXJzZWx2ZXMgZnJvbSB0aGUgb3RoZXIgZW5kLiBXZSBzdGlsbCBt
YWludGFpbiBhIHJlZmVyZW5jZSB0byBvdXIgaW5jb21pbmcgcXVldWUsIHNpbmNlIHByZXZpb3Vz
bHktZXhpc3RpbmcgbWVzc2FnZXMgc2hvdWxkIHN0aWxsIGJlIGRlbGl2ZXJlZC4KLSAgICBtX3Jl
bW90ZVBvcnQgPSAwOwotICAgIG1fZW50YW5nbGVkQ2hhbm5lbCA9IDA7Ci0gICAgbV9vdXRnb2lu
Z1F1ZXVlID0gMDsKKyAgICBtX3JlbW90ZVBvcnQgPSBudWxscHRyOworICAgIG1fZW50YW5nbGVk
Q2hhbm5lbCA9IG51bGxwdHI7CisgICAgbV9vdXRnb2luZ1F1ZXVlID0gbnVsbHB0cjsKIH0KIAog
fSAvLyBuYW1lc3BhY2UgV2ViQ29yZQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvZWRpdGlu
Zy9BbHRlcm5hdGl2ZVRleHRDb250cm9sbGVyLmNwcCBiL1NvdXJjZS9XZWJDb3JlL2VkaXRpbmcv
QWx0ZXJuYXRpdmVUZXh0Q29udHJvbGxlci5jcHAKaW5kZXggZjViYzk0ODkxY2FmN2U3MDk3YTAz
ZTI3MjllNzI4ZjI2MzZmMDhiZC4uMjc1ZTQzMGViNzNjMTRjYTJjZmYzM2M2NTc3NjFlNDYxOWU1
ZWFlOSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvZWRpdGluZy9BbHRlcm5hdGl2ZVRleHRD
b250cm9sbGVyLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9lZGl0aW5nL0FsdGVybmF0aXZlVGV4
dENvbnRyb2xsZXIuY3BwCkBAIC0xNDcsNyArMTQ3LDcgQEAgdm9pZCBBbHRlcm5hdGl2ZVRleHRD
b250cm9sbGVyOjpzdGFydEFsdGVybmF0aXZlVGV4dFVJVGltZXIoQWx0ZXJuYXRpdmVUZXh0VHlw
ZQogCiAgICAgLy8gSWYgdHlwZSBpcyBQYW5lbFR5cGVSZXZlcnNpb24sIHRoZW4gdGhlIG5ldyBy
YW5nZSBoYXMgYmVlbiBzZXQuIFNvIHdlIHNob3VsZG4ndCBjbGVhciBpdC4KICAgICBpZiAodHlw
ZSA9PSBBbHRlcm5hdGl2ZVRleHRUeXBlQ29ycmVjdGlvbikKLSAgICAgICAgbV9hbHRlcm5hdGl2
ZVRleHRJbmZvLnJhbmdlV2l0aEFsdGVybmF0aXZlLmNsZWFyKCk7CisgICAgICAgIG1fYWx0ZXJu
YXRpdmVUZXh0SW5mby5yYW5nZVdpdGhBbHRlcm5hdGl2ZSA9IG51bGxwdHI7CiAgICAgbV9hbHRl
cm5hdGl2ZVRleHRJbmZvLnR5cGUgPSB0eXBlOwogICAgIG1fdGltZXIuc3RhcnRPbmVTaG90KGNv
cnJlY3Rpb25QYW5lbFRpbWVySW50ZXJ2YWwpOwogfQpAQCAtMTU1LDcgKzE1NSw3IEBAIHZvaWQg
QWx0ZXJuYXRpdmVUZXh0Q29udHJvbGxlcjo6c3RhcnRBbHRlcm5hdGl2ZVRleHRVSVRpbWVyKEFs
dGVybmF0aXZlVGV4dFR5cGUKIHZvaWQgQWx0ZXJuYXRpdmVUZXh0Q29udHJvbGxlcjo6c3RvcEFs
dGVybmF0aXZlVGV4dFVJVGltZXIoKQogewogICAgIG1fdGltZXIuc3RvcCgpOwotICAgIG1fYWx0
ZXJuYXRpdmVUZXh0SW5mby5yYW5nZVdpdGhBbHRlcm5hdGl2ZS5jbGVhcigpOworICAgIG1fYWx0
ZXJuYXRpdmVUZXh0SW5mby5yYW5nZVdpdGhBbHRlcm5hdGl2ZSA9IG51bGxwdHI7CiB9CiAKIHZv
aWQgQWx0ZXJuYXRpdmVUZXh0Q29udHJvbGxlcjo6c3RvcFBlbmRpbmdDb3JyZWN0aW9uKGNvbnN0
IFZpc2libGVTZWxlY3Rpb24mIG9sZFNlbGVjdGlvbikKQEAgLTE4Myw3ICsxODMsNyBAQCB2b2lk
IEFsdGVybmF0aXZlVGV4dENvbnRyb2xsZXI6OmFwcGx5UGVuZGluZ0NvcnJlY3Rpb24oY29uc3Qg
VmlzaWJsZVNlbGVjdGlvbiYgcwogICAgIGlmIChkb0FwcGx5Q29ycmVjdGlvbikKICAgICAgICAg
aGFuZGxlQWx0ZXJuYXRpdmVUZXh0VUlSZXN1bHQoZGlzbWlzc1Nvb24oUmVhc29uRm9yRGlzbWlz
c2luZ0FsdGVybmF0aXZlVGV4dEFjY2VwdGVkKSk7IAogICAgIGVsc2UKLSAgICAgICAgbV9hbHRl
cm5hdGl2ZVRleHRJbmZvLnJhbmdlV2l0aEFsdGVybmF0aXZlLmNsZWFyKCk7CisgICAgICAgIG1f
YWx0ZXJuYXRpdmVUZXh0SW5mby5yYW5nZVdpdGhBbHRlcm5hdGl2ZSA9IG51bGxwdHI7CiB9CiAK
IGJvb2wgQWx0ZXJuYXRpdmVUZXh0Q29udHJvbGxlcjo6aGFzUGVuZGluZ0NvcnJlY3Rpb24oKSBj
b25zdApAQCAtMzU5LDcgKzM1OSw3IEBAIHZvaWQgQWx0ZXJuYXRpdmVUZXh0Q29udHJvbGxlcjo6
dGltZXJGaXJlZCgpCiAgICAgICAgIFZlY3RvcjxTdHJpbmc+IHN1Z2dlc3Rpb25zOwogICAgICAg
ICB0ZXh0Q2hlY2tlcigpLT5nZXRHdWVzc2VzRm9yV29yZChtX2FsdGVybmF0aXZlVGV4dEluZm8u
b3JpZ2luYWxUZXh0LCBwYXJhZ3JhcGhUZXh0LCBzdWdnZXN0aW9ucyk7CiAgICAgICAgIGlmIChz
dWdnZXN0aW9ucy5pc0VtcHR5KCkpIHsKLSAgICAgICAgICAgIG1fYWx0ZXJuYXRpdmVUZXh0SW5m
by5yYW5nZVdpdGhBbHRlcm5hdGl2ZS5jbGVhcigpOworICAgICAgICAgICAgbV9hbHRlcm5hdGl2
ZVRleHRJbmZvLnJhbmdlV2l0aEFsdGVybmF0aXZlID0gbnVsbHB0cjsKICAgICAgICAgICAgIGJy
ZWFrOwogICAgICAgICB9CiAgICAgICAgIFN0cmluZyB0b3BTdWdnZXN0aW9uID0gc3VnZ2VzdGlv
bnMuZmlyc3QoKTsKQEAgLTQyMiw3ICs0MjIsNyBAQCB2b2lkIEFsdGVybmF0aXZlVGV4dENvbnRy
b2xsZXI6OmhhbmRsZUFsdGVybmF0aXZlVGV4dFVJUmVzdWx0KGNvbnN0IFN0cmluZyYgcmVzdQog
ICAgICAgICBicmVhazsKICAgICB9CiAKLSAgICBtX2FsdGVybmF0aXZlVGV4dEluZm8ucmFuZ2VX
aXRoQWx0ZXJuYXRpdmUuY2xlYXIoKTsKKyAgICBtX2FsdGVybmF0aXZlVGV4dEluZm8ucmFuZ2VX
aXRoQWx0ZXJuYXRpdmUgPSBudWxscHRyOwogfQogCiBib29sIEFsdGVybmF0aXZlVGV4dENvbnRy
b2xsZXI6OmlzQXV0b21hdGljU3BlbGxpbmdDb3JyZWN0aW9uRW5hYmxlZCgpCmRpZmYgLS1naXQg
YS9Tb3VyY2UvV2ViQ29yZS9lZGl0aW5nL0FwcGx5QmxvY2tFbGVtZW50Q29tbWFuZC5jcHAgYi9T
b3VyY2UvV2ViQ29yZS9lZGl0aW5nL0FwcGx5QmxvY2tFbGVtZW50Q29tbWFuZC5jcHAKaW5kZXgg
NDMzZTk1MzY2NGY3MDFkMTIxMjZmYjQwM2E2N2NiZmJhN2Y0ZjA4OC4uMjFhYmU3MWNjOGVkZDUw
ZjE2MzRmMDQzMzBhOGMxMmJjYzkxNjVlZSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvZWRp
dGluZy9BcHBseUJsb2NrRWxlbWVudENvbW1hbmQuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2Vk
aXRpbmcvQXBwbHlCbG9ja0VsZW1lbnRDb21tYW5kLmNwcApAQCAtMTQzLDcgKzE0Myw3IEBAIHZv
aWQgQXBwbHlCbG9ja0VsZW1lbnRDb21tYW5kOjpmb3JtYXRTZWxlY3Rpb24oY29uc3QgVmlzaWJs
ZVBvc2l0aW9uJiBzdGFydE9mU2VsCiAgICAgICAgIC8vIERvbid0IHB1dCB0aGUgbmV4dCBwYXJh
Z3JhcGggaW4gdGhlIGJsb2NrcXVvdGUgd2UganVzdCBjcmVhdGVkIGZvciB0aGlzIHBhcmFncmFw
aCB1bmxlc3MgCiAgICAgICAgIC8vIHRoZSBuZXh0IHBhcmFncmFwaCBpcyBpbiB0aGUgc2FtZSBj
ZWxsLgogICAgICAgICBpZiAoZW5jbG9zaW5nQ2VsbCAmJiBlbmNsb3NpbmdDZWxsICE9IGVuY2xv
c2luZ05vZGVPZlR5cGUoZW5kT2ZOZXh0UGFyYWdyYXBoLmRlZXBFcXVpdmFsZW50KCksICZpc1Rh
YmxlQ2VsbCkpCi0gICAgICAgICAgICBibG9ja3F1b3RlRm9yTmV4dEluZGVudCA9IDA7CisgICAg
ICAgICAgICBibG9ja3F1b3RlRm9yTmV4dEluZGVudCA9IG51bGxwdHI7CiAKICAgICAgICAgLy8g
aW5kZW50SW50b0Jsb2NrcXVvdGUgY291bGQgbW92ZSBtb3JlIHRoYW4gb25lIHBhcmFncmFwaCBp
ZiB0aGUgcGFyYWdyYXBoCiAgICAgICAgIC8vIGlzIGluIGEgbGlzdCBpdGVtIG9yIGEgdGFibGUu
IEFzIGEgcmVzdWx0LCBlbmRBZnRlclNlbGVjdGlvbiBjb3VsZCByZWZlciB0byBhIHBvc2l0aW9u
CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9lZGl0aW5nL0RlbGV0ZVNlbGVjdGlvbkNvbW1h
bmQuY3BwIGIvU291cmNlL1dlYkNvcmUvZWRpdGluZy9EZWxldGVTZWxlY3Rpb25Db21tYW5kLmNw
cAppbmRleCBlYjNhNWYzMGEwM2YyODRlMjI2MGZmNDhmYmE5ZjFiOTk5YWQ5OTI3Li5jNjQ5MWQy
NjkyNjVlNWFiNmNlOTY1ZWFhOTUzNDFiNjU0NDdkMWFlIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2Vi
Q29yZS9lZGl0aW5nL0RlbGV0ZVNlbGVjdGlvbkNvbW1hbmQuY3BwCisrKyBiL1NvdXJjZS9XZWJD
b3JlL2VkaXRpbmcvRGVsZXRlU2VsZWN0aW9uQ29tbWFuZC5jcHAKQEAgLTMwMiw3ICszMDIsNyBA
QCB2b2lkIERlbGV0ZVNlbGVjdGlvbkNvbW1hbmQ6OnNhdmVUeXBpbmdTdHlsZVN0YXRlKCkKICAg
ICBpZiAoZW5jbG9zaW5nTm9kZU9mVHlwZShtX3NlbGVjdGlvblRvRGVsZXRlLnN0YXJ0KCksIGlz
TWFpbEJsb2NrcXVvdGUpKQogICAgICAgICBtX2RlbGV0ZUludG9CbG9ja3F1b3RlU3R5bGUgPSBF
ZGl0aW5nU3R5bGU6OmNyZWF0ZShtX3NlbGVjdGlvblRvRGVsZXRlLmVuZCgpKTsKICAgICBlbHNl
Ci0gICAgICAgIG1fZGVsZXRlSW50b0Jsb2NrcXVvdGVTdHlsZSA9IDA7CisgICAgICAgIG1fZGVs
ZXRlSW50b0Jsb2NrcXVvdGVTdHlsZSA9IG51bGxwdHI7CiB9CiAKIGJvb2wgRGVsZXRlU2VsZWN0
aW9uQ29tbWFuZDo6aGFuZGxlU3BlY2lhbENhc2VCUkRlbGV0ZSgpCkBAIC03MjgsMTEgKzcyOCwx
MSBAQCB2b2lkIERlbGV0ZVNlbGVjdGlvbkNvbW1hbmQ6OmNhbGN1bGF0ZVR5cGluZ1N0eWxlQWZ0
ZXJEZWxldGUoKQogICAgIC8vIElmIHdlIGRlbGV0ZWQgaW50byBhIGJsb2NrcXVvdGUsIGJ1dCBh
cmUgbm93IG5vIGxvbmdlciBpbiBhIGJsb2NrcXVvdGUsIHVzZSB0aGUgYWx0ZXJuYXRlIHR5cGlu
ZyBzdHlsZQogICAgIGlmIChtX2RlbGV0ZUludG9CbG9ja3F1b3RlU3R5bGUgJiYgIWVuY2xvc2lu
Z05vZGVPZlR5cGUobV9lbmRpbmdQb3NpdGlvbiwgaXNNYWlsQmxvY2txdW90ZSwgQ2FuQ3Jvc3NF
ZGl0aW5nQm91bmRhcnkpKQogICAgICAgICBtX3R5cGluZ1N0eWxlID0gbV9kZWxldGVJbnRvQmxv
Y2txdW90ZVN0eWxlOwotICAgIG1fZGVsZXRlSW50b0Jsb2NrcXVvdGVTdHlsZSA9IDA7CisgICAg
bV9kZWxldGVJbnRvQmxvY2txdW90ZVN0eWxlID0gbnVsbHB0cjsKIAogICAgIG1fdHlwaW5nU3R5
bGUtPnByZXBhcmVUb0FwcGx5QXQobV9lbmRpbmdQb3NpdGlvbik7CiAgICAgaWYgKG1fdHlwaW5n
U3R5bGUtPmlzRW1wdHkoKSkKLSAgICAgICAgbV90eXBpbmdTdHlsZSA9IDA7CisgICAgICAgIG1f
dHlwaW5nU3R5bGUgPSBudWxscHRyOwogICAgIC8vIFRoaXMgaXMgd2hlcmUgd2UndmUgZGVsZXRl
ZCBhbGwgdHJhY2VzIG9mIGEgc3R5bGUgYnV0IG5vdCBhIHdob2xlIHBhcmFncmFwaCAodGhhdCdz
IGhhbmRsZWQgYWJvdmUpLgogICAgIC8vIEluIHRoaXMgY2FzZSBpZiB3ZSBzdGFydCB0eXBpbmcs
IHRoZSBuZXcgY2hhcmFjdGVycyBzaG91bGQgaGF2ZSB0aGUgc2FtZSBzdHlsZSBhcyB0aGUganVz
dCBkZWxldGVkIG9uZXMsCiAgICAgLy8gYnV0LCBpZiB3ZSBjaGFuZ2UgdGhlIHNlbGVjdGlvbiwg
Y29tZSBiYWNrIGFuZCBzdGFydCB0eXBpbmcgdGhhdCBzdHlsZSBzaG91bGQgYmUgbG9zdC4gIEFs
c28gc2VlIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvZWRpdGluZy9FZGl0aW5nU3R5bGUu
Y3BwIGIvU291cmNlL1dlYkNvcmUvZWRpdGluZy9FZGl0aW5nU3R5bGUuY3BwCmluZGV4IDVjZjEy
Y2Q5YjczOGExZGQ3NDBkNWVjZDU1YmQ1OTcyZDllZDI2NjEuLjE3YWFiMjk1YmE2YjkyZGFlMmE3
MjQ0ZGMxNTY4ZWZmMmY1NTc0N2EgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2VkaXRpbmcv
RWRpdGluZ1N0eWxlLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9lZGl0aW5nL0VkaXRpbmdTdHls
ZS5jcHAKQEAgLTYzOCw3ICs2MzgsNyBAQCB2b2lkIEVkaXRpbmdTdHlsZTo6b3ZlcnJpZGVUeXBp
bmdTdHlsZUF0KGNvbnN0IEVkaXRpbmdTdHlsZSYgc3R5bGUsIGNvbnN0IFBvc2l0aQogCiB2b2lk
IEVkaXRpbmdTdHlsZTo6Y2xlYXIoKQogewotICAgIG1fbXV0YWJsZVN0eWxlLmNsZWFyKCk7Cisg
ICAgbV9tdXRhYmxlU3R5bGUgPSBudWxscHRyOwogICAgIG1fc2hvdWxkVXNlRml4ZWREZWZhdWx0
Rm9udFNpemUgPSBmYWxzZTsKICAgICBtX2ZvbnRTaXplRGVsdGEgPSBOb0ZvbnREZWx0YTsKICAg
ICBzZXRVbmRlcmxpbmVDaGFuZ2UoVGV4dERlY29yYXRpb25DaGFuZ2U6Ok5vbmUpOwpkaWZmIC0t
Z2l0IGEvU291cmNlL1dlYkNvcmUvZWRpdGluZy9FZGl0b3IuY3BwIGIvU291cmNlL1dlYkNvcmUv
ZWRpdGluZy9FZGl0b3IuY3BwCmluZGV4IGEzYzNjOWMzYjQzNDQyOTc1MWY3M2VmMTkyOGM0MTlj
OTVkNWE5N2MuLmU3Njg3ZWMyNDY1MDA1ZGI1NzQ2ZmU2YzRhZGY2YzE1ODY4N2IzNzQgMTAwNjQ0
Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2VkaXRpbmcvRWRpdG9yLmNwcAorKysgYi9Tb3VyY2UvV2Vi
Q29yZS9lZGl0aW5nL0VkaXRvci5jcHAKQEAgLTgyOCw3ICs4MjgsNyBAQCB2b2lkIEVkaXRvcjo6
cmVtb3ZlRm9ybWF0dGluZ0FuZFN0eWxlKCkKIAogdm9pZCBFZGl0b3I6OmNsZWFyTGFzdEVkaXRD
b21tYW5kKCkgCiB7Ci0gICAgbV9sYXN0RWRpdENvbW1hbmQuY2xlYXIoKTsKKyAgICBtX2xhc3RF
ZGl0Q29tbWFuZCA9IG51bGxwdHI7CiB9CiAjaWYgUExBVEZPUk0oSU9TKQogLy8gSWYgdGhlIHNl
bGVjdGlvbiBpcyBhZGp1c3RlZCBmcm9tIFVJS2l0IHdpdGhvdXQgY2xvc2luZyB0aGUgdHlwaW5n
LCB0aGUgdHlwaW5nIGNvbW1hbmQgbWF5CkBAIC0xMDY2LDcgKzEwNjYsNyBAQCB2b2lkIEVkaXRv
cjo6dW5hcHBsaWVkRWRpdGluZyhQYXNzUmVmUHRyPEVkaXRDb21tYW5kQ29tcG9zaXRpb24+IGNt
ZCkKIAogICAgIG1fYWx0ZXJuYXRpdmVUZXh0Q29udHJvbGxlci0+cmVzcG9uZFRvVW5hcHBsaWVk
RWRpdGluZyhjbWQuZ2V0KCkpOwogCi0gICAgbV9sYXN0RWRpdENvbW1hbmQgPSAwOworICAgIG1f
bGFzdEVkaXRDb21tYW5kID0gbnVsbHB0cjsKICAgICBpZiAoY2xpZW50KCkpCiAgICAgICAgIGNs
aWVudCgpLT5yZWdpc3RlclJlZG9TdGVwKGNtZCk7CiAgICAgcmVzcG9uZFRvQ2hhbmdlZENvbnRl
bnRzKG5ld1NlbGVjdGlvbik7CkBAIC0xMDg0LDcgKzEwODQsNyBAQCB2b2lkIEVkaXRvcjo6cmVh
cHBsaWVkRWRpdGluZyhQYXNzUmVmUHRyPEVkaXRDb21tYW5kQ29tcG9zaXRpb24+IGNtZCkKICAg
ICAKICAgICB1cGRhdGVFZGl0b3JVSU5vd0lmU2NoZWR1bGVkKCk7CiAKLSAgICBtX2xhc3RFZGl0
Q29tbWFuZCA9IDA7CisgICAgbV9sYXN0RWRpdENvbW1hbmQgPSBudWxscHRyOwogICAgIGlmIChj
bGllbnQoKSkKICAgICAgICAgY2xpZW50KCktPnJlZ2lzdGVyVW5kb1N0ZXAoY21kKTsKICAgICBy
ZXNwb25kVG9DaGFuZ2VkQ29udGVudHMobmV3U2VsZWN0aW9uKTsKQEAgLTE3MjcsNyArMTcyNyw3
IEBAIHZvaWQgRWRpdG9yOjpzZXRDb21wb3NpdGlvbihjb25zdCBTdHJpbmcmIHRleHQsIFNldENv
bXBvc2l0aW9uTW9kZSBtb2RlKQogICAgIGlmICh0ZXh0LmlzRW1wdHkoKSAmJiBtb2RlICE9IENh
bmNlbENvbXBvc2l0aW9uKQogICAgICAgICBUeXBpbmdDb21tYW5kOjpkZWxldGVTZWxlY3Rpb24o
ZG9jdW1lbnQoKSwgMCk7CiAKLSAgICBtX2NvbXBvc2l0aW9uTm9kZSA9IDA7CisgICAgbV9jb21w
b3NpdGlvbk5vZGUgPSBudWxscHRyOwogICAgIG1fY3VzdG9tQ29tcG9zaXRpb25VbmRlcmxpbmVz
LmNsZWFyKCk7CiAKICAgICBpbnNlcnRUZXh0Rm9yQ29uZmlybWVkQ29tcG9zaXRpb24odGV4dCk7
CkBAIC0xODAyLDcgKzE4MDIsNyBAQCB2b2lkIEVkaXRvcjo6c2V0Q29tcG9zaXRpb24oY29uc3Qg
U3RyaW5nJiB0ZXh0LCBjb25zdCBWZWN0b3I8Q29tcG9zaXRpb25VbmRlcmxpbgogICAgIGlmICh0
ZXh0LmlzRW1wdHkoKSkKICAgICAgICAgVHlwaW5nQ29tbWFuZDo6ZGVsZXRlU2VsZWN0aW9uKGRv
Y3VtZW50KCksIFR5cGluZ0NvbW1hbmQ6OlByZXZlbnRTcGVsbENoZWNraW5nKTsKIAotICAgIG1f
Y29tcG9zaXRpb25Ob2RlID0gMDsKKyAgICBtX2NvbXBvc2l0aW9uTm9kZSA9IG51bGxwdHI7CiAg
ICAgbV9jdXN0b21Db21wb3NpdGlvblVuZGVybGluZXMuY2xlYXIoKTsKIAogICAgIGlmICghdGV4
dC5pc0VtcHR5KCkpIHsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2VkaXRpbmcvRnJhbWVT
ZWxlY3Rpb24uY3BwIGIvU291cmNlL1dlYkNvcmUvZWRpdGluZy9GcmFtZVNlbGVjdGlvbi5jcHAK
aW5kZXggYjBlMjUzNTg3ZmQ4YWRjZGUzNGQ4YmIyMWFiM2FlZmI4NjNkNmI4Mi4uZmEwODgzNzEy
NTM3MWExMWNiODc5OThmYTRhMTU3MWRkMTg0ZmIzMyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNv
cmUvZWRpdGluZy9GcmFtZVNlbGVjdGlvbi5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvZWRpdGlu
Zy9GcmFtZVNlbGVjdGlvbi5jcHAKQEAgLTEzNTksNyArMTM1OSw3IEBAIHZvaWQgRnJhbWVTZWxl
Y3Rpb246OnByZXBhcmVGb3JEZXN0cnVjdGlvbigpCiAgICAgICAgIHZpZXctPmNsZWFyU2VsZWN0
aW9uKCk7CiAKICAgICBzZXRTZWxlY3Rpb25XaXRob3V0VXBkYXRpbmdBcHBlYXJhbmNlKFZpc2li
bGVTZWxlY3Rpb24oKSwgZGVmYXVsdFNldFNlbGVjdGlvbk9wdGlvbnMoKSwgQWxpZ25DdXJzb3JP
blNjcm9sbElmTmVlZGVkLCBDaGFyYWN0ZXJHcmFudWxhcml0eSk7Ci0gICAgbV9wcmV2aW91c0Nh
cmV0Tm9kZS5jbGVhcigpOworICAgIG1fcHJldmlvdXNDYXJldE5vZGUgPSBudWxscHRyOwogfQog
CiB2b2lkIEZyYW1lU2VsZWN0aW9uOjpzZXRTdGFydChjb25zdCBWaXNpYmxlUG9zaXRpb24gJnBv
cywgRVVzZXJUcmlnZ2VyZWQgdHJpZ2dlcikKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2Vk
aXRpbmcvRnJhbWVTZWxlY3Rpb24uaCBiL1NvdXJjZS9XZWJDb3JlL2VkaXRpbmcvRnJhbWVTZWxl
Y3Rpb24uaAppbmRleCBlZDg3OTZlZjAzMTAyOGM3YmYyOTBiZTM0ODhkOTg2OWIyM2VlOWIyLi4z
MTBhNzRhYWI5ZDJmNTFkZmE3MWJkMWFkOTY2MzQ4MzdiNjEyNWMwIDEwMDY0NAotLS0gYS9Tb3Vy
Y2UvV2ViQ29yZS9lZGl0aW5nL0ZyYW1lU2VsZWN0aW9uLmgKKysrIGIvU291cmNlL1dlYkNvcmUv
ZWRpdGluZy9GcmFtZVNlbGVjdGlvbi5oCkBAIC0zNTksNyArMzU5LDcgQEAgaW5saW5lIEVkaXRp
bmdTdHlsZSogRnJhbWVTZWxlY3Rpb246OnR5cGluZ1N0eWxlKCkgY29uc3QKIAogaW5saW5lIHZv
aWQgRnJhbWVTZWxlY3Rpb246OmNsZWFyVHlwaW5nU3R5bGUoKQogewotICAgIG1fdHlwaW5nU3R5
bGUuY2xlYXIoKTsKKyAgICBtX3R5cGluZ1N0eWxlID0gbnVsbHB0cjsKIH0KIAogaW5saW5lIHZv
aWQgRnJhbWVTZWxlY3Rpb246OnNldFR5cGluZ1N0eWxlKFBhc3NSZWZQdHI8RWRpdGluZ1N0eWxl
PiBzdHlsZSkKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2VkaXRpbmcvSW5kZW50T3V0ZGVu
dENvbW1hbmQuY3BwIGIvU291cmNlL1dlYkNvcmUvZWRpdGluZy9JbmRlbnRPdXRkZW50Q29tbWFu
ZC5jcHAKaW5kZXggYjIzOGY4NzkzMTU2YzcyOTcyZTVhN2NkZTNhYWNkZTM5Y2UwMWIwZi4uZWM0
ZDI3MjQ0N2VjYWI3NTY1MDQxOTdkNjc1NTI3MmQ4YjhjZjYzMSAxMDA2NDQKLS0tIGEvU291cmNl
L1dlYkNvcmUvZWRpdGluZy9JbmRlbnRPdXRkZW50Q29tbWFuZC5jcHAKKysrIGIvU291cmNlL1dl
YkNvcmUvZWRpdGluZy9JbmRlbnRPdXRkZW50Q29tbWFuZC5jcHAKQEAgLTIzMiw3ICsyMzIsNyBA
QCB2b2lkIEluZGVudE91dGRlbnRDb21tYW5kOjpmb3JtYXRTZWxlY3Rpb24oY29uc3QgVmlzaWJs
ZVBvc2l0aW9uJiBzdGFydE9mU2VsZWN0aQogdm9pZCBJbmRlbnRPdXRkZW50Q29tbWFuZDo6Zm9y
bWF0UmFuZ2UoY29uc3QgUG9zaXRpb24mIHN0YXJ0LCBjb25zdCBQb3NpdGlvbiYgZW5kLCBjb25z
dCBQb3NpdGlvbiYsIFJlZlB0cjxFbGVtZW50PiYgYmxvY2txdW90ZUZvck5leHRJbmRlbnQpCiB7
CiAgICAgaWYgKHRyeUluZGVudGluZ0FzTGlzdEl0ZW0oc3RhcnQsIGVuZCkpCi0gICAgICAgIGJs
b2NrcXVvdGVGb3JOZXh0SW5kZW50ID0gMDsKKyAgICAgICAgYmxvY2txdW90ZUZvck5leHRJbmRl
bnQgPSBudWxscHRyOwogICAgIGVsc2UKICAgICAgICAgaW5kZW50SW50b0Jsb2NrcXVvdGUoc3Rh
cnQsIGVuZCwgYmxvY2txdW90ZUZvck5leHRJbmRlbnQpOwogfQpkaWZmIC0tZ2l0IGEvU291cmNl
L1dlYkNvcmUvZWRpdGluZy9SZXBsYWNlU2VsZWN0aW9uQ29tbWFuZC5jcHAgYi9Tb3VyY2UvV2Vi
Q29yZS9lZGl0aW5nL1JlcGxhY2VTZWxlY3Rpb25Db21tYW5kLmNwcAppbmRleCAyZTI1ZWVmMGVj
NjBiNTdmZWYyMzlkNDM5Y2IxZWU5MTQ2NjFjODAyLi5lZWUyMjBjODZmOThhNWU3ZDI4OTljNDMz
ZmE5MWYwMDAwNTQ2YmUzIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9lZGl0aW5nL1JlcGxh
Y2VTZWxlY3Rpb25Db21tYW5kLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9lZGl0aW5nL1JlcGxh
Y2VTZWxlY3Rpb25Db21tYW5kLmNwcApAQCAtMzU0LDggKzM1NCw4IEBAIGlubGluZSB2b2lkIFJl
cGxhY2VTZWxlY3Rpb25Db21tYW5kOjpJbnNlcnRlZE5vZGVzOjp3aWxsUmVtb3ZlTm9kZVByZXNl
cnZpbmdDaGlsCiBpbmxpbmUgdm9pZCBSZXBsYWNlU2VsZWN0aW9uQ29tbWFuZDo6SW5zZXJ0ZWRO
b2Rlczo6d2lsbFJlbW92ZU5vZGUoTm9kZSogbm9kZSkKIHsKICAgICBpZiAobV9maXJzdE5vZGVJ
bnNlcnRlZCA9PSBub2RlICYmIG1fbGFzdE5vZGVJbnNlcnRlZCA9PSBub2RlKSB7Ci0gICAgICAg
IG1fZmlyc3ROb2RlSW5zZXJ0ZWQgPSAwOwotICAgICAgICBtX2xhc3ROb2RlSW5zZXJ0ZWQgPSAw
OworICAgICAgICBtX2ZpcnN0Tm9kZUluc2VydGVkID0gbnVsbHB0cjsKKyAgICAgICAgbV9sYXN0
Tm9kZUluc2VydGVkID0gbnVsbHB0cjsKICAgICB9IGVsc2UgaWYgKG1fZmlyc3ROb2RlSW5zZXJ0
ZWQgPT0gbm9kZSkKICAgICAgICAgbV9maXJzdE5vZGVJbnNlcnRlZCA9IE5vZGVUcmF2ZXJzYWw6
Om5leHRTa2lwcGluZ0NoaWxkcmVuKCptX2ZpcnN0Tm9kZUluc2VydGVkKTsKICAgICBlbHNlIGlm
IChtX2xhc3ROb2RlSW5zZXJ0ZWQgPT0gbm9kZSkKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3Jl
L2VkaXRpbmcvU3BlbGxDaGVja2VyLmNwcCBiL1NvdXJjZS9XZWJDb3JlL2VkaXRpbmcvU3BlbGxD
aGVja2VyLmNwcAppbmRleCA4YjRkNTQxMTljMDEzYzQ4NWVmNDRlYjkzMzc1NzM5MjhjNjQ4MGRi
Li4wM2YyZTUxMDQ4MzUyMTUyMGQyOWI3N2U3NjhkZmM5M2JhYTQwNTkzIDEwMDY0NAotLS0gYS9T
b3VyY2UvV2ViQ29yZS9lZGl0aW5nL1NwZWxsQ2hlY2tlci5jcHAKKysrIGIvU291cmNlL1dlYkNv
cmUvZWRpdGluZy9TcGVsbENoZWNrZXIuY3BwCkBAIC0yMTQsNyArMjE0LDcgQEAgdm9pZCBTcGVs
bENoZWNrZXI6OmRpZENoZWNrKGludCBzZXF1ZW5jZSwgY29uc3QgVmVjdG9yPFRleHRDaGVja2lu
Z1Jlc3VsdD4mIHJlc3UKICAgICBpZiAobV9sYXN0UHJvY2Vzc2VkU2VxdWVuY2UgPCBzZXF1ZW5j
ZSkKICAgICAgICAgbV9sYXN0UHJvY2Vzc2VkU2VxdWVuY2UgPSBzZXF1ZW5jZTsKIAotICAgIG1f
cHJvY2Vzc2luZ1JlcXVlc3QuY2xlYXIoKTsKKyAgICBtX3Byb2Nlc3NpbmdSZXF1ZXN0ID0gbnVs
bHB0cjsKICAgICBpZiAoIW1fcmVxdWVzdFF1ZXVlLmlzRW1wdHkoKSkKICAgICAgICAgbV90aW1l
clRvUHJvY2Vzc1F1ZXVlZFJlcXVlc3Quc3RhcnRPbmVTaG90KDApOwogfQpkaWZmIC0tZ2l0IGEv
U291cmNlL1dlYkNvcmUvZWRpdGluZy9UZXh0Q2hlY2tpbmdIZWxwZXIuY3BwIGIvU291cmNlL1dl
YkNvcmUvZWRpdGluZy9UZXh0Q2hlY2tpbmdIZWxwZXIuY3BwCmluZGV4IDAyNGQyYWQ3YzI0ZjQx
NGU1MWZlMTY2NmNmOTA5MjcyMTNkZWYxNzAuLmU5NjEzNGQ3OGE5MmJiMDVlN2YyZWQ3NzA5Yjhj
Y2E0YzRhY2EzYjUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2VkaXRpbmcvVGV4dENoZWNr
aW5nSGVscGVyLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9lZGl0aW5nL1RleHRDaGVja2luZ0hl
bHBlci5jcHAKQEAgLTE0Niw3ICsxNDYsNyBAQCB2b2lkIFRleHRDaGVja2luZ1BhcmFncmFwaDo6
ZXhwYW5kUmFuZ2VUb05leHRFbmQoKQogdm9pZCBUZXh0Q2hlY2tpbmdQYXJhZ3JhcGg6OmludmFs
aWRhdGVQYXJhZ3JhcGhSYW5nZVZhbHVlcygpCiB7CiAgICAgbV9jaGVja2luZ1N0YXJ0ID0gbV9j
aGVja2luZ0VuZCA9IC0xOwotICAgIG1fb2Zmc2V0QXNSYW5nZSA9IDA7CisgICAgbV9vZmZzZXRB
c1JhbmdlID0gbnVsbHB0cjsKICAgICBtX3RleHQgPSBTdHJpbmcoKTsKIH0KIApkaWZmIC0tZ2l0
IGEvU291cmNlL1dlYkNvcmUvZmlsZWFwaS9GaWxlUmVhZGVyLmNwcCBiL1NvdXJjZS9XZWJDb3Jl
L2ZpbGVhcGkvRmlsZVJlYWRlci5jcHAKaW5kZXggN2Y0YzA1ZDI5MzU2NGY5ODRiZmI4YmQzMDJl
OWZhNDhiYzYzODY2NS4uNjFmYzJkZTYxYWVmOGEzZWJiMDg4NGQ3NDA3NmU2YjNiZDFkMGIxMyAx
MDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvZmlsZWFwaS9GaWxlUmVhZGVyLmNwcAorKysgYi9T
b3VyY2UvV2ViQ29yZS9maWxlYXBpL0ZpbGVSZWFkZXIuY3BwCkBAIC0xNDAsNyArMTQwLDcgQEAg
dm9pZCBGaWxlUmVhZGVyOjpyZWFkSW50ZXJuYWwoQmxvYiogYmxvYiwgRmlsZVJlYWRlckxvYWRl
cjo6UmVhZFR5cGUgdHlwZSwgRXhjZXAKICAgICBtX2Jsb2IgPSBibG9iOwogICAgIG1fcmVhZFR5
cGUgPSB0eXBlOwogICAgIG1fc3RhdGUgPSBMT0FESU5HOwotICAgIG1fZXJyb3IgPSAwOworICAg
IG1fZXJyb3IgPSBudWxscHRyOwogCiAgICAgbV9sb2FkZXIgPSBzdGQ6Om1ha2VfdW5pcXVlPEZp
bGVSZWFkZXJMb2FkZXI+KG1fcmVhZFR5cGUsIHRoaXMpOwogICAgIG1fbG9hZGVyLT5zZXRFbmNv
ZGluZyhtX2VuY29kaW5nKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2ZpbGVhcGkvRmls
ZVJlYWRlckxvYWRlci5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9maWxlYXBpL0ZpbGVSZWFkZXJMb2Fk
ZXIuY3BwCmluZGV4IDk0ZTBhNGE3Y2I0MTBiYWZlM2FlZWQzOGZiNmNlMmZjZTI5YWUyNmEuLmQ4
ZmZjMTAyMzM1ZjFiMjVkNTcyZGI2YjI3NWE3NDQ0NTI3ZWEyZDkgMTAwNjQ0Ci0tLSBhL1NvdXJj
ZS9XZWJDb3JlL2ZpbGVhcGkvRmlsZVJlYWRlckxvYWRlci5jcHAKKysrIGIvU291cmNlL1dlYkNv
cmUvZmlsZWFwaS9GaWxlUmVhZGVyTG9hZGVyLmNwcApAQCAtMTIxLDExICsxMjEsMTEgQEAgdm9p
ZCBGaWxlUmVhZGVyTG9hZGVyOjp0ZXJtaW5hdGUoKQogCiB2b2lkIEZpbGVSZWFkZXJMb2FkZXI6
OmNsZWFudXAoKQogewotICAgIG1fbG9hZGVyID0gMDsKKyAgICBtX2xvYWRlciA9IG51bGxwdHI7
CiAKICAgICAvLyBJZiB3ZSBnZXQgYW55IGVycm9yLCB3ZSBkbyBub3QgbmVlZCB0byBrZWVwIGEg
YnVmZmVyIGFyb3VuZC4KICAgICBpZiAobV9lcnJvckNvZGUpIHsKLSAgICAgICAgbV9yYXdEYXRh
ID0gMDsKKyAgICAgICAgbV9yYXdEYXRhID0gbnVsbHB0cjsKICAgICAgICAgbV9zdHJpbmdSZXN1
bHQgPSAiIjsKICAgICB9CiB9CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9oaXN0b3J5L0hp
c3RvcnlJdGVtLmNwcCBiL1NvdXJjZS9XZWJDb3JlL2hpc3RvcnkvSGlzdG9yeUl0ZW0uY3BwCmlu
ZGV4IDIyOWJhYjhlN2EyM2FjMDVjMGFkMDVlN2VkNDMxNTdkY2Q3ZThiMDMuLjgyOTU3M2Y3ZDc5
YjZhOTI3NTJiNmEwN2JiOGI1NzkwOTYzMmRiZDEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3Jl
L2hpc3RvcnkvSGlzdG9yeUl0ZW0uY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2hpc3RvcnkvSGlz
dG9yeUl0ZW0uY3BwCkBAIC0xOTYsMTAgKzE5NiwxMCBAQCB2b2lkIEhpc3RvcnlJdGVtOjpyZXNl
dCgpCiAKICAgICBtX2l0ZW1TZXF1ZW5jZU51bWJlciA9IGdlbmVyYXRlU2VxdWVuY2VOdW1iZXIo
KTsKIAotICAgIG1fc3RhdGVPYmplY3QgPSAwOworICAgIG1fc3RhdGVPYmplY3QgPSBudWxscHRy
OwogICAgIG1fZG9jdW1lbnRTZXF1ZW5jZU51bWJlciA9IGdlbmVyYXRlU2VxdWVuY2VOdW1iZXIo
KTsKIAotICAgIG1fZm9ybURhdGEgPSAwOworICAgIG1fZm9ybURhdGEgPSBudWxscHRyOwogICAg
IG1fZm9ybUNvbnRlbnRUeXBlID0gU3RyaW5nKCk7CiAKICAgICBjbGVhckNoaWxkcmVuKCk7CkBA
IC01MjQsNyArNTI0LDcgQEAgdm9pZCBIaXN0b3J5SXRlbTo6c2V0Rm9ybUluZm9Gcm9tUmVxdWVz
dChjb25zdCBSZXNvdXJjZVJlcXVlc3QmIHJlcXVlc3QpCiAgICAgICAgIG1fZm9ybURhdGEgPSBy
ZXF1ZXN0Lmh0dHBCb2R5KCk7CiAgICAgICAgIG1fZm9ybUNvbnRlbnRUeXBlID0gcmVxdWVzdC5o
dHRwQ29udGVudFR5cGUoKTsKICAgICB9IGVsc2UgewotICAgICAgICBtX2Zvcm1EYXRhID0gMDsK
KyAgICAgICAgbV9mb3JtRGF0YSA9IG51bGxwdHI7CiAgICAgICAgIG1fZm9ybUNvbnRlbnRUeXBl
ID0gU3RyaW5nKCk7CiAgICAgfQogfQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvaHRtbC9C
YXNlQ2hvb3Nlck9ubHlEYXRlQW5kVGltZUlucHV0VHlwZS5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9o
dG1sL0Jhc2VDaG9vc2VyT25seURhdGVBbmRUaW1lSW5wdXRUeXBlLmNwcAppbmRleCBlOWE2Y2Mw
MzkzYzUwNTU2OGQ1MTM0M2M2NTdhNmJkYmFkMWE5NTIzLi5kYmVhMGU5OWJkOTM0YzdkYmRlYTUy
ZDI1ZDAxYzJmODE3NWRjMWQwIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9odG1sL0Jhc2VD
aG9vc2VyT25seURhdGVBbmRUaW1lSW5wdXRUeXBlLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9o
dG1sL0Jhc2VDaG9vc2VyT25seURhdGVBbmRUaW1lSW5wdXRUeXBlLmNwcApAQCAtOTgsNyArOTgs
NyBAQCB2b2lkIEJhc2VDaG9vc2VyT25seURhdGVBbmRUaW1lSW5wdXRUeXBlOjpkaWRDaG9vc2VW
YWx1ZShjb25zdCBTdHJpbmcmIHZhbHVlKQogCiB2b2lkIEJhc2VDaG9vc2VyT25seURhdGVBbmRU
aW1lSW5wdXRUeXBlOjpkaWRFbmRDaG9vc2VyKCkKIHsKLSAgICBtX2RhdGVUaW1lQ2hvb3Nlci5j
bGVhcigpOworICAgIG1fZGF0ZVRpbWVDaG9vc2VyID0gbnVsbHB0cjsKIH0KIAogdm9pZCBCYXNl
Q2hvb3Nlck9ubHlEYXRlQW5kVGltZUlucHV0VHlwZTo6Y2xvc2VEYXRlVGltZUNob29zZXIoKQpk
aWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvaHRtbC9GVFBEaXJlY3RvcnlEb2N1bWVudC5jcHAg
Yi9Tb3VyY2UvV2ViQ29yZS9odG1sL0ZUUERpcmVjdG9yeURvY3VtZW50LmNwcAppbmRleCBlNzU1
M2Q3NDMwM2RkOTRkYjI2MTBkY2RkMmExODBmNGY4ZWIyMDllLi4wMGRlOWZmNTcxYThlMzhlMmMy
ZDhjYzVlOWMxYmM3YzIzOTdlZTY5IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9odG1sL0ZU
UERpcmVjdG9yeURvY3VtZW50LmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9odG1sL0ZUUERpcmVj
dG9yeURvY3VtZW50LmNwcApAQCAtNDExLDcgKzQxMSw3IEBAIHZvaWQgRlRQRGlyZWN0b3J5RG9j
dW1lbnRQYXJzZXI6OmZpbmlzaCgpCiAgICAgICAgIG1fY2FycnlPdmVyID0gU3RyaW5nKCk7CiAg
ICAgfQogCi0gICAgbV90YWJsZUVsZW1lbnQgPSAwOworICAgIG1fdGFibGVFbGVtZW50ID0gbnVs
bHB0cjsKICAgICBmYXN0RnJlZShtX2J1ZmZlcik7CiAKICAgICBIVE1MRG9jdW1lbnRQYXJzZXI6
OmZpbmlzaCgpOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvaHRtbC9GaWxlSW5wdXRUeXBl
LmNwcCBiL1NvdXJjZS9XZWJDb3JlL2h0bWwvRmlsZUlucHV0VHlwZS5jcHAKaW5kZXggYTNkM2I2
YjcxMWZmZTFlOGFhMWFmZGZmYzE4NmViYzBhZjUyYzE0Ny4uNDg5ZDc5OTM4ZmNmZDIyNmZjOTk0
YzI2MGU2ZTU1MzUzYzU0YWYyOSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvaHRtbC9GaWxl
SW5wdXRUeXBlLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9odG1sL0ZpbGVJbnB1dFR5cGUuY3Bw
CkBAIC0yNTAsNyArMjUwLDcgQEAgdm9pZCBGaWxlSW5wdXRUeXBlOjpzZXRWYWx1ZShjb25zdCBT
dHJpbmcmLCBib29sLCBUZXh0RmllbGRFdmVudEJlaGF2aW9yKQogewogICAgIC8vIEZJWE1FOiBT
aG91bGQgd2UgY2xlYXIgdGhlIGZpbGUgbGlzdCwgb3IgcmVwbGFjZSBpdCB3aXRoIGEgbmV3IGVt
cHR5IG9uZSBoZXJlPyBUaGlzIGlzIG9ic2VydmFibGUgZnJvbSBKYXZhU2NyaXB0IHRocm91Z2gg
Y3VzdG9tIHByb3BlcnRpZXMuCiAgICAgbV9maWxlTGlzdC0+Y2xlYXIoKTsKLSAgICBtX2ljb24u
Y2xlYXIoKTsKKyAgICBtX2ljb24gPSBudWxscHRyOwogICAgIGVsZW1lbnQoKS5zZXROZWVkc1N0
eWxlUmVjYWxjKCk7CiB9CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTENh
bnZhc0VsZW1lbnQuY3BwIGIvU291cmNlL1dlYkNvcmUvaHRtbC9IVE1MQ2FudmFzRWxlbWVudC5j
cHAKaW5kZXggODZkNDVhNDhhMGM3NjJkYWI3MjZmZDk5NmFmNzI0NmM4MTg3ODY2My4uY2U1ZDdi
MmE1ZjI3ZjRjNzZmNTEwZDZlZjU5NWUzMGFhMjU0YTMyYSAxMDA2NDQKLS0tIGEvU291cmNlL1dl
YkNvcmUvaHRtbC9IVE1MQ2FudmFzRWxlbWVudC5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvaHRt
bC9IVE1MQ2FudmFzRWxlbWVudC5jcHAKQEAgLTQyMyw3ICs0MjMsNyBAQCB2b2lkIEhUTUxDYW52
YXNFbGVtZW50OjptYWtlUHJlc2VudGF0aW9uQ29weSgpCiAKIHZvaWQgSFRNTENhbnZhc0VsZW1l
bnQ6OmNsZWFyUHJlc2VudGF0aW9uQ29weSgpCiB7Ci0gICAgbV9wcmVzZW50ZWRJbWFnZS5jbGVh
cigpOworICAgIG1fcHJlc2VudGVkSW1hZ2UgPSBudWxscHRyOwogfQogCiB2b2lkIEhUTUxDYW52
YXNFbGVtZW50OjpzZXRTdXJmYWNlU2l6ZShjb25zdCBJbnRTaXplJiBzaXplKQpAQCAtNjQ0LDcg
KzY0NCw3IEBAIHZvaWQgSFRNTENhbnZhc0VsZW1lbnQ6OmNsZWFySW1hZ2VCdWZmZXIoKSBjb25z
dAogCiB2b2lkIEhUTUxDYW52YXNFbGVtZW50OjpjbGVhckNvcGllZEltYWdlKCkKIHsKLSAgICBt
X2NvcGllZEltYWdlLmNsZWFyKCk7CisgICAgbV9jb3BpZWRJbWFnZSA9IG51bGxwdHI7CiAgICAg
bV9kaWRDbGVhckltYWdlQnVmZmVyID0gZmFsc2U7CiB9CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9X
ZWJDb3JlL2h0bWwvSFRNTExpbmtFbGVtZW50LmNwcCBiL1NvdXJjZS9XZWJDb3JlL2h0bWwvSFRN
TExpbmtFbGVtZW50LmNwcAppbmRleCBjMjNlZGZmM2EyYWFlY2YxYjBkYzBhNjVlOTg0OWQ1OTky
ZDZhYjI3Li5lNGUxMjgxMWM4NDUxMzIwMzhkODdjZjNiYzZjODQ0NjMzZjAwZWUxIDEwMDY0NAot
LS0gYS9Tb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxMaW5rRWxlbWVudC5jcHAKKysrIGIvU291cmNl
L1dlYkNvcmUvaHRtbC9IVE1MTGlua0VsZW1lbnQuY3BwCkBAIC0yNjQsNyArMjY0LDcgQEAgdm9p
ZCBIVE1MTGlua0VsZW1lbnQ6OmNsZWFyU2hlZXQoKQogICAgIEFTU0VSVChtX3NoZWV0KTsKICAg
ICBBU1NFUlQobV9zaGVldC0+b3duZXJOb2RlKCkgPT0gdGhpcyk7CiAgICAgbV9zaGVldC0+Y2xl
YXJPd25lck5vZGUoKTsKLSAgICBtX3NoZWV0ID0gMDsKKyAgICBtX3NoZWV0ID0gbnVsbHB0cjsK
IH0KIAogTm9kZTo6SW5zZXJ0aW9uTm90aWZpY2F0aW9uUmVxdWVzdCBIVE1MTGlua0VsZW1lbnQ6
Omluc2VydGVkSW50byhDb250YWluZXJOb2RlJiBpbnNlcnRpb25Qb2ludCkKZGlmZiAtLWdpdCBh
L1NvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTE1lZGlhRWxlbWVudC5jcHAgYi9Tb3VyY2UvV2ViQ29y
ZS9odG1sL0hUTUxNZWRpYUVsZW1lbnQuY3BwCmluZGV4IDRmZWFlYjk3Yzk5YzE4NTE1NGQ3ZjM5
OTM3ZjRiZTVjNmM0MzgzZTEuLmRkODg5MmYzY2I0Y2Q3OGRkNGZkZjc4MGZlMmUwNTFkYTJkYzQ5
NjYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTE1lZGlhRWxlbWVudC5jcHAK
KysrIGIvU291cmNlL1dlYkNvcmUvaHRtbC9IVE1MTWVkaWFFbGVtZW50LmNwcApAQCAtNDU3LDcg
KzQ1Nyw3IEBAIEhUTUxNZWRpYUVsZW1lbnQ6On5IVE1MTWVkaWFFbGVtZW50KCkKIAogICAgIGlm
IChtX21lZGlhQ29udHJvbGxlcikgewogICAgICAgICBtX21lZGlhQ29udHJvbGxlci0+cmVtb3Zl
TWVkaWFFbGVtZW50KHRoaXMpOwotICAgICAgICBtX21lZGlhQ29udHJvbGxlciA9IDA7CisgICAg
ICAgIG1fbWVkaWFDb250cm9sbGVyID0gbnVsbHB0cjsKICAgICB9CiAKICNpZiBFTkFCTEUoTUVE
SUFfU09VUkNFKQpAQCAtOTQyLDcgKzk0Miw3IEBAIHZvaWQgSFRNTE1lZGlhRWxlbWVudDo6cHJl
cGFyZUZvckxvYWQoKQogCiAgICAgLy8gMSAtIEFib3J0IGFueSBhbHJlYWR5LXJ1bm5pbmcgaW5z
dGFuY2Ugb2YgdGhlIHJlc291cmNlIHNlbGVjdGlvbiBhbGdvcml0aG0gZm9yIHRoaXMgZWxlbWVu
dC4KICAgICBtX2xvYWRTdGF0ZSA9IFdhaXRpbmdGb3JTb3VyY2U7Ci0gICAgbV9jdXJyZW50U291
cmNlTm9kZSA9IDA7CisgICAgbV9jdXJyZW50U291cmNlTm9kZSA9IG51bGxwdHI7CiAKICAgICAv
LyAyIC0gSWYgdGhlcmUgYXJlIGFueSB0YXNrcyBmcm9tIHRoZSBtZWRpYSBlbGVtZW50J3MgbWVk
aWEgZWxlbWVudCBldmVudCB0YXNrIHNvdXJjZSBpbiAKICAgICAvLyBvbmUgb2YgdGhlIHRhc2sg
cXVldWVzLCB0aGVuIHJlbW92ZSB0aG9zZSB0YXNrcy4KQEAgLTEwMDYsNyArMTAwNiw3IEBAIHZv
aWQgSFRNTE1lZGlhRWxlbWVudDo6cHJlcGFyZUZvckxvYWQoKQogICAgIHNldFBsYXliYWNrUmF0
ZShkZWZhdWx0UGxheWJhY2tSYXRlKCkpOwogCiAgICAgLy8gNiAtIFNldCB0aGUgZXJyb3IgYXR0
cmlidXRlIHRvIG51bGwgYW5kIHRoZSBhdXRvcGxheWluZyBmbGFnIHRvIHRydWUuCi0gICAgbV9l
cnJvciA9IDA7CisgICAgbV9lcnJvciA9IG51bGxwdHI7CiAgICAgbV9hdXRvcGxheWluZyA9IHRy
dWU7CiAKICAgICAvLyA3IC0gSW52b2tlIHRoZSBtZWRpYSBlbGVtZW50J3MgcmVzb3VyY2Ugc2Vs
ZWN0aW9uIGFsZ29yaXRobS4KQEAgLTExMDEsNyArMTEwMSw3IEBAIHZvaWQgSFRNTE1lZGlhRWxl
bWVudDo6c2VsZWN0TWVkaWFSZXNvdXJjZSgpCiAgICAgICAgIGlmIChhdXRvIGZpcnN0U291cmNl
ID0gY2hpbGRyZW5PZlR5cGU8SFRNTFNvdXJjZUVsZW1lbnQ+KCp0aGlzKS5maXJzdCgpKSB7CiAg
ICAgICAgICAgICBtb2RlID0gY2hpbGRyZW47CiAgICAgICAgICAgICBtX25leHRDaGlsZE5vZGVU
b0NvbnNpZGVyID0gZmlyc3RTb3VyY2U7Ci0gICAgICAgICAgICBtX2N1cnJlbnRTb3VyY2VOb2Rl
ID0gMDsKKyAgICAgICAgICAgIG1fY3VycmVudFNvdXJjZU5vZGUgPSBudWxscHRyOwogICAgICAg
ICB9IGVsc2UgewogICAgICAgICAgICAgLy8gT3RoZXJ3aXNlIHRoZSBtZWRpYSBlbGVtZW50IGhh
cyBuZWl0aGVyIGEgc3JjIGF0dHJpYnV0ZSBub3IgYSBzb3VyY2UgZWxlbWVudCAKICAgICAgICAg
ICAgIC8vIGNoaWxkOiBzZXQgdGhlIG5ldHdvcmtTdGF0ZSB0byBORVRXT1JLX0VNUFRZLCBhbmQg
YWJvcnQgdGhlc2Ugc3RlcHM7IHRoZSAKQEAgLTEyNzcsNyArMTI3Nyw3IEBAIHZvaWQgSFRNTE1l
ZGlhRWxlbWVudDo6bG9hZFJlc291cmNlKGNvbnN0IFVSTCYgaW5pdGlhbFVSTCwgQ29udGVudFR5
cGUmIGNvbnRlbnRUCiAgICAgICAgIGVsc2UgewogICAgICAgICAgICAgLy8gRm9yZ2V0IG91ciBy
ZWZlcmVuY2UgdG8gdGhlIE1lZGlhU291cmNlLCBzbyB3ZSBsZWF2ZSBpdCBhbG9uZQogICAgICAg
ICAgICAgLy8gd2hpbGUgcHJvY2Vzc2luZyByZW1haW5kZXIgb2YgbG9hZCBmYWlsdXJlLgotICAg
ICAgICAgICAgbV9tZWRpYVNvdXJjZSA9IDA7CisgICAgICAgICAgICBtX21lZGlhU291cmNlID0g
bnVsbHB0cjsKICAgICAgICAgICAgIG1lZGlhTG9hZGluZ0ZhaWxlZChNZWRpYVBsYXllcjo6Rm9y
bWF0RXJyb3IpOwogICAgICAgICB9CiAgICAgfSBlbHNlCkBAIC0xODAwLDcgKzE4MDAsNyBAQCB2
b2lkIEhUTUxNZWRpYUVsZW1lbnQ6Om5vbmVTdXBwb3J0ZWQoKQogCiAgICAgc3RvcFBlcmlvZGlj
VGltZXJzKCk7CiAgICAgbV9sb2FkU3RhdGUgPSBXYWl0aW5nRm9yU291cmNlOwotICAgIG1fY3Vy
cmVudFNvdXJjZU5vZGUgPSAwOworICAgIG1fY3VycmVudFNvdXJjZU5vZGUgPSBudWxscHRyOwog
CiAgICAgLy8gNC44LjEwLjUgCiAgICAgLy8gNiAtIFJlYWNoaW5nIHRoaXMgc3RlcCBpbmRpY2F0
ZXMgdGhhdCB0aGUgbWVkaWEgcmVzb3VyY2UgZmFpbGVkIHRvIGxvYWQgb3IgdGhhdCB0aGUgZ2l2
ZW4gCkBAIC0yOTM5LDcgKzI5MzksNyBAQCB2b2lkIEhUTUxNZWRpYUVsZW1lbnQ6OmNsb3NlTWVk
aWFTb3VyY2UoKQogICAgICAgICByZXR1cm47CiAKICAgICBtX21lZGlhU291cmNlLT5jbG9zZSgp
OwotICAgIG1fbWVkaWFTb3VyY2UgPSAwOworICAgIG1fbWVkaWFTb3VyY2UgPSBudWxscHRyOwog
fQogI2VuZGlmCiAKQEAgLTQxMTIsOCArNDExMiw4IEBAIGNoZWNrX2FnYWluOgogICAgICAgICBt
X2N1cnJlbnRTb3VyY2VOb2RlID0gc291cmNlOwogICAgICAgICBtX25leHRDaGlsZE5vZGVUb0Nv
bnNpZGVyID0gc291cmNlLT5uZXh0U2libGluZygpOwogICAgIH0gZWxzZSB7Ci0gICAgICAgIG1f
Y3VycmVudFNvdXJjZU5vZGUgPSAwOwotICAgICAgICBtX25leHRDaGlsZE5vZGVUb0NvbnNpZGVy
ID0gMDsKKyAgICAgICAgbV9jdXJyZW50U291cmNlTm9kZSA9IG51bGxwdHI7CisgICAgICAgIG1f
bmV4dENoaWxkTm9kZVRvQ29uc2lkZXIgPSBudWxscHRyOwogICAgIH0KIAogI2lmICFMT0dfRElT
QUJMRUQKQEAgLTQxOTMsNyArNDE5Myw3IEBAIHZvaWQgSFRNTE1lZGlhRWxlbWVudDo6c291cmNl
V2FzUmVtb3ZlZChIVE1MU291cmNlRWxlbWVudCogc291cmNlKQogICAgICAgICAvLyBDbGVhciB0
aGUgY3VycmVudCBzb3VyY2Ugbm9kZSBwb2ludGVyLCBidXQgZG9uJ3QgY2hhbmdlIHRoZSBtb3Zp
ZSBhcyB0aGUgc3BlYyBzYXlzOgogICAgICAgICAvLyA0LjguOCAtIER5bmFtaWNhbGx5IG1vZGlm
eWluZyBhIHNvdXJjZSBlbGVtZW50IGFuZCBpdHMgYXR0cmlidXRlIHdoZW4gdGhlIGVsZW1lbnQg
aXMgYWxyZWFkeSAKICAgICAgICAgLy8gaW5zZXJ0ZWQgaW4gYSB2aWRlbyBvciBhdWRpbyBlbGVt
ZW50IHdpbGwgaGF2ZSBubyBlZmZlY3QuCi0gICAgICAgIG1fY3VycmVudFNvdXJjZU5vZGUgPSAw
OworICAgICAgICBtX2N1cnJlbnRTb3VyY2VOb2RlID0gbnVsbHB0cjsKICAgICAgICAgTE9HKE1l
ZGlhLCAiSFRNTE1lZGlhRWxlbWVudDo6c291cmNlUmVtb3ZlZCglcCkgLSBtX2N1cnJlbnRTb3Vy
Y2VOb2RlIHNldCB0byAwIiwgdGhpcyk7CiAgICAgfQogfQpAQCAtNDc5NSw3ICs0Nzk1LDcgQEAg
dm9pZCBIVE1MTWVkaWFFbGVtZW50Ojp1c2VyQ2FuY2VsbGVkTG9hZCgpCiAgICAgc2V0U2hvdWxk
RGVsYXlMb2FkRXZlbnQoZmFsc2UpOwogCiAgICAgLy8gNiAtIEFib3J0IHRoZSBvdmVyYWxsIHJl
c291cmNlIHNlbGVjdGlvbiBhbGdvcml0aG0uCi0gICAgbV9jdXJyZW50U291cmNlTm9kZSA9IDA7
CisgICAgbV9jdXJyZW50U291cmNlTm9kZSA9IG51bGxwdHI7CiAKICAgICAvLyBSZXNldCBtX3Jl
YWR5U3RhdGUgc2luY2UgbV9wbGF5ZXIgaXMgZ29uZS4KICAgICBtX3JlYWR5U3RhdGUgPSBIQVZF
X05PVEhJTkc7CkBAIC00ODEyLDggKzQ4MTIsOCBAQCB2b2lkIEhUTUxNZWRpYUVsZW1lbnQ6OmNs
ZWFyTWVkaWFQbGF5ZXIoaW50IGZsYWdzKQogCiAjaWYgVVNFKFBMQVRGT1JNX1RFWFRfVFJBQ0tf
TUVOVSkKICAgICBpZiAocGxhdGZvcm1UZXh0VHJhY2tNZW51KCkpIHsKLSAgICAgICAgbV9wbGF0
Zm9ybU1lbnUtPnNldENsaWVudCgwKTsKLSAgICAgICAgbV9wbGF0Zm9ybU1lbnUgPSAwOworICAg
ICAgICBtX3BsYXRmb3JtTWVudS0+c2V0Q2xpZW50KG51bGxwdHIpOworICAgICAgICBtX3BsYXRm
b3JtTWVudSA9IG51bGxwdHI7CiAgICAgfQogI2VuZGlmCiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9X
ZWJDb3JlL2h0bWwvSFRNTFBsdWdJbkVsZW1lbnQuY3BwIGIvU291cmNlL1dlYkNvcmUvaHRtbC9I
VE1MUGx1Z0luRWxlbWVudC5jcHAKaW5kZXggMjIwNDZlYTg0MzU1NmM0ODBmMTNiNzk1NjMyZTc5
M2NmYTc0M2E5OS4uZDc4NmRmNGZlODcxMDNmNTIwMTNhYjdkNzc5OTcxMDQ1ZGEyYzk2MSAxMDA2
NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvaHRtbC9IVE1MUGx1Z0luRWxlbWVudC5jcHAKKysrIGIv
U291cmNlL1dlYkNvcmUvaHRtbC9IVE1MUGx1Z0luRWxlbWVudC5jcHAKQEAgLTEwNCw3ICsxMDQs
NyBAQCBib29sIEhUTUxQbHVnSW5FbGVtZW50Ojp3aWxsUmVzcG9uZFRvTW91c2VDbGlja0V2ZW50
cygpCiAKIHZvaWQgSFRNTFBsdWdJbkVsZW1lbnQ6OndpbGxEZXRhY2hSZW5kZXJlcnMoKQogewot
ICAgIG1faW5zdGFuY2UuY2xlYXIoKTsKKyAgICBtX2luc3RhbmNlID0gbnVsbHB0cjsKIAogICAg
IGlmIChtX2lzQ2FwdHVyaW5nTW91c2VFdmVudHMpIHsKICAgICAgICAgaWYgKEZyYW1lKiBmcmFt
ZSA9IGRvY3VtZW50KCkuZnJhbWUoKSkKQEAgLTEyMiw3ICsxMjIsNyBAQCB2b2lkIEhUTUxQbHVn
SW5FbGVtZW50Ojp3aWxsRGV0YWNoUmVuZGVyZXJzKCkKIAogdm9pZCBIVE1MUGx1Z0luRWxlbWVu
dDo6cmVzZXRJbnN0YW5jZSgpCiB7Ci0gICAgbV9pbnN0YW5jZS5jbGVhcigpOworICAgIG1faW5z
dGFuY2UgPSBudWxscHRyOwogfQogCiBQYXNzUmVmUHRyPEpTQzo6QmluZGluZ3M6Okluc3RhbmNl
PiBIVE1MUGx1Z0luRWxlbWVudDo6Z2V0SW5zdGFuY2UoKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dl
YkNvcmUvaHRtbC9IVE1MVGFibGVFbGVtZW50LmNwcCBiL1NvdXJjZS9XZWJDb3JlL2h0bWwvSFRN
TFRhYmxlRWxlbWVudC5jcHAKaW5kZXggNGZiNjU2OWFlMjFlOTU3MzYzNzAwMjM2MGNhMzNmOWI1
MTcyYzU1ZC4uNzQ1NzM2MWI2ZTEyNWVhZWY5NjVhZjU0NTMzYmYzM2Y2ODQ2ZWFhNyAxMDA2NDQK
LS0tIGEvU291cmNlL1dlYkNvcmUvaHRtbC9IVE1MVGFibGVFbGVtZW50LmNwcAorKysgYi9Tb3Vy
Y2UvV2ViQ29yZS9odG1sL0hUTUxUYWJsZUVsZW1lbnQuY3BwCkBAIC00MDIsNyArNDAyLDcgQEAg
dm9pZCBIVE1MVGFibGVFbGVtZW50OjpwYXJzZUF0dHJpYnV0ZShjb25zdCBRdWFsaWZpZWROYW1l
JiBuYW1lLCBjb25zdCBBdG9taWNTdHIKICAgICAgICAgSFRNTEVsZW1lbnQ6OnBhcnNlQXR0cmli
dXRlKG5hbWUsIHZhbHVlKTsKIAogICAgIGlmIChib3JkZXJzQmVmb3JlICE9IGNlbGxCb3JkZXJz
KCkgfHwgb2xkUGFkZGluZyAhPSBtX3BhZGRpbmcpIHsKLSAgICAgICAgbV9zaGFyZWRDZWxsU3R5
bGUgPSAwOworICAgICAgICBtX3NoYXJlZENlbGxTdHlsZSA9IG51bGxwdHI7CiAgICAgICAgIGJv
b2wgY2VsbENoYW5nZWQgPSBmYWxzZTsKICAgICAgICAgZm9yIChOb2RlKiBjaGlsZCA9IGZpcnN0
Q2hpbGQoKTsgY2hpbGQ7IGNoaWxkID0gY2hpbGQtPm5leHRTaWJsaW5nKCkpCiAgICAgICAgICAg
ICBjZWxsQ2hhbmdlZCB8PSBzZXRUYWJsZUNlbGxzQ2hhbmdlZChjaGlsZCk7CmRpZmYgLS1naXQg
YS9Tb3VyY2UvV2ViQ29yZS9odG1sL1BsdWdpbkRvY3VtZW50LmNwcCBiL1NvdXJjZS9XZWJDb3Jl
L2h0bWwvUGx1Z2luRG9jdW1lbnQuY3BwCmluZGV4IDc3OTZjMjdiM2RjMTg3MmNiNjExYjc4NjUx
ZDQyMjVlYTIzNjM0OTguLmU5Njc3MDkwZjRjMzg1M2E3Y2ZmMjA4YjIzYzMxZGM5ZDI1NDQ4MjEg
MTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2h0bWwvUGx1Z2luRG9jdW1lbnQuY3BwCisrKyBi
L1NvdXJjZS9XZWJDb3JlL2h0bWwvUGx1Z2luRG9jdW1lbnQuY3BwCkBAIC0xNjgsOCArMTY4LDgg
QEAgdm9pZCBQbHVnaW5Eb2N1bWVudDo6c2V0UGx1Z2luRWxlbWVudChQYXNzUmVmUHRyPEhUTUxQ
bHVnSW5FbGVtZW50PiBlbGVtZW50KQogdm9pZCBQbHVnaW5Eb2N1bWVudDo6ZGV0YWNoRnJvbVBs
dWdpbkVsZW1lbnQoKQogewogICAgIC8vIFJlbGVhc2UgdGhlIHBsdWdpbiBFbGVtZW50IHNvIHRo
YXQgd2UgZG9uJ3QgaGF2ZSBhIGNpcmN1bGFyIHJlZmVyZW5jZS4KLSAgICBtX3BsdWdpbkVsZW1l
bnQgPSAwOwotICAgIGZyYW1lKCktPmxvYWRlcigpLmNsaWVudCgpLnJlZGlyZWN0RGF0YVRvUGx1
Z2luKDApOworICAgIG1fcGx1Z2luRWxlbWVudCA9IG51bGxwdHI7CisgICAgZnJhbWUoKS0+bG9h
ZGVyKCkuY2xpZW50KCkucmVkaXJlY3REYXRhVG9QbHVnaW4obnVsbHB0cik7CiB9CiAKIHZvaWQg
UGx1Z2luRG9jdW1lbnQ6OmNhbmNlbE1hbnVhbFBsdWdpbkxvYWQoKQpkaWZmIC0tZ2l0IGEvU291
cmNlL1dlYkNvcmUvaHRtbC9UZXh0RmllbGRJbnB1dFR5cGUuY3BwIGIvU291cmNlL1dlYkNvcmUv
aHRtbC9UZXh0RmllbGRJbnB1dFR5cGUuY3BwCmluZGV4IDRiMjhhYThkYTJkMWE1NWRkOWVhNDIw
ZTQxNDJlMTRlNzMxYjc5YzUuLmVhZTNkYjI5ZWVlM2MyZGU5NWZlNzE4MGM1NDZmZjhlN2UyYTc2
N2UgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2h0bWwvVGV4dEZpZWxkSW5wdXRUeXBlLmNw
cAorKysgYi9Tb3VyY2UvV2ViQ29yZS9odG1sL1RleHRGaWVsZElucHV0VHlwZS5jcHAKQEAgLTQ2
Miw3ICs0NjIsNyBAQCB2b2lkIFRleHRGaWVsZElucHV0VHlwZTo6dXBkYXRlUGxhY2Vob2xkZXJU
ZXh0KCkKICAgICBpZiAocGxhY2Vob2xkZXJUZXh0LmlzRW1wdHkoKSkgewogICAgICAgICBpZiAo
bV9wbGFjZWhvbGRlcikgewogICAgICAgICAgICAgbV9wbGFjZWhvbGRlci0+cGFyZW50Tm9kZSgp
LT5yZW1vdmVDaGlsZChtX3BsYWNlaG9sZGVyLmdldCgpLCBBU1NFUlRfTk9fRVhDRVBUSU9OKTsK
LSAgICAgICAgICAgIG1fcGxhY2Vob2xkZXIuY2xlYXIoKTsKKyAgICAgICAgICAgIG1fcGxhY2Vo
b2xkZXIgPSBudWxscHRyOwogICAgICAgICB9CiAgICAgICAgIHJldHVybjsKICAgICB9CmRpZmYg
LS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9odG1sL1ZhbGlkYXRpb25NZXNzYWdlLmNwcCBiL1NvdXJj
ZS9XZWJDb3JlL2h0bWwvVmFsaWRhdGlvbk1lc3NhZ2UuY3BwCmluZGV4IDUzYjY3NWJjMmI0OTQ2
NzRlN2JmYzViYTM5YjY5YjY2Zjg5NWYwYjguLmY2MWUxYjVlZmUyNzA5MzFkYWIwZWMyZWVkZjBm
MzRiZDc3ODJiOTYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2h0bWwvVmFsaWRhdGlvbk1l
c3NhZ2UuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2h0bWwvVmFsaWRhdGlvbk1lc3NhZ2UuY3Bw
CkBAIC0yMzUsMTAgKzIzNSwxMCBAQCB2b2lkIFZhbGlkYXRpb25NZXNzYWdlOjpkZWxldGVCdWJi
bGVUcmVlKCkKIHsKICAgICBBU1NFUlQoIXZhbGlkYXRpb25NZXNzYWdlQ2xpZW50KCkpOwogICAg
IGlmIChtX2J1YmJsZSkgewotICAgICAgICBtX21lc3NhZ2VIZWFkaW5nID0gMDsKLSAgICAgICAg
bV9tZXNzYWdlQm9keSA9IDA7CisgICAgICAgIG1fbWVzc2FnZUhlYWRpbmcgPSBudWxscHRyOwor
ICAgICAgICBtX21lc3NhZ2VCb2R5ID0gbnVsbHB0cjsKICAgICAgICAgbV9lbGVtZW50LT51c2Vy
QWdlbnRTaGFkb3dSb290KCktPnJlbW92ZUNoaWxkKG1fYnViYmxlLmdldCgpLCBBU1NFUlRfTk9f
RVhDRVBUSU9OKTsKLSAgICAgICAgbV9idWJibGUgPSAwOworICAgICAgICBtX2J1YmJsZSA9IG51
bGxwdHI7CiAgICAgfQogICAgIG1fbWVzc2FnZSA9IFN0cmluZygpOwogfQpkaWZmIC0tZ2l0IGEv
U291cmNlL1dlYkNvcmUvaHRtbC9jYW52YXMvV2ViR0xQcm9ncmFtLmNwcCBiL1NvdXJjZS9XZWJD
b3JlL2h0bWwvY2FudmFzL1dlYkdMUHJvZ3JhbS5jcHAKaW5kZXggOTJjMDUxMTkwMWQzMDZjMzg1
MzlkNTUzMzk4ZjE1MDJiM2YwYWRhYy4uMWI3NTJlNmUwZmRiNGJhNjNjOTNiYzJlNzUzMDYyNTY1
YzJkNGNkNyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvaHRtbC9jYW52YXMvV2ViR0xQcm9n
cmFtLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9odG1sL2NhbnZhcy9XZWJHTFByb2dyYW0uY3Bw
CkBAIC01OCwxMSArNTgsMTEgQEAgdm9pZCBXZWJHTFByb2dyYW06OmRlbGV0ZU9iamVjdEltcGwo
R3JhcGhpY3NDb250ZXh0M0QqIGNvbnRleHQzZCwgUGxhdGZvcm0zRE9iamUKICAgICBjb250ZXh0
M2QtPmRlbGV0ZVByb2dyYW0ob2JqKTsKICAgICBpZiAobV92ZXJ0ZXhTaGFkZXIpIHsKICAgICAg
ICAgbV92ZXJ0ZXhTaGFkZXItPm9uRGV0YWNoZWQoY29udGV4dDNkKTsKLSAgICAgICAgbV92ZXJ0
ZXhTaGFkZXIgPSAwOworICAgICAgICBtX3ZlcnRleFNoYWRlciA9IG51bGxwdHI7CiAgICAgfQog
ICAgIGlmIChtX2ZyYWdtZW50U2hhZGVyKSB7CiAgICAgICAgIG1fZnJhZ21lbnRTaGFkZXItPm9u
RGV0YWNoZWQoY29udGV4dDNkKTsKLSAgICAgICAgbV9mcmFnbWVudFNoYWRlciA9IDA7CisgICAg
ICAgIG1fZnJhZ21lbnRTaGFkZXIgPSBudWxscHRyOwogICAgIH0KIH0KIApAQCAtMTQ4LDEyICsx
NDgsMTIgQEAgYm9vbCBXZWJHTFByb2dyYW06OmRldGFjaFNoYWRlcihXZWJHTFNoYWRlciogc2hh
ZGVyKQogICAgIGNhc2UgR3JhcGhpY3NDb250ZXh0M0Q6OlZFUlRFWF9TSEFERVI6CiAgICAgICAg
IGlmIChtX3ZlcnRleFNoYWRlciAhPSBzaGFkZXIpCiAgICAgICAgICAgICByZXR1cm4gZmFsc2U7
Ci0gICAgICAgIG1fdmVydGV4U2hhZGVyID0gMDsKKyAgICAgICAgbV92ZXJ0ZXhTaGFkZXIgPSBu
dWxscHRyOwogICAgICAgICByZXR1cm4gdHJ1ZTsKICAgICBjYXNlIEdyYXBoaWNzQ29udGV4dDNE
OjpGUkFHTUVOVF9TSEFERVI6CiAgICAgICAgIGlmIChtX2ZyYWdtZW50U2hhZGVyICE9IHNoYWRl
cikKICAgICAgICAgICAgIHJldHVybiBmYWxzZTsKLSAgICAgICAgbV9mcmFnbWVudFNoYWRlciA9
IDA7CisgICAgICAgIG1fZnJhZ21lbnRTaGFkZXIgPSBudWxscHRyOwogICAgICAgICByZXR1cm4g
dHJ1ZTsKICAgICBkZWZhdWx0OgogICAgICAgICByZXR1cm4gZmFsc2U7CmRpZmYgLS1naXQgYS9T
b3VyY2UvV2ViQ29yZS9odG1sL2NhbnZhcy9XZWJHTFJlbmRlcmluZ0NvbnRleHRCYXNlLmNwcCBi
L1NvdXJjZS9XZWJDb3JlL2h0bWwvY2FudmFzL1dlYkdMUmVuZGVyaW5nQ29udGV4dEJhc2UuY3Bw
CmluZGV4IGI2NmI2NjkwNGIxNGZmZGUyZjMzOWFkNmRhMjc2ZjZkNzZjMWI0YTMuLjdhMWNmZjNm
MjgzYTg4ODZjMTcyM2FhMDNmZGY5NzE5MWNlZGZlNTggMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJD
b3JlL2h0bWwvY2FudmFzL1dlYkdMUmVuZGVyaW5nQ29udGV4dEJhc2UuY3BwCisrKyBiL1NvdXJj
ZS9XZWJDb3JlL2h0bWwvY2FudmFzL1dlYkdMUmVuZGVyaW5nQ29udGV4dEJhc2UuY3BwCkBAIC00
OTQsMTAgKzQ5NCwxMCBAQCB2b2lkIFdlYkdMUmVuZGVyaW5nQ29udGV4dEJhc2U6OmluaXRpYWxp
emVOZXdDb250ZXh0KCkKICAgICBtX3VucGFja0ZsaXBZID0gZmFsc2U7CiAgICAgbV91bnBhY2tQ
cmVtdWx0aXBseUFscGhhID0gZmFsc2U7CiAgICAgbV91bnBhY2tDb2xvcnNwYWNlQ29udmVyc2lv
biA9IEdyYXBoaWNzQ29udGV4dDNEOjpCUk9XU0VSX0RFRkFVTFRfV0VCR0w7Ci0gICAgbV9ib3Vu
ZEFycmF5QnVmZmVyID0gMDsKLSAgICBtX2N1cnJlbnRQcm9ncmFtID0gMDsKLSAgICBtX2ZyYW1l
YnVmZmVyQmluZGluZyA9IDA7Ci0gICAgbV9yZW5kZXJidWZmZXJCaW5kaW5nID0gMDsKKyAgICBt
X2JvdW5kQXJyYXlCdWZmZXIgPSBudWxscHRyOworICAgIG1fY3VycmVudFByb2dyYW0gPSBudWxs
cHRyOworICAgIG1fZnJhbWVidWZmZXJCaW5kaW5nID0gbnVsbHB0cjsKKyAgICBtX3JlbmRlcmJ1
ZmZlckJpbmRpbmcgPSBudWxscHRyOwogICAgIG1fZGVwdGhNYXNrID0gdHJ1ZTsKICAgICBtX3N0
ZW5jaWxFbmFibGVkID0gZmFsc2U7CiAgICAgbV9zdGVuY2lsTWFzayA9IDB4RkZGRkZGRkY7CkBA
IC02MjMsNyArNjIzLDcgQEAgdm9pZCBXZWJHTFJlbmRlcmluZ0NvbnRleHRCYXNlOjpkZXN0cm95
R3JhcGhpY3NDb250ZXh0M0QoKQogICAgIGlmIChtX2NvbnRleHQpIHsKICAgICAgICAgbV9jb250
ZXh0LT5zZXRDb250ZXh0TG9zdENhbGxiYWNrKG51bGxwdHIpOwogICAgICAgICBtX2NvbnRleHQt
PnNldEVycm9yTWVzc2FnZUNhbGxiYWNrKG51bGxwdHIpOwotICAgICAgICBtX2NvbnRleHQuY2xl
YXIoKTsKKyAgICAgICAgbV9jb250ZXh0ID0gbnVsbHB0cjsKICAgICB9CiB9CiAKQEAgLTE0Nzks
NyArMTQ3OSw3IEBAIHZvaWQgV2ViR0xSZW5kZXJpbmdDb250ZXh0QmFzZTo6ZGVsZXRlQnVmZmVy
KFdlYkdMQnVmZmVyKiBidWZmZXIpCiAgICAgaWYgKCFkZWxldGVPYmplY3QoYnVmZmVyKSkKICAg
ICAgICAgcmV0dXJuOwogICAgIGlmIChtX2JvdW5kQXJyYXlCdWZmZXIgPT0gYnVmZmVyKQotICAg
ICAgICBtX2JvdW5kQXJyYXlCdWZmZXIgPSAwOworICAgICAgICBtX2JvdW5kQXJyYXlCdWZmZXIg
PSBudWxscHRyOwogCiAgICAgbV9ib3VuZFZlcnRleEFycmF5T2JqZWN0LT51bmJpbmRCdWZmZXIo
YnVmZmVyKTsKIH0KQEAgLTE0ODksNyArMTQ4OSw3IEBAIHZvaWQgV2ViR0xSZW5kZXJpbmdDb250
ZXh0QmFzZTo6ZGVsZXRlRnJhbWVidWZmZXIoV2ViR0xGcmFtZWJ1ZmZlciogZnJhbWVidWZmZXIp
CiAgICAgaWYgKCFkZWxldGVPYmplY3QoZnJhbWVidWZmZXIpKQogICAgICAgICByZXR1cm47CiAg
ICAgaWYgKGZyYW1lYnVmZmVyID09IG1fZnJhbWVidWZmZXJCaW5kaW5nKSB7Ci0gICAgICAgIG1f
ZnJhbWVidWZmZXJCaW5kaW5nID0gMDsKKyAgICAgICAgbV9mcmFtZWJ1ZmZlckJpbmRpbmcgPSBu
dWxscHRyOwogICAgICAgICBtX2NvbnRleHQtPmJpbmRGcmFtZWJ1ZmZlcihHcmFwaGljc0NvbnRl
eHQzRDo6RlJBTUVCVUZGRVIsIDApOwogICAgIH0KIH0KQEAgLTE1MDYsNyArMTUwNiw3IEBAIHZv
aWQgV2ViR0xSZW5kZXJpbmdDb250ZXh0QmFzZTo6ZGVsZXRlUmVuZGVyYnVmZmVyKFdlYkdMUmVu
ZGVyYnVmZmVyKiByZW5kZXJidWZmCiAgICAgaWYgKCFkZWxldGVPYmplY3QocmVuZGVyYnVmZmVy
KSkKICAgICAgICAgcmV0dXJuOwogICAgIGlmIChyZW5kZXJidWZmZXIgPT0gbV9yZW5kZXJidWZm
ZXJCaW5kaW5nKQotICAgICAgICBtX3JlbmRlcmJ1ZmZlckJpbmRpbmcgPSAwOworICAgICAgICBt
X3JlbmRlcmJ1ZmZlckJpbmRpbmcgPSBudWxscHRyOwogICAgIGlmIChtX2ZyYW1lYnVmZmVyQmlu
ZGluZykKICAgICAgICAgbV9mcmFtZWJ1ZmZlckJpbmRpbmctPnJlbW92ZUF0dGFjaG1lbnRGcm9t
Qm91bmRGcmFtZWJ1ZmZlcihyZW5kZXJidWZmZXIpOwogfQpkaWZmIC0tZ2l0IGEvU291cmNlL1dl
YkNvcmUvaHRtbC9jYW52YXMvV2ViR0xWZXJ0ZXhBcnJheU9iamVjdEJhc2UuY3BwIGIvU291cmNl
L1dlYkNvcmUvaHRtbC9jYW52YXMvV2ViR0xWZXJ0ZXhBcnJheU9iamVjdEJhc2UuY3BwCmluZGV4
IGY2ZDhkYTY2ZTgwMTQ3OTc4ZjgxNzU3YzYzYmU0NmVhYzY5NTU4NDkuLmYzOWMwZGRkMjI3Nzlk
MDVmMTYwZDE5Nzk1NjMxOGE2MDBlYjkzY2MgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2h0
bWwvY2FudmFzL1dlYkdMVmVydGV4QXJyYXlPYmplY3RCYXNlLmNwcAorKysgYi9Tb3VyY2UvV2Vi
Q29yZS9odG1sL2NhbnZhcy9XZWJHTFZlcnRleEFycmF5T2JqZWN0QmFzZS5jcHAKQEAgLTc2LDcg
Kzc2LDcgQEAgdm9pZCBXZWJHTFZlcnRleEFycmF5T2JqZWN0QmFzZTo6dW5iaW5kQnVmZmVyKFBh
c3NSZWZQdHI8V2ViR0xCdWZmZXI+IGJ1ZmZlcikKIHsKICAgICBpZiAobV9ib3VuZEVsZW1lbnRB
cnJheUJ1ZmZlciA9PSBidWZmZXIpIHsKICAgICAgICAgbV9ib3VuZEVsZW1lbnRBcnJheUJ1ZmZl
ci0+b25EZXRhY2hlZChjb250ZXh0KCktPmdyYXBoaWNzQ29udGV4dDNEKCkpOwotICAgICAgICBt
X2JvdW5kRWxlbWVudEFycmF5QnVmZmVyID0gMDsKKyAgICAgICAgbV9ib3VuZEVsZW1lbnRBcnJh
eUJ1ZmZlciA9IG51bGxwdHI7CiAgICAgfQogICAgIAogICAgIGZvciAoc2l6ZV90IGkgPSAwOyBp
IDwgbV92ZXJ0ZXhBdHRyaWJTdGF0ZS5zaXplKCk7ICsraSkgewpAQCAtOTUsNyArOTUsNyBAQCB2
b2lkIFdlYkdMVmVydGV4QXJyYXlPYmplY3RCYXNlOjp1bmJpbmRCdWZmZXIoUGFzc1JlZlB0cjxX
ZWJHTEJ1ZmZlcj4gYnVmZmVyKQogICAgICAgICAgICAgICAgIHN0YXRlLm9yaWdpbmFsU3RyaWRl
ID0gMDsKICAgICAgICAgICAgICAgICBzdGF0ZS5vZmZzZXQgPSAwOwogICAgICAgICAgICAgfSBl
bHNlCi0gICAgICAgICAgICAgICAgc3RhdGUuYnVmZmVyQmluZGluZyA9IDA7CisgICAgICAgICAg
ICAgICAgc3RhdGUuYnVmZmVyQmluZGluZyA9IG51bGxwdHI7CiAgICAgICAgIH0KICAgICB9CiB9
CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9odG1sL3RyYWNrL1RleHRUcmFjay5jcHAgYi9T
b3VyY2UvV2ViQ29yZS9odG1sL3RyYWNrL1RleHRUcmFjay5jcHAKaW5kZXggNzRlY2YxNmQ3MDk3
NjZmNGFmMWY0NWRjMjA2YzJkZWM2MzM2YTZmMS4uMmExMzNhNWZjZWFmZTNjN2IzYmMxODZhZDJi
ODU3MGY2MTJlZDMxOSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvaHRtbC90cmFjay9UZXh0
VHJhY2suY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2h0bWwvdHJhY2svVGV4dFRyYWNrLmNwcApA
QCAtMjQ1LDcgKzI0NSw3IEBAIFRleHRUcmFja0N1ZUxpc3QqIFRleHRUcmFjazo6Y3VlcygpCiAg
ICAgLy8gaHR0cDovL3d3dy53aGF0d2cub3JnL3NwZWNzL3dlYi1hcHBzL2N1cnJlbnQtd29yay8j
ZG9tLXRleHR0cmFjay1jdWVzCiAgICAgaWYgKG1fbW9kZSAhPSBkaXNhYmxlZEtleXdvcmQoKSkK
ICAgICAgICAgcmV0dXJuIGVuc3VyZVRleHRUcmFja0N1ZUxpc3QoKTsKLSAgICByZXR1cm4gMDsK
KyAgICByZXR1cm4gbnVsbHB0cjsKIH0KIAogdm9pZCBUZXh0VHJhY2s6OnJlbW92ZUFsbEN1ZXMo
KQpAQCAtMjU3LDkgKzI1Nyw5IEBAIHZvaWQgVGV4dFRyYWNrOjpyZW1vdmVBbGxDdWVzKCkKICAg
ICAgICAgbV9jbGllbnQtPnRleHRUcmFja1JlbW92ZUN1ZXModGhpcywgbV9jdWVzLmdldCgpKTsK
ICAgICAKICAgICBmb3IgKHNpemVfdCBpID0gMDsgaSA8IG1fY3Vlcy0+bGVuZ3RoKCk7ICsraSkK
LSAgICAgICAgbV9jdWVzLT5pdGVtKGkpLT5zZXRUcmFjaygwKTsKKyAgICAgICAgbV9jdWVzLT5p
dGVtKGkpLT5zZXRUcmFjayhudWxscHRyKTsKICAgICAKLSAgICBtX2N1ZXMgPSAwOworICAgIG1f
Y3VlcyA9IG51bGxwdHI7CiB9CiAKIFRleHRUcmFja0N1ZUxpc3QqIFRleHRUcmFjazo6YWN0aXZl
Q3VlcygpIGNvbnN0CkBAIC0yNzIsNyArMjcyLDcgQEAgVGV4dFRyYWNrQ3VlTGlzdCogVGV4dFRy
YWNrOjphY3RpdmVDdWVzKCkgY29uc3QKICAgICAvLyBodHRwOi8vd3d3LndoYXR3Zy5vcmcvc3Bl
Y3Mvd2ViLWFwcHMvY3VycmVudC13b3JrLyNkb20tdGV4dHRyYWNrLWFjdGl2ZWN1ZXMKICAgICBp
ZiAobV9jdWVzICYmIG1fbW9kZSAhPSBkaXNhYmxlZEtleXdvcmQoKSkKICAgICAgICAgcmV0dXJu
IG1fY3Vlcy0+YWN0aXZlQ3VlcygpOwotICAgIHJldHVybiAwOworICAgIHJldHVybiBudWxscHRy
OwogfQogCiB2b2lkIFRleHRUcmFjazo6YWRkQ3VlKFBhc3NSZWZQdHI8VGV4dFRyYWNrQ3VlPiBw
cnBDdWUsIEV4Y2VwdGlvbkNvZGUmIGVjKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvaHRt
bC90cmFjay9WVFRDdWUuY3BwIGIvU291cmNlL1dlYkNvcmUvaHRtbC90cmFjay9WVFRDdWUuY3Bw
CmluZGV4IDM0YTJlZTc5NmE4ODgwMDY5MDMyODgzYzMxZWI4ZmYxNWU3NDdiZDMuLjBiOWM3MTc5
MzBiZjA2N2I1ZWEyM2U1MTQzMWY5ZmNlYTk3ZDZiYjUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJD
b3JlL2h0bWwvdHJhY2svVlRUQ3VlLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9odG1sL3RyYWNr
L1ZUVEN1ZS5jcHAKQEAgLTQ4Miw3ICs0ODIsNyBAQCB2b2lkIFZUVEN1ZTo6c2V0VGV4dChjb25z
dCBTdHJpbmcmIHRleHQpCiAgICAgd2lsbENoYW5nZSgpOwogICAgIC8vIENsZWFyIHRoZSBkb2N1
bWVudCBmcmFnbWVudCBidXQgZG9uJ3QgYm90aGVyIHRvIGNyZWF0ZSBpdCBhZ2FpbiBqdXN0IHll
dCBhcyB3ZSBjYW4gZG8gdGhhdAogICAgIC8vIHdoZW4gaXQgaXMgcmVxdWVzdGVkLgotICAgIG1f
d2ViVlRUTm9kZVRyZWUgPSAwOworICAgIG1fd2ViVlRUTm9kZVRyZWUgPSBudWxscHRyOwogICAg
IG1fY29udGVudCA9IHRleHQ7CiAgICAgZGlkQ2hhbmdlKCk7CiB9CmRpZmYgLS1naXQgYS9Tb3Vy
Y2UvV2ViQ29yZS9pbnNwZWN0b3IvSW5zcGVjdG9yQXBwbGljYXRpb25DYWNoZUFnZW50LmNwcCBi
L1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9JbnNwZWN0b3JBcHBsaWNhdGlvbkNhY2hlQWdlbnQu
Y3BwCmluZGV4IGZkNGNhZjYyMTQxMTlhODQ0N2MwMjk0NTc0MDRmMWY1MmJjOGUzN2EuLjJkY2Qy
NmU5OWJmM2EwN2E2NzYwOGFhZTEyZDU3NDQzOTA1YTYyNjUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9X
ZWJDb3JlL2luc3BlY3Rvci9JbnNwZWN0b3JBcHBsaWNhdGlvbkNhY2hlQWdlbnQuY3BwCisrKyBi
L1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9JbnNwZWN0b3JBcHBsaWNhdGlvbkNhY2hlQWdlbnQu
Y3BwCkBAIC01OCw3ICs1OCw3IEBAIHZvaWQgSW5zcGVjdG9yQXBwbGljYXRpb25DYWNoZUFnZW50
OjpkaWRDcmVhdGVGcm9udGVuZEFuZEJhY2tlbmQoRnJvbnRlbmRDaGFubmVsCiB2b2lkIEluc3Bl
Y3RvckFwcGxpY2F0aW9uQ2FjaGVBZ2VudDo6d2lsbERlc3Ryb3lGcm9udGVuZEFuZEJhY2tlbmQo
SW5zcGVjdG9yOjpEaXNjb25uZWN0UmVhc29uKQogewogICAgIG1fZnJvbnRlbmREaXNwYXRjaGVy
ID0gbnVsbHB0cjsKLSAgICBtX2JhY2tlbmREaXNwYXRjaGVyLmNsZWFyKCk7CisgICAgbV9iYWNr
ZW5kRGlzcGF0Y2hlciA9IG51bGxwdHI7CiAKICAgICBtX2luc3RydW1lbnRpbmdBZ2VudHMtPnNl
dEluc3BlY3RvckFwcGxpY2F0aW9uQ2FjaGVBZ2VudChudWxscHRyKTsKIH0KZGlmZiAtLWdpdCBh
L1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9JbnNwZWN0b3JDU1NBZ2VudC5jcHAgYi9Tb3VyY2Uv
V2ViQ29yZS9pbnNwZWN0b3IvSW5zcGVjdG9yQ1NTQWdlbnQuY3BwCmluZGV4IGE5MDgzZDA4MTQy
N2I5YzAxOTE4OWU2YzQ5YjgxNDYyZWYzNjM1OWUuLjNkMDYyMDgzNGViMjhjZGZkMDZiNThjZDY2
MjZiYTNjMTQ4ZTcxOTEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9JbnNw
ZWN0b3JDU1NBZ2VudC5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL0luc3BlY3Rv
ckNTU0FnZW50LmNwcApAQCAtMzYwLDcgKzM2MCw3IEBAIHZvaWQgSW5zcGVjdG9yQ1NTQWdlbnQ6
OmRpZENyZWF0ZUZyb250ZW5kQW5kQmFja2VuZChJbnNwZWN0b3I6OkZyb250ZW5kQ2hhbm5lbCoK
IHZvaWQgSW5zcGVjdG9yQ1NTQWdlbnQ6OndpbGxEZXN0cm95RnJvbnRlbmRBbmRCYWNrZW5kKElu
c3BlY3Rvcjo6RGlzY29ubmVjdFJlYXNvbikKIHsKICAgICBtX2Zyb250ZW5kRGlzcGF0Y2hlciA9
IG51bGxwdHI7Ci0gICAgbV9iYWNrZW5kRGlzcGF0Y2hlci5jbGVhcigpOworICAgIG1fYmFja2Vu
ZERpc3BhdGNoZXIgPSBudWxscHRyOwogCiAgICAgcmVzZXROb25QZXJzaXN0ZW50RGF0YSgpOwog
fQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL0luc3BlY3RvckNvbnRyb2xs
ZXIuY3BwIGIvU291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL0luc3BlY3RvckNvbnRyb2xsZXIuY3Bw
CmluZGV4IGYyM2E1ZWEwZWU1NmQwNWUxNDQ1MTA2YTcyNWFjMWM5NmE0NjhlOTkuLmJjODBiY2Ey
OWM5NTE0Nzc3ZGEwNGRjMWNhZTFiNzUxY2Y5ZmY4YWYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJD
b3JlL2luc3BlY3Rvci9JbnNwZWN0b3JDb250cm9sbGVyLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29y
ZS9pbnNwZWN0b3IvSW5zcGVjdG9yQ29udHJvbGxlci5jcHAKQEAgLTI2Myw3ICsyNjMsNyBAQCB2
b2lkIEluc3BlY3RvckNvbnRyb2xsZXI6OmRpc2Nvbm5lY3RGcm9udGVuZChEaXNjb25uZWN0UmVh
c29uIHJlYXNvbikKICAgICBtX2FnZW50cy53aWxsRGVzdHJveUZyb250ZW5kQW5kQmFja2VuZChy
ZWFzb24pOwogCiAgICAgbV9iYWNrZW5kRGlzcGF0Y2hlci0+Y2xlYXJGcm9udGVuZCgpOwotICAg
IG1fYmFja2VuZERpc3BhdGNoZXIuY2xlYXIoKTsKKyAgICBtX2JhY2tlbmREaXNwYXRjaGVyID0g
bnVsbHB0cjsKICAgICBtX2Zyb250ZW5kQ2hhbm5lbCA9IG51bGxwdHI7CiAKICAgICBtX2lzQXV0
b21hdGljSW5zcGVjdGlvbiA9IGZhbHNlOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvaW5z
cGVjdG9yL0luc3BlY3RvckRPTUFnZW50LmNwcCBiL1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9J
bnNwZWN0b3JET01BZ2VudC5jcHAKaW5kZXggMGVkMmM1YzA0ZmFhM2IxY2M4YmIwNWQ0OWFkOTZh
NmQxOTcxMmNhMS4uNzE5Zjc2MWRlNTZkOTA5MTU0YWYxNjIxNjBlMDJhMTQ2Y2E2MjYyZCAxMDA2
NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL0luc3BlY3RvckRPTUFnZW50LmNwcAor
KysgYi9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvSW5zcGVjdG9yRE9NQWdlbnQuY3BwCkBAIC0y
MzgsNyArMjM4LDcgQEAgdm9pZCBJbnNwZWN0b3JET01BZ2VudDo6ZGlkQ3JlYXRlRnJvbnRlbmRB
bmRCYWNrZW5kKEluc3BlY3Rvcjo6RnJvbnRlbmRDaGFubmVsKgogdm9pZCBJbnNwZWN0b3JET01B
Z2VudDo6d2lsbERlc3Ryb3lGcm9udGVuZEFuZEJhY2tlbmQoSW5zcGVjdG9yOjpEaXNjb25uZWN0
UmVhc29uKQogewogICAgIG1fZnJvbnRlbmREaXNwYXRjaGVyID0gbnVsbHB0cjsKLSAgICBtX2Jh
Y2tlbmREaXNwYXRjaGVyLmNsZWFyKCk7CisgICAgbV9iYWNrZW5kRGlzcGF0Y2hlciA9IG51bGxw
dHI7CiAKICAgICBtX2hpc3RvcnkucmVzZXQoKTsKICAgICBtX2RvbUVkaXRvci5yZXNldCgpOwpA
QCAtMjcyLDcgKzI3Miw3IEBAIHZvaWQgSW5zcGVjdG9yRE9NQWdlbnQ6OnJlc2V0KCkKICAgICBk
aXNjYXJkQmluZGluZ3MoKTsKICAgICBpZiAobV9yZXZhbGlkYXRlU3R5bGVBdHRyVGFzaykKICAg
ICAgICAgbV9yZXZhbGlkYXRlU3R5bGVBdHRyVGFzay0+cmVzZXQoKTsKLSAgICBtX2RvY3VtZW50
ID0gMDsKKyAgICBtX2RvY3VtZW50ID0gbnVsbHB0cjsKIH0KIAogdm9pZCBJbnNwZWN0b3JET01B
Z2VudDo6c2V0RE9NTGlzdGVuZXIoRE9NTGlzdGVuZXIqIGxpc3RlbmVyKQpkaWZmIC0tZ2l0IGEv
U291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL0luc3BlY3RvckRPTURlYnVnZ2VyQWdlbnQuY3BwIGIv
U291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL0luc3BlY3RvckRPTURlYnVnZ2VyQWdlbnQuY3BwCmlu
ZGV4IGY3NzhkZDk2MmNiMmRkYzE2MDYzMTc0NmE5OTViZGRhMGE5YjI3OGIuLmQ1MWQ0YmVhZTkx
MjIzNTA3YjZjNDQ2Nzc5NDRjYjI3YmEzNmM0NjQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3Jl
L2luc3BlY3Rvci9JbnNwZWN0b3JET01EZWJ1Z2dlckFnZW50LmNwcAorKysgYi9Tb3VyY2UvV2Vi
Q29yZS9pbnNwZWN0b3IvSW5zcGVjdG9yRE9NRGVidWdnZXJBZ2VudC5jcHAKQEAgLTEwOSw3ICsx
MDksNyBAQCB2b2lkIEluc3BlY3RvckRPTURlYnVnZ2VyQWdlbnQ6OmRpZENyZWF0ZUZyb250ZW5k
QW5kQmFja2VuZChJbnNwZWN0b3I6OkZyb250ZW5kQwogCiB2b2lkIEluc3BlY3RvckRPTURlYnVn
Z2VyQWdlbnQ6OndpbGxEZXN0cm95RnJvbnRlbmRBbmRCYWNrZW5kKEluc3BlY3Rvcjo6RGlzY29u
bmVjdFJlYXNvbikKIHsKLSAgICBtX2JhY2tlbmREaXNwYXRjaGVyLmNsZWFyKCk7CisgICAgbV9i
YWNrZW5kRGlzcGF0Y2hlciA9IG51bGxwdHI7CiAKICAgICBkaXNhYmxlKCk7CiB9CmRpZmYgLS1n
aXQgYS9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvSW5zcGVjdG9yRE9NU3RvcmFnZUFnZW50LmNw
cCBiL1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9JbnNwZWN0b3JET01TdG9yYWdlQWdlbnQuY3Bw
CmluZGV4IGIxNjg3Y2Y1NDg1M2Y2MjJmNTJhNjc2OGM5MmNjZjQyNThlN2E1ZjEuLjA0YWY4OGJj
ZTNkYzAwNTE0ODViM2UyYTUwZDk3MTYwMTdjMmY2OWYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJD
b3JlL2luc3BlY3Rvci9JbnNwZWN0b3JET01TdG9yYWdlQWdlbnQuY3BwCisrKyBiL1NvdXJjZS9X
ZWJDb3JlL2luc3BlY3Rvci9JbnNwZWN0b3JET01TdG9yYWdlQWdlbnQuY3BwCkBAIC03Niw3ICs3
Niw3IEBAIHZvaWQgSW5zcGVjdG9yRE9NU3RvcmFnZUFnZW50OjpkaWRDcmVhdGVGcm9udGVuZEFu
ZEJhY2tlbmQoSW5zcGVjdG9yOjpGcm9udGVuZENoCiB2b2lkIEluc3BlY3RvckRPTVN0b3JhZ2VB
Z2VudDo6d2lsbERlc3Ryb3lGcm9udGVuZEFuZEJhY2tlbmQoSW5zcGVjdG9yOjpEaXNjb25uZWN0
UmVhc29uKQogewogICAgIG1fZnJvbnRlbmREaXNwYXRjaGVyID0gbnVsbHB0cjsKLSAgICBtX2Jh
Y2tlbmREaXNwYXRjaGVyLmNsZWFyKCk7CisgICAgbV9iYWNrZW5kRGlzcGF0Y2hlciA9IG51bGxw
dHI7CiAKICAgICBFcnJvclN0cmluZyB1bnVzZWQ7CiAgICAgZGlzYWJsZSh1bnVzZWQpOwpkaWZm
IC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL0luc3BlY3RvckRhdGFiYXNlQWdlbnQu
Y3BwIGIvU291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL0luc3BlY3RvckRhdGFiYXNlQWdlbnQuY3Bw
CmluZGV4IDkxMzRkZmU0N2M3OWM2YzZlZjQ0MTM0NDUyMGI3MDQ2ZTFkNWRjMTMuLmJlMjdmOTU2
MTQ0NTlmYmZmZDFiMDJkNDg1Y2YxZDc3ZGVkOTY2ZWQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJD
b3JlL2luc3BlY3Rvci9JbnNwZWN0b3JEYXRhYmFzZUFnZW50LmNwcAorKysgYi9Tb3VyY2UvV2Vi
Q29yZS9pbnNwZWN0b3IvSW5zcGVjdG9yRGF0YWJhc2VBZ2VudC5jcHAKQEAgLTIzMSw3ICsyMzEs
NyBAQCB2b2lkIEluc3BlY3RvckRhdGFiYXNlQWdlbnQ6OmRpZENyZWF0ZUZyb250ZW5kQW5kQmFj
a2VuZChJbnNwZWN0b3I6OkZyb250ZW5kQ2hhbgogdm9pZCBJbnNwZWN0b3JEYXRhYmFzZUFnZW50
Ojp3aWxsRGVzdHJveUZyb250ZW5kQW5kQmFja2VuZChJbnNwZWN0b3I6OkRpc2Nvbm5lY3RSZWFz
b24pCiB7CiAgICAgbV9mcm9udGVuZERpc3BhdGNoZXIgPSBudWxscHRyOwotICAgIG1fYmFja2Vu
ZERpc3BhdGNoZXIuY2xlYXIoKTsKKyAgICBtX2JhY2tlbmREaXNwYXRjaGVyID0gbnVsbHB0cjsK
IAogICAgIEVycm9yU3RyaW5nIHVudXNlZDsKICAgICBkaXNhYmxlKHVudXNlZCk7CmRpZmYgLS1n
aXQgYS9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvSW5zcGVjdG9ySW5kZXhlZERCQWdlbnQuY3Bw
IGIvU291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL0luc3BlY3RvckluZGV4ZWREQkFnZW50LmNwcApp
bmRleCA5YmYxMjkxMTZjNGRjODBhMDg2MzFjMDRkNzA3YjE4M2FiOGJjYWNmLi4xNzJmYjU4MTI4
MDIwYTNhZTU1ZDY1ZDRmMDhmNTdhZTE2YTBlY2Y3IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29y
ZS9pbnNwZWN0b3IvSW5zcGVjdG9ySW5kZXhlZERCQWdlbnQuY3BwCisrKyBiL1NvdXJjZS9XZWJD
b3JlL2luc3BlY3Rvci9JbnNwZWN0b3JJbmRleGVkREJBZ2VudC5jcHAKQEAgLTU4Miw3ICs1ODIs
NyBAQCB2b2lkIEluc3BlY3RvckluZGV4ZWREQkFnZW50OjpkaWRDcmVhdGVGcm9udGVuZEFuZEJh
Y2tlbmQoSW5zcGVjdG9yOjpGcm9udGVuZENoYQogCiB2b2lkIEluc3BlY3RvckluZGV4ZWREQkFn
ZW50Ojp3aWxsRGVzdHJveUZyb250ZW5kQW5kQmFja2VuZChJbnNwZWN0b3I6OkRpc2Nvbm5lY3RS
ZWFzb24pCiB7Ci0gICAgbV9iYWNrZW5kRGlzcGF0Y2hlci5jbGVhcigpOworICAgIG1fYmFja2Vu
ZERpc3BhdGNoZXIgPSBudWxscHRyOwogCiAgICAgRXJyb3JTdHJpbmcgdW51c2VkOwogICAgIGRp
c2FibGUodW51c2VkKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9JbnNw
ZWN0b3JMYXllclRyZWVBZ2VudC5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvSW5zcGVj
dG9yTGF5ZXJUcmVlQWdlbnQuY3BwCmluZGV4IGJlNjQ0OTZlNDYzOGQwMGMzZWMyODkwODY1NmFl
Njc3YTczODk3NTguLmY2ZTQxZmFjODI4YWM2YzRmNzc2MDY1YWRmN2EzZGJmOGQ3OGJlMDQgMTAw
NjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9JbnNwZWN0b3JMYXllclRyZWVBZ2Vu
dC5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL0luc3BlY3RvckxheWVyVHJlZUFn
ZW50LmNwcApAQCAtNjUsNyArNjUsNyBAQCB2b2lkIEluc3BlY3RvckxheWVyVHJlZUFnZW50Ojpk
aWRDcmVhdGVGcm9udGVuZEFuZEJhY2tlbmQoSW5zcGVjdG9yOjpGcm9udGVuZENoYQogdm9pZCBJ
bnNwZWN0b3JMYXllclRyZWVBZ2VudDo6d2lsbERlc3Ryb3lGcm9udGVuZEFuZEJhY2tlbmQoSW5z
cGVjdG9yOjpEaXNjb25uZWN0UmVhc29uKQogewogICAgIG1fZnJvbnRlbmREaXNwYXRjaGVyID0g
bnVsbHB0cjsKLSAgICBtX2JhY2tlbmREaXNwYXRjaGVyLmNsZWFyKCk7CisgICAgbV9iYWNrZW5k
RGlzcGF0Y2hlciA9IG51bGxwdHI7CiAKICAgICBFcnJvclN0cmluZyB1bnVzZWQ7CiAgICAgZGlz
YWJsZSh1bnVzZWQpOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL0luc3Bl
Y3Rvck92ZXJsYXkuY3BwIGIvU291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL0luc3BlY3Rvck92ZXJs
YXkuY3BwCmluZGV4IDZkM2EwZjNjYTcyNjVhMWFmZjhjMzI4YTVmM2Y2Yjc5YzMzMWQ4ZDQuLmZh
ZWE3Y2VmMmM2MzJlZTUxMDJjZGYyYjY1NDQ5N2FiODA3YmUxNzcgMTAwNjQ0Ci0tLSBhL1NvdXJj
ZS9XZWJDb3JlL2luc3BlY3Rvci9JbnNwZWN0b3JPdmVybGF5LmNwcAorKysgYi9Tb3VyY2UvV2Vi
Q29yZS9pbnNwZWN0b3IvSW5zcGVjdG9yT3ZlcmxheS5jcHAKQEAgLTI0Myw5ICsyNDMsOSBAQCB2
b2lkIEluc3BlY3Rvck92ZXJsYXk6OnNldFBhdXNlZEluRGVidWdnZXJNZXNzYWdlKGNvbnN0IFN0
cmluZyogbWVzc2FnZSkKIAogdm9pZCBJbnNwZWN0b3JPdmVybGF5OjpoaWRlSGlnaGxpZ2h0KCkK
IHsKLSAgICBtX2hpZ2hsaWdodE5vZGUuY2xlYXIoKTsKLSAgICBtX2hpZ2hsaWdodE5vZGVMaXN0
LmNsZWFyKCk7Ci0gICAgbV9oaWdobGlnaHRRdWFkLnJlc2V0KCk7CisgICAgbV9oaWdobGlnaHRO
b2RlID0gbnVsbHB0cjsKKyAgICBtX2hpZ2hsaWdodE5vZGVMaXN0ID0gbnVsbHB0cjsKKyAgICBt
X2hpZ2hsaWdodFF1YWQgPSBudWxscHRyOwogICAgIHVwZGF0ZSgpOwogfQogCkBAIC0yNTMsNyAr
MjUzLDcgQEAgdm9pZCBJbnNwZWN0b3JPdmVybGF5OjpoaWdobGlnaHROb2RlTGlzdChQYXNzUmVm
UHRyPE5vZGVMaXN0PiBub2RlcywgY29uc3QgSGlnaGwKIHsKICAgICBtX25vZGVIaWdobGlnaHRD
b25maWcgPSBoaWdobGlnaHRDb25maWc7CiAgICAgbV9oaWdobGlnaHROb2RlTGlzdCA9IG5vZGVz
OwotICAgIG1faGlnaGxpZ2h0Tm9kZS5jbGVhcigpOworICAgIG1faGlnaGxpZ2h0Tm9kZSA9IG51
bGxwdHI7CiAgICAgdXBkYXRlKCk7CiB9CiAKQEAgLTI2MSw3ICsyNjEsNyBAQCB2b2lkIEluc3Bl
Y3Rvck92ZXJsYXk6OmhpZ2hsaWdodE5vZGUoTm9kZSogbm9kZSwgY29uc3QgSGlnaGxpZ2h0Q29u
ZmlnJiBoaWdobGlnaAogewogICAgIG1fbm9kZUhpZ2hsaWdodENvbmZpZyA9IGhpZ2hsaWdodENv
bmZpZzsKICAgICBtX2hpZ2hsaWdodE5vZGUgPSBub2RlOwotICAgIG1faGlnaGxpZ2h0Tm9kZUxp
c3QuY2xlYXIoKTsKKyAgICBtX2hpZ2hsaWdodE5vZGVMaXN0ID0gbnVsbHB0cjsKICAgICB1cGRh
dGUoKTsKIH0KIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL0luc3BlY3Rv
clBhZ2VBZ2VudC5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvSW5zcGVjdG9yUGFnZUFn
ZW50LmNwcAppbmRleCA2ZjUyYmZhZTBiNTIzYzk2ZjE0ZTU3NDE3MjI2OTVhMTc1NTFjYThhLi4z
ZTlmZWJlZmI1NGZlNDQ4YWM4ODA3NmQ5OTZmOWE4YWQwN2E1YjlhIDEwMDY0NAotLS0gYS9Tb3Vy
Y2UvV2ViQ29yZS9pbnNwZWN0b3IvSW5zcGVjdG9yUGFnZUFnZW50LmNwcAorKysgYi9Tb3VyY2Uv
V2ViQ29yZS9pbnNwZWN0b3IvSW5zcGVjdG9yUGFnZUFnZW50LmNwcApAQCAtMzQ4LDcgKzM0OCw3
IEBAIHZvaWQgSW5zcGVjdG9yUGFnZUFnZW50OjpkaWRDcmVhdGVGcm9udGVuZEFuZEJhY2tlbmQo
SW5zcGVjdG9yOjpGcm9udGVuZENoYW5uZWwqCiB2b2lkIEluc3BlY3RvclBhZ2VBZ2VudDo6d2ls
bERlc3Ryb3lGcm9udGVuZEFuZEJhY2tlbmQoSW5zcGVjdG9yOjpEaXNjb25uZWN0UmVhc29uKQog
ewogICAgIG1fZnJvbnRlbmREaXNwYXRjaGVyID0gbnVsbHB0cjsKLSAgICBtX2JhY2tlbmREaXNw
YXRjaGVyLmNsZWFyKCk7CisgICAgbV9iYWNrZW5kRGlzcGF0Y2hlciA9IG51bGxwdHI7CiAKICAg
ICBFcnJvclN0cmluZyB1bnVzZWQ7CiAgICAgZGlzYWJsZSh1bnVzZWQpOwpAQCAtMzc0LDcgKzM3
NCw3IEBAIHZvaWQgSW5zcGVjdG9yUGFnZUFnZW50OjplbmFibGUoRXJyb3JTdHJpbmcmKQogdm9p
ZCBJbnNwZWN0b3JQYWdlQWdlbnQ6OmRpc2FibGUoRXJyb3JTdHJpbmcmKQogewogICAgIG1fZW5h
YmxlZCA9IGZhbHNlOwotICAgIG1fc2NyaXB0c1RvRXZhbHVhdGVPbkxvYWQuY2xlYXIoKTsKKyAg
ICBtX3NjcmlwdHNUb0V2YWx1YXRlT25Mb2FkID0gbnVsbHB0cjsKICAgICBtX2luc3RydW1lbnRp
bmdBZ2VudHMtPnNldEluc3BlY3RvclBhZ2VBZ2VudChudWxscHRyKTsKIAogICAgIEVycm9yU3Ry
aW5nIHVudXNlZDsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9JbnNwZWN0
b3JSZXBsYXlBZ2VudC5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvSW5zcGVjdG9yUmVw
bGF5QWdlbnQuY3BwCmluZGV4IDY0Y2I4MTE3Yzc5ODFkYWM0MzRmNDNjYmYzYmZkOWUzMzEyODQ3
YTEuLjE4MWE2MDk4MmFmNzI2YzI0NGE0YzFiMzNkNmJjODdjMjliNTA1ODUgMTAwNjQ0Ci0tLSBh
L1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9JbnNwZWN0b3JSZXBsYXlBZ2VudC5jcHAKKysrIGIv
U291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL0luc3BlY3RvclJlcGxheUFnZW50LmNwcApAQCAtMTkz
LDcgKzE5Myw3IEBAIHZvaWQgSW5zcGVjdG9yUmVwbGF5QWdlbnQ6OmRpZENyZWF0ZUZyb250ZW5k
QW5kQmFja2VuZChJbnNwZWN0b3I6OkZyb250ZW5kQ2hhbm5lCiB2b2lkIEluc3BlY3RvclJlcGxh
eUFnZW50Ojp3aWxsRGVzdHJveUZyb250ZW5kQW5kQmFja2VuZChJbnNwZWN0b3I6OkRpc2Nvbm5l
Y3RSZWFzb24pCiB7CiAgICAgbV9mcm9udGVuZERpc3BhdGNoZXIgPSBudWxscHRyOwotICAgIG1f
YmFja2VuZERpc3BhdGNoZXIuY2xlYXIoKTsKKyAgICBtX2JhY2tlbmREaXNwYXRjaGVyID0gbnVs
bHB0cjsKIAogICAgIG1faW5zdHJ1bWVudGluZ0FnZW50cy0+c2V0SW5zcGVjdG9yUmVwbGF5QWdl
bnQobnVsbHB0cik7CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9JbnNw
ZWN0b3JSZXNvdXJjZUFnZW50LmNwcCBiL1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9JbnNwZWN0
b3JSZXNvdXJjZUFnZW50LmNwcAppbmRleCA4NTQ0ODljMDRmOTc0ZDk3Y2QzNjY0YWVhYWQ0NWZl
MDFiYjFlZjAxLi43YjU2YTBmZjlkMTU4ZjZiYThiMTM1M2EwYmFiMmU0ZDBlODlhMWQ3IDEwMDY0
NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvSW5zcGVjdG9yUmVzb3VyY2VBZ2VudC5j
cHAKKysrIGIvU291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL0luc3BlY3RvclJlc291cmNlQWdlbnQu
Y3BwCkBAIC0xODEsNyArMTgxLDcgQEAgdm9pZCBJbnNwZWN0b3JSZXNvdXJjZUFnZW50OjpkaWRD
cmVhdGVGcm9udGVuZEFuZEJhY2tlbmQoSW5zcGVjdG9yOjpGcm9udGVuZENoYW4KIHZvaWQgSW5z
cGVjdG9yUmVzb3VyY2VBZ2VudDo6d2lsbERlc3Ryb3lGcm9udGVuZEFuZEJhY2tlbmQoSW5zcGVj
dG9yOjpEaXNjb25uZWN0UmVhc29uKQogewogICAgIG1fZnJvbnRlbmREaXNwYXRjaGVyID0gbnVs
bHB0cjsKLSAgICBtX2JhY2tlbmREaXNwYXRjaGVyLmNsZWFyKCk7CisgICAgbV9iYWNrZW5kRGlz
cGF0Y2hlciA9IG51bGxwdHI7CiAKICAgICBFcnJvclN0cmluZyB1bnVzZWQ7CiAgICAgZGlzYWJs
ZSh1bnVzZWQpOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL0luc3BlY3Rv
clN0eWxlU2hlZXQuY3BwIGIvU291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL0luc3BlY3RvclN0eWxl
U2hlZXQuY3BwCmluZGV4IGI0N2M2NTRkM2Q3NjJjZTQ1ZGNmZTRmMTQ0YjRjOTY1N2VjYzlmYzQu
LjA2ZWMxYjZmMmY2NDRjMmMxZDA2ZDNmZWU5YWJlMTI4ZmMwYTVmOGMgMTAwNjQ0Ci0tLSBhL1Nv
dXJjZS9XZWJDb3JlL2luc3BlY3Rvci9JbnNwZWN0b3JTdHlsZVNoZWV0LmNwcAorKysgYi9Tb3Vy
Y2UvV2ViQ29yZS9pbnNwZWN0b3IvSW5zcGVjdG9yU3R5bGVTaGVldC5jcHAKQEAgLTEyNjEsNyAr
MTI2MSw3IEBAIHZvaWQgSW5zcGVjdG9yU3R5bGVTaGVldEZvcklubGluZVN0eWxlOjpkaWRNb2Rp
ZnlFbGVtZW50QXR0cmlidXRlKCkKICAgICBtX2lzU3R5bGVUZXh0VmFsaWQgPSBmYWxzZTsKICAg
ICBpZiAobV9lbGVtZW50LT5pc1N0eWxlZEVsZW1lbnQoKSAmJiBtX2VsZW1lbnQtPnN0eWxlKCkg
IT0gbV9pbnNwZWN0b3JTdHlsZS0+Y3NzU3R5bGUoKSkKICAgICAgICAgbV9pbnNwZWN0b3JTdHls
ZSA9IEluc3BlY3RvclN0eWxlOjpjcmVhdGUoSW5zcGVjdG9yQ1NTSWQoaWQoKSwgMCksIGlubGlu
ZVN0eWxlKCksIHRoaXMpOwotICAgIG1fcnVsZVNvdXJjZURhdGEuY2xlYXIoKTsKKyAgICBtX3J1
bGVTb3VyY2VEYXRhID0gbnVsbHB0cjsKIH0KIAogYm9vbCBJbnNwZWN0b3JTdHlsZVNoZWV0Rm9y
SW5saW5lU3R5bGU6OmdldFRleHQoU3RyaW5nKiByZXN1bHQpIGNvbnN0CkBAIC0xMjg1LDcgKzEy
ODUsNyBAQCBib29sIEluc3BlY3RvclN0eWxlU2hlZXRGb3JJbmxpbmVTdHlsZTo6c2V0U3R5bGVU
ZXh0KENTU1N0eWxlRGVjbGFyYXRpb24qIHN0eWxlLAogCiAgICAgbV9zdHlsZVRleHQgPSB0ZXh0
OwogICAgIG1faXNTdHlsZVRleHRWYWxpZCA9IHRydWU7Ci0gICAgbV9ydWxlU291cmNlRGF0YS5j
bGVhcigpOworICAgIG1fcnVsZVNvdXJjZURhdGEgPSBudWxscHRyOwogICAgIHJldHVybiAhZWM7
CiB9CiAKQEAgLTEzMDQsNyArMTMwNCw3IEBAIGJvb2wgSW5zcGVjdG9yU3R5bGVTaGVldEZvcklu
bGluZVN0eWxlOjplbnN1cmVQYXJzZWREYXRhUmVhZHkoKQogICAgIC8vIFRoZSAic3R5bGUiIHBy
b3BlcnR5IHZhbHVlIGNhbiBnZXQgY2hhbmdlZCBpbmRpcmVjdGx5LCBlLmcuIHZpYSBlbGVtZW50
LnN0eWxlLmJvcmRlcldpZHRoID0gIjJweCIuCiAgICAgY29uc3QgU3RyaW5nJiBjdXJyZW50U3R5
bGVUZXh0ID0gZWxlbWVudFN0eWxlVGV4dCgpOwogICAgIGlmIChtX3N0eWxlVGV4dCAhPSBjdXJy
ZW50U3R5bGVUZXh0KSB7Ci0gICAgICAgIG1fcnVsZVNvdXJjZURhdGEuY2xlYXIoKTsKKyAgICAg
ICAgbV9ydWxlU291cmNlRGF0YSA9IG51bGxwdHI7CiAgICAgICAgIG1fc3R5bGVUZXh0ID0gY3Vy
cmVudFN0eWxlVGV4dDsKICAgICAgICAgbV9pc1N0eWxlVGV4dFZhbGlkID0gdHJ1ZTsKICAgICB9
CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvSW5zcGVjdG9yVGltZWxpbmVB
Z2VudC5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvSW5zcGVjdG9yVGltZWxpbmVBZ2Vu
dC5jcHAKaW5kZXggMGUzMmJjNWU2Mzg5OGFmZjhlZDJiMDZhYmIwZjdhMWJhOTgwMDhhNC4uZjU3
NTZhMmQxZWE4Mzg3MTE1MGQ1MjFmOGVmZjE0OWEyM2FjNzhjYiAxMDA2NDQKLS0tIGEvU291cmNl
L1dlYkNvcmUvaW5zcGVjdG9yL0luc3BlY3RvclRpbWVsaW5lQWdlbnQuY3BwCisrKyBiL1NvdXJj
ZS9XZWJDb3JlL2luc3BlY3Rvci9JbnNwZWN0b3JUaW1lbGluZUFnZW50LmNwcApAQCAtMTAzLDcg
KzEwMyw3IEBAIHZvaWQgSW5zcGVjdG9yVGltZWxpbmVBZ2VudDo6ZGlkQ3JlYXRlRnJvbnRlbmRB
bmRCYWNrZW5kKEluc3BlY3Rvcjo6RnJvbnRlbmRDaGFuCiB2b2lkIEluc3BlY3RvclRpbWVsaW5l
QWdlbnQ6OndpbGxEZXN0cm95RnJvbnRlbmRBbmRCYWNrZW5kKEluc3BlY3Rvcjo6RGlzY29ubmVj
dFJlYXNvbiByZWFzb24pCiB7CiAgICAgbV9mcm9udGVuZERpc3BhdGNoZXIgPSBudWxscHRyOwot
ICAgIG1fYmFja2VuZERpc3BhdGNoZXIuY2xlYXIoKTsKKyAgICBtX2JhY2tlbmREaXNwYXRjaGVy
ID0gbnVsbHB0cjsKIAogICAgIG1faW5zdHJ1bWVudGluZ0FnZW50cy0+c2V0UGVyc2lzdGVudElu
c3BlY3RvclRpbWVsaW5lQWdlbnQobnVsbHB0cik7CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJD
b3JlL2luc3BlY3Rvci9JbnNwZWN0b3JXb3JrZXJBZ2VudC5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9p
bnNwZWN0b3IvSW5zcGVjdG9yV29ya2VyQWdlbnQuY3BwCmluZGV4IGRlYmM2OTg3OTVkOThjNDJi
OGViMThjMTBmZGEyYTI1Zjg1ZjJlOWIuLjVlMjFmMzViYjQ4MDNiZWIxZWEyZDU5ODRiNDJkMDg2
NjQ1ZDkxODEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9JbnNwZWN0b3JX
b3JrZXJBZ2VudC5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL0luc3BlY3Rvcldv
cmtlckFnZW50LmNwcApAQCAtMTI3LDcgKzEyNyw3IEBAIHZvaWQgSW5zcGVjdG9yV29ya2VyQWdl
bnQ6OndpbGxEZXN0cm95RnJvbnRlbmRBbmRCYWNrZW5kKEluc3BlY3Rvcjo6RGlzY29ubmVjdFJl
CiAgICAgZGlzYWJsZSh1bnVzZWQpOwogCiAgICAgbV9mcm9udGVuZERpc3BhdGNoZXIgPSBudWxs
cHRyOwotICAgIG1fYmFja2VuZERpc3BhdGNoZXIuY2xlYXIoKTsKKyAgICBtX2JhY2tlbmREaXNw
YXRjaGVyID0gbnVsbHB0cjsKIH0KIAogdm9pZCBJbnNwZWN0b3JXb3JrZXJBZ2VudDo6ZW5hYmxl
KEVycm9yU3RyaW5nJikKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9QYWdl
UnVudGltZUFnZW50LmNwcCBiL1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9QYWdlUnVudGltZUFn
ZW50LmNwcAppbmRleCA5M2RiNTcyYTdmMDQ1NTA1YjllNTE1ZTUwOTBjNGZjMGI1MDIxZTJkLi5l
MjQ0NWFiZjQ0M2QwOGY0Mzg0YTAzOWJjOWU1NWQ4ZDVmM2Y3MTJiIDEwMDY0NAotLS0gYS9Tb3Vy
Y2UvV2ViQ29yZS9pbnNwZWN0b3IvUGFnZVJ1bnRpbWVBZ2VudC5jcHAKKysrIGIvU291cmNlL1dl
YkNvcmUvaW5zcGVjdG9yL1BhZ2VSdW50aW1lQWdlbnQuY3BwCkBAIC02OSw3ICs2OSw3IEBAIHZv
aWQgUGFnZVJ1bnRpbWVBZ2VudDo6ZGlkQ3JlYXRlRnJvbnRlbmRBbmRCYWNrZW5kKEluc3BlY3Rv
cjo6RnJvbnRlbmRDaGFubmVsKiBmCiB2b2lkIFBhZ2VSdW50aW1lQWdlbnQ6OndpbGxEZXN0cm95
RnJvbnRlbmRBbmRCYWNrZW5kKEluc3BlY3Rvcjo6RGlzY29ubmVjdFJlYXNvbiByZWFzb24pCiB7
CiAgICAgbV9mcm9udGVuZERpc3BhdGNoZXIgPSBudWxscHRyOwotICAgIG1fYmFja2VuZERpc3Bh
dGNoZXIuY2xlYXIoKTsKKyAgICBtX2JhY2tlbmREaXNwYXRjaGVyID0gbnVsbHB0cjsKIAogICAg
IFN0cmluZyB1bnVzZWQ7CiAgICAgZGlzYWJsZSh1bnVzZWQpOwpkaWZmIC0tZ2l0IGEvU291cmNl
L1dlYkNvcmUvaW5zcGVjdG9yL1dlYkluamVjdGVkU2NyaXB0TWFuYWdlci5jcHAgYi9Tb3VyY2Uv
V2ViQ29yZS9pbnNwZWN0b3IvV2ViSW5qZWN0ZWRTY3JpcHRNYW5hZ2VyLmNwcAppbmRleCA5ZjRh
ZjQyNjkzZWM1NzU5NTMxMzM5NDQ2MGIxOTA1ZGZlMGFkNTg3Li41NjE5NmYwYWUzNzFlZjQ0M2Mw
NTIzZWIzMWJiNmZjNWVhZjNlNWIxIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0
b3IvV2ViSW5qZWN0ZWRTY3JpcHRNYW5hZ2VyLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9pbnNw
ZWN0b3IvV2ViSW5qZWN0ZWRTY3JpcHRNYW5hZ2VyLmNwcApAQCAtNDQsNyArNDQsNyBAQCB2b2lk
IFdlYkluamVjdGVkU2NyaXB0TWFuYWdlcjo6ZGlzY29ubmVjdCgpCiAgICAgSW5qZWN0ZWRTY3Jp
cHRNYW5hZ2VyOjpkaXNjb25uZWN0KCk7CiAKICAgICBtX2NvbW1hbmRMaW5lQVBJSG9zdC0+ZGlz
Y29ubmVjdCgpOwotICAgIG1fY29tbWFuZExpbmVBUElIb3N0LmNsZWFyKCk7CisgICAgbV9jb21t
YW5kTGluZUFQSUhvc3QgPSBudWxscHRyOwogfQogCiB2b2lkIFdlYkluamVjdGVkU2NyaXB0TWFu
YWdlcjo6ZGlkQ3JlYXRlSW5qZWN0ZWRTY3JpcHQoSW5qZWN0ZWRTY3JpcHQgaW5qZWN0ZWRTY3Jp
cHQpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvV29ya2VySW5zcGVjdG9y
Q29udHJvbGxlci5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvV29ya2VySW5zcGVjdG9y
Q29udHJvbGxlci5jcHAKaW5kZXggZjFmZTQxMDA1YWRmZWE0YmMwMWUwYWQ1Yjc3ZjU4ZjBiOTZj
MjcwZC4uZDgzNGUwZWE5ZjVhMzAwYTgzMjRmNGFmMWQ2NjZkM2I5MDZhYzY1MiAxMDA2NDQKLS0t
IGEvU291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL1dvcmtlckluc3BlY3RvckNvbnRyb2xsZXIuY3Bw
CisrKyBiL1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9Xb3JrZXJJbnNwZWN0b3JDb250cm9sbGVy
LmNwcApAQCAtMTI2LDcgKzEyNiw3IEBAIHZvaWQgV29ya2VySW5zcGVjdG9yQ29udHJvbGxlcjo6
ZGlzY29ubmVjdEZyb250ZW5kKEluc3BlY3Rvcjo6RGlzY29ubmVjdFJlYXNvbiByCiAKICAgICBt
X2FnZW50cy53aWxsRGVzdHJveUZyb250ZW5kQW5kQmFja2VuZChyZWFzb24pOwogICAgIG1fYmFj
a2VuZERpc3BhdGNoZXItPmNsZWFyRnJvbnRlbmQoKTsKLSAgICBtX2JhY2tlbmREaXNwYXRjaGVy
LmNsZWFyKCk7CisgICAgbV9iYWNrZW5kRGlzcGF0Y2hlciA9IG51bGxwdHI7CiAgICAgbV9mcm9u
dGVuZENoYW5uZWwgPSBudWxscHRyOwogfQogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9p
bnNwZWN0b3IvV29ya2VyUnVudGltZUFnZW50LmNwcCBiL1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rv
ci9Xb3JrZXJSdW50aW1lQWdlbnQuY3BwCmluZGV4IDIwNmE0MWY1ZmI0MmNkMTVhMzM2Y2NiMzk0
YjJlYWM1MWRlNTRmZmEuLjEyMjJlNTUyNzk4YmI2MzczOTlmOGFlNzU3YjRmZjRmZGJkMmU1MGQg
MTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9Xb3JrZXJSdW50aW1lQWdlbnQu
Y3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9Xb3JrZXJSdW50aW1lQWdlbnQuY3Bw
CkBAIC02MCw3ICs2MCw3IEBAIHZvaWQgV29ya2VyUnVudGltZUFnZW50OjpkaWRDcmVhdGVGcm9u
dGVuZEFuZEJhY2tlbmQoSW5zcGVjdG9yOjpGcm9udGVuZENoYW5uZWwqCiAKIHZvaWQgV29ya2Vy
UnVudGltZUFnZW50Ojp3aWxsRGVzdHJveUZyb250ZW5kQW5kQmFja2VuZChJbnNwZWN0b3I6OkRp
c2Nvbm5lY3RSZWFzb24gcmVhc29uKQogewotICAgIG1fYmFja2VuZERpc3BhdGNoZXIuY2xlYXIo
KTsKKyAgICBtX2JhY2tlbmREaXNwYXRjaGVyID0gbnVsbHB0cjsKIAogICAgIEluc3BlY3RvclJ1
bnRpbWVBZ2VudDo6d2lsbERlc3Ryb3lGcm9udGVuZEFuZEJhY2tlbmQocmVhc29uKTsKIH0KZGlm
ZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2xvYWRlci9Eb2N1bWVudExvYWRlci5jcHAgYi9Tb3Vy
Y2UvV2ViQ29yZS9sb2FkZXIvRG9jdW1lbnRMb2FkZXIuY3BwCmluZGV4IDVlYzQ3YWMzMWYzMzVi
MzVhZWUyODc3MjJkYjYwYzU0NDZkMWJiOGEuLjdjYTFmMjM4NjZlNmQxNzc1YzA2YTUyYWNlMzIy
MmMyMTE1NGI0OTUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2xvYWRlci9Eb2N1bWVudExv
YWRlci5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvbG9hZGVyL0RvY3VtZW50TG9hZGVyLmNwcApA
QCAtMTUyNCw3ICsxNTI0LDcgQEAgdm9pZCBEb2N1bWVudExvYWRlcjo6Z2V0SWNvbkxvYWREZWNp
c2lvbkZvckljb25VUkwoY29uc3QgU3RyaW5nJiB1cmxTdHJpbmcpCiB2b2lkIERvY3VtZW50TG9h
ZGVyOjpjb250aW51ZUljb25Mb2FkV2l0aERlY2lzaW9uKEljb25Mb2FkRGVjaXNpb24gZGVjaXNp
b24pCiB7CiAgICAgQVNTRVJUKG1faWNvbkxvYWREZWNpc2lvbkNhbGxiYWNrKTsKLSAgICBtX2lj
b25Mb2FkRGVjaXNpb25DYWxsYmFjayA9IDA7CisgICAgbV9pY29uTG9hZERlY2lzaW9uQ2FsbGJh
Y2sgPSBudWxscHRyOwogICAgIGlmIChtX2ZyYW1lKQogICAgICAgICBtX2ZyYW1lLT5sb2FkZXIo
KS5pY29uKCkuY29udGludWVMb2FkV2l0aERlY2lzaW9uKGRlY2lzaW9uKTsKIH0KZGlmZiAtLWdp
dCBhL1NvdXJjZS9XZWJDb3JlL2xvYWRlci9Eb2N1bWVudFRocmVhZGFibGVMb2FkZXIuY3BwIGIv
U291cmNlL1dlYkNvcmUvbG9hZGVyL0RvY3VtZW50VGhyZWFkYWJsZUxvYWRlci5jcHAKaW5kZXgg
MWU4NmZhYzFiZGY4MjlhNjNlMTY5MGFmMmEzZTQ3NTI2MzIwN2QxYy4uYjBlNTg5OGJiY2Y4MGY5
ZmZhOWQyODY1NGIyNzRlY2ZhYjgyOWZmMSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvbG9h
ZGVyL0RvY3VtZW50VGhyZWFkYWJsZUxvYWRlci5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvbG9h
ZGVyL0RvY3VtZW50VGhyZWFkYWJsZUxvYWRlci5jcHAKQEAgLTY0LDcgKzY0LDcgQEAgUGFzc1Jl
ZlB0cjxEb2N1bWVudFRocmVhZGFibGVMb2FkZXI+IERvY3VtZW50VGhyZWFkYWJsZUxvYWRlcjo6
Y3JlYXRlKERvY3VtZW50JgogewogICAgIFJlZlB0cjxEb2N1bWVudFRocmVhZGFibGVMb2FkZXI+
IGxvYWRlciA9IGFkb3B0UmVmKG5ldyBEb2N1bWVudFRocmVhZGFibGVMb2FkZXIoZG9jdW1lbnQs
IGNsaWVudCwgTG9hZEFzeW5jaHJvbm91c2x5LCByZXF1ZXN0LCBvcHRpb25zKSk7CiAgICAgaWYg
KCFsb2FkZXItPm1fcmVzb3VyY2UpCi0gICAgICAgIGxvYWRlciA9IDA7CisgICAgICAgIGxvYWRl
ciA9IG51bGxwdHI7CiAgICAgcmV0dXJuIGxvYWRlci5yZWxlYXNlKCk7CiB9CiAKZGlmZiAtLWdp
dCBhL1NvdXJjZS9XZWJDb3JlL2xvYWRlci9Eb2N1bWVudFdyaXRlci5jcHAgYi9Tb3VyY2UvV2Vi
Q29yZS9sb2FkZXIvRG9jdW1lbnRXcml0ZXIuY3BwCmluZGV4IGNjNTEzOTNjMTBmNjM2YmQ3NmVk
MTA5OGIzZWJjYzM2YzQyMmMxMTEuLmExYzM3N2Y4ZTFiMzQ2MDdkMjU3NTQxNWFjZmE0YWJjZjkx
MGI0MzEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2xvYWRlci9Eb2N1bWVudFdyaXRlci5j
cHAKKysrIGIvU291cmNlL1dlYkNvcmUvbG9hZGVyL0RvY3VtZW50V3JpdGVyLmNwcApAQCAtOTAs
NyArOTAsNyBAQCB2b2lkIERvY3VtZW50V3JpdGVyOjpyZXBsYWNlRG9jdW1lbnQoY29uc3QgU3Ry
aW5nJiBzb3VyY2UsIERvY3VtZW50KiBvd25lckRvY3VtZQogCiB2b2lkIERvY3VtZW50V3JpdGVy
OjpjbGVhcigpCiB7Ci0gICAgbV9kZWNvZGVyID0gMDsKKyAgICBtX2RlY29kZXIgPSBudWxscHRy
OwogICAgIG1faGFzUmVjZWl2ZWRTb21lRGF0YSA9IGZhbHNlOwogICAgIGlmICghbV9lbmNvZGlu
Z1dhc0Nob3NlbkJ5VXNlcikKICAgICAgICAgbV9lbmNvZGluZyA9IFN0cmluZygpOwpAQCAtMjQ1
LDcgKzI0NSw3IEBAIHZvaWQgRG9jdW1lbnRXcml0ZXI6OmVuZCgpCiAgICAgaWYgKCFtX3BhcnNl
cikKICAgICAgICAgcmV0dXJuOwogICAgIG1fcGFyc2VyLT5maW5pc2goKTsKLSAgICBtX3BhcnNl
ciA9IDA7CisgICAgbV9wYXJzZXIgPSBudWxscHRyOwogfQogCiB2b2lkIERvY3VtZW50V3JpdGVy
OjpzZXRFbmNvZGluZyhjb25zdCBTdHJpbmcmIG5hbWUsIGJvb2wgdXNlckNob3NlbikKZGlmZiAt
LWdpdCBhL1NvdXJjZS9XZWJDb3JlL2xvYWRlci9GcmFtZUxvYWRlci5jcHAgYi9Tb3VyY2UvV2Vi
Q29yZS9sb2FkZXIvRnJhbWVMb2FkZXIuY3BwCmluZGV4IDUyMmIxNTdkYmNiZWMwYjUwMTFmOTVl
ODY2NjZhOWUyMGM2OWJmY2QuLjNiZGI2MjFkN2RhYjU2MzZlMDA5ZTk1YTFjM2IwYjdmOWNiZjM4
OGIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2xvYWRlci9GcmFtZUxvYWRlci5jcHAKKysr
IGIvU291cmNlL1dlYkNvcmUvbG9hZGVyL0ZyYW1lTG9hZGVyLmNwcApAQCAtNjkyLDcgKzY5Miw3
IEBAIHZvaWQgRnJhbWVMb2FkZXI6OmRpZEJlZ2luRG9jdW1lbnQoYm9vbCBkaXNwYXRjaCkKIAog
ICAgIGlmIChtX3BlbmRpbmdTdGF0ZU9iamVjdCkgewogICAgICAgICBtX2ZyYW1lLmRvY3VtZW50
KCktPnN0YXRlUG9wcGVkKG1fcGVuZGluZ1N0YXRlT2JqZWN0LmdldCgpKTsKLSAgICAgICAgbV9w
ZW5kaW5nU3RhdGVPYmplY3QuY2xlYXIoKTsKKyAgICAgICAgbV9wZW5kaW5nU3RhdGVPYmplY3Qg
PSBudWxscHRyOwogICAgIH0KIAogICAgIGlmIChkaXNwYXRjaCkKQEAgLTgxOCw3ICs4MTgsNyBA
QCB2b2lkIEZyYW1lTG9hZGVyOjpjaGVja0NvbXBsZXRlZCgpCiAKICAgICAvLyBPSywgY29tcGxl
dGVkLgogICAgIG1faXNDb21wbGV0ZSA9IHRydWU7Ci0gICAgbV9yZXF1ZXN0ZWRIaXN0b3J5SXRl
bSA9IDA7CisgICAgbV9yZXF1ZXN0ZWRIaXN0b3J5SXRlbSA9IG51bGxwdHI7CiAgICAgbV9mcmFt
ZS5kb2N1bWVudCgpLT5zZXRSZWFkeVN0YXRlKERvY3VtZW50OjpDb21wbGV0ZSk7CiAKICNpZiBQ
TEFURk9STShJT1MpCkBAIC0xMTM3LDcgKzExMzcsNyBAQCB2b2lkIEZyYW1lTG9hZGVyOjpzZXR1
cEZvclJlcGxhY2UoKQogICAgIG1fY2xpZW50LnJldmVydFRvUHJvdmlzaW9uYWxTdGF0ZShtX2Rv
Y3VtZW50TG9hZGVyLmdldCgpKTsKICAgICBzZXRTdGF0ZShGcmFtZVN0YXRlUHJvdmlzaW9uYWwp
OwogICAgIG1fcHJvdmlzaW9uYWxEb2N1bWVudExvYWRlciA9IG1fZG9jdW1lbnRMb2FkZXI7Ci0g
ICAgbV9kb2N1bWVudExvYWRlciA9IDA7CisgICAgbV9kb2N1bWVudExvYWRlciA9IG51bGxwdHI7
CiAgICAgZGV0YWNoQ2hpbGRyZW4oKTsKIH0KIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUv
bG9hZGVyL1Byb2dyZXNzVHJhY2tlci5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9sb2FkZXIvUHJvZ3Jl
c3NUcmFja2VyLmNwcAppbmRleCAwNDA1NGRlNGVhYjM5NTFmOTVlMDdlOWRlZDMyZGM5MTZmZDdl
ZTA2Li5kNTZjYTA1ZGI5OTBiMzBhNmIwN2QxMmZiMmMwOWU5OTZiNzk3MjBmIDEwMDY0NAotLS0g
YS9Tb3VyY2UvV2ViQ29yZS9sb2FkZXIvUHJvZ3Jlc3NUcmFja2VyLmNwcAorKysgYi9Tb3VyY2Uv
V2ViQ29yZS9sb2FkZXIvUHJvZ3Jlc3NUcmFja2VyLmNwcApAQCAtMTEzLDcgKzExMyw3IEBAIHZv
aWQgUHJvZ3Jlc3NUcmFja2VyOjpyZXNldCgpCiAgICAgbV9sYXN0Tm90aWZpZWRQcm9ncmVzc1Rp
bWUgPSBzdGQ6OmNocm9ubzo6c3RlYWR5X2Nsb2NrOjp0aW1lX3BvaW50KCk7CiAgICAgbV9maW5h
bFByb2dyZXNzQ2hhbmdlZFNlbnQgPSBmYWxzZTsKICAgICBtX251bVByb2dyZXNzVHJhY2tlZEZy
YW1lcyA9IDA7Ci0gICAgbV9vcmlnaW5hdGluZ1Byb2dyZXNzRnJhbWUgPSAwOworICAgIG1fb3Jp
Z2luYXRpbmdQcm9ncmVzc0ZyYW1lID0gbnVsbHB0cjsKIAogICAgIG1faGVhcnRiZWF0c1dpdGhO
b1Byb2dyZXNzID0gMDsKICAgICBtX3RvdGFsQnl0ZXNSZWNlaXZlZEJlZm9yZVByZXZpb3VzSGVh
cnRiZWF0ID0gMDsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2xvYWRlci9SZXNvdXJjZUxv
YWRlci5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9sb2FkZXIvUmVzb3VyY2VMb2FkZXIuY3BwCmluZGV4
IDQzMWEwY2IxZDQ0NWJlMmZmNTkwM2Q2MjM1NDc2NmFhY2NlNDM1MzYuLjE2NmE0NTRjMTA5MGJh
OGJkMmRkYzBjY2M3YmEyMDMxMzJhOTEzODAgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2xv
YWRlci9SZXNvdXJjZUxvYWRlci5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvbG9hZGVyL1Jlc291
cmNlTG9hZGVyLmNwcApAQCAtOTAsOCArOTAsOCBAQCB2b2lkIFJlc291cmNlTG9hZGVyOjpyZWxl
YXNlUmVzb3VyY2VzKCkKICAgICAvLyBoYXMgYmVlbiBkZWFsbG9jYXRlZCBhbmQgYWxzbyB0byBh
dm9pZCByZWVudGVyaW5nIHRoaXMgbWV0aG9kLgogICAgIFJlZjxSZXNvdXJjZUxvYWRlcj4gcHJv
dGVjdCgqdGhpcyk7CiAKLSAgICBtX2ZyYW1lID0gMDsKLSAgICBtX2RvY3VtZW50TG9hZGVyID0g
MDsKKyAgICBtX2ZyYW1lID0gbnVsbHB0cjsKKyAgICBtX2RvY3VtZW50TG9hZGVyID0gbnVsbHB0
cjsKICAgICAKICAgICAvLyBXZSBuZWVkIHRvIHNldCByZWFjaGVkVGVybWluYWxTdGF0ZSB0byB0
cnVlIGJlZm9yZSB3ZSByZWxlYXNlCiAgICAgLy8gdGhlIHJlc291cmNlcyB0byBwcmV2ZW50IGEg
ZG91YmxlIGRlYWxsb2Mgb2YgV2ViVmlldyA8cmRhcjovL3Byb2JsZW0vNDM3MjYyOD4KQEAgLTEw
NCwxMSArMTA0LDExIEBAIHZvaWQgUmVzb3VyY2VMb2FkZXI6OnJlbGVhc2VSZXNvdXJjZXMoKQog
ICAgICAgICAvLyBDbGVhciBvdXQgdGhlIFJlc291cmNlSGFuZGxlJ3MgY2xpZW50IHNvIHRoYXQg
aXQgZG9lc24ndCB0cnkgdG8gY2FsbAogICAgICAgICAvLyB1cyBiYWNrIGFmdGVyIHdlIHJlbGVh
c2UgaXQsIHVubGVzcyBpdCBoYXMgYmVlbiByZXBsYWNlZCBieSBzb21lb25lIGVsc2UuCiAgICAg
ICAgIGlmIChtX2hhbmRsZS0+Y2xpZW50KCkgPT0gdGhpcykKLSAgICAgICAgICAgIG1faGFuZGxl
LT5zZXRDbGllbnQoMCk7Ci0gICAgICAgIG1faGFuZGxlID0gMDsKKyAgICAgICAgICAgIG1faGFu
ZGxlLT5zZXRDbGllbnQobnVsbHB0cik7CisgICAgICAgIG1faGFuZGxlID0gbnVsbHB0cjsKICAg
ICB9CiAKLSAgICBtX3Jlc291cmNlRGF0YSA9IDA7CisgICAgbV9yZXNvdXJjZURhdGEgPSBudWxs
cHRyOwogICAgIG1fZGVmZXJyZWRSZXF1ZXN0ID0gUmVzb3VyY2VSZXF1ZXN0KCk7CiB9CiAKQEAg
LTIyNSw3ICsyMjUsNyBAQCB2b2lkIFJlc291cmNlTG9hZGVyOjpzZXREZWZlcnNMb2FkaW5nKGJv
b2wgZGVmZXJzKQogRnJhbWVMb2FkZXIqIFJlc291cmNlTG9hZGVyOjpmcmFtZUxvYWRlcigpIGNv
bnN0CiB7CiAgICAgaWYgKCFtX2ZyYW1lKQotICAgICAgICByZXR1cm4gMDsKKyAgICAgICAgcmV0
dXJuIG51bGxwdHI7CiAgICAgcmV0dXJuICZtX2ZyYW1lLT5sb2FkZXIoKTsKIH0KIApAQCAtMjQ0
LDcgKzI0NCw3IEBAIHZvaWQgUmVzb3VyY2VMb2FkZXI6OnNldERhdGFCdWZmZXJpbmdQb2xpY3ko
RGF0YUJ1ZmZlcmluZ1BvbGljeSBkYXRhQnVmZmVyaW5nUG9sCiAKICAgICAvLyBSZXNldCBhbnkg
YWxyZWFkeSBidWZmZXJlZCBkYXRhCiAgICAgaWYgKGRhdGFCdWZmZXJpbmdQb2xpY3kgPT0gRG9O
b3RCdWZmZXJEYXRhKQotICAgICAgICBtX3Jlc291cmNlRGF0YSA9IDA7CisgICAgICAgIG1fcmVz
b3VyY2VEYXRhID0gbnVsbHB0cjsKIH0KICAgICAKIHZvaWQgUmVzb3VyY2VMb2FkZXI6OndpbGxT
d2l0Y2hUb1N1YnN0aXR1dGVSZXNvdXJjZSgpCkBAIC01MzAsNyArNTMwLDcgQEAgdm9pZCBSZXNv
dXJjZUxvYWRlcjo6Y2FuY2VsKGNvbnN0IFJlc291cmNlRXJyb3ImIGVycm9yKQogICAgICAgICBt
X2RvY3VtZW50TG9hZGVyLT5jYW5jZWxQZW5kaW5nU3Vic3RpdHV0ZUxvYWQodGhpcyk7CiAgICAg
ICAgIGlmIChtX2hhbmRsZSkgewogICAgICAgICAgICAgbV9oYW5kbGUtPmNhbmNlbCgpOwotICAg
ICAgICAgICAgbV9oYW5kbGUgPSAwOworICAgICAgICAgICAgbV9oYW5kbGUgPSBudWxscHRyOwog
ICAgICAgICB9CiAgICAgICAgIGNsZWFudXBGb3JFcnJvcihub25OdWxsRXJyb3IpOwogICAgIH0K
ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2xvYWRlci9hcHBjYWNoZS9BcHBsaWNhdGlvbkNh
Y2hlR3JvdXAuY3BwIGIvU291cmNlL1dlYkNvcmUvbG9hZGVyL2FwcGNhY2hlL0FwcGxpY2F0aW9u
Q2FjaGVHcm91cC5jcHAKaW5kZXggNjI3YzBmZTc5ZTc1ZTA4MzljNjYxOWNhNzRhYjk3MDkxODk4
OTJhNi4uNTliY2FjOWExMDBiYmM1NDM4YWQ0MDMyN2ZmN2ZmY2QzOTg5NzA2MyAxMDA2NDQKLS0t
IGEvU291cmNlL1dlYkNvcmUvbG9hZGVyL2FwcGNhY2hlL0FwcGxpY2F0aW9uQ2FjaGVHcm91cC5j
cHAKKysrIGIvU291cmNlL1dlYkNvcmUvbG9hZGVyL2FwcGNhY2hlL0FwcGxpY2F0aW9uQ2FjaGVH
cm91cC5jcHAKQEAgLTMyNyw3ICszMjcsNyBAQCB2b2lkIEFwcGxpY2F0aW9uQ2FjaGVHcm91cDo6
c3RvcExvYWRpbmcoKQogICAgICAgICBtX21hbmlmZXN0SGFuZGxlLT5zZXRDbGllbnQoMCk7CiAK
ICAgICAgICAgbV9tYW5pZmVzdEhhbmRsZS0+Y2FuY2VsKCk7Ci0gICAgICAgIG1fbWFuaWZlc3RI
YW5kbGUgPSAwOworICAgICAgICBtX21hbmlmZXN0SGFuZGxlID0gbnVsbHB0cjsKICAgICB9CiAg
ICAgCiAgICAgaWYgKG1fY3VycmVudEhhbmRsZSkgewpAQCAtMzM4LDExICszMzgsMTEgQEAgdm9p
ZCBBcHBsaWNhdGlvbkNhY2hlR3JvdXA6OnN0b3BMb2FkaW5nKCkKICAgICAgICAgbV9jdXJyZW50
SGFuZGxlLT5zZXRDbGllbnQoMCk7CiAKICAgICAgICAgbV9jdXJyZW50SGFuZGxlLT5jYW5jZWwo
KTsKLSAgICAgICAgbV9jdXJyZW50SGFuZGxlID0gMDsKKyAgICAgICAgbV9jdXJyZW50SGFuZGxl
ID0gbnVsbHB0cjsKICAgICB9ICAgIAogCiAgICAgLy8gRklYTUU6IFJlc2V0dGluZyBqdXN0IGEg
dGlueSBwYXJ0IG9mIHRoZSBzdGF0ZSBpbiB0aGlzIGZ1bmN0aW9uIGlzIGNvbmZ1c2luZy4gQ2Fs
bGVycyBoYXZlIHRvIHRha2UgY2FyZSBvZiBhIGxvdCBtb3JlLgotICAgIG1fY2FjaGVCZWluZ1Vw
ZGF0ZWQgPSAwOworICAgIG1fY2FjaGVCZWluZ1VwZGF0ZWQgPSBudWxscHRyOwogICAgIG1fcGVu
ZGluZ0VudHJpZXMuY2xlYXIoKTsKIH0gICAgCiAKQEAgLTUyMSw3ICs1MjEsNyBAQCB2b2lkIEFw
cGxpY2F0aW9uQ2FjaGVHcm91cDo6ZGlkUmVjZWl2ZVJlc3BvbnNlKFJlc291cmNlSGFuZGxlKiBo
YW5kbGUsIGNvbnN0IFJlcwogICAgICAgICAgICAgbV9jYWNoZUJlaW5nVXBkYXRlZC0+YWRkUmVz
b3VyY2UoQXBwbGljYXRpb25DYWNoZVJlc291cmNlOjpjcmVhdGUodXJsLCBuZXdlc3RDYWNoZWRS
ZXNvdXJjZS0+cmVzcG9uc2UoKSwgdHlwZSwgbmV3ZXN0Q2FjaGVkUmVzb3VyY2UtPmRhdGEoKSwg
bmV3ZXN0Q2FjaGVkUmVzb3VyY2UtPnBhdGgoKSkpOwogICAgICAgICAgICAgbV9wZW5kaW5nRW50
cmllcy5yZW1vdmUobV9jdXJyZW50SGFuZGxlLT5maXJzdFJlcXVlc3QoKS51cmwoKSk7CiAgICAg
ICAgICAgICBtX2N1cnJlbnRIYW5kbGUtPmNhbmNlbCgpOwotICAgICAgICAgICAgbV9jdXJyZW50
SGFuZGxlID0gMDsKKyAgICAgICAgICAgIG1fY3VycmVudEhhbmRsZSA9IG51bGxwdHI7CiAgICAg
ICAgICAgICAvLyBMb2FkIHRoZSBuZXh0IHJlc291cmNlLCBpZiBhbnkuCiAgICAgICAgICAgICBz
dGFydExvYWRpbmdFbnRyeSgpOwogICAgICAgICAgICAgcmV0dXJuOwpAQCAtNTM4LDcgKzUzOCw3
IEBAIHZvaWQgQXBwbGljYXRpb25DYWNoZUdyb3VwOjpkaWRSZWNlaXZlUmVzcG9uc2UoUmVzb3Vy
Y2VIYW5kbGUqIGhhbmRsZSwgY29uc3QgUmVzCiAgICAgICAgIH0gZWxzZSBpZiAocmVzcG9uc2Uu
aHR0cFN0YXR1c0NvZGUoKSA9PSA0MDQgfHwgcmVzcG9uc2UuaHR0cFN0YXR1c0NvZGUoKSA9PSA0
MTApIHsKICAgICAgICAgICAgIC8vIFNraXAgdGhpcyByZXNvdXJjZS4gSXQgaXMgZHJvcHBlZCBm
cm9tIHRoZSBjYWNoZS4KICAgICAgICAgICAgIG1fY3VycmVudEhhbmRsZS0+Y2FuY2VsKCk7Ci0g
ICAgICAgICAgICBtX2N1cnJlbnRIYW5kbGUgPSAwOworICAgICAgICAgICAgbV9jdXJyZW50SGFu
ZGxlID0gbnVsbHB0cjsKICAgICAgICAgICAgIG1fcGVuZGluZ0VudHJpZXMucmVtb3ZlKHVybCk7
CiAgICAgICAgICAgICAvLyBMb2FkIHRoZSBuZXh0IHJlc291cmNlLCBpZiBhbnkuCiAgICAgICAg
ICAgICBzdGFydExvYWRpbmdFbnRyeSgpOwpAQCAtNTUxLDcgKzU1MSw3IEBAIHZvaWQgQXBwbGlj
YXRpb25DYWNoZUdyb3VwOjpkaWRSZWNlaXZlUmVzcG9uc2UoUmVzb3VyY2VIYW5kbGUqIGhhbmRs
ZSwgY29uc3QgUmVzCiAgICAgICAgICAgICBtX2NhY2hlQmVpbmdVcGRhdGVkLT5hZGRSZXNvdXJj
ZShBcHBsaWNhdGlvbkNhY2hlUmVzb3VyY2U6OmNyZWF0ZSh1cmwsIG5ld2VzdENhY2hlZFJlc291
cmNlLT5yZXNwb25zZSgpLCB0eXBlLCBuZXdlc3RDYWNoZWRSZXNvdXJjZS0+ZGF0YSgpLCBuZXdl
c3RDYWNoZWRSZXNvdXJjZS0+cGF0aCgpKSk7CiAgICAgICAgICAgICBtX3BlbmRpbmdFbnRyaWVz
LnJlbW92ZShtX2N1cnJlbnRIYW5kbGUtPmZpcnN0UmVxdWVzdCgpLnVybCgpKTsKICAgICAgICAg
ICAgIG1fY3VycmVudEhhbmRsZS0+Y2FuY2VsKCk7Ci0gICAgICAgICAgICBtX2N1cnJlbnRIYW5k
bGUgPSAwOworICAgICAgICAgICAgbV9jdXJyZW50SGFuZGxlID0gbnVsbHB0cjsKICAgICAgICAg
ICAgIC8vIExvYWQgdGhlIG5leHQgcmVzb3VyY2UsIGlmIGFueS4KICAgICAgICAgICAgIHN0YXJ0
TG9hZGluZ0VudHJ5KCk7CiAgICAgICAgIH0KQEAgLTU5NSw3ICs1OTUsNyBAQCB2b2lkIEFwcGxp
Y2F0aW9uQ2FjaGVHcm91cDo6ZGlkRmluaXNoTG9hZGluZyhSZXNvdXJjZUhhbmRsZSogaGFuZGxl
LCBkb3VibGUgZmluaQogICAgIEFTU0VSVChtX2NhY2hlQmVpbmdVcGRhdGVkKTsKIAogICAgIG1f
Y2FjaGVCZWluZ1VwZGF0ZWQtPmFkZFJlc291cmNlKG1fY3VycmVudFJlc291cmNlLnJlbGVhc2Uo
KSk7Ci0gICAgbV9jdXJyZW50SGFuZGxlID0gMDsKKyAgICBtX2N1cnJlbnRIYW5kbGUgPSBudWxs
cHRyOwogCiAgICAgLy8gV2hpbGUgZG93bmxvYWRpbmcgY2hlY2sgdG8gc2VlIGlmIHdlIGhhdmUg
ZXhjZWVkZWQgdGhlIGF2YWlsYWJsZSBxdW90YS4KICAgICAvLyBXZSBjYW4gc3RvcCBpbW1lZGlh
dGVseSBpZiB3ZSBoYXZlIGFscmVhZHkgcHJldmlvdXNseSBmYWlsZWQKQEAgLTYwMyw3ICs2MDMs
NyBAQCB2b2lkIEFwcGxpY2F0aW9uQ2FjaGVHcm91cDo6ZGlkRmluaXNoTG9hZGluZyhSZXNvdXJj
ZUhhbmRsZSogaGFuZGxlLCBkb3VibGUgZmluaQogICAgIC8vIG9mIHRoZSBxdW90YSBiZWluZyBy
ZWFjaGVkIGFuZCBkZWNpZGVkIG5vdCB0byBpbmNyZWFzZSBpdCB0aGVuLgogICAgIC8vIEZJWE1F
OiBTaG91bGQgd2UgYnJlYWsgZWFybGllciBhbmQgcHJldmVudCByZWRvd25sb2FkaW5nIG9uIGxh
dGVyIHBhZ2UgbG9hZHM/CiAgICAgaWYgKG1fb3JpZ2luUXVvdGFFeGNlZWRlZFByZXZpb3VzbHkg
JiYgbV9hdmFpbGFibGVTcGFjZUluUXVvdGEgPCBtX2NhY2hlQmVpbmdVcGRhdGVkLT5lc3RpbWF0
ZWRTaXplSW5TdG9yYWdlKCkpIHsKLSAgICAgICAgbV9jdXJyZW50UmVzb3VyY2UgPSAwOworICAg
ICAgICBtX2N1cnJlbnRSZXNvdXJjZSA9IG51bGxwdHI7CiAgICAgICAgIG1fZnJhbWUtPmRvY3Vt
ZW50KCktPmFkZENvbnNvbGVNZXNzYWdlKE1lc3NhZ2VTb3VyY2U6OkFwcENhY2hlLCBNZXNzYWdl
TGV2ZWw6OkVycm9yLCBBU0NJSUxpdGVyYWwoIkFwcGxpY2F0aW9uIENhY2hlIHVwZGF0ZSBmYWls
ZWQsIGJlY2F1c2Ugc2l6ZSBxdW90YSB3YXMgZXhjZWVkZWQuIikpOwogICAgICAgICBjYWNoZVVw
ZGF0ZUZhaWxlZCgpOwogICAgICAgICByZXR1cm47CkBAIC02MzEsNyArNjMxLDcgQEAgdm9pZCBB
cHBsaWNhdGlvbkNhY2hlR3JvdXA6OmRpZEZhaWwoUmVzb3VyY2VIYW5kbGUqIGhhbmRsZSwgY29u
c3QgUmVzb3VyY2VFcnJvciYKICAgICAgICAgdXJsLnJlbW92ZUZyYWdtZW50SWRlbnRpZmllcigp
OwogCiAgICAgQVNTRVJUKCFtX2N1cnJlbnRSZXNvdXJjZSB8fCAhbV9wZW5kaW5nRW50cmllcy5j
b250YWlucyh1cmwpKTsKLSAgICBtX2N1cnJlbnRSZXNvdXJjZSA9IDA7CisgICAgbV9jdXJyZW50
UmVzb3VyY2UgPSBudWxscHRyOwogICAgIG1fcGVuZGluZ0VudHJpZXMucmVtb3ZlKHVybCk7CiAK
ICAgICBpZiAoKHR5cGUgJiBBcHBsaWNhdGlvbkNhY2hlUmVzb3VyY2U6OkV4cGxpY2l0KSB8fCAo
dHlwZSAmIEFwcGxpY2F0aW9uQ2FjaGVSZXNvdXJjZTo6RmFsbGJhY2spKSB7CkBAIC02OTUsNyAr
Njk1LDcgQEAgdm9pZCBBcHBsaWNhdGlvbkNhY2hlR3JvdXA6OmRpZEZpbmlzaExvYWRpbmdNYW5p
ZmVzdCgpCiAgICAgICAgIHJldHVybjsKICAgICB9CiAKLSAgICBtX21hbmlmZXN0SGFuZGxlID0g
MDsKKyAgICBtX21hbmlmZXN0SGFuZGxlID0gbnVsbHB0cjsKIAogICAgIC8vIENoZWNrIGlmIHRo
ZSBtYW5pZmVzdCB3YXMgbm90IG1vZGlmaWVkLgogICAgIGlmIChpc1VwZ3JhZGVBdHRlbXB0KSB7
CkBAIC03MDYsNyArNzA2LDcgQEAgdm9pZCBBcHBsaWNhdGlvbkNhY2hlR3JvdXA6OmRpZEZpbmlz
aExvYWRpbmdNYW5pZmVzdCgpCiAgICAgICAgICAgICAobmV3ZXN0TWFuaWZlc3QtPmRhdGEoKS0+
c2l6ZSgpID09IG1fbWFuaWZlc3RSZXNvdXJjZS0+ZGF0YSgpLT5zaXplKCkgJiYgIW1lbWNtcChu
ZXdlc3RNYW5pZmVzdC0+ZGF0YSgpLT5kYXRhKCksIG1fbWFuaWZlc3RSZXNvdXJjZS0+ZGF0YSgp
LT5kYXRhKCksIG5ld2VzdE1hbmlmZXN0LT5kYXRhKCktPnNpemUoKSkpKSB7CiAKICAgICAgICAg
ICAgIG1fY29tcGxldGlvblR5cGUgPSBOb1VwZGF0ZTsKLSAgICAgICAgICAgIG1fbWFuaWZlc3RS
ZXNvdXJjZSA9IDA7CisgICAgICAgICAgICBtX21hbmlmZXN0UmVzb3VyY2UgPSBudWxscHRyOwog
ICAgICAgICAgICAgZGVsaXZlckRlbGF5ZWRNYWluUmVzb3VyY2VzKCk7CiAKICAgICAgICAgICAg
IHJldHVybjsKQEAgLTc4Miw3ICs3ODIsNyBAQCB2b2lkIEFwcGxpY2F0aW9uQ2FjaGVHcm91cDo6
ZGlkUmVhY2hPcmlnaW5RdW90YShpbnQ2NF90IHRvdGFsU3BhY2VOZWVkZWQpCiB2b2lkIEFwcGxp
Y2F0aW9uQ2FjaGVHcm91cDo6Y2FjaGVVcGRhdGVGYWlsZWQoKQogewogICAgIHN0b3BMb2FkaW5n
KCk7Ci0gICAgbV9tYW5pZmVzdFJlc291cmNlID0gMDsKKyAgICBtX21hbmlmZXN0UmVzb3VyY2Ug
PSBudWxscHRyOwogCiAgICAgLy8gV2FpdCBmb3IgbWFzdGVyIHJlc291cmNlIGxvYWRzIHRvIGZp
bmlzaC4KICAgICBtX2NvbXBsZXRpb25UeXBlID0gRmFpbHVyZTsKQEAgLTgwNyw3ICs4MDcsNyBA
QCB2b2lkIEFwcGxpY2F0aW9uQ2FjaGVHcm91cDo6bWFuaWZlc3ROb3RGb3VuZCgpCiAgICAgc3Rv
cExvYWRpbmcoKTsKIAogICAgIEFTU0VSVChtX3BlbmRpbmdFbnRyaWVzLmlzRW1wdHkoKSk7Ci0g
ICAgbV9tYW5pZmVzdFJlc291cmNlID0gMDsKKyAgICBtX21hbmlmZXN0UmVzb3VyY2UgPSBudWxs
cHRyOwogCiAgICAgd2hpbGUgKCFtX3BlbmRpbmdNYXN0ZXJSZXNvdXJjZUxvYWRlcnMuaXNFbXB0
eSgpKSB7CiAgICAgICAgIEhhc2hTZXQ8RG9jdW1lbnRMb2FkZXIqPjo6aXRlcmF0b3IgaXQgPSBt
X3BlbmRpbmdNYXN0ZXJSZXNvdXJjZUxvYWRlcnMuYmVnaW4oKTsKZGlmZiAtLWdpdCBhL1NvdXJj
ZS9XZWJDb3JlL2xvYWRlci9jYWNoZS9DYWNoZWRDU1NTdHlsZVNoZWV0LmNwcCBiL1NvdXJjZS9X
ZWJDb3JlL2xvYWRlci9jYWNoZS9DYWNoZWRDU1NTdHlsZVNoZWV0LmNwcAppbmRleCA3YzJmZTdk
ODkyNGY0ZjkwZWNkZDU4MjA2NmFmZTI3YzA5ZjMwOGMxLi42ZDExODgwMWFmODI2ODQ1ZmI2MTk5
MjcwNDRhZjliMmIyZDIzNmM0IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9sb2FkZXIvY2Fj
aGUvQ2FjaGVkQ1NTU3R5bGVTaGVldC5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvbG9hZGVyL2Nh
Y2hlL0NhY2hlZENTU1N0eWxlU2hlZXQuY3BwCkBAIC0xMzgsNyArMTM4LDcgQEAgdm9pZCBDYWNo
ZWRDU1NTdHlsZVNoZWV0OjpkZXN0cm95RGVjb2RlZERhdGEoKQogICAgICAgICByZXR1cm47CiAK
ICAgICBtX3BhcnNlZFN0eWxlU2hlZXRDYWNoZS0+cmVtb3ZlZEZyb21NZW1vcnlDYWNoZSgpOwot
ICAgIG1fcGFyc2VkU3R5bGVTaGVldENhY2hlLmNsZWFyKCk7CisgICAgbV9wYXJzZWRTdHlsZVNo
ZWV0Q2FjaGUgPSBudWxscHRyOwogCiAgICAgc2V0RGVjb2RlZFNpemUoMCk7CiB9CkBAIC0xNDYs
MTEgKzE0NiwxMSBAQCB2b2lkIENhY2hlZENTU1N0eWxlU2hlZXQ6OmRlc3Ryb3lEZWNvZGVkRGF0
YSgpCiBQYXNzUmVmUHRyPFN0eWxlU2hlZXRDb250ZW50cz4gQ2FjaGVkQ1NTU3R5bGVTaGVldDo6
cmVzdG9yZVBhcnNlZFN0eWxlU2hlZXQoY29uc3QgQ1NTUGFyc2VyQ29udGV4dCYgY29udGV4dCwg
Q2FjaGVQb2xpY3kgY2FjaGVQb2xpY3kpCiB7CiAgICAgaWYgKCFtX3BhcnNlZFN0eWxlU2hlZXRD
YWNoZSkKLSAgICAgICAgcmV0dXJuIDA7CisgICAgICAgIHJldHVybiBudWxscHRyOwogICAgIGlm
ICghbV9wYXJzZWRTdHlsZVNoZWV0Q2FjaGUtPnN1YnJlc291cmNlc0FsbG93UmV1c2UoY2FjaGVQ
b2xpY3kpKSB7CiAgICAgICAgIG1fcGFyc2VkU3R5bGVTaGVldENhY2hlLT5yZW1vdmVkRnJvbU1l
bW9yeUNhY2hlKCk7Ci0gICAgICAgIG1fcGFyc2VkU3R5bGVTaGVldENhY2hlLmNsZWFyKCk7Ci0g
ICAgICAgIHJldHVybiAwOworICAgICAgICBtX3BhcnNlZFN0eWxlU2hlZXRDYWNoZSA9IG51bGxw
dHI7CisgICAgICAgIHJldHVybiBudWxscHRyOwogICAgIH0KIAogICAgIEFTU0VSVChtX3BhcnNl
ZFN0eWxlU2hlZXRDYWNoZS0+aXNDYWNoZWFibGUoKSk7CkBAIC0xNTgsNyArMTU4LDcgQEAgUGFz
c1JlZlB0cjxTdHlsZVNoZWV0Q29udGVudHM+IENhY2hlZENTU1N0eWxlU2hlZXQ6OnJlc3RvcmVQ
YXJzZWRTdHlsZVNoZWV0KGNvbnMKIAogICAgIC8vIENvbnRleHRzIG11c3QgYmUgaWRlbnRpY2Fs
IHNvIHdlIGtub3cgd2Ugd291bGQgZ2V0IHRoZSBzYW1lIGV4YWN0IHJlc3VsdCBpZiB3ZSBwYXJz
ZWQgYWdhaW4uCiAgICAgaWYgKG1fcGFyc2VkU3R5bGVTaGVldENhY2hlLT5wYXJzZXJDb250ZXh0
KCkgIT0gY29udGV4dCkKLSAgICAgICAgcmV0dXJuIDA7CisgICAgICAgIHJldHVybiBudWxscHRy
OwogCiAgICAgZGlkQWNjZXNzRGVjb2RlZERhdGEobW9ub3RvbmljYWxseUluY3JlYXNpbmdUaW1l
KCkpOwogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9sb2FkZXIvY2FjaGUvQ2FjaGVkSW1h
Z2UuY3BwIGIvU291cmNlL1dlYkNvcmUvbG9hZGVyL2NhY2hlL0NhY2hlZEltYWdlLmNwcAppbmRl
eCA1Mjc2OWRiOTZjZTE3ZGVhZDcyMDQxYTc2ODFiYTZmMmEwYWQ1OTg5Li5kZjMzNjc1YzYzYjVk
YjRhZjAzZTMyOTM3YzkxYTlkNzM0MDRhNzBhIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9s
b2FkZXIvY2FjaGUvQ2FjaGVkSW1hZ2UuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2xvYWRlci9j
YWNoZS9DYWNoZWRJbWFnZS5jcHAKQEAgLTM2NSw4ICszNjUsOCBAQCBpbmxpbmUgdm9pZCBDYWNo
ZWRJbWFnZTo6Y2xlYXJJbWFnZSgpCiAgICAgLy8gSWYgb3VyIEltYWdlIGhhcyBhbiBvYnNlcnZl
ciwgaXQncyBhbHdheXMgdXMgc28gd2UgbmVlZCB0byBjbGVhciB0aGUgYmFjayBwb2ludGVyCiAg
ICAgLy8gYmVmb3JlIGRyb3BwaW5nIG91ciByZWZlcmVuY2UuCiAgICAgaWYgKG1faW1hZ2UpCi0g
ICAgICAgIG1faW1hZ2UtPnNldEltYWdlT2JzZXJ2ZXIoMCk7Ci0gICAgbV9pbWFnZS5jbGVhcigp
OworICAgICAgICBtX2ltYWdlLT5zZXRJbWFnZU9ic2VydmVyKG51bGxwdHIpOworICAgIG1faW1h
Z2UgPSBudWxscHRyOwogfQogCiB2b2lkIENhY2hlZEltYWdlOjphZGRJbmNyZW1lbnRhbERhdGFC
dWZmZXIoU2hhcmVkQnVmZmVyJiBkYXRhKQpAQCAtNDU4LDcgKzQ1OCw3IEBAIHZvaWQgQ2FjaGVk
SW1hZ2U6OmRlc3Ryb3lEZWNvZGVkRGF0YSgpCiB7CiAgICAgYm9vbCBjYW5EZWxldGVJbWFnZSA9
ICFtX2ltYWdlIHx8IChtX2ltYWdlLT5oYXNPbmVSZWYoKSAmJiBtX2ltYWdlLT5pc0JpdG1hcElt
YWdlKCkpOwogICAgIGlmIChjYW5EZWxldGVJbWFnZSAmJiAhaXNMb2FkaW5nKCkgJiYgIWhhc0Ns
aWVudHMoKSkgewotICAgICAgICBtX2ltYWdlID0gMDsKKyAgICAgICAgbV9pbWFnZSA9IG51bGxw
dHI7CiAgICAgICAgIHNldERlY29kZWRTaXplKDApOwogICAgIH0gZWxzZSBpZiAobV9pbWFnZSAm
JiAhZXJyb3JPY2N1cnJlZCgpKQogICAgICAgICBtX2ltYWdlLT5kZXN0cm95RGVjb2RlZERhdGEo
KTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2xvYWRlci9jYWNoZS9DYWNoZWRSYXdSZXNv
dXJjZS5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9sb2FkZXIvY2FjaGUvQ2FjaGVkUmF3UmVzb3VyY2Uu
Y3BwCmluZGV4IDNjMWIyOTU1NGIxOWMwNWUyZmU5MWViMDdlMGU1NTJjMmY5OGE4ZjQuLjU0YmJk
ZTFhYzhlYzg3MTQ4YTk1M2QzZGQ3NzgyYTdiM2UzMjQ1NjUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9X
ZWJDb3JlL2xvYWRlci9jYWNoZS9DYWNoZWRSYXdSZXNvdXJjZS5jcHAKKysrIGIvU291cmNlL1dl
YkNvcmUvbG9hZGVyL2NhY2hlL0NhY2hlZFJhd1Jlc291cmNlLmNwcApAQCAtMjY4LDcgKzI2OCw3
IEBAIGJvb2wgQ2FjaGVkUmF3UmVzb3VyY2U6OmNhblJldXNlKGNvbnN0IFJlc291cmNlUmVxdWVz
dCYgbmV3UmVxdWVzdCkgY29uc3QKIAogdm9pZCBDYWNoZWRSYXdSZXNvdXJjZTo6Y2xlYXIoKQog
ewotICAgIG1fZGF0YS5jbGVhcigpOworICAgIG1fZGF0YSA9IG51bGxwdHI7CiAgICAgc2V0RW5j
b2RlZFNpemUoMCk7CiAgICAgaWYgKG1fbG9hZGVyKQogICAgICAgICBtX2xvYWRlci0+Y2xlYXJS
ZXNvdXJjZURhdGEoKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2xvYWRlci9jYWNoZS9D
YWNoZWRSZXNvdXJjZS5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9sb2FkZXIvY2FjaGUvQ2FjaGVkUmVz
b3VyY2UuY3BwCmluZGV4IGY0NDMxYmYzZGRhZmNkMmZiNzAzODM3YzZmN2NjZDAxMzA3NTExZjAu
LjNiZWYyMWU4ZDk4OTg4YTAzOGRlYjdlMTBlMGVmNGUzY2VmNDNhNmIgMTAwNjQ0Ci0tLSBhL1Nv
dXJjZS9XZWJDb3JlL2xvYWRlci9jYWNoZS9DYWNoZWRSZXNvdXJjZS5jcHAKKysrIGIvU291cmNl
L1dlYkNvcmUvbG9hZGVyL2NhY2hlL0NhY2hlZFJlc291cmNlLmNwcApAQCAtMzE3LDcgKzMxNyw3
IEBAIHZvaWQgQ2FjaGVkUmVzb3VyY2U6OmVycm9yKENhY2hlZFJlc291cmNlOjpTdGF0dXMgc3Rh
dHVzKQogewogICAgIHNldFN0YXR1cyhzdGF0dXMpOwogICAgIEFTU0VSVChlcnJvck9jY3VycmVk
KCkpOwotICAgIG1fZGF0YS5jbGVhcigpOworICAgIG1fZGF0YSA9IG51bGxwdHI7CiAKICAgICBz
ZXRMb2FkaW5nKGZhbHNlKTsKICAgICBjaGVja05vdGlmeSgpOwpkaWZmIC0tZ2l0IGEvU291cmNl
L1dlYkNvcmUvbG9hZGVyL2ljb24vSWNvblJlY29yZC5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9sb2Fk
ZXIvaWNvbi9JY29uUmVjb3JkLmNwcAppbmRleCBkNGJjMGQxYTE5ZjM3MDYyYmY3Y2E1OGVkYzY0
MmJmZWU2MjA1YTg4Li5lN2YxZDRiMjMzNDYxMDY5NGRkMzFlZTdlYzQ0MDQ3ZjgzNzNiNzY1IDEw
MDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9sb2FkZXIvaWNvbi9JY29uUmVjb3JkLmNwcAorKysg
Yi9Tb3VyY2UvV2ViQ29yZS9sb2FkZXIvaWNvbi9JY29uUmVjb3JkLmNwcApAQCAtNzEsNyArNzEs
NyBAQCB2b2lkIEljb25SZWNvcmQ6OnNldEltYWdlRGF0YShQYXNzUmVmUHRyPFNoYXJlZEJ1ZmZl
cj4gZGF0YSkKICAgICAvLyBDb3B5IHRoZSBwcm92aWRlZCBkYXRhIGludG8gdGhlIGJ1ZmZlciBv
ZiB0aGUgbmV3IEltYWdlIG9iamVjdC4KICAgICBpZiAoIW1faW1hZ2UtPnNldERhdGEoZGF0YSwg
dHJ1ZSkpIHsKICAgICAgICAgTE9HKEljb25EYXRhYmFzZSwgIk1hbnVhbCBpbWFnZSBkYXRhIGZv
ciBpY29uVVJMICclcycgRkFJTEVEIC0gaXQgd2FzIHByb2JhYmx5IGludmFsaWQgaW1hZ2UgZGF0
YSIsIG1faWNvblVSTC5hc2NpaSgpLmRhdGEoKSk7Ci0gICAgICAgIG1faW1hZ2UuY2xlYXIoKTsK
KyAgICAgICAgbV9pbWFnZSA9IG51bGxwdHI7CiAgICAgfQogICAgIAogICAgIG1fZGF0YVNldCA9
IHRydWU7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wYWdlL0V2ZW50SGFuZGxlci5jcHAg
Yi9Tb3VyY2UvV2ViQ29yZS9wYWdlL0V2ZW50SGFuZGxlci5jcHAKaW5kZXggNjU0YTRmZWM3NzM3
OTcyM2Q3YjYxZjM2MTY3YWJhMjVlODk0NTA5Yy4uM2FhNjZkOWJjODE0ZWMzYmZkYmQzNGM5ZDc1
ZTNlNzM1NjExNTRlMyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGFnZS9FdmVudEhhbmRs
ZXIuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BhZ2UvRXZlbnRIYW5kbGVyLmNwcApAQCAtNDg1
LDcgKzQ4NSw3IEBAIHZvaWQgRXZlbnRIYW5kbGVyOjpjbGVhcigpCiAgICAgbV9tb3VzZVBvc2l0
aW9uSXNVbmtub3duID0gdHJ1ZTsKICAgICBtX2xhc3RLbm93bk1vdXNlUG9zaXRpb24gPSBJbnRQ
b2ludCgpOwogICAgIG1fbGFzdEtub3duTW91c2VHbG9iYWxQb3NpdGlvbiA9IEludFBvaW50KCk7
Ci0gICAgbV9tb3VzZVByZXNzTm9kZSA9IDA7CisgICAgbV9tb3VzZVByZXNzTm9kZSA9IG51bGxw
dHI7CiAgICAgbV9tb3VzZVByZXNzZWQgPSBmYWxzZTsKICAgICBtX2NhcHR1cmVzRHJhZ2dpbmcg
PSBmYWxzZTsKICAgICBtX2NhcHR1cmluZ01vdXNlRXZlbnRzRWxlbWVudCA9IG51bGxwdHI7CkBA
IC00OTQsNyArNDk0LDcgQEAgdm9pZCBFdmVudEhhbmRsZXI6OmNsZWFyKCkKICNlbmRpZgogI2lm
IEVOQUJMRShUT1VDSF9FVkVOVFMpICYmICFFTkFCTEUoSU9TX1RPVUNIX0VWRU5UUykKICAgICBt
X29yaWdpbmF0aW5nVG91Y2hQb2ludFRhcmdldHMuY2xlYXIoKTsKLSAgICBtX29yaWdpbmF0aW5n
VG91Y2hQb2ludERvY3VtZW50LmNsZWFyKCk7CisgICAgbV9vcmlnaW5hdGluZ1RvdWNoUG9pbnRE
b2N1bWVudCA9IG51bGxwdHI7CiAgICAgbV9vcmlnaW5hdGluZ1RvdWNoUG9pbnRUYXJnZXRLZXkg
PSAwOwogI2VuZGlmCiAgICAgbV9tYXhNb3VzZU1vdmVkRHVyYXRpb24gPSAwOwpAQCAtMzk5NCw3
ICszOTk0LDcgQEAgYm9vbCBFdmVudEhhbmRsZXI6OmhhbmRsZVRvdWNoRXZlbnQoY29uc3QgUGxh
dGZvcm1Ub3VjaEV2ZW50JiBldmVudCkKICAgICB9CiAgICAgbV90b3VjaFByZXNzZWQgPSB0b3Vj
aGVzLT5sZW5ndGgoKSA+IDA7CiAgICAgaWYgKGFsbFRvdWNoUmVsZWFzZWQpCi0gICAgICAgIG1f
b3JpZ2luYXRpbmdUb3VjaFBvaW50RG9jdW1lbnQuY2xlYXIoKTsKKyAgICAgICAgbV9vcmlnaW5h
dGluZ1RvdWNoUG9pbnREb2N1bWVudCA9IG51bGxwdHI7CiAKICAgICAvLyBOb3cgaXRlcmF0ZSB0
aGUgY2hhbmdlZFRvdWNoZXMgbGlzdCBhbmQgbV90YXJnZXRzIHdpdGhpbiBpdCwgc2VuZGluZyBl
dmVudHMgdG8gdGhlIHRhcmdldHMgYXMgcmVxdWlyZWQuCiAgICAgYm9vbCBzd2FsbG93ZWRFdmVu
dCA9IGZhbHNlOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGFnZS9QYWdlLmNwcCBiL1Nv
dXJjZS9XZWJDb3JlL3BhZ2UvUGFnZS5jcHAKaW5kZXggMWQzZGNjMmI1NjM5NjIxNGU5ZjgwZjcy
YzhlMzNlYTE4OWI5M2FkMi4uZjg2ZDgxZmQwNTMwYTAzYzYyNjIyMTE2YzkwYmZlOTA1NjcxNjdi
MCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGFnZS9QYWdlLmNwcAorKysgYi9Tb3VyY2Uv
V2ViQ29yZS9wYWdlL1BhZ2UuY3BwCkBAIC01MTYsNyArNTE2LDcgQEAgdm9pZCBQYWdlOjpyZWZy
ZXNoUGx1Z2lucyhib29sIHJlbG9hZCkKICAgICBWZWN0b3I8UmVmPEZyYW1lPj4gZnJhbWVzTmVl
ZGluZ1JlbG9hZDsKIAogICAgIGZvciAoYXV0byYgcGFnZSA6ICphbGxQYWdlcykgewotICAgICAg
ICBwYWdlLT5tX3BsdWdpbkRhdGEuY2xlYXIoKTsKKyAgICAgICAgcGFnZS0+bV9wbHVnaW5EYXRh
ID0gbnVsbHB0cjsKIAogICAgICAgICBpZiAoIXJlbG9hZCkKICAgICAgICAgICAgIGNvbnRpbnVl
OwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vYXVkaW8vbWFjL0NBUmluZ0J1
ZmZlci5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9hdWRpby9tYWMvQ0FSaW5nQnVmZmVy
LmNwcAppbmRleCBmNzZlOGRmOTA2YjVhNjFlNTdjNzc1YzRjZTZkMmNjNDRiYzhhYTUyLi4wNTQ0
MmFkYzQ1ZTk3Nzg5OTMxNTIwNWMzNzJlNjE5NjAxMjc5ZDM3IDEwMDY0NAotLS0gYS9Tb3VyY2Uv
V2ViQ29yZS9wbGF0Zm9ybS9hdWRpby9tYWMvQ0FSaW5nQnVmZmVyLmNwcAorKysgYi9Tb3VyY2Uv
V2ViQ29yZS9wbGF0Zm9ybS9hdWRpby9tYWMvQ0FSaW5nQnVmZmVyLmNwcApAQCAtODYsNyArODYs
NyBAQCB2b2lkIENBUmluZ0J1ZmZlcjo6YWxsb2NhdGUodWludDMyX3QgY2hhbm5lbENvdW50LCBz
aXplX3QgYnl0ZXNQZXJGcmFtZSwgc2l6ZV90CiB2b2lkIENBUmluZ0J1ZmZlcjo6ZGVhbGxvY2F0
ZSgpCiB7CiAgICAgaWYgKG1fYnVmZmVycykKLSAgICAgICAgbV9idWZmZXJzLmNsZWFyKCk7Cisg
ICAgICAgIG1fYnVmZmVycyA9IG51bGxwdHI7CiAKICAgICBtX2NoYW5uZWxDb3VudCA9IDA7CiAg
ICAgbV9jYXBhY2l0eUJ5dGVzID0gMDsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRm
b3JtL2dyYXBoaWNzL0ZvbnQuY3BwIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3Mv
Rm9udC5jcHAKaW5kZXggNjAzZWJhODFmMDEwZmVmMGIwOWVhOTQ3YWU4ODZhNTE5OThiNWFjYy4u
ZDkyNjViNThkMmJlMjRhZDcxNDczYWJhNWIyM2I1MjZkMDkxMzcyZSAxMDA2NDQKLS0tIGEvU291
cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvRm9udC5jcHAKKysrIGIvU291cmNlL1dlYkNv
cmUvcGxhdGZvcm0vZ3JhcGhpY3MvRm9udC5jcHAKQEAgLTM2Myw3ICszNjMsNyBAQCBjb25zdCBP
cGVuVHlwZU1hdGhEYXRhKiBGb250OjptYXRoRGF0YSgpIGNvbnN0CiAgICAgaWYgKCFtX21hdGhE
YXRhKSB7CiAgICAgICAgIG1fbWF0aERhdGEgPSBPcGVuVHlwZU1hdGhEYXRhOjpjcmVhdGUobV9w
bGF0Zm9ybURhdGEpOwogICAgICAgICBpZiAoIW1fbWF0aERhdGEtPmhhc01hdGhEYXRhKCkpCi0g
ICAgICAgICAgICBtX21hdGhEYXRhLmNsZWFyKCk7CisgICAgICAgICAgICBtX21hdGhEYXRhID0g
bnVsbHB0cjsKICAgICB9CiAgICAgcmV0dXJuIG1fbWF0aERhdGEuZ2V0KCk7CiB9CmRpZmYgLS1n
aXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9Gb250Q2FjaGUuY3BwIGIvU291
cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvRm9udENhY2hlLmNwcAppbmRleCBhNmM0MDQ5
OTQ4Y2YzNjMyMWI3M2RkNTExYjkxOGEyYThhYWUwNDVjLi44ZDFhODM1OWQ2OWNiNzBlNGMyMGI1
ZWE4MzI4NzY1YTZiY2Q0NjM0IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9n
cmFwaGljcy9Gb250Q2FjaGUuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBo
aWNzL0ZvbnRDYWNoZS5jcHAKQEAgLTMyMCw3ICszMjAsNyBAQCBQYXNzUmVmUHRyPE9wZW5UeXBl
VmVydGljYWxEYXRhPiBGb250Q2FjaGU6OmdldFZlcnRpY2FsRGF0YShjb25zdCBGb250RmlsZUtl
eSYgawogCiAgICAgUmVmUHRyPE9wZW5UeXBlVmVydGljYWxEYXRhPiB2ZXJ0aWNhbERhdGEgPSBP
cGVuVHlwZVZlcnRpY2FsRGF0YTo6Y3JlYXRlKHBsYXRmb3JtRGF0YSk7CiAgICAgaWYgKCF2ZXJ0
aWNhbERhdGEtPmlzT3BlblR5cGUoKSkKLSAgICAgICAgdmVydGljYWxEYXRhLmNsZWFyKCk7Cisg
ICAgICAgIHZlcnRpY2FsRGF0YSA9IG51bGxwdHI7CiAgICAgZm9udFZlcnRpY2FsRGF0YUNhY2hl
LnNldChrZXksIHZlcnRpY2FsRGF0YSk7CiAgICAgcmV0dXJuIHZlcnRpY2FsRGF0YTsKIH0KZGlm
ZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL0dyYXBoaWNzQ29udGV4
dC5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9HcmFwaGljc0NvbnRleHQu
Y3BwCmluZGV4IGQzOGMxZmFmNzc1MjU4MzNmMzdlM2NiNjE3OGJiNGM2ZjY3Y2MzOTkuLmU2YjM3
ZmRlNWY5NWVjMDJjMmY3ZDY4YTYxZjQwZjQ3YTc3ZjI3MzEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9X
ZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL0dyYXBoaWNzQ29udGV4dC5jcHAKKysrIGIvU291cmNl
L1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvR3JhcGhpY3NDb250ZXh0LmNwcApAQCAtMTc4LDgg
KzE3OCw4IEBAIHZvaWQgR3JhcGhpY3NDb250ZXh0OjpzZXRTdHJva2VDb2xvcihjb25zdCBDb2xv
ciYgY29sb3IsIENvbG9yU3BhY2UgY29sb3JTcGFjZSkKIHsKICAgICBtX3N0YXRlLnN0cm9rZUNv
bG9yID0gY29sb3I7CiAgICAgbV9zdGF0ZS5zdHJva2VDb2xvclNwYWNlID0gY29sb3JTcGFjZTsK
LSAgICBtX3N0YXRlLnN0cm9rZUdyYWRpZW50LmNsZWFyKCk7Ci0gICAgbV9zdGF0ZS5zdHJva2VQ
YXR0ZXJuLmNsZWFyKCk7CisgICAgbV9zdGF0ZS5zdHJva2VHcmFkaWVudCA9IG51bGxwdHI7Cisg
ICAgbV9zdGF0ZS5zdHJva2VQYXR0ZXJuID0gbnVsbHB0cjsKICAgICBzZXRQbGF0Zm9ybVN0cm9r
ZUNvbG9yKGNvbG9yLCBjb2xvclNwYWNlKTsKIH0KIApAQCAtMjQ1LDggKzI0NSw4IEBAIHZvaWQg
R3JhcGhpY3NDb250ZXh0OjpzZXRGaWxsQ29sb3IoY29uc3QgQ29sb3ImIGNvbG9yLCBDb2xvclNw
YWNlIGNvbG9yU3BhY2UpCiB7CiAgICAgbV9zdGF0ZS5maWxsQ29sb3IgPSBjb2xvcjsKICAgICBt
X3N0YXRlLmZpbGxDb2xvclNwYWNlID0gY29sb3JTcGFjZTsKLSAgICBtX3N0YXRlLmZpbGxHcmFk
aWVudC5jbGVhcigpOwotICAgIG1fc3RhdGUuZmlsbFBhdHRlcm4uY2xlYXIoKTsKKyAgICBtX3N0
YXRlLmZpbGxHcmFkaWVudCA9IG51bGxwdHI7CisgICAgbV9zdGF0ZS5maWxsUGF0dGVybiA9IG51
bGxwdHI7CiAgICAgc2V0UGxhdGZvcm1GaWxsQ29sb3IoY29sb3IsIGNvbG9yU3BhY2UpOwogfQog
CkBAIC0yNjksMjYgKzI2OSwyNiBAQCB2b2lkIEdyYXBoaWNzQ29udGV4dDo6c2V0QW50aWFsaWFz
ZWRGb250RGlsYXRpb25FbmFibGVkKGJvb2wgYW50aWFsaWFzZWRGb250RGlsYQogCiB2b2lkIEdy
YXBoaWNzQ29udGV4dDo6c2V0U3Ryb2tlUGF0dGVybihSZWY8UGF0dGVybj4mJiBwYXR0ZXJuKQog
ewotICAgIG1fc3RhdGUuc3Ryb2tlR3JhZGllbnQuY2xlYXIoKTsKKyAgICBtX3N0YXRlLnN0cm9r
ZUdyYWRpZW50ID0gbnVsbHB0cjsKICAgICBtX3N0YXRlLnN0cm9rZVBhdHRlcm4gPSBXVEY6Om1v
dmUocGF0dGVybik7CiB9CiAKIHZvaWQgR3JhcGhpY3NDb250ZXh0OjpzZXRGaWxsUGF0dGVybihS
ZWY8UGF0dGVybj4mJiBwYXR0ZXJuKQogewotICAgIG1fc3RhdGUuZmlsbEdyYWRpZW50LmNsZWFy
KCk7CisgICAgbV9zdGF0ZS5maWxsR3JhZGllbnQgPSBudWxscHRyOwogICAgIG1fc3RhdGUuZmls
bFBhdHRlcm4gPSBXVEY6Om1vdmUocGF0dGVybik7CiB9CiAKIHZvaWQgR3JhcGhpY3NDb250ZXh0
OjpzZXRTdHJva2VHcmFkaWVudChSZWY8R3JhZGllbnQ+JiYgZ3JhZGllbnQpCiB7CiAgICAgbV9z
dGF0ZS5zdHJva2VHcmFkaWVudCA9IFdURjo6bW92ZShncmFkaWVudCk7Ci0gICAgbV9zdGF0ZS5z
dHJva2VQYXR0ZXJuLmNsZWFyKCk7CisgICAgbV9zdGF0ZS5zdHJva2VQYXR0ZXJuID0gbnVsbHB0
cjsKIH0KIAogdm9pZCBHcmFwaGljc0NvbnRleHQ6OnNldEZpbGxHcmFkaWVudChSZWY8R3JhZGll
bnQ+JiYgZ3JhZGllbnQpCiB7CiAgICAgbV9zdGF0ZS5maWxsR3JhZGllbnQgPSBXVEY6Om1vdmUo
Z3JhZGllbnQpOwotICAgIG1fc3RhdGUuZmlsbFBhdHRlcm4uY2xlYXIoKTsKKyAgICBtX3N0YXRl
LmZpbGxQYXR0ZXJuID0gbnVsbHB0cjsKIH0KIAogdm9pZCBHcmFwaGljc0NvbnRleHQ6OmJlZ2lu
VHJhbnNwYXJlbmN5TGF5ZXIoZmxvYXQgb3BhY2l0eSkKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJD
b3JlL3BsYXRmb3JtL2dyYXBoaWNzL01lZGlhUGxheWVyLmNwcCBiL1NvdXJjZS9XZWJDb3JlL3Bs
YXRmb3JtL2dyYXBoaWNzL01lZGlhUGxheWVyLmNwcAppbmRleCAyOTRhNzZkOWY4NmVmMmU3NzUw
ZDM2YTgzYTk4N2Q3NjBkNDBiMWQyLi4wMTI3OTVlNDY1YmVhMDRkMGY4N2U3Mjc3ZTc0ZTBmZTVi
NTg3MmIxIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9NZWRp
YVBsYXllci5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvTWVkaWFQ
bGF5ZXIuY3BwCkBAIC0zMTQsMTAgKzMxNCwxMCBAQCBib29sIE1lZGlhUGxheWVyOjpsb2FkKGNv
bnN0IFVSTCYgdXJsLCBjb25zdCBDb250ZW50VHlwZSYgY29udGVudFR5cGUsIGNvbnN0IFN0cgog
ICAgIG1fY29udGVudE1JTUVUeXBlV2FzSW5mZXJyZWRGcm9tRXh0ZW5zaW9uID0gZmFsc2U7CiAK
ICNpZiBFTkFCTEUoTUVESUFfU09VUkNFKQotICAgIG1fbWVkaWFTb3VyY2UgPSAwOworICAgIG1f
bWVkaWFTb3VyY2UgPSBudWxscHRyOwogI2VuZGlmCiAjaWYgRU5BQkxFKE1FRElBX1NUUkVBTSkK
LSAgICBtX21lZGlhU3RyZWFtID0gMDsKKyAgICBtX21lZGlhU3RyZWFtID0gbnVsbHB0cjsKICNl
bmRpZgogCiAgICAgLy8gSWYgdGhlIE1JTUUgdHlwZSBpcyBtaXNzaW5nIG9yIGlzIG5vdCBtZWFu
aW5nZnVsLCB0cnkgdG8gZmlndXJlIGl0IG91dCBmcm9tIHRoZSBVUkwuCmRpZmYgLS1naXQgYS9T
b3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9jYS9HcmFwaGljc0xheWVyQ0EuY3BwIGIv
U291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvY2EvR3JhcGhpY3NMYXllckNBLmNwcApp
bmRleCA4MmMwNzY5MTI3YmY5ZTUxNjlkYWU0OGRmYjRiMjg5MDJmZTkwNmMwLi4zNGY0Y2UxMDNh
OTM2ZTNhMDExYjg1Y2ZiNGRmZWVjZDYxNTJjOGU4IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29y
ZS9wbGF0Zm9ybS9ncmFwaGljcy9jYS9HcmFwaGljc0xheWVyQ0EuY3BwCisrKyBiL1NvdXJjZS9X
ZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2NhL0dyYXBoaWNzTGF5ZXJDQS5jcHAKQEAgLTIyMDgs
NyArMjIwOCw3IEBAIHZvaWQgR3JhcGhpY3NMYXllckNBOjp1cGRhdGVDb250ZW50c0ltYWdlKCkK
ICAgICB9IGVsc2UgewogICAgICAgICAvLyBObyBpbWFnZS4KICAgICAgICAgLy8gbV9jb250ZW50
c0xheWVyIHdpbGwgYmUgcmVtb3ZlZCB2aWEgdXBkYXRlU3VibGF5ZXJMaXN0LgotICAgICAgICBt
X2NvbnRlbnRzTGF5ZXIgPSAwOworICAgICAgICBtX2NvbnRlbnRzTGF5ZXIgPSBudWxscHRyOwog
ICAgIH0KIH0KIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3Mv
Y2Fpcm8vQmFja2luZ1N0b3JlQmFja2VuZENhaXJvWDExLmNwcCBiL1NvdXJjZS9XZWJDb3JlL3Bs
YXRmb3JtL2dyYXBoaWNzL2NhaXJvL0JhY2tpbmdTdG9yZUJhY2tlbmRDYWlyb1gxMS5jcHAKaW5k
ZXggN2I4NjMxYWYwYTlkOGY0YWU5MDYzYjI3OWU0MGNlZTM0NTQ5Y2ZhNC4uNDM3ZGFmYzgyZmQy
MmVjYmYwNjA0N2EzYzI4Njg5ZWJlMDIyMzZkMiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUv
cGxhdGZvcm0vZ3JhcGhpY3MvY2Fpcm8vQmFja2luZ1N0b3JlQmFja2VuZENhaXJvWDExLmNwcAor
KysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9jYWlyby9CYWNraW5nU3RvcmVC
YWNrZW5kQ2Fpcm9YMTEuY3BwCkBAIC00Myw3ICs0Myw3IEBAIEJhY2tpbmdTdG9yZUJhY2tlbmRD
YWlyb1gxMTo6QmFja2luZ1N0b3JlQmFja2VuZENhaXJvWDExKHVuc2lnbmVkIGxvbmcgcm9vdFdp
bmRvCiBCYWNraW5nU3RvcmVCYWNrZW5kQ2Fpcm9YMTE6On5CYWNraW5nU3RvcmVCYWNrZW5kQ2Fp
cm9YMTEoKQogewogICAgIC8vIFRoZSBwaXhtYXAgbmVlZHMgdG8gZXhpc3Qgd2hlbiB0aGUgc3Vy
ZmFjZSBpcyBkZXN0cm95ZWQsIHNvIGJlZ2luIGJ5IGNsZWFyaW5nIGl0LgotICAgIG1fc3VyZmFj
ZS5jbGVhcigpOworICAgIG1fc3VyZmFjZSA9IG51bGxwdHI7CiB9CiAKIHZvaWQgQmFja2luZ1N0
b3JlQmFja2VuZENhaXJvWDExOjpzY3JvbGwoY29uc3QgSW50UmVjdCYgc2Nyb2xsUmVjdCwgY29u
c3QgSW50U2l6ZSYgc2Nyb2xsT2Zmc2V0KQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxh
dGZvcm0vZ3JhcGhpY3MvY2Fpcm8vQml0bWFwSW1hZ2VDYWlyby5jcHAgYi9Tb3VyY2UvV2ViQ29y
ZS9wbGF0Zm9ybS9ncmFwaGljcy9jYWlyby9CaXRtYXBJbWFnZUNhaXJvLmNwcAppbmRleCAyNmRm
NWRmM2FiYTQ5MDc2MDEyNzg5YzI2NmZhOTYwMjc3NWJlMmRlLi5mMGQzYTdhNzJkYjkyZmRlMWQx
YjVmOTkzOGIzYzBjMWU3YWQ2MWYxIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9y
bS9ncmFwaGljcy9jYWlyby9CaXRtYXBJbWFnZUNhaXJvLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29y
ZS9wbGF0Zm9ybS9ncmFwaGljcy9jYWlyby9CaXRtYXBJbWFnZUNhaXJvLmNwcApAQCAtMTU5LDcg
KzE1OSw3IEBAIGJvb2wgRnJhbWVEYXRhOjpjbGVhcihib29sIGNsZWFyTWV0YWRhdGEpCiAgICAg
ICAgIG1faGF2ZU1ldGFkYXRhID0gZmFsc2U7CiAKICAgICBpZiAobV9mcmFtZSkgewotICAgICAg
ICBtX2ZyYW1lLmNsZWFyKCk7CisgICAgICAgIG1fZnJhbWUgPSBudWxscHRyOwogICAgICAgICBy
ZXR1cm4gdHJ1ZTsKICAgICB9CiAgICAgcmV0dXJuIGZhbHNlOwpkaWZmIC0tZ2l0IGEvU291cmNl
L1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvZmlsdGVycy9GaWx0ZXJFZmZlY3QuY3BwIGIvU291
cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvZmlsdGVycy9GaWx0ZXJFZmZlY3QuY3BwCmlu
ZGV4IDc2MjcwMDgwMzBkN2VmYWU2ZTA4MGU2ODc1OGRjMTYwZWFjMmMwYjkuLmM5OGQ1Yjk4NWFm
M2JiMWU1YjBjMGMyMjZiYjQ1ZmM2MDU0ZjQzM2MgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3Jl
L3BsYXRmb3JtL2dyYXBoaWNzL2ZpbHRlcnMvRmlsdGVyRWZmZWN0LmNwcAorKysgYi9Tb3VyY2Uv
V2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9maWx0ZXJzL0ZpbHRlckVmZmVjdC5jcHAKQEAgLTI0
NSwxMiArMjQ1LDEyIEBAIHZvaWQgRmlsdGVyRWZmZWN0OjpjbGVhclJlc3VsdCgpCiAgICAgaWYg
KG1faW1hZ2VCdWZmZXJSZXN1bHQpCiAgICAgICAgIG1faW1hZ2VCdWZmZXJSZXN1bHQucmVzZXQo
KTsKICAgICBpZiAobV91bm11bHRpcGxpZWRJbWFnZVJlc3VsdCkKLSAgICAgICAgbV91bm11bHRp
cGxpZWRJbWFnZVJlc3VsdC5jbGVhcigpOworICAgICAgICBtX3VubXVsdGlwbGllZEltYWdlUmVz
dWx0ID0gbnVsbHB0cjsKICAgICBpZiAobV9wcmVtdWx0aXBsaWVkSW1hZ2VSZXN1bHQpCi0gICAg
ICAgIG1fcHJlbXVsdGlwbGllZEltYWdlUmVzdWx0LmNsZWFyKCk7CisgICAgICAgIG1fcHJlbXVs
dGlwbGllZEltYWdlUmVzdWx0ID0gbnVsbHB0cjsKICNpZiBFTkFCTEUoT1BFTkNMKQogICAgIGlm
IChtX29wZW5DTEltYWdlUmVzdWx0KQotICAgICAgICBtX29wZW5DTEltYWdlUmVzdWx0LmNsZWFy
KCk7CisgICAgICAgIG1fb3BlbkNMSW1hZ2VSZXN1bHQgPSBudWxscHRyOwogI2VuZGlmCiB9CiAK
QEAgLTU0MCw3ICs1NDAsNyBAQCB2b2lkIEZpbHRlckVmZmVjdDo6dHJhbnNmb3JtUmVzdWx0Q29s
b3JTcGFjZShDb2xvclNwYWNlIGRzdENvbG9yU3BhY2UpCiAjaWYgRU5BQkxFKE9QRU5DTCkKICAg
ICBpZiAob3BlbkNMSW1hZ2UoKSkgewogICAgICAgICBpZiAobV9pbWFnZUJ1ZmZlclJlc3VsdCkK
LSAgICAgICAgICAgIG1faW1hZ2VCdWZmZXJSZXN1bHQuY2xlYXIoKTsKKyAgICAgICAgICAgIG1f
aW1hZ2VCdWZmZXJSZXN1bHQgPSBudWxscHRyOwogICAgICAgICBGaWx0ZXJDb250ZXh0T3BlbkNM
KiBjb250ZXh0ID0gRmlsdGVyQ29udGV4dE9wZW5DTDo6Y29udGV4dCgpOwogICAgICAgICBBU1NF
UlQoY29udGV4dCk7CiAgICAgICAgIGNvbnRleHQtPm9wZW5DTFRyYW5zZm9ybUNvbG9yU3BhY2Uo
bV9vcGVuQ0xJbWFnZVJlc3VsdCwgYWJzb2x1dGVQYWludFJlY3QoKSwgbV9yZXN1bHRDb2xvclNw
YWNlLCBkc3RDb2xvclNwYWNlKTsKQEAgLTU1OCw5ICs1NTgsOSBAQCB2b2lkIEZpbHRlckVmZmVj
dDo6dHJhbnNmb3JtUmVzdWx0Q29sb3JTcGFjZShDb2xvclNwYWNlIGRzdENvbG9yU3BhY2UpCiAg
ICAgbV9yZXN1bHRDb2xvclNwYWNlID0gZHN0Q29sb3JTcGFjZTsKIAogICAgIGlmIChtX3VubXVs
dGlwbGllZEltYWdlUmVzdWx0KQotICAgICAgICBtX3VubXVsdGlwbGllZEltYWdlUmVzdWx0LmNs
ZWFyKCk7CisgICAgICAgIG1fdW5tdWx0aXBsaWVkSW1hZ2VSZXN1bHQgPSBudWxscHRyOwogICAg
IGlmIChtX3ByZW11bHRpcGxpZWRJbWFnZVJlc3VsdCkKLSAgICAgICAgbV9wcmVtdWx0aXBsaWVk
SW1hZ2VSZXN1bHQuY2xlYXIoKTsKKyAgICAgICAgbV9wcmVtdWx0aXBsaWVkSW1hZ2VSZXN1bHQg
PSBudWxscHRyOwogI2VuZGlmCiB9CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRm
b3JtL2dyYXBoaWNzL2dzdHJlYW1lci9JbWFnZUdTdHJlYW1lckNhaXJvLmNwcCBiL1NvdXJjZS9X
ZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2dzdHJlYW1lci9JbWFnZUdTdHJlYW1lckNhaXJvLmNw
cAppbmRleCAwNmZhZWNhMTliYTI1M2VhNzgzNzBmNTg1NDRhYmYxYWNiMmU1MjVlLi5lZTI3Mjc3
ZmYwYjdlOTAzM2Y0YjkzMzYwMjhhY2Y0MjE4YjIwYTVmIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2Vi
Q29yZS9wbGF0Zm9ybS9ncmFwaGljcy9nc3RyZWFtZXIvSW1hZ2VHU3RyZWFtZXJDYWlyby5jcHAK
KysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvZ3N0cmVhbWVyL0ltYWdlR1N0
cmVhbWVyQ2Fpcm8uY3BwCkBAIC03MSw5ICs3MSw3IEBAIEltYWdlR1N0cmVhbWVyOjpJbWFnZUdT
dHJlYW1lcihHc3RTYW1wbGUqIHNhbXBsZSkKIEltYWdlR1N0cmVhbWVyOjp+SW1hZ2VHU3RyZWFt
ZXIoKQogewogICAgIGlmIChtX2ltYWdlKQotICAgICAgICBtX2ltYWdlLmNsZWFyKCk7Ci0KLSAg
ICBtX2ltYWdlID0gMDsKKyAgICAgICAgbV9pbWFnZSA9IG51bGxwdHI7CiAKICAgICAvLyBXZSBr
ZWVwIHRoZSBidWZmZXIgbWVtb3J5IG1hcHBlZCB1bnRpbCB0aGUgaW1hZ2UgaXMgZGVzdHJveWVk
IGJlY2F1c2UgdGhlIGludGVybmFsCiAgICAgLy8gY2Fpcm9fc3VyZmFjZV90IHdhcyBjcmVhdGVk
IHVzaW5nIGNhaXJvX2ltYWdlX3N1cmZhY2VfY3JlYXRlX2Zvcl9kYXRhKCkuCmRpZmYgLS1naXQg
YS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9nc3RyZWFtZXIvV2ViS2l0V2ViU291
cmNlR1N0cmVhbWVyLmNwcCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2dzdHJl
YW1lci9XZWJLaXRXZWJTb3VyY2VHU3RyZWFtZXIuY3BwCmluZGV4IDkzNGRhZjhjYjZkNTk4Yzdl
ZWI2YTdkMjZjNzRmNDIxYWY2Nzk0YTAuLmMyZGEzNzA2NDVhYjgwNjA2MzEwMDBmZWJmMzY2Mjkw
ZTNhYzdlOGQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2dz
dHJlYW1lci9XZWJLaXRXZWJTb3VyY2VHU3RyZWFtZXIuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3Jl
L3BsYXRmb3JtL2dyYXBoaWNzL2dzdHJlYW1lci9XZWJLaXRXZWJTb3VyY2VHU3RyZWFtZXIuY3Bw
CkBAIC0xMTY5LDggKzExNjksNyBAQCBSZXNvdXJjZUhhbmRsZVN0cmVhbWluZ0NsaWVudDo6flJl
c291cmNlSGFuZGxlU3RyZWFtaW5nQ2xpZW50KCkKIHsKICAgICBpZiAobV9yZXNvdXJjZSkgewog
ICAgICAgICBtX3Jlc291cmNlLT5jYW5jZWwoKTsKLSAgICAgICAgbV9yZXNvdXJjZS5yZWxlYXNl
KCk7Ci0gICAgICAgIG1fcmVzb3VyY2UgPSAwOworICAgICAgICBtX3Jlc291cmNlID0gbnVsbHB0
cjsKICAgICB9CiB9CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBo
aWNzL3RleG1hcC9CaXRtYXBUZXh0dXJlR0wuY3BwIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0v
Z3JhcGhpY3MvdGV4bWFwL0JpdG1hcFRleHR1cmVHTC5jcHAKaW5kZXggOTc1YzM4ZjJmZjRiMTkx
ODI4ZDdkMWVjZTE2ZTRkNjA5YjA5MGJmNi4uMGU1MmQ3YjRiMjU4NDVhNjAzOGRiNDVlZDhmOGE5
YWJkNGFlZjk5NCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3Mv
dGV4bWFwL0JpdG1hcFRleHR1cmVHTC5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0v
Z3JhcGhpY3MvdGV4bWFwL0JpdG1hcFRleHR1cmVHTC5jcHAKQEAgLTI3OCw3ICsyNzgsNyBAQCBQ
YXNzUmVmUHRyPEJpdG1hcFRleHR1cmU+IEJpdG1hcFRleHR1cmVHTDo6YXBwbHlGaWx0ZXJzKFRl
eHR1cmVNYXBwZXIqIHRleHR1cmVNYQogICAgICAgICAgICAgdGV4bWFwR0wtPmRyYXdGaWx0ZXJl
ZCgqcmVzdWx0U3VyZmFjZS5nZXQoKSwgc3BhcmVTdXJmYWNlLmdldCgpLCAqZmlsdGVyLCBqKTsK
ICAgICAgICAgICAgIGlmICghaiAmJiBmaWx0ZXItPnR5cGUoKSA9PSBGaWx0ZXJPcGVyYXRpb246
OkRST1BfU0hBRE9XKSB7CiAgICAgICAgICAgICAgICAgc3BhcmVTdXJmYWNlID0gcmVzdWx0U3Vy
ZmFjZTsKLSAgICAgICAgICAgICAgICByZXN1bHRTdXJmYWNlLmNsZWFyKCk7CisgICAgICAgICAg
ICAgICAgcmVzdWx0U3VyZmFjZSA9IG51bGxwdHI7CiAgICAgICAgICAgICB9CiAgICAgICAgICAg
ICBzdGQ6OnN3YXAocmVzdWx0U3VyZmFjZSwgaW50ZXJtZWRpYXRlU3VyZmFjZSk7CiAgICAgICAg
IH0KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL3RleG1hcC9H
cmFwaGljc0xheWVyVGV4dHVyZU1hcHBlci5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9n
cmFwaGljcy90ZXhtYXAvR3JhcGhpY3NMYXllclRleHR1cmVNYXBwZXIuY3BwCmluZGV4IDllZTRh
Nzg0Yzg1N2FiMWNmMTI2ZGEyY2IxMmRhZmFlYmMwOWRlN2UuLmQ1MzQ3MDQ0ZTg4YzA4ZWRiYTRk
NDYwNDY5ZjNmOTA3YTAwYjlkYzEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3Jt
L2dyYXBoaWNzL3RleG1hcC9HcmFwaGljc0xheWVyVGV4dHVyZU1hcHBlci5jcHAKKysrIGIvU291
cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvdGV4bWFwL0dyYXBoaWNzTGF5ZXJUZXh0dXJl
TWFwcGVyLmNwcApAQCAtMzAxLDggKzMwMSw4IEBAIHZvaWQgR3JhcGhpY3NMYXllclRleHR1cmVN
YXBwZXI6OnNldENvbnRlbnRzVG9JbWFnZShJbWFnZSogaW1hZ2UpCiAgICAgICAgICAgICBtX2Nv
bXBvc2l0ZWRJbWFnZSA9IFRleHR1cmVNYXBwZXJUaWxlZEJhY2tpbmdTdG9yZTo6Y3JlYXRlKCk7
CiAgICAgICAgIG1fY29tcG9zaXRlZEltYWdlLT5zZXRDb250ZW50c1RvSW1hZ2UoaW1hZ2UpOwog
ICAgIH0gZWxzZSB7Ci0gICAgICAgIG1fY29tcG9zaXRlZE5hdGl2ZUltYWdlUHRyID0gMDsKLSAg
ICAgICAgbV9jb21wb3NpdGVkSW1hZ2UgPSAwOworICAgICAgICBtX2NvbXBvc2l0ZWROYXRpdmVJ
bWFnZVB0ciA9IG51bGxwdHI7CisgICAgICAgIG1fY29tcG9zaXRlZEltYWdlID0gbnVsbHB0cjsK
ICAgICB9CiAKICAgICBzZXRDb250ZW50c1RvUGxhdGZvcm1MYXllcihtX2NvbXBvc2l0ZWRJbWFn
ZS5nZXQoKSwgQ29udGVudHNMYXllckZvckltYWdlKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJD
b3JlL3BsYXRmb3JtL2dyYXBoaWNzL3RleG1hcC9UZXh0dXJlTWFwcGVyR0wuY3BwIGIvU291cmNl
L1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvdGV4bWFwL1RleHR1cmVNYXBwZXJHTC5jcHAKaW5k
ZXggMGJjZThjNzQyMGQ3ZDBhNDRiMzA5ZTI2ZjU2NmE5MjE5M2U0ODYwYS4uNGM1NDgwNTYyMzVl
Mzk4ZmFjOTgzNjBmZTljYmY2MjVjNzVhMWQwNSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUv
cGxhdGZvcm0vZ3JhcGhpY3MvdGV4bWFwL1RleHR1cmVNYXBwZXJHTC5jcHAKKysrIGIvU291cmNl
L1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvdGV4bWFwL1RleHR1cmVNYXBwZXJHTC5jcHAKQEAg
LTY5MSw3ICs2OTEsNyBAQCB2b2lkIFRleHR1cmVNYXBwZXJHTDo6YmluZERlZmF1bHRTdXJmYWNl
KCkKICAgICBkYXRhKCkucHJvamVjdGlvbk1hdHJpeCA9IGNyZWF0ZVByb2plY3Rpb25NYXRyaXgo
dmlld3BvcnRTaXplLCBkYXRhKCkuUGFpbnRGbGFncyAmIFBhaW50aW5nTWlycm9yZWQpOwogICAg
IG1fY29udGV4dDNELT52aWV3cG9ydChkYXRhKCkudmlld3BvcnRbMF0sIGRhdGEoKS52aWV3cG9y
dFsxXSwgdmlld3BvcnRTaXplLndpZHRoKCksIHZpZXdwb3J0U2l6ZS5oZWlnaHQoKSk7CiAgICAg
bV9jbGlwU3RhY2suYXBwbHkobV9jb250ZXh0M0QuZ2V0KCkpOwotICAgIGRhdGEoKS5jdXJyZW50
U3VyZmFjZS5jbGVhcigpOworICAgIGRhdGEoKS5jdXJyZW50U3VyZmFjZSA9IG51bGxwdHI7CiB9
CiAKIHZvaWQgVGV4dHVyZU1hcHBlckdMOjpiaW5kU3VyZmFjZShCaXRtYXBUZXh0dXJlICpzdXJm
YWNlKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvdGV4bWFw
L1RleHR1cmVNYXBwZXJMYXllci5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGlj
cy90ZXhtYXAvVGV4dHVyZU1hcHBlckxheWVyLmNwcAppbmRleCBjODY0MjAyMmEzYWMxNDY1Nzcw
ODgxZjEyNDg3ZmY3ZGRiYjU0NGQ4Li4zNDU1Mzk4NzAyNGE2ZTc1ZmQ5ZDFlMzkwNjgxNzhiOWVk
NzIzYTJiIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy90ZXht
YXAvVGV4dHVyZU1hcHBlckxheWVyLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9n
cmFwaGljcy90ZXhtYXAvVGV4dHVyZU1hcHBlckxheWVyLmNwcApAQCAtNDA4LDcgKzQwOCw3IEBA
IHZvaWQgVGV4dHVyZU1hcHBlckxheWVyOjpwYWludFdpdGhJbnRlcm1lZGlhdGVTdXJmYWNlKGNv
bnN0IFRleHR1cmVNYXBwZXJQYWludE9wCiAKICAgICBpZiAocmVwbGljYVN1cmZhY2UgJiYgb3B0
aW9ucy5vcGFjaXR5ID09IDEpIHsKICAgICAgICAgY29tbWl0U3VyZmFjZShvcHRpb25zLCByZXBs
aWNhU3VyZmFjZSwgcmVjdCwgMSk7Ci0gICAgICAgIHJlcGxpY2FTdXJmYWNlLmNsZWFyKCk7Cisg
ICAgICAgIHJlcGxpY2FTdXJmYWNlID0gbnVsbHB0cjsKICAgICB9CiAKICAgICBtYWluU3VyZmFj
ZSA9IHBhaW50SW50b1N1cmZhY2UocGFpbnRPcHRpb25zLCByZWN0LnNpemUoKSk7CmRpZmYgLS1n
aXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy90ZXhtYXAvVGV4dHVyZU1hcHBl
clRpbGVkQmFja2luZ1N0b3JlLmNwcCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNz
L3RleG1hcC9UZXh0dXJlTWFwcGVyVGlsZWRCYWNraW5nU3RvcmUuY3BwCmluZGV4IDIwODA0NjIz
OTNiZGJiOWNiMDE0ODIyODM5NGU4YjJmNjVmMGM2ZDcuLmQzNTcxMGE2OTI4MWE4MjA2MTZkZTMx
MjEzM2M0ZDNjN2ZmOTE3ZTggMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dy
YXBoaWNzL3RleG1hcC9UZXh0dXJlTWFwcGVyVGlsZWRCYWNraW5nU3RvcmUuY3BwCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL3RleG1hcC9UZXh0dXJlTWFwcGVyVGlsZWRC
YWNraW5nU3RvcmUuY3BwCkBAIC0zOSw3ICszOSw3IEBAIHZvaWQgVGV4dHVyZU1hcHBlclRpbGVk
QmFja2luZ1N0b3JlOjp1cGRhdGVDb250ZW50c0Zyb21JbWFnZUlmTmVlZGVkKFRleHR1cmVNYXBw
CiAgICAgICAgIHJldHVybjsKIAogICAgIHVwZGF0ZUNvbnRlbnRzKHRleHR1cmVNYXBwZXIsIG1f
aW1hZ2UuZ2V0KCksIG1faW1hZ2UtPnNpemUoKSwgZW5jbG9zaW5nSW50UmVjdChtX2ltYWdlLT5y
ZWN0KCkpLCBCaXRtYXBUZXh0dXJlOjpVcGRhdGVDYW5ub3RNb2RpZnlPcmlnaW5hbEltYWdlRGF0
YSk7Ci0gICAgbV9pbWFnZS5jbGVhcigpOworICAgIG1faW1hZ2UgPSBudWxscHRyOwogfQogCiBU
cmFuc2Zvcm1hdGlvbk1hdHJpeCBUZXh0dXJlTWFwcGVyVGlsZWRCYWNraW5nU3RvcmU6OmFkanVz
dGVkVHJhbnNmb3JtRm9yUmVjdChjb25zdCBGbG9hdFJlY3QmIHRhcmdldFJlY3QpCmRpZmYgLS1n
aXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy90ZXhtYXAvY29vcmRpbmF0ZWQv
Q29vcmRpbmF0ZWRHcmFwaGljc0xheWVyLmNwcCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dy
YXBoaWNzL3RleG1hcC9jb29yZGluYXRlZC9Db29yZGluYXRlZEdyYXBoaWNzTGF5ZXIuY3BwCmlu
ZGV4IGUyZTFmNGFiOGZhMTk5NjRmZjZkZmNkNTJjN2I3ZDdlZDkxOGNhYjAuLmZhYTE2NWVhZTYz
ODIxZWMzZDEzOWQxOGVmZWYxN2RhZTAyODc4ZTAgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3Jl
L3BsYXRmb3JtL2dyYXBoaWNzL3RleG1hcC9jb29yZGluYXRlZC9Db29yZGluYXRlZEdyYXBoaWNz
TGF5ZXIuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL3RleG1hcC9j
b29yZGluYXRlZC9Db29yZGluYXRlZEdyYXBoaWNzTGF5ZXIuY3BwCkBAIC00NzAsOCArNDcwLDgg
QEAgdm9pZCBDb29yZGluYXRlZEdyYXBoaWNzTGF5ZXI6OnNldENvbnRlbnRzVG9JbWFnZShJbWFn
ZSogaW1hZ2UpCiAgICAgICAgIG1fY29tcG9zaXRlZEltYWdlID0gaW1hZ2U7CiAgICAgICAgIG1f
Y29tcG9zaXRlZE5hdGl2ZUltYWdlUHRyID0gbmV3TmF0aXZlSW1hZ2VQdHI7CiAgICAgfSBlbHNl
IHsKLSAgICAgICAgbV9jb21wb3NpdGVkSW1hZ2UgPSAwOwotICAgICAgICBtX2NvbXBvc2l0ZWRO
YXRpdmVJbWFnZVB0ciA9IDA7CisgICAgICAgIG1fY29tcG9zaXRlZEltYWdlID0gbnVsbHB0cjsK
KyAgICAgICAgbV9jb21wb3NpdGVkTmF0aXZlSW1hZ2VQdHIgPSBudWxscHRyOwogICAgIH0KIAog
ICAgIEdyYXBoaWNzTGF5ZXI6OnNldENvbnRlbnRzVG9JbWFnZShpbWFnZSk7CkBAIC04MjAsNyAr
ODIwLDcgQEAgdm9pZCBDb29yZGluYXRlZEdyYXBoaWNzTGF5ZXI6OnJlbGVhc2VJbWFnZUJhY2tp
bmdJZk5lZWRlZCgpCiAKICAgICBBU1NFUlQobV9jb29yZGluYXRvcik7CiAgICAgbV9jb29yZGlu
YXRlZEltYWdlQmFja2luZy0+cmVtb3ZlSG9zdCh0aGlzKTsKLSAgICBtX2Nvb3JkaW5hdGVkSW1h
Z2VCYWNraW5nLmNsZWFyKCk7CisgICAgbV9jb29yZGluYXRlZEltYWdlQmFja2luZyA9IG51bGxw
dHI7CiAgICAgbV9sYXllclN0YXRlLmltYWdlSUQgPSBJbnZhbGlkQ29vcmRpbmF0ZWRJbWFnZUJh
Y2tpbmdJRDsKICAgICBtX2xheWVyU3RhdGUuaW1hZ2VDaGFuZ2VkID0gdHJ1ZTsKIH0KZGlmZiAt
LWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL3RleG1hcC9jb29yZGluYXRl
ZC9Db29yZGluYXRlZEltYWdlQmFja2luZy5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9n
cmFwaGljcy90ZXhtYXAvY29vcmRpbmF0ZWQvQ29vcmRpbmF0ZWRJbWFnZUJhY2tpbmcuY3BwCmlu
ZGV4IGQyMmIxNWVkZDMwYWY5ZWEwOWMyNDY4NTYyMmIwMzkzYjViNTUyOTMuLmUyNjE1MGZlZWU5
ZTI3OWJhMzMyMDcwZGU4NGJmNDI0OWZmMjMxZTcgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3Jl
L3BsYXRmb3JtL2dyYXBoaWNzL3RleG1hcC9jb29yZGluYXRlZC9Db29yZGluYXRlZEltYWdlQmFj
a2luZy5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvdGV4bWFwL2Nv
b3JkaW5hdGVkL0Nvb3JkaW5hdGVkSW1hZ2VCYWNraW5nLmNwcApAQCAtMTQxLDcgKzE0MSw3IEBA
IHZvaWQgQ29vcmRpbmF0ZWRJbWFnZUJhY2tpbmc6OnJlbGVhc2VTdXJmYWNlSWZOZWVkZWQoKQog
ewogICAgIC8vIFdlIG11c3Qga2VlcCBtX3N1cmZhY2UgdW50aWwgVUkgUHJvY2VzcyByZWFkcyBt
X3N1cmZhY2UuCiAgICAgLy8gSWYgbV9zdXJmYWNlIGV4aXN0cywgaXQgd2FzIGNyZWF0ZWQgaW4g
dGhlIHByZXZpb3VzIHVwZGF0ZS4KLSAgICBtX3N1cmZhY2UuY2xlYXIoKTsKKyAgICBtX3N1cmZh
Y2UgPSBudWxscHRyOwogfQogCiBzdGF0aWMgY29uc3QgZG91YmxlIGNsZWFyQ29udGVudHNUaW1l
ckludGVydmFsID0gMzsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2d0ay9H
YW1lcGFkc0d0ay5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ndGsvR2FtZXBhZHNHdGsu
Y3BwCmluZGV4IDI2ZjliZTYyYzc2NDYzYzZlMDgxZmNlZmU3OTZiMmVhZjE3NTk1OGQuLjlmYjI5
ZjJiOTU0NmZjMTgzOWM0ZWE4ZWI1Nzg0YThhNTYyMzIzNDkgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9X
ZWJDb3JlL3BsYXRmb3JtL2d0ay9HYW1lcGFkc0d0ay5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUv
cGxhdGZvcm0vZ3RrL0dhbWVwYWRzR3RrLmNwcApAQCAtMTU1LDcgKzE1NSw3IEBAIHZvaWQgR2Ft
ZXBhZHNHdGs6OnVucmVnaXN0ZXJEZXZpY2UoU3RyaW5nIGRldmljZUZpbGUpCiAgICAgc2l6ZV90
IGluZGV4ID0gbV9zbG90cy5maW5kKGdhbWVwYWREZXZpY2UpOwogICAgIEFTU0VSVChpbmRleCAh
PSBub3RGb3VuZCk7CiAKLSAgICBtX3Nsb3RzW2luZGV4XS5jbGVhcigpOworICAgIG1fc2xvdHNb
aW5kZXhdID0gbnVsbHB0cjsKIH0KIAogdm9pZCBHYW1lcGFkc0d0azo6dXBkYXRlR2FtZXBhZExp
c3QoR2FtZXBhZExpc3QqIGludG8pCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9y
bS9pb3MvUGxhdGZvcm1TcGVlY2hTeW50aGVzaXplcklPUy5tbSBiL1NvdXJjZS9XZWJDb3JlL3Bs
YXRmb3JtL2lvcy9QbGF0Zm9ybVNwZWVjaFN5bnRoZXNpemVySU9TLm1tCmluZGV4IGFiMTRjNzA5
MDUyOTI4MmRiNGM1NTNkZjFhNWU1NTUxY2JlODI3MTYuLmRjMGNhYTg4YTA1ZTA4NGVhMDk4Y2U0
MTBiYTZkMmFiZDM4ZDkwYzcgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2lv
cy9QbGF0Zm9ybVNwZWVjaFN5bnRoZXNpemVySU9TLm1tCisrKyBiL1NvdXJjZS9XZWJDb3JlL3Bs
YXRmb3JtL2lvcy9QbGF0Zm9ybVNwZWVjaFN5bnRoZXNpemVySU9TLm1tCkBAIC0xNzksNyArMTc5
LDcgQEAgLSAodm9pZClzcGVlY2hTeW50aGVzaXplcjooQVZTcGVlY2hTeW50aGVzaXplciAqKXN5
bnRoZXNpemVyIGRpZEZpbmlzaFNwZWVjaFV0dGUKICAgICAKICAgICAvLyBDbGVhciB0aGUgbV91
dHRlcmFuY2UgdmFyaWFibGUgaW4gY2FzZSBmaW5pc2ggc3BlYWtpbmcga2lja3Mgb2ZmIGEgbmV3
IHNwZWFraW5nIGpvYiBpbW1lZGlhdGVseS4KICAgICBSZWZQdHI8V2ViQ29yZTo6UGxhdGZvcm1T
cGVlY2hTeW50aGVzaXNVdHRlcmFuY2U+IHBsYXRmb3JtVXR0ZXJhbmNlID0gbV91dHRlcmFuY2U7
Ci0gICAgbV91dHRlcmFuY2UgPSAwOworICAgIG1fdXR0ZXJhbmNlID0gbnVsbHB0cjsKICAgICAK
ICAgICBtX3N5bnRoZXNpemVyT2JqZWN0LT5jbGllbnQoKS0+ZGlkRmluaXNoU3BlYWtpbmcocGxh
dGZvcm1VdHRlcmFuY2UpOwogfQpAQCAtMjEzLDcgKzIxMyw3IEBAIC0gKHZvaWQpc3BlZWNoU3lu
dGhlc2l6ZXI6KEFWU3BlZWNoU3ludGhlc2l6ZXIgKilzeW50aGVzaXplciBkaWRDYW5jZWxTcGVl
Y2hVdHRlCiAgICAgCiAgICAgLy8gQ2xlYXIgdGhlIG1fdXR0ZXJhbmNlIHZhcmlhYmxlIGluIGNh
c2UgZmluaXNoIHNwZWFraW5nIGtpY2tzIG9mZiBhIG5ldyBzcGVha2luZyBqb2IgaW1tZWRpYXRl
bHkuCiAgICAgUmVmUHRyPFdlYkNvcmU6OlBsYXRmb3JtU3BlZWNoU3ludGhlc2lzVXR0ZXJhbmNl
PiBwbGF0Zm9ybVV0dGVyYW5jZSA9IG1fdXR0ZXJhbmNlOwotICAgIG1fdXR0ZXJhbmNlID0gMDsK
KyAgICBtX3V0dGVyYW5jZSA9IG51bGxwdHI7CiAgICAgCiAgICAgbV9zeW50aGVzaXplck9iamVj
dC0+Y2xpZW50KCktPmRpZEZpbmlzaFNwZWFraW5nKHBsYXRmb3JtVXR0ZXJhbmNlKTsKIH0KZGlm
ZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL21vY2svR2VvbG9jYXRpb25DbGllbnRN
b2NrLmNwcCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL21vY2svR2VvbG9jYXRpb25DbGllbnRN
b2NrLmNwcAppbmRleCA4MTg2YTZhNTIzM2VlODViZTY1MjY4YjY4ZjA1NDQ3ZTg1NTIzMzAwLi5i
N2NmYjliZTA2ZGNiZmZjN2MxNmIzY2ZlNzQ2NTAxMzBmYTcwMGU1IDEwMDY0NAotLS0gYS9Tb3Vy
Y2UvV2ViQ29yZS9wbGF0Zm9ybS9tb2NrL0dlb2xvY2F0aW9uQ2xpZW50TW9jay5jcHAKKysrIGIv
U291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbW9jay9HZW9sb2NhdGlvbkNsaWVudE1vY2suY3BwCkBA
IC0xMjYsNyArMTI2LDcgQEAgdm9pZCBHZW9sb2NhdGlvbkNsaWVudE1vY2s6OnBlcm1pc3Npb25U
aW1lckZpcmVkKCkKIAogdm9pZCBHZW9sb2NhdGlvbkNsaWVudE1vY2s6OnJlc2V0KCkKIHsKLSAg
ICBtX2xhc3RQb3NpdGlvbiA9IDA7CisgICAgbV9sYXN0UG9zaXRpb24gPSBudWxscHRyOwogICAg
IGNsZWFyRXJyb3IoKTsKICAgICBtX3Blcm1pc3Npb25TdGF0ZSA9IFBlcm1pc3Npb25TdGF0ZVVu
c2V0OwogfQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbW9jay9QbGF0Zm9y
bVNwZWVjaFN5bnRoZXNpemVyTW9jay5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9tb2Nr
L1BsYXRmb3JtU3BlZWNoU3ludGhlc2l6ZXJNb2NrLmNwcAppbmRleCAzODM4MzcyYzU3NzhlYzI3
MmM4YjU1ZjgzMTUwNjUzODRkOWNmODc0Li5jMGI0ZGZhMmM2ZjIyNDRlYWE0ZGE4ODY0ZDVjNGIz
MjYzMjU5MmRjIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9tb2NrL1BsYXRm
b3JtU3BlZWNoU3ludGhlc2l6ZXJNb2NrLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9y
bS9tb2NrL1BsYXRmb3JtU3BlZWNoU3ludGhlc2l6ZXJNb2NrLmNwcApAQCAtNDUsNyArNDUsNyBA
QCB2b2lkIFBsYXRmb3JtU3BlZWNoU3ludGhlc2l6ZXJNb2NrOjpzcGVha2luZ0ZpbmlzaGVkKCkK
IHsKICAgICBBU1NFUlQobV91dHRlcmFuY2UuZ2V0KCkpOwogICAgIFJlZlB0cjxQbGF0Zm9ybVNw
ZWVjaFN5bnRoZXNpc1V0dGVyYW5jZT4gcHJvdGVjdChtX3V0dGVyYW5jZSk7Ci0gICAgbV91dHRl
cmFuY2UgPSAwOworICAgIG1fdXR0ZXJhbmNlID0gbnVsbHB0cjsKICAgICAKICAgICBjbGllbnQo
KS0+ZGlkRmluaXNoU3BlYWtpbmcocHJvdGVjdCk7CiB9CkBAIC03OCw3ICs3OCw3IEBAIHZvaWQg
UGxhdGZvcm1TcGVlY2hTeW50aGVzaXplck1vY2s6OmNhbmNlbCgpCiAgICAgCiAgICAgbV9zcGVh
a2luZ0ZpbmlzaGVkVGltZXIuc3RvcCgpOwogICAgIGNsaWVudCgpLT5zcGVha2luZ0Vycm9yT2Nj
dXJyZWQobV91dHRlcmFuY2UpOwotICAgIG1fdXR0ZXJhbmNlID0gMDsKKyAgICBtX3V0dGVyYW5j
ZSA9IG51bGxwdHI7CiB9CiAKIHZvaWQgUGxhdGZvcm1TcGVlY2hTeW50aGVzaXplck1vY2s6OnBh
dXNlKCkKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL25ldHdvcmsvY2YvUmVz
b3VyY2VSZXF1ZXN0Q0ZOZXQuY3BwIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbmV0d29yay9j
Zi9SZXNvdXJjZVJlcXVlc3RDRk5ldC5jcHAKaW5kZXggY2RjN2Q3MzQ2ZDVhN2JmZTE5NzJjZmI3
ODZiZWNjZjJlM2QzOWU5ZS4uYTRkNDNkZjNjMGE0MjhmMTcwNjE4MmU4YThhYWJjMDVkZGEyM2E5
ZSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbmV0d29yay9jZi9SZXNvdXJj
ZVJlcXVlc3RDRk5ldC5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbmV0d29yay9j
Zi9SZXNvdXJjZVJlcXVlc3RDRk5ldC5jcHAKQEAgLTI5NSw3ICsyOTUsNyBAQCB2b2lkIFJlc291
cmNlUmVxdWVzdDo6ZG9VcGRhdGVSZXNvdXJjZVJlcXVlc3QoKQogdm9pZCBSZXNvdXJjZVJlcXVl
c3Q6OmRvVXBkYXRlUmVzb3VyY2VIVFRQQm9keSgpCiB7CiAgICAgaWYgKCFtX2NmUmVxdWVzdCkg
ewotICAgICAgICBtX2h0dHBCb2R5ID0gMDsKKyAgICAgICAgbV9odHRwQm9keSA9IG51bGxwdHI7
CiAgICAgICAgIHJldHVybjsKICAgICB9CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3Jl
bmRlcmluZy9JbmxpbmVGbG93Qm94LmNwcCBiL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9Jbmxp
bmVGbG93Qm94LmNwcAppbmRleCA0MTY4MmM4ZTJiNjBjYjkyOGU0NjFiNGVmZmFhM2JmNzljMzYx
YzI4Li4yZDZmYjY5NDQ4ZjhmMWJiNTk0NGMxMGJhNTQ5MDExNTY3ZDY3NzM3IDEwMDY0NAotLS0g
YS9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvSW5saW5lRmxvd0JveC5jcHAKKysrIGIvU291cmNl
L1dlYkNvcmUvcmVuZGVyaW5nL0lubGluZUZsb3dCb3guY3BwCkBAIC05NTQsNyArOTU0LDcgQEAg
dm9pZCBJbmxpbmVGbG93Qm94Ojpjb21wdXRlT3ZlcmZsb3coTGF5b3V0VW5pdCBsaW5lVG9wLCBM
YXlvdXRVbml0IGxpbmVCb3R0b20sIEcKICAgICAgICAgcmV0dXJuOwogCiAgICAgaWYgKG1fb3Zl
cmZsb3cpCi0gICAgICAgIG1fb3ZlcmZsb3cuY2xlYXIoKTsKKyAgICAgICAgbV9vdmVyZmxvdyA9
IG51bGxwdHI7CiAKICAgICAvLyBWaXN1YWwgb3ZlcmZsb3cganVzdCBpbmNsdWRlcyBvdmVyZmxv
dyBmb3Igc3R1ZmYgd2UgbmVlZCB0byByZXBhaW50IG91cnNlbHZlcy4gIFNlbGYtcGFpbnRpbmcg
bGF5ZXJzIGFyZSBpZ25vcmVkLgogICAgIC8vIExheW91dCBvdmVyZmxvdyBpcyB1c2VkIHRvIGRl
dGVybWluZSBzY3JvbGxpbmcgZXh0ZW50LCBzbyBpdCBzdGlsbCBpbmNsdWRlcyBjaGlsZCBsYXll
cnMgYW5kIGFsc28gZmFjdG9ycyBpbgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcmVuZGVy
aW5nL1JlbmRlckJveC5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyQm94LmNw
cAppbmRleCA1MDJkZjY2YzBkMGRlOThhOWE0MmNkOTRmNzBiMjBiNGUwYjJhY2JjLi42MTcxZGI1
ZTBhOGE5MjI1N2NiZTJkMzA3ZDZmNzZkYTM2OWFkYjI0IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2Vi
Q29yZS9yZW5kZXJpbmcvUmVuZGVyQm94LmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJp
bmcvUmVuZGVyQm94LmNwcApAQCAtNDQ5Nyw3ICs0NDk3LDcgQEAgdm9pZCBSZW5kZXJCb3g6OmFk
ZFZpc3VhbE92ZXJmbG93KGNvbnN0IExheW91dFJlY3QmIHJlY3QpCiAKIHZvaWQgUmVuZGVyQm94
OjpjbGVhck92ZXJmbG93KCkKIHsKLSAgICBtX292ZXJmbG93LmNsZWFyKCk7CisgICAgbV9vdmVy
ZmxvdyA9IG51bGxwdHI7CiAgICAgUmVuZGVyRmxvd1RocmVhZCogZmxvd1RocmVhZCA9IGZsb3dU
aHJlYWRDb250YWluaW5nQmxvY2soKTsKICAgICBpZiAoZmxvd1RocmVhZCkKICAgICAgICAgZmxv
d1RocmVhZC0+Y2xlYXJSZWdpb25zT3ZlcmZsb3codGhpcyk7CmRpZmYgLS1naXQgYS9Tb3VyY2Uv
V2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyQm94UmVnaW9uSW5mby5oIGIvU291cmNlL1dlYkNvcmUv
cmVuZGVyaW5nL1JlbmRlckJveFJlZ2lvbkluZm8uaAppbmRleCA2MjM2MDhkNjc1ZGNjNjkxMWUy
N2RhZjI0YWNiODQwOWQ0NmUxOGFmLi5lYTIzYzFlYzhlZTM3NWU3YTYxMWMxNGVjMDQxOWY2NTZk
YTE5N2IyIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyQm94UmVn
aW9uSW5mby5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJCb3hSZWdpb25J
bmZvLmgKQEAgLTUzLDcgKzUzLDcgQEAgcHVibGljOgogICAgIHZvaWQgY2xlYXJPdmVyZmxvdygp
CiAgICAgewogICAgICAgICBpZiAobV9vdmVyZmxvdykKLSAgICAgICAgICAgIG1fb3ZlcmZsb3cu
Y2xlYXIoKTsKKyAgICAgICAgICAgIG1fb3ZlcmZsb3cgPSBudWxscHRyOwogICAgIH0KIAogcHJp
dmF0ZToKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJDb3VudGVy
LmNwcCBiL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJDb3VudGVyLmNwcAppbmRleCA5
MThhNGY4OGEyM2Q5NmQ4YWU1ZTIzNjY5NTY3MTc4MGEwOTM2MjdlLi5jNzQ1NjM5ZjhhMGFiZTRk
OGZkZjY4MTA1NGMxNjg1MjI5ODZlZjM2IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9yZW5k
ZXJpbmcvUmVuZGVyQ291bnRlci5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1Jl
bmRlckNvdW50ZXIuY3BwCkBAIC0xODYsOCArMTg2LDggQEAgc3RhdGljIGJvb2wgZmluZFBsYWNl
Rm9yQ291bnRlcihSZW5kZXJFbGVtZW50JiBjb3VudGVyT3duZXIsIGNvbnN0IEF0b21pY1N0cmlu
ZyYKICAgICAvLyB0b3dhcmRzIHRoZSBiZWdpbmluZyBvZiB0aGUgZG9jdW1lbnQgZm9yIGNvdW50
ZXJzIHdpdGggdGhlIHNhbWUgaWRlbnRpZmllciBhcyB0aGUgb25lCiAgICAgLy8gd2UgYXJlIHRy
eWluZyB0byBmaW5kIGEgcGxhY2UgZm9yLiBUaGlzIGlzIHRoZSBuZXh0IHJlbmRlcmVyIHRvIGJl
IGNoZWNrZWQuCiAgICAgUmVuZGVyRWxlbWVudCogY3VycmVudFJlbmRlcmVyID0gcHJldmlvdXNJ
blByZU9yZGVyKGNvdW50ZXJPd25lcik7Ci0gICAgcHJldmlvdXNTaWJsaW5nID0gMDsKLSAgICBS
ZWZQdHI8Q291bnRlck5vZGU+IHByZXZpb3VzU2libGluZ1Byb3RlY3RvciA9IDA7CisgICAgcHJl
dmlvdXNTaWJsaW5nID0gbnVsbHB0cjsKKyAgICBSZWZQdHI8Q291bnRlck5vZGU+IHByZXZpb3Vz
U2libGluZ1Byb3RlY3RvcjsKIAogICAgIHdoaWxlIChjdXJyZW50UmVuZGVyZXIpIHsKICAgICAg
ICAgQ291bnRlck5vZGUqIGN1cnJlbnRDb3VudGVyID0gbWFrZUNvdW50ZXJOb2RlKCpjdXJyZW50
UmVuZGVyZXIsIGlkZW50aWZpZXIsIGZhbHNlKTsKQEAgLTIwMyw3ICsyMDMsNyBAQCBzdGF0aWMg
Ym9vbCBmaW5kUGxhY2VGb3JDb3VudGVyKFJlbmRlckVsZW1lbnQmIGNvdW50ZXJPd25lciwgY29u
c3QgQXRvbWljU3RyaW5nJgogICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8vIGhlbmNlIHdl
IGFyZSB0aGUgbmV4dCBzaWJsaW5nIG9mIHRoYXQgY291bnRlciBpZiB0aGF0IHJlc2V0IGlzIG5v
dCBhIHJvb3Qgb3IKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAvLyB3ZSBhcmUgYSByb290
IG5vZGUgaWYgdGhhdCByZXNldCBpcyBhIHJvb3QuCiAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgcGFyZW50ID0gY3VycmVudENvdW50ZXItPnBhcmVudCgpOwotICAgICAgICAgICAgICAgICAg
ICAgICAgICAgIHByZXZpb3VzU2libGluZyA9IHBhcmVudCA/IGN1cnJlbnRDb3VudGVyIDogMDsK
KyAgICAgICAgICAgICAgICAgICAgICAgICAgICBwcmV2aW91c1NpYmxpbmcgPSBwYXJlbnQgPyBj
dXJyZW50Q291bnRlciA6IG51bGxwdHI7CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgcmV0
dXJuIHBhcmVudDsKICAgICAgICAgICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgICAgICAg
ICAgICAgIC8vIFdlIGFyZSBub3QgYSByZXNldCBub2RlIG9yIHRoZSBwcmV2aW91cyByZXNldCBt
dXN0IGJlIG9uIGFuIGFuY2VzdG9yIG9mIG91ciBvd25lciByZW5kZXJlcgpAQCAtMjEzLDcgKzIx
Myw3IEBAIHN0YXRpYyBib29sIGZpbmRQbGFjZUZvckNvdW50ZXIoUmVuZGVyRWxlbWVudCYgY291
bnRlck93bmVyLCBjb25zdCBBdG9taWNTdHJpbmcmCiAgICAgICAgICAgICAgICAgICAgICAgICAv
LyBJbiB0aGVzZSBjYXNlcyB0aGUgaWRlbnRpZmllZCBwcmV2aW91c1NpYmxpbmcgd2lsbCBiZSBp
bnZhbGlkIGFzIGl0cyBwYXJlbnQgaXMgZGlmZmVyZW50IGZyb20KICAgICAgICAgICAgICAgICAg
ICAgICAgIC8vIG91ciBpZGVudGlmaWVkIHBhcmVudC4KICAgICAgICAgICAgICAgICAgICAgICAg
IGlmIChwcmV2aW91c1NpYmxpbmdQcm90ZWN0b3ItPnBhcmVudCgpICE9IGN1cnJlbnRDb3VudGVy
KQotICAgICAgICAgICAgICAgICAgICAgICAgICAgIHByZXZpb3VzU2libGluZ1Byb3RlY3RvciA9
IDA7CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgcHJldmlvdXNTaWJsaW5nUHJvdGVjdG9y
ID0gbnVsbHB0cjsKIAogICAgICAgICAgICAgICAgICAgICAgICAgcHJldmlvdXNTaWJsaW5nID0g
cHJldmlvdXNTaWJsaW5nUHJvdGVjdG9yLmdldCgpOwogICAgICAgICAgICAgICAgICAgICAgICAg
cmV0dXJuIHRydWU7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVy
TWVudUxpc3QuY3BwIGIvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlck1lbnVMaXN0LmNw
cAppbmRleCBmZjlhMmM1ODZiYmQ5YmU5OWM3NzU1ZTIyMmUwMDM4NjQ2YzE3NGQ2Li5kYjk5NDk5
Y2JkZmYwM2E1NTEwMWQyYWQ4NmUxODM3NmNmYWZhMjhiIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2Vi
Q29yZS9yZW5kZXJpbmcvUmVuZGVyTWVudUxpc3QuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3Jl
bmRlcmluZy9SZW5kZXJNZW51TGlzdC5jcHAKQEAgLTg4LDcgKzg4LDcgQEAgUmVuZGVyTWVudUxp
c3Q6On5SZW5kZXJNZW51TGlzdCgpCiAjaWYgIVBMQVRGT1JNKElPUykKICAgICBpZiAobV9wb3B1
cCkKICAgICAgICAgbV9wb3B1cC0+ZGlzY29ubmVjdENsaWVudCgpOwotICAgIG1fcG9wdXAgPSAw
OworICAgIG1fcG9wdXAgPSBudWxscHRyOwogI2VuZGlmCiB9CiAKZGlmZiAtLWdpdCBhL1NvdXJj
ZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJTZWFyY2hGaWVsZC5jcHAgYi9Tb3VyY2UvV2ViQ29y
ZS9yZW5kZXJpbmcvUmVuZGVyU2VhcmNoRmllbGQuY3BwCmluZGV4IGZhNmUzOTY3MzE2NDhlYTA1
MWM2ODA2YzE5MjRkYzJjZjhiZTRjMDAuLjg5ZGMzNGM0ZjQ0NGRjYzVjNmM5ZTA3NWUxN2Q3N2M2
ZWQyZDQ4MDUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJTZWFy
Y2hGaWVsZC5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlclNlYXJjaEZp
ZWxkLmNwcApAQCAtNjIsNyArNjIsNyBAQCBSZW5kZXJTZWFyY2hGaWVsZDo6flJlbmRlclNlYXJj
aEZpZWxkKCkKIHsKICAgICBpZiAobV9zZWFyY2hQb3B1cCkgewogICAgICAgICBtX3NlYXJjaFBv
cHVwLT5wb3B1cE1lbnUoKS0+ZGlzY29ubmVjdENsaWVudCgpOwotICAgICAgICBtX3NlYXJjaFBv
cHVwID0gMDsKKyAgICAgICAgbV9zZWFyY2hQb3B1cCA9IG51bGxwdHI7CiAgICAgfQogfQogCmRp
ZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvc3R5bGUvRmlsbExheWVyLmggYi9T
b3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvc3R5bGUvRmlsbExheWVyLmgKaW5kZXggOGIwNmNlM2I3
ZTg3N2UyNTU2ZjY3Njg4YTM0M2FhZmMyZDEzMThmOS4uMDMwOTg2M2RhZTYwZTc4ZTc2OTRiMTY5
ZTY2YmJjZTVmMTljYzgwNCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL3N0
eWxlL0ZpbGxMYXllci5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9zdHlsZS9GaWxs
TGF5ZXIuaApAQCAtMTIxLDggKzEyMSw4IEBAIHB1YmxpYzoKICAgICB2b2lkIHNldFNpemUoRmls
bFNpemUgZikgeyBtX3NpemVUeXBlID0gZi50eXBlOyBtX3NpemVMZW5ndGggPSBmLnNpemU7IH0K
ICAgICB2b2lkIHNldE1hc2tTb3VyY2VUeXBlKEVNYXNrU291cmNlVHlwZSBtKSB7IG1fbWFza1Nv
dXJjZVR5cGUgPSBtOyBtX21hc2tTb3VyY2VUeXBlU2V0ID0gdHJ1ZTsgfQogCi0gICAgdm9pZCBj
bGVhck1hc2tJbWFnZSgpIHsgbV9tYXNrSW1hZ2VPcGVyYXRpb24uY2xlYXIoKTsgfQotICAgIHZv
aWQgY2xlYXJJbWFnZSgpIHsgbV9pbWFnZS5jbGVhcigpOyBtX2ltYWdlU2V0ID0gZmFsc2U7IH0K
KyAgICB2b2lkIGNsZWFyTWFza0ltYWdlKCkgeyBtX21hc2tJbWFnZU9wZXJhdGlvbiA9IG51bGxw
dHI7IH0KKyAgICB2b2lkIGNsZWFySW1hZ2UoKSB7IG1faW1hZ2UgPSBudWxscHRyOyBtX2ltYWdl
U2V0ID0gZmFsc2U7IH0KICAgICB2b2lkIGNsZWFyWFBvc2l0aW9uKCkgeyBtX3hQb3NTZXQgPSBm
YWxzZTsgbV9iYWNrZ3JvdW5kT3JpZ2luU2V0ID0gZmFsc2U7IH0KICAgICB2b2lkIGNsZWFyWVBv
c2l0aW9uKCkgeyBtX3lQb3NTZXQgPSBmYWxzZTsgbV9iYWNrZ3JvdW5kT3JpZ2luU2V0ID0gZmFs
c2U7IH0KIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL3N0eWxlL1JlbmRl
clN0eWxlLmNwcCBiL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9zdHlsZS9SZW5kZXJTdHlsZS5j
cHAKaW5kZXggODdjNThlOWJmYzdmNDRlNGYyYjljMjZmMWVmNTlkNjhmMTIwOWZkYy4uNDdmZWU4
OTUxY2M4NjlmZjk5YmIyMmY2NTk3YzA3ZjI0YWZmMWUxMSAxMDA2NDQKLS0tIGEvU291cmNlL1dl
YkNvcmUvcmVuZGVyaW5nL3N0eWxlL1JlbmRlclN0eWxlLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29y
ZS9yZW5kZXJpbmcvc3R5bGUvUmVuZGVyU3R5bGUuY3BwCkBAIC05NTAsNyArOTUwLDcgQEAgdm9p
ZCBSZW5kZXJTdHlsZTo6c2V0UXVvdGVzKFBhc3NSZWZQdHI8UXVvdGVzRGF0YT4gcSkKIHZvaWQg
UmVuZGVyU3R5bGU6OmNsZWFyQ3Vyc29yTGlzdCgpCiB7CiAgICAgaWYgKHJhcmVJbmhlcml0ZWRE
YXRhLT5jdXJzb3JEYXRhKQotICAgICAgICByYXJlSW5oZXJpdGVkRGF0YS5hY2Nlc3MoKS0+Y3Vy
c29yRGF0YSA9IDA7CisgICAgICAgIHJhcmVJbmhlcml0ZWREYXRhLmFjY2VzcygpLT5jdXJzb3JE
YXRhID0gbnVsbHB0cjsKIH0KIAogdm9pZCBSZW5kZXJTdHlsZTo6Y2xlYXJDb250ZW50KCkKZGlm
ZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3N2Zy9TVkdUUmVmRWxlbWVudC5jcHAgYi9Tb3VyY2Uv
V2ViQ29yZS9zdmcvU1ZHVFJlZkVsZW1lbnQuY3BwCmluZGV4IDIyNWEzMDQ2YTQ5OTJjOTcwNWJh
Nzk1MDk5NTYxYjNiOWViYWZmYmQuLmUzZmFkOGQ1OTBjNTRkZTZiZTk0Njc5Yzk1NzE3Yjk4NWFj
NzRhMjEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3N2Zy9TVkdUUmVmRWxlbWVudC5jcHAK
KysrIGIvU291cmNlL1dlYkNvcmUvc3ZnL1NWR1RSZWZFbGVtZW50LmNwcApAQCAtMTA0LDcgKzEw
NCw3IEBAIHZvaWQgU1ZHVFJlZlRhcmdldEV2ZW50TGlzdGVuZXI6OmRldGFjaCgpCiAKICAgICBt
X3RhcmdldC0+cmVtb3ZlRXZlbnRMaXN0ZW5lcihldmVudE5hbWVzKCkuRE9NU3VidHJlZU1vZGlm
aWVkRXZlbnQsIHRoaXMsIGZhbHNlKTsKICAgICBtX3RhcmdldC0+cmVtb3ZlRXZlbnRMaXN0ZW5l
cihldmVudE5hbWVzKCkuRE9NTm9kZVJlbW92ZWRGcm9tRG9jdW1lbnRFdmVudCwgdGhpcywgZmFs
c2UpOwotICAgIG1fdGFyZ2V0LmNsZWFyKCk7CisgICAgbV90YXJnZXQgPSBudWxscHRyOwogfQog
CiBib29sIFNWR1RSZWZUYXJnZXRFdmVudExpc3RlbmVyOjpvcGVyYXRvcj09KGNvbnN0IEV2ZW50
TGlzdGVuZXImIGxpc3RlbmVyKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvdGVzdGluZy9J
bnRlcm5hbHMuY3BwIGIvU291cmNlL1dlYkNvcmUvdGVzdGluZy9JbnRlcm5hbHMuY3BwCmluZGV4
IDFhMTA1MTc0NzllOGU4ZTk4MWE3NDUzYWJkYTZmZGMyNDc1NzUxYjcuLjQ3NmQxZTI3NTllNjA2
ZjIwNzY0NTgyMTBkYjQ5MzNjODIzMDZlODIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3Rl
c3RpbmcvSW50ZXJuYWxzLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS90ZXN0aW5nL0ludGVybmFs
cy5jcHAKQEAgLTE3MjMsNyArMTcyMyw3IEBAIHZvaWQgSW50ZXJuYWxzOjpjbG9zZUR1bW15SW5z
cGVjdG9yRnJvbnRlbmQoKQogICAgIG1fZnJvbnRlbmRDaGFubmVsID0gbnVsbHB0cjsKIAogICAg
IG1fZnJvbnRlbmRXaW5kb3ctPmNsb3NlKG1fZnJvbnRlbmRXaW5kb3ctPnNjcmlwdEV4ZWN1dGlv
bkNvbnRleHQoKSk7Ci0gICAgbV9mcm9udGVuZFdpbmRvdy5jbGVhcigpOworICAgIG1fZnJvbnRl
bmRXaW5kb3cgPSBudWxscHRyOwogfQogCiB2b2lkIEludGVybmFsczo6c2V0SmF2YVNjcmlwdFBy
b2ZpbGluZ0VuYWJsZWQoYm9vbCBlbmFibGVkLCBFeGNlcHRpb25Db2RlJiBlYykKZGlmZiAtLWdp
dCBhL1NvdXJjZS9XZWJDb3JlL3dvcmtlcnMvV29ya2VyRXZlbnRRdWV1ZS5jcHAgYi9Tb3VyY2Uv
V2ViQ29yZS93b3JrZXJzL1dvcmtlckV2ZW50UXVldWUuY3BwCmluZGV4IGY1MjBjMWRlZWZhYjFl
YjE0ZjFiN2ZkOTI0MGZlODY0N2FjMjRhODkuLjA3MjEwNzY5ZmQwNmJhOWNlODdhYzQ2NTJjOTll
MmMxNzhkMjg0ZjEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3dvcmtlcnMvV29ya2VyRXZl
bnRRdWV1ZS5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvd29ya2Vycy9Xb3JrZXJFdmVudFF1ZXVl
LmNwcApAQCAtNjgsMTMgKzY4LDEzIEBAIHB1YmxpYzoKICAgICAgICAgICAgIHJldHVybjsKICAg
ICAgICAgbV9ldmVudFF1ZXVlLm1fZXZlbnREaXNwYXRjaGVyTWFwLnJlbW92ZShtX2V2ZW50Lmdl
dCgpKTsKICAgICAgICAgbV9ldmVudC0+dGFyZ2V0KCktPmRpc3BhdGNoRXZlbnQobV9ldmVudCk7
Ci0gICAgICAgIG1fZXZlbnQuY2xlYXIoKTsKKyAgICAgICAgbV9ldmVudCA9IG51bGxwdHI7CiAg
ICAgfQogCiAgICAgdm9pZCBjYW5jZWwoKQogICAgIHsKICAgICAgICAgbV9pc0NhbmNlbGxlZCA9
IHRydWU7Ci0gICAgICAgIG1fZXZlbnQuY2xlYXIoKTsKKyAgICAgICAgbV9ldmVudCA9IG51bGxw
dHI7CiAgICAgfQogCiBwcml2YXRlOgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvd29ya2Vy
cy9Xb3JrZXJNZXNzYWdpbmdQcm94eS5jcHAgYi9Tb3VyY2UvV2ViQ29yZS93b3JrZXJzL1dvcmtl
ck1lc3NhZ2luZ1Byb3h5LmNwcAppbmRleCA3ODQ1YjYxZmE4ZGNmYWY5ZjY3ZmFhMGQ5NDI1ZDBm
OWIyYjVkNjE1Li5iZDc0ZWFjZTAyY2QzYzEwNmZkZWFiYzdlNGNkZjYxNjhhM2RiZTFlIDEwMDY0
NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS93b3JrZXJzL1dvcmtlck1lc3NhZ2luZ1Byb3h5LmNwcAor
KysgYi9Tb3VyY2UvV2ViQ29yZS93b3JrZXJzL1dvcmtlck1lc3NhZ2luZ1Byb3h5LmNwcApAQCAt
MjY0LDcgKzI2NCw3IEBAIHZvaWQgV29ya2VyTWVzc2FnaW5nUHJveHk6Ondvcmtlckdsb2JhbFNj
b3BlRGVzdHJveWVkSW50ZXJuYWwoKQogICAgIC8vIFdvcmtlckdsb2JhbFNjb3BlRGVzdHJveWVk
VGFzayBpcyBhbHdheXMgdGhlIGxhc3QgdG8gYmUgcGVyZm9ybWVkLCBzbyB0aGUgcHJveHkgaXMg
bm90IG5lZWRlZCBmb3IgY29tbXVuaWNhdGlvbgogICAgIC8vIGluIGVpdGhlciBzaWRlIGFueSBt
b3JlLiBIb3dldmVyLCB0aGUgV29ya2VyIG9iamVjdCBtYXkgc3RpbGwgZXhpc3QsIGFuZCBpdCBh
c3N1bWVzIHRoYXQgdGhlIHByb3h5IGV4aXN0cywgdG9vLgogICAgIG1fYXNrZWRUb1Rlcm1pbmF0
ZSA9IHRydWU7Ci0gICAgbV93b3JrZXJUaHJlYWQgPSAwOworICAgIG1fd29ya2VyVGhyZWFkID0g
bnVsbHB0cjsKIAogICAgIEluc3BlY3Rvckluc3RydW1lbnRhdGlvbjo6d29ya2VyR2xvYmFsU2Nv
cGVUZXJtaW5hdGVkKG1fc2NyaXB0RXhlY3V0aW9uQ29udGV4dC5nZXQoKSwgdGhpcyk7CiAKZGlm
ZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3dvcmtlcnMvV29ya2VyVGhyZWFkLmNwcCBiL1NvdXJj
ZS9XZWJDb3JlL3dvcmtlcnMvV29ya2VyVGhyZWFkLmNwcAppbmRleCA4NzNjODI5NmU2ZTJlZjEx
NzE0MmUwNWRmODlmNGJjNDZhMTRkOTA0Li5lNTE1NTUyNmM5OGU5MTAyOTdlMDFiODZmZWQyOGIx
MmY0ZDAyMjkwIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS93b3JrZXJzL1dvcmtlclRocmVh
ZC5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvd29ya2Vycy9Xb3JrZXJUaHJlYWQuY3BwCkBAIC0x
NzEsNyArMTcxLDcgQEAgdm9pZCBXb3JrZXJUaHJlYWQ6OndvcmtlclRocmVhZCgpCiAKICAgICAv
LyBUaGUgYmVsb3cgYXNzaWdubWVudCB3aWxsIGRlc3Ryb3kgdGhlIGNvbnRleHQsIHdoaWNoIHdp
bGwgaW4gdHVybiBub3RpZnkgbWVzc2FnaW5nIHByb3h5LgogICAgIC8vIFdlIGNhbm5vdCBsZXQg
YW55IG9iamVjdHMgc3Vydml2ZSBwYXN0IHRocmVhZCBleGl0LCBiZWNhdXNlIG5vIG90aGVyIHRo
cmVhZCB3aWxsIHJ1biBHQyBvciBvdGhlcndpc2UgZGVzdHJveSB0aGVtLgotICAgIG1fd29ya2Vy
R2xvYmFsU2NvcGUgPSAwOworICAgIG1fd29ya2VyR2xvYmFsU2NvcGUgPSBudWxscHRyOwogCiAg
ICAgLy8gQ2xlYW4gdXAgV2ViQ29yZTo6VGhyZWFkR2xvYmFsRGF0YSBiZWZvcmUgV1RGOjpXVEZU
aHJlYWREYXRhIGdvZXMgYXdheSEKICAgICB0aHJlYWRHbG9iYWxEYXRhKCkuZGVzdHJveSgpOwpk
aWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUveG1sL1hNTEh0dHBSZXF1ZXN0LmNwcCBiL1NvdXJj
ZS9XZWJDb3JlL3htbC9YTUxIdHRwUmVxdWVzdC5jcHAKaW5kZXggYzdlOGMwYjJiMGZkZDNhNzli
YTA5ZDJmZDkxNWYzMjE1ZmU2YzcyOS4uNDc1ZDZmYjRkNTZiZjY1NzVlZjUwYzFjNTQ0ZDU4ODM1
MDViOTQ3NSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUveG1sL1hNTEh0dHBSZXF1ZXN0LmNw
cAorKysgYi9Tb3VyY2UvV2ViQ29yZS94bWwvWE1MSHR0cFJlcXVlc3QuY3BwCkBAIC0yNDUsNyAr
MjQ1LDcgQEAgQmxvYiogWE1MSHR0cFJlcXVlc3Q6OnJlc3BvbnNlQmxvYigpCiAgICAgICAgICAg
ICBkYXRhLmFwcGVuZChtX2JpbmFyeVJlc3BvbnNlQnVpbGRlci0+ZGF0YSgpLCBtX2JpbmFyeVJl
c3BvbnNlQnVpbGRlci0+c2l6ZSgpKTsKICAgICAgICAgICAgIFN0cmluZyBub3JtYWxpemVkQ29u
dGVudFR5cGUgPSBCbG9iOjpub3JtYWxpemVkQ29udGVudFR5cGUocmVzcG9uc2VNSU1FVHlwZSgp
KTsgLy8gcmVzcG9uc2VNSU1FVHlwZSBkZWZhdWx0cyB0byB0ZXh0L3htbCB3aGljaCBtYXkgYmUg
aW5jb3JyZWN0LgogICAgICAgICAgICAgbV9yZXNwb25zZUJsb2IgPSBCbG9iOjpjcmVhdGUoV1RG
Ojptb3ZlKGRhdGEpLCBub3JtYWxpemVkQ29udGVudFR5cGUpOwotICAgICAgICAgICAgbV9iaW5h
cnlSZXNwb25zZUJ1aWxkZXIuY2xlYXIoKTsKKyAgICAgICAgICAgIG1fYmluYXJ5UmVzcG9uc2VC
dWlsZGVyID0gbnVsbHB0cjsKICAgICAgICAgfSBlbHNlIHsKICAgICAgICAgICAgIC8vIElmIHdl
IGVycm9yZWQgb3V0IG9yIGdvdCBubyBkYXRhLCB3ZSBzdGlsbCByZXR1cm4gYSBibG9iLCBqdXN0
IGFuIGVtcHR5IG9uZS4KICAgICAgICAgICAgIG1fcmVzcG9uc2VCbG9iID0gQmxvYjo6Y3JlYXRl
KCk7CkBAIC0yNjUsNyArMjY1LDcgQEAgQXJyYXlCdWZmZXIqIFhNTEh0dHBSZXF1ZXN0OjpyZXNw
b25zZUFycmF5QnVmZmVyKCkKICAgICAgICAgICAgIG1fcmVzcG9uc2VBcnJheUJ1ZmZlciA9IG1f
YmluYXJ5UmVzcG9uc2VCdWlsZGVyLT5jcmVhdGVBcnJheUJ1ZmZlcigpOwogICAgICAgICBlbHNl
CiAgICAgICAgICAgICBtX3Jlc3BvbnNlQXJyYXlCdWZmZXIgPSBBcnJheUJ1ZmZlcjo6Y3JlYXRl
KG51bGxwdHIsIDApOwotICAgICAgICBtX2JpbmFyeVJlc3BvbnNlQnVpbGRlci5jbGVhcigpOwor
ICAgICAgICBtX2JpbmFyeVJlc3BvbnNlQnVpbGRlciA9IG51bGxwdHI7CiAgICAgfQogCiAgICAg
cmV0dXJuIG1fcmVzcG9uc2VBcnJheUJ1ZmZlci5nZXQoKTsKQEAgLTg2OCw4ICs4NjgsOCBAQCB2
b2lkIFhNTEh0dHBSZXF1ZXN0OjpjbGVhclJlc3BvbnNlQnVmZmVycygpCiAgICAgbV9jcmVhdGVk
RG9jdW1lbnQgPSBmYWxzZTsKICAgICBtX3Jlc3BvbnNlRG9jdW1lbnQgPSBudWxscHRyOwogICAg
IG1fcmVzcG9uc2VCbG9iID0gbnVsbHB0cjsKLSAgICBtX2JpbmFyeVJlc3BvbnNlQnVpbGRlci5j
bGVhcigpOwotICAgIG1fcmVzcG9uc2VBcnJheUJ1ZmZlci5jbGVhcigpOworICAgIG1fYmluYXJ5
UmVzcG9uc2VCdWlsZGVyID0gbnVsbHB0cjsKKyAgICBtX3Jlc3BvbnNlQXJyYXlCdWZmZXIgPSBu
dWxscHRyOwogICAgIG1fcmVzcG9uc2VDYWNoZUlzVmFsaWQgPSBmYWxzZTsKIH0KIApkaWZmIC0t
Z2l0IGEvU291cmNlL1dlYkNvcmUveG1sL1hTTFRQcm9jZXNzb3IuY3BwIGIvU291cmNlL1dlYkNv
cmUveG1sL1hTTFRQcm9jZXNzb3IuY3BwCmluZGV4IDA2OWNjZWNiN2JmMmM5NDAwNmRlOTQ4NWQx
NjMyODRlODQwNzkxZmIuLjQ5MWYxMmM5OWQ4YTViNDIwYWZmYzI5MDc3YzRiM2RlMjEzZDU0MDgg
MTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3htbC9YU0xUUHJvY2Vzc29yLmNwcAorKysgYi9T
b3VyY2UvV2ViQ29yZS94bWwvWFNMVFByb2Nlc3Nvci5jcHAKQEAgLTE2Miw4ICsxNjIsOCBAQCB2
b2lkIFhTTFRQcm9jZXNzb3I6OnJlbW92ZVBhcmFtZXRlcihjb25zdCBTdHJpbmcmIC8qbmFtZXNw
YWNlVVJJKi8sIGNvbnN0IFN0cmluZwogCiB2b2lkIFhTTFRQcm9jZXNzb3I6OnJlc2V0KCkKIHsK
LSAgICBtX3N0eWxlc2hlZXQuY2xlYXIoKTsKLSAgICBtX3N0eWxlc2hlZXRSb290Tm9kZS5jbGVh
cigpOworICAgIG1fc3R5bGVzaGVldCA9IG51bGxwdHI7CisgICAgbV9zdHlsZXNoZWV0Um9vdE5v
ZGUgPSBudWxscHRyOwogICAgIG1fcGFyYW1ldGVycy5jbGVhcigpOwogfQogCmRpZmYgLS1naXQg
YS9Tb3VyY2UvV2ViS2l0L1N0b3JhZ2UvU3RvcmFnZUFyZWFTeW5jLmNwcCBiL1NvdXJjZS9XZWJL
aXQvU3RvcmFnZS9TdG9yYWdlQXJlYVN5bmMuY3BwCmluZGV4IGQxZWIzMmEwZGE0Y2QzYmJlYjZm
ODhjNzYxNWUyYmZkOWI5NzcxODYuLmJhMTdmMTg5ODFlM2JlNmYxODQwZjkwOThhOGIxYWIxOTAw
NTNmNTkgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvU3RvcmFnZS9TdG9yYWdlQXJlYVN5bmMu
Y3BwCisrKyBiL1NvdXJjZS9XZWJLaXQvU3RvcmFnZS9TdG9yYWdlQXJlYVN5bmMuY3BwCkBAIC04
OCw3ICs4OCw3IEBAIHZvaWQgU3RvcmFnZUFyZWFTeW5jOjpzY2hlZHVsZUZpbmFsU3luYygpCiAg
ICAgQVNTRVJUKGlzTWFpblRocmVhZCgpKTsKICAgICAvLyBGSVhNRTogV2UgZG8gdGhpcyB0byBh
dm9pZCByYWNlcywgYnV0IGl0J2QgYmUgYmV0dGVyIHRvIG1ha2UgdGhpbmdzIHNhZmUgd2l0aG91
dCBibG9ja2luZy4KICAgICBibG9ja1VudGlsSW1wb3J0Q29tcGxldGUoKTsKLSAgICBtX3N0b3Jh
Z2VBcmVhID0gMDsgIC8vIFRoaXMgaXMgZG9uZSBpbiBibG9ja1VudGlsSW1wb3J0Q29tcGxldGUo
KSBidXQgdGhpcyBpcyBoZXJlIGFzIGEgZm9ybSBvZiBkb2N1bWVudGF0aW9uIHRoYXQgd2UgbXVz
dCBiZSBhYnNvbHV0ZWx5IHN1cmUgdGhlIHJlZiBjb3VudCBjeWNsZSBpcyBicm9rZW4uCisgICAg
bV9zdG9yYWdlQXJlYSA9IG51bGxwdHI7IC8vIFRoaXMgaXMgZG9uZSBpbiBibG9ja1VudGlsSW1w
b3J0Q29tcGxldGUoKSBidXQgdGhpcyBpcyBoZXJlIGFzIGEgZm9ybSBvZiBkb2N1bWVudGF0aW9u
IHRoYXQgd2UgbXVzdCBiZSBhYnNvbHV0ZWx5IHN1cmUgdGhlIHJlZiBjb3VudCBjeWNsZSBpcyBi
cm9rZW4uCiAKICAgICBpZiAobV9zeW5jVGltZXIuaXNBY3RpdmUoKSkKICAgICAgICAgbV9zeW5j
VGltZXIuc3RvcCgpOwpAQCAtMzc1LDcgKzM3NSw3IEBAIHZvaWQgU3RvcmFnZUFyZWFTeW5jOjpi
bG9ja1VudGlsSW1wb3J0Q29tcGxldGUoKQogICAgIE11dGV4TG9ja2VyIGxvY2tlcihtX2ltcG9y
dExvY2spOwogICAgIHdoaWxlICghbV9pbXBvcnRDb21wbGV0ZSkKICAgICAgICAgbV9pbXBvcnRD
b25kaXRpb24ud2FpdChtX2ltcG9ydExvY2spOwotICAgIG1fc3RvcmFnZUFyZWEgPSAwOworICAg
IG1fc3RvcmFnZUFyZWEgPSBudWxscHRyOwogfQogCiB2b2lkIFN0b3JhZ2VBcmVhU3luYzo6c3lu
Yyhib29sIGNsZWFySXRlbXMsIGNvbnN0IEhhc2hNYXA8U3RyaW5nLCBTdHJpbmc+JiBpdGVtcykK
ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvbWFjL1BsdWdpbnMvSG9zdGVkL1dlYkhvc3RlZE5l
dHNjYXBlUGx1Z2luVmlldy5tbSBiL1NvdXJjZS9XZWJLaXQvbWFjL1BsdWdpbnMvSG9zdGVkL1dl
Ykhvc3RlZE5ldHNjYXBlUGx1Z2luVmlldy5tbQppbmRleCA3NjAwNTgzNjkwZDc5NjBjNWQ4YTU5
YTczZTcyZDAyNWRiMmNmZjM3Li5hYzQzNGVjMWE5ZjM0OGM3MDVjOGJiMDEyY2U2YTRlYzg5N2Vm
MzBhIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L21hYy9QbHVnaW5zL0hvc3RlZC9XZWJIb3N0
ZWROZXRzY2FwZVBsdWdpblZpZXcubW0KKysrIGIvU291cmNlL1dlYktpdC9tYWMvUGx1Z2lucy9I
b3N0ZWQvV2ViSG9zdGVkTmV0c2NhcGVQbHVnaW5WaWV3Lm1tCkBAIC0yODEsNyArMjgxLDcgQEAg
LSAodm9pZClkZXN0cm95UGx1Z2luCiAgICAgICAgIH0KICAgICAgICAgCiAgICAgICAgIF9wcm94
eS0+ZGVzdHJveSgpOwotICAgICAgICBfcHJveHkgPSAwOworICAgICAgICBfcHJveHkgPSBudWxs
cHRyOwogICAgIH0KICAgICAKICAgICBfcGx1Z2luTGF5ZXIgPSAwOwpAQCAtNDMyLDcgKzQzMiw3
IEBAIC0gKHZvaWQpcGx1Z2luSG9zdERpZWQKICAgICAgICAgZG93bmNhc3Q8UmVuZGVyRW1iZWRk
ZWRPYmplY3Q+KCpfZWxlbWVudC0+cmVuZGVyZXIoKSkuc2V0UGx1Z2luVW5hdmFpbGFiaWxpdHlS
ZWFzb24oUmVuZGVyRW1iZWRkZWRPYmplY3Q6OlBsdWdpbkNyYXNoZWQpOwogCiAgICAgX3BsdWdp
bkxheWVyID0gbmlsOwotICAgIF9wcm94eSA9IDA7CisgICAgX3Byb3h5ID0gbnVsbHB0cjsKICAg
ICAKICAgICAvLyBObyBuZWVkIGZvciB1cyB0byBiZSBsYXllciBiYWNrZWQgYW55bW9yZQogICAg
IHNlbGYud2FudHNMYXllciA9IE5POwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9tYWMvV2Vi
Q29yZVN1cHBvcnQvV2ViRWRpdG9yQ2xpZW50Lm1tIGIvU291cmNlL1dlYktpdC9tYWMvV2ViQ29y
ZVN1cHBvcnQvV2ViRWRpdG9yQ2xpZW50Lm1tCmluZGV4IDZjZWQxOTQxMzg2YjBjNjkxMDYyNjdm
MWNkNzRkOGVjM2ExOWQ5NTYuLmMxODhiOWQ3Mzk1N2E0YTIzMDNkODcwMjE4MzEzMDZjZDYwMTNi
MjkgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvbWFjL1dlYkNvcmVTdXBwb3J0L1dlYkVkaXRv
ckNsaWVudC5tbQorKysgYi9Tb3VyY2UvV2ViS2l0L21hYy9XZWJDb3JlU3VwcG9ydC9XZWJFZGl0
b3JDbGllbnQubW0KQEAgLTExNDMsNyArMTE0Myw3IEBAIHZvaWQgV2ViRWRpdG9yQ2xpZW50Ojpk
aWRDaGVja1N1Y2NlZWQoaW50IHNlcXVlbmNlLCBOU0FycmF5KiByZXN1bHRzKQogewogICAgIEFT
U0VSVF9VTlVTRUQoc2VxdWVuY2UsIHNlcXVlbmNlID09IG1fdGV4dENoZWNraW5nUmVxdWVzdC0+
ZGF0YSgpLnNlcXVlbmNlKCkpOwogICAgIG1fdGV4dENoZWNraW5nUmVxdWVzdC0+ZGlkU3VjY2Vl
ZChjb3JlKHJlc3VsdHMsIG1fdGV4dENoZWNraW5nUmVxdWVzdC0+ZGF0YSgpLm1hc2soKSkpOwot
ICAgIG1fdGV4dENoZWNraW5nUmVxdWVzdC5jbGVhcigpOworICAgIG1fdGV4dENoZWNraW5nUmVx
dWVzdCA9IG51bGxwdHI7CiB9CiAjZW5kaWYKIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9t
YWMvV2ViQ29yZVN1cHBvcnQvV2ViVXNlck1lZGlhQ2xpZW50Lm1tIGIvU291cmNlL1dlYktpdC9t
YWMvV2ViQ29yZVN1cHBvcnQvV2ViVXNlck1lZGlhQ2xpZW50Lm1tCmluZGV4IDYyMmJkOWRkM2Fm
ZTA4OTJiMWRjMmRmNTBiYTdlNGI0MzIyYjE1OWQuLjE3ZjE2NDczZWQ1YjlkNDM0ODMwZWQ3Yzcy
Njk4NjVkN2E1YjM1M2YgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvbWFjL1dlYkNvcmVTdXBw
b3J0L1dlYlVzZXJNZWRpYUNsaWVudC5tbQorKysgYi9Tb3VyY2UvV2ViS2l0L21hYy9XZWJDb3Jl
U3VwcG9ydC9XZWJVc2VyTWVkaWFDbGllbnQubW0KQEAgLTE0Miw3ICsxNDIsNyBAQCAtICh2b2lk
KWNhbmNlbFJlcXVlc3QKICAgICBpZiAoIV9yZXF1ZXN0KQogICAgICAgICByZXR1cm47CiAKLSAg
ICBfcmVxdWVzdCA9IDA7CisgICAgX3JlcXVlc3QgPSBudWxscHRyOwogI2VuZGlmCiAgICAgCiB9
CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L3dpbi9XZWJWaWV3LmNwcCBiL1NvdXJjZS9XZWJL
aXQvd2luL1dlYlZpZXcuY3BwCmluZGV4IDQzNzUyNzEyOGQxNTQxZmM2OWU4N2QwNThjYjllOTA2
MmI2MzYyM2QuLmI3OWU2M2M1NDY1NWIxNzMwZjA0ZTZkNmE4ZTA3NDc0ZDZkYWJiMDEgMTAwNjQ0
Ci0tLSBhL1NvdXJjZS9XZWJLaXQvd2luL1dlYlZpZXcuY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQv
d2luL1dlYlZpZXcuY3BwCkBAIC04NTEsOCArODUxLDggQEAgdm9pZCBXZWJWaWV3OjpkZWxldGVC
YWNraW5nU3RvcmUoKQogICAgICAgICBLaWxsVGltZXIobV92aWV3V2luZG93LCBEZWxldGVCYWNr
aW5nU3RvcmVUaW1lcik7CiAgICAgICAgIG1fZGVsZXRlQmFja2luZ1N0b3JlVGltZXJBY3RpdmUg
PSBmYWxzZTsKICAgICB9Ci0gICAgbV9iYWNraW5nU3RvcmVCaXRtYXAuY2xlYXIoKTsKLSAgICBt
X2JhY2tpbmdTdG9yZURpcnR5UmVnaW9uLmNsZWFyKCk7CisgICAgbV9iYWNraW5nU3RvcmVCaXRt
YXAgPSBudWxscHRyOworICAgIG1fYmFja2luZ1N0b3JlRGlydHlSZWdpb24gPSBudWxscHRyOwog
ICAgIG1fYmFja2luZ1N0b3JlU2l6ZS5jeCA9IG1fYmFja2luZ1N0b3JlU2l6ZS5jeSA9IDA7CiB9
CiAKQEAgLTEwNzksNyArMTA3OSw3IEBAIHZvaWQgV2ViVmlldzo6dXBkYXRlQmFja2luZ1N0b3Jl
KEZyYW1lVmlldyogZnJhbWVWaWV3LCBIREMgZGMsIGJvb2wgYmFja2luZ1N0b3JlCiAgICAgICAg
IGlmIChtX3VpRGVsZWdhdGVQcml2YXRlKQogICAgICAgICAgICAgbV91aURlbGVnYXRlUHJpdmF0
ZS0+d2ViVmlld1BhaW50ZWQodGhpcyk7CiAKLSAgICAgICAgbV9iYWNraW5nU3RvcmVEaXJ0eVJl
Z2lvbi5jbGVhcigpOworICAgICAgICBtX2JhY2tpbmdTdG9yZURpcnR5UmVnaW9uID0gbnVsbHB0
cjsKICAgICB9CiAKICAgICBpZiAoIWRjKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdDIvRGF0
YWJhc2VQcm9jZXNzL0luZGV4ZWREQi9VbmlxdWVJREJEYXRhYmFzZS5jcHAgYi9Tb3VyY2UvV2Vi
S2l0Mi9EYXRhYmFzZVByb2Nlc3MvSW5kZXhlZERCL1VuaXF1ZUlEQkRhdGFiYXNlLmNwcAppbmRl
eCA2MTk4MDVjZDlhMjYxZTcxNWIyNzg4OGMxYjFiZWYxMTkzMmUzZWNkLi4zZDJjYTViYmJmYWM2
NGFlYjgxNjgwYmE4NzVmNjA3Yzg0ZTRiZDFkIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0Mi9E
YXRhYmFzZVByb2Nlc3MvSW5kZXhlZERCL1VuaXF1ZUlEQkRhdGFiYXNlLmNwcAorKysgYi9Tb3Vy
Y2UvV2ViS2l0Mi9EYXRhYmFzZVByb2Nlc3MvSW5kZXhlZERCL1VuaXF1ZUlEQkRhdGFiYXNlLmNw
cApAQCAtMTQ3LDcgKzE0Nyw3IEBAIHZvaWQgVW5pcXVlSURCRGF0YWJhc2U6OnNodXRkb3duQmFj
a2luZ1N0b3JlKFVuaXF1ZUlEQkRhdGFiYXNlU2h1dGRvd25UeXBlIHR5cGUsCiB7CiAgICAgQVNT
RVJUKCFSdW5Mb29wOjppc01haW4oKSk7CiAKLSAgICBtX2JhY2tpbmdTdG9yZS5jbGVhcigpOwor
ICAgIG1fYmFja2luZ1N0b3JlID0gbnVsbHB0cjsKIAogICAgIGlmICh0eXBlID09IFVuaXF1ZUlE
QkRhdGFiYXNlU2h1dGRvd25UeXBlOjpEZWxldGVTaHV0ZG93bikgewogICAgICAgICBTdHJpbmcg
ZGJGaWxlbmFtZSA9IFVuaXF1ZUlEQkRhdGFiYXNlOjpjYWxjdWxhdGVBYnNvbHV0ZURhdGFiYXNl
RmlsZW5hbWUoZGF0YWJhc2VEaXJlY3RvcnkpOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdDIv
UGx1Z2luUHJvY2Vzcy9QbHVnaW5Db250cm9sbGVyUHJveHkuY3BwIGIvU291cmNlL1dlYktpdDIv
UGx1Z2luUHJvY2Vzcy9QbHVnaW5Db250cm9sbGVyUHJveHkuY3BwCmluZGV4IDg4ZDZkMTc3ZGE4
NDYxZWY4ZjRlMzIzY2M2YzYyZmY5ZGNmNGMxODEuLjRhOWY0NjdlODc4ZGU4MWM2NjFiZGVkMzVk
NzYxNjYzMDYxMWM0N2MgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQyL1BsdWdpblByb2Nlc3Mv
UGx1Z2luQ29udHJvbGxlclByb3h5LmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0Mi9QbHVnaW5Qcm9j
ZXNzL1BsdWdpbkNvbnRyb2xsZXJQcm94eS5jcHAKQEAgLTEyNiw3ICsxMjYsNyBAQCBib29sIFBs
dWdpbkNvbnRyb2xsZXJQcm94eTo6aW5pdGlhbGl6ZShjb25zdCBQbHVnaW5DcmVhdGlvblBhcmFt
ZXRlcnMmIGNyZWF0aW9uUAogICAgICAgICAvLyB1c2VkIGFzIGFuIGlkZW50aWZpZXIgc28gaXQn
cyBPSyB0byBqdXN0IGdldCBhIHdlYWsgcmVmZXJlbmNlLgogICAgICAgICBQbHVnaW4qIHBsdWdp
biA9IG1fcGx1Z2luLmdldCgpOwogICAgICAgICAKLSAgICAgICAgbV9wbHVnaW4gPSAwOworICAg
ICAgICBtX3BsdWdpbiA9IG51bGxwdHI7CiAKICAgICAgICAgLy8gVGhpcyB3aWxsIGRlbGV0ZSB0
aGUgcGx1Zy1pbiBjb250cm9sbGVyIHByb3h5IG9iamVjdC4KICAgICAgICAgbV9jb25uZWN0aW9u
LT5yZW1vdmVQbHVnaW5Db250cm9sbGVyUHJveHkodGhpcywgcGx1Z2luKTsKQEAgLTE1Niw3ICsx
NTYsNyBAQCB2b2lkIFBsdWdpbkNvbnRyb2xsZXJQcm94eTo6ZGVzdHJveSgpCiAgICAgUGx1Z2lu
KiBwbHVnaW4gPSBtX3BsdWdpbi5nZXQoKTsKIAogICAgIG1fcGx1Z2luLT5kZXN0cm95UGx1Z2lu
KCk7Ci0gICAgbV9wbHVnaW4gPSAwOworICAgIG1fcGx1Z2luID0gbnVsbHB0cjsKIAogICAgIHBs
YXRmb3JtRGVzdHJveSgpOwogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9TaGFyZWQvQ2hp
bGRQcm9jZXNzUHJveHkuY3BwIGIvU291cmNlL1dlYktpdDIvU2hhcmVkL0NoaWxkUHJvY2Vzc1By
b3h5LmNwcAppbmRleCAzOTMwOTg5NzllNjhlYzEyNDQwZTEyNWZjYzNhMjQyYjA3ZTY4OTdkLi5k
OWUwN2VmNGM3ZDYyZGU4NmRmYzY5OGY3MDU0Zjg4YzRhODUzMzg1IDEwMDY0NAotLS0gYS9Tb3Vy
Y2UvV2ViS2l0Mi9TaGFyZWQvQ2hpbGRQcm9jZXNzUHJveHkuY3BwCisrKyBiL1NvdXJjZS9XZWJL
aXQyL1NoYXJlZC9DaGlsZFByb2Nlc3NQcm94eS5jcHAKQEAgLTQyLDcgKzQyLDcgQEAgQ2hpbGRQ
cm9jZXNzUHJveHk6On5DaGlsZFByb2Nlc3NQcm94eSgpCiAKICAgICBpZiAobV9wcm9jZXNzTGF1
bmNoZXIpIHsKICAgICAgICAgbV9wcm9jZXNzTGF1bmNoZXItPmludmFsaWRhdGUoKTsKLSAgICAg
ICAgbV9wcm9jZXNzTGF1bmNoZXIgPSAwOworICAgICAgICBtX3Byb2Nlc3NMYXVuY2hlciA9IG51
bGxwdHI7CiAgICAgfQogfQogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9TaGFyZWQvQ29v
cmRpbmF0ZWRHcmFwaGljcy9Db29yZGluYXRlZEJhY2tpbmdTdG9yZS5jcHAgYi9Tb3VyY2UvV2Vi
S2l0Mi9TaGFyZWQvQ29vcmRpbmF0ZWRHcmFwaGljcy9Db29yZGluYXRlZEJhY2tpbmdTdG9yZS5j
cHAKaW5kZXggYjlhMDVmOTA2ZTljMTFmMDI3ZWExYTE1MjVlZTQzZWNmZDVjNTNkNy4uYzY2ZDI4
Yjc1Mzk3NGEwNTc0MGNiNmFmNjhlMmM0ODQ4MWQ5M2MzMiAxMDA2NDQKLS0tIGEvU291cmNlL1dl
YktpdDIvU2hhcmVkL0Nvb3JkaW5hdGVkR3JhcGhpY3MvQ29vcmRpbmF0ZWRCYWNraW5nU3RvcmUu
Y3BwCisrKyBiL1NvdXJjZS9XZWJLaXQyL1NoYXJlZC9Db29yZGluYXRlZEdyYXBoaWNzL0Nvb3Jk
aW5hdGVkQmFja2luZ1N0b3JlLmNwcApAQCAtNTUsNyArNTUsNyBAQCB2b2lkIENvb3JkaW5hdGVk
QmFja2luZ1N0b3JlVGlsZTo6c3dhcEJ1ZmZlcnMoVGV4dHVyZU1hcHBlciogdGV4dHVyZU1hcHBl
cikKICAgICAgICAgdGV4dHVyZS0+cmVzZXQobV90aWxlUmVjdC5zaXplKCksIG1fc3VyZmFjZS0+
c3VwcG9ydHNBbHBoYSgpKTsKIAogICAgIG1fc3VyZmFjZS0+Y29weVRvVGV4dHVyZSh0ZXh0dXJl
LCBtX3NvdXJjZVJlY3QsIG1fc3VyZmFjZU9mZnNldCk7Ci0gICAgbV9zdXJmYWNlLmNsZWFyKCk7
CisgICAgbV9zdXJmYWNlID0gbnVsbHB0cjsKIH0KIAogdm9pZCBDb29yZGluYXRlZEJhY2tpbmdT
dG9yZVRpbGU6OnNldEJhY2tCdWZmZXIoY29uc3QgSW50UmVjdCYgdGlsZVJlY3QsIGNvbnN0IElu
dFJlY3QmIHNvdXJjZVJlY3QsIFBhc3NSZWZQdHI8Q29vcmRpbmF0ZWRTdXJmYWNlPiBidWZmZXIs
IGNvbnN0IEludFBvaW50JiBvZmZzZXQpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9TaGFy
ZWQvRG93bmxvYWRzL3NvdXAvRG93bmxvYWRTb3VwLmNwcCBiL1NvdXJjZS9XZWJLaXQyL1NoYXJl
ZC9Eb3dubG9hZHMvc291cC9Eb3dubG9hZFNvdXAuY3BwCmluZGV4IGMwOTlmODlhNDUzYjU5ZTdk
NGMwN2JmYTRlMjA4Nzg3OGZjNmNlMDAuLmEyMjQ5YmE0ZTI3NzQ1MmE5ZTE2NzA5ZmJjMDg2NzAw
NDUxMDE1ZjAgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQyL1NoYXJlZC9Eb3dubG9hZHMvc291
cC9Eb3dubG9hZFNvdXAuY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQyL1NoYXJlZC9Eb3dubG9hZHMv
c291cC9Eb3dubG9hZFNvdXAuY3BwCkBAIC0yNTcsNyArMjU3LDcgQEAgdm9pZCBEb3dubG9hZDo6
cGxhdGZvcm1JbnZhbGlkYXRlKCkKICAgICBpZiAobV9yZXNvdXJjZUhhbmRsZSkgewogICAgICAg
ICBtX3Jlc291cmNlSGFuZGxlLT5zZXRDbGllbnQoMCk7CiAgICAgICAgIG1fcmVzb3VyY2VIYW5k
bGUtPmNhbmNlbCgpOwotICAgICAgICBtX3Jlc291cmNlSGFuZGxlID0gMDsKKyAgICAgICAgbV9y
ZXNvdXJjZUhhbmRsZSA9IG51bGxwdHI7CiAgICAgfQogCiAgICAgbV9kb3dubG9hZENsaWVudCA9
IG51bGxwdHI7CkBAIC0yNjUsNyArMjY1LDcgQEAgdm9pZCBEb3dubG9hZDo6cGxhdGZvcm1JbnZh
bGlkYXRlKCkKIAogdm9pZCBEb3dubG9hZDo6cGxhdGZvcm1EaWRGaW5pc2goKQogewotICAgIG1f
cmVzb3VyY2VIYW5kbGUgPSAwOworICAgIG1fcmVzb3VyY2VIYW5kbGUgPSBudWxscHRyOwogfQog
CiB2b2lkIERvd25sb2FkOjpyZWNlaXZlZENyZWRlbnRpYWwoY29uc3QgQXV0aGVudGljYXRpb25D
aGFsbGVuZ2UmLCBjb25zdCBDcmVkZW50aWFsJikKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQy
L1VJUHJvY2Vzcy9BUEkvZWZsL0V3a1ZpZXcuY3BwIGIvU291cmNlL1dlYktpdDIvVUlQcm9jZXNz
L0FQSS9lZmwvRXdrVmlldy5jcHAKaW5kZXggNzdiNTAxYTg0ZGY2NDNlMWJkZWU3ZTU3NDVmZjE5
NDQxNDI1YWY1OS4uNDU4ODQ2NDU3ODczNzQ3MzdkODNiYmM0MDVlZThjN2JmZTc0NWZjOSAxMDA2
NDQKLS0tIGEvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL0FQSS9lZmwvRXdrVmlldy5jcHAKKysr
IGIvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL0FQSS9lZmwvRXdrVmlldy5jcHAKQEAgLTk0MCw3
ICs5NDAsNyBAQCB2b2lkIEV3a1ZpZXc6OmhpZGVDb250ZXh0TWVudSgpCiAgICAgaWYgKHNkLT5h
cGktPmNvbnRleHRfbWVudV9oaWRlKQogICAgICAgICBzZC0+YXBpLT5jb250ZXh0X21lbnVfaGlk
ZShzZCk7CiAKLSAgICBtX2NvbnRleHRNZW51LmNsZWFyKCk7CisgICAgbV9jb250ZXh0TWVudSA9
IG51bGxwdHI7CiB9CiAKIHZvaWQgRXdrVmlldzo6cmVxdWVzdFBvcHVwTWVudShXS1BvcHVwTWVu
dUxpc3RlbmVyUmVmIHBvcHVwTWVudUxpc3RlbmVyLCBjb25zdCBXS1JlY3QmIHJlY3QsIFdLUG9w
dXBJdGVtVGV4dERpcmVjdGlvbiB0ZXh0RGlyZWN0aW9uLCBkb3VibGUgcGFnZVNjYWxlRmFjdG9y
LCBXS0FycmF5UmVmIGl0ZW1zLCBpbnQzMl90IHNlbGVjdGVkSW5kZXgpCmRpZmYgLS1naXQgYS9T
b3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvQVBJL2d0ay9XZWJLaXRGb3JtU3VibWlzc2lvblJlcXVl
c3QuY3BwIGIvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL0FQSS9ndGsvV2ViS2l0Rm9ybVN1Ym1p
c3Npb25SZXF1ZXN0LmNwcAppbmRleCBkMmQ1ZTY4MjE4ZmEyNjEzNGQ4ZDZjYjMzODhmNDVmY2Nl
YWVmYTI5Li43YWYyYWVlMTBiNzU0OGY5ZWQ3YmJmN2VkYzIzM2M0M2QxNjk1MTc1IDEwMDY0NAot
LS0gYS9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvQVBJL2d0ay9XZWJLaXRGb3JtU3VibWlzc2lv
blJlcXVlc3QuY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9BUEkvZ3RrL1dlYktp
dEZvcm1TdWJtaXNzaW9uUmVxdWVzdC5jcHAKQEAgLTk2LDcgKzk2LDcgQEAgR0hhc2hUYWJsZSog
d2Via2l0X2Zvcm1fc3VibWlzc2lvbl9yZXF1ZXN0X2dldF90ZXh0X2ZpZWxkcyhXZWJLaXRGb3Jt
U3VibWlzc2lvblIKICAgICAgICAgcmV0dXJuIHJlcXVlc3QtPnByaXYtPnZhbHVlcy5nZXQoKTsK
IAogICAgIGlmICghcmVxdWVzdC0+cHJpdi0+d2ViVmFsdWVzLT5zaXplKCkpCi0gICAgICAgIHJl
dHVybiAwOworICAgICAgICByZXR1cm4gbnVsbHB0cjsKIAogICAgIHJlcXVlc3QtPnByaXYtPnZh
bHVlcyA9IGFkb3B0R1JlZihnX2hhc2hfdGFibGVfbmV3X2Z1bGwoZ19zdHJfaGFzaCwgZ19zdHJf
ZXF1YWwsIGdfZnJlZSwgZ19mcmVlKSk7CiAKQEAgLTEwNyw3ICsxMDcsNyBAQCBHSGFzaFRhYmxl
KiB3ZWJraXRfZm9ybV9zdWJtaXNzaW9uX3JlcXVlc3RfZ2V0X3RleHRfZmllbGRzKFdlYktpdEZv
cm1TdWJtaXNzaW9uUgogICAgICAgICBnX2hhc2hfdGFibGVfaW5zZXJ0KHJlcXVlc3QtPnByaXYt
PnZhbHVlcy5nZXQoKSwgZ19zdHJkdXAoaXQtPmtleS51dGY4KCkuZGF0YSgpKSwgZ19zdHJkdXAo
dmFsdWUtPnN0cmluZygpLnV0ZjgoKS5kYXRhKCkpKTsKICAgICB9CiAKLSAgICByZXF1ZXN0LT5w
cml2LT53ZWJWYWx1ZXMgPSAwOworICAgIHJlcXVlc3QtPnByaXYtPndlYlZhbHVlcyA9IG51bGxw
dHI7CiAKICAgICByZXR1cm4gcmVxdWVzdC0+cHJpdi0+dmFsdWVzLmdldCgpOwogfQpkaWZmIC0t
Z2l0IGEvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL0FQSS9tYWMvV0tWaWV3Lm1tIGIvU291cmNl
L1dlYktpdDIvVUlQcm9jZXNzL0FQSS9tYWMvV0tWaWV3Lm1tCmluZGV4IGQ1NTE1YWUxZmMzZjQy
OTlkYTEyNDMxYTQxYTc0N2UzOGEzZTQ2NTcuLmU4ZDI0NDk1OGYwOWRlNWZkZWM5ZTFiYzNiMTRh
MjYxMDIyZTMyYTYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9BUEkvbWFj
L1dLVmlldy5tbQorKysgYi9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvQVBJL21hYy9XS1ZpZXcu
bW0KQEAgLTM1MjAsNyArMzUyMCw3IEBAIC0gKHZvaWQpX3NldFByb21pc2VkRGF0YUZvckF0dGFj
aG1lbnQ6KE5TU3RyaW5nICopZmlsZW5hbWUgd2l0aEV4dGVuc2lvbjooTlNTdHJpCiAKIC0gKHZv
aWQpcGFzdGVib2FyZENoYW5nZWRPd25lcjooTlNQYXN0ZWJvYXJkICopcGFzdGVib2FyZAogewot
ICAgIF9kYXRhLT5fcHJvbWlzZWRJbWFnZSA9IDA7CisgICAgX2RhdGEtPl9wcm9taXNlZEltYWdl
ID0gbnVsbHB0cjsKICAgICBfZGF0YS0+X3Byb21pc2VkRmlsZW5hbWUgPSAiIjsKICAgICBfZGF0
YS0+X3Byb21pc2VkVVJMID0gIiI7CiB9CkBAIC0zNTMxLDcgKzM1MzEsNyBAQCAtICh2b2lkKXBh
c3RlYm9hcmQ6KE5TUGFzdGVib2FyZCAqKXBhc3RlYm9hcmQgcHJvdmlkZURhdGFGb3JUeXBlOihO
U1N0cmluZyAqKXR5cAogCiAgICAgaWYgKFt0eXBlIGlzRXF1YWw6TlNUSUZGUGJvYXJkVHlwZV0g
JiYgX2RhdGEtPl9wcm9taXNlZEltYWdlKSB7CiAgICAgICAgIFtwYXN0ZWJvYXJkIHNldERhdGE6
KE5TRGF0YSAqKV9kYXRhLT5fcHJvbWlzZWRJbWFnZS0+Z2V0VElGRlJlcHJlc2VudGF0aW9uKCkg
Zm9yVHlwZTpOU1RJRkZQYm9hcmRUeXBlXTsKLSAgICAgICAgX2RhdGEtPl9wcm9taXNlZEltYWdl
ID0gMDsKKyAgICAgICAgX2RhdGEtPl9wcm9taXNlZEltYWdlID0gbnVsbHB0cjsKICAgICB9CiB9
CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9JbnNwZWN0b3JTZXJ2ZXIv
V2ViU29ja2V0U2VydmVyQ29ubmVjdGlvbi5jcHAgYi9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3Mv
SW5zcGVjdG9yU2VydmVyL1dlYlNvY2tldFNlcnZlckNvbm5lY3Rpb24uY3BwCmluZGV4IDgwOTdh
YzFhNGNjMWUwZGRiZmFkZmY5OTBjM2U0ZTUyNzdiZmU0MDYuLjk0YTI0YzkwYzM4NjZhZjU5N2Vi
MGQ1OTFmMzY5ZjcxMGRmNjA3YzggMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vz
cy9JbnNwZWN0b3JTZXJ2ZXIvV2ViU29ja2V0U2VydmVyQ29ubmVjdGlvbi5jcHAKKysrIGIvU291
cmNlL1dlYktpdDIvVUlQcm9jZXNzL0luc3BlY3RvclNlcnZlci9XZWJTb2NrZXRTZXJ2ZXJDb25u
ZWN0aW9uLmNwcApAQCAtMTI2LDcgKzEyNiw3IEBAIHZvaWQgV2ViU29ja2V0U2VydmVyQ29ubmVj
dGlvbjo6c2VuZFJhd0RhdGEoY29uc3QgY2hhciogZGF0YSwgc2l6ZV90IGxlbmd0aCkKIHZvaWQg
V2ViU29ja2V0U2VydmVyQ29ubmVjdGlvbjo6ZGlkQ2xvc2VTb2NrZXRTdHJlYW0oU29ja2V0U3Ry
ZWFtSGFuZGxlKikKIHsKICAgICAvLyBEZXN0cm95IHRoZSBTb2NrZXRTdHJlYW1IYW5kbGUgbm93
IHRvIHByZXZlbnQgY2xvc2luZyBhbiBhbHJlYWR5IGNsb3NlZCBzb2NrZXQgbGF0ZXIuCi0gICAg
bV9zb2NrZXQuY2xlYXIoKTsKKyAgICBtX3NvY2tldCA9IG51bGxwdHI7CiAKICAgICAvLyBXZWIg
U29ja2V0IE1vZGUuCiAgICAgaWYgKG1fbW9kZSA9PSBXZWJTb2NrZXQpCmRpZmYgLS1naXQgYS9T
b3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvTmV0d29yay9DdXN0b21Qcm90b2NvbHMvbWFjL0N1c3Rv
bVByb3RvY29sTWFuYWdlclByb3h5TWFjLm1tIGIvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL05l
dHdvcmsvQ3VzdG9tUHJvdG9jb2xzL21hYy9DdXN0b21Qcm90b2NvbE1hbmFnZXJQcm94eU1hYy5t
bQppbmRleCA5NDI1Mjk5YTJlYzczZjhiZTBkMTk5YTExM2EyZDZiYmE4YjYxOTc0Li41MTNiMWUw
Y2ZmOTdmYjE2ZmU0YWJlOTFlYThiZmE0ZGRlYzEyYmE0IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2Vi
S2l0Mi9VSVByb2Nlc3MvTmV0d29yay9DdXN0b21Qcm90b2NvbHMvbWFjL0N1c3RvbVByb3RvY29s
TWFuYWdlclByb3h5TWFjLm1tCisrKyBiL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9OZXR3b3Jr
L0N1c3RvbVByb3RvY29scy9tYWMvQ3VzdG9tUHJvdG9jb2xNYW5hZ2VyUHJveHlNYWMubW0KQEAg
LTc2LDcgKzc2LDcgQEAgLSAoaWQpaW5pdFdpdGhDdXN0b21Qcm90b2NvbE1hbmFnZXJQcm94eToo
Q3VzdG9tUHJvdG9jb2xNYW5hZ2VyUHJveHkqKWN1c3RvbVByb3QKIAogLSAodm9pZClkZWFsbG9j
CiB7Ci0gICAgX2Nvbm5lY3Rpb24uY2xlYXIoKTsKKyAgICBfY29ubmVjdGlvbiA9IG51bGxwdHI7
CiAgICAgW191cmxDb25uZWN0aW9uIGNhbmNlbF07CiAgICAgW191cmxDb25uZWN0aW9uIHJlbGVh
c2VdOwogICAgIFtzdXBlciBkZWFsbG9jXTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL1VJ
UHJvY2Vzcy9TdGF0aXN0aWNzUmVxdWVzdC5jcHAgYi9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3Mv
U3RhdGlzdGljc1JlcXVlc3QuY3BwCmluZGV4IGMwZWM0OGVlM2JiOTY1MmRkNzg4N2U4NGU4NDhm
MjI0ZTJmYmZiMjAuLjgwNmUxMGYwMGZmM2YxNDRmMTdmYjdiMDI2OGUxMWZhY2ExNmYxNTkgMTAw
NjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9TdGF0aXN0aWNzUmVxdWVzdC5jcHAK
KysrIGIvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL1N0YXRpc3RpY3NSZXF1ZXN0LmNwcApAQCAt
OTUsNyArOTUsNyBAQCB2b2lkIFN0YXRpc3RpY3NSZXF1ZXN0Ojpjb21wbGV0ZWRSZXF1ZXN0KHVp
bnQ2NF90IHJlcXVlc3RJRCwgY29uc3QgU3RhdGlzdGljc0RhdAogCiAgICAgaWYgKG1fb3V0c3Rh
bmRpbmdSZXF1ZXN0cy5pc0VtcHR5KCkpIHsKICAgICAgICAgbV9jYWxsYmFjay0+cGVyZm9ybUNh
bGxiYWNrV2l0aFJldHVyblZhbHVlKG1fcmVzcG9uc2VEaWN0aW9uYXJ5LmdldCgpKTsKLSAgICAg
ICAgbV9jYWxsYmFjayA9IDA7CisgICAgICAgIG1fY2FsbGJhY2sgPSBudWxscHRyOwogICAgIH0K
IH0KIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL1dlYkZyYW1lTGlzdGVu
ZXJQcm94eS5jcHAgYi9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvV2ViRnJhbWVMaXN0ZW5lclBy
b3h5LmNwcAppbmRleCBlODAxMGU1YjYyNjkwNTFiMjM1ZTBiYzNhMjNmNzBkZTkwZjcyMzRmLi40
MDYxZGQ1MjkxMzRlZDhkOGQyNWQ2OGQwY2M5YzVlOTZlODY5NjYwIDEwMDY0NAotLS0gYS9Tb3Vy
Y2UvV2ViS2l0Mi9VSVByb2Nlc3MvV2ViRnJhbWVMaXN0ZW5lclByb3h5LmNwcAorKysgYi9Tb3Vy
Y2UvV2ViS2l0Mi9VSVByb2Nlc3MvV2ViRnJhbWVMaXN0ZW5lclByb3h5LmNwcApAQCAtNDIsNyAr
NDIsNyBAQCBXZWJGcmFtZUxpc3RlbmVyUHJveHk6On5XZWJGcmFtZUxpc3RlbmVyUHJveHkoKQog
CiB2b2lkIFdlYkZyYW1lTGlzdGVuZXJQcm94eTo6aW52YWxpZGF0ZSgpCiB7Ci0gICAgbV9mcmFt
ZSA9IDA7CisgICAgbV9mcmFtZSA9IG51bGxwdHI7CiB9CiAKIHZvaWQgV2ViRnJhbWVMaXN0ZW5l
clByb3h5OjpyZWNlaXZlZFBvbGljeURlY2lzaW9uKFdlYkNvcmU6OlBvbGljeUFjdGlvbiBhY3Rp
b24pCkBAIC01MSw3ICs1MSw3IEBAIHZvaWQgV2ViRnJhbWVMaXN0ZW5lclByb3h5OjpyZWNlaXZl
ZFBvbGljeURlY2lzaW9uKFdlYkNvcmU6OlBvbGljeUFjdGlvbiBhY3Rpb24pCiAgICAgICAgIHJl
dHVybjsKIAogICAgIG1fZnJhbWUtPnJlY2VpdmVkUG9saWN5RGVjaXNpb24oYWN0aW9uLCBtX2xp
c3RlbmVySUQsIG1fbmF2aWdhdGlvbi5nZXQoKSk7Ci0gICAgbV9mcmFtZSA9IDA7CisgICAgbV9m
cmFtZSA9IG51bGxwdHI7CiB9CiAKIH0gLy8gbmFtZXNwYWNlIFdlYktpdApkaWZmIC0tZ2l0IGEv
U291cmNlL1dlYktpdDIvVUlQcm9jZXNzL1dlYkZyYW1lUHJveHkuY3BwIGIvU291cmNlL1dlYktp
dDIvVUlQcm9jZXNzL1dlYkZyYW1lUHJveHkuY3BwCmluZGV4IDQxYmI5MWExMzYxYjg4NGEyOGQx
OTRjOTJiMTc2MjhiZDQwNmQyMTQuLjY5MjhhZmJjNzAyYzcwYmRmMDk3NjNkNzNlMDZlNjJjYjNj
YTM0MjEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9XZWJGcmFtZVByb3h5
LmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvV2ViRnJhbWVQcm94eS5jcHAKQEAg
LTU3LDExICs1NywxMSBAQCBXZWJGcmFtZVByb3h5Ojp+V2ViRnJhbWVQcm94eSgpCiAKIHZvaWQg
V2ViRnJhbWVQcm94eTo6d2ViUHJvY2Vzc1dpbGxTaHV0RG93bigpCiB7Ci0gICAgbV9wYWdlID0g
MDsKKyAgICBtX3BhZ2UgPSBudWxscHRyOwogCiAgICAgaWYgKG1fYWN0aXZlTGlzdGVuZXIpIHsK
ICAgICAgICAgbV9hY3RpdmVMaXN0ZW5lci0+aW52YWxpZGF0ZSgpOwotICAgICAgICBtX2FjdGl2
ZUxpc3RlbmVyID0gMDsKKyAgICAgICAgbV9hY3RpdmVMaXN0ZW5lciA9IG51bGxwdHI7CiAgICAg
fQogfQogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvV2ViT3BlblBhbmVs
UmVzdWx0TGlzdGVuZXJQcm94eS5jcHAgYi9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvV2ViT3Bl
blBhbmVsUmVzdWx0TGlzdGVuZXJQcm94eS5jcHAKaW5kZXggZGQ2NjY3MTExOGQyNDhmODYyMWMy
Yjk4OGVlMzhiMWNmYjAzZjk2MC4uYTM3N2U0YWYwOGUyOTdmM2MyZmE3NDYwNmM5ZTU5NDhhZTdk
NDJlOCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL1dlYk9wZW5QYW5lbFJl
c3VsdExpc3RlbmVyUHJveHkuY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9XZWJP
cGVuUGFuZWxSZXN1bHRMaXN0ZW5lclByb3h5LmNwcApAQCAtODksNyArODksNyBAQCB2b2lkIFdl
Yk9wZW5QYW5lbFJlc3VsdExpc3RlbmVyUHJveHk6OmNhbmNlbCgpCiAKIHZvaWQgV2ViT3BlblBh
bmVsUmVzdWx0TGlzdGVuZXJQcm94eTo6aW52YWxpZGF0ZSgpCiB7Ci0gICAgbV9wYWdlID0gMDsK
KyAgICBtX3BhZ2UgPSBudWxscHRyOwogfQogCiB9IC8vIG5hbWVzcGFjZSBXZWJLaXQKZGlmZiAt
LWdpdCBhL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9XZWJQYWdlUHJveHkuY3BwIGIvU291cmNl
L1dlYktpdDIvVUlQcm9jZXNzL1dlYlBhZ2VQcm94eS5jcHAKaW5kZXggYmQxM2EzM2IxNjkyNGY3
NDNhZDY4NmU3YzhmMjQ2MDAxYWFlM2Q4Yy4uNzlkMjNlMDU4NGYyOTQwMzQ5MGI2N2UwMDkxYjBl
YWQzN2ZhMzVhZiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL1dlYlBhZ2VQ
cm94eS5jcHAKKysrIGIvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL1dlYlBhZ2VQcm94eS5jcHAK
QEAgLTM3MDYsNyArMzcwNiw3IEBAIHZvaWQgV2ViUGFnZVByb3h5OjpydW5PcGVuUGFuZWwodWlu
dDY0X3QgZnJhbWVJRCwgY29uc3QgRmlsZUNob29zZXJTZXR0aW5ncyYgc2V0CiB7CiAgICAgaWYg
KG1fb3BlblBhbmVsUmVzdWx0TGlzdGVuZXIpIHsKICAgICAgICAgbV9vcGVuUGFuZWxSZXN1bHRM
aXN0ZW5lci0+aW52YWxpZGF0ZSgpOwotICAgICAgICBtX29wZW5QYW5lbFJlc3VsdExpc3RlbmVy
ID0gMDsKKyAgICAgICAgbV9vcGVuUGFuZWxSZXN1bHRMaXN0ZW5lciA9IG51bGxwdHI7CiAgICAg
fQogCiAgICAgV2ViRnJhbWVQcm94eSogZnJhbWUgPSBtX3Byb2Nlc3MtPndlYkZyYW1lKGZyYW1l
SUQpOwpAQCAtMzgwOCw3ICszODA4LDcgQEAgdm9pZCBXZWJQYWdlUHJveHk6OnNob3dDb2xvclBp
Y2tlcihjb25zdCBXZWJDb3JlOjpDb2xvciYgaW5pdGlhbENvbG9yLCBjb25zdCBJbnQKICNpZiBF
TkFCTEUoSU5QVVRfVFlQRV9DT0xPUl9QT1BPVkVSKQogICAgIC8vIEEgbmV3IHBvcG92ZXIgY29s
b3Igd2VsbCBuZWVkcyB0byBiZSBjcmVhdGVkIChhbmQgdGhlIHByZXZpb3VzIG9uZSBkZXN0cm95
ZWQpIGZvcgogICAgIC8vIGVhY2ggYWN0aXZhdGlvbiBvZiBhIGNvbG9yIGVsZW1lbnQuCi0gICAg
bV9jb2xvclBpY2tlciA9IDA7CisgICAgbV9jb2xvclBpY2tlciA9IG51bGxwdHI7CiAjZW5kaWYK
ICAgICBpZiAoIW1fY29sb3JQaWNrZXIpCiAgICAgICAgIG1fY29sb3JQaWNrZXIgPSBtX3BhZ2VD
bGllbnQuY3JlYXRlQ29sb3JQaWNrZXIodGhpcywgaW5pdGlhbENvbG9yLCBlbGVtZW50UmVjdCk7
CkBAIC00MzAwLDcgKzQzMDAsNyBAQCB2b2lkIFdlYlBhZ2VQcm94eTo6ZGlkQ2hvb3NlRmlsZXNG
b3JPcGVuUGFuZWwoY29uc3QgVmVjdG9yPFN0cmluZz4mIGZpbGVVUkxzKQogICAgIG1fcHJvY2Vz
cy0+c2VuZChNZXNzYWdlczo6V2ViUGFnZTo6RGlkQ2hvb3NlRmlsZXNGb3JPcGVuUGFuZWwoZmls
ZVVSTHMpLCBtX3BhZ2VJRCk7CiAKICAgICBtX29wZW5QYW5lbFJlc3VsdExpc3RlbmVyLT5pbnZh
bGlkYXRlKCk7Ci0gICAgbV9vcGVuUGFuZWxSZXN1bHRMaXN0ZW5lciA9IDA7CisgICAgbV9vcGVu
UGFuZWxSZXN1bHRMaXN0ZW5lciA9IG51bGxwdHI7CiB9CiAKIHZvaWQgV2ViUGFnZVByb3h5Ojpk
aWRDYW5jZWxGb3JPcGVuUGFuZWwoKQpAQCAtNDMxMSw3ICs0MzExLDcgQEAgdm9pZCBXZWJQYWdl
UHJveHk6OmRpZENhbmNlbEZvck9wZW5QYW5lbCgpCiAgICAgbV9wcm9jZXNzLT5zZW5kKE1lc3Nh
Z2VzOjpXZWJQYWdlOjpEaWRDYW5jZWxGb3JPcGVuUGFuZWwoKSwgbV9wYWdlSUQpOwogICAgIAog
ICAgIG1fb3BlblBhbmVsUmVzdWx0TGlzdGVuZXItPmludmFsaWRhdGUoKTsKLSAgICBtX29wZW5Q
YW5lbFJlc3VsdExpc3RlbmVyID0gMDsKKyAgICBtX29wZW5QYW5lbFJlc3VsdExpc3RlbmVyID0g
bnVsbHB0cjsKIH0KIAogdm9pZCBXZWJQYWdlUHJveHk6OmFkdmFuY2VUb05leHRNaXNzcGVsbGlu
Zyhib29sIHN0YXJ0QmVmb3JlU2VsZWN0aW9uKQpAQCAtNDc2Nyw3ICs0NzY3LDcgQEAgdm9pZCBX
ZWJQYWdlUHJveHk6OnByaW50RmluaXNoZWRDYWxsYmFjayhjb25zdCBSZXNvdXJjZUVycm9yJiBw
cmludEVycm9yLCB1aW50NjQKIHZvaWQgV2ViUGFnZVByb3h5Ojpmb2N1c2VkRnJhbWVDaGFuZ2Vk
KHVpbnQ2NF90IGZyYW1lSUQpCiB7CiAgICAgaWYgKCFmcmFtZUlEKSB7Ci0gICAgICAgIG1fZm9j
dXNlZEZyYW1lID0gMDsKKyAgICAgICAgbV9mb2N1c2VkRnJhbWUgPSBudWxscHRyOwogICAgICAg
ICByZXR1cm47CiAgICAgfQogCkBAIC00NzgwLDcgKzQ3ODAsNyBAQCB2b2lkIFdlYlBhZ2VQcm94
eTo6Zm9jdXNlZEZyYW1lQ2hhbmdlZCh1aW50NjRfdCBmcmFtZUlEKQogdm9pZCBXZWJQYWdlUHJv
eHk6OmZyYW1lU2V0TGFyZ2VzdEZyYW1lQ2hhbmdlZCh1aW50NjRfdCBmcmFtZUlEKQogewogICAg
IGlmICghZnJhbWVJRCkgewotICAgICAgICBtX2ZyYW1lU2V0TGFyZ2VzdEZyYW1lID0gMDsKKyAg
ICAgICAgbV9mcmFtZVNldExhcmdlc3RGcmFtZSA9IG51bGxwdHI7CiAgICAgICAgIHJldHVybjsK
ICAgICB9CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9pb3MvV0tHZW9s
b2NhdGlvblByb3ZpZGVySU9TLm1tIGIvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL2lvcy9XS0dl
b2xvY2F0aW9uUHJvdmlkZXJJT1MubW0KaW5kZXggYmI2YmI2MDU0ZjdmODZiOWM2M2Q2ODVlNjVl
Zjc5ZjkyMWEzYWIxZS4uYmRkMTE0YTI0NDhkZmFhYTk3MTkxYTYyNWQ3Y2ExYmIyNjc3NjAyOSAx
MDA2NDQKLS0tIGEvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL2lvcy9XS0dlb2xvY2F0aW9uUHJv
dmlkZXJJT1MubW0KKysrIGIvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL2lvcy9XS0dlb2xvY2F0
aW9uUHJvdmlkZXJJT1MubW0KQEAgLTExOCw3ICsxMTgsNyBAQCAtKHZvaWQpX3N0b3BVcGRhdGlu
ZwogewogICAgIF9pc1dlYkNvcmVHZW9sb2NhdGlvbkFjdGl2ZSA9IE5POwogICAgIFtfY29yZUxv
Y2F0aW9uUHJvdmlkZXIgc3RvcF07Ci0gICAgX2xhc3RBY3RpdmVQb3NpdGlvbi5jbGVhcigpOwor
ICAgIF9sYXN0QWN0aXZlUG9zaXRpb24gPSBudWxscHRyOwogfQogCiAtKHZvaWQpX3NldEVuYWJs
ZUhpZ2hBY2N1cmFjeTooQk9PTCllbmFibGVIaWdoQWNjdXJhY3kKZGlmZiAtLWdpdCBhL1NvdXJj
ZS9XZWJLaXQyL1dlYlByb2Nlc3MvSW5qZWN0ZWRCdW5kbGUvbWFjL0luamVjdGVkQnVuZGxlTWFj
Lm1tIGIvU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9JbmplY3RlZEJ1bmRsZS9tYWMvSW5qZWN0
ZWRCdW5kbGVNYWMubW0KaW5kZXggNGU4NmFmMTlkNWM5YWNlMTYyZDQwZTI2ZDAwNDI3OTBlZDFj
NDhhMi4uMjg1NzVlZjc0OWIyZGRiM2Q5MGZlMjk0ZGJhMzcxMmU1NTRlODhkOSAxMDA2NDQKLS0t
IGEvU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9JbmplY3RlZEJ1bmRsZS9tYWMvSW5qZWN0ZWRC
dW5kbGVNYWMubW0KKysrIGIvU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9JbmplY3RlZEJ1bmRs
ZS9tYWMvSW5qZWN0ZWRCdW5kbGVNYWMubW0KQEAgLTU1LDcgKzU1LDcgQEAgYm9vbCBJbmplY3Rl
ZEJ1bmRsZTo6aW5pdGlhbGl6ZShjb25zdCBXZWJQcm9jZXNzQ3JlYXRpb25QYXJhbWV0ZXJzJiBw
YXJhbWV0ZXJzLAogICAgICAgICAgICAgcmV0dXJuIGZhbHNlOwogICAgICAgICB9CiAKLSAgICAg
ICAgbV9zYW5kYm94RXh0ZW5zaW9uID0gMDsKKyAgICAgICAgbV9zYW5kYm94RXh0ZW5zaW9uID0g
bnVsbHB0cjsKICAgICB9CiAgICAgCiAgICAgUmV0YWluUHRyPENGU3RyaW5nUmVmPiBpbmplY3Rl
ZEJ1bmRsZVBhdGhTdHIgPSBtX3BhdGguY3JlYXRlQ0ZTdHJpbmcoKTsKZGlmZiAtLWdpdCBhL1Nv
dXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvTmV0d29yay9XZWJSZXNvdXJjZUxvYWRlci5jcHAgYi9T
b3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL05ldHdvcmsvV2ViUmVzb3VyY2VMb2FkZXIuY3BwCmlu
ZGV4IDgzZDZjYThhYWFmZjYyNTgzMmUzODIwMDFjZjZiMDA4MDYyZDY0OWUuLjI1Mzk3YzNiYzhl
NjcxY2JkNTUwMjBlM2NkNjk3M2M2YmEwYTI5ZTcgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQy
L1dlYlByb2Nlc3MvTmV0d29yay9XZWJSZXNvdXJjZUxvYWRlci5jcHAKKysrIGIvU291cmNlL1dl
YktpdDIvV2ViUHJvY2Vzcy9OZXR3b3JrL1dlYlJlc291cmNlTG9hZGVyLmNwcApAQCAtNzYsNyAr
NzYsNyBAQCB2b2lkIFdlYlJlc291cmNlTG9hZGVyOjpjYW5jZWxSZXNvdXJjZUxvYWRlcigpCiAK
IHZvaWQgV2ViUmVzb3VyY2VMb2FkZXI6OmRldGFjaEZyb21Db3JlTG9hZGVyKCkKIHsKLSAgICBt
X2NvcmVMb2FkZXIgPSAwOworICAgIG1fY29yZUxvYWRlciA9IG51bGxwdHI7CiB9CiAKIHZvaWQg
V2ViUmVzb3VyY2VMb2FkZXI6OndpbGxTZW5kUmVxdWVzdChjb25zdCBSZXNvdXJjZVJlcXVlc3Qm
IHByb3Bvc2VkUmVxdWVzdCwgY29uc3QgUmVzb3VyY2VSZXNwb25zZSYgcmVkaXJlY3RSZXNwb25z
ZSkKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvUGx1Z2lucy9OZXRzY2Fw
ZS9OZXRzY2FwZVBsdWdpbi5jcHAgYi9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL1BsdWdpbnMv
TmV0c2NhcGUvTmV0c2NhcGVQbHVnaW4uY3BwCmluZGV4IDBhN2I3NGRlNWM1YzY2MmJkN2QxMTg0
YzQ2M2ZjOTYyNmFiNDFlY2QuLmEzNmU0YjQxMzQ1ZGViMDEzNTBhMjQ5MGU3MDU4MDhmOTUzNDkw
NjcgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvUGx1Z2lucy9OZXRzY2Fw
ZS9OZXRzY2FwZVBsdWdpbi5jcHAKKysrIGIvU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9QbHVn
aW5zL05ldHNjYXBlL05ldHNjYXBlUGx1Z2luLmNwcApAQCAtMjc3LDcgKzI3Nyw3IEBAIHZvaWQg
TmV0c2NhcGVQbHVnaW46OmNhbmNlbFN0cmVhbUxvYWQoTmV0c2NhcGVQbHVnaW5TdHJlYW0qIHBs
dWdpblN0cmVhbSkKIHZvaWQgTmV0c2NhcGVQbHVnaW46OnJlbW92ZVBsdWdpblN0cmVhbShOZXRz
Y2FwZVBsdWdpblN0cmVhbSogcGx1Z2luU3RyZWFtKQogewogICAgIGlmIChwbHVnaW5TdHJlYW0g
PT0gbV9tYW51YWxTdHJlYW0pIHsKLSAgICAgICAgbV9tYW51YWxTdHJlYW0gPSAwOworICAgICAg
ICBtX21hbnVhbFN0cmVhbSA9IG51bGxwdHI7CiAgICAgICAgIHJldHVybjsKICAgICB9CiAKZGlm
ZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvUGx1Z2lucy9QREYvUERGUGx1Z2lu
Lm1tIGIvU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9QbHVnaW5zL1BERi9QREZQbHVnaW4ubW0K
aW5kZXggZGNjYzU0MTA1ZmJhODcxOWU1ZmMzOGRmNGM1MDJkZGQyNzI5ZWVjZC4uNDcwNjFkNmQ2
MTRkMjYxZDczMzlmNTcwZmU2YjU4MDAwOTZmM2U5NCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktp
dDIvV2ViUHJvY2Vzcy9QbHVnaW5zL1BERi9QREZQbHVnaW4ubW0KKysrIGIvU291cmNlL1dlYktp
dDIvV2ViUHJvY2Vzcy9QbHVnaW5zL1BERi9QREZQbHVnaW4ubW0KQEAgLTExMDMsOCArMTEwMyw4
IEBAIHZvaWQgUERGUGx1Z2luOjpkZXN0cm95KCkKICAgICAgICAgICAgIGZyYW1lVmlldy0+cmVt
b3ZlU2Nyb2xsYWJsZUFyZWEodGhpcyk7CiAgICAgfQogCi0gICAgbV9hY3RpdmVBbm5vdGF0aW9u
ID0gMDsKLSAgICBtX2Fubm90YXRpb25Db250YWluZXIgPSAwOworICAgIG1fYWN0aXZlQW5ub3Rh
dGlvbiA9IG51bGxwdHI7CisgICAgbV9hbm5vdGF0aW9uQ29udGFpbmVyID0gbnVsbHB0cjsKIAog
ICAgIGRlc3Ryb3lTY3JvbGxiYXIoSG9yaXpvbnRhbFNjcm9sbGJhcik7CiAgICAgZGVzdHJveVNj
cm9sbGJhcihWZXJ0aWNhbFNjcm9sbGJhcik7CkBAIC0xNjA0LDE0ICsxNjA0LDE0IEBAIHZvaWQg
UERGUGx1Z2luOjpzZXRBY3RpdmVBbm5vdGF0aW9uKFBERkFubm90YXRpb24gKmFubm90YXRpb24p
CiAKICAgICBpZiAoYW5ub3RhdGlvbikgewogICAgICAgICBpZiAoW2Fubm90YXRpb24gaXNLaW5k
T2ZDbGFzczpwZGZBbm5vdGF0aW9uVGV4dFdpZGdldENsYXNzKCldICYmIHN0YXRpY19jYXN0PFBE
RkFubm90YXRpb25UZXh0V2lkZ2V0ICo+KGFubm90YXRpb24pLmlzUmVhZE9ubHkpIHsKLSAgICAg
ICAgICAgIG1fYWN0aXZlQW5ub3RhdGlvbiA9IDA7CisgICAgICAgICAgICBtX2FjdGl2ZUFubm90
YXRpb24gPSBudWxscHRyOwogICAgICAgICAgICAgcmV0dXJuOwogICAgICAgICB9CiAKICAgICAg
ICAgbV9hY3RpdmVBbm5vdGF0aW9uID0gUERGUGx1Z2luQW5ub3RhdGlvbjo6Y3JlYXRlKGFubm90
YXRpb24sIG1fcGRmTGF5ZXJDb250cm9sbGVyLmdldCgpLCB0aGlzKTsKICAgICAgICAgbV9hY3Rp
dmVBbm5vdGF0aW9uLT5hdHRhY2gobV9hbm5vdGF0aW9uQ29udGFpbmVyLmdldCgpKTsKICAgICB9
IGVsc2UKLSAgICAgICAgbV9hY3RpdmVBbm5vdGF0aW9uID0gMDsKKyAgICAgICAgbV9hY3RpdmVB
bm5vdGF0aW9uID0gbnVsbHB0cjsKIH0KIAogYm9vbCBQREZQbHVnaW46OnN1cHBvcnRzRm9ybXMo
KQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9QbHVnaW5zL1BsdWdpblZp
ZXcuY3BwIGIvU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9QbHVnaW5zL1BsdWdpblZpZXcuY3Bw
CmluZGV4IDZhODMzZjEzMTExMzUzMDc2YWNhZTEyODE0MzNiMmY1MTE5YmIyNDYuLjJhMGZkOTcz
MTMwYjIxMjY3OGIwNTU0YzdkOGJlYjU1YzY4NTk2OGQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJL
aXQyL1dlYlByb2Nlc3MvUGx1Z2lucy9QbHVnaW5WaWV3LmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0
Mi9XZWJQcm9jZXNzL1BsdWdpbnMvUGx1Z2luVmlldy5jcHAKQEAgLTE2Niw3ICsxNjYsNyBAQCB2
b2lkIFBsdWdpblZpZXc6OlN0cmVhbTo6Y2FuY2VsKCkKIAogICAgIG1fc3RyZWFtV2FzQ2FuY2Vs
bGVkID0gdHJ1ZTsKICAgICBtX2xvYWRlci0+Y2FuY2VsKG1fbG9hZGVyLT5jYW5jZWxsZWRFcnJv
cigpKTsKLSAgICBtX2xvYWRlciA9IDA7CisgICAgbV9sb2FkZXIgPSBudWxscHRyOwogfQogCiBz
dGF0aWMgU3RyaW5nIGJ1aWxkSFRUUEhlYWRlcnMoY29uc3QgUmVzb3VyY2VSZXNwb25zZSYgcmVz
cG9uc2UsIGxvbmcgbG9uZyYgZXhwZWN0ZWRDb250ZW50TGVuZ3RoKQpAQCAtNjA0LDcgKzYwNCw3
IEBAIHZvaWQgUGx1Z2luVmlldzo6aW5pdGlhbGl6ZVBsdWdpbigpCiAKIHZvaWQgUGx1Z2luVmll
dzo6ZGlkRmFpbFRvSW5pdGlhbGl6ZVBsdWdpbigpCiB7Ci0gICAgbV9wbHVnaW4gPSAwOworICAg
IG1fcGx1Z2luID0gbnVsbHB0cjsKIAogI2lmIEVOQUJMRShORVRTQ0FQRV9QTFVHSU5fQVBJKQog
ICAgIFN0cmluZyBmcmFtZVVSTFN0cmluZyA9IGZyYW1lKCktPmxvYWRlcigpLmRvY3VtZW50TG9h
ZGVyKCktPnJlc3BvbnNlVVJMKCkuc3RyaW5nKCk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0
Mi9XZWJQcm9jZXNzL1dlYlBhZ2UvV2ViUGFnZS5jcHAgYi9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9j
ZXNzL1dlYlBhZ2UvV2ViUGFnZS5jcHAKaW5kZXggMTU1NGRiY2Y3NDk2Yzc2ZDk3MjAzM2I4ZDM5
MTM2NGFiNmZlMWViOC4uN2I4YTkyNjAwN2RkMTgwNzg4NWRhMjgxMTZjODJiOThiMzE4MzI2NCAx
MDA2NDQKLS0tIGEvU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9XZWJQYWdlL1dlYlBhZ2UuY3Bw
CisrKyBiL1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvV2ViUGFnZS9XZWJQYWdlLmNwcApAQCAt
OTMwLDIzICs5MzAsMjMgQEAgdm9pZCBXZWJQYWdlOjpjbG9zZSgpCiAgICAgfQogCiAjaWYgRU5B
QkxFKEZVTExTQ1JFRU5fQVBJKQotICAgIG1fZnVsbFNjcmVlbk1hbmFnZXIgPSAwOworICAgIG1f
ZnVsbFNjcmVlbk1hbmFnZXIgPSBudWxscHRyOwogI2VuZGlmCiAKICAgICBpZiAobV9hY3RpdmVQ
b3B1cE1lbnUpIHsKICAgICAgICAgbV9hY3RpdmVQb3B1cE1lbnUtPmRpc2Nvbm5lY3RGcm9tUGFn
ZSgpOwotICAgICAgICBtX2FjdGl2ZVBvcHVwTWVudSA9IDA7CisgICAgICAgIG1fYWN0aXZlUG9w
dXBNZW51ID0gbnVsbHB0cjsKICAgICB9CiAKICAgICBpZiAobV9hY3RpdmVPcGVuUGFuZWxSZXN1
bHRMaXN0ZW5lcikgewogICAgICAgICBtX2FjdGl2ZU9wZW5QYW5lbFJlc3VsdExpc3RlbmVyLT5k
aXNjb25uZWN0RnJvbVBhZ2UoKTsKLSAgICAgICAgbV9hY3RpdmVPcGVuUGFuZWxSZXN1bHRMaXN0
ZW5lciA9IDA7CisgICAgICAgIG1fYWN0aXZlT3BlblBhbmVsUmVzdWx0TGlzdGVuZXIgPSBudWxs
cHRyOwogICAgIH0KIAogI2lmIEVOQUJMRShJTlBVVF9UWVBFX0NPTE9SKQogICAgIGlmIChtX2Fj
dGl2ZUNvbG9yQ2hvb3NlcikgewogICAgICAgICBtX2FjdGl2ZUNvbG9yQ2hvb3Nlci0+ZGlzY29u
bmVjdEZyb21QYWdlKCk7Ci0gICAgICAgIG1fYWN0aXZlQ29sb3JDaG9vc2VyID0gMDsKKyAgICAg
ICAgbV9hY3RpdmVDb2xvckNob29zZXIgPSBudWxscHRyOwogICAgIH0KICNlbmRpZgogCkBAIC0z
MjcwLDcgKzMyNzAsNyBAQCB2b2lkIFdlYlBhZ2U6OmNvdW50U3RyaW5nTWF0Y2hlcyhjb25zdCBT
dHJpbmcmIHN0cmluZywgdWludDMyX3Qgb3B0aW9ucywgdWludDMyXwogdm9pZCBXZWJQYWdlOjpk
aWRDaGFuZ2VTZWxlY3RlZEluZGV4Rm9yQWN0aXZlUG9wdXBNZW51KGludDMyX3QgbmV3SW5kZXgp
CiB7CiAgICAgY2hhbmdlU2VsZWN0ZWRJbmRleChuZXdJbmRleCk7Ci0gICAgbV9hY3RpdmVQb3B1
cE1lbnUgPSAwOworICAgIG1fYWN0aXZlUG9wdXBNZW51ID0gbnVsbHB0cjsKIH0KIAogdm9pZCBX
ZWJQYWdlOjpjaGFuZ2VTZWxlY3RlZEluZGV4KGludDMyX3QgaW5kZXgpCkBAIC0zMzA2LDEyICsz
MzA2LDEyIEBAIHZvaWQgV2ViUGFnZTo6ZGlkQ2hvb3NlRmlsZXNGb3JPcGVuUGFuZWwoY29uc3Qg
VmVjdG9yPFN0cmluZz4mIGZpbGVzKQogICAgICAgICByZXR1cm47CiAKICAgICBtX2FjdGl2ZU9w
ZW5QYW5lbFJlc3VsdExpc3RlbmVyLT5kaWRDaG9vc2VGaWxlcyhmaWxlcyk7Ci0gICAgbV9hY3Rp
dmVPcGVuUGFuZWxSZXN1bHRMaXN0ZW5lciA9IDA7CisgICAgbV9hY3RpdmVPcGVuUGFuZWxSZXN1
bHRMaXN0ZW5lciA9IG51bGxwdHI7CiB9CiAKIHZvaWQgV2ViUGFnZTo6ZGlkQ2FuY2VsRm9yT3Bl
blBhbmVsKCkKIHsKLSAgICBtX2FjdGl2ZU9wZW5QYW5lbFJlc3VsdExpc3RlbmVyID0gMDsKKyAg
ICBtX2FjdGl2ZU9wZW5QYW5lbFJlc3VsdExpc3RlbmVyID0gbnVsbHB0cjsKIH0KIAogI2lmIEVO
QUJMRShTQU5EQk9YX0VYVEVOU0lPTlMpCkBAIC0zNDE1LDcgKzM0MTUsNyBAQCB2b2lkIFdlYlBh
Z2U6OmRpZFNlbGVjdEl0ZW1Gcm9tQWN0aXZlQ29udGV4dE1lbnUoY29uc3QgV2ViQ29udGV4dE1l
bnVJdGVtRGF0YSYgaQogICAgICAgICByZXR1cm47CiAKICAgICBtX2NvbnRleHRNZW51LT5pdGVt
U2VsZWN0ZWQoaXRlbSk7Ci0gICAgbV9jb250ZXh0TWVudSA9IDA7CisgICAgbV9jb250ZXh0TWVu
dSA9IG51bGxwdHI7CiB9CiAjZW5kaWYKIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdDIvV2Vi
UHJvY2Vzcy9XZWJQYWdlL2lvcy9XZWJQYWdlSU9TLm1tIGIvU291cmNlL1dlYktpdDIvV2ViUHJv
Y2Vzcy9XZWJQYWdlL2lvcy9XZWJQYWdlSU9TLm1tCmluZGV4IDIzZGU4M2VmYWQ2ODk0NjI0NzU2
MGY4MTFkMDg4Y2QyOTc1MmE2YTcuLjlmNGNlYzcyMzFkZDQ2MjcxNTYzZDUyYjZhNGUyYjlkMzI3
ODg3YzYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvV2ViUGFnZS9pb3Mv
V2ViUGFnZUlPUy5tbQorKysgYi9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL1dlYlBhZ2UvaW9z
L1dlYlBhZ2VJT1MubW0KQEAgLTE5NzgsNyArMTk3OCw3IEBAIHZvaWQgV2ViUGFnZTo6c3luY0Fw
cGx5QXV0b2NvcnJlY3Rpb24oY29uc3QgU3RyaW5nJiBjb3JyZWN0aW9uLCBjb25zdCBTdHJpbmcm
IG9yCiAgICAgICAgIHdoaWxlICh0ZXh0Rm9yUmFuZ2UubGVuZ3RoKCkgJiYgdGV4dEZvclJhbmdl
Lmxlbmd0aCgpID4gb3JpZ2luYWxUZXh0Lmxlbmd0aCgpICYmIGxvb3BDb3VudCA8IG1heFBvc2l0
aW9uc0F0dGVtcHRzKSB7CiAgICAgICAgICAgICBwb3NpdGlvbiA9IHBvc2l0aW9uLm5leHQoKTsK
ICAgICAgICAgICAgIGlmIChwb3NpdGlvbi5pc05vdE51bGwoKSAmJiBwb3NpdGlvbiA+PSBmcmFt
ZS5zZWxlY3Rpb24oKS5zZWxlY3Rpb24oKS5zdGFydCgpKQotICAgICAgICAgICAgICAgIHJhbmdl
ID0gTlVMTDsKKyAgICAgICAgICAgICAgICByYW5nZSA9IG51bGxwdHI7CiAgICAgICAgICAgICBl
bHNlCiAgICAgICAgICAgICAgICAgcmFuZ2UgPSBSYW5nZTo6Y3JlYXRlKCpmcmFtZS5kb2N1bWVu
dCgpLCBwb3NpdGlvbiwgZnJhbWUuc2VsZWN0aW9uKCkuc2VsZWN0aW9uKCkuc3RhcnQoKSk7CiAg
ICAgICAgICAgICB0ZXh0Rm9yUmFuZ2UgPSAocmFuZ2UpID8gcGxhaW5UZXh0UmVwbGFjaW5nTm9C
cmVha1NwYWNlKHJhbmdlLmdldCgpKSA6IGVtcHR5U3RyaW5nKCk7CkBAIC0yNDU4LDcgKzI0NTgs
NyBAQCB2b2lkIFdlYlBhZ2U6OmVsZW1lbnREaWRCbHVyKFdlYkNvcmU6Ok5vZGUqIG5vZGUpCiAg
ICAgICAgICAgICAgICAgc2VuZChNZXNzYWdlczo6V2ViUGFnZVByb3h5OjpTdG9wQXNzaXN0aW5n
Tm9kZSgpKTsKICAgICAgICAgICAgIG1faGFzUGVuZGluZ0JsdXJOb3RpZmljYXRpb24gPSBmYWxz
ZTsKICAgICAgICAgfSk7Ci0gICAgICAgIG1fYXNzaXN0ZWROb2RlID0gMDsKKyAgICAgICAgbV9h
c3Npc3RlZE5vZGUgPSBudWxscHRyOwogICAgIH0KIH0KIApkaWZmIC0tZ2l0IGEvU291cmNlL1dl
YktpdDIvV2ViUHJvY2Vzcy9XZWJQcm9jZXNzLmNwcCBiL1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nl
c3MvV2ViUHJvY2Vzcy5jcHAKaW5kZXggYTk3YmMyMWE5ODE1NDlhY2NkN2ZlZGZiMjgzM2FlYzg0
ZWVkZDA3YS4uYjRjOWUwZWU4ODFmZTczMTA1ZDM1ZTFmMTAyNDQ1MWEzYTJiOTBlYSAxMDA2NDQK
LS0tIGEvU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9XZWJQcm9jZXNzLmNwcAorKysgYi9Tb3Vy
Y2UvV2ViS2l0Mi9XZWJQcm9jZXNzL1dlYlByb2Nlc3MuY3BwCkBAIC0xMDM0LDcgKzEwMzQsNyBA
QCB2b2lkIFdlYlByb2Nlc3M6Om5ldHdvcmtQcm9jZXNzQ29ubmVjdGlvbkNsb3NlZChOZXR3b3Jr
UHJvY2Vzc0Nvbm5lY3Rpb24qIGNvbm5lYwogICAgIEFTU0VSVChtX25ldHdvcmtQcm9jZXNzQ29u
bmVjdGlvbik7CiAgICAgQVNTRVJUX1VOVVNFRChjb25uZWN0aW9uLCBtX25ldHdvcmtQcm9jZXNz
Q29ubmVjdGlvbiA9PSBjb25uZWN0aW9uKTsKIAotICAgIG1fbmV0d29ya1Byb2Nlc3NDb25uZWN0
aW9uID0gMDsKKyAgICBtX25ldHdvcmtQcm9jZXNzQ29ubmVjdGlvbiA9IG51bGxwdHI7CiAgICAg
CiAgICAgbV93ZWJSZXNvdXJjZUxvYWRTY2hlZHVsZXItPm5ldHdvcmtQcm9jZXNzQ3Jhc2hlZCgp
OwogfQpAQCAtMTA1MSw3ICsxMDUxLDcgQEAgdm9pZCBXZWJQcm9jZXNzOjp3ZWJUb0RhdGFiYXNl
UHJvY2Vzc0Nvbm5lY3Rpb25DbG9zZWQoV2ViVG9EYXRhYmFzZVByb2Nlc3NDb25uZWMKICAgICBB
U1NFUlQobV93ZWJUb0RhdGFiYXNlUHJvY2Vzc0Nvbm5lY3Rpb24pOwogICAgIEFTU0VSVChtX3dl
YlRvRGF0YWJhc2VQcm9jZXNzQ29ubmVjdGlvbiA9PSBjb25uZWN0aW9uKTsKIAotICAgIG1fd2Vi
VG9EYXRhYmFzZVByb2Nlc3NDb25uZWN0aW9uID0gMDsKKyAgICBtX3dlYlRvRGF0YWJhc2VQcm9j
ZXNzQ29ubmVjdGlvbiA9IG51bGxwdHI7CiB9CiAKIFdlYlRvRGF0YWJhc2VQcm9jZXNzQ29ubmVj
dGlvbiogV2ViUHJvY2Vzczo6d2ViVG9EYXRhYmFzZVByb2Nlc3NDb25uZWN0aW9uKCkKZGlmZiAt
LWdpdCBhL1Rvb2xzL0NoYW5nZUxvZyBiL1Rvb2xzL0NoYW5nZUxvZwppbmRleCA5ODc2MGNjZjVh
NDE5NzRiMDhjODIwOThlNTRkMjg4OGFmNDcxN2E4Li42OWVlZmNmODgzZmQzMThjNjExN2RlZTBm
YWYwZWFjN2IzNjZkM2YxIDEwMDY0NAotLS0gYS9Ub29scy9DaGFuZ2VMb2cKKysrIGIvVG9vbHMv
Q2hhbmdlTG9nCkBAIC0xLDMgKzEsMTIgQEAKKzIwMTUtMDctMDMgIENocmlzIER1bWV6ICA8Y2R1
bWV6QGFwcGxlLmNvbT4KKworICAgICAgICBEcm9wIFJlZlB0cjo6Y2xlYXIoKSBtZXRob2QKKyAg
ICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTE0NjU1NgorCisg
ICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIERyb3AgUmVmUHRy
OjpjbGVhcigpIG1ldGhvZCBpbiBmYXZvciBvZiAiPSBudWxscHRyOyIgcGF0dGVybi4KKwogMjAx
NS0wNy0wMyAgRGFuIEJlcm5zdGVpbiAgPG1pdHpAYXBwbGUuY29tPgogCiAgICAgICAgIFtYY29k
ZV0gVXBkYXRlIHNvbWUgYnVpbGQgc2V0dGluZ3MgYXMgcmVjb21tZW5kZWQgYnkgWGNvZGUgNwpk
aWZmIC0tZ2l0IGEvVG9vbHMvRHVtcFJlbmRlclRyZWUvbWFjL0R1bXBSZW5kZXJUcmVlLm1tIGIv
VG9vbHMvRHVtcFJlbmRlclRyZWUvbWFjL0R1bXBSZW5kZXJUcmVlLm1tCmluZGV4IGJjY2Q0YTkx
MTJlNjcyYzFjYzJiMmQ5MzBmZjBhM2VlMDNiMDNlMDYuLjI3NmRmOGI4OTJlYzUyN2E3NDZiZjNm
YTZkZGM2NGVhZDM3NzdjMTUgMTAwNjQ0Ci0tLSBhL1Rvb2xzL0R1bXBSZW5kZXJUcmVlL21hYy9E
dW1wUmVuZGVyVHJlZS5tbQorKysgYi9Ub29scy9EdW1wUmVuZGVyVHJlZS9tYWMvRHVtcFJlbmRl
clRyZWUubW0KQEAgLTIwNjQsNyArMjA2NCw3IEBAIHN0YXRpYyB2b2lkIHJ1blRlc3QoY29uc3Qg
c3RyaW5nJiBpbnB1dExpbmUpCiAgICAgQVNTRVJUKENGQXJyYXlHZXRDb3VudChvcGVuV2luZG93
c1JlZikgPT0gMSk7CiAgICAgQVNTRVJUKENGQXJyYXlHZXRWYWx1ZUF0SW5kZXgob3BlbldpbmRv
d3NSZWYsIDApID09IFtbbWFpbkZyYW1lIHdlYlZpZXddIHdpbmRvd10pOwogCi0gICAgZ1Rlc3RS
dW5uZXIuY2xlYXIoKTsKKyAgICBnVGVzdFJ1bm5lciA9IG51bGxwdHI7CiAKICAgICBpZiAoaWdu
b3JlV2ViQ29yZU5vZGVMZWFrcykKICAgICAgICAgW1dlYkNvcmVTdGF0aXN0aWNzIHN0b3BJZ25v
cmluZ1dlYkNvcmVOb2RlTGVha3NdOwpkaWZmIC0tZ2l0IGEvVG9vbHMvRHVtcFJlbmRlclRyZWUv
d2luL0R1bXBSZW5kZXJUcmVlLmNwcCBiL1Rvb2xzL0R1bXBSZW5kZXJUcmVlL3dpbi9EdW1wUmVu
ZGVyVHJlZS5jcHAKaW5kZXggZDk4NmNiZmQzNzM0MDI0NjZmNDBiOGU2NWE0MDQ2OWJlY2UwYThk
Yy4uYzg0MzU0NzIzY2JhOTVmNGExNWE0MTYwNzYzMjkzYmQ2NzY2OGYyOSAxMDA2NDQKLS0tIGEv
VG9vbHMvRHVtcFJlbmRlclRyZWUvd2luL0R1bXBSZW5kZXJUcmVlLmNwcAorKysgYi9Ub29scy9E
dW1wUmVuZGVyVHJlZS93aW4vRHVtcFJlbmRlclRyZWUuY3BwCkBAIC0xMTgzLDcgKzExODMsNyBA
QCBzdGF0aWMgdm9pZCBydW5UZXN0KGNvbnN0IHN0cmluZyYgaW5wdXRMaW5lKQogCiBleGl0Ogog
ICAgIHJlbW92ZUZvbnRGYWxsYmFja0lmUHJlc2VudChmYWxsYmFja1BhdGgpOwotICAgIDo6Z1Rl
c3RSdW5uZXIuY2xlYXIoKTsKKyAgICA6OmdUZXN0UnVubmVyID0gbnVsbHB0cjsKIAogICAgIGZw
dXRzKCIjRU9GXG4iLCBzdGRlcnIpOwogICAgIGZmbHVzaChzdGRlcnIpOwpkaWZmIC0tZ2l0IGEv
VG9vbHMvVGVzdFdlYktpdEFQSS9UZXN0cy9XVEYvUmVmUHRyLmNwcCBiL1Rvb2xzL1Rlc3RXZWJL
aXRBUEkvVGVzdHMvV1RGL1JlZlB0ci5jcHAKaW5kZXggZmM5MjI0NjcyNzg0NjQxZDFkMzc0OWMy
MDc5ZTE1YmJkM2U4NzI2Yy4uYjcyNmQ3ZGRmMDNjYzJmZDZhMjBlMTRkOWI0MDIzY2YyNmE3ZDQz
OCAxMDA2NDQKLS0tIGEvVG9vbHMvVGVzdFdlYktpdEFQSS9UZXN0cy9XVEYvUmVmUHRyLmNwcAor
KysgYi9Ub29scy9UZXN0V2ViS2l0QVBJL1Rlc3RzL1dURi9SZWZQdHIuY3BwCkBAIC0xMDIsNyAr
MTAyLDcgQEAgVEVTVChXVEZfUmVmUHRyLCBCYXNpYykKICAgICB7CiAgICAgICAgIFJlZlB0cjxS
ZWZMb2dnZXI+IHB0cigmYSk7CiAgICAgICAgIEFTU0VSVF9FUSgmYSwgcHRyLmdldCgpKTsKLSAg
ICAgICAgcHRyLmNsZWFyKCk7CisgICAgICAgIHB0ciA9IG51bGxwdHI7CiAgICAgICAgIEFTU0VS
VF9FUShudWxscHRyLCBwdHIuZ2V0KCkpOwogICAgIH0KICAgICBBU1NFUlRfU1RSRVEoInJlZihh
KSBkZXJlZihhKSAiLCB0YWtlTG9nU3RyKCkuY19zdHIoKSk7Cg==
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>256135</attachid>
            <date>2015-07-03 21:28:15 -0700</date>
            <delta_ts>2015-07-03 21:36:21 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-146556-20150703212720.patch</filename>
            <type>text/plain</type>
            <size>185854</size>
            <attacher name="Chris Dumez">cdumez</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTg2MjcxCmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlw
dENvcmUvQ2hhbmdlTG9nIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL0NoYW5nZUxvZwppbmRleCA3
NThjNmEzYWY4NTAzMTIzOGRiZjUzY2ZjMjg4NTc5ODM0OGUzYTJiLi4xMDE2ZTQ4ODM0ODAxMjg3
MDYxYjUxMzZjNmU4MzkxZWE4NGQxMzk2IDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENv
cmUvQ2hhbmdlTG9nCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9DaGFuZ2VMb2cKQEAgLTEs
MyArMSwxMiBAQAorMjAxNS0wNy0wMyAgQ2hyaXMgRHVtZXogIDxjZHVtZXpAYXBwbGUuY29tPgor
CisgICAgICAgIERyb3AgUmVmUHRyOjpjbGVhcigpIG1ldGhvZAorICAgICAgICBodHRwczovL2J1
Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTQ2NTU2CisKKyAgICAgICAgUmV2aWV3ZWQg
YnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgRHJvcCBSZWZQdHI6OmNsZWFyKCkgbWV0aG9k
IGluIGZhdm9yIG9mICI9IG51bGxwdHI7IiBwYXR0ZXJuLgorCiAyMDE1LTA3LTAzICBEYW4gQmVy
bnN0ZWluICA8bWl0ekBhcHBsZS5jb20+CiAKICAgICAgICAgW1hjb2RlXSBVcGRhdGUgc29tZSBi
dWlsZCBzZXR0aW5ncyBhcyByZWNvbW1lbmRlZCBieSBYY29kZSA3CmRpZmYgLS1naXQgYS9Tb3Vy
Y2UvV1RGL0NoYW5nZUxvZyBiL1NvdXJjZS9XVEYvQ2hhbmdlTG9nCmluZGV4IDcxMDIyNmE3ZTZj
Nzg3NjQ2YWZhMDllN2ViYmNlZDA4ZDg1M2I0N2MuLjlhNDkxMmEwMDJkYjcwYmUxMTk5M2UxNTcw
YzU0YmIzMjQ4MDBjYjggMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XVEYvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XVEYvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMTYgQEAKKzIwMTUtMDctMDMgIENocmlzIER1
bWV6ICA8Y2R1bWV6QGFwcGxlLmNvbT4KKworICAgICAgICBEcm9wIFJlZlB0cjo6Y2xlYXIoKSBt
ZXRob2QKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTE0
NjU1NgorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIERy
b3AgUmVmUHRyOjpjbGVhcigpIG1ldGhvZCBpbiBmYXZvciBvZiAiPSBudWxscHRyOyIgcGF0dGVy
bi4KKyAgICAgICAgQWxzbyBtYWRlIHRoZSAiPSBudWxscHRyOyIgcGF0dGVybiBhcyBlZmZpY2ll
bnQgYXMgY2xlYXIoKQorICAgICAgICBieSBwcm92aWRpbmcgYSBvcGVyYXRvcj0obnVsbHB0cl90
KSBvdmVybG9hZC4gTG9jYWwgbWljcm8tCisgICAgICAgIGJlbmNobWFya2luZyBzaG93ZWQgdGhh
dCAiPSBudWxscHRyOyIgdXNlZCB0byBiZSB+MS43JSBzbG93ZXIKKyAgICAgICAgdGhhbiBjbGVh
cigpLgorCiAyMDE1LTA3LTAzICBEYW4gQmVybnN0ZWluICA8bWl0ekBhcHBsZS5jb20+CiAKICAg
ICAgICAgW1hjb2RlXSBVcGRhdGUgc29tZSBidWlsZCBzZXR0aW5ncyBhcyByZWNvbW1lbmRlZCBi
eSBYY29kZSA3CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cgYi9Tb3VyY2Uv
V2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggY2ZhNDExOWI1YWM2NmMxMDk1YjRmMzY5MDZmYjliYWQ5
YTA4MmRjNy4uNzkzMzE4N2M3YzIxYTNhMzhmYjZhMWUyZWMzN2JmNjZhZGFiYzdlYiAxMDA2NDQK
LS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1NvdXJjZS9XZWJDb3JlL0NoYW5n
ZUxvZwpAQCAtMSwzICsxLDIzMiBAQAorMjAxNS0wNy0wMyAgQ2hyaXMgRHVtZXogIDxjZHVtZXpA
YXBwbGUuY29tPgorCisgICAgICAgIERyb3AgUmVmUHRyOjpjbGVhcigpIG1ldGhvZAorICAgICAg
ICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTQ2NTU2CisKKyAgICAg
ICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgRHJvcCBSZWZQdHI6OmNs
ZWFyKCkgbWV0aG9kIGluIGZhdm9yIG9mICI9IG51bGxwdHI7IiBwYXR0ZXJuLgorCisyMDE1LTA3
LTAyICBDaHJpcyBEdW1leiAgPGNkdW1lekBhcHBsZS5jb20+CisKKyAgICAgICAgRHJvcCBSZWZQ
dHI6OmNsZWFyKCkgbWV0aG9kCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3df
YnVnLmNnaT9pZD0xNDY1NTYKKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4K
KworICAgICAgICAqIE1vZHVsZXMvaW5kZXhlZGRiL0lEQkN1cnNvci5jcHA6CisgICAgICAgIChX
ZWJDb3JlOjpJREJDdXJzb3I6OmNsb3NlKToKKyAgICAgICAgKiBNb2R1bGVzL2luZGV4ZWRkYi9J
REJEYXRhYmFzZUJhY2tlbmQuY3BwOgorICAgICAgICAoV2ViQ29yZTo6SURCRGF0YWJhc2VCYWNr
ZW5kOjp0cmFuc2FjdGlvbkZpbmlzaGVkKToKKyAgICAgICAgKiBNb2R1bGVzL2luZGV4ZWRkYi9J
REJPYmplY3RTdG9yZS5jcHA6CisgICAgICAgICogTW9kdWxlcy9pbmRleGVkZGIvSURCT3BlbkRC
UmVxdWVzdC5jcHA6CisgICAgICAgIChXZWJDb3JlOjpJREJPcGVuREJSZXF1ZXN0OjpkaXNwYXRj
aEV2ZW50KToKKyAgICAgICAgKiBNb2R1bGVzL2luZGV4ZWRkYi9JREJSZXF1ZXN0LmNwcDoKKyAg
ICAgICAgKFdlYkNvcmU6OklEQlJlcXVlc3Q6OmFib3J0KToKKyAgICAgICAgKFdlYkNvcmU6OklE
QlJlcXVlc3Q6OnNldFBlbmRpbmdDdXJzb3IpOgorICAgICAgICAoV2ViQ29yZTo6SURCUmVxdWVz
dDo6b25FcnJvcik6CisgICAgICAgIChXZWJDb3JlOjpJREJSZXF1ZXN0OjpvblN1Y2Nlc3NJbnRl
cm5hbCk6CisgICAgICAgIChXZWJDb3JlOjpJREJSZXF1ZXN0Ojp0cmFuc2FjdGlvbkRpZEZpbmlz
aEFuZERpc3BhdGNoKToKKyAgICAgICAgKiBNb2R1bGVzL2luZGV4ZWRkYi9JREJUcmFuc2FjdGlv
bi5jcHA6CisgICAgICAgIChXZWJDb3JlOjpJREJUcmFuc2FjdGlvbjo6T3BlbkN1cnNvck5vdGlm
aWVyOjpjdXJzb3JGaW5pc2hlZCk6CisgICAgICAgICogTW9kdWxlcy9tZWRpYXNvdXJjZS9NZWRp
YVNvdXJjZS5jcHA6CisgICAgICAgIChXZWJDb3JlOjpNZWRpYVNvdXJjZTo6c2V0UmVhZHlTdGF0
ZSk6CisgICAgICAgIChXZWJDb3JlOjpNZWRpYVNvdXJjZTo6c3RvcCk6CisgICAgICAgICogTW9k
dWxlcy9tZWRpYXN0cmVhbS9SVENTZXNzaW9uRGVzY3JpcHRpb25SZXF1ZXN0SW1wbC5jcHA6Cisg
ICAgICAgIChXZWJDb3JlOjpSVENTZXNzaW9uRGVzY3JpcHRpb25SZXF1ZXN0SW1wbDo6Y2xlYXIp
OgorICAgICAgICAqIE1vZHVsZXMvbWVkaWFzdHJlYW0vUlRDU3RhdHNSZXF1ZXN0SW1wbC5jcHA6
CisgICAgICAgIChXZWJDb3JlOjpSVENTdGF0c1JlcXVlc3RJbXBsOjpjbGVhcik6CisgICAgICAg
ICogTW9kdWxlcy9tZWRpYXN0cmVhbS9SVENWb2lkUmVxdWVzdEltcGwuY3BwOgorICAgICAgICAo
V2ViQ29yZTo6UlRDVm9pZFJlcXVlc3RJbXBsOjpjbGVhcik6CisgICAgICAgICogTW9kdWxlcy93
ZWJhdWRpby9BdWRpb0NvbnRleHQuY3BwOgorICAgICAgICAoV2ViQ29yZTo6QXVkaW9Db250ZXh0
OjpjbGVhcik6CisgICAgICAgICogTW9kdWxlcy93ZWJkYXRhYmFzZS9TUUxUcmFuc2FjdGlvbkJh
Y2tlbmQuY3BwOgorICAgICAgICAoV2ViQ29yZTo6U1FMVHJhbnNhY3Rpb25CYWNrZW5kOjpyZWxl
YXNlT3JpZ2luTG9ja0lmTmVlZGVkKToKKyAgICAgICAgKiBNb2R1bGVzL3dlYnNvY2tldHMvV29y
a2VyVGhyZWFkYWJsZVdlYlNvY2tldENoYW5uZWwuY3BwOgorICAgICAgICAoV2ViQ29yZTo6V29y
a2VyVGhyZWFkYWJsZVdlYlNvY2tldENoYW5uZWw6OmRpc2Nvbm5lY3QpOgorICAgICAgICAqIGJp
bmRpbmdzL2pzL1dlYkNvcmVKU0NsaWVudERhdGEuaDoKKyAgICAgICAgKFdlYkNvcmU6OldlYkNv
cmVKU0NsaWVudERhdGE6On5XZWJDb3JlSlNDbGllbnREYXRhKToKKyAgICAgICAgKiBiaW5kaW5n
cy9qcy9Xb3JrZXJTY3JpcHRDb250cm9sbGVyLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6Oldvcmtl
clNjcmlwdENvbnRyb2xsZXI6On5Xb3JrZXJTY3JpcHRDb250cm9sbGVyKToKKyAgICAgICAgKiBj
b250ZW50ZXh0ZW5zaW9ucy9Db250ZW50RXh0ZW5zaW9uUGFyc2VyLmNwcDoKKyAgICAgICAgKFdl
YkNvcmU6OkNvbnRlbnRFeHRlbnNpb25zOjpwYXJzZVJ1bGVMaXN0KToKKyAgICAgICAgKiBjc3Mv
Q1NTUGFyc2VyLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OkNTU1BhcnNlcjo6cGFyc2VGaWxsUG9z
aXRpb24pOgorICAgICAgICAoV2ViQ29yZTo6Q1NTUGFyc2VyOjpwYXJzZTJWYWx1ZXNGaWxsUG9z
aXRpb24pOgorICAgICAgICAoV2ViQ29yZTo6Q1NTUGFyc2VyOjpwb3BSdWxlRGF0YSk6CisgICAg
ICAgIChXZWJDb3JlOjpDU1NQYXJzZXI6Om1hcmtSdWxlQm9keVN0YXJ0KToKKyAgICAgICAgKiBk
b20vRG9jdW1lbnQuY3BwOgorICAgICAgICAoV2ViQ29yZTo6RG9jdW1lbnQ6OmRldGFjaFBhcnNl
cik6CisgICAgICAgIChXZWJDb3JlOjpEb2N1bWVudDo6Y2xlYXJTY3JpcHRlZEFuaW1hdGlvbkNv
bnRyb2xsZXIpOgorICAgICAgICAoV2ViQ29yZTo6RG9jdW1lbnQ6OnVwZGF0ZUhvdmVyQWN0aXZl
U3RhdGUpOgorICAgICAgICAqIGRvbS9Eb2N1bWVudE1hcmtlci5oOgorICAgICAgICAoV2ViQ29y
ZTo6RG9jdW1lbnRNYXJrZXI6OmNsZWFyRGV0YWlscyk6CisgICAgICAgICogZG9tL0VsZW1lbnQu
Y3BwOgorICAgICAgICAoV2ViQ29yZTo6RWxlbWVudDo6Y2xvbmVBdHRyaWJ1dGVzRnJvbUVsZW1l
bnQpOgorICAgICAgICAqIGRvbS9Ob2RlSXRlcmF0b3IuY3BwOgorICAgICAgICAoV2ViQ29yZTo6
Tm9kZUl0ZXJhdG9yOjpOb2RlUG9pbnRlcjo6Y2xlYXIpOgorICAgICAgICAoV2ViQ29yZTo6Tm9k
ZUl0ZXJhdG9yOjpkZXRhY2gpOgorICAgICAgICAqIGRvbS9Qb3NpdGlvbi5oOgorICAgICAgICAo
V2ViQ29yZTo6UG9zaXRpb246OmNsZWFyKToKKyAgICAgICAgKiBkb20vUmFuZ2VCb3VuZGFyeVBv
aW50Lmg6CisgICAgICAgIChXZWJDb3JlOjpSYW5nZUJvdW5kYXJ5UG9pbnQ6OmNsZWFyKToKKyAg
ICAgICAgKiBkb20vU3BhY2VTcGxpdFN0cmluZy5oOgorICAgICAgICAoV2ViQ29yZTo6U3BhY2VT
cGxpdFN0cmluZzo6Y2xlYXIpOgorICAgICAgICAqIGRvbS9TdHlsZWRFbGVtZW50LmNwcDoKKyAg
ICAgICAgKFdlYkNvcmU6OlN0eWxlZEVsZW1lbnQ6OnNldElubGluZVN0eWxlRnJvbVN0cmluZyk6
CisgICAgICAgIChXZWJDb3JlOjpTdHlsZWRFbGVtZW50OjpzdHlsZUF0dHJpYnV0ZUNoYW5nZWQp
OgorICAgICAgICAqIGVkaXRpbmcvQWx0ZXJuYXRpdmVUZXh0Q29udHJvbGxlci5jcHA6CisgICAg
ICAgIChXZWJDb3JlOjpBbHRlcm5hdGl2ZVRleHRDb250cm9sbGVyOjpzdGFydEFsdGVybmF0aXZl
VGV4dFVJVGltZXIpOgorICAgICAgICAoV2ViQ29yZTo6QWx0ZXJuYXRpdmVUZXh0Q29udHJvbGxl
cjo6c3RvcEFsdGVybmF0aXZlVGV4dFVJVGltZXIpOgorICAgICAgICAoV2ViQ29yZTo6QWx0ZXJu
YXRpdmVUZXh0Q29udHJvbGxlcjo6YXBwbHlQZW5kaW5nQ29ycmVjdGlvbik6CisgICAgICAgIChX
ZWJDb3JlOjpBbHRlcm5hdGl2ZVRleHRDb250cm9sbGVyOjp0aW1lckZpcmVkKToKKyAgICAgICAg
KFdlYkNvcmU6OkFsdGVybmF0aXZlVGV4dENvbnRyb2xsZXI6OmhhbmRsZUFsdGVybmF0aXZlVGV4
dFVJUmVzdWx0KToKKyAgICAgICAgKiBlZGl0aW5nL0VkaXRpbmdTdHlsZS5jcHA6CisgICAgICAg
IChXZWJDb3JlOjpFZGl0aW5nU3R5bGU6OmNsZWFyKToKKyAgICAgICAgKiBlZGl0aW5nL0VkaXRv
ci5jcHA6CisgICAgICAgIChXZWJDb3JlOjpFZGl0b3I6OmNsZWFyTGFzdEVkaXRDb21tYW5kKToK
KyAgICAgICAgKiBlZGl0aW5nL0ZyYW1lU2VsZWN0aW9uLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6
OkZyYW1lU2VsZWN0aW9uOjpwcmVwYXJlRm9yRGVzdHJ1Y3Rpb24pOgorICAgICAgICAqIGVkaXRp
bmcvRnJhbWVTZWxlY3Rpb24uaDoKKyAgICAgICAgKFdlYkNvcmU6OkZyYW1lU2VsZWN0aW9uOjpj
bGVhclR5cGluZ1N0eWxlKToKKyAgICAgICAgKiBlZGl0aW5nL1NwZWxsQ2hlY2tlci5jcHA6Cisg
ICAgICAgIChXZWJDb3JlOjpTcGVsbENoZWNrZXI6OmRpZENoZWNrKToKKyAgICAgICAgKiBodG1s
L0Jhc2VDaG9vc2VyT25seURhdGVBbmRUaW1lSW5wdXRUeXBlLmNwcDoKKyAgICAgICAgKFdlYkNv
cmU6OkJhc2VDaG9vc2VyT25seURhdGVBbmRUaW1lSW5wdXRUeXBlOjpkaWRFbmRDaG9vc2VyKToK
KyAgICAgICAgKiBodG1sL0ZpbGVJbnB1dFR5cGUuY3BwOgorICAgICAgICAoV2ViQ29yZTo6Rmls
ZUlucHV0VHlwZTo6c2V0VmFsdWUpOgorICAgICAgICAqIGh0bWwvSFRNTENhbnZhc0VsZW1lbnQu
Y3BwOgorICAgICAgICAoV2ViQ29yZTo6SFRNTENhbnZhc0VsZW1lbnQ6OmNsZWFyUHJlc2VudGF0
aW9uQ29weSk6CisgICAgICAgIChXZWJDb3JlOjpIVE1MQ2FudmFzRWxlbWVudDo6Y2xlYXJDb3Bp
ZWRJbWFnZSk6CisgICAgICAgICogaHRtbC9IVE1MUGx1Z0luRWxlbWVudC5jcHA6CisgICAgICAg
IChXZWJDb3JlOjpIVE1MUGx1Z0luRWxlbWVudDo6d2lsbERldGFjaFJlbmRlcmVycyk6CisgICAg
ICAgIChXZWJDb3JlOjpIVE1MUGx1Z0luRWxlbWVudDo6cmVzZXRJbnN0YW5jZSk6CisgICAgICAg
ICogaHRtbC9UZXh0RmllbGRJbnB1dFR5cGUuY3BwOgorICAgICAgICAoV2ViQ29yZTo6VGV4dEZp
ZWxkSW5wdXRUeXBlOjp1cGRhdGVQbGFjZWhvbGRlclRleHQpOgorICAgICAgICAqIGh0bWwvY2Fu
dmFzL1dlYkdMUmVuZGVyaW5nQ29udGV4dEJhc2UuY3BwOgorICAgICAgICAoV2ViQ29yZTo6V2Vi
R0xSZW5kZXJpbmdDb250ZXh0QmFzZTo6ZGVzdHJveUdyYXBoaWNzQ29udGV4dDNEKToKKyAgICAg
ICAgKiBpbnNwZWN0b3IvSW5zcGVjdG9yQXBwbGljYXRpb25DYWNoZUFnZW50LmNwcDoKKyAgICAg
ICAgKFdlYkNvcmU6Okluc3BlY3RvckFwcGxpY2F0aW9uQ2FjaGVBZ2VudDo6d2lsbERlc3Ryb3lG
cm9udGVuZEFuZEJhY2tlbmQpOgorICAgICAgICAqIGluc3BlY3Rvci9JbnNwZWN0b3JDU1NBZ2Vu
dC5jcHA6CisgICAgICAgIChXZWJDb3JlOjpJbnNwZWN0b3JDU1NBZ2VudDo6d2lsbERlc3Ryb3lG
cm9udGVuZEFuZEJhY2tlbmQpOgorICAgICAgICAqIGluc3BlY3Rvci9JbnNwZWN0b3JDb250cm9s
bGVyLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6Okluc3BlY3RvckNvbnRyb2xsZXI6OmRpc2Nvbm5l
Y3RGcm9udGVuZCk6CisgICAgICAgICogaW5zcGVjdG9yL0luc3BlY3RvckRPTUFnZW50LmNwcDoK
KyAgICAgICAgKFdlYkNvcmU6Okluc3BlY3RvckRPTUFnZW50Ojp3aWxsRGVzdHJveUZyb250ZW5k
QW5kQmFja2VuZCk6CisgICAgICAgICogaW5zcGVjdG9yL0luc3BlY3RvckRPTURlYnVnZ2VyQWdl
bnQuY3BwOgorICAgICAgICAoV2ViQ29yZTo6SW5zcGVjdG9yRE9NRGVidWdnZXJBZ2VudDo6d2ls
bERlc3Ryb3lGcm9udGVuZEFuZEJhY2tlbmQpOgorICAgICAgICAqIGluc3BlY3Rvci9JbnNwZWN0
b3JET01TdG9yYWdlQWdlbnQuY3BwOgorICAgICAgICAoV2ViQ29yZTo6SW5zcGVjdG9yRE9NU3Rv
cmFnZUFnZW50Ojp3aWxsRGVzdHJveUZyb250ZW5kQW5kQmFja2VuZCk6CisgICAgICAgICogaW5z
cGVjdG9yL0luc3BlY3RvckRhdGFiYXNlQWdlbnQuY3BwOgorICAgICAgICAoV2ViQ29yZTo6SW5z
cGVjdG9yRGF0YWJhc2VBZ2VudDo6d2lsbERlc3Ryb3lGcm9udGVuZEFuZEJhY2tlbmQpOgorICAg
ICAgICAqIGluc3BlY3Rvci9JbnNwZWN0b3JJbmRleGVkREJBZ2VudC5jcHA6CisgICAgICAgIChX
ZWJDb3JlOjpJbnNwZWN0b3JJbmRleGVkREJBZ2VudDo6d2lsbERlc3Ryb3lGcm9udGVuZEFuZEJh
Y2tlbmQpOgorICAgICAgICAqIGluc3BlY3Rvci9JbnNwZWN0b3JMYXllclRyZWVBZ2VudC5jcHA6
CisgICAgICAgIChXZWJDb3JlOjpJbnNwZWN0b3JMYXllclRyZWVBZ2VudDo6d2lsbERlc3Ryb3lG
cm9udGVuZEFuZEJhY2tlbmQpOgorICAgICAgICAqIGluc3BlY3Rvci9JbnNwZWN0b3JPdmVybGF5
LmNwcDoKKyAgICAgICAgKFdlYkNvcmU6Okluc3BlY3Rvck92ZXJsYXk6OmhpZGVIaWdobGlnaHQp
OgorICAgICAgICAoV2ViQ29yZTo6SW5zcGVjdG9yT3ZlcmxheTo6aGlnaGxpZ2h0Tm9kZUxpc3Qp
OgorICAgICAgICAoV2ViQ29yZTo6SW5zcGVjdG9yT3ZlcmxheTo6aGlnaGxpZ2h0Tm9kZSk6Cisg
ICAgICAgICogaW5zcGVjdG9yL0luc3BlY3RvclBhZ2VBZ2VudC5jcHA6CisgICAgICAgIChXZWJD
b3JlOjpJbnNwZWN0b3JQYWdlQWdlbnQ6OndpbGxEZXN0cm95RnJvbnRlbmRBbmRCYWNrZW5kKToK
KyAgICAgICAgKFdlYkNvcmU6Okluc3BlY3RvclBhZ2VBZ2VudDo6ZGlzYWJsZSk6CisgICAgICAg
ICogaW5zcGVjdG9yL0luc3BlY3RvclJlcGxheUFnZW50LmNwcDoKKyAgICAgICAgKFdlYkNvcmU6
Okluc3BlY3RvclJlcGxheUFnZW50Ojp3aWxsRGVzdHJveUZyb250ZW5kQW5kQmFja2VuZCk6Cisg
ICAgICAgICogaW5zcGVjdG9yL0luc3BlY3RvclJlc291cmNlQWdlbnQuY3BwOgorICAgICAgICAo
V2ViQ29yZTo6SW5zcGVjdG9yUmVzb3VyY2VBZ2VudDo6d2lsbERlc3Ryb3lGcm9udGVuZEFuZEJh
Y2tlbmQpOgorICAgICAgICAqIGluc3BlY3Rvci9JbnNwZWN0b3JTdHlsZVNoZWV0LmNwcDoKKyAg
ICAgICAgKFdlYkNvcmU6Okluc3BlY3RvclN0eWxlU2hlZXRGb3JJbmxpbmVTdHlsZTo6ZGlkTW9k
aWZ5RWxlbWVudEF0dHJpYnV0ZSk6CisgICAgICAgIChXZWJDb3JlOjpJbnNwZWN0b3JTdHlsZVNo
ZWV0Rm9ySW5saW5lU3R5bGU6OnNldFN0eWxlVGV4dCk6CisgICAgICAgIChXZWJDb3JlOjpJbnNw
ZWN0b3JTdHlsZVNoZWV0Rm9ySW5saW5lU3R5bGU6OmVuc3VyZVBhcnNlZERhdGFSZWFkeSk6Cisg
ICAgICAgICogaW5zcGVjdG9yL0luc3BlY3RvclRpbWVsaW5lQWdlbnQuY3BwOgorICAgICAgICAo
V2ViQ29yZTo6SW5zcGVjdG9yVGltZWxpbmVBZ2VudDo6d2lsbERlc3Ryb3lGcm9udGVuZEFuZEJh
Y2tlbmQpOgorICAgICAgICAqIGluc3BlY3Rvci9JbnNwZWN0b3JXb3JrZXJBZ2VudC5jcHA6Cisg
ICAgICAgIChXZWJDb3JlOjpJbnNwZWN0b3JXb3JrZXJBZ2VudDo6d2lsbERlc3Ryb3lGcm9udGVu
ZEFuZEJhY2tlbmQpOgorICAgICAgICAqIGluc3BlY3Rvci9QYWdlUnVudGltZUFnZW50LmNwcDoK
KyAgICAgICAgKFdlYkNvcmU6OlBhZ2VSdW50aW1lQWdlbnQ6OndpbGxEZXN0cm95RnJvbnRlbmRB
bmRCYWNrZW5kKToKKyAgICAgICAgKiBpbnNwZWN0b3IvV2ViSW5qZWN0ZWRTY3JpcHRNYW5hZ2Vy
LmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OldlYkluamVjdGVkU2NyaXB0TWFuYWdlcjo6ZGlzY29u
bmVjdCk6CisgICAgICAgICogaW5zcGVjdG9yL1dvcmtlckluc3BlY3RvckNvbnRyb2xsZXIuY3Bw
OgorICAgICAgICAoV2ViQ29yZTo6V29ya2VySW5zcGVjdG9yQ29udHJvbGxlcjo6ZGlzY29ubmVj
dEZyb250ZW5kKToKKyAgICAgICAgKiBpbnNwZWN0b3IvV29ya2VyUnVudGltZUFnZW50LmNwcDoK
KyAgICAgICAgKFdlYkNvcmU6OldvcmtlclJ1bnRpbWVBZ2VudDo6d2lsbERlc3Ryb3lGcm9udGVu
ZEFuZEJhY2tlbmQpOgorICAgICAgICAqIGxvYWRlci9GcmFtZUxvYWRlci5jcHA6CisgICAgICAg
IChXZWJDb3JlOjpGcmFtZUxvYWRlcjo6ZGlkQmVnaW5Eb2N1bWVudCk6CisgICAgICAgICogbG9h
ZGVyL2NhY2hlL0NhY2hlZENTU1N0eWxlU2hlZXQuY3BwOgorICAgICAgICAoV2ViQ29yZTo6Q2Fj
aGVkQ1NTU3R5bGVTaGVldDo6ZGVzdHJveURlY29kZWREYXRhKToKKyAgICAgICAgKFdlYkNvcmU6
OkNhY2hlZENTU1N0eWxlU2hlZXQ6OnJlc3RvcmVQYXJzZWRTdHlsZVNoZWV0KToKKyAgICAgICAg
KiBsb2FkZXIvY2FjaGUvQ2FjaGVkSW1hZ2UuY3BwOgorICAgICAgICAoV2ViQ29yZTo6Q2FjaGVk
SW1hZ2U6OmNsZWFySW1hZ2UpOgorICAgICAgICAqIGxvYWRlci9jYWNoZS9DYWNoZWRSYXdSZXNv
dXJjZS5jcHA6CisgICAgICAgIChXZWJDb3JlOjpDYWNoZWRSYXdSZXNvdXJjZTo6Y2xlYXIpOgor
ICAgICAgICAqIGxvYWRlci9jYWNoZS9DYWNoZWRSZXNvdXJjZS5jcHA6CisgICAgICAgIChXZWJD
b3JlOjpDYWNoZWRSZXNvdXJjZTo6ZXJyb3IpOgorICAgICAgICAqIGxvYWRlci9pY29uL0ljb25S
ZWNvcmQuY3BwOgorICAgICAgICAoV2ViQ29yZTo6SWNvblJlY29yZDo6c2V0SW1hZ2VEYXRhKToK
KyAgICAgICAgKiBwYWdlL0V2ZW50SGFuZGxlci5jcHA6CisgICAgICAgIChXZWJDb3JlOjpFdmVu
dEhhbmRsZXI6OmNsZWFyKToKKyAgICAgICAgKFdlYkNvcmU6OkV2ZW50SGFuZGxlcjo6aGFuZGxl
VG91Y2hFdmVudCk6CisgICAgICAgICogcGFnZS9QYWdlLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6
OlBhZ2U6OnJlZnJlc2hQbHVnaW5zKToKKyAgICAgICAgKiBwbGF0Zm9ybS9hdWRpby9tYWMvQ0FS
aW5nQnVmZmVyLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OkNBUmluZ0J1ZmZlcjo6ZGVhbGxvY2F0
ZSk6CisgICAgICAgICogcGxhdGZvcm0vZ3JhcGhpY3MvRm9udC5jcHA6CisgICAgICAgIChXZWJD
b3JlOjpGb250OjptYXRoRGF0YSk6CisgICAgICAgICogcGxhdGZvcm0vZ3JhcGhpY3MvRm9udENh
Y2hlLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OkZvbnRDYWNoZTo6Z2V0VmVydGljYWxEYXRhKToK
KyAgICAgICAgKiBwbGF0Zm9ybS9ncmFwaGljcy9HcmFwaGljc0NvbnRleHQuY3BwOgorICAgICAg
ICAoV2ViQ29yZTo6R3JhcGhpY3NDb250ZXh0OjpzZXRTdHJva2VDb2xvcik6CisgICAgICAgIChX
ZWJDb3JlOjpHcmFwaGljc0NvbnRleHQ6OnNldEZpbGxDb2xvcik6CisgICAgICAgIChXZWJDb3Jl
OjpHcmFwaGljc0NvbnRleHQ6OnNldFN0cm9rZVBhdHRlcm4pOgorICAgICAgICAoV2ViQ29yZTo6
R3JhcGhpY3NDb250ZXh0OjpzZXRGaWxsUGF0dGVybik6CisgICAgICAgIChXZWJDb3JlOjpHcmFw
aGljc0NvbnRleHQ6OnNldFN0cm9rZUdyYWRpZW50KToKKyAgICAgICAgKFdlYkNvcmU6OkdyYXBo
aWNzQ29udGV4dDo6c2V0RmlsbEdyYWRpZW50KToKKyAgICAgICAgKiBwbGF0Zm9ybS9ncmFwaGlj
cy9jYWlyby9CYWNraW5nU3RvcmVCYWNrZW5kQ2Fpcm9YMTEuY3BwOgorICAgICAgICAoV2ViQ29y
ZTo6QmFja2luZ1N0b3JlQmFja2VuZENhaXJvWDExOjp+QmFja2luZ1N0b3JlQmFja2VuZENhaXJv
WDExKToKKyAgICAgICAgKiBwbGF0Zm9ybS9ncmFwaGljcy9jYWlyby9CaXRtYXBJbWFnZUNhaXJv
LmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OkZyYW1lRGF0YTo6Y2xlYXIpOgorICAgICAgICAqIHBs
YXRmb3JtL2dyYXBoaWNzL2ZpbHRlcnMvRmlsdGVyRWZmZWN0LmNwcDoKKyAgICAgICAgKFdlYkNv
cmU6OkZpbHRlckVmZmVjdDo6Y2xlYXJSZXN1bHQpOgorICAgICAgICAoV2ViQ29yZTo6RmlsdGVy
RWZmZWN0Ojp0cmFuc2Zvcm1SZXN1bHRDb2xvclNwYWNlKToKKyAgICAgICAgKiBwbGF0Zm9ybS9n
cmFwaGljcy9nc3RyZWFtZXIvSW1hZ2VHU3RyZWFtZXJDYWlyby5jcHA6CisgICAgICAgIChJbWFn
ZUdTdHJlYW1lcjo6fkltYWdlR1N0cmVhbWVyKToKKyAgICAgICAgKiBwbGF0Zm9ybS9ncmFwaGlj
cy90ZXhtYXAvQml0bWFwVGV4dHVyZUdMLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OkJpdG1hcFRl
eHR1cmVHTDo6YXBwbHlGaWx0ZXJzKToKKyAgICAgICAgKiBwbGF0Zm9ybS9ncmFwaGljcy90ZXht
YXAvVGV4dHVyZU1hcHBlckdMLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OlRleHR1cmVNYXBwZXJH
TDo6YmluZERlZmF1bHRTdXJmYWNlKToKKyAgICAgICAgKiBwbGF0Zm9ybS9ncmFwaGljcy90ZXht
YXAvVGV4dHVyZU1hcHBlckxheWVyLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OlRleHR1cmVNYXBw
ZXJMYXllcjo6cGFpbnRXaXRoSW50ZXJtZWRpYXRlU3VyZmFjZSk6CisgICAgICAgICogcGxhdGZv
cm0vZ3JhcGhpY3MvdGV4bWFwL1RleHR1cmVNYXBwZXJUaWxlZEJhY2tpbmdTdG9yZS5jcHA6Cisg
ICAgICAgIChXZWJDb3JlOjpUZXh0dXJlTWFwcGVyVGlsZWRCYWNraW5nU3RvcmU6OnVwZGF0ZUNv
bnRlbnRzRnJvbUltYWdlSWZOZWVkZWQpOgorICAgICAgICAqIHBsYXRmb3JtL2dyYXBoaWNzL3Rl
eG1hcC9jb29yZGluYXRlZC9Db29yZGluYXRlZEdyYXBoaWNzTGF5ZXIuY3BwOgorICAgICAgICAo
V2ViQ29yZTo6Q29vcmRpbmF0ZWRHcmFwaGljc0xheWVyOjpyZWxlYXNlSW1hZ2VCYWNraW5nSWZO
ZWVkZWQpOgorICAgICAgICAqIHBsYXRmb3JtL2dyYXBoaWNzL3RleG1hcC9jb29yZGluYXRlZC9D
b29yZGluYXRlZEltYWdlQmFja2luZy5jcHA6CisgICAgICAgIChXZWJDb3JlOjpDb29yZGluYXRl
ZEltYWdlQmFja2luZzo6cmVsZWFzZVN1cmZhY2VJZk5lZWRlZCk6CisgICAgICAgICogcGxhdGZv
cm0vZ3RrL0dhbWVwYWRzR3RrLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OkdhbWVwYWRzR3RrOjp1
bnJlZ2lzdGVyRGV2aWNlKToKKyAgICAgICAgKiByZW5kZXJpbmcvSW5saW5lRmxvd0JveC5jcHA6
CisgICAgICAgIChXZWJDb3JlOjpJbmxpbmVGbG93Qm94Ojpjb21wdXRlT3ZlcmZsb3cpOgorICAg
ICAgICAqIHJlbmRlcmluZy9SZW5kZXJCb3guY3BwOgorICAgICAgICAoV2ViQ29yZTo6UmVuZGVy
Qm94OjpjbGVhck92ZXJmbG93KToKKyAgICAgICAgKiByZW5kZXJpbmcvUmVuZGVyQm94UmVnaW9u
SW5mby5oOgorICAgICAgICAoV2ViQ29yZTo6UmVuZGVyQm94UmVnaW9uSW5mbzo6Y2xlYXJPdmVy
Zmxvdyk6CisgICAgICAgICogcmVuZGVyaW5nL3N0eWxlL0ZpbGxMYXllci5oOgorICAgICAgICAo
V2ViQ29yZTo6RmlsbExheWVyOjpjbGVhck1hc2tJbWFnZSk6CisgICAgICAgIChXZWJDb3JlOjpG
aWxsTGF5ZXI6OmNsZWFySW1hZ2UpOgorICAgICAgICAqIHN2Zy9TVkdUUmVmRWxlbWVudC5jcHA6
CisgICAgICAgIChXZWJDb3JlOjpTVkdUUmVmVGFyZ2V0RXZlbnRMaXN0ZW5lcjo6ZGV0YWNoKToK
KyAgICAgICAgKiB0ZXN0aW5nL0ludGVybmFscy5jcHA6CisgICAgICAgIChXZWJDb3JlOjpJbnRl
cm5hbHM6OmNsb3NlRHVtbXlJbnNwZWN0b3JGcm9udGVuZCk6CisgICAgICAgICogd29ya2Vycy9X
b3JrZXJFdmVudFF1ZXVlLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OldvcmtlckV2ZW50UXVldWU6
OkV2ZW50RGlzcGF0Y2hlcjo6ZGlzcGF0Y2gpOgorICAgICAgICAoV2ViQ29yZTo6V29ya2VyRXZl
bnRRdWV1ZTo6RXZlbnREaXNwYXRjaGVyOjpjYW5jZWwpOgorICAgICAgICAqIHhtbC9YTUxIdHRw
UmVxdWVzdC5jcHA6CisgICAgICAgIChXZWJDb3JlOjpYTUxIdHRwUmVxdWVzdDo6cmVzcG9uc2VC
bG9iKToKKyAgICAgICAgKFdlYkNvcmU6OlhNTEh0dHBSZXF1ZXN0OjpyZXNwb25zZUFycmF5QnVm
ZmVyKToKKyAgICAgICAgKFdlYkNvcmU6OlhNTEh0dHBSZXF1ZXN0OjpjbGVhclJlc3BvbnNlQnVm
ZmVycyk6CisgICAgICAgICogeG1sL1hTTFRQcm9jZXNzb3IuY3BwOgorICAgICAgICAoV2ViQ29y
ZTo6WFNMVFByb2Nlc3Nvcjo6cmVzZXQpOgorCiAyMDE1LTA3LTAzICBEYW4gQmVybnN0ZWluICA8
bWl0ekBhcHBsZS5jb20+CiAKICAgICAgICAgVHJpZWQgdG8gZml4IHRoZSBpT1MgYnVpbGQuCmRp
ZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L0NoYW5nZUxvZyBiL1NvdXJjZS9XZWJLaXQvQ2hhbmdl
TG9nCmluZGV4IDczYWQ1MDA2MTlmNWZkMDliZDU1MTFjZTRmZTUzMjIyMTlkMmMyMmYuLjg2ODY4
MjE3Mjc1MDE5MmM2ZmZkNDMyNmMwOTg2ZTFkOGI5ODMzNGMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9X
ZWJLaXQvQ2hhbmdlTG9nCisrKyBiL1NvdXJjZS9XZWJLaXQvQ2hhbmdlTG9nCkBAIC0xLDMgKzEs
MTIgQEAKKzIwMTUtMDctMDMgIENocmlzIER1bWV6ICA8Y2R1bWV6QGFwcGxlLmNvbT4KKworICAg
ICAgICBEcm9wIFJlZlB0cjo6Y2xlYXIoKSBtZXRob2QKKyAgICAgICAgaHR0cHM6Ly9idWdzLndl
YmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTE0NjU1NgorCisgICAgICAgIFJldmlld2VkIGJ5IE5P
Qk9EWSAoT09QUyEpLgorCisgICAgICAgIERyb3AgUmVmUHRyOjpjbGVhcigpIG1ldGhvZCBpbiBm
YXZvciBvZiAiPSBudWxscHRyOyIgcGF0dGVybi4KKwogMjAxNS0wNy0wMyAgRGFuIEJlcm5zdGVp
biAgPG1pdHpAYXBwbGUuY29tPgogCiAgICAgICAgIFtYY29kZV0gVXBkYXRlIHNvbWUgYnVpbGQg
c2V0dGluZ3MgYXMgcmVjb21tZW5kZWQgYnkgWGNvZGUgNwpkaWZmIC0tZ2l0IGEvU291cmNlL1dl
YktpdC9tYWMvQ2hhbmdlTG9nIGIvU291cmNlL1dlYktpdC9tYWMvQ2hhbmdlTG9nCmluZGV4IGIx
YzA4YzQ3MmE2OTA1YzZiYzhlMmI5MTkzZmRiNTRkOGY5OGE0NDcuLmI5MTg0YzVjZWM4MGY4NWEx
MmFlMWI2YTYwODI1ZTc4YTQ0MmNkYWIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvbWFjL0No
YW5nZUxvZworKysgYi9Tb3VyY2UvV2ViS2l0L21hYy9DaGFuZ2VMb2cKQEAgLTEsMyArMSwxMiBA
QAorMjAxNS0wNy0wMyAgQ2hyaXMgRHVtZXogIDxjZHVtZXpAYXBwbGUuY29tPgorCisgICAgICAg
IERyb3AgUmVmUHRyOjpjbGVhcigpIG1ldGhvZAorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0
Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTQ2NTU2CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZ
IChPT1BTISkuCisKKyAgICAgICAgRHJvcCBSZWZQdHI6OmNsZWFyKCkgbWV0aG9kIGluIGZhdm9y
IG9mICI9IG51bGxwdHI7IiBwYXR0ZXJuLgorCiAyMDE1LTA3LTAzICBEYW4gQmVybnN0ZWluICA8
bWl0ekBhcHBsZS5jb20+CiAKICAgICAgICAgW1hjb2RlXSBVcGRhdGUgc29tZSBidWlsZCBzZXR0
aW5ncyBhcyByZWNvbW1lbmRlZCBieSBYY29kZSA3CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0
L3dpbi9DaGFuZ2VMb2cgYi9Tb3VyY2UvV2ViS2l0L3dpbi9DaGFuZ2VMb2cKaW5kZXggMTE0Mjg1
OGFjOTRiNTY2YzRiMGZjMzliYjg1Y2Q0ZWIwN2Q5OWVmZC4uNTYyYTEyYmY0NTgyMTEyN2E2YjE4
OWI0ZGU1YzY2M2Y2NmI3ZjllNiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC93aW4vQ2hhbmdl
TG9nCisrKyBiL1NvdXJjZS9XZWJLaXQvd2luL0NoYW5nZUxvZwpAQCAtMSwzICsxLDEyIEBACisy
MDE1LTA3LTAzICBDaHJpcyBEdW1leiAgPGNkdW1lekBhcHBsZS5jb20+CisKKyAgICAgICAgRHJv
cCBSZWZQdHI6OmNsZWFyKCkgbWV0aG9kCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3Jn
L3Nob3dfYnVnLmNnaT9pZD0xNDY1NTYKKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9P
UFMhKS4KKworICAgICAgICBEcm9wIFJlZlB0cjo6Y2xlYXIoKSBtZXRob2QgaW4gZmF2b3Igb2Yg
Ij0gbnVsbHB0cjsiIHBhdHRlcm4uCisKIDIwMTUtMDYtMzAgIFNpbW9uIEZyYXNlciAgPHNpbW9u
LmZyYXNlckBhcHBsZS5jb20+CiAKICAgICAgICAgRml4IE1hYyBhbmQgV2luZG93cyBidWlsZHMu
CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9DaGFuZ2VMb2cgYi9Tb3VyY2UvV2ViS2l0Mi9D
aGFuZ2VMb2cKaW5kZXggODE3MGFjODI1ZTEyY2Y0NTM3MjA3MzMxOTE2ZWU3Zjc1ZTRiNjljMi4u
OTMyYzRiNzI4N2VlOGZlMGEwNzYwZmQwZmE0NzdjOTY4OTEwOGEyYiAxMDA2NDQKLS0tIGEvU291
cmNlL1dlYktpdDIvQ2hhbmdlTG9nCisrKyBiL1NvdXJjZS9XZWJLaXQyL0NoYW5nZUxvZwpAQCAt
MSwzICsxLDEyIEBACisyMDE1LTA3LTAzICBDaHJpcyBEdW1leiAgPGNkdW1lekBhcHBsZS5jb20+
CisKKyAgICAgICAgRHJvcCBSZWZQdHI6OmNsZWFyKCkgbWV0aG9kCisgICAgICAgIGh0dHBzOi8v
YnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0xNDY1NTYKKworICAgICAgICBSZXZpZXdl
ZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICBEcm9wIFJlZlB0cjo6Y2xlYXIoKSBtZXRo
b2QgaW4gZmF2b3Igb2YgIj0gbnVsbHB0cjsiIHBhdHRlcm4uICAgICAgICAKKwogMjAxNS0wNy0w
MyAgRGFuIEJlcm5zdGVpbiAgPG1pdHpAYXBwbGUuY29tPgogCiAgICAgICAgIFtYY29kZV0gVXBk
YXRlIHNvbWUgYnVpbGQgc2V0dGluZ3MgYXMgcmVjb21tZW5kZWQgYnkgWGNvZGUgNwpkaWZmIC0t
Z2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL0FQSS9KU1ZhbHVlUmVmLmNwcCBiL1NvdXJjZS9K
YXZhU2NyaXB0Q29yZS9BUEkvSlNWYWx1ZVJlZi5jcHAKaW5kZXggNzU5YTY1YTljN2RlM2M1NjYx
OWFiNDc0NTQ4MzQ4Njg4ZGNjNDdjMS4uNTQ0MDVlMmFmNTk3YzI0ODIzNmRlZjc2OWU4YmJjNjAy
ODk3OWQyNiAxMDA2NDQKLS0tIGEvU291cmNlL0phdmFTY3JpcHRDb3JlL0FQSS9KU1ZhbHVlUmVm
LmNwcAorKysgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvQVBJL0pTVmFsdWVSZWYuY3BwCkBAIC00
MjIsNyArNDIyLDcgQEAgSlNTdHJpbmdSZWYgSlNWYWx1ZVRvU3RyaW5nQ29weShKU0NvbnRleHRS
ZWYgY3R4LCBKU1ZhbHVlUmVmIHZhbHVlLCBKU1ZhbHVlUmVmKgogICAgIAogICAgIFJlZlB0cjxP
cGFxdWVKU1N0cmluZz4gc3RyaW5nUmVmKE9wYXF1ZUpTU3RyaW5nOjpjcmVhdGUoanNWYWx1ZS50
b1N0cmluZyhleGVjKS0+dmFsdWUoZXhlYykpKTsKICAgICBpZiAoaGFuZGxlRXhjZXB0aW9uSWZO
ZWVkZWQoZXhlYywgZXhjZXB0aW9uKSA9PSBFeGNlcHRpb25TdGF0dXM6OkRpZFRocm93KQotICAg
ICAgICBzdHJpbmdSZWYuY2xlYXIoKTsKKyAgICAgICAgc3RyaW5nUmVmID0gbnVsbHB0cjsKICAg
ICByZXR1cm4gc3RyaW5nUmVmLnJlbGVhc2UoKS5sZWFrUmVmKCk7CiB9CiAKZGlmZiAtLWdpdCBh
L1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ieXRlY29kZS9DYWxsTGlua0luZm8uY3BwIGIvU291cmNl
L0phdmFTY3JpcHRDb3JlL2J5dGVjb2RlL0NhbGxMaW5rSW5mby5jcHAKaW5kZXggNzJhMGMyNDFk
ZmNjZDE2NWQ5MDMwZDVmYTg0ZWZiNjhmODFmNGIzOC4uZDkyMDA5ODc0YTkzODU3NzcyYzQzNjZm
NGQwMDliNTQ2YTMzYjlhYyAxMDA2NDQKLS0tIGEvU291cmNlL0phdmFTY3JpcHRDb3JlL2J5dGVj
b2RlL0NhbGxMaW5rSW5mby5jcHAKKysrIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL2J5dGVjb2Rl
L0NhbGxMaW5rSW5mby5jcHAKQEAgLTQzLDcgKzQzLDcgQEAgdm9pZCBDYWxsTGlua0luZm86OmNs
ZWFyU3R1YigpCiAgICAgICAgIHJldHVybjsKIAogICAgIG1fc3R1Yi0+Y2xlYXJDYWxsTm9kZXNG
b3IodGhpcyk7Ci0gICAgbV9zdHViLmNsZWFyKCk7CisgICAgbV9zdHViID0gbnVsbHB0cjsKIH0K
IAogdm9pZCBDYWxsTGlua0luZm86OnVubGluayhSZXBhdGNoQnVmZmVyJiByZXBhdGNoQnVmZmVy
KQpkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL2J5dGVjb2RlL1N0cnVjdHVyZVN0
dWJJbmZvLmggYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvYnl0ZWNvZGUvU3RydWN0dXJlU3R1Yklu
Zm8uaAppbmRleCBlYzhiNzljMWYyODUyNWJiNDg0OTVkZDFiZWM2ZjE5ZjE2MjU3NGVmLi5kNDAy
YWNlZTU3OTNiYjRmNzg2Njk1MTcxNjQxNDhlOGE3YTI3MWM4IDEwMDY0NAotLS0gYS9Tb3VyY2Uv
SmF2YVNjcmlwdENvcmUvYnl0ZWNvZGUvU3RydWN0dXJlU3R1YkluZm8uaAorKysgYi9Tb3VyY2Uv
SmF2YVNjcmlwdENvcmUvYnl0ZWNvZGUvU3RydWN0dXJlU3R1YkluZm8uaApAQCAtMTQ5LDggKzE0
OSw4IEBAIHN0cnVjdCBTdHJ1Y3R1cmVTdHViSW5mbyB7CiAgICAgewogICAgICAgICBkZXJlZigp
OwogICAgICAgICBhY2Nlc3NUeXBlID0gYWNjZXNzX3Vuc2V0OwotICAgICAgICBzdHViUm91dGlu
ZS5jbGVhcigpOwotICAgICAgICB3YXRjaHBvaW50cy5jbGVhcigpOworICAgICAgICBzdHViUm91
dGluZSA9IG51bGxwdHI7CisgICAgICAgIHdhdGNocG9pbnRzID0gbnVsbHB0cjsKICAgICB9CiAK
ICAgICB2b2lkIGRlcmVmKCk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvZGVi
dWdnZXIvRGVidWdnZXIuY3BwIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL2RlYnVnZ2VyL0RlYnVn
Z2VyLmNwcAppbmRleCA1NzQxMDY5MmUwMDgwMDc3OTc4YjM3ZWIxNjc3MDMyMzM1YzRiNGMyLi5i
YzFiNTdlNTkzYTc5OTMwNzEyODkyZGU2NTA5MzEwNmEzYWE0N2QxIDEwMDY0NAotLS0gYS9Tb3Vy
Y2UvSmF2YVNjcmlwdENvcmUvZGVidWdnZXIvRGVidWdnZXIuY3BwCisrKyBiL1NvdXJjZS9KYXZh
U2NyaXB0Q29yZS9kZWJ1Z2dlci9EZWJ1Z2dlci5jcHAKQEAgLTExNyw3ICsxMTcsNyBAQCBwdWJs
aWM6CiAgICAgewogICAgICAgICBpZiAobV9kZWJ1Z2dlci5tX2N1cnJlbnREZWJ1Z2dlckNhbGxG
cmFtZSkgewogICAgICAgICAgICAgbV9kZWJ1Z2dlci5tX2N1cnJlbnREZWJ1Z2dlckNhbGxGcmFt
ZS0+aW52YWxpZGF0ZSgpOwotICAgICAgICAgICAgbV9kZWJ1Z2dlci5tX2N1cnJlbnREZWJ1Z2dl
ckNhbGxGcmFtZSA9IDA7CisgICAgICAgICAgICBtX2RlYnVnZ2VyLm1fY3VycmVudERlYnVnZ2Vy
Q2FsbEZyYW1lID0gbnVsbHB0cjsKICAgICAgICAgfQogICAgIH0KIApkaWZmIC0tZ2l0IGEvU291
cmNlL0phdmFTY3JpcHRDb3JlL2RmZy9ERkdHcmFwaC5oIGIvU291cmNlL0phdmFTY3JpcHRDb3Jl
L2RmZy9ERkdHcmFwaC5oCmluZGV4IDJjZTdkNjBiMmEyZjhhZjdhMzM1YzU2NTEwNjk4ZDk5ZTY3
Mjg0MWIuLjUxNDhjMjZkOGUzN2U3NzMyNDRlOGQ5YjI0NDM1YjIzYWEzMDJlMjQgMTAwNjQ0Ci0t
LSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9kZmcvREZHR3JhcGguaAorKysgYi9Tb3VyY2UvSmF2
YVNjcmlwdENvcmUvZGZnL0RGR0dyYXBoLmgKQEAgLTQ0NCw3ICs0NDQsNyBAQCBwdWJsaWM6CiAg
ICAgCiAgICAgdm9pZCBraWxsQmxvY2soQmxvY2tJbmRleCBibG9ja0luZGV4KQogICAgIHsKLSAg
ICAgICAgbV9ibG9ja3NbYmxvY2tJbmRleF0uY2xlYXIoKTsKKyAgICAgICAgbV9ibG9ja3NbYmxv
Y2tJbmRleF0gPSBudWxscHRyOwogICAgIH0KICAgICAKICAgICB2b2lkIGtpbGxCbG9jayhCYXNp
Y0Jsb2NrKiBiYXNpY0Jsb2NrKQpkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL2Rm
Zy9ERkdPcGVyYXRpb25zLmNwcCBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9kZmcvREZHT3BlcmF0
aW9ucy5jcHAKaW5kZXggYTk5YTNmYTEwMjAxOGNiZTg0ZTRkMTM3NDUwZDcyNTBkNDg3ZWUwOC4u
NmY5NTEyYmE1MzRjNDkwZDRiZjk5OGFmNWQwODI0NDEyZGJiOTE0ZSAxMDA2NDQKLS0tIGEvU291
cmNlL0phdmFTY3JpcHRDb3JlL2RmZy9ERkdPcGVyYXRpb25zLmNwcAorKysgYi9Tb3VyY2UvSmF2
YVNjcmlwdENvcmUvZGZnL0RGR09wZXJhdGlvbnMuY3BwCkBAIC0xNDQ3LDcgKzE0NDcsNyBAQCBj
aGFyKiBKSVRfT1BFUkFUSU9OIHRyaWdnZXJPU1JFbnRyeU5vdygKICAgICAgICAgCiAgICAgICAg
IC8vIE9TUiBlbnRyeSBmYWlsZWQuIE9oIG5vISBUaGlzIGltcGxpZXMgdGhhdCB3ZSBuZWVkIHRv
IHJldHJ5LiBXZSByZXRyeQogICAgICAgICAvLyB3aXRob3V0IGV4cG9uZW50aWFsIGJhY2tvZmYg
YW5kIHdlIG9ubHkgZG8gdGhpcyBmb3IgdGhlIGVudHJ5IGNvZGUgYmxvY2suCi0gICAgICAgIGpp
dENvZGUtPm9zckVudHJ5QmxvY2suY2xlYXIoKTsKKyAgICAgICAgaml0Q29kZS0+b3NyRW50cnlC
bG9jayA9IG51bGxwdHI7CiAgICAgICAgIGppdENvZGUtPm9zckVudHJ5UmV0cnkgPSAwOwogICAg
ICAgICByZXR1cm4gMDsKICAgICB9CmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUv
aW5zcGVjdG9yL0NvbnNvbGVNZXNzYWdlLmNwcCBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9pbnNw
ZWN0b3IvQ29uc29sZU1lc3NhZ2UuY3BwCmluZGV4IGEwNGE5N2RjM2I0NTE0ODU2Nzc2NGY0ZDI4
ZDBmM2IyYzM4ZDFlMDYuLjlhYzBkZGVlMmRjOTBiYWY4MThmYWUzYTJkNDE2ZGQ1OGFhOTE0NDUg
MTAwNjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9pbnNwZWN0b3IvQ29uc29sZU1lc3Nh
Z2UuY3BwCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9pbnNwZWN0b3IvQ29uc29sZU1lc3Nh
Z2UuY3BwCkBAIC0yNzMsNyArMjczLDcgQEAgdm9pZCBDb25zb2xlTWVzc2FnZTo6Y2xlYXIoKQog
ICAgICAgICBtX21lc3NhZ2UgPSBBU0NJSUxpdGVyYWwoIjxtZXNzYWdlIGNvbGxlY3RlZD4iKTsK
IAogICAgIGlmIChtX2FyZ3VtZW50cykKLSAgICAgICAgbV9hcmd1bWVudHMuY2xlYXIoKTsKKyAg
ICAgICAgbV9hcmd1bWVudHMgPSBudWxscHRyOwogfQogCiBKU0M6OkV4ZWNTdGF0ZSogQ29uc29s
ZU1lc3NhZ2U6OnNjcmlwdFN0YXRlKCkgY29uc3QKZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2Ny
aXB0Q29yZS9pbnNwZWN0b3IvSlNHbG9iYWxPYmplY3RJbnNwZWN0b3JDb250cm9sbGVyLmNwcCBi
L1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9pbnNwZWN0b3IvSlNHbG9iYWxPYmplY3RJbnNwZWN0b3JD
b250cm9sbGVyLmNwcAppbmRleCA1N2Y1MmM1NTU0N2E2Mzg4NzljODJmNDBiNjhlYzNkMjJiMzJh
MDM5Li4xMWQ4NmVkMzI5NzUwMzE3MzcxNmE4NWQ5MzU4MDhmYzY3N2I1ZDQ4IDEwMDY0NAotLS0g
YS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvaW5zcGVjdG9yL0pTR2xvYmFsT2JqZWN0SW5zcGVjdG9y
Q29udHJvbGxlci5jcHAKKysrIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL2luc3BlY3Rvci9KU0ds
b2JhbE9iamVjdEluc3BlY3RvckNvbnRyb2xsZXIuY3BwCkBAIC0xMzEsNyArMTMxLDcgQEAgdm9p
ZCBKU0dsb2JhbE9iamVjdEluc3BlY3RvckNvbnRyb2xsZXI6OmRpc2Nvbm5lY3RGcm9udGVuZChE
aXNjb25uZWN0UmVhc29uIHJlYXMKICAgICBtX2FnZW50cy53aWxsRGVzdHJveUZyb250ZW5kQW5k
QmFja2VuZChyZWFzb24pOwogCiAgICAgbV9iYWNrZW5kRGlzcGF0Y2hlci0+Y2xlYXJGcm9udGVu
ZCgpOwotICAgIG1fYmFja2VuZERpc3BhdGNoZXIuY2xlYXIoKTsKKyAgICBtX2JhY2tlbmREaXNw
YXRjaGVyID0gbnVsbHB0cjsKICAgICBtX2Zyb250ZW5kQ2hhbm5lbCA9IG51bGxwdHI7CiAKICAg
ICBtX2lzQXV0b21hdGljSW5zcGVjdGlvbiA9IGZhbHNlOwpkaWZmIC0tZ2l0IGEvU291cmNlL0ph
dmFTY3JpcHRDb3JlL2luc3BlY3Rvci9hZ2VudHMvSW5zcGVjdG9yQWdlbnQuY3BwIGIvU291cmNl
L0phdmFTY3JpcHRDb3JlL2luc3BlY3Rvci9hZ2VudHMvSW5zcGVjdG9yQWdlbnQuY3BwCmluZGV4
IGJmMjQxYmE3NzgyZDljMDljYTZkYWQzNjA5MmI4MjFhNzJhODM4YWEuLjA1Mzg2OTAxZTYxZTdm
YmNkZWNlMGJjMTUyOTBkOWY1YmFjZTAxODggMTAwNjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0
Q29yZS9pbnNwZWN0b3IvYWdlbnRzL0luc3BlY3RvckFnZW50LmNwcAorKysgYi9Tb3VyY2UvSmF2
YVNjcmlwdENvcmUvaW5zcGVjdG9yL2FnZW50cy9JbnNwZWN0b3JBZ2VudC5jcHAKQEAgLTU3LDcg
KzU3LDcgQEAgdm9pZCBJbnNwZWN0b3JBZ2VudDo6ZGlkQ3JlYXRlRnJvbnRlbmRBbmRCYWNrZW5k
KEZyb250ZW5kQ2hhbm5lbCogZnJvbnRlbmRDaGFubmUKIHZvaWQgSW5zcGVjdG9yQWdlbnQ6Ondp
bGxEZXN0cm95RnJvbnRlbmRBbmRCYWNrZW5kKERpc2Nvbm5lY3RSZWFzb24pCiB7CiAgICAgbV9m
cm9udGVuZERpc3BhdGNoZXIgPSBudWxscHRyOwotICAgIG1fYmFja2VuZERpc3BhdGNoZXIuY2xl
YXIoKTsKKyAgICBtX2JhY2tlbmREaXNwYXRjaGVyID0gbnVsbHB0cjsKIAogICAgIG1fcGVuZGlu
Z0V2YWx1YXRlVGVzdENvbW1hbmRzLmNsZWFyKCk7CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZh
U2NyaXB0Q29yZS9pbnNwZWN0b3IvYWdlbnRzL0luc3BlY3RvckNvbnNvbGVBZ2VudC5jcHAgYi9T
b3VyY2UvSmF2YVNjcmlwdENvcmUvaW5zcGVjdG9yL2FnZW50cy9JbnNwZWN0b3JDb25zb2xlQWdl
bnQuY3BwCmluZGV4IDgxNGEwYzExY2Y2MDhlYzY5ODk5Y2ViZjFiYWMxNGVhYmMxOWJhZDYuLjlm
ZmQwNDg0ZjI4MDYyYzI5YmNhZGI0YjliOWQzNzBiMWY3MTEzN2YgMTAwNjQ0Ci0tLSBhL1NvdXJj
ZS9KYXZhU2NyaXB0Q29yZS9pbnNwZWN0b3IvYWdlbnRzL0luc3BlY3RvckNvbnNvbGVBZ2VudC5j
cHAKKysrIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL2luc3BlY3Rvci9hZ2VudHMvSW5zcGVjdG9y
Q29uc29sZUFnZW50LmNwcApAQCAtNjQsNyArNjQsNyBAQCB2b2lkIEluc3BlY3RvckNvbnNvbGVB
Z2VudDo6ZGlkQ3JlYXRlRnJvbnRlbmRBbmRCYWNrZW5kKEZyb250ZW5kQ2hhbm5lbCogZnJvbnRl
bgogdm9pZCBJbnNwZWN0b3JDb25zb2xlQWdlbnQ6OndpbGxEZXN0cm95RnJvbnRlbmRBbmRCYWNr
ZW5kKERpc2Nvbm5lY3RSZWFzb24pCiB7CiAgICAgbV9mcm9udGVuZERpc3BhdGNoZXIgPSBudWxs
cHRyOwotICAgIG1fYmFja2VuZERpc3BhdGNoZXIuY2xlYXIoKTsKKyAgICBtX2JhY2tlbmREaXNw
YXRjaGVyID0gbnVsbHB0cjsKIAogICAgIFN0cmluZyBlcnJvclN0cmluZzsKICAgICBkaXNhYmxl
KGVycm9yU3RyaW5nKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9pbnNwZWN0
b3IvYWdlbnRzL0luc3BlY3RvckRlYnVnZ2VyQWdlbnQuY3BwIGIvU291cmNlL0phdmFTY3JpcHRD
b3JlL2luc3BlY3Rvci9hZ2VudHMvSW5zcGVjdG9yRGVidWdnZXJBZ2VudC5jcHAKaW5kZXggYTc1
ZTBiMmI2ZWM3ZThjOWRkZDY3N2ZmOTQ4NWM5ZThmZTlkYmU0ZC4uZjBmMGI0OGRkNGQ0N2NkZTNh
MGYyYTg4MjJjNDYzMjVkZTVhYWI0ZiAxMDA2NDQKLS0tIGEvU291cmNlL0phdmFTY3JpcHRDb3Jl
L2luc3BlY3Rvci9hZ2VudHMvSW5zcGVjdG9yRGVidWdnZXJBZ2VudC5jcHAKKysrIGIvU291cmNl
L0phdmFTY3JpcHRDb3JlL2luc3BlY3Rvci9hZ2VudHMvSW5zcGVjdG9yRGVidWdnZXJBZ2VudC5j
cHAKQEAgLTc3LDcgKzc3LDcgQEAgdm9pZCBJbnNwZWN0b3JEZWJ1Z2dlckFnZW50OjpkaWRDcmVh
dGVGcm9udGVuZEFuZEJhY2tlbmQoRnJvbnRlbmRDaGFubmVsKiBmcm9udGUKIHZvaWQgSW5zcGVj
dG9yRGVidWdnZXJBZ2VudDo6d2lsbERlc3Ryb3lGcm9udGVuZEFuZEJhY2tlbmQoRGlzY29ubmVj
dFJlYXNvbiByZWFzb24pCiB7CiAgICAgbV9mcm9udGVuZERpc3BhdGNoZXIgPSBudWxscHRyOwot
ICAgIG1fYmFja2VuZERpc3BhdGNoZXIuY2xlYXIoKTsKKyAgICBtX2JhY2tlbmREaXNwYXRjaGVy
ID0gbnVsbHB0cjsKIAogICAgIGJvb2wgc2tpcFJlY29tcGlsZSA9IHJlYXNvbiA9PSBEaXNjb25u
ZWN0UmVhc29uOjpJbnNwZWN0ZWRUYXJnZXREZXN0cm95ZWQ7CiAgICAgZGlzYWJsZShza2lwUmVj
b21waWxlKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9pbnNwZWN0b3IvYWdl
bnRzL0pTR2xvYmFsT2JqZWN0UnVudGltZUFnZW50LmNwcCBiL1NvdXJjZS9KYXZhU2NyaXB0Q29y
ZS9pbnNwZWN0b3IvYWdlbnRzL0pTR2xvYmFsT2JqZWN0UnVudGltZUFnZW50LmNwcAppbmRleCA2
NThjNjdhYjE1Zjg5NTIwNWM1NWJiNTI4OWMwYjlkMmU0ZTQwYzYwLi40NjA0OWY1NmM3NWFkNzM5
OGYzYzlkMDc1ODQ2Y2U3YTFjMTI4MjY4IDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENv
cmUvaW5zcGVjdG9yL2FnZW50cy9KU0dsb2JhbE9iamVjdFJ1bnRpbWVBZ2VudC5jcHAKKysrIGIv
U291cmNlL0phdmFTY3JpcHRDb3JlL2luc3BlY3Rvci9hZ2VudHMvSlNHbG9iYWxPYmplY3RSdW50
aW1lQWdlbnQuY3BwCkBAIC00OSw3ICs0OSw3IEBAIHZvaWQgSlNHbG9iYWxPYmplY3RSdW50aW1l
QWdlbnQ6OmRpZENyZWF0ZUZyb250ZW5kQW5kQmFja2VuZChGcm9udGVuZENoYW5uZWwqIGZyCiB2
b2lkIEpTR2xvYmFsT2JqZWN0UnVudGltZUFnZW50Ojp3aWxsRGVzdHJveUZyb250ZW5kQW5kQmFj
a2VuZChEaXNjb25uZWN0UmVhc29uIHJlYXNvbikKIHsKICAgICBtX2Zyb250ZW5kRGlzcGF0Y2hl
ciA9IG51bGxwdHI7Ci0gICAgbV9iYWNrZW5kRGlzcGF0Y2hlci5jbGVhcigpOworICAgIG1fYmFj
a2VuZERpc3BhdGNoZXIgPSBudWxscHRyOwogCiAgICAgSW5zcGVjdG9yUnVudGltZUFnZW50Ojp3
aWxsRGVzdHJveUZyb250ZW5kQW5kQmFja2VuZChyZWFzb24pOwogfQpkaWZmIC0tZ2l0IGEvU291
cmNlL0phdmFTY3JpcHRDb3JlL3BhcnNlci9QYXJzZXIuY3BwIGIvU291cmNlL0phdmFTY3JpcHRD
b3JlL3BhcnNlci9QYXJzZXIuY3BwCmluZGV4IGRjMGY1NWYxMzJmYTBlMThmODQ3YTg1NGM4Y2Zm
NTZiMGE2MDk0OWYuLmEzYzVlMzEyMThiMDM5MmVlNzYxNmZlZDYxZDlkMzk1MmI0YTQ4ZTYgMTAw
NjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9wYXJzZXIvUGFyc2VyLmNwcAorKysgYi9T
b3VyY2UvSmF2YVNjcmlwdENvcmUvcGFyc2VyL1BhcnNlci5jcHAKQEAgLTQ5MSw3ICs0OTEsNyBA
QCB0ZW1wbGF0ZSA8Y2xhc3MgVHJlZUJ1aWxkZXI+IFRyZWVFeHByZXNzaW9uIFBhcnNlcjxMZXhl
clR5cGU+OjpwYXJzZVZhckRlY2xhcmF0aQogICAgIEpTVG9rZW4gbGFzdElkZW50VG9rZW47IAog
ICAgIGRvIHsKICAgICAgICAgbGFzdElkZW50ID0gMDsKLSAgICAgICAgbGFzdFBhdHRlcm4gPSAw
OworICAgICAgICBsYXN0UGF0dGVybiA9IFRyZWVEZXN0cnVjdHVyaW5nUGF0dGVybigwKTsKICAg
ICAgICAgSlNUb2tlbkxvY2F0aW9uIGxvY2F0aW9uKHRva2VuTG9jYXRpb24oKSk7CiAgICAgICAg
IG5leHQoKTsKICAgICAgICAgVHJlZUV4cHJlc3Npb24gbm9kZSA9IDA7CkBAIC04OTQsNyArODk0
LDcgQEAgdGVtcGxhdGUgPGNsYXNzIFRyZWVCdWlsZGVyPiBUcmVlU3RhdGVtZW50IFBhcnNlcjxM
ZXhlclR5cGU+OjpwYXJzZUZvclN0YXRlbWVudCgKICAgICAgICAgICAgIGRlY2xzRW5kID0gbGFz
dFRva2VuRW5kUG9zaXRpb24oKTsKICAgICAgICAgICAgIGlmIChwYXR0ZXJuICYmIChtYXRjaChJ
TlRPS0VOKSB8fCAobWF0Y2goSURFTlQpICYmICptX3Rva2VuLm1fZGF0YS5pZGVudCA9PSBtX3Zt
LT5wcm9wZXJ0eU5hbWVzLT5vZikpKQogICAgICAgICAgICAgICAgIGdvdG8gZW51bWVyYXRpb25M
b29wOwotICAgICAgICAgICAgcGF0dGVybiA9IDA7CisgICAgICAgICAgICBwYXR0ZXJuID0gVHJl
ZURlc3RydWN0dXJpbmdQYXR0ZXJuKDApOwogICAgICAgICAgICAgcmVzdG9yZVNhdmVQb2ludChz
YXZlUG9pbnQpOwogICAgICAgICB9CiAgICAgICAgIG1fYWxsb3dzSW4gPSBmYWxzZTsKZGlmZiAt
LWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0V4ZWN1dGFibGUuY3BwIGIvU291
cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvRXhlY3V0YWJsZS5jcHAKaW5kZXggNmNiMDliMDFi
MzgyNWI4NDU2ZTk1YzFhYmM5ZGZmMmI4MDZlNDExOC4uNTUyNDBmZDkxZjdiYzc4NDJmMTNlNTky
ODFkMTBkMjFkODZjNGY1MCAxMDA2NDQKLS0tIGEvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRp
bWUvRXhlY3V0YWJsZS5jcHAKKysrIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvRXhl
Y3V0YWJsZS5jcHAKQEAgLTUyLDggKzUyLDggQEAgdm9pZCBFeGVjdXRhYmxlQmFzZTo6ZGVzdHJv
eShKU0NlbGwqIGNlbGwpCiB2b2lkIEV4ZWN1dGFibGVCYXNlOjpjbGVhckNvZGUoKQogewogI2lm
IEVOQUJMRShKSVQpCi0gICAgbV9qaXRDb2RlRm9yQ2FsbC5jbGVhcigpOwotICAgIG1faml0Q29k
ZUZvckNvbnN0cnVjdC5jbGVhcigpOworICAgIG1faml0Q29kZUZvckNhbGwgPSBudWxscHRyOwor
ICAgIG1faml0Q29kZUZvckNvbnN0cnVjdCA9IG51bGxwdHI7CiAgICAgbV9qaXRDb2RlRm9yQ2Fs
bFdpdGhBcml0eUNoZWNrID0gTWFjcm9Bc3NlbWJsZXJDb2RlUHRyKCk7CiAgICAgbV9qaXRDb2Rl
Rm9yQ29uc3RydWN0V2l0aEFyaXR5Q2hlY2sgPSBNYWNyb0Fzc2VtYmxlckNvZGVQdHIoKTsKICAg
ICBtX2ppdENvZGVGb3JDYWxsV2l0aEFyaXR5Q2hlY2tBbmRQcmVzZXJ2ZVJlZ3MgPSBNYWNyb0Fz
c2VtYmxlckNvZGVQdHIoKTsKQEAgLTQ2NCw3ICs0NjQsNyBAQCB2b2lkIEV2YWxFeGVjdXRhYmxl
Ojp1bmxpbmtDYWxscygpCiAKIHZvaWQgRXZhbEV4ZWN1dGFibGU6OmNsZWFyQ29kZSgpCiB7Ci0g
ICAgbV9ldmFsQ29kZUJsb2NrLmNsZWFyKCk7CisgICAgbV9ldmFsQ29kZUJsb2NrID0gbnVsbHB0
cjsKICAgICBtX3VubGlua2VkRXZhbENvZGVCbG9jay5jbGVhcigpOwogICAgIEJhc2U6OmNsZWFy
Q29kZSgpOwogfQpAQCAtNTQzLDcgKzU0Myw3IEBAIHZvaWQgUHJvZ3JhbUV4ZWN1dGFibGU6OnZp
c2l0Q2hpbGRyZW4oSlNDZWxsKiBjZWxsLCBTbG90VmlzaXRvciYgdmlzaXRvcikKIAogdm9pZCBQ
cm9ncmFtRXhlY3V0YWJsZTo6Y2xlYXJDb2RlKCkKIHsKLSAgICBtX3Byb2dyYW1Db2RlQmxvY2su
Y2xlYXIoKTsKKyAgICBtX3Byb2dyYW1Db2RlQmxvY2sgPSBudWxscHRyOwogICAgIG1fdW5saW5r
ZWRQcm9ncmFtQ29kZUJsb2NrLmNsZWFyKCk7CiAgICAgQmFzZTo6Y2xlYXJDb2RlKCk7CiB9CkBA
IC01ODcsOCArNTg3LDggQEAgdm9pZCBGdW5jdGlvbkV4ZWN1dGFibGU6OmNsZWFyVW5saW5rZWRD
b2RlRm9yUmVjb21waWxhdGlvbigpCiAKIHZvaWQgRnVuY3Rpb25FeGVjdXRhYmxlOjpjbGVhckNv
ZGUoKQogewotICAgIG1fY29kZUJsb2NrRm9yQ2FsbC5jbGVhcigpOwotICAgIG1fY29kZUJsb2Nr
Rm9yQ29uc3RydWN0LmNsZWFyKCk7CisgICAgbV9jb2RlQmxvY2tGb3JDYWxsID0gbnVsbHB0cjsK
KyAgICBtX2NvZGVCbG9ja0ZvckNvbnN0cnVjdCA9IG51bGxwdHI7CiAgICAgQmFzZTo6Y2xlYXJD
b2RlKCk7CiB9CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0pT
TG9jay5jcHAgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9KU0xvY2suY3BwCmluZGV4
IDJlNzk5NGNmMjdjM2M1NGQ1ZDU3YzM3MDAwZGQxODBlYzRkZjlmMDUuLmMyZWUwYTU1MzJjMGI1
MTkzNjg3MTA5ZDlhMzJlYzRhMTQ0NWQ4YmQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0
Q29yZS9ydW50aW1lL0pTTG9jay5jcHAKKysrIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRp
bWUvSlNMb2NrLmNwcApAQCAtNzMsNyArNzMsNyBAQCB2b2lkIEpTTG9ja0hvbGRlcjo6aW5pdCgp
CiBKU0xvY2tIb2xkZXI6On5KU0xvY2tIb2xkZXIoKQogewogICAgIFJlZlB0cjxKU0xvY2s+IGFw
aUxvY2soJm1fdm0tPmFwaUxvY2soKSk7Ci0gICAgbV92bS5jbGVhcigpOworICAgIG1fdm0gPSBu
dWxscHRyOwogICAgIGFwaUxvY2stPnVubG9jaygpOwogfQogCmRpZmYgLS1naXQgYS9Tb3VyY2Uv
SmF2YVNjcmlwdENvcmUvcnVudGltZS9TdHJ1Y3R1cmUuY3BwIGIvU291cmNlL0phdmFTY3JpcHRD
b3JlL3J1bnRpbWUvU3RydWN0dXJlLmNwcAppbmRleCBmNzcxYjYwYmNiNjVkZThlNTRjNmE2MTFj
N2QyNmY4NjU5OGIwNzRkLi4zOTg1ODA1Y2Y1NWM4M2MxZGE2NTRhMTM1YzQ1MTBjNzUwMTcwYjE5
IDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9TdHJ1Y3R1cmUuY3Bw
CisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL1N0cnVjdHVyZS5jcHAKQEAgLTcz
Nyw3ICs3MzcsNyBAQCB2b2lkIFN0cnVjdHVyZTo6cGluKCkKICAgICBBU1NFUlQocHJvcGVydHlU
YWJsZSgpKTsKICAgICBzZXRJc1Bpbm5lZFByb3BlcnR5VGFibGUodHJ1ZSk7CiAgICAgY2xlYXJQ
cmV2aW91c0lEKCk7Ci0gICAgbV9uYW1lSW5QcmV2aW91cy5jbGVhcigpOworICAgIG1fbmFtZUlu
UHJldmlvdXMgPSBudWxscHRyOwogfQogCiB2b2lkIFN0cnVjdHVyZTo6YWxsb2NhdGVSYXJlRGF0
YShWTSYgdm0pCmRpZmYgLS1naXQgYS9Tb3VyY2UvV1RGL3d0Zi9SZWZQdHIuaCBiL1NvdXJjZS9X
VEYvd3RmL1JlZlB0ci5oCmluZGV4IDI5MTFmMGRhOTA2MmI3NmNjZDJhZDE1NDQwYjljZDI1ODVk
NTg4ODYuLjdjODMwNWUzOGVkNzJiNDQ3N2RhNWYyZTIyNzUwNzY0YTc4M2UyNjQgMTAwNjQ0Ci0t
LSBhL1NvdXJjZS9XVEYvd3RmL1JlZlB0ci5oCisrKyBiL1NvdXJjZS9XVEYvd3RmL1JlZlB0ci5o
CkBAIC02MCw3ICs2MCw2IEBAIHB1YmxpYzoKIAogICAgIFQqIGdldCgpIGNvbnN0IHsgcmV0dXJu
IG1fcHRyOyB9CiAgICAgCi0gICAgdm9pZCBjbGVhcigpOwogICAgIFBhc3NSZWZQdHI8VD4gcmVs
ZWFzZSgpIHsgUGFzc1JlZlB0cjxUPiB0bXAgPSBhZG9wdFJlZihtX3B0cik7IG1fcHRyID0gbnVs
bHB0cjsgcmV0dXJuIHRtcDsgfQogICAgIFJlZjxUPiByZWxlYXNlTm9uTnVsbCgpIHsgQVNTRVJU
KG1fcHRyKTsgUmVmPFQ+IHRtcChhZG9wdFJlZigqbV9wdHIpKTsgbV9wdHIgPSBudWxscHRyOyBy
ZXR1cm4gdG1wOyB9CiAKQEAgLTc3LDYgKzc2LDcgQEAgcHVibGljOgogICAgIAogICAgIFJlZlB0
ciYgb3BlcmF0b3I9KGNvbnN0IFJlZlB0ciYpOwogICAgIFJlZlB0ciYgb3BlcmF0b3I9KFQqKTsK
KyAgICBSZWZQdHImIG9wZXJhdG9yPShzdGQ6Om51bGxwdHJfdCk7CiAgICAgUmVmUHRyJiBvcGVy
YXRvcj0oY29uc3QgUGFzc1JlZlB0cjxUPiYpOwogICAgIHRlbXBsYXRlPHR5cGVuYW1lIFU+IFJl
ZlB0ciYgb3BlcmF0b3I9KGNvbnN0IFJlZlB0cjxVPiYpOwogICAgIHRlbXBsYXRlPHR5cGVuYW1l
IFU+IFJlZlB0ciYgb3BlcmF0b3I9KGNvbnN0IFBhc3NSZWZQdHI8VT4mKTsKQEAgLTEwOSwxMSAr
MTA5LDYgQEAgdGVtcGxhdGU8dHlwZW5hbWUgVD4gdGVtcGxhdGU8dHlwZW5hbWUgVT4gaW5saW5l
IFJlZlB0cjxUPjo6UmVmUHRyKFJlZjxVPiYmIHJlZmUKIHsKIH0KIAotdGVtcGxhdGU8dHlwZW5h
bWUgVD4gaW5saW5lIHZvaWQgUmVmUHRyPFQ+OjpjbGVhcigpCi17Ci0gICAgZGVyZWZJZk5vdE51
bGwoc3RkOjpleGNoYW5nZShtX3B0ciwgbnVsbHB0cikpOwotfQotCiB0ZW1wbGF0ZTx0eXBlbmFt
ZSBUPgogaW5saW5lIFQqIFJlZlB0cjxUPjo6bGVha1JlZigpCiB7CkBAIC0xNDEsNiArMTM2LDEy
IEBAIHRlbXBsYXRlPHR5cGVuYW1lIFQ+IGlubGluZSBSZWZQdHI8VD4mIFJlZlB0cjxUPjo6b3Bl
cmF0b3I9KFQqIG9wdHIpCiAgICAgcmV0dXJuICp0aGlzOwogfQogCit0ZW1wbGF0ZTx0eXBlbmFt
ZSBUPiBpbmxpbmUgUmVmUHRyPFQ+JiBSZWZQdHI8VD46Om9wZXJhdG9yPShzdGQ6Om51bGxwdHJf
dCkKK3sKKyAgICBkZXJlZklmTm90TnVsbChzdGQ6OmV4Y2hhbmdlKG1fcHRyLCBudWxscHRyKSk7
CisgICAgcmV0dXJuICp0aGlzOworfQorCiB0ZW1wbGF0ZTx0eXBlbmFtZSBUPiBpbmxpbmUgUmVm
UHRyPFQ+JiBSZWZQdHI8VD46Om9wZXJhdG9yPShjb25zdCBQYXNzUmVmUHRyPFQ+JiBvKQogewog
ICAgIFJlZlB0ciBwdHIgPSBvOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dURi93dGYvdGV4dC9TdHJp
bmdCdWlsZGVyLmggYi9Tb3VyY2UvV1RGL3d0Zi90ZXh0L1N0cmluZ0J1aWxkZXIuaAppbmRleCBi
ZTVjMTE3MmNjY2I5OThhNDEwNTgwMzQ1YWY0MGMyOWNiMTM0OThlLi4xZGM0YWM2MjI5NDBjMGE1
MzQyZDc2YzkyMmEzNmRkNjE4MmE5MWY4IDEwMDY0NAotLS0gYS9Tb3VyY2UvV1RGL3d0Zi90ZXh0
L1N0cmluZ0J1aWxkZXIuaAorKysgYi9Tb3VyY2UvV1RGL3d0Zi90ZXh0L1N0cmluZ0J1aWxkZXIu
aApAQCAtMjY0LDcgKzI2NCw3IEBAIHB1YmxpYzoKICAgICB7CiAgICAgICAgIG1fbGVuZ3RoID0g
MDsKICAgICAgICAgbV9zdHJpbmcgPSBTdHJpbmcoKTsKLSAgICAgICAgbV9idWZmZXIgPSAwOwor
ICAgICAgICBtX2J1ZmZlciA9IG51bGxwdHI7CiAgICAgICAgIG1fYnVmZmVyQ2hhcmFjdGVyczgg
PSAwOwogICAgICAgICBtX2lzOEJpdCA9IHRydWU7CiAgICAgfQpkaWZmIC0tZ2l0IGEvU291cmNl
L1dlYkNvcmUvTW9kdWxlcy9pbmRleGVkZGIvSURCQ3Vyc29yLmNwcCBiL1NvdXJjZS9XZWJDb3Jl
L01vZHVsZXMvaW5kZXhlZGRiL0lEQkN1cnNvci5jcHAKaW5kZXggYTIwZTFlMWFjZTI0OTk0ODRk
Zjc0NTkxOThhMTExZTE4NDI5MGU2ZC4uYzQwMTFkYzI3NTU1ZjQ4ZmNlMmQ2ZDJlMTY0MDhmMWQ3
YTc2MTM2ZiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9pbmRleGVkZGIvSURC
Q3Vyc29yLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL2luZGV4ZWRkYi9JREJDdXJz
b3IuY3BwCkBAIC0yNTksNyArMjU5LDcgQEAgdm9pZCBJREJDdXJzb3I6OmNsb3NlKCkKICAgICBt
X3RyYW5zYWN0aW9uTm90aWZpZXIuY3Vyc29yRmluaXNoZWQoKTsKICAgICBpZiAobV9yZXF1ZXN0
KSB7CiAgICAgICAgIG1fcmVxdWVzdC0+ZmluaXNoQ3Vyc29yKCk7Ci0gICAgICAgIG1fcmVxdWVz
dC5jbGVhcigpOworICAgICAgICBtX3JlcXVlc3QgPSBudWxscHRyOwogICAgIH0KIH0KIApkaWZm
IC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9pbmRleGVkZGIvSURCRGF0YWJhc2VCYWNr
ZW5kLmNwcCBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvaW5kZXhlZGRiL0lEQkRhdGFiYXNlQmFj
a2VuZC5jcHAKaW5kZXggZmMyMzEwMmRkYWE5YTM3NzA5NDBlZjRlYjA0YzEzODAzODM0ZGMzZi4u
MDllNGUyN2I4ZjkwOWUxNzgwOWI0OWQwMzRlM2I4YzRlNDVlZjUzNyAxMDA2NDQKLS0tIGEvU291
cmNlL1dlYkNvcmUvTW9kdWxlcy9pbmRleGVkZGIvSURCRGF0YWJhc2VCYWNrZW5kLmNwcAorKysg
Yi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL2luZGV4ZWRkYi9JREJEYXRhYmFzZUJhY2tlbmQuY3Bw
CkBAIC0zMzMsNyArMzMzLDcgQEAgdm9pZCBJREJEYXRhYmFzZUJhY2tlbmQ6OnRyYW5zYWN0aW9u
RmluaXNoZWQoSURCVHJhbnNhY3Rpb25CYWNrZW5kKiByYXdUcmFuc2FjdGkKICAgICBtX3RyYW5z
YWN0aW9ucy5yZW1vdmUodHJhbnNhY3Rpb24tPmlkKCkpOwogICAgIGlmICh0cmFuc2FjdGlvbi0+
bW9kZSgpID09IEluZGV4ZWREQjo6VHJhbnNhY3Rpb25Nb2RlOjpWZXJzaW9uQ2hhbmdlKSB7CiAg
ICAgICAgIEFTU0VSVCh0cmFuc2FjdGlvbi5nZXQoKSA9PSBtX3J1bm5pbmdWZXJzaW9uQ2hhbmdl
VHJhbnNhY3Rpb24uZ2V0KCkpOwotICAgICAgICBtX3J1bm5pbmdWZXJzaW9uQ2hhbmdlVHJhbnNh
Y3Rpb24uY2xlYXIoKTsKKyAgICAgICAgbV9ydW5uaW5nVmVyc2lvbkNoYW5nZVRyYW5zYWN0aW9u
ID0gbnVsbHB0cjsKICAgICB9CiB9CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL01vZHVs
ZXMvaW5kZXhlZGRiL0lEQk9iamVjdFN0b3JlLmNwcCBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMv
aW5kZXhlZGRiL0lEQk9iamVjdFN0b3JlLmNwcAppbmRleCBlOGJmOWRkZWZlNDk3YjU2M2Q5OGYw
ODUwZWFlOGQ0ODdlYjIyNWI5Li5hNmQyODE0MmY2MjIyMjJmOTQzZjhkNGUxMzViNDI0ODMxMjAz
MDE5IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL2luZGV4ZWRkYi9JREJPYmpl
Y3RTdG9yZS5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9pbmRleGVkZGIvSURCT2Jq
ZWN0U3RvcmUuY3BwCkBAIC0zMzcsNyArMzM3LDcgQEAgcHJpdmF0ZToKICAgICAgICAgICAgIC8v
IE5vdyB0aGF0IHdlIGFyZSBkb25lIGluZGV4aW5nLCB0ZWxsIHRoZSBiYWNrZW5kIHRvIGdvCiAg
ICAgICAgICAgICAvLyBiYWNrIHRvIHByb2Nlc3NpbmcgdGFza3Mgb2YgdHlwZSBOb3JtYWxUYXNr
LgogICAgICAgICAgICAgbV9kYXRhYmFzZUJhY2tlbmQtPnNldEluZGV4ZXNSZWFkeShtX3RyYW5z
YWN0aW9uSWQsIG1fb2JqZWN0U3RvcmVJZCwgaW5kZXhJZHMpOwotICAgICAgICAgICAgbV9kYXRh
YmFzZUJhY2tlbmQuY2xlYXIoKTsKKyAgICAgICAgICAgIG1fZGF0YWJhc2VCYWNrZW5kID0gbnVs
bHB0cjsKICAgICAgICAgfQogCiAgICAgfQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvTW9k
dWxlcy9pbmRleGVkZGIvSURCT3BlbkRCUmVxdWVzdC5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1
bGVzL2luZGV4ZWRkYi9JREJPcGVuREJSZXF1ZXN0LmNwcAppbmRleCA2Mzc4MDdlYWQ5NGNiNzhj
OWM5ZDkzNThkZWQ2NzBmZmYyMDE3N2RjLi43MTU3OWIwNTk1NTYyNGUwM2YyYWUxNzI3ZmM1MDQ2
NzkyNTA0N2I0IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL2luZGV4ZWRkYi9J
REJPcGVuREJSZXF1ZXN0LmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL2luZGV4ZWRk
Yi9JREJPcGVuREJSZXF1ZXN0LmNwcApAQCAtMTQyLDcgKzE0Miw3IEBAIGJvb2wgSURCT3BlbkRC
UmVxdWVzdDo6ZGlzcGF0Y2hFdmVudChQYXNzUmVmUHRyPEV2ZW50PiBldmVudCkKICAgICAvLyBJ
ZiB0aGUgY29ubmVjdGlvbiBjbG9zZWQgYmV0d2VlbiBvblVwZ3JhZGVOZWVkZWQgYW5kIHRoZSBk
ZWxpdmVyeSBvZiB0aGUgInN1Y2Nlc3MiIGV2ZW50LAogICAgIC8vIGFuICJlcnJvciIgZXZlbnQg
c2hvdWxkIGJlIGZpcmVkIGluc3RlYWQuCiAgICAgaWYgKGV2ZW50LT50eXBlKCkgPT0gZXZlbnRO
YW1lcygpLnN1Y2Nlc3NFdmVudCAmJiBtX3Jlc3VsdC0+dHlwZSgpID09IElEQkFueTo6SURCRGF0
YWJhc2VUeXBlICYmIG1fcmVzdWx0LT5pZGJEYXRhYmFzZSgpLT5pc0Nsb3NlUGVuZGluZygpKSB7
Ci0gICAgICAgIG1fcmVzdWx0LmNsZWFyKCk7CisgICAgICAgIG1fcmVzdWx0ID0gbnVsbHB0cjsK
ICAgICAgICAgb25FcnJvcihJREJEYXRhYmFzZUVycm9yOjpjcmVhdGUoSURCRGF0YWJhc2VFeGNl
cHRpb246OkFib3J0RXJyb3IsICJUaGUgY29ubmVjdGlvbiB3YXMgY2xvc2VkLiIpKTsKICAgICAg
ICAgcmV0dXJuIGZhbHNlOwogICAgIH0KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL01vZHVs
ZXMvaW5kZXhlZGRiL0lEQlJlcXVlc3QuY3BwIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9pbmRl
eGVkZGIvSURCUmVxdWVzdC5jcHAKaW5kZXggOWU1MDFiNGY4NjI2YjA0MDE2ZGVjZDk1ODYxNmE4
MTUzZmE2NWFlZi4uODY0ZGU1MzU3NTMxMWIwOWUyODc4NGEzZGE2NWM4MWZmOGE4NDVhZiAxMDA2
NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9pbmRleGVkZGIvSURCUmVxdWVzdC5jcHAK
KysrIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9pbmRleGVkZGIvSURCUmVxdWVzdC5jcHAKQEAg
LTE3MCw5ICsxNzAsOSBAQCB2b2lkIElEQlJlcXVlc3Q6OmFib3J0KCkKICAgICBtX2VucXVldWVk
RXZlbnRzLmNsZWFyKCk7CiAKICAgICBtX2Vycm9yQ29kZSA9IDA7Ci0gICAgbV9lcnJvci5jbGVh
cigpOworICAgIG1fZXJyb3IgPSBudWxscHRyOwogICAgIG1fZXJyb3JNZXNzYWdlID0gU3RyaW5n
KCk7Ci0gICAgbV9yZXN1bHQuY2xlYXIoKTsKKyAgICBtX3Jlc3VsdCA9IG51bGxwdHI7CiAgICAg
b25FcnJvcihJREJEYXRhYmFzZUVycm9yOjpjcmVhdGUoSURCRGF0YWJhc2VFeGNlcHRpb246OkFi
b3J0RXJyb3IpKTsKICAgICBtX3JlcXVlc3RBYm9ydGVkID0gdHJ1ZTsKIH0KQEAgLTE5NCwxMCAr
MTk0LDEwIEBAIHZvaWQgSURCUmVxdWVzdDo6c2V0UGVuZGluZ0N1cnNvcihQYXNzUmVmUHRyPElE
QkN1cnNvcj4gY3Vyc29yKQogICAgIEFTU0VSVChjdXJzb3IgPT0gZ2V0UmVzdWx0Q3Vyc29yKCkp
OwogCiAgICAgbV9wZW5kaW5nQ3Vyc29yID0gY3Vyc29yOwotICAgIG1fcmVzdWx0LmNsZWFyKCk7
CisgICAgbV9yZXN1bHQgPSBudWxscHRyOwogICAgIG1fcmVhZHlTdGF0ZSA9IFBFTkRJTkc7CiAg
ICAgbV9lcnJvckNvZGUgPSAwOwotICAgIG1fZXJyb3IuY2xlYXIoKTsKKyAgICBtX2Vycm9yID0g
bnVsbHB0cjsKICAgICBtX2Vycm9yTWVzc2FnZSA9IFN0cmluZygpOwogICAgIG1fdHJhbnNhY3Rp
b24tPnJlZ2lzdGVyUmVxdWVzdCh0aGlzKTsKIH0KQEAgLTI1Niw3ICsyNTYsNyBAQCB2b2lkIElE
QlJlcXVlc3Q6Om9uRXJyb3IoUGFzc1JlZlB0cjxJREJEYXRhYmFzZUVycm9yPiBlcnJvcikKICAg
ICBtX2Vycm9yQ29kZSA9IGVycm9yLT5jb2RlKCk7CiAgICAgbV9lcnJvck1lc3NhZ2UgPSBlcnJv
ci0+bWVzc2FnZSgpOwogICAgIG1fZXJyb3IgPSBET01FcnJvcjo6Y3JlYXRlKElEQkRhdGFiYXNl
RXhjZXB0aW9uOjpnZXRFcnJvck5hbWUoZXJyb3ItPmlkYkNvZGUoKSkpOwotICAgIG1fcGVuZGlu
Z0N1cnNvci5jbGVhcigpOworICAgIG1fcGVuZGluZ0N1cnNvciA9IG51bGxwdHI7CiAgICAgZW5x
dWV1ZUV2ZW50KEV2ZW50OjpjcmVhdGUoZXZlbnROYW1lcygpLmVycm9yRXZlbnQsIHRydWUsIHRy
dWUpKTsKIH0KIApAQCAtNDA0LDcgKzQwNCw3IEBAIHZvaWQgSURCUmVxdWVzdDo6b25TdWNjZXNz
SW50ZXJuYWwoY29uc3QgRGVwcmVjYXRlZDo6U2NyaXB0VmFsdWUmIHZhbHVlKQogICAgIG1fcmVz
dWx0ID0gSURCQW55OjpjcmVhdGUodmFsdWUpOwogICAgIGlmIChtX3BlbmRpbmdDdXJzb3IpIHsK
ICAgICAgICAgbV9wZW5kaW5nQ3Vyc29yLT5jbG9zZSgpOwotICAgICAgICBtX3BlbmRpbmdDdXJz
b3IuY2xlYXIoKTsKKyAgICAgICAgbV9wZW5kaW5nQ3Vyc29yID0gbnVsbHB0cjsKICAgICB9CiAg
ICAgZW5xdWV1ZUV2ZW50KGNyZWF0ZVN1Y2Nlc3NFdmVudCgpKTsKIH0KQEAgLTU1Myw3ICs1NTMs
NyBAQCB2b2lkIElEQlJlcXVlc3Q6OnRyYW5zYWN0aW9uRGlkRmluaXNoQW5kRGlzcGF0Y2goKQog
ICAgIEFTU0VSVChtX3RyYW5zYWN0aW9uLT5pc1ZlcnNpb25DaGFuZ2UoKSk7CiAgICAgQVNTRVJU
KG1fcmVhZHlTdGF0ZSA9PSBET05FKTsKICAgICBBU1NFUlQoc2NyaXB0RXhlY3V0aW9uQ29udGV4
dCgpKTsKLSAgICBtX3RyYW5zYWN0aW9uLmNsZWFyKCk7CisgICAgbV90cmFuc2FjdGlvbiA9IG51
bGxwdHI7CiAgICAgbV9yZWFkeVN0YXRlID0gUEVORElORzsKIH0KIApkaWZmIC0tZ2l0IGEvU291
cmNlL1dlYkNvcmUvTW9kdWxlcy9pbmRleGVkZGIvSURCVHJhbnNhY3Rpb24uY3BwIGIvU291cmNl
L1dlYkNvcmUvTW9kdWxlcy9pbmRleGVkZGIvSURCVHJhbnNhY3Rpb24uY3BwCmluZGV4IDk5NDhi
YzcyYmIyNTJlYWQ4MDRlZDAzNzE1M2QyNDE0ZWE4YjFlYTcuLjZlYzI5ZmE2Nzg0Yzc4ZTdiMDRi
YTMwNGUyNDg2MzA3MzkyZWQ4OWEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMv
aW5kZXhlZGRiL0lEQlRyYW5zYWN0aW9uLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVz
L2luZGV4ZWRkYi9JREJUcmFuc2FjdGlvbi5jcHAKQEAgLTI0MCw3ICsyNDAsNyBAQCB2b2lkIElE
QlRyYW5zYWN0aW9uOjpPcGVuQ3Vyc29yTm90aWZpZXI6OmN1cnNvckZpbmlzaGVkKCkKICAgICBp
ZiAobV9jdXJzb3IpIHsKICAgICAgICAgbV90cmFuc2FjdGlvbi0+dW5yZWdpc3Rlck9wZW5DdXJz
b3IobV9jdXJzb3IpOwogICAgICAgICBtX2N1cnNvciA9IG51bGxwdHI7Ci0gICAgICAgIG1fdHJh
bnNhY3Rpb24uY2xlYXIoKTsKKyAgICAgICAgbV90cmFuc2FjdGlvbiA9IG51bGxwdHI7CiAgICAg
fQogfQogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL21lZGlhc291cmNlL01l
ZGlhU291cmNlLmNwcCBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvbWVkaWFzb3VyY2UvTWVkaWFT
b3VyY2UuY3BwCmluZGV4IDkxMTcwYWE0ZTgyYTAxNzVmZDJhNDAxZGFlNDU0OTc5ZTcwYmEyYjQu
LmM0MGQ2ZTMwMzY5ZTM5OTEzYzdmYTk3NzJjMWVkNmNmMzI0MDRlMTkgMTAwNjQ0Ci0tLSBhL1Nv
dXJjZS9XZWJDb3JlL01vZHVsZXMvbWVkaWFzb3VyY2UvTWVkaWFTb3VyY2UuY3BwCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL01vZHVsZXMvbWVkaWFzb3VyY2UvTWVkaWFTb3VyY2UuY3BwCkBAIC0zOTQs
NyArMzk0LDcgQEAgdm9pZCBNZWRpYVNvdXJjZTo6c2V0UmVhZHlTdGF0ZShjb25zdCBBdG9taWNT
dHJpbmcmIHN0YXRlKQogICAgIExPRyhNZWRpYVNvdXJjZSwgIk1lZGlhU291cmNlOjpzZXRSZWFk
eVN0YXRlKCVwKSA6ICVzIC0+ICVzIiwgdGhpcywgb2xkU3RhdGUuc3RyaW5nKCkuYXNjaWkoKS5k
YXRhKCksIHN0YXRlLnN0cmluZygpLmFzY2lpKCkuZGF0YSgpKTsKIAogICAgIGlmIChzdGF0ZSA9
PSBjbG9zZWRLZXl3b3JkKCkpIHsKLSAgICAgICAgbV9wcml2YXRlLmNsZWFyKCk7CisgICAgICAg
IG1fcHJpdmF0ZSA9IG51bGxwdHI7CiAgICAgICAgIG1fbWVkaWFFbGVtZW50ID0gbnVsbHB0cjsK
ICAgICAgICAgbV9kdXJhdGlvbiA9IE1lZGlhVGltZTo6aW52YWxpZFRpbWUoKTsKICAgICB9CkBA
IC04MTEsNyArODExLDcgQEAgdm9pZCBNZWRpYVNvdXJjZTo6c3RvcCgpCiAgICAgbV9hc3luY0V2
ZW50UXVldWUuY2xvc2UoKTsKICAgICBpZiAoIWlzQ2xvc2VkKCkpCiAgICAgICAgIHNldFJlYWR5
U3RhdGUoY2xvc2VkS2V5d29yZCgpKTsKLSAgICBtX3ByaXZhdGUuY2xlYXIoKTsKKyAgICBtX3By
aXZhdGUgPSBudWxscHRyOwogfQogCiBib29sIE1lZGlhU291cmNlOjpjYW5TdXNwZW5kRm9yUGFn
ZUNhY2hlKCkgY29uc3QKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvbWVkaWFz
dHJlYW0vUlRDU2Vzc2lvbkRlc2NyaXB0aW9uUmVxdWVzdEltcGwuY3BwIGIvU291cmNlL1dlYkNv
cmUvTW9kdWxlcy9tZWRpYXN0cmVhbS9SVENTZXNzaW9uRGVzY3JpcHRpb25SZXF1ZXN0SW1wbC5j
cHAKaW5kZXggZDcxMGRjMThmNWUyM2NiNmUxMzA4ZGYyOGY2NTZhNjg5YmNiMDZkNy4uMzAxMzM0
ZGNkNTEwODVkMzI1ZjUyNGY4ZWQ5OTRhZWNiOGU2ODQ0MyAxMDA2NDQKLS0tIGEvU291cmNlL1dl
YkNvcmUvTW9kdWxlcy9tZWRpYXN0cmVhbS9SVENTZXNzaW9uRGVzY3JpcHRpb25SZXF1ZXN0SW1w
bC5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9tZWRpYXN0cmVhbS9SVENTZXNzaW9u
RGVzY3JpcHRpb25SZXF1ZXN0SW1wbC5jcHAKQEAgLTk3LDggKzk3LDggQEAgYm9vbCBSVENTZXNz
aW9uRGVzY3JpcHRpb25SZXF1ZXN0SW1wbDo6Y2FuU3VzcGVuZEZvclBhZ2VDYWNoZSgpIGNvbnN0
CiAKIHZvaWQgUlRDU2Vzc2lvbkRlc2NyaXB0aW9uUmVxdWVzdEltcGw6OmNsZWFyKCkKIHsKLSAg
ICBtX3N1Y2Nlc3NDYWxsYmFjay5jbGVhcigpOwotICAgIG1fZXJyb3JDYWxsYmFjay5jbGVhcigp
OworICAgIG1fc3VjY2Vzc0NhbGxiYWNrID0gbnVsbHB0cjsKKyAgICBtX2Vycm9yQ2FsbGJhY2sg
PSBudWxscHRyOwogfQogCiB9IC8vIG5hbWVzcGFjZSBXZWJDb3JlCmRpZmYgLS1naXQgYS9Tb3Vy
Y2UvV2ViQ29yZS9Nb2R1bGVzL21lZGlhc3RyZWFtL1JUQ1N0YXRzUmVxdWVzdEltcGwuY3BwIGIv
U291cmNlL1dlYkNvcmUvTW9kdWxlcy9tZWRpYXN0cmVhbS9SVENTdGF0c1JlcXVlc3RJbXBsLmNw
cAppbmRleCBkZWIxOWE5YWY5MGRjZmM0NTYzNzM4NjhlMTVmODgzNWRmYmU0YzhmLi5kMDAwYjEx
ZGYxN2ZlZjEwMTBlMzg5OWI3NzAyMWNlNzkyMDFmN2U5IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2Vi
Q29yZS9Nb2R1bGVzL21lZGlhc3RyZWFtL1JUQ1N0YXRzUmVxdWVzdEltcGwuY3BwCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL01vZHVsZXMvbWVkaWFzdHJlYW0vUlRDU3RhdHNSZXF1ZXN0SW1wbC5jcHAK
QEAgLTEwNCw3ICsxMDQsNyBAQCBib29sIFJUQ1N0YXRzUmVxdWVzdEltcGw6OmNhblN1c3BlbmRG
b3JQYWdlQ2FjaGUoKSBjb25zdAogCiB2b2lkIFJUQ1N0YXRzUmVxdWVzdEltcGw6OmNsZWFyKCkK
IHsKLSAgICBtX3N1Y2Nlc3NDYWxsYmFjay5jbGVhcigpOworICAgIG1fc3VjY2Vzc0NhbGxiYWNr
ID0gbnVsbHB0cjsKIH0KIAogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL21l
ZGlhc3RyZWFtL1JUQ1ZvaWRSZXF1ZXN0SW1wbC5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVz
L21lZGlhc3RyZWFtL1JUQ1ZvaWRSZXF1ZXN0SW1wbC5jcHAKaW5kZXggODJmOGExMjJkZDMwOWUz
YWQwZTQzOTRlYzljYzM1ZWUwMDlkYWQzNy4uNzA2ZjkwNzU4ZmRjMTVkYzk3ZWZhMWE1ZDMxMTJj
NGUyYWI0OWRhNiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9tZWRpYXN0cmVh
bS9SVENWb2lkUmVxdWVzdEltcGwuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvbWVk
aWFzdHJlYW0vUlRDVm9pZFJlcXVlc3RJbXBsLmNwcApAQCAtOTQsOCArOTQsOCBAQCBib29sIFJU
Q1ZvaWRSZXF1ZXN0SW1wbDo6Y2FuU3VzcGVuZEZvclBhZ2VDYWNoZSgpIGNvbnN0CiAKIHZvaWQg
UlRDVm9pZFJlcXVlc3RJbXBsOjpjbGVhcigpCiB7Ci0gICAgbV9zdWNjZXNzQ2FsbGJhY2suY2xl
YXIoKTsKLSAgICBtX2Vycm9yQ2FsbGJhY2suY2xlYXIoKTsKKyAgICBtX3N1Y2Nlc3NDYWxsYmFj
ayA9IG51bGxwdHI7CisgICAgbV9lcnJvckNhbGxiYWNrID0gbnVsbHB0cjsKIH0KIAogfSAvLyBu
YW1lc3BhY2UgV2ViQ29yZQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy93ZWJh
dWRpby9BdWRpb0NvbnRleHQuY3BwIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy93ZWJhdWRpby9B
dWRpb0NvbnRleHQuY3BwCmluZGV4IDVhM2RlYTBhNTA3MWQ4ZGFmYmNkZmUwNTVhOGQwNWNkODAz
NDBkYWYuLmZhYTk5NmI3NGNmOGIwZmIyYjA0MzIyZGIxN2JhNjY4NjM2MGM5YjkgMTAwNjQ0Ci0t
LSBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvd2ViYXVkaW8vQXVkaW9Db250ZXh0LmNwcAorKysg
Yi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL3dlYmF1ZGlvL0F1ZGlvQ29udGV4dC5jcHAKQEAgLTIz
MSw3ICsyMzEsNyBAQCB2b2lkIEF1ZGlvQ29udGV4dDo6Y2xlYXIoKQogewogICAgIC8vIFdlIGhh
dmUgdG8gcmVsZWFzZSBvdXIgcmVmZXJlbmNlIHRvIHRoZSBkZXN0aW5hdGlvbiBub2RlIGJlZm9y
ZSB0aGUgY29udGV4dCB3aWxsIGV2ZXIgYmUgZGVsZXRlZCBzaW5jZSB0aGUgZGVzdGluYXRpb24g
bm9kZSBob2xkcyBhIHJlZmVyZW5jZSB0byB0aGUgY29udGV4dC4KICAgICBpZiAobV9kZXN0aW5h
dGlvbk5vZGUpCi0gICAgICAgIG1fZGVzdGluYXRpb25Ob2RlLmNsZWFyKCk7CisgICAgICAgIG1f
ZGVzdGluYXRpb25Ob2RlID0gbnVsbHB0cjsKIAogICAgIC8vIEF1ZGlvIHRocmVhZCBpcyBkZWFk
LiBOb2JvZHkgd2lsbCBzY2hlZHVsZSBub2RlIGRlbGV0aW9uIGFjdGlvbi4gTGV0J3MgZG8gaXQg
b3Vyc2VsdmVzLgogICAgIGRvIHsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMv
d2ViZGF0YWJhc2UvU1FMVHJhbnNhY3Rpb25CYWNrZW5kLmNwcCBiL1NvdXJjZS9XZWJDb3JlL01v
ZHVsZXMvd2ViZGF0YWJhc2UvU1FMVHJhbnNhY3Rpb25CYWNrZW5kLmNwcAppbmRleCBkYTI1NGI2
NTRmMjM1ZTVhMTgyZTRkN2Y4NGMzOWExNTVlNGU4MGQ2Li5kMzExMzgwZTQ0ODU4MWFkOWU0Mzdk
MjQ1ZWVhMjlmNmE5ZjljMDk2IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL3dl
YmRhdGFiYXNlL1NRTFRyYW5zYWN0aW9uQmFja2VuZC5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUv
TW9kdWxlcy93ZWJkYXRhYmFzZS9TUUxUcmFuc2FjdGlvbkJhY2tlbmQuY3BwCkBAIC04NDUsNyAr
ODQ1LDcgQEAgdm9pZCBTUUxUcmFuc2FjdGlvbkJhY2tlbmQ6OnJlbGVhc2VPcmlnaW5Mb2NrSWZO
ZWVkZWQoKQogewogICAgIGlmIChtX29yaWdpbkxvY2spIHsKICAgICAgICAgbV9vcmlnaW5Mb2Nr
LT51bmxvY2soKTsKLSAgICAgICAgbV9vcmlnaW5Mb2NrLmNsZWFyKCk7CisgICAgICAgIG1fb3Jp
Z2luTG9jayA9IG51bGxwdHI7CiAgICAgfQogfQogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29y
ZS9Nb2R1bGVzL3dlYnNvY2tldHMvV29ya2VyVGhyZWFkYWJsZVdlYlNvY2tldENoYW5uZWwuY3Bw
IGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy93ZWJzb2NrZXRzL1dvcmtlclRocmVhZGFibGVXZWJT
b2NrZXRDaGFubmVsLmNwcAppbmRleCBiY2JkYWY5NGM3MDExN2MzZDE0MzlhODQzZWE3Y2IwMzI4
YzJlZTg1Li4zNGI2NGQ3N2EwZjU4ZDhjNTdmYmMwODI2MmE5MjMzNTVhOGVkMWQ2IDEwMDY0NAot
LS0gYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL3dlYnNvY2tldHMvV29ya2VyVGhyZWFkYWJsZVdl
YlNvY2tldENoYW5uZWwuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvd2Vic29ja2V0
cy9Xb3JrZXJUaHJlYWRhYmxlV2ViU29ja2V0Q2hhbm5lbC5jcHAKQEAgLTEyNiw3ICsxMjYsNyBA
QCB2b2lkIFdvcmtlclRocmVhZGFibGVXZWJTb2NrZXRDaGFubmVsOjpmYWlsKGNvbnN0IFN0cmlu
ZyYgcmVhc29uKQogdm9pZCBXb3JrZXJUaHJlYWRhYmxlV2ViU29ja2V0Q2hhbm5lbDo6ZGlzY29u
bmVjdCgpCiB7CiAgICAgbV9icmlkZ2UtPmRpc2Nvbm5lY3QoKTsKLSAgICBtX2JyaWRnZS5jbGVh
cigpOworICAgIG1fYnJpZGdlID0gbnVsbHB0cjsKIH0KIAogdm9pZCBXb3JrZXJUaHJlYWRhYmxl
V2ViU29ja2V0Q2hhbm5lbDo6c3VzcGVuZCgpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9h
Y2Nlc3NpYmlsaXR5L2F0ay9BWE9iamVjdENhY2hlQXRrLmNwcCBiL1NvdXJjZS9XZWJDb3JlL2Fj
Y2Vzc2liaWxpdHkvYXRrL0FYT2JqZWN0Q2FjaGVBdGsuY3BwCmluZGV4IDJmMzVmNzQwOTc4ZTc4
MzU3NTIxNGM0OTVlNDNlYjQ1NWM5Mjc0YTQuLmJjMzg0MTE4MmFmYjA2NzEwOGExNjcyZTgxYTMy
OGE0ZGUyNGQ5MmQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2FjY2Vzc2liaWxpdHkvYXRr
L0FYT2JqZWN0Q2FjaGVBdGsuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2FjY2Vzc2liaWxpdHkv
YXRrL0FYT2JqZWN0Q2FjaGVBdGsuY3BwCkBAIC0xNTMsNyArMTUzLDcgQEAgc3RhdGljIHZvaWQg
bm90aWZ5Q2hpbGRyZW5TZWxlY3Rpb25DaGFuZ2UoQWNjZXNzaWJpbGl0eU9iamVjdCogb2JqZWN0
KQogCiAgICAgQWNjZXNzaWJpbGl0eU9iamVjdCogbGlzdE9iamVjdCA9IGdldExpc3RPYmplY3Qo
b2JqZWN0KTsKICAgICBpZiAoIWxpc3RPYmplY3QpIHsKLSAgICAgICAgb2xkTGlzdE9iamVjdC5n
ZXQoKSA9IDA7CisgICAgICAgIG9sZExpc3RPYmplY3QuZ2V0KCkgPSBudWxscHRyOwogICAgICAg
ICByZXR1cm47CiAgICAgfQogCkBAIC0xNjYsNyArMTY2LDcgQEAgc3RhdGljIHZvaWQgbm90aWZ5
Q2hpbGRyZW5TZWxlY3Rpb25DaGFuZ2UoQWNjZXNzaWJpbGl0eU9iamVjdCogb2JqZWN0KQogICAg
IC8vIGZ1cnRoZXIgY29tcGFyaXNvbnMgbWFrZSBzZW5zZS4gT3RoZXJ3aXNlLCBqdXN0IHJlc2V0
CiAgICAgLy8gb2xkRm9jdXNlZE9iamVjdCBzbyBpdCB3b24ndCBiZSB0YWtlbiBpbnRvIGFjY291
bnQuCiAgICAgaWYgKG9sZExpc3RPYmplY3QuZ2V0KCkgIT0gbGlzdE9iamVjdCkKLSAgICAgICAg
b2xkRm9jdXNlZE9iamVjdC5nZXQoKSA9IDA7CisgICAgICAgIG9sZEZvY3VzZWRPYmplY3QuZ2V0
KCkgPSBudWxscHRyOwogCiAgICAgQXRrT2JqZWN0KiBheEl0ZW0gPSBpdGVtID8gaXRlbS0+d3Jh
cHBlcigpIDogbnVsbHB0cjsKICAgICBBdGtPYmplY3QqIGF4T2xkRm9jdXNlZE9iamVjdCA9IG9s
ZEZvY3VzZWRPYmplY3QuZ2V0KCkgPyBvbGRGb2N1c2VkT2JqZWN0LmdldCgpLT53cmFwcGVyKCkg
OiBudWxscHRyOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvYmluZGluZ3MvanMvU2NyaXB0
Q29udHJvbGxlci5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9qcy9TY3JpcHRDb250cm9s
bGVyLmNwcAppbmRleCAzYWJkZDJiOWRiNWE2OWFhYzQxOGVhMTlkMjVhNDRmNWJmNTcwOGQzLi5j
NTE5OWNmZGY3OWJkZTQzY2U0ZTZmZjEwZDcwNTUxMGQ2NTQ3NTdkIDEwMDY0NAotLS0gYS9Tb3Vy
Y2UvV2ViQ29yZS9iaW5kaW5ncy9qcy9TY3JpcHRDb250cm9sbGVyLmNwcAorKysgYi9Tb3VyY2Uv
V2ViQ29yZS9iaW5kaW5ncy9qcy9TY3JpcHRDb250cm9sbGVyLmNwcApAQCAtMTAyLDcgKzEwMiw3
IEBAIFNjcmlwdENvbnRyb2xsZXI6On5TY3JpcHRDb250cm9sbGVyKCkKICAgICBpZiAobV9jYWNo
ZWFibGVCaW5kaW5nUm9vdE9iamVjdCkgewogICAgICAgICBKU0xvY2tIb2xkZXIgbG9jayhKU0RP
TVdpbmRvd0Jhc2U6OmNvbW1vblZNKCkpOwogICAgICAgICBtX2NhY2hlYWJsZUJpbmRpbmdSb290
T2JqZWN0LT5pbnZhbGlkYXRlKCk7Ci0gICAgICAgIG1fY2FjaGVhYmxlQmluZGluZ1Jvb3RPYmpl
Y3QgPSAwOworICAgICAgICBtX2NhY2hlYWJsZUJpbmRpbmdSb290T2JqZWN0ID0gbnVsbHB0cjsK
ICAgICB9CiAKICAgICAvLyBJdCdzIGxpa2VseSB0aGF0IGRlc3Ryb3lpbmcgbV93aW5kb3dTaGVs
bHMgd2lsbCBjcmVhdGUgYSBsb3Qgb2YgZ2FyYmFnZS4KQEAgLTQ4OSw3ICs0ODksNyBAQCB2b2lk
IFNjcmlwdENvbnRyb2xsZXI6OmNsZWFyU2NyaXB0T2JqZWN0cygpCiAKICAgICBpZiAobV9iaW5k
aW5nUm9vdE9iamVjdCkgewogICAgICAgICBtX2JpbmRpbmdSb290T2JqZWN0LT5pbnZhbGlkYXRl
KCk7Ci0gICAgICAgIG1fYmluZGluZ1Jvb3RPYmplY3QgPSAwOworICAgICAgICBtX2JpbmRpbmdS
b290T2JqZWN0ID0gbnVsbHB0cjsKICAgICB9CiAKICNpZiBFTkFCTEUoTkVUU0NBUEVfUExVR0lO
X0FQSSkKQEAgLTQ5OCw3ICs0OTgsNyBAQCB2b2lkIFNjcmlwdENvbnRyb2xsZXI6OmNsZWFyU2Ny
aXB0T2JqZWN0cygpCiAgICAgICAgIC8vIHNjcmlwdCBvYmplY3QgcHJvcGVybHkuCiAgICAgICAg
IC8vIFRoaXMgc2hvdWxkbid0IGNhdXNlIGFueSBwcm9ibGVtcyBmb3IgcGx1Z2lucyBzaW5jZSB0
aGV5IHNob3VsZCBoYXZlIGFscmVhZHkgYmVlbiBzdG9wcGVkIGFuZCBkZXN0cm95ZWQgYXQgdGhp
cyBwb2ludC4KICAgICAgICAgX05QTl9EZWFsbG9jYXRlT2JqZWN0KG1fd2luZG93U2NyaXB0TlBP
YmplY3QpOwotICAgICAgICBtX3dpbmRvd1NjcmlwdE5QT2JqZWN0ID0gMDsKKyAgICAgICAgbV93
aW5kb3dTY3JpcHROUE9iamVjdCA9IG51bGxwdHI7CiAgICAgfQogI2VuZGlmCiB9CmRpZmYgLS1n
aXQgYS9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9qcy9XZWJDb3JlSlNDbGllbnREYXRhLmggYi9T
b3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9qcy9XZWJDb3JlSlNDbGllbnREYXRhLmgKaW5kZXggNjU0
NTEzMzVkM2Q4YTkyMWY1ODE2MjJjMjllNDkwMDBiOWE2MzY2Yy4uNDMwMmQ2OGU1YzhjNmQ3ODdk
NDcyNjI0MTRiY2ViOThkMjJlMDE5ZSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvYmluZGlu
Z3MvanMvV2ViQ29yZUpTQ2xpZW50RGF0YS5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdz
L2pzL1dlYkNvcmVKU0NsaWVudERhdGEuaApAQCAtNDQsNyArNDQsNyBAQCBwdWJsaWM6CiAgICAg
ICAgIEFTU0VSVChtX3dvcmxkU2V0LmNvbnRhaW5zKG1fbm9ybWFsV29ybGQuZ2V0KCkpKTsKICAg
ICAgICAgQVNTRVJUKG1fd29ybGRTZXQuc2l6ZSgpID09IDEpOwogICAgICAgICBBU1NFUlQobV9u
b3JtYWxXb3JsZC0+aGFzT25lUmVmKCkpOwotICAgICAgICBtX25vcm1hbFdvcmxkLmNsZWFyKCk7
CisgICAgICAgIG1fbm9ybWFsV29ybGQgPSBudWxscHRyOwogICAgICAgICBBU1NFUlQobV93b3Js
ZFNldC5pc0VtcHR5KCkpOwogICAgIH0KIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvYmlu
ZGluZ3MvanMvV29ya2VyU2NyaXB0Q29udHJvbGxlci5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9iaW5k
aW5ncy9qcy9Xb3JrZXJTY3JpcHRDb250cm9sbGVyLmNwcAppbmRleCA5MGUwZmY1MTA4OGFhNjU0
OTNkZWVjZTVjOTRmOWEwZGMwMDdjZWNhLi4yOGM5ZWYwZjI3MDNmMzIzYzYxYzhmMjI0NTg5Y2M2
OWQ2ZGQ2YmU2IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9qcy9Xb3JrZXJT
Y3JpcHRDb250cm9sbGVyLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9qcy9Xb3Jr
ZXJTY3JpcHRDb250cm9sbGVyLmNwcApAQCAtNjIsNyArNjIsNyBAQCBXb3JrZXJTY3JpcHRDb250
cm9sbGVyOjp+V29ya2VyU2NyaXB0Q29udHJvbGxlcigpCiB7CiAgICAgSlNMb2NrSG9sZGVyIGxv
Y2sodm0oKSk7CiAgICAgbV93b3JrZXJHbG9iYWxTY29wZVdyYXBwZXIuY2xlYXIoKTsKLSAgICBt
X3ZtLmNsZWFyKCk7CisgICAgbV92bSA9IG51bGxwdHI7CiB9CiAKIHZvaWQgV29ya2VyU2NyaXB0
Q29udHJvbGxlcjo6aW5pdFNjcmlwdCgpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9icmlk
Z2UvcnVudGltZV9vYmplY3QuY3BwIGIvU291cmNlL1dlYkNvcmUvYnJpZGdlL3J1bnRpbWVfb2Jq
ZWN0LmNwcAppbmRleCA5MWYwN2JjNTM3Y2YwZjNmMjAzMGY1ZWQ0ZmVlYzYzMjcyNGViMjM4Li41
ZDBmYTRmODEyYTlhZGZiOGYyNmE5NzUxZTg5ZDZlYmRkZWZmZDYyIDEwMDY0NAotLS0gYS9Tb3Vy
Y2UvV2ViQ29yZS9icmlkZ2UvcnVudGltZV9vYmplY3QuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3Jl
L2JyaWRnZS9ydW50aW1lX29iamVjdC5jcHAKQEAgLTU5LDcgKzU5LDcgQEAgdm9pZCBSdW50aW1l
T2JqZWN0OjppbnZhbGlkYXRlKCkKICAgICBBU1NFUlQobV9pbnN0YW5jZSk7CiAgICAgaWYgKG1f
aW5zdGFuY2UpCiAgICAgICAgIG1faW5zdGFuY2UtPndpbGxJbnZhbGlkYXRlUnVudGltZU9iamVj
dCgpOwotICAgIG1faW5zdGFuY2UgPSAwOworICAgIG1faW5zdGFuY2UgPSBudWxscHRyOwogfQog
CiBFbmNvZGVkSlNWYWx1ZSBSdW50aW1lT2JqZWN0OjpmYWxsYmFja09iamVjdEdldHRlcihFeGVj
U3RhdGUqIGV4ZWMsIEpTT2JqZWN0KiBzbG90QmFzZSwgRW5jb2RlZEpTVmFsdWUsIFByb3BlcnR5
TmFtZSBwcm9wZXJ0eU5hbWUpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9jb250ZW50ZXh0
ZW5zaW9ucy9Db250ZW50RXh0ZW5zaW9uUGFyc2VyLmNwcCBiL1NvdXJjZS9XZWJDb3JlL2NvbnRl
bnRleHRlbnNpb25zL0NvbnRlbnRFeHRlbnNpb25QYXJzZXIuY3BwCmluZGV4IDAyMjY1MmIyZDY5
Zjg5MWNlYTczOTRhMTA5ZDdmYmRmNTAxMmFiMjUuLjdiZjU2ZTdkNGIyZTY3ODZjMzNmN2U4OTUy
ZmM4NTQ3Mjg4YjVmMmIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2NvbnRlbnRleHRlbnNp
b25zL0NvbnRlbnRFeHRlbnNpb25QYXJzZXIuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2NvbnRl
bnRleHRlbnNpb25zL0NvbnRlbnRFeHRlbnNpb25QYXJzZXIuY3BwCkBAIC0yNzcsNyArMjc3LDcg
QEAgc3RkOjplcnJvcl9jb2RlIHBhcnNlUnVsZUxpc3QoY29uc3QgU3RyaW5nJiBydWxlcywgVmVj
dG9yPENvbnRlbnRFeHRlbnNpb25SdWxlPiYKICAgICBFeGVjU3RhdGUqIGV4ZWMgPSBnbG9iYWxP
YmplY3QtPmdsb2JhbEV4ZWMoKTsKICAgICBhdXRvIGVycm9yID0gbG9hZEVuY29kZWRSdWxlcygq
ZXhlYywgcnVsZXMsIHJ1bGVMaXN0KTsKIAotICAgIHZtLmNsZWFyKCk7CisgICAgdm0gPSBudWxs
cHRyOwogCiAgICAgaWYgKGVycm9yKQogICAgICAgICByZXR1cm4gZXJyb3I7CmRpZmYgLS1naXQg
YS9Tb3VyY2UvV2ViQ29yZS9jc3MvQ1NTUGFyc2VyLmNwcCBiL1NvdXJjZS9XZWJDb3JlL2Nzcy9D
U1NQYXJzZXIuY3BwCmluZGV4IDVlOGYwNWNlMDgxNmU3MTYwZTUzZTQ0M2EwYjEzZTQ0Yjg0MmY1
NjcuLjljYzMwOGI0ZjgzYTA5MDlmZDMzYWQzMTA2ZjhmOTZjZDRlNTA3YTEgMTAwNjQ0Ci0tLSBh
L1NvdXJjZS9XZWJDb3JlL2Nzcy9DU1NQYXJzZXIuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2Nz
cy9DU1NQYXJzZXIuY3BwCkBAIC00NTAyLDE1ICs0NTAyLDE1IEBAIHZvaWQgQ1NTUGFyc2VyOjpw
YXJzZUZpbGxQb3NpdGlvbihDU1NQYXJzZXJWYWx1ZUxpc3QmIHZhbHVlTGlzdCwgUmVmUHRyPENT
U1ZhbHVlCiAgICAgaWYgKHZhbHVlMikKICAgICAgICAgdmFsdWVMaXN0Lm5leHQoKTsKICAgICBl
bHNlIHsKLSAgICAgICAgdmFsdWUxLmNsZWFyKCk7CisgICAgICAgIHZhbHVlMSA9IG51bGxwdHI7
CiAgICAgICAgIHJldHVybjsKICAgICB9CiAKICAgICBSZWZQdHI8Q1NTUHJpbWl0aXZlVmFsdWU+
IHBhcnNlZFZhbHVlMSA9IGRvd25jYXN0PENTU1ByaW1pdGl2ZVZhbHVlPih2YWx1ZTEuZ2V0KCkp
OwogICAgIFJlZlB0cjxDU1NQcmltaXRpdmVWYWx1ZT4gcGFyc2VkVmFsdWUyID0gZG93bmNhc3Q8
Q1NTUHJpbWl0aXZlVmFsdWU+KHZhbHVlMi5nZXQoKSk7CiAKLSAgICB2YWx1ZTEuY2xlYXIoKTsK
LSAgICB2YWx1ZTIuY2xlYXIoKTsKKyAgICB2YWx1ZTEgPSBudWxscHRyOworICAgIHZhbHVlMiA9
IG51bGxwdHI7CiAKICAgICAvLyBQZXIgQ1NTMyBzeW50YXgsIDxwb3NpdGlvbj4gY2FuJ3QgaGF2
ZSAnY2VudGVyJyBhcyBpdHMgc2Vjb25kIGtleXdvcmQgYXMgd2UgaGF2ZSBtb3JlIGFyZ3VtZW50
cyB0byBmb2xsb3cuCiAgICAgaWYgKHBhcnNlZFZhbHVlMi0+Z2V0VmFsdWVJRCgpID09IENTU1Zh
bHVlQ2VudGVyKQpAQCAtNDU0OSw3ICs0NTQ5LDcgQEAgdm9pZCBDU1NQYXJzZXI6OnBhcnNlMlZh
bHVlc0ZpbGxQb3NpdGlvbihDU1NQYXJzZXJWYWx1ZUxpc3QmIHZhbHVlTGlzdCwgUmVmUHRyPEMK
ICAgICAgICAgICAgIHZhbHVlTGlzdC5uZXh0KCk7CiAgICAgICAgIGVsc2UgewogICAgICAgICAg
ICAgaWYgKCFpblNob3J0aGFuZCgpKSB7Ci0gICAgICAgICAgICAgICAgdmFsdWUxLmNsZWFyKCk7
CisgICAgICAgICAgICAgICAgdmFsdWUxID0gbnVsbHB0cjsKICAgICAgICAgICAgICAgICByZXR1
cm47CiAgICAgICAgICAgICB9CiAgICAgICAgIH0KQEAgLTc1ODcsOCArNzU4Nyw4IEBAIHN0cnVj
dCBTaGFkb3dQYXJzZUNvbnRleHQgewogICAgICAgICB9CiAKICAgICAgICAgLy8gTm93IHJlc2V0
IGZvciB0aGUgbmV4dCBzaGFkb3cgdmFsdWUuCi0gICAgICAgIHggPSAwOwotICAgICAgICB5ID0g
MDsKKyAgICAgICAgeCA9IG51bGxwdHI7CisgICAgICAgIHkgPSBudWxscHRyOwogICAgICAgICBi
bHVyID0gbnVsbHB0cjsKICAgICAgICAgc3ByZWFkID0gbnVsbHB0cjsKICAgICAgICAgc3R5bGUg
PSBudWxscHRyOwpAQCAtMTIxODQsNyArMTIxODQsNyBAQCBQYXNzUmVmUHRyPENTU1J1bGVTb3Vy
Y2VEYXRhPiBDU1NQYXJzZXI6OnBvcFJ1bGVEYXRhKCkKICAgICAgICAgcmV0dXJuIG51bGxwdHI7
CiAKICAgICBBU1NFUlQoIW1fY3VycmVudFJ1bGVEYXRhU3RhY2stPmlzRW1wdHkoKSk7Ci0gICAg
bV9jdXJyZW50UnVsZURhdGEuY2xlYXIoKTsKKyAgICBtX2N1cnJlbnRSdWxlRGF0YSA9IG51bGxw
dHI7CiAgICAgUmVmUHRyPENTU1J1bGVTb3VyY2VEYXRhPiBkYXRhID0gbV9jdXJyZW50UnVsZURh
dGFTdGFjay0+bGFzdCgpOwogICAgIG1fY3VycmVudFJ1bGVEYXRhU3RhY2stPnJlbW92ZUxhc3Qo
KTsKICAgICByZXR1cm4gZGF0YS5yZWxlYXNlKCk7CkBAIC0xMjYwNSw3ICsxMjYwNSw3IEBAIHZv
aWQgQ1NTUGFyc2VyOjptYXJrUnVsZUJvZHlTdGFydCgpCiB7CiAgICAgaWYgKCFpc0V4dHJhY3Rp
bmdTb3VyY2VEYXRhKCkpCiAgICAgICAgIHJldHVybjsKLSAgICBtX2N1cnJlbnRSdWxlRGF0YS5j
bGVhcigpOworICAgIG1fY3VycmVudFJ1bGVEYXRhID0gbnVsbHB0cjsKICAgICB1bnNpZ25lZCBv
ZmZzZXQgPSB0b2tlblN0YXJ0T2Zmc2V0KCk7CiAgICAgaWYgKHRva2VuU3RhcnRDaGFyKCkgPT0g
J3snKQogICAgICAgICArK29mZnNldDsgLy8gU2tpcCB0aGUgcnVsZSBib2R5IG9wZW5pbmcgYnJh
Y2UuCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9jc3MvQ1NTVmFsdWVQb29sLmNwcCBiL1Nv
dXJjZS9XZWJDb3JlL2Nzcy9DU1NWYWx1ZVBvb2wuY3BwCmluZGV4IDFmNDEzMTE1YTM2ZDBmNDk0
M2NiNTM3YTk5NDY4OWRkYzg2ZmQ5ZDEuLmFlM2UwZmQ0YWViNjBkNmRjODg2ZGM5MWI5YjAwNGM1
ZjVjNDkxZGEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2Nzcy9DU1NWYWx1ZVBvb2wuY3Bw
CisrKyBiL1NvdXJjZS9XZWJDb3JlL2Nzcy9DU1NWYWx1ZVBvb2wuY3BwCkBAIC0xNTMsMTIgKzE1
MywxMiBAQCB2b2lkIENTU1ZhbHVlUG9vbDo6ZHJhaW4oKQogICAgIG1fZm9udEZhbWlseVZhbHVl
Q2FjaGUuY2xlYXIoKTsKIAogICAgIGZvciAoaW50IGkgPSAwOyBpIDwgbnVtQ1NTVmFsdWVLZXl3
b3JkczsgKytpKQotICAgICAgICBtX2lkZW50aWZpZXJWYWx1ZUNhY2hlW2ldID0gMDsKKyAgICAg
ICAgbV9pZGVudGlmaWVyVmFsdWVDYWNoZVtpXSA9IG51bGxwdHI7CiAKICAgICBmb3IgKGludCBp
ID0gMDsgaSA8IG1heGltdW1DYWNoZWFibGVJbnRlZ2VyVmFsdWU7ICsraSkgewotICAgICAgICBt
X3BpeGVsVmFsdWVDYWNoZVtpXSA9IDA7Ci0gICAgICAgIG1fcGVyY2VudFZhbHVlQ2FjaGVbaV0g
PSAwOwotICAgICAgICBtX251bWJlclZhbHVlQ2FjaGVbaV0gPSAwOworICAgICAgICBtX3BpeGVs
VmFsdWVDYWNoZVtpXSA9IG51bGxwdHI7CisgICAgICAgIG1fcGVyY2VudFZhbHVlQ2FjaGVbaV0g
PSBudWxscHRyOworICAgICAgICBtX251bWJlclZhbHVlQ2FjaGVbaV0gPSBudWxscHRyOwogICAg
IH0KIH0KIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvY3NzL1N0eWxlUHJvcGVydGllcy5j
cHAgYi9Tb3VyY2UvV2ViQ29yZS9jc3MvU3R5bGVQcm9wZXJ0aWVzLmNwcAppbmRleCBiOTA5MDhk
MzFkOGUxZGJmNmE1OTRkMDQ3Nzk4OTJkZDJhYTdhMDVjLi5kZWRkMDcwMDdhZTVlOTVlM2E0ZTQ4
ODQyMWU4OGE1YWVkMzdkMzY0IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9jc3MvU3R5bGVQ
cm9wZXJ0aWVzLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9jc3MvU3R5bGVQcm9wZXJ0aWVzLmNw
cApAQCAtMzk3LDkgKzM5Nyw5IEBAIFN0cmluZyBTdHlsZVByb3BlcnRpZXM6OmdldExheWVyZWRT
aG9ydGhhbmRWYWx1ZShjb25zdCBTdHlsZVByb3BlcnR5U2hvcnRoYW5kJiBzCiAgICAgICAgICAg
ICAgICAgICAgIC8vIENvbG9yIG9ubHkgYmVsb25ncyBpbiB0aGUgbGFzdCBsYXllci4KICAgICAg
ICAgICAgICAgICAgICAgaWYgKHNob3J0aGFuZC5wcm9wZXJ0aWVzKClbal0gPT0gQ1NTUHJvcGVy
dHlCYWNrZ3JvdW5kQ29sb3IpIHsKICAgICAgICAgICAgICAgICAgICAgICAgIGlmIChpICE9IG51
bUxheWVycyAtIDEpCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgdmFsdWUgPSAwOworICAg
ICAgICAgICAgICAgICAgICAgICAgICAgIHZhbHVlID0gbnVsbHB0cjsKICAgICAgICAgICAgICAg
ICAgICAgfSBlbHNlIGlmIChpKSAvLyBPdGhlciBzaW5nbGV0b25zIG9ubHkgYmVsb25nIGluIHRo
ZSBmaXJzdCBsYXllci4KLSAgICAgICAgICAgICAgICAgICAgICAgIHZhbHVlID0gMDsKKyAgICAg
ICAgICAgICAgICAgICAgICAgIHZhbHVlID0gbnVsbHB0cjsKICAgICAgICAgICAgICAgICB9CiAg
ICAgICAgICAgICB9CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2Nzcy9WaWV3cG9ydFN0
eWxlUmVzb2x2ZXIuY3BwIGIvU291cmNlL1dlYkNvcmUvY3NzL1ZpZXdwb3J0U3R5bGVSZXNvbHZl
ci5jcHAKaW5kZXggZjg5ZWZmMDA4NjNhYzg5ZGI3NzhkYjMyM2ZlNzg1MDE1NjZhZGYwOS4uZGJi
NmNjNGRmNDQwNDE1YTRiYzQwZTBjOWUwZGFhNmMxMmE1NjliYSAxMDA2NDQKLS0tIGEvU291cmNl
L1dlYkNvcmUvY3NzL1ZpZXdwb3J0U3R5bGVSZXNvbHZlci5jcHAKKysrIGIvU291cmNlL1dlYkNv
cmUvY3NzL1ZpZXdwb3J0U3R5bGVSZXNvbHZlci5jcHAKQEAgLTcxLDcgKzcxLDcgQEAgdm9pZCBW
aWV3cG9ydFN0eWxlUmVzb2x2ZXI6OmFkZFZpZXdwb3J0UnVsZShTdHlsZVJ1bGVWaWV3cG9ydCog
dmlld3BvcnRSdWxlKQogCiB2b2lkIFZpZXdwb3J0U3R5bGVSZXNvbHZlcjo6Y2xlYXJEb2N1bWVu
dCgpCiB7Ci0gICAgbV9kb2N1bWVudCA9IDA7CisgICAgbV9kb2N1bWVudCA9IG51bGxwdHI7CiB9
CiAKIHZvaWQgVmlld3BvcnRTdHlsZVJlc29sdmVyOjpyZXNvbHZlKCkKQEAgLTk0LDcgKzk0LDcg
QEAgdm9pZCBWaWV3cG9ydFN0eWxlUmVzb2x2ZXI6OnJlc29sdmUoKQogICAgIG1fZG9jdW1lbnQt
PnNldFZpZXdwb3J0QXJndW1lbnRzKGFyZ3VtZW50cyk7CiAgICAgbV9kb2N1bWVudC0+dXBkYXRl
Vmlld3BvcnRBcmd1bWVudHMoKTsKIAotICAgIG1fcHJvcGVydHlTZXQgPSAwOworICAgIG1fcHJv
cGVydHlTZXQgPSBudWxscHRyOwogfQogCiBmbG9hdCBWaWV3cG9ydFN0eWxlUmVzb2x2ZXI6Omdl
dFZpZXdwb3J0QXJndW1lbnRWYWx1ZShDU1NQcm9wZXJ0eUlEIGlkKSBjb25zdApkaWZmIC0tZ2l0
IGEvU291cmNlL1dlYkNvcmUvZG9tL0RvY3VtZW50LmNwcCBiL1NvdXJjZS9XZWJDb3JlL2RvbS9E
b2N1bWVudC5jcHAKaW5kZXggZTUwMjY2OTYxMmQ3YzRjNTgyODM0YTRjMWIxOWJiMDM4OTRlZGFm
OS4uZjY0MGI3Y2ZiZGYxNDE4OWMxZTk4OGY0ZWJhZGI0ZGM1MjhhZTFiYSAxMDA2NDQKLS0tIGEv
U291cmNlL1dlYkNvcmUvZG9tL0RvY3VtZW50LmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9kb20v
RG9jdW1lbnQuY3BwCkBAIC0yNDI0LDcgKzI0MjQsNyBAQCB2b2lkIERvY3VtZW50OjpkZXRhY2hQ
YXJzZXIoKQogICAgIGlmICghbV9wYXJzZXIpCiAgICAgICAgIHJldHVybjsKICAgICBtX3BhcnNl
ci0+ZGV0YWNoKCk7Ci0gICAgbV9wYXJzZXIuY2xlYXIoKTsKKyAgICBtX3BhcnNlciA9IG51bGxw
dHI7CiB9CiAKIHZvaWQgRG9jdW1lbnQ6OmNhbmNlbFBhcnNpbmcoKQpAQCAtNTg4Miw3ICs1ODgy
LDcgQEAgdm9pZCBEb2N1bWVudDo6Y2xlYXJTY3JpcHRlZEFuaW1hdGlvbkNvbnRyb2xsZXIoKQog
ICAgIC8vIEZJWE1FOiBjb25zaWRlciB1c2luZyBBY3RpdmVET01PYmplY3QuCiAgICAgaWYgKG1f
c2NyaXB0ZWRBbmltYXRpb25Db250cm9sbGVyKQogICAgICAgICBtX3NjcmlwdGVkQW5pbWF0aW9u
Q29udHJvbGxlci0+Y2xlYXJEb2N1bWVudFBvaW50ZXIoKTsKLSAgICBtX3NjcmlwdGVkQW5pbWF0
aW9uQ29udHJvbGxlci5jbGVhcigpOworICAgIG1fc2NyaXB0ZWRBbmltYXRpb25Db250cm9sbGVy
ID0gbnVsbHB0cjsKIH0KICNlbmRpZgogICAgIApAQCAtNjMwMCw3ICs2MzAwLDcgQEAgdm9pZCBE
b2N1bWVudDo6dXBkYXRlSG92ZXJBY3RpdmVTdGF0ZShjb25zdCBIaXRUZXN0UmVxdWVzdCYgcmVx
dWVzdCwgRWxlbWVudCogaW4KICAgICAgICAgICAgIGN1cnItPnNldEFjdGl2ZShmYWxzZSk7CiAg
ICAgICAgICAgICBtX3VzZXJBY3Rpb25FbGVtZW50cy5zZXRJbkFjdGl2ZUNoYWluKGN1cnIsIGZh
bHNlKTsKICAgICAgICAgfQotICAgICAgICBtX2FjdGl2ZUVsZW1lbnQuY2xlYXIoKTsKKyAgICAg
ICAgbV9hY3RpdmVFbGVtZW50ID0gbnVsbHB0cjsKICAgICB9IGVsc2UgewogICAgICAgICBFbGVt
ZW50KiBuZXdBY3RpdmVFbGVtZW50ID0gaW5uZXJFbGVtZW50SW5Eb2N1bWVudDsKICAgICAgICAg
aWYgKCFvbGRBY3RpdmVFbGVtZW50ICYmIG5ld0FjdGl2ZUVsZW1lbnQgJiYgcmVxdWVzdC5hY3Rp
dmUoKSAmJiAhcmVxdWVzdC50b3VjaE1vdmUoKSkgewpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNv
cmUvZG9tL0RvY3VtZW50TWFya2VyLmggYi9Tb3VyY2UvV2ViQ29yZS9kb20vRG9jdW1lbnRNYXJr
ZXIuaAppbmRleCA0Nzk0OWZlODBiZGQ5YjExZTY4ZGFlNjI1NmVhMmIzMzA2ZmJiNDYzLi5lYzUy
NDg5NDBjMTY3ZWQxYzZjYTAyYjMxZGM0ZTQ3Mzc5YTU1NDE5IDEwMDY0NAotLS0gYS9Tb3VyY2Uv
V2ViQ29yZS9kb20vRG9jdW1lbnRNYXJrZXIuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9kb20vRG9j
dW1lbnRNYXJrZXIuaApAQCAtMTMxLDcgKzEzMSw3IEBAIHB1YmxpYzoKICAgICBEb2N1bWVudE1h
cmtlckRldGFpbHMqIGRldGFpbHMoKSBjb25zdDsKIAogICAgIHZvaWQgc2V0QWN0aXZlTWF0Y2go
Ym9vbCk7Ci0gICAgdm9pZCBjbGVhckRldGFpbHMoKSB7IG1fZGV0YWlscy5jbGVhcigpOyB9Cisg
ICAgdm9pZCBjbGVhckRldGFpbHMoKSB7IG1fZGV0YWlscyA9IG51bGxwdHI7IH0KIAogICAgIC8v
IE9mZnNldCBtb2RpZmljYXRpb25zIGFyZSBkb25lIGJ5IERvY3VtZW50TWFya2VyQ29udHJvbGxl
ci4KICAgICAvLyBPdGhlciBjbGFzc2VzIHNob3VsZCBub3QgY2FsbCBmb2xsb3dpbmcgc2V0dGVy
cy4KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2RvbS9Eb2N1bWVudFN0eWxlU2hlZXRDb2xs
ZWN0aW9uLmNwcCBiL1NvdXJjZS9XZWJDb3JlL2RvbS9Eb2N1bWVudFN0eWxlU2hlZXRDb2xsZWN0
aW9uLmNwcAppbmRleCAxY2JiZTg1MTU1MjVlMGExNTMyYzIyODM2ZjBlN2IzYWEzYmVkZWJhLi4z
MjJhYzg0YmQzMWI2ZWMyZDAzMmQxOWJmYzJhY2JmMzkzM2ZiNGE0IDEwMDY0NAotLS0gYS9Tb3Vy
Y2UvV2ViQ29yZS9kb20vRG9jdW1lbnRTdHlsZVNoZWV0Q29sbGVjdGlvbi5jcHAKKysrIGIvU291
cmNlL1dlYkNvcmUvZG9tL0RvY3VtZW50U3R5bGVTaGVldENvbGxlY3Rpb24uY3BwCkBAIC0xMDQs
NyArMTA0LDcgQEAgQ1NTU3R5bGVTaGVldCogRG9jdW1lbnRTdHlsZVNoZWV0Q29sbGVjdGlvbjo6
cGFnZVVzZXJTaGVldCgpCiB2b2lkIERvY3VtZW50U3R5bGVTaGVldENvbGxlY3Rpb246OmNsZWFy
UGFnZVVzZXJTaGVldCgpCiB7CiAgICAgaWYgKG1fcGFnZVVzZXJTaGVldCkgewotICAgICAgICBt
X3BhZ2VVc2VyU2hlZXQgPSAwOworICAgICAgICBtX3BhZ2VVc2VyU2hlZXQgPSBudWxscHRyOwog
ICAgICAgICBtX2RvY3VtZW50LnN0eWxlUmVzb2x2ZXJDaGFuZ2VkKERlZmVyUmVjYWxjU3R5bGUp
OwogICAgIH0KIH0KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2RvbS9FbGVtZW50LmNwcCBi
L1NvdXJjZS9XZWJDb3JlL2RvbS9FbGVtZW50LmNwcAppbmRleCBiZTg4NGViNTcxYTQwMmZiYjg3
YjFlZGFmYzJkNWI0MzAyNGY4Mzk4Li42YzhjOWUxNzBiYzllYjYxYmM1N2IwMjAwMDk5OTBmYjMy
OGIzMjk0IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9kb20vRWxlbWVudC5jcHAKKysrIGIv
U291cmNlL1dlYkNvcmUvZG9tL0VsZW1lbnQuY3BwCkBAIC0zMjA3LDcgKzMyMDcsNyBAQCB2b2lk
IEVsZW1lbnQ6OmNsb25lQXR0cmlidXRlc0Zyb21FbGVtZW50KGNvbnN0IEVsZW1lbnQmIG90aGVy
KQogCiAgICAgb3RoZXIuc3luY2hyb25pemVBbGxBdHRyaWJ1dGVzKCk7CiAgICAgaWYgKCFvdGhl
ci5tX2VsZW1lbnREYXRhKSB7Ci0gICAgICAgIG1fZWxlbWVudERhdGEuY2xlYXIoKTsKKyAgICAg
ICAgbV9lbGVtZW50RGF0YSA9IG51bGxwdHI7CiAgICAgICAgIHJldHVybjsKICAgICB9CiAKZGlm
ZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2RvbS9NdXRhdGlvbk9ic2VydmVyUmVnaXN0cmF0aW9u
LmNwcCBiL1NvdXJjZS9XZWJDb3JlL2RvbS9NdXRhdGlvbk9ic2VydmVyUmVnaXN0cmF0aW9uLmNw
cAppbmRleCA0NGU4ZjcwZmNiNmM0ODRjYmIwMmE3OTgzN2EzMzI1YzIxNzNmZjE0Li43MGEzMWRl
Y2FjMzVmMWRlYWJmODhkMGU4YTg4NWZiN2ZhODM0MTNkIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2Vi
Q29yZS9kb20vTXV0YXRpb25PYnNlcnZlclJlZ2lzdHJhdGlvbi5jcHAKKysrIGIvU291cmNlL1dl
YkNvcmUvZG9tL011dGF0aW9uT2JzZXJ2ZXJSZWdpc3RyYXRpb24uY3BwCkBAIC04OSw3ICs4OSw3
IEBAIHZvaWQgTXV0YXRpb25PYnNlcnZlclJlZ2lzdHJhdGlvbjo6Y2xlYXJUcmFuc2llbnRSZWdp
c3RyYXRpb25zKCkKICAgICBtX3RyYW5zaWVudFJlZ2lzdHJhdGlvbk5vZGVzID0gbnVsbHB0cjsK
IAogICAgIEFTU0VSVChtX3JlZ2lzdHJhdGlvbk5vZGVLZWVwQWxpdmUpOwotICAgIG1fcmVnaXN0
cmF0aW9uTm9kZUtlZXBBbGl2ZSA9IDA7IC8vIEJhbGFuY2VkIGluIG9ic2VydmVTdWJ0cmVlTm9k
ZVdpbGxEZXRhY2guCisgICAgbV9yZWdpc3RyYXRpb25Ob2RlS2VlcEFsaXZlID0gbnVsbHB0cjsg
Ly8gQmFsYW5jZWQgaW4gb2JzZXJ2ZVN1YnRyZWVOb2RlV2lsbERldGFjaC4KIH0KIAogdm9pZCBN
dXRhdGlvbk9ic2VydmVyUmVnaXN0cmF0aW9uOjp1bnJlZ2lzdGVyQW5kRGVsZXRlKE11dGF0aW9u
T2JzZXJ2ZXJSZWdpc3RyYXRpb24qIHJlZ2lzdHJ5KQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNv
cmUvZG9tL05vZGVJdGVyYXRvci5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9kb20vTm9kZUl0ZXJhdG9y
LmNwcAppbmRleCA1OGIyYjlmNjRjNzZlN2VjNjhhNzRmY2U2ZWVjNDU3NzY4YzVmZmEzLi42MWFl
MjhmNmY4ZTk4OTdjNGVhNjAxYjM1M2NkYTA5MWY0MjE0Y2UyIDEwMDY0NAotLS0gYS9Tb3VyY2Uv
V2ViQ29yZS9kb20vTm9kZUl0ZXJhdG9yLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9kb20vTm9k
ZUl0ZXJhdG9yLmNwcApAQCAtNDUsNyArNDUsNyBAQCBOb2RlSXRlcmF0b3I6Ok5vZGVQb2ludGVy
OjpOb2RlUG9pbnRlcihQYXNzUmVmUHRyPE5vZGU+IG4sIGJvb2wgYikKIAogdm9pZCBOb2RlSXRl
cmF0b3I6Ok5vZGVQb2ludGVyOjpjbGVhcigpCiB7Ci0gICAgbm9kZS5jbGVhcigpOworICAgIG5v
ZGUgPSBudWxscHRyOwogfQogCiBib29sIE5vZGVJdGVyYXRvcjo6Tm9kZVBvaW50ZXI6Om1vdmVU
b05leHQoTm9kZSogcm9vdCkKQEAgLTE1MSw3ICsxNTEsNyBAQCB2b2lkIE5vZGVJdGVyYXRvcjo6
ZGV0YWNoKCkKIHsKICAgICByb290KCktPmRvY3VtZW50KCkuZGV0YWNoTm9kZUl0ZXJhdG9yKHRo
aXMpOwogICAgIG1fZGV0YWNoZWQgPSB0cnVlOwotICAgIG1fcmVmZXJlbmNlTm9kZS5ub2RlLmNs
ZWFyKCk7CisgICAgbV9yZWZlcmVuY2VOb2RlLm5vZGUgPSBudWxscHRyOwogfQogCiB2b2lkIE5v
ZGVJdGVyYXRvcjo6bm9kZVdpbGxCZVJlbW92ZWQoTm9kZSYgcmVtb3ZlZE5vZGUpCmRpZmYgLS1n
aXQgYS9Tb3VyY2UvV2ViQ29yZS9kb20vUG9zaXRpb24uaCBiL1NvdXJjZS9XZWJDb3JlL2RvbS9Q
b3NpdGlvbi5oCmluZGV4IDBmMzE2ZGE4NTg4YTUxOTI5ZmQ0NzUxYzlmY2IzM2I5OTE2NzMzZWIu
LjYwM2U4OGYzZWMxYjFhYzNhYTkyMjkwNWMwMTM4MTIzODQyMGRkZWIgMTAwNjQ0Ci0tLSBhL1Nv
dXJjZS9XZWJDb3JlL2RvbS9Qb3NpdGlvbi5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL2RvbS9Qb3Np
dGlvbi5oCkBAIC05Miw3ICs5Miw3IEBAIHB1YmxpYzoKIAogICAgIEFuY2hvclR5cGUgYW5jaG9y
VHlwZSgpIGNvbnN0IHsgcmV0dXJuIHN0YXRpY19jYXN0PEFuY2hvclR5cGU+KG1fYW5jaG9yVHlw
ZSk7IH0KIAotICAgIHZvaWQgY2xlYXIoKSB7IG1fYW5jaG9yTm9kZS5jbGVhcigpOyBtX29mZnNl
dCA9IDA7IG1fYW5jaG9yVHlwZSA9IFBvc2l0aW9uSXNPZmZzZXRJbkFuY2hvcjsgbV9pc0xlZ2Fj
eUVkaXRpbmdQb3NpdGlvbiA9IGZhbHNlOyB9CisgICAgdm9pZCBjbGVhcigpIHsgbV9hbmNob3JO
b2RlID0gbnVsbHB0cjsgbV9vZmZzZXQgPSAwOyBtX2FuY2hvclR5cGUgPSBQb3NpdGlvbklzT2Zm
c2V0SW5BbmNob3I7IG1faXNMZWdhY3lFZGl0aW5nUG9zaXRpb24gPSBmYWxzZTsgfQogCiAgICAg
Ly8gVGhlc2UgYXJlIGFsd2F5cyBET00gY29tcGxpYW50IHZhbHVlcy4gIEVkaXRpbmcgcG9zaXRp
b25zIGxpa2UgW2ltZywgMF0gKGFrYSBbaW1nLCBiZWZvcmVdKQogICAgIC8vIHdpbGwgcmV0dXJu
IGltZy0+cGFyZW50Tm9kZSgpIGFuZCBpbWctPmNvbXB1dGVOb2RlSW5kZXgoKSBmcm9tIHRoZXNl
IGZ1bmN0aW9ucy4KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2RvbS9Qcm9jZXNzaW5nSW5z
dHJ1Y3Rpb24uY3BwIGIvU291cmNlL1dlYkNvcmUvZG9tL1Byb2Nlc3NpbmdJbnN0cnVjdGlvbi5j
cHAKaW5kZXggM2VjYjY0NjM5Y2ZhYmE2MGE1ZDNiNjZlMmZhZGU1MGRkY2I3ZjFiMC4uYjM0M2Nh
M2EwMWFlOGVlZmRiNTk3ZTVkNGUyMmUyN2I5OTNmZWY5MCAxMDA2NDQKLS0tIGEvU291cmNlL1dl
YkNvcmUvZG9tL1Byb2Nlc3NpbmdJbnN0cnVjdGlvbi5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUv
ZG9tL1Byb2Nlc3NpbmdJbnN0cnVjdGlvbi5jcHAKQEAgLTI4MSw3ICsyODEsNyBAQCB2b2lkIFBy
b2Nlc3NpbmdJbnN0cnVjdGlvbjo6cmVtb3ZlZEZyb20oQ29udGFpbmVyTm9kZSYgaW5zZXJ0aW9u
UG9pbnQpCiAgICAgaWYgKG1fc2hlZXQpIHsKICAgICAgICAgQVNTRVJUKG1fc2hlZXQtPm93bmVy
Tm9kZSgpID09IHRoaXMpOwogICAgICAgICBtX3NoZWV0LT5jbGVhck93bmVyTm9kZSgpOwotICAg
ICAgICBtX3NoZWV0ID0gMDsKKyAgICAgICAgbV9zaGVldCA9IG51bGxwdHI7CiAgICAgfQogCiAg
ICAgLy8gSWYgd2UncmUgaW4gZG9jdW1lbnQgdGVhcmRvd24sIHRoZW4gd2UgZG9uJ3QgbmVlZCB0
byBkbyBhbnkgbm90aWZpY2F0aW9uIG9mIG91ciBzaGVldCdzIHJlbW92YWwuCmRpZmYgLS1naXQg
YS9Tb3VyY2UvV2ViQ29yZS9kb20vUmFuZ2VCb3VuZGFyeVBvaW50LmggYi9Tb3VyY2UvV2ViQ29y
ZS9kb20vUmFuZ2VCb3VuZGFyeVBvaW50LmgKaW5kZXggYjA0ZGMwOGI1NWJmMDIxY2NkZGZiMjZh
ZWU1ZDM4NGIxMTI2YWUwMy4uNWIxNGEzZGZjMWUyZTI5ZjE0NzliZjQ2YzljZThiYWQ3ZGJlZWIx
OSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvZG9tL1JhbmdlQm91bmRhcnlQb2ludC5oCisr
KyBiL1NvdXJjZS9XZWJDb3JlL2RvbS9SYW5nZUJvdW5kYXJ5UG9pbnQuaApAQCAtMTEyLDkgKzEx
Miw5IEBAIGlubGluZSBpbnQgUmFuZ2VCb3VuZGFyeVBvaW50OjpvZmZzZXQoKSBjb25zdAogCiBp
bmxpbmUgdm9pZCBSYW5nZUJvdW5kYXJ5UG9pbnQ6OmNsZWFyKCkKIHsKLSAgICBtX2NvbnRhaW5l
ck5vZGUuY2xlYXIoKTsKKyAgICBtX2NvbnRhaW5lck5vZGUgPSBudWxscHRyOwogICAgIG1fb2Zm
c2V0SW5Db250YWluZXIgPSAwOwotICAgIG1fY2hpbGRCZWZvcmVCb3VuZGFyeSA9IDA7CisgICAg
bV9jaGlsZEJlZm9yZUJvdW5kYXJ5ID0gbnVsbHB0cjsKIH0KIAogaW5saW5lIHZvaWQgUmFuZ2VC
b3VuZGFyeVBvaW50OjpzZXQoUGFzc1JlZlB0cjxOb2RlPiBjb250YWluZXIsIGludCBvZmZzZXQs
IE5vZGUqIGNoaWxkQmVmb3JlKQpAQCAtMTQ5LDcgKzE0OSw3IEBAIGlubGluZSB2b2lkIFJhbmdl
Qm91bmRhcnlQb2ludDo6c2V0VG9TdGFydE9mTm9kZShQYXNzUmVmUHRyPE5vZGU+IGNvbnRhaW5l
cikKICAgICBBU1NFUlQoY29udGFpbmVyKTsKICAgICBtX2NvbnRhaW5lck5vZGUgPSBjb250YWlu
ZXI7CiAgICAgbV9vZmZzZXRJbkNvbnRhaW5lciA9IDA7Ci0gICAgbV9jaGlsZEJlZm9yZUJvdW5k
YXJ5ID0gMDsKKyAgICBtX2NoaWxkQmVmb3JlQm91bmRhcnkgPSBudWxscHRyOwogfQogCiBpbmxp
bmUgdm9pZCBSYW5nZUJvdW5kYXJ5UG9pbnQ6OnNldFRvRW5kT2ZOb2RlKFBhc3NSZWZQdHI8Tm9k
ZT4gY29udGFpbmVyKQpAQCAtMTU4LDcgKzE1OCw3IEBAIGlubGluZSB2b2lkIFJhbmdlQm91bmRh
cnlQb2ludDo6c2V0VG9FbmRPZk5vZGUoUGFzc1JlZlB0cjxOb2RlPiBjb250YWluZXIpCiAgICAg
bV9jb250YWluZXJOb2RlID0gY29udGFpbmVyOwogICAgIGlmIChtX2NvbnRhaW5lck5vZGUtPm9m
ZnNldEluQ2hhcmFjdGVycygpKSB7CiAgICAgICAgIG1fb2Zmc2V0SW5Db250YWluZXIgPSBtX2Nv
bnRhaW5lck5vZGUtPm1heENoYXJhY3Rlck9mZnNldCgpOwotICAgICAgICBtX2NoaWxkQmVmb3Jl
Qm91bmRhcnkgPSAwOworICAgICAgICBtX2NoaWxkQmVmb3JlQm91bmRhcnkgPSBudWxscHRyOwog
ICAgIH0gZWxzZSB7CiAgICAgICAgIG1fY2hpbGRCZWZvcmVCb3VuZGFyeSA9IG1fY29udGFpbmVy
Tm9kZS0+bGFzdENoaWxkKCk7CiAgICAgICAgIG1fb2Zmc2V0SW5Db250YWluZXIgPSBtX2NoaWxk
QmVmb3JlQm91bmRhcnkgPyBpbnZhbGlkT2Zmc2V0IDogMDsKZGlmZiAtLWdpdCBhL1NvdXJjZS9X
ZWJDb3JlL2RvbS9TcGFjZVNwbGl0U3RyaW5nLmggYi9Tb3VyY2UvV2ViQ29yZS9kb20vU3BhY2VT
cGxpdFN0cmluZy5oCmluZGV4IGVmNTY4MDFhNzcxMWRmNWEyY2I1NTgxM2JlNTY3M2YxOTAzMjhl
NzMuLmY4NWI5NjQyMTJkMWRhOGU4MDJkMTY2MDg5NDZjMzc3YWUwYjc4NWQgMTAwNjQ0Ci0tLSBh
L1NvdXJjZS9XZWJDb3JlL2RvbS9TcGFjZVNwbGl0U3RyaW5nLmgKKysrIGIvU291cmNlL1dlYkNv
cmUvZG9tL1NwYWNlU3BsaXRTdHJpbmcuaApAQCAtMTA1LDcgKzEwNSw3IEBAIHB1YmxpYzoKICAg
ICBib29sIG9wZXJhdG9yIT0oY29uc3QgU3BhY2VTcGxpdFN0cmluZyYgb3RoZXIpIGNvbnN0IHsg
cmV0dXJuIG1fZGF0YSAhPSBvdGhlci5tX2RhdGE7IH0KIAogICAgIHZvaWQgc2V0KGNvbnN0IEF0
b21pY1N0cmluZyYsIGJvb2wgc2hvdWxkRm9sZENhc2UpOwotICAgIHZvaWQgY2xlYXIoKSB7IG1f
ZGF0YS5jbGVhcigpOyB9CisgICAgdm9pZCBjbGVhcigpIHsgbV9kYXRhID0gbnVsbHB0cjsgfQog
CiAgICAgYm9vbCBjb250YWlucyhjb25zdCBBdG9taWNTdHJpbmcmIHN0cmluZykgY29uc3QgeyBy
ZXR1cm4gbV9kYXRhICYmIG1fZGF0YS0+Y29udGFpbnMoc3RyaW5nKTsgfQogICAgIGJvb2wgY29u
dGFpbnNBbGwoY29uc3QgU3BhY2VTcGxpdFN0cmluZyYgbmFtZXMpIGNvbnN0IHsgcmV0dXJuICFu
YW1lcy5tX2RhdGEgfHwgKG1fZGF0YSAmJiBtX2RhdGEtPmNvbnRhaW5zQWxsKCpuYW1lcy5tX2Rh
dGEpKTsgfQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvZG9tL1N0eWxlZEVsZW1lbnQuY3Bw
IGIvU291cmNlL1dlYkNvcmUvZG9tL1N0eWxlZEVsZW1lbnQuY3BwCmluZGV4IDViMjY5NjZiNWMz
ODdiOWM4ODdmODAwNmUwZDI1MGE1OGY2OTNkMDkuLjBlYzBkN2Y1YTBlZWE5ZGNiMWU4ZTY1ZTU2
OWQ2MjBkYzJkMmNjMDQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2RvbS9TdHlsZWRFbGVt
ZW50LmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9kb20vU3R5bGVkRWxlbWVudC5jcHAKQEAgLTE4
NSw3ICsxODUsNyBAQCBpbmxpbmUgdm9pZCBTdHlsZWRFbGVtZW50OjpzZXRJbmxpbmVTdHlsZUZy
b21TdHJpbmcoY29uc3QgQXRvbWljU3RyaW5nJiBuZXdTdHlsZQogICAgIC8vIFdlIHJlY29uc3Ry
dWN0IHRoZSBwcm9wZXJ0eSBzZXQgaW5zdGVhZCBvZiBtdXRhdGluZyBpZiB0aGVyZSBpcyBubyBD
U1NPTSB3cmFwcGVyLgogICAgIC8vIFRoaXMgbWFrZXMgd3JhcHBlcmxlc3MgcHJvcGVydHkgc2V0
cyBpbW11dGFibGUgYW5kIHNvIGNhY2hlYWJsZS4KICAgICBpZiAoaW5saW5lU3R5bGUgJiYgIWlz
PE11dGFibGVTdHlsZVByb3BlcnRpZXM+KCppbmxpbmVTdHlsZSkpCi0gICAgICAgIGlubGluZVN0
eWxlLmNsZWFyKCk7CisgICAgICAgIGlubGluZVN0eWxlID0gbnVsbHB0cjsKIAogICAgIGlmICgh
aW5saW5lU3R5bGUpCiAgICAgICAgIGlubGluZVN0eWxlID0gQ1NTUGFyc2VyOjpwYXJzZUlubGlu
ZVN0eWxlRGVjbGFyYXRpb24obmV3U3R5bGVTdHJpbmcsIHRoaXMpOwpAQCAtMjAyLDcgKzIwMiw3
IEBAIHZvaWQgU3R5bGVkRWxlbWVudDo6c3R5bGVBdHRyaWJ1dGVDaGFuZ2VkKGNvbnN0IEF0b21p
Y1N0cmluZyYgbmV3U3R5bGVTdHJpbmcsIEF0CiAgICAgaWYgKG5ld1N0eWxlU3RyaW5nLmlzTnVs
bCgpKSB7CiAgICAgICAgIGlmIChQcm9wZXJ0eVNldENTU1N0eWxlRGVjbGFyYXRpb24qIGNzc29t
V3JhcHBlciA9IGlubGluZVN0eWxlQ1NTT01XcmFwcGVyKCkpCiAgICAgICAgICAgICBjc3NvbVdy
YXBwZXItPmNsZWFyUGFyZW50RWxlbWVudCgpOwotICAgICAgICBlbnN1cmVVbmlxdWVFbGVtZW50
RGF0YSgpLm1faW5saW5lU3R5bGUuY2xlYXIoKTsKKyAgICAgICAgZW5zdXJlVW5pcXVlRWxlbWVu
dERhdGEoKS5tX2lubGluZVN0eWxlID0gbnVsbHB0cjsKICAgICB9IGVsc2UgaWYgKHJlYXNvbiA9
PSBNb2RpZmllZEJ5Q2xvbmluZyB8fCBkb2N1bWVudCgpLmNvbnRlbnRTZWN1cml0eVBvbGljeSgp
LT5hbGxvd0lubGluZVN0eWxlKGRvY3VtZW50KCkudXJsKCksIHN0YXJ0TGluZU51bWJlcikpCiAg
ICAgICAgIHNldElubGluZVN0eWxlRnJvbVN0cmluZyhuZXdTdHlsZVN0cmluZyk7CiAKZGlmZiAt
LWdpdCBhL1NvdXJjZS9XZWJDb3JlL2RvbS9kZWZhdWx0L1BsYXRmb3JtTWVzc2FnZVBvcnRDaGFu
bmVsLmNwcCBiL1NvdXJjZS9XZWJDb3JlL2RvbS9kZWZhdWx0L1BsYXRmb3JtTWVzc2FnZVBvcnRD
aGFubmVsLmNwcAppbmRleCBjNjg2MTFmYzhmYzdiZWNmYWRmOGQ4NDgzYjE0ZmY5MDhjZjQ2MWZh
Li5jNDE3NDg2Mzc0OTE3MzY3MzNmN2MyOTFhNDZlNWE5ZDE3YjdkMjc2IDEwMDY0NAotLS0gYS9T
b3VyY2UvV2ViQ29yZS9kb20vZGVmYXVsdC9QbGF0Zm9ybU1lc3NhZ2VQb3J0Q2hhbm5lbC5jcHAK
KysrIGIvU291cmNlL1dlYkNvcmUvZG9tL2RlZmF1bHQvUGxhdGZvcm1NZXNzYWdlUG9ydENoYW5u
ZWwuY3BwCkBAIC0xODMsOSArMTgzLDkgQEAgdm9pZCBQbGF0Zm9ybU1lc3NhZ2VQb3J0Q2hhbm5l
bDo6Y2xvc2VJbnRlcm5hbCgpCiB7CiAgICAgTXV0ZXhMb2NrZXIgbG9jayhtX211dGV4KTsKICAg
ICAvLyBEaXNlbnRhbmdsZSBvdXJzZWx2ZXMgZnJvbSB0aGUgb3RoZXIgZW5kLiBXZSBzdGlsbCBt
YWludGFpbiBhIHJlZmVyZW5jZSB0byBvdXIgaW5jb21pbmcgcXVldWUsIHNpbmNlIHByZXZpb3Vz
bHktZXhpc3RpbmcgbWVzc2FnZXMgc2hvdWxkIHN0aWxsIGJlIGRlbGl2ZXJlZC4KLSAgICBtX3Jl
bW90ZVBvcnQgPSAwOwotICAgIG1fZW50YW5nbGVkQ2hhbm5lbCA9IDA7Ci0gICAgbV9vdXRnb2lu
Z1F1ZXVlID0gMDsKKyAgICBtX3JlbW90ZVBvcnQgPSBudWxscHRyOworICAgIG1fZW50YW5nbGVk
Q2hhbm5lbCA9IG51bGxwdHI7CisgICAgbV9vdXRnb2luZ1F1ZXVlID0gbnVsbHB0cjsKIH0KIAog
fSAvLyBuYW1lc3BhY2UgV2ViQ29yZQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvZWRpdGlu
Zy9BbHRlcm5hdGl2ZVRleHRDb250cm9sbGVyLmNwcCBiL1NvdXJjZS9XZWJDb3JlL2VkaXRpbmcv
QWx0ZXJuYXRpdmVUZXh0Q29udHJvbGxlci5jcHAKaW5kZXggZjViYzk0ODkxY2FmN2U3MDk3YTAz
ZTI3MjllNzI4ZjI2MzZmMDhiZC4uMjc1ZTQzMGViNzNjMTRjYTJjZmYzM2M2NTc3NjFlNDYxOWU1
ZWFlOSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvZWRpdGluZy9BbHRlcm5hdGl2ZVRleHRD
b250cm9sbGVyLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9lZGl0aW5nL0FsdGVybmF0aXZlVGV4
dENvbnRyb2xsZXIuY3BwCkBAIC0xNDcsNyArMTQ3LDcgQEAgdm9pZCBBbHRlcm5hdGl2ZVRleHRD
b250cm9sbGVyOjpzdGFydEFsdGVybmF0aXZlVGV4dFVJVGltZXIoQWx0ZXJuYXRpdmVUZXh0VHlw
ZQogCiAgICAgLy8gSWYgdHlwZSBpcyBQYW5lbFR5cGVSZXZlcnNpb24sIHRoZW4gdGhlIG5ldyBy
YW5nZSBoYXMgYmVlbiBzZXQuIFNvIHdlIHNob3VsZG4ndCBjbGVhciBpdC4KICAgICBpZiAodHlw
ZSA9PSBBbHRlcm5hdGl2ZVRleHRUeXBlQ29ycmVjdGlvbikKLSAgICAgICAgbV9hbHRlcm5hdGl2
ZVRleHRJbmZvLnJhbmdlV2l0aEFsdGVybmF0aXZlLmNsZWFyKCk7CisgICAgICAgIG1fYWx0ZXJu
YXRpdmVUZXh0SW5mby5yYW5nZVdpdGhBbHRlcm5hdGl2ZSA9IG51bGxwdHI7CiAgICAgbV9hbHRl
cm5hdGl2ZVRleHRJbmZvLnR5cGUgPSB0eXBlOwogICAgIG1fdGltZXIuc3RhcnRPbmVTaG90KGNv
cnJlY3Rpb25QYW5lbFRpbWVySW50ZXJ2YWwpOwogfQpAQCAtMTU1LDcgKzE1NSw3IEBAIHZvaWQg
QWx0ZXJuYXRpdmVUZXh0Q29udHJvbGxlcjo6c3RhcnRBbHRlcm5hdGl2ZVRleHRVSVRpbWVyKEFs
dGVybmF0aXZlVGV4dFR5cGUKIHZvaWQgQWx0ZXJuYXRpdmVUZXh0Q29udHJvbGxlcjo6c3RvcEFs
dGVybmF0aXZlVGV4dFVJVGltZXIoKQogewogICAgIG1fdGltZXIuc3RvcCgpOwotICAgIG1fYWx0
ZXJuYXRpdmVUZXh0SW5mby5yYW5nZVdpdGhBbHRlcm5hdGl2ZS5jbGVhcigpOworICAgIG1fYWx0
ZXJuYXRpdmVUZXh0SW5mby5yYW5nZVdpdGhBbHRlcm5hdGl2ZSA9IG51bGxwdHI7CiB9CiAKIHZv
aWQgQWx0ZXJuYXRpdmVUZXh0Q29udHJvbGxlcjo6c3RvcFBlbmRpbmdDb3JyZWN0aW9uKGNvbnN0
IFZpc2libGVTZWxlY3Rpb24mIG9sZFNlbGVjdGlvbikKQEAgLTE4Myw3ICsxODMsNyBAQCB2b2lk
IEFsdGVybmF0aXZlVGV4dENvbnRyb2xsZXI6OmFwcGx5UGVuZGluZ0NvcnJlY3Rpb24oY29uc3Qg
VmlzaWJsZVNlbGVjdGlvbiYgcwogICAgIGlmIChkb0FwcGx5Q29ycmVjdGlvbikKICAgICAgICAg
aGFuZGxlQWx0ZXJuYXRpdmVUZXh0VUlSZXN1bHQoZGlzbWlzc1Nvb24oUmVhc29uRm9yRGlzbWlz
c2luZ0FsdGVybmF0aXZlVGV4dEFjY2VwdGVkKSk7IAogICAgIGVsc2UKLSAgICAgICAgbV9hbHRl
cm5hdGl2ZVRleHRJbmZvLnJhbmdlV2l0aEFsdGVybmF0aXZlLmNsZWFyKCk7CisgICAgICAgIG1f
YWx0ZXJuYXRpdmVUZXh0SW5mby5yYW5nZVdpdGhBbHRlcm5hdGl2ZSA9IG51bGxwdHI7CiB9CiAK
IGJvb2wgQWx0ZXJuYXRpdmVUZXh0Q29udHJvbGxlcjo6aGFzUGVuZGluZ0NvcnJlY3Rpb24oKSBj
b25zdApAQCAtMzU5LDcgKzM1OSw3IEBAIHZvaWQgQWx0ZXJuYXRpdmVUZXh0Q29udHJvbGxlcjo6
dGltZXJGaXJlZCgpCiAgICAgICAgIFZlY3RvcjxTdHJpbmc+IHN1Z2dlc3Rpb25zOwogICAgICAg
ICB0ZXh0Q2hlY2tlcigpLT5nZXRHdWVzc2VzRm9yV29yZChtX2FsdGVybmF0aXZlVGV4dEluZm8u
b3JpZ2luYWxUZXh0LCBwYXJhZ3JhcGhUZXh0LCBzdWdnZXN0aW9ucyk7CiAgICAgICAgIGlmIChz
dWdnZXN0aW9ucy5pc0VtcHR5KCkpIHsKLSAgICAgICAgICAgIG1fYWx0ZXJuYXRpdmVUZXh0SW5m
by5yYW5nZVdpdGhBbHRlcm5hdGl2ZS5jbGVhcigpOworICAgICAgICAgICAgbV9hbHRlcm5hdGl2
ZVRleHRJbmZvLnJhbmdlV2l0aEFsdGVybmF0aXZlID0gbnVsbHB0cjsKICAgICAgICAgICAgIGJy
ZWFrOwogICAgICAgICB9CiAgICAgICAgIFN0cmluZyB0b3BTdWdnZXN0aW9uID0gc3VnZ2VzdGlv
bnMuZmlyc3QoKTsKQEAgLTQyMiw3ICs0MjIsNyBAQCB2b2lkIEFsdGVybmF0aXZlVGV4dENvbnRy
b2xsZXI6OmhhbmRsZUFsdGVybmF0aXZlVGV4dFVJUmVzdWx0KGNvbnN0IFN0cmluZyYgcmVzdQog
ICAgICAgICBicmVhazsKICAgICB9CiAKLSAgICBtX2FsdGVybmF0aXZlVGV4dEluZm8ucmFuZ2VX
aXRoQWx0ZXJuYXRpdmUuY2xlYXIoKTsKKyAgICBtX2FsdGVybmF0aXZlVGV4dEluZm8ucmFuZ2VX
aXRoQWx0ZXJuYXRpdmUgPSBudWxscHRyOwogfQogCiBib29sIEFsdGVybmF0aXZlVGV4dENvbnRy
b2xsZXI6OmlzQXV0b21hdGljU3BlbGxpbmdDb3JyZWN0aW9uRW5hYmxlZCgpCmRpZmYgLS1naXQg
YS9Tb3VyY2UvV2ViQ29yZS9lZGl0aW5nL0FwcGx5QmxvY2tFbGVtZW50Q29tbWFuZC5jcHAgYi9T
b3VyY2UvV2ViQ29yZS9lZGl0aW5nL0FwcGx5QmxvY2tFbGVtZW50Q29tbWFuZC5jcHAKaW5kZXgg
NDMzZTk1MzY2NGY3MDFkMTIxMjZmYjQwM2E2N2NiZmJhN2Y0ZjA4OC4uMjFhYmU3MWNjOGVkZDUw
ZjE2MzRmMDQzMzBhOGMxMmJjYzkxNjVlZSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvZWRp
dGluZy9BcHBseUJsb2NrRWxlbWVudENvbW1hbmQuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2Vk
aXRpbmcvQXBwbHlCbG9ja0VsZW1lbnRDb21tYW5kLmNwcApAQCAtMTQzLDcgKzE0Myw3IEBAIHZv
aWQgQXBwbHlCbG9ja0VsZW1lbnRDb21tYW5kOjpmb3JtYXRTZWxlY3Rpb24oY29uc3QgVmlzaWJs
ZVBvc2l0aW9uJiBzdGFydE9mU2VsCiAgICAgICAgIC8vIERvbid0IHB1dCB0aGUgbmV4dCBwYXJh
Z3JhcGggaW4gdGhlIGJsb2NrcXVvdGUgd2UganVzdCBjcmVhdGVkIGZvciB0aGlzIHBhcmFncmFw
aCB1bmxlc3MgCiAgICAgICAgIC8vIHRoZSBuZXh0IHBhcmFncmFwaCBpcyBpbiB0aGUgc2FtZSBj
ZWxsLgogICAgICAgICBpZiAoZW5jbG9zaW5nQ2VsbCAmJiBlbmNsb3NpbmdDZWxsICE9IGVuY2xv
c2luZ05vZGVPZlR5cGUoZW5kT2ZOZXh0UGFyYWdyYXBoLmRlZXBFcXVpdmFsZW50KCksICZpc1Rh
YmxlQ2VsbCkpCi0gICAgICAgICAgICBibG9ja3F1b3RlRm9yTmV4dEluZGVudCA9IDA7CisgICAg
ICAgICAgICBibG9ja3F1b3RlRm9yTmV4dEluZGVudCA9IG51bGxwdHI7CiAKICAgICAgICAgLy8g
aW5kZW50SW50b0Jsb2NrcXVvdGUgY291bGQgbW92ZSBtb3JlIHRoYW4gb25lIHBhcmFncmFwaCBp
ZiB0aGUgcGFyYWdyYXBoCiAgICAgICAgIC8vIGlzIGluIGEgbGlzdCBpdGVtIG9yIGEgdGFibGUu
IEFzIGEgcmVzdWx0LCBlbmRBZnRlclNlbGVjdGlvbiBjb3VsZCByZWZlciB0byBhIHBvc2l0aW9u
CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9lZGl0aW5nL0RlbGV0ZVNlbGVjdGlvbkNvbW1h
bmQuY3BwIGIvU291cmNlL1dlYkNvcmUvZWRpdGluZy9EZWxldGVTZWxlY3Rpb25Db21tYW5kLmNw
cAppbmRleCBlYjNhNWYzMGEwM2YyODRlMjI2MGZmNDhmYmE5ZjFiOTk5YWQ5OTI3Li5jNjQ5MWQy
NjkyNjVlNWFiNmNlOTY1ZWFhOTUzNDFiNjU0NDdkMWFlIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2Vi
Q29yZS9lZGl0aW5nL0RlbGV0ZVNlbGVjdGlvbkNvbW1hbmQuY3BwCisrKyBiL1NvdXJjZS9XZWJD
b3JlL2VkaXRpbmcvRGVsZXRlU2VsZWN0aW9uQ29tbWFuZC5jcHAKQEAgLTMwMiw3ICszMDIsNyBA
QCB2b2lkIERlbGV0ZVNlbGVjdGlvbkNvbW1hbmQ6OnNhdmVUeXBpbmdTdHlsZVN0YXRlKCkKICAg
ICBpZiAoZW5jbG9zaW5nTm9kZU9mVHlwZShtX3NlbGVjdGlvblRvRGVsZXRlLnN0YXJ0KCksIGlz
TWFpbEJsb2NrcXVvdGUpKQogICAgICAgICBtX2RlbGV0ZUludG9CbG9ja3F1b3RlU3R5bGUgPSBF
ZGl0aW5nU3R5bGU6OmNyZWF0ZShtX3NlbGVjdGlvblRvRGVsZXRlLmVuZCgpKTsKICAgICBlbHNl
Ci0gICAgICAgIG1fZGVsZXRlSW50b0Jsb2NrcXVvdGVTdHlsZSA9IDA7CisgICAgICAgIG1fZGVs
ZXRlSW50b0Jsb2NrcXVvdGVTdHlsZSA9IG51bGxwdHI7CiB9CiAKIGJvb2wgRGVsZXRlU2VsZWN0
aW9uQ29tbWFuZDo6aGFuZGxlU3BlY2lhbENhc2VCUkRlbGV0ZSgpCkBAIC03MjgsMTEgKzcyOCwx
MSBAQCB2b2lkIERlbGV0ZVNlbGVjdGlvbkNvbW1hbmQ6OmNhbGN1bGF0ZVR5cGluZ1N0eWxlQWZ0
ZXJEZWxldGUoKQogICAgIC8vIElmIHdlIGRlbGV0ZWQgaW50byBhIGJsb2NrcXVvdGUsIGJ1dCBh
cmUgbm93IG5vIGxvbmdlciBpbiBhIGJsb2NrcXVvdGUsIHVzZSB0aGUgYWx0ZXJuYXRlIHR5cGlu
ZyBzdHlsZQogICAgIGlmIChtX2RlbGV0ZUludG9CbG9ja3F1b3RlU3R5bGUgJiYgIWVuY2xvc2lu
Z05vZGVPZlR5cGUobV9lbmRpbmdQb3NpdGlvbiwgaXNNYWlsQmxvY2txdW90ZSwgQ2FuQ3Jvc3NF
ZGl0aW5nQm91bmRhcnkpKQogICAgICAgICBtX3R5cGluZ1N0eWxlID0gbV9kZWxldGVJbnRvQmxv
Y2txdW90ZVN0eWxlOwotICAgIG1fZGVsZXRlSW50b0Jsb2NrcXVvdGVTdHlsZSA9IDA7CisgICAg
bV9kZWxldGVJbnRvQmxvY2txdW90ZVN0eWxlID0gbnVsbHB0cjsKIAogICAgIG1fdHlwaW5nU3R5
bGUtPnByZXBhcmVUb0FwcGx5QXQobV9lbmRpbmdQb3NpdGlvbik7CiAgICAgaWYgKG1fdHlwaW5n
U3R5bGUtPmlzRW1wdHkoKSkKLSAgICAgICAgbV90eXBpbmdTdHlsZSA9IDA7CisgICAgICAgIG1f
dHlwaW5nU3R5bGUgPSBudWxscHRyOwogICAgIC8vIFRoaXMgaXMgd2hlcmUgd2UndmUgZGVsZXRl
ZCBhbGwgdHJhY2VzIG9mIGEgc3R5bGUgYnV0IG5vdCBhIHdob2xlIHBhcmFncmFwaCAodGhhdCdz
IGhhbmRsZWQgYWJvdmUpLgogICAgIC8vIEluIHRoaXMgY2FzZSBpZiB3ZSBzdGFydCB0eXBpbmcs
IHRoZSBuZXcgY2hhcmFjdGVycyBzaG91bGQgaGF2ZSB0aGUgc2FtZSBzdHlsZSBhcyB0aGUganVz
dCBkZWxldGVkIG9uZXMsCiAgICAgLy8gYnV0LCBpZiB3ZSBjaGFuZ2UgdGhlIHNlbGVjdGlvbiwg
Y29tZSBiYWNrIGFuZCBzdGFydCB0eXBpbmcgdGhhdCBzdHlsZSBzaG91bGQgYmUgbG9zdC4gIEFs
c28gc2VlIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvZWRpdGluZy9FZGl0aW5nU3R5bGUu
Y3BwIGIvU291cmNlL1dlYkNvcmUvZWRpdGluZy9FZGl0aW5nU3R5bGUuY3BwCmluZGV4IDVjZjEy
Y2Q5YjczOGExZGQ3NDBkNWVjZDU1YmQ1OTcyZDllZDI2NjEuLjE3YWFiMjk1YmE2YjkyZGFlMmE3
MjQ0ZGMxNTY4ZWZmMmY1NTc0N2EgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2VkaXRpbmcv
RWRpdGluZ1N0eWxlLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9lZGl0aW5nL0VkaXRpbmdTdHls
ZS5jcHAKQEAgLTYzOCw3ICs2MzgsNyBAQCB2b2lkIEVkaXRpbmdTdHlsZTo6b3ZlcnJpZGVUeXBp
bmdTdHlsZUF0KGNvbnN0IEVkaXRpbmdTdHlsZSYgc3R5bGUsIGNvbnN0IFBvc2l0aQogCiB2b2lk
IEVkaXRpbmdTdHlsZTo6Y2xlYXIoKQogewotICAgIG1fbXV0YWJsZVN0eWxlLmNsZWFyKCk7Cisg
ICAgbV9tdXRhYmxlU3R5bGUgPSBudWxscHRyOwogICAgIG1fc2hvdWxkVXNlRml4ZWREZWZhdWx0
Rm9udFNpemUgPSBmYWxzZTsKICAgICBtX2ZvbnRTaXplRGVsdGEgPSBOb0ZvbnREZWx0YTsKICAg
ICBzZXRVbmRlcmxpbmVDaGFuZ2UoVGV4dERlY29yYXRpb25DaGFuZ2U6Ok5vbmUpOwpkaWZmIC0t
Z2l0IGEvU291cmNlL1dlYkNvcmUvZWRpdGluZy9FZGl0b3IuY3BwIGIvU291cmNlL1dlYkNvcmUv
ZWRpdGluZy9FZGl0b3IuY3BwCmluZGV4IGEzYzNjOWMzYjQzNDQyOTc1MWY3M2VmMTkyOGM0MTlj
OTVkNWE5N2MuLmU3Njg3ZWMyNDY1MDA1ZGI1NzQ2ZmU2YzRhZGY2YzE1ODY4N2IzNzQgMTAwNjQ0
Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2VkaXRpbmcvRWRpdG9yLmNwcAorKysgYi9Tb3VyY2UvV2Vi
Q29yZS9lZGl0aW5nL0VkaXRvci5jcHAKQEAgLTgyOCw3ICs4MjgsNyBAQCB2b2lkIEVkaXRvcjo6
cmVtb3ZlRm9ybWF0dGluZ0FuZFN0eWxlKCkKIAogdm9pZCBFZGl0b3I6OmNsZWFyTGFzdEVkaXRD
b21tYW5kKCkgCiB7Ci0gICAgbV9sYXN0RWRpdENvbW1hbmQuY2xlYXIoKTsKKyAgICBtX2xhc3RF
ZGl0Q29tbWFuZCA9IG51bGxwdHI7CiB9CiAjaWYgUExBVEZPUk0oSU9TKQogLy8gSWYgdGhlIHNl
bGVjdGlvbiBpcyBhZGp1c3RlZCBmcm9tIFVJS2l0IHdpdGhvdXQgY2xvc2luZyB0aGUgdHlwaW5n
LCB0aGUgdHlwaW5nIGNvbW1hbmQgbWF5CkBAIC0xMDY2LDcgKzEwNjYsNyBAQCB2b2lkIEVkaXRv
cjo6dW5hcHBsaWVkRWRpdGluZyhQYXNzUmVmUHRyPEVkaXRDb21tYW5kQ29tcG9zaXRpb24+IGNt
ZCkKIAogICAgIG1fYWx0ZXJuYXRpdmVUZXh0Q29udHJvbGxlci0+cmVzcG9uZFRvVW5hcHBsaWVk
RWRpdGluZyhjbWQuZ2V0KCkpOwogCi0gICAgbV9sYXN0RWRpdENvbW1hbmQgPSAwOworICAgIG1f
bGFzdEVkaXRDb21tYW5kID0gbnVsbHB0cjsKICAgICBpZiAoY2xpZW50KCkpCiAgICAgICAgIGNs
aWVudCgpLT5yZWdpc3RlclJlZG9TdGVwKGNtZCk7CiAgICAgcmVzcG9uZFRvQ2hhbmdlZENvbnRl
bnRzKG5ld1NlbGVjdGlvbik7CkBAIC0xMDg0LDcgKzEwODQsNyBAQCB2b2lkIEVkaXRvcjo6cmVh
cHBsaWVkRWRpdGluZyhQYXNzUmVmUHRyPEVkaXRDb21tYW5kQ29tcG9zaXRpb24+IGNtZCkKICAg
ICAKICAgICB1cGRhdGVFZGl0b3JVSU5vd0lmU2NoZWR1bGVkKCk7CiAKLSAgICBtX2xhc3RFZGl0
Q29tbWFuZCA9IDA7CisgICAgbV9sYXN0RWRpdENvbW1hbmQgPSBudWxscHRyOwogICAgIGlmIChj
bGllbnQoKSkKICAgICAgICAgY2xpZW50KCktPnJlZ2lzdGVyVW5kb1N0ZXAoY21kKTsKICAgICBy
ZXNwb25kVG9DaGFuZ2VkQ29udGVudHMobmV3U2VsZWN0aW9uKTsKQEAgLTE3MjcsNyArMTcyNyw3
IEBAIHZvaWQgRWRpdG9yOjpzZXRDb21wb3NpdGlvbihjb25zdCBTdHJpbmcmIHRleHQsIFNldENv
bXBvc2l0aW9uTW9kZSBtb2RlKQogICAgIGlmICh0ZXh0LmlzRW1wdHkoKSAmJiBtb2RlICE9IENh
bmNlbENvbXBvc2l0aW9uKQogICAgICAgICBUeXBpbmdDb21tYW5kOjpkZWxldGVTZWxlY3Rpb24o
ZG9jdW1lbnQoKSwgMCk7CiAKLSAgICBtX2NvbXBvc2l0aW9uTm9kZSA9IDA7CisgICAgbV9jb21w
b3NpdGlvbk5vZGUgPSBudWxscHRyOwogICAgIG1fY3VzdG9tQ29tcG9zaXRpb25VbmRlcmxpbmVz
LmNsZWFyKCk7CiAKICAgICBpbnNlcnRUZXh0Rm9yQ29uZmlybWVkQ29tcG9zaXRpb24odGV4dCk7
CkBAIC0xODAyLDcgKzE4MDIsNyBAQCB2b2lkIEVkaXRvcjo6c2V0Q29tcG9zaXRpb24oY29uc3Qg
U3RyaW5nJiB0ZXh0LCBjb25zdCBWZWN0b3I8Q29tcG9zaXRpb25VbmRlcmxpbgogICAgIGlmICh0
ZXh0LmlzRW1wdHkoKSkKICAgICAgICAgVHlwaW5nQ29tbWFuZDo6ZGVsZXRlU2VsZWN0aW9uKGRv
Y3VtZW50KCksIFR5cGluZ0NvbW1hbmQ6OlByZXZlbnRTcGVsbENoZWNraW5nKTsKIAotICAgIG1f
Y29tcG9zaXRpb25Ob2RlID0gMDsKKyAgICBtX2NvbXBvc2l0aW9uTm9kZSA9IG51bGxwdHI7CiAg
ICAgbV9jdXN0b21Db21wb3NpdGlvblVuZGVybGluZXMuY2xlYXIoKTsKIAogICAgIGlmICghdGV4
dC5pc0VtcHR5KCkpIHsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2VkaXRpbmcvRnJhbWVT
ZWxlY3Rpb24uY3BwIGIvU291cmNlL1dlYkNvcmUvZWRpdGluZy9GcmFtZVNlbGVjdGlvbi5jcHAK
aW5kZXggYjBlMjUzNTg3ZmQ4YWRjZGUzNGQ4YmIyMWFiM2FlZmI4NjNkNmI4Mi4uZmEwODgzNzEy
NTM3MWExMWNiODc5OThmYTRhMTU3MWRkMTg0ZmIzMyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNv
cmUvZWRpdGluZy9GcmFtZVNlbGVjdGlvbi5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvZWRpdGlu
Zy9GcmFtZVNlbGVjdGlvbi5jcHAKQEAgLTEzNTksNyArMTM1OSw3IEBAIHZvaWQgRnJhbWVTZWxl
Y3Rpb246OnByZXBhcmVGb3JEZXN0cnVjdGlvbigpCiAgICAgICAgIHZpZXctPmNsZWFyU2VsZWN0
aW9uKCk7CiAKICAgICBzZXRTZWxlY3Rpb25XaXRob3V0VXBkYXRpbmdBcHBlYXJhbmNlKFZpc2li
bGVTZWxlY3Rpb24oKSwgZGVmYXVsdFNldFNlbGVjdGlvbk9wdGlvbnMoKSwgQWxpZ25DdXJzb3JP
blNjcm9sbElmTmVlZGVkLCBDaGFyYWN0ZXJHcmFudWxhcml0eSk7Ci0gICAgbV9wcmV2aW91c0Nh
cmV0Tm9kZS5jbGVhcigpOworICAgIG1fcHJldmlvdXNDYXJldE5vZGUgPSBudWxscHRyOwogfQog
CiB2b2lkIEZyYW1lU2VsZWN0aW9uOjpzZXRTdGFydChjb25zdCBWaXNpYmxlUG9zaXRpb24gJnBv
cywgRVVzZXJUcmlnZ2VyZWQgdHJpZ2dlcikKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2Vk
aXRpbmcvRnJhbWVTZWxlY3Rpb24uaCBiL1NvdXJjZS9XZWJDb3JlL2VkaXRpbmcvRnJhbWVTZWxl
Y3Rpb24uaAppbmRleCBlZDg3OTZlZjAzMTAyOGM3YmYyOTBiZTM0ODhkOTg2OWIyM2VlOWIyLi4z
MTBhNzRhYWI5ZDJmNTFkZmE3MWJkMWFkOTY2MzQ4MzdiNjEyNWMwIDEwMDY0NAotLS0gYS9Tb3Vy
Y2UvV2ViQ29yZS9lZGl0aW5nL0ZyYW1lU2VsZWN0aW9uLmgKKysrIGIvU291cmNlL1dlYkNvcmUv
ZWRpdGluZy9GcmFtZVNlbGVjdGlvbi5oCkBAIC0zNTksNyArMzU5LDcgQEAgaW5saW5lIEVkaXRp
bmdTdHlsZSogRnJhbWVTZWxlY3Rpb246OnR5cGluZ1N0eWxlKCkgY29uc3QKIAogaW5saW5lIHZv
aWQgRnJhbWVTZWxlY3Rpb246OmNsZWFyVHlwaW5nU3R5bGUoKQogewotICAgIG1fdHlwaW5nU3R5
bGUuY2xlYXIoKTsKKyAgICBtX3R5cGluZ1N0eWxlID0gbnVsbHB0cjsKIH0KIAogaW5saW5lIHZv
aWQgRnJhbWVTZWxlY3Rpb246OnNldFR5cGluZ1N0eWxlKFBhc3NSZWZQdHI8RWRpdGluZ1N0eWxl
PiBzdHlsZSkKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2VkaXRpbmcvSW5kZW50T3V0ZGVu
dENvbW1hbmQuY3BwIGIvU291cmNlL1dlYkNvcmUvZWRpdGluZy9JbmRlbnRPdXRkZW50Q29tbWFu
ZC5jcHAKaW5kZXggYjIzOGY4NzkzMTU2YzcyOTcyZTVhN2NkZTNhYWNkZTM5Y2UwMWIwZi4uZWM0
ZDI3MjQ0N2VjYWI3NTY1MDQxOTdkNjc1NTI3MmQ4YjhjZjYzMSAxMDA2NDQKLS0tIGEvU291cmNl
L1dlYkNvcmUvZWRpdGluZy9JbmRlbnRPdXRkZW50Q29tbWFuZC5jcHAKKysrIGIvU291cmNlL1dl
YkNvcmUvZWRpdGluZy9JbmRlbnRPdXRkZW50Q29tbWFuZC5jcHAKQEAgLTIzMiw3ICsyMzIsNyBA
QCB2b2lkIEluZGVudE91dGRlbnRDb21tYW5kOjpmb3JtYXRTZWxlY3Rpb24oY29uc3QgVmlzaWJs
ZVBvc2l0aW9uJiBzdGFydE9mU2VsZWN0aQogdm9pZCBJbmRlbnRPdXRkZW50Q29tbWFuZDo6Zm9y
bWF0UmFuZ2UoY29uc3QgUG9zaXRpb24mIHN0YXJ0LCBjb25zdCBQb3NpdGlvbiYgZW5kLCBjb25z
dCBQb3NpdGlvbiYsIFJlZlB0cjxFbGVtZW50PiYgYmxvY2txdW90ZUZvck5leHRJbmRlbnQpCiB7
CiAgICAgaWYgKHRyeUluZGVudGluZ0FzTGlzdEl0ZW0oc3RhcnQsIGVuZCkpCi0gICAgICAgIGJs
b2NrcXVvdGVGb3JOZXh0SW5kZW50ID0gMDsKKyAgICAgICAgYmxvY2txdW90ZUZvck5leHRJbmRl
bnQgPSBudWxscHRyOwogICAgIGVsc2UKICAgICAgICAgaW5kZW50SW50b0Jsb2NrcXVvdGUoc3Rh
cnQsIGVuZCwgYmxvY2txdW90ZUZvck5leHRJbmRlbnQpOwogfQpkaWZmIC0tZ2l0IGEvU291cmNl
L1dlYkNvcmUvZWRpdGluZy9SZXBsYWNlU2VsZWN0aW9uQ29tbWFuZC5jcHAgYi9Tb3VyY2UvV2Vi
Q29yZS9lZGl0aW5nL1JlcGxhY2VTZWxlY3Rpb25Db21tYW5kLmNwcAppbmRleCAyZTI1ZWVmMGVj
NjBiNTdmZWYyMzlkNDM5Y2IxZWU5MTQ2NjFjODAyLi5lZWUyMjBjODZmOThhNWU3ZDI4OTljNDMz
ZmE5MWYwMDAwNTQ2YmUzIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9lZGl0aW5nL1JlcGxh
Y2VTZWxlY3Rpb25Db21tYW5kLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9lZGl0aW5nL1JlcGxh
Y2VTZWxlY3Rpb25Db21tYW5kLmNwcApAQCAtMzU0LDggKzM1NCw4IEBAIGlubGluZSB2b2lkIFJl
cGxhY2VTZWxlY3Rpb25Db21tYW5kOjpJbnNlcnRlZE5vZGVzOjp3aWxsUmVtb3ZlTm9kZVByZXNl
cnZpbmdDaGlsCiBpbmxpbmUgdm9pZCBSZXBsYWNlU2VsZWN0aW9uQ29tbWFuZDo6SW5zZXJ0ZWRO
b2Rlczo6d2lsbFJlbW92ZU5vZGUoTm9kZSogbm9kZSkKIHsKICAgICBpZiAobV9maXJzdE5vZGVJ
bnNlcnRlZCA9PSBub2RlICYmIG1fbGFzdE5vZGVJbnNlcnRlZCA9PSBub2RlKSB7Ci0gICAgICAg
IG1fZmlyc3ROb2RlSW5zZXJ0ZWQgPSAwOwotICAgICAgICBtX2xhc3ROb2RlSW5zZXJ0ZWQgPSAw
OworICAgICAgICBtX2ZpcnN0Tm9kZUluc2VydGVkID0gbnVsbHB0cjsKKyAgICAgICAgbV9sYXN0
Tm9kZUluc2VydGVkID0gbnVsbHB0cjsKICAgICB9IGVsc2UgaWYgKG1fZmlyc3ROb2RlSW5zZXJ0
ZWQgPT0gbm9kZSkKICAgICAgICAgbV9maXJzdE5vZGVJbnNlcnRlZCA9IE5vZGVUcmF2ZXJzYWw6
Om5leHRTa2lwcGluZ0NoaWxkcmVuKCptX2ZpcnN0Tm9kZUluc2VydGVkKTsKICAgICBlbHNlIGlm
IChtX2xhc3ROb2RlSW5zZXJ0ZWQgPT0gbm9kZSkKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3Jl
L2VkaXRpbmcvU3BlbGxDaGVja2VyLmNwcCBiL1NvdXJjZS9XZWJDb3JlL2VkaXRpbmcvU3BlbGxD
aGVja2VyLmNwcAppbmRleCA4YjRkNTQxMTljMDEzYzQ4NWVmNDRlYjkzMzc1NzM5MjhjNjQ4MGRi
Li4wM2YyZTUxMDQ4MzUyMTUyMGQyOWI3N2U3NjhkZmM5M2JhYTQwNTkzIDEwMDY0NAotLS0gYS9T
b3VyY2UvV2ViQ29yZS9lZGl0aW5nL1NwZWxsQ2hlY2tlci5jcHAKKysrIGIvU291cmNlL1dlYkNv
cmUvZWRpdGluZy9TcGVsbENoZWNrZXIuY3BwCkBAIC0yMTQsNyArMjE0LDcgQEAgdm9pZCBTcGVs
bENoZWNrZXI6OmRpZENoZWNrKGludCBzZXF1ZW5jZSwgY29uc3QgVmVjdG9yPFRleHRDaGVja2lu
Z1Jlc3VsdD4mIHJlc3UKICAgICBpZiAobV9sYXN0UHJvY2Vzc2VkU2VxdWVuY2UgPCBzZXF1ZW5j
ZSkKICAgICAgICAgbV9sYXN0UHJvY2Vzc2VkU2VxdWVuY2UgPSBzZXF1ZW5jZTsKIAotICAgIG1f
cHJvY2Vzc2luZ1JlcXVlc3QuY2xlYXIoKTsKKyAgICBtX3Byb2Nlc3NpbmdSZXF1ZXN0ID0gbnVs
bHB0cjsKICAgICBpZiAoIW1fcmVxdWVzdFF1ZXVlLmlzRW1wdHkoKSkKICAgICAgICAgbV90aW1l
clRvUHJvY2Vzc1F1ZXVlZFJlcXVlc3Quc3RhcnRPbmVTaG90KDApOwogfQpkaWZmIC0tZ2l0IGEv
U291cmNlL1dlYkNvcmUvZWRpdGluZy9UZXh0Q2hlY2tpbmdIZWxwZXIuY3BwIGIvU291cmNlL1dl
YkNvcmUvZWRpdGluZy9UZXh0Q2hlY2tpbmdIZWxwZXIuY3BwCmluZGV4IDAyNGQyYWQ3YzI0ZjQx
NGU1MWZlMTY2NmNmOTA5MjcyMTNkZWYxNzAuLmU5NjEzNGQ3OGE5MmJiMDVlN2YyZWQ3NzA5Yjhj
Y2E0YzRhY2EzYjUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2VkaXRpbmcvVGV4dENoZWNr
aW5nSGVscGVyLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9lZGl0aW5nL1RleHRDaGVja2luZ0hl
bHBlci5jcHAKQEAgLTE0Niw3ICsxNDYsNyBAQCB2b2lkIFRleHRDaGVja2luZ1BhcmFncmFwaDo6
ZXhwYW5kUmFuZ2VUb05leHRFbmQoKQogdm9pZCBUZXh0Q2hlY2tpbmdQYXJhZ3JhcGg6OmludmFs
aWRhdGVQYXJhZ3JhcGhSYW5nZVZhbHVlcygpCiB7CiAgICAgbV9jaGVja2luZ1N0YXJ0ID0gbV9j
aGVja2luZ0VuZCA9IC0xOwotICAgIG1fb2Zmc2V0QXNSYW5nZSA9IDA7CisgICAgbV9vZmZzZXRB
c1JhbmdlID0gbnVsbHB0cjsKICAgICBtX3RleHQgPSBTdHJpbmcoKTsKIH0KIApkaWZmIC0tZ2l0
IGEvU291cmNlL1dlYkNvcmUvZmlsZWFwaS9GaWxlUmVhZGVyLmNwcCBiL1NvdXJjZS9XZWJDb3Jl
L2ZpbGVhcGkvRmlsZVJlYWRlci5jcHAKaW5kZXggN2Y0YzA1ZDI5MzU2NGY5ODRiZmI4YmQzMDJl
OWZhNDhiYzYzODY2NS4uNjFmYzJkZTYxYWVmOGEzZWJiMDg4NGQ3NDA3NmU2YjNiZDFkMGIxMyAx
MDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvZmlsZWFwaS9GaWxlUmVhZGVyLmNwcAorKysgYi9T
b3VyY2UvV2ViQ29yZS9maWxlYXBpL0ZpbGVSZWFkZXIuY3BwCkBAIC0xNDAsNyArMTQwLDcgQEAg
dm9pZCBGaWxlUmVhZGVyOjpyZWFkSW50ZXJuYWwoQmxvYiogYmxvYiwgRmlsZVJlYWRlckxvYWRl
cjo6UmVhZFR5cGUgdHlwZSwgRXhjZXAKICAgICBtX2Jsb2IgPSBibG9iOwogICAgIG1fcmVhZFR5
cGUgPSB0eXBlOwogICAgIG1fc3RhdGUgPSBMT0FESU5HOwotICAgIG1fZXJyb3IgPSAwOworICAg
IG1fZXJyb3IgPSBudWxscHRyOwogCiAgICAgbV9sb2FkZXIgPSBzdGQ6Om1ha2VfdW5pcXVlPEZp
bGVSZWFkZXJMb2FkZXI+KG1fcmVhZFR5cGUsIHRoaXMpOwogICAgIG1fbG9hZGVyLT5zZXRFbmNv
ZGluZyhtX2VuY29kaW5nKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2ZpbGVhcGkvRmls
ZVJlYWRlckxvYWRlci5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9maWxlYXBpL0ZpbGVSZWFkZXJMb2Fk
ZXIuY3BwCmluZGV4IDk0ZTBhNGE3Y2I0MTBiYWZlM2FlZWQzOGZiNmNlMmZjZTI5YWUyNmEuLmQ4
ZmZjMTAyMzM1ZjFiMjVkNTcyZGI2YjI3NWE3NDQ0NTI3ZWEyZDkgMTAwNjQ0Ci0tLSBhL1NvdXJj
ZS9XZWJDb3JlL2ZpbGVhcGkvRmlsZVJlYWRlckxvYWRlci5jcHAKKysrIGIvU291cmNlL1dlYkNv
cmUvZmlsZWFwaS9GaWxlUmVhZGVyTG9hZGVyLmNwcApAQCAtMTIxLDExICsxMjEsMTEgQEAgdm9p
ZCBGaWxlUmVhZGVyTG9hZGVyOjp0ZXJtaW5hdGUoKQogCiB2b2lkIEZpbGVSZWFkZXJMb2FkZXI6
OmNsZWFudXAoKQogewotICAgIG1fbG9hZGVyID0gMDsKKyAgICBtX2xvYWRlciA9IG51bGxwdHI7
CiAKICAgICAvLyBJZiB3ZSBnZXQgYW55IGVycm9yLCB3ZSBkbyBub3QgbmVlZCB0byBrZWVwIGEg
YnVmZmVyIGFyb3VuZC4KICAgICBpZiAobV9lcnJvckNvZGUpIHsKLSAgICAgICAgbV9yYXdEYXRh
ID0gMDsKKyAgICAgICAgbV9yYXdEYXRhID0gbnVsbHB0cjsKICAgICAgICAgbV9zdHJpbmdSZXN1
bHQgPSAiIjsKICAgICB9CiB9CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9oaXN0b3J5L0hp
c3RvcnlJdGVtLmNwcCBiL1NvdXJjZS9XZWJDb3JlL2hpc3RvcnkvSGlzdG9yeUl0ZW0uY3BwCmlu
ZGV4IDIyOWJhYjhlN2EyM2FjMDVjMGFkMDVlN2VkNDMxNTdkY2Q3ZThiMDMuLjgyOTU3M2Y3ZDc5
YjZhOTI3NTJiNmEwN2JiOGI1NzkwOTYzMmRiZDEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3Jl
L2hpc3RvcnkvSGlzdG9yeUl0ZW0uY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2hpc3RvcnkvSGlz
dG9yeUl0ZW0uY3BwCkBAIC0xOTYsMTAgKzE5NiwxMCBAQCB2b2lkIEhpc3RvcnlJdGVtOjpyZXNl
dCgpCiAKICAgICBtX2l0ZW1TZXF1ZW5jZU51bWJlciA9IGdlbmVyYXRlU2VxdWVuY2VOdW1iZXIo
KTsKIAotICAgIG1fc3RhdGVPYmplY3QgPSAwOworICAgIG1fc3RhdGVPYmplY3QgPSBudWxscHRy
OwogICAgIG1fZG9jdW1lbnRTZXF1ZW5jZU51bWJlciA9IGdlbmVyYXRlU2VxdWVuY2VOdW1iZXIo
KTsKIAotICAgIG1fZm9ybURhdGEgPSAwOworICAgIG1fZm9ybURhdGEgPSBudWxscHRyOwogICAg
IG1fZm9ybUNvbnRlbnRUeXBlID0gU3RyaW5nKCk7CiAKICAgICBjbGVhckNoaWxkcmVuKCk7CkBA
IC01MjQsNyArNTI0LDcgQEAgdm9pZCBIaXN0b3J5SXRlbTo6c2V0Rm9ybUluZm9Gcm9tUmVxdWVz
dChjb25zdCBSZXNvdXJjZVJlcXVlc3QmIHJlcXVlc3QpCiAgICAgICAgIG1fZm9ybURhdGEgPSBy
ZXF1ZXN0Lmh0dHBCb2R5KCk7CiAgICAgICAgIG1fZm9ybUNvbnRlbnRUeXBlID0gcmVxdWVzdC5o
dHRwQ29udGVudFR5cGUoKTsKICAgICB9IGVsc2UgewotICAgICAgICBtX2Zvcm1EYXRhID0gMDsK
KyAgICAgICAgbV9mb3JtRGF0YSA9IG51bGxwdHI7CiAgICAgICAgIG1fZm9ybUNvbnRlbnRUeXBl
ID0gU3RyaW5nKCk7CiAgICAgfQogfQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvaHRtbC9C
YXNlQ2hvb3Nlck9ubHlEYXRlQW5kVGltZUlucHV0VHlwZS5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9o
dG1sL0Jhc2VDaG9vc2VyT25seURhdGVBbmRUaW1lSW5wdXRUeXBlLmNwcAppbmRleCBlOWE2Y2Mw
MzkzYzUwNTU2OGQ1MTM0M2M2NTdhNmJkYmFkMWE5NTIzLi5kYmVhMGU5OWJkOTM0YzdkYmRlYTUy
ZDI1ZDAxYzJmODE3NWRjMWQwIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9odG1sL0Jhc2VD
aG9vc2VyT25seURhdGVBbmRUaW1lSW5wdXRUeXBlLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9o
dG1sL0Jhc2VDaG9vc2VyT25seURhdGVBbmRUaW1lSW5wdXRUeXBlLmNwcApAQCAtOTgsNyArOTgs
NyBAQCB2b2lkIEJhc2VDaG9vc2VyT25seURhdGVBbmRUaW1lSW5wdXRUeXBlOjpkaWRDaG9vc2VW
YWx1ZShjb25zdCBTdHJpbmcmIHZhbHVlKQogCiB2b2lkIEJhc2VDaG9vc2VyT25seURhdGVBbmRU
aW1lSW5wdXRUeXBlOjpkaWRFbmRDaG9vc2VyKCkKIHsKLSAgICBtX2RhdGVUaW1lQ2hvb3Nlci5j
bGVhcigpOworICAgIG1fZGF0ZVRpbWVDaG9vc2VyID0gbnVsbHB0cjsKIH0KIAogdm9pZCBCYXNl
Q2hvb3Nlck9ubHlEYXRlQW5kVGltZUlucHV0VHlwZTo6Y2xvc2VEYXRlVGltZUNob29zZXIoKQpk
aWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvaHRtbC9GVFBEaXJlY3RvcnlEb2N1bWVudC5jcHAg
Yi9Tb3VyY2UvV2ViQ29yZS9odG1sL0ZUUERpcmVjdG9yeURvY3VtZW50LmNwcAppbmRleCBlNzU1
M2Q3NDMwM2RkOTRkYjI2MTBkY2RkMmExODBmNGY4ZWIyMDllLi4wMGRlOWZmNTcxYThlMzhlMmMy
ZDhjYzVlOWMxYmM3YzIzOTdlZTY5IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9odG1sL0ZU
UERpcmVjdG9yeURvY3VtZW50LmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9odG1sL0ZUUERpcmVj
dG9yeURvY3VtZW50LmNwcApAQCAtNDExLDcgKzQxMSw3IEBAIHZvaWQgRlRQRGlyZWN0b3J5RG9j
dW1lbnRQYXJzZXI6OmZpbmlzaCgpCiAgICAgICAgIG1fY2FycnlPdmVyID0gU3RyaW5nKCk7CiAg
ICAgfQogCi0gICAgbV90YWJsZUVsZW1lbnQgPSAwOworICAgIG1fdGFibGVFbGVtZW50ID0gbnVs
bHB0cjsKICAgICBmYXN0RnJlZShtX2J1ZmZlcik7CiAKICAgICBIVE1MRG9jdW1lbnRQYXJzZXI6
OmZpbmlzaCgpOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvaHRtbC9GaWxlSW5wdXRUeXBl
LmNwcCBiL1NvdXJjZS9XZWJDb3JlL2h0bWwvRmlsZUlucHV0VHlwZS5jcHAKaW5kZXggYTNkM2I2
YjcxMWZmZTFlOGFhMWFmZGZmYzE4NmViYzBhZjUyYzE0Ny4uNDg5ZDc5OTM4ZmNmZDIyNmZjOTk0
YzI2MGU2ZTU1MzUzYzU0YWYyOSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvaHRtbC9GaWxl
SW5wdXRUeXBlLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9odG1sL0ZpbGVJbnB1dFR5cGUuY3Bw
CkBAIC0yNTAsNyArMjUwLDcgQEAgdm9pZCBGaWxlSW5wdXRUeXBlOjpzZXRWYWx1ZShjb25zdCBT
dHJpbmcmLCBib29sLCBUZXh0RmllbGRFdmVudEJlaGF2aW9yKQogewogICAgIC8vIEZJWE1FOiBT
aG91bGQgd2UgY2xlYXIgdGhlIGZpbGUgbGlzdCwgb3IgcmVwbGFjZSBpdCB3aXRoIGEgbmV3IGVt
cHR5IG9uZSBoZXJlPyBUaGlzIGlzIG9ic2VydmFibGUgZnJvbSBKYXZhU2NyaXB0IHRocm91Z2gg
Y3VzdG9tIHByb3BlcnRpZXMuCiAgICAgbV9maWxlTGlzdC0+Y2xlYXIoKTsKLSAgICBtX2ljb24u
Y2xlYXIoKTsKKyAgICBtX2ljb24gPSBudWxscHRyOwogICAgIGVsZW1lbnQoKS5zZXROZWVkc1N0
eWxlUmVjYWxjKCk7CiB9CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTENh
bnZhc0VsZW1lbnQuY3BwIGIvU291cmNlL1dlYkNvcmUvaHRtbC9IVE1MQ2FudmFzRWxlbWVudC5j
cHAKaW5kZXggODZkNDVhNDhhMGM3NjJkYWI3MjZmZDk5NmFmNzI0NmM4MTg3ODY2My4uY2U1ZDdi
MmE1ZjI3ZjRjNzZmNTEwZDZlZjU5NWUzMGFhMjU0YTMyYSAxMDA2NDQKLS0tIGEvU291cmNlL1dl
YkNvcmUvaHRtbC9IVE1MQ2FudmFzRWxlbWVudC5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvaHRt
bC9IVE1MQ2FudmFzRWxlbWVudC5jcHAKQEAgLTQyMyw3ICs0MjMsNyBAQCB2b2lkIEhUTUxDYW52
YXNFbGVtZW50OjptYWtlUHJlc2VudGF0aW9uQ29weSgpCiAKIHZvaWQgSFRNTENhbnZhc0VsZW1l
bnQ6OmNsZWFyUHJlc2VudGF0aW9uQ29weSgpCiB7Ci0gICAgbV9wcmVzZW50ZWRJbWFnZS5jbGVh
cigpOworICAgIG1fcHJlc2VudGVkSW1hZ2UgPSBudWxscHRyOwogfQogCiB2b2lkIEhUTUxDYW52
YXNFbGVtZW50OjpzZXRTdXJmYWNlU2l6ZShjb25zdCBJbnRTaXplJiBzaXplKQpAQCAtNjQ0LDcg
KzY0NCw3IEBAIHZvaWQgSFRNTENhbnZhc0VsZW1lbnQ6OmNsZWFySW1hZ2VCdWZmZXIoKSBjb25z
dAogCiB2b2lkIEhUTUxDYW52YXNFbGVtZW50OjpjbGVhckNvcGllZEltYWdlKCkKIHsKLSAgICBt
X2NvcGllZEltYWdlLmNsZWFyKCk7CisgICAgbV9jb3BpZWRJbWFnZSA9IG51bGxwdHI7CiAgICAg
bV9kaWRDbGVhckltYWdlQnVmZmVyID0gZmFsc2U7CiB9CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9X
ZWJDb3JlL2h0bWwvSFRNTExpbmtFbGVtZW50LmNwcCBiL1NvdXJjZS9XZWJDb3JlL2h0bWwvSFRN
TExpbmtFbGVtZW50LmNwcAppbmRleCBjMjNlZGZmM2EyYWFlY2YxYjBkYzBhNjVlOTg0OWQ1OTky
ZDZhYjI3Li5lNGUxMjgxMWM4NDUxMzIwMzhkODdjZjNiYzZjODQ0NjMzZjAwZWUxIDEwMDY0NAot
LS0gYS9Tb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxMaW5rRWxlbWVudC5jcHAKKysrIGIvU291cmNl
L1dlYkNvcmUvaHRtbC9IVE1MTGlua0VsZW1lbnQuY3BwCkBAIC0yNjQsNyArMjY0LDcgQEAgdm9p
ZCBIVE1MTGlua0VsZW1lbnQ6OmNsZWFyU2hlZXQoKQogICAgIEFTU0VSVChtX3NoZWV0KTsKICAg
ICBBU1NFUlQobV9zaGVldC0+b3duZXJOb2RlKCkgPT0gdGhpcyk7CiAgICAgbV9zaGVldC0+Y2xl
YXJPd25lck5vZGUoKTsKLSAgICBtX3NoZWV0ID0gMDsKKyAgICBtX3NoZWV0ID0gbnVsbHB0cjsK
IH0KIAogTm9kZTo6SW5zZXJ0aW9uTm90aWZpY2F0aW9uUmVxdWVzdCBIVE1MTGlua0VsZW1lbnQ6
Omluc2VydGVkSW50byhDb250YWluZXJOb2RlJiBpbnNlcnRpb25Qb2ludCkKZGlmZiAtLWdpdCBh
L1NvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTE1lZGlhRWxlbWVudC5jcHAgYi9Tb3VyY2UvV2ViQ29y
ZS9odG1sL0hUTUxNZWRpYUVsZW1lbnQuY3BwCmluZGV4IDRmZWFlYjk3Yzk5YzE4NTE1NGQ3ZjM5
OTM3ZjRiZTVjNmM0MzgzZTEuLmRkODg5MmYzY2I0Y2Q3OGRkNGZkZjc4MGZlMmUwNTFkYTJkYzQ5
NjYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTE1lZGlhRWxlbWVudC5jcHAK
KysrIGIvU291cmNlL1dlYkNvcmUvaHRtbC9IVE1MTWVkaWFFbGVtZW50LmNwcApAQCAtNDU3LDcg
KzQ1Nyw3IEBAIEhUTUxNZWRpYUVsZW1lbnQ6On5IVE1MTWVkaWFFbGVtZW50KCkKIAogICAgIGlm
IChtX21lZGlhQ29udHJvbGxlcikgewogICAgICAgICBtX21lZGlhQ29udHJvbGxlci0+cmVtb3Zl
TWVkaWFFbGVtZW50KHRoaXMpOwotICAgICAgICBtX21lZGlhQ29udHJvbGxlciA9IDA7CisgICAg
ICAgIG1fbWVkaWFDb250cm9sbGVyID0gbnVsbHB0cjsKICAgICB9CiAKICNpZiBFTkFCTEUoTUVE
SUFfU09VUkNFKQpAQCAtOTQyLDcgKzk0Miw3IEBAIHZvaWQgSFRNTE1lZGlhRWxlbWVudDo6cHJl
cGFyZUZvckxvYWQoKQogCiAgICAgLy8gMSAtIEFib3J0IGFueSBhbHJlYWR5LXJ1bm5pbmcgaW5z
dGFuY2Ugb2YgdGhlIHJlc291cmNlIHNlbGVjdGlvbiBhbGdvcml0aG0gZm9yIHRoaXMgZWxlbWVu
dC4KICAgICBtX2xvYWRTdGF0ZSA9IFdhaXRpbmdGb3JTb3VyY2U7Ci0gICAgbV9jdXJyZW50U291
cmNlTm9kZSA9IDA7CisgICAgbV9jdXJyZW50U291cmNlTm9kZSA9IG51bGxwdHI7CiAKICAgICAv
LyAyIC0gSWYgdGhlcmUgYXJlIGFueSB0YXNrcyBmcm9tIHRoZSBtZWRpYSBlbGVtZW50J3MgbWVk
aWEgZWxlbWVudCBldmVudCB0YXNrIHNvdXJjZSBpbiAKICAgICAvLyBvbmUgb2YgdGhlIHRhc2sg
cXVldWVzLCB0aGVuIHJlbW92ZSB0aG9zZSB0YXNrcy4KQEAgLTEwMDYsNyArMTAwNiw3IEBAIHZv
aWQgSFRNTE1lZGlhRWxlbWVudDo6cHJlcGFyZUZvckxvYWQoKQogICAgIHNldFBsYXliYWNrUmF0
ZShkZWZhdWx0UGxheWJhY2tSYXRlKCkpOwogCiAgICAgLy8gNiAtIFNldCB0aGUgZXJyb3IgYXR0
cmlidXRlIHRvIG51bGwgYW5kIHRoZSBhdXRvcGxheWluZyBmbGFnIHRvIHRydWUuCi0gICAgbV9l
cnJvciA9IDA7CisgICAgbV9lcnJvciA9IG51bGxwdHI7CiAgICAgbV9hdXRvcGxheWluZyA9IHRy
dWU7CiAKICAgICAvLyA3IC0gSW52b2tlIHRoZSBtZWRpYSBlbGVtZW50J3MgcmVzb3VyY2Ugc2Vs
ZWN0aW9uIGFsZ29yaXRobS4KQEAgLTExMDEsNyArMTEwMSw3IEBAIHZvaWQgSFRNTE1lZGlhRWxl
bWVudDo6c2VsZWN0TWVkaWFSZXNvdXJjZSgpCiAgICAgICAgIGlmIChhdXRvIGZpcnN0U291cmNl
ID0gY2hpbGRyZW5PZlR5cGU8SFRNTFNvdXJjZUVsZW1lbnQ+KCp0aGlzKS5maXJzdCgpKSB7CiAg
ICAgICAgICAgICBtb2RlID0gY2hpbGRyZW47CiAgICAgICAgICAgICBtX25leHRDaGlsZE5vZGVU
b0NvbnNpZGVyID0gZmlyc3RTb3VyY2U7Ci0gICAgICAgICAgICBtX2N1cnJlbnRTb3VyY2VOb2Rl
ID0gMDsKKyAgICAgICAgICAgIG1fY3VycmVudFNvdXJjZU5vZGUgPSBudWxscHRyOwogICAgICAg
ICB9IGVsc2UgewogICAgICAgICAgICAgLy8gT3RoZXJ3aXNlIHRoZSBtZWRpYSBlbGVtZW50IGhh
cyBuZWl0aGVyIGEgc3JjIGF0dHJpYnV0ZSBub3IgYSBzb3VyY2UgZWxlbWVudCAKICAgICAgICAg
ICAgIC8vIGNoaWxkOiBzZXQgdGhlIG5ldHdvcmtTdGF0ZSB0byBORVRXT1JLX0VNUFRZLCBhbmQg
YWJvcnQgdGhlc2Ugc3RlcHM7IHRoZSAKQEAgLTEyNzcsNyArMTI3Nyw3IEBAIHZvaWQgSFRNTE1l
ZGlhRWxlbWVudDo6bG9hZFJlc291cmNlKGNvbnN0IFVSTCYgaW5pdGlhbFVSTCwgQ29udGVudFR5
cGUmIGNvbnRlbnRUCiAgICAgICAgIGVsc2UgewogICAgICAgICAgICAgLy8gRm9yZ2V0IG91ciBy
ZWZlcmVuY2UgdG8gdGhlIE1lZGlhU291cmNlLCBzbyB3ZSBsZWF2ZSBpdCBhbG9uZQogICAgICAg
ICAgICAgLy8gd2hpbGUgcHJvY2Vzc2luZyByZW1haW5kZXIgb2YgbG9hZCBmYWlsdXJlLgotICAg
ICAgICAgICAgbV9tZWRpYVNvdXJjZSA9IDA7CisgICAgICAgICAgICBtX21lZGlhU291cmNlID0g
bnVsbHB0cjsKICAgICAgICAgICAgIG1lZGlhTG9hZGluZ0ZhaWxlZChNZWRpYVBsYXllcjo6Rm9y
bWF0RXJyb3IpOwogICAgICAgICB9CiAgICAgfSBlbHNlCkBAIC0xODAwLDcgKzE4MDAsNyBAQCB2
b2lkIEhUTUxNZWRpYUVsZW1lbnQ6Om5vbmVTdXBwb3J0ZWQoKQogCiAgICAgc3RvcFBlcmlvZGlj
VGltZXJzKCk7CiAgICAgbV9sb2FkU3RhdGUgPSBXYWl0aW5nRm9yU291cmNlOwotICAgIG1fY3Vy
cmVudFNvdXJjZU5vZGUgPSAwOworICAgIG1fY3VycmVudFNvdXJjZU5vZGUgPSBudWxscHRyOwog
CiAgICAgLy8gNC44LjEwLjUgCiAgICAgLy8gNiAtIFJlYWNoaW5nIHRoaXMgc3RlcCBpbmRpY2F0
ZXMgdGhhdCB0aGUgbWVkaWEgcmVzb3VyY2UgZmFpbGVkIHRvIGxvYWQgb3IgdGhhdCB0aGUgZ2l2
ZW4gCkBAIC0yOTM5LDcgKzI5MzksNyBAQCB2b2lkIEhUTUxNZWRpYUVsZW1lbnQ6OmNsb3NlTWVk
aWFTb3VyY2UoKQogICAgICAgICByZXR1cm47CiAKICAgICBtX21lZGlhU291cmNlLT5jbG9zZSgp
OwotICAgIG1fbWVkaWFTb3VyY2UgPSAwOworICAgIG1fbWVkaWFTb3VyY2UgPSBudWxscHRyOwog
fQogI2VuZGlmCiAKQEAgLTQxMTIsOCArNDExMiw4IEBAIGNoZWNrX2FnYWluOgogICAgICAgICBt
X2N1cnJlbnRTb3VyY2VOb2RlID0gc291cmNlOwogICAgICAgICBtX25leHRDaGlsZE5vZGVUb0Nv
bnNpZGVyID0gc291cmNlLT5uZXh0U2libGluZygpOwogICAgIH0gZWxzZSB7Ci0gICAgICAgIG1f
Y3VycmVudFNvdXJjZU5vZGUgPSAwOwotICAgICAgICBtX25leHRDaGlsZE5vZGVUb0NvbnNpZGVy
ID0gMDsKKyAgICAgICAgbV9jdXJyZW50U291cmNlTm9kZSA9IG51bGxwdHI7CisgICAgICAgIG1f
bmV4dENoaWxkTm9kZVRvQ29uc2lkZXIgPSBudWxscHRyOwogICAgIH0KIAogI2lmICFMT0dfRElT
QUJMRUQKQEAgLTQxOTMsNyArNDE5Myw3IEBAIHZvaWQgSFRNTE1lZGlhRWxlbWVudDo6c291cmNl
V2FzUmVtb3ZlZChIVE1MU291cmNlRWxlbWVudCogc291cmNlKQogICAgICAgICAvLyBDbGVhciB0
aGUgY3VycmVudCBzb3VyY2Ugbm9kZSBwb2ludGVyLCBidXQgZG9uJ3QgY2hhbmdlIHRoZSBtb3Zp
ZSBhcyB0aGUgc3BlYyBzYXlzOgogICAgICAgICAvLyA0LjguOCAtIER5bmFtaWNhbGx5IG1vZGlm
eWluZyBhIHNvdXJjZSBlbGVtZW50IGFuZCBpdHMgYXR0cmlidXRlIHdoZW4gdGhlIGVsZW1lbnQg
aXMgYWxyZWFkeSAKICAgICAgICAgLy8gaW5zZXJ0ZWQgaW4gYSB2aWRlbyBvciBhdWRpbyBlbGVt
ZW50IHdpbGwgaGF2ZSBubyBlZmZlY3QuCi0gICAgICAgIG1fY3VycmVudFNvdXJjZU5vZGUgPSAw
OworICAgICAgICBtX2N1cnJlbnRTb3VyY2VOb2RlID0gbnVsbHB0cjsKICAgICAgICAgTE9HKE1l
ZGlhLCAiSFRNTE1lZGlhRWxlbWVudDo6c291cmNlUmVtb3ZlZCglcCkgLSBtX2N1cnJlbnRTb3Vy
Y2VOb2RlIHNldCB0byAwIiwgdGhpcyk7CiAgICAgfQogfQpAQCAtNDc5NSw3ICs0Nzk1LDcgQEAg
dm9pZCBIVE1MTWVkaWFFbGVtZW50Ojp1c2VyQ2FuY2VsbGVkTG9hZCgpCiAgICAgc2V0U2hvdWxk
RGVsYXlMb2FkRXZlbnQoZmFsc2UpOwogCiAgICAgLy8gNiAtIEFib3J0IHRoZSBvdmVyYWxsIHJl
c291cmNlIHNlbGVjdGlvbiBhbGdvcml0aG0uCi0gICAgbV9jdXJyZW50U291cmNlTm9kZSA9IDA7
CisgICAgbV9jdXJyZW50U291cmNlTm9kZSA9IG51bGxwdHI7CiAKICAgICAvLyBSZXNldCBtX3Jl
YWR5U3RhdGUgc2luY2UgbV9wbGF5ZXIgaXMgZ29uZS4KICAgICBtX3JlYWR5U3RhdGUgPSBIQVZF
X05PVEhJTkc7CkBAIC00ODEyLDggKzQ4MTIsOCBAQCB2b2lkIEhUTUxNZWRpYUVsZW1lbnQ6OmNs
ZWFyTWVkaWFQbGF5ZXIoaW50IGZsYWdzKQogCiAjaWYgVVNFKFBMQVRGT1JNX1RFWFRfVFJBQ0tf
TUVOVSkKICAgICBpZiAocGxhdGZvcm1UZXh0VHJhY2tNZW51KCkpIHsKLSAgICAgICAgbV9wbGF0
Zm9ybU1lbnUtPnNldENsaWVudCgwKTsKLSAgICAgICAgbV9wbGF0Zm9ybU1lbnUgPSAwOworICAg
ICAgICBtX3BsYXRmb3JtTWVudS0+c2V0Q2xpZW50KG51bGxwdHIpOworICAgICAgICBtX3BsYXRm
b3JtTWVudSA9IG51bGxwdHI7CiAgICAgfQogI2VuZGlmCiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9X
ZWJDb3JlL2h0bWwvSFRNTFBsdWdJbkVsZW1lbnQuY3BwIGIvU291cmNlL1dlYkNvcmUvaHRtbC9I
VE1MUGx1Z0luRWxlbWVudC5jcHAKaW5kZXggMjIwNDZlYTg0MzU1NmM0ODBmMTNiNzk1NjMyZTc5
M2NmYTc0M2E5OS4uZDc4NmRmNGZlODcxMDNmNTIwMTNhYjdkNzc5OTcxMDQ1ZGEyYzk2MSAxMDA2
NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvaHRtbC9IVE1MUGx1Z0luRWxlbWVudC5jcHAKKysrIGIv
U291cmNlL1dlYkNvcmUvaHRtbC9IVE1MUGx1Z0luRWxlbWVudC5jcHAKQEAgLTEwNCw3ICsxMDQs
NyBAQCBib29sIEhUTUxQbHVnSW5FbGVtZW50Ojp3aWxsUmVzcG9uZFRvTW91c2VDbGlja0V2ZW50
cygpCiAKIHZvaWQgSFRNTFBsdWdJbkVsZW1lbnQ6OndpbGxEZXRhY2hSZW5kZXJlcnMoKQogewot
ICAgIG1faW5zdGFuY2UuY2xlYXIoKTsKKyAgICBtX2luc3RhbmNlID0gbnVsbHB0cjsKIAogICAg
IGlmIChtX2lzQ2FwdHVyaW5nTW91c2VFdmVudHMpIHsKICAgICAgICAgaWYgKEZyYW1lKiBmcmFt
ZSA9IGRvY3VtZW50KCkuZnJhbWUoKSkKQEAgLTEyMiw3ICsxMjIsNyBAQCB2b2lkIEhUTUxQbHVn
SW5FbGVtZW50Ojp3aWxsRGV0YWNoUmVuZGVyZXJzKCkKIAogdm9pZCBIVE1MUGx1Z0luRWxlbWVu
dDo6cmVzZXRJbnN0YW5jZSgpCiB7Ci0gICAgbV9pbnN0YW5jZS5jbGVhcigpOworICAgIG1faW5z
dGFuY2UgPSBudWxscHRyOwogfQogCiBQYXNzUmVmUHRyPEpTQzo6QmluZGluZ3M6Okluc3RhbmNl
PiBIVE1MUGx1Z0luRWxlbWVudDo6Z2V0SW5zdGFuY2UoKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dl
YkNvcmUvaHRtbC9IVE1MVGFibGVFbGVtZW50LmNwcCBiL1NvdXJjZS9XZWJDb3JlL2h0bWwvSFRN
TFRhYmxlRWxlbWVudC5jcHAKaW5kZXggNGZiNjU2OWFlMjFlOTU3MzYzNzAwMjM2MGNhMzNmOWI1
MTcyYzU1ZC4uNzQ1NzM2MWI2ZTEyNWVhZWY5NjVhZjU0NTMzYmYzM2Y2ODQ2ZWFhNyAxMDA2NDQK
LS0tIGEvU291cmNlL1dlYkNvcmUvaHRtbC9IVE1MVGFibGVFbGVtZW50LmNwcAorKysgYi9Tb3Vy
Y2UvV2ViQ29yZS9odG1sL0hUTUxUYWJsZUVsZW1lbnQuY3BwCkBAIC00MDIsNyArNDAyLDcgQEAg
dm9pZCBIVE1MVGFibGVFbGVtZW50OjpwYXJzZUF0dHJpYnV0ZShjb25zdCBRdWFsaWZpZWROYW1l
JiBuYW1lLCBjb25zdCBBdG9taWNTdHIKICAgICAgICAgSFRNTEVsZW1lbnQ6OnBhcnNlQXR0cmli
dXRlKG5hbWUsIHZhbHVlKTsKIAogICAgIGlmIChib3JkZXJzQmVmb3JlICE9IGNlbGxCb3JkZXJz
KCkgfHwgb2xkUGFkZGluZyAhPSBtX3BhZGRpbmcpIHsKLSAgICAgICAgbV9zaGFyZWRDZWxsU3R5
bGUgPSAwOworICAgICAgICBtX3NoYXJlZENlbGxTdHlsZSA9IG51bGxwdHI7CiAgICAgICAgIGJv
b2wgY2VsbENoYW5nZWQgPSBmYWxzZTsKICAgICAgICAgZm9yIChOb2RlKiBjaGlsZCA9IGZpcnN0
Q2hpbGQoKTsgY2hpbGQ7IGNoaWxkID0gY2hpbGQtPm5leHRTaWJsaW5nKCkpCiAgICAgICAgICAg
ICBjZWxsQ2hhbmdlZCB8PSBzZXRUYWJsZUNlbGxzQ2hhbmdlZChjaGlsZCk7CmRpZmYgLS1naXQg
YS9Tb3VyY2UvV2ViQ29yZS9odG1sL1BsdWdpbkRvY3VtZW50LmNwcCBiL1NvdXJjZS9XZWJDb3Jl
L2h0bWwvUGx1Z2luRG9jdW1lbnQuY3BwCmluZGV4IDc3OTZjMjdiM2RjMTg3MmNiNjExYjc4NjUx
ZDQyMjVlYTIzNjM0OTguLmU5Njc3MDkwZjRjMzg1M2E3Y2ZmMjA4YjIzYzMxZGM5ZDI1NDQ4MjEg
MTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2h0bWwvUGx1Z2luRG9jdW1lbnQuY3BwCisrKyBi
L1NvdXJjZS9XZWJDb3JlL2h0bWwvUGx1Z2luRG9jdW1lbnQuY3BwCkBAIC0xNjgsOCArMTY4LDgg
QEAgdm9pZCBQbHVnaW5Eb2N1bWVudDo6c2V0UGx1Z2luRWxlbWVudChQYXNzUmVmUHRyPEhUTUxQ
bHVnSW5FbGVtZW50PiBlbGVtZW50KQogdm9pZCBQbHVnaW5Eb2N1bWVudDo6ZGV0YWNoRnJvbVBs
dWdpbkVsZW1lbnQoKQogewogICAgIC8vIFJlbGVhc2UgdGhlIHBsdWdpbiBFbGVtZW50IHNvIHRo
YXQgd2UgZG9uJ3QgaGF2ZSBhIGNpcmN1bGFyIHJlZmVyZW5jZS4KLSAgICBtX3BsdWdpbkVsZW1l
bnQgPSAwOwotICAgIGZyYW1lKCktPmxvYWRlcigpLmNsaWVudCgpLnJlZGlyZWN0RGF0YVRvUGx1
Z2luKDApOworICAgIG1fcGx1Z2luRWxlbWVudCA9IG51bGxwdHI7CisgICAgZnJhbWUoKS0+bG9h
ZGVyKCkuY2xpZW50KCkucmVkaXJlY3REYXRhVG9QbHVnaW4obnVsbHB0cik7CiB9CiAKIHZvaWQg
UGx1Z2luRG9jdW1lbnQ6OmNhbmNlbE1hbnVhbFBsdWdpbkxvYWQoKQpkaWZmIC0tZ2l0IGEvU291
cmNlL1dlYkNvcmUvaHRtbC9UZXh0RmllbGRJbnB1dFR5cGUuY3BwIGIvU291cmNlL1dlYkNvcmUv
aHRtbC9UZXh0RmllbGRJbnB1dFR5cGUuY3BwCmluZGV4IDRiMjhhYThkYTJkMWE1NWRkOWVhNDIw
ZTQxNDJlMTRlNzMxYjc5YzUuLmVhZTNkYjI5ZWVlM2MyZGU5NWZlNzE4MGM1NDZmZjhlN2UyYTc2
N2UgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2h0bWwvVGV4dEZpZWxkSW5wdXRUeXBlLmNw
cAorKysgYi9Tb3VyY2UvV2ViQ29yZS9odG1sL1RleHRGaWVsZElucHV0VHlwZS5jcHAKQEAgLTQ2
Miw3ICs0NjIsNyBAQCB2b2lkIFRleHRGaWVsZElucHV0VHlwZTo6dXBkYXRlUGxhY2Vob2xkZXJU
ZXh0KCkKICAgICBpZiAocGxhY2Vob2xkZXJUZXh0LmlzRW1wdHkoKSkgewogICAgICAgICBpZiAo
bV9wbGFjZWhvbGRlcikgewogICAgICAgICAgICAgbV9wbGFjZWhvbGRlci0+cGFyZW50Tm9kZSgp
LT5yZW1vdmVDaGlsZChtX3BsYWNlaG9sZGVyLmdldCgpLCBBU1NFUlRfTk9fRVhDRVBUSU9OKTsK
LSAgICAgICAgICAgIG1fcGxhY2Vob2xkZXIuY2xlYXIoKTsKKyAgICAgICAgICAgIG1fcGxhY2Vo
b2xkZXIgPSBudWxscHRyOwogICAgICAgICB9CiAgICAgICAgIHJldHVybjsKICAgICB9CmRpZmYg
LS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9odG1sL1ZhbGlkYXRpb25NZXNzYWdlLmNwcCBiL1NvdXJj
ZS9XZWJDb3JlL2h0bWwvVmFsaWRhdGlvbk1lc3NhZ2UuY3BwCmluZGV4IDUzYjY3NWJjMmI0OTQ2
NzRlN2JmYzViYTM5YjY5YjY2Zjg5NWYwYjguLmY2MWUxYjVlZmUyNzA5MzFkYWIwZWMyZWVkZjBm
MzRiZDc3ODJiOTYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2h0bWwvVmFsaWRhdGlvbk1l
c3NhZ2UuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2h0bWwvVmFsaWRhdGlvbk1lc3NhZ2UuY3Bw
CkBAIC0yMzUsMTAgKzIzNSwxMCBAQCB2b2lkIFZhbGlkYXRpb25NZXNzYWdlOjpkZWxldGVCdWJi
bGVUcmVlKCkKIHsKICAgICBBU1NFUlQoIXZhbGlkYXRpb25NZXNzYWdlQ2xpZW50KCkpOwogICAg
IGlmIChtX2J1YmJsZSkgewotICAgICAgICBtX21lc3NhZ2VIZWFkaW5nID0gMDsKLSAgICAgICAg
bV9tZXNzYWdlQm9keSA9IDA7CisgICAgICAgIG1fbWVzc2FnZUhlYWRpbmcgPSBudWxscHRyOwor
ICAgICAgICBtX21lc3NhZ2VCb2R5ID0gbnVsbHB0cjsKICAgICAgICAgbV9lbGVtZW50LT51c2Vy
QWdlbnRTaGFkb3dSb290KCktPnJlbW92ZUNoaWxkKG1fYnViYmxlLmdldCgpLCBBU1NFUlRfTk9f
RVhDRVBUSU9OKTsKLSAgICAgICAgbV9idWJibGUgPSAwOworICAgICAgICBtX2J1YmJsZSA9IG51
bGxwdHI7CiAgICAgfQogICAgIG1fbWVzc2FnZSA9IFN0cmluZygpOwogfQpkaWZmIC0tZ2l0IGEv
U291cmNlL1dlYkNvcmUvaHRtbC9jYW52YXMvV2ViR0xQcm9ncmFtLmNwcCBiL1NvdXJjZS9XZWJD
b3JlL2h0bWwvY2FudmFzL1dlYkdMUHJvZ3JhbS5jcHAKaW5kZXggOTJjMDUxMTkwMWQzMDZjMzg1
MzlkNTUzMzk4ZjE1MDJiM2YwYWRhYy4uMWI3NTJlNmUwZmRiNGJhNjNjOTNiYzJlNzUzMDYyNTY1
YzJkNGNkNyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvaHRtbC9jYW52YXMvV2ViR0xQcm9n
cmFtLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9odG1sL2NhbnZhcy9XZWJHTFByb2dyYW0uY3Bw
CkBAIC01OCwxMSArNTgsMTEgQEAgdm9pZCBXZWJHTFByb2dyYW06OmRlbGV0ZU9iamVjdEltcGwo
R3JhcGhpY3NDb250ZXh0M0QqIGNvbnRleHQzZCwgUGxhdGZvcm0zRE9iamUKICAgICBjb250ZXh0
M2QtPmRlbGV0ZVByb2dyYW0ob2JqKTsKICAgICBpZiAobV92ZXJ0ZXhTaGFkZXIpIHsKICAgICAg
ICAgbV92ZXJ0ZXhTaGFkZXItPm9uRGV0YWNoZWQoY29udGV4dDNkKTsKLSAgICAgICAgbV92ZXJ0
ZXhTaGFkZXIgPSAwOworICAgICAgICBtX3ZlcnRleFNoYWRlciA9IG51bGxwdHI7CiAgICAgfQog
ICAgIGlmIChtX2ZyYWdtZW50U2hhZGVyKSB7CiAgICAgICAgIG1fZnJhZ21lbnRTaGFkZXItPm9u
RGV0YWNoZWQoY29udGV4dDNkKTsKLSAgICAgICAgbV9mcmFnbWVudFNoYWRlciA9IDA7CisgICAg
ICAgIG1fZnJhZ21lbnRTaGFkZXIgPSBudWxscHRyOwogICAgIH0KIH0KIApAQCAtMTQ4LDEyICsx
NDgsMTIgQEAgYm9vbCBXZWJHTFByb2dyYW06OmRldGFjaFNoYWRlcihXZWJHTFNoYWRlciogc2hh
ZGVyKQogICAgIGNhc2UgR3JhcGhpY3NDb250ZXh0M0Q6OlZFUlRFWF9TSEFERVI6CiAgICAgICAg
IGlmIChtX3ZlcnRleFNoYWRlciAhPSBzaGFkZXIpCiAgICAgICAgICAgICByZXR1cm4gZmFsc2U7
Ci0gICAgICAgIG1fdmVydGV4U2hhZGVyID0gMDsKKyAgICAgICAgbV92ZXJ0ZXhTaGFkZXIgPSBu
dWxscHRyOwogICAgICAgICByZXR1cm4gdHJ1ZTsKICAgICBjYXNlIEdyYXBoaWNzQ29udGV4dDNE
OjpGUkFHTUVOVF9TSEFERVI6CiAgICAgICAgIGlmIChtX2ZyYWdtZW50U2hhZGVyICE9IHNoYWRl
cikKICAgICAgICAgICAgIHJldHVybiBmYWxzZTsKLSAgICAgICAgbV9mcmFnbWVudFNoYWRlciA9
IDA7CisgICAgICAgIG1fZnJhZ21lbnRTaGFkZXIgPSBudWxscHRyOwogICAgICAgICByZXR1cm4g
dHJ1ZTsKICAgICBkZWZhdWx0OgogICAgICAgICByZXR1cm4gZmFsc2U7CmRpZmYgLS1naXQgYS9T
b3VyY2UvV2ViQ29yZS9odG1sL2NhbnZhcy9XZWJHTFJlbmRlcmluZ0NvbnRleHRCYXNlLmNwcCBi
L1NvdXJjZS9XZWJDb3JlL2h0bWwvY2FudmFzL1dlYkdMUmVuZGVyaW5nQ29udGV4dEJhc2UuY3Bw
CmluZGV4IGI2NmI2NjkwNGIxNGZmZGUyZjMzOWFkNmRhMjc2ZjZkNzZjMWI0YTMuLjdhMWNmZjNm
MjgzYTg4ODZjMTcyM2FhMDNmZGY5NzE5MWNlZGZlNTggMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJD
b3JlL2h0bWwvY2FudmFzL1dlYkdMUmVuZGVyaW5nQ29udGV4dEJhc2UuY3BwCisrKyBiL1NvdXJj
ZS9XZWJDb3JlL2h0bWwvY2FudmFzL1dlYkdMUmVuZGVyaW5nQ29udGV4dEJhc2UuY3BwCkBAIC00
OTQsMTAgKzQ5NCwxMCBAQCB2b2lkIFdlYkdMUmVuZGVyaW5nQ29udGV4dEJhc2U6OmluaXRpYWxp
emVOZXdDb250ZXh0KCkKICAgICBtX3VucGFja0ZsaXBZID0gZmFsc2U7CiAgICAgbV91bnBhY2tQ
cmVtdWx0aXBseUFscGhhID0gZmFsc2U7CiAgICAgbV91bnBhY2tDb2xvcnNwYWNlQ29udmVyc2lv
biA9IEdyYXBoaWNzQ29udGV4dDNEOjpCUk9XU0VSX0RFRkFVTFRfV0VCR0w7Ci0gICAgbV9ib3Vu
ZEFycmF5QnVmZmVyID0gMDsKLSAgICBtX2N1cnJlbnRQcm9ncmFtID0gMDsKLSAgICBtX2ZyYW1l
YnVmZmVyQmluZGluZyA9IDA7Ci0gICAgbV9yZW5kZXJidWZmZXJCaW5kaW5nID0gMDsKKyAgICBt
X2JvdW5kQXJyYXlCdWZmZXIgPSBudWxscHRyOworICAgIG1fY3VycmVudFByb2dyYW0gPSBudWxs
cHRyOworICAgIG1fZnJhbWVidWZmZXJCaW5kaW5nID0gbnVsbHB0cjsKKyAgICBtX3JlbmRlcmJ1
ZmZlckJpbmRpbmcgPSBudWxscHRyOwogICAgIG1fZGVwdGhNYXNrID0gdHJ1ZTsKICAgICBtX3N0
ZW5jaWxFbmFibGVkID0gZmFsc2U7CiAgICAgbV9zdGVuY2lsTWFzayA9IDB4RkZGRkZGRkY7CkBA
IC02MjMsNyArNjIzLDcgQEAgdm9pZCBXZWJHTFJlbmRlcmluZ0NvbnRleHRCYXNlOjpkZXN0cm95
R3JhcGhpY3NDb250ZXh0M0QoKQogICAgIGlmIChtX2NvbnRleHQpIHsKICAgICAgICAgbV9jb250
ZXh0LT5zZXRDb250ZXh0TG9zdENhbGxiYWNrKG51bGxwdHIpOwogICAgICAgICBtX2NvbnRleHQt
PnNldEVycm9yTWVzc2FnZUNhbGxiYWNrKG51bGxwdHIpOwotICAgICAgICBtX2NvbnRleHQuY2xl
YXIoKTsKKyAgICAgICAgbV9jb250ZXh0ID0gbnVsbHB0cjsKICAgICB9CiB9CiAKQEAgLTE0Nzks
NyArMTQ3OSw3IEBAIHZvaWQgV2ViR0xSZW5kZXJpbmdDb250ZXh0QmFzZTo6ZGVsZXRlQnVmZmVy
KFdlYkdMQnVmZmVyKiBidWZmZXIpCiAgICAgaWYgKCFkZWxldGVPYmplY3QoYnVmZmVyKSkKICAg
ICAgICAgcmV0dXJuOwogICAgIGlmIChtX2JvdW5kQXJyYXlCdWZmZXIgPT0gYnVmZmVyKQotICAg
ICAgICBtX2JvdW5kQXJyYXlCdWZmZXIgPSAwOworICAgICAgICBtX2JvdW5kQXJyYXlCdWZmZXIg
PSBudWxscHRyOwogCiAgICAgbV9ib3VuZFZlcnRleEFycmF5T2JqZWN0LT51bmJpbmRCdWZmZXIo
YnVmZmVyKTsKIH0KQEAgLTE0ODksNyArMTQ4OSw3IEBAIHZvaWQgV2ViR0xSZW5kZXJpbmdDb250
ZXh0QmFzZTo6ZGVsZXRlRnJhbWVidWZmZXIoV2ViR0xGcmFtZWJ1ZmZlciogZnJhbWVidWZmZXIp
CiAgICAgaWYgKCFkZWxldGVPYmplY3QoZnJhbWVidWZmZXIpKQogICAgICAgICByZXR1cm47CiAg
ICAgaWYgKGZyYW1lYnVmZmVyID09IG1fZnJhbWVidWZmZXJCaW5kaW5nKSB7Ci0gICAgICAgIG1f
ZnJhbWVidWZmZXJCaW5kaW5nID0gMDsKKyAgICAgICAgbV9mcmFtZWJ1ZmZlckJpbmRpbmcgPSBu
dWxscHRyOwogICAgICAgICBtX2NvbnRleHQtPmJpbmRGcmFtZWJ1ZmZlcihHcmFwaGljc0NvbnRl
eHQzRDo6RlJBTUVCVUZGRVIsIDApOwogICAgIH0KIH0KQEAgLTE1MDYsNyArMTUwNiw3IEBAIHZv
aWQgV2ViR0xSZW5kZXJpbmdDb250ZXh0QmFzZTo6ZGVsZXRlUmVuZGVyYnVmZmVyKFdlYkdMUmVu
ZGVyYnVmZmVyKiByZW5kZXJidWZmCiAgICAgaWYgKCFkZWxldGVPYmplY3QocmVuZGVyYnVmZmVy
KSkKICAgICAgICAgcmV0dXJuOwogICAgIGlmIChyZW5kZXJidWZmZXIgPT0gbV9yZW5kZXJidWZm
ZXJCaW5kaW5nKQotICAgICAgICBtX3JlbmRlcmJ1ZmZlckJpbmRpbmcgPSAwOworICAgICAgICBt
X3JlbmRlcmJ1ZmZlckJpbmRpbmcgPSBudWxscHRyOwogICAgIGlmIChtX2ZyYW1lYnVmZmVyQmlu
ZGluZykKICAgICAgICAgbV9mcmFtZWJ1ZmZlckJpbmRpbmctPnJlbW92ZUF0dGFjaG1lbnRGcm9t
Qm91bmRGcmFtZWJ1ZmZlcihyZW5kZXJidWZmZXIpOwogfQpkaWZmIC0tZ2l0IGEvU291cmNlL1dl
YkNvcmUvaHRtbC9jYW52YXMvV2ViR0xWZXJ0ZXhBcnJheU9iamVjdEJhc2UuY3BwIGIvU291cmNl
L1dlYkNvcmUvaHRtbC9jYW52YXMvV2ViR0xWZXJ0ZXhBcnJheU9iamVjdEJhc2UuY3BwCmluZGV4
IGY2ZDhkYTY2ZTgwMTQ3OTc4ZjgxNzU3YzYzYmU0NmVhYzY5NTU4NDkuLmYzOWMwZGRkMjI3Nzlk
MDVmMTYwZDE5Nzk1NjMxOGE2MDBlYjkzY2MgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2h0
bWwvY2FudmFzL1dlYkdMVmVydGV4QXJyYXlPYmplY3RCYXNlLmNwcAorKysgYi9Tb3VyY2UvV2Vi
Q29yZS9odG1sL2NhbnZhcy9XZWJHTFZlcnRleEFycmF5T2JqZWN0QmFzZS5jcHAKQEAgLTc2LDcg
Kzc2LDcgQEAgdm9pZCBXZWJHTFZlcnRleEFycmF5T2JqZWN0QmFzZTo6dW5iaW5kQnVmZmVyKFBh
c3NSZWZQdHI8V2ViR0xCdWZmZXI+IGJ1ZmZlcikKIHsKICAgICBpZiAobV9ib3VuZEVsZW1lbnRB
cnJheUJ1ZmZlciA9PSBidWZmZXIpIHsKICAgICAgICAgbV9ib3VuZEVsZW1lbnRBcnJheUJ1ZmZl
ci0+b25EZXRhY2hlZChjb250ZXh0KCktPmdyYXBoaWNzQ29udGV4dDNEKCkpOwotICAgICAgICBt
X2JvdW5kRWxlbWVudEFycmF5QnVmZmVyID0gMDsKKyAgICAgICAgbV9ib3VuZEVsZW1lbnRBcnJh
eUJ1ZmZlciA9IG51bGxwdHI7CiAgICAgfQogICAgIAogICAgIGZvciAoc2l6ZV90IGkgPSAwOyBp
IDwgbV92ZXJ0ZXhBdHRyaWJTdGF0ZS5zaXplKCk7ICsraSkgewpAQCAtOTUsNyArOTUsNyBAQCB2
b2lkIFdlYkdMVmVydGV4QXJyYXlPYmplY3RCYXNlOjp1bmJpbmRCdWZmZXIoUGFzc1JlZlB0cjxX
ZWJHTEJ1ZmZlcj4gYnVmZmVyKQogICAgICAgICAgICAgICAgIHN0YXRlLm9yaWdpbmFsU3RyaWRl
ID0gMDsKICAgICAgICAgICAgICAgICBzdGF0ZS5vZmZzZXQgPSAwOwogICAgICAgICAgICAgfSBl
bHNlCi0gICAgICAgICAgICAgICAgc3RhdGUuYnVmZmVyQmluZGluZyA9IDA7CisgICAgICAgICAg
ICAgICAgc3RhdGUuYnVmZmVyQmluZGluZyA9IG51bGxwdHI7CiAgICAgICAgIH0KICAgICB9CiB9
CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9odG1sL3RyYWNrL1RleHRUcmFjay5jcHAgYi9T
b3VyY2UvV2ViQ29yZS9odG1sL3RyYWNrL1RleHRUcmFjay5jcHAKaW5kZXggNzRlY2YxNmQ3MDk3
NjZmNGFmMWY0NWRjMjA2YzJkZWM2MzM2YTZmMS4uMmExMzNhNWZjZWFmZTNjN2IzYmMxODZhZDJi
ODU3MGY2MTJlZDMxOSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvaHRtbC90cmFjay9UZXh0
VHJhY2suY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2h0bWwvdHJhY2svVGV4dFRyYWNrLmNwcApA
QCAtMjQ1LDcgKzI0NSw3IEBAIFRleHRUcmFja0N1ZUxpc3QqIFRleHRUcmFjazo6Y3VlcygpCiAg
ICAgLy8gaHR0cDovL3d3dy53aGF0d2cub3JnL3NwZWNzL3dlYi1hcHBzL2N1cnJlbnQtd29yay8j
ZG9tLXRleHR0cmFjay1jdWVzCiAgICAgaWYgKG1fbW9kZSAhPSBkaXNhYmxlZEtleXdvcmQoKSkK
ICAgICAgICAgcmV0dXJuIGVuc3VyZVRleHRUcmFja0N1ZUxpc3QoKTsKLSAgICByZXR1cm4gMDsK
KyAgICByZXR1cm4gbnVsbHB0cjsKIH0KIAogdm9pZCBUZXh0VHJhY2s6OnJlbW92ZUFsbEN1ZXMo
KQpAQCAtMjU3LDkgKzI1Nyw5IEBAIHZvaWQgVGV4dFRyYWNrOjpyZW1vdmVBbGxDdWVzKCkKICAg
ICAgICAgbV9jbGllbnQtPnRleHRUcmFja1JlbW92ZUN1ZXModGhpcywgbV9jdWVzLmdldCgpKTsK
ICAgICAKICAgICBmb3IgKHNpemVfdCBpID0gMDsgaSA8IG1fY3Vlcy0+bGVuZ3RoKCk7ICsraSkK
LSAgICAgICAgbV9jdWVzLT5pdGVtKGkpLT5zZXRUcmFjaygwKTsKKyAgICAgICAgbV9jdWVzLT5p
dGVtKGkpLT5zZXRUcmFjayhudWxscHRyKTsKICAgICAKLSAgICBtX2N1ZXMgPSAwOworICAgIG1f
Y3VlcyA9IG51bGxwdHI7CiB9CiAKIFRleHRUcmFja0N1ZUxpc3QqIFRleHRUcmFjazo6YWN0aXZl
Q3VlcygpIGNvbnN0CkBAIC0yNzIsNyArMjcyLDcgQEAgVGV4dFRyYWNrQ3VlTGlzdCogVGV4dFRy
YWNrOjphY3RpdmVDdWVzKCkgY29uc3QKICAgICAvLyBodHRwOi8vd3d3LndoYXR3Zy5vcmcvc3Bl
Y3Mvd2ViLWFwcHMvY3VycmVudC13b3JrLyNkb20tdGV4dHRyYWNrLWFjdGl2ZWN1ZXMKICAgICBp
ZiAobV9jdWVzICYmIG1fbW9kZSAhPSBkaXNhYmxlZEtleXdvcmQoKSkKICAgICAgICAgcmV0dXJu
IG1fY3Vlcy0+YWN0aXZlQ3VlcygpOwotICAgIHJldHVybiAwOworICAgIHJldHVybiBudWxscHRy
OwogfQogCiB2b2lkIFRleHRUcmFjazo6YWRkQ3VlKFBhc3NSZWZQdHI8VGV4dFRyYWNrQ3VlPiBw
cnBDdWUsIEV4Y2VwdGlvbkNvZGUmIGVjKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvaHRt
bC90cmFjay9WVFRDdWUuY3BwIGIvU291cmNlL1dlYkNvcmUvaHRtbC90cmFjay9WVFRDdWUuY3Bw
CmluZGV4IDM0YTJlZTc5NmE4ODgwMDY5MDMyODgzYzMxZWI4ZmYxNWU3NDdiZDMuLjBiOWM3MTc5
MzBiZjA2N2I1ZWEyM2U1MTQzMWY5ZmNlYTk3ZDZiYjUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJD
b3JlL2h0bWwvdHJhY2svVlRUQ3VlLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9odG1sL3RyYWNr
L1ZUVEN1ZS5jcHAKQEAgLTQ4Miw3ICs0ODIsNyBAQCB2b2lkIFZUVEN1ZTo6c2V0VGV4dChjb25z
dCBTdHJpbmcmIHRleHQpCiAgICAgd2lsbENoYW5nZSgpOwogICAgIC8vIENsZWFyIHRoZSBkb2N1
bWVudCBmcmFnbWVudCBidXQgZG9uJ3QgYm90aGVyIHRvIGNyZWF0ZSBpdCBhZ2FpbiBqdXN0IHll
dCBhcyB3ZSBjYW4gZG8gdGhhdAogICAgIC8vIHdoZW4gaXQgaXMgcmVxdWVzdGVkLgotICAgIG1f
d2ViVlRUTm9kZVRyZWUgPSAwOworICAgIG1fd2ViVlRUTm9kZVRyZWUgPSBudWxscHRyOwogICAg
IG1fY29udGVudCA9IHRleHQ7CiAgICAgZGlkQ2hhbmdlKCk7CiB9CmRpZmYgLS1naXQgYS9Tb3Vy
Y2UvV2ViQ29yZS9pbnNwZWN0b3IvSW5zcGVjdG9yQXBwbGljYXRpb25DYWNoZUFnZW50LmNwcCBi
L1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9JbnNwZWN0b3JBcHBsaWNhdGlvbkNhY2hlQWdlbnQu
Y3BwCmluZGV4IGZkNGNhZjYyMTQxMTlhODQ0N2MwMjk0NTc0MDRmMWY1MmJjOGUzN2EuLjJkY2Qy
NmU5OWJmM2EwN2E2NzYwOGFhZTEyZDU3NDQzOTA1YTYyNjUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9X
ZWJDb3JlL2luc3BlY3Rvci9JbnNwZWN0b3JBcHBsaWNhdGlvbkNhY2hlQWdlbnQuY3BwCisrKyBi
L1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9JbnNwZWN0b3JBcHBsaWNhdGlvbkNhY2hlQWdlbnQu
Y3BwCkBAIC01OCw3ICs1OCw3IEBAIHZvaWQgSW5zcGVjdG9yQXBwbGljYXRpb25DYWNoZUFnZW50
OjpkaWRDcmVhdGVGcm9udGVuZEFuZEJhY2tlbmQoRnJvbnRlbmRDaGFubmVsCiB2b2lkIEluc3Bl
Y3RvckFwcGxpY2F0aW9uQ2FjaGVBZ2VudDo6d2lsbERlc3Ryb3lGcm9udGVuZEFuZEJhY2tlbmQo
SW5zcGVjdG9yOjpEaXNjb25uZWN0UmVhc29uKQogewogICAgIG1fZnJvbnRlbmREaXNwYXRjaGVy
ID0gbnVsbHB0cjsKLSAgICBtX2JhY2tlbmREaXNwYXRjaGVyLmNsZWFyKCk7CisgICAgbV9iYWNr
ZW5kRGlzcGF0Y2hlciA9IG51bGxwdHI7CiAKICAgICBtX2luc3RydW1lbnRpbmdBZ2VudHMtPnNl
dEluc3BlY3RvckFwcGxpY2F0aW9uQ2FjaGVBZ2VudChudWxscHRyKTsKIH0KZGlmZiAtLWdpdCBh
L1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9JbnNwZWN0b3JDU1NBZ2VudC5jcHAgYi9Tb3VyY2Uv
V2ViQ29yZS9pbnNwZWN0b3IvSW5zcGVjdG9yQ1NTQWdlbnQuY3BwCmluZGV4IGE5MDgzZDA4MTQy
N2I5YzAxOTE4OWU2YzQ5YjgxNDYyZWYzNjM1OWUuLjNkMDYyMDgzNGViMjhjZGZkMDZiNThjZDY2
MjZiYTNjMTQ4ZTcxOTEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9JbnNw
ZWN0b3JDU1NBZ2VudC5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL0luc3BlY3Rv
ckNTU0FnZW50LmNwcApAQCAtMzYwLDcgKzM2MCw3IEBAIHZvaWQgSW5zcGVjdG9yQ1NTQWdlbnQ6
OmRpZENyZWF0ZUZyb250ZW5kQW5kQmFja2VuZChJbnNwZWN0b3I6OkZyb250ZW5kQ2hhbm5lbCoK
IHZvaWQgSW5zcGVjdG9yQ1NTQWdlbnQ6OndpbGxEZXN0cm95RnJvbnRlbmRBbmRCYWNrZW5kKElu
c3BlY3Rvcjo6RGlzY29ubmVjdFJlYXNvbikKIHsKICAgICBtX2Zyb250ZW5kRGlzcGF0Y2hlciA9
IG51bGxwdHI7Ci0gICAgbV9iYWNrZW5kRGlzcGF0Y2hlci5jbGVhcigpOworICAgIG1fYmFja2Vu
ZERpc3BhdGNoZXIgPSBudWxscHRyOwogCiAgICAgcmVzZXROb25QZXJzaXN0ZW50RGF0YSgpOwog
fQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL0luc3BlY3RvckNvbnRyb2xs
ZXIuY3BwIGIvU291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL0luc3BlY3RvckNvbnRyb2xsZXIuY3Bw
CmluZGV4IGYyM2E1ZWEwZWU1NmQwNWUxNDQ1MTA2YTcyNWFjMWM5NmE0NjhlOTkuLmJjODBiY2Ey
OWM5NTE0Nzc3ZGEwNGRjMWNhZTFiNzUxY2Y5ZmY4YWYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJD
b3JlL2luc3BlY3Rvci9JbnNwZWN0b3JDb250cm9sbGVyLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29y
ZS9pbnNwZWN0b3IvSW5zcGVjdG9yQ29udHJvbGxlci5jcHAKQEAgLTI2Myw3ICsyNjMsNyBAQCB2
b2lkIEluc3BlY3RvckNvbnRyb2xsZXI6OmRpc2Nvbm5lY3RGcm9udGVuZChEaXNjb25uZWN0UmVh
c29uIHJlYXNvbikKICAgICBtX2FnZW50cy53aWxsRGVzdHJveUZyb250ZW5kQW5kQmFja2VuZChy
ZWFzb24pOwogCiAgICAgbV9iYWNrZW5kRGlzcGF0Y2hlci0+Y2xlYXJGcm9udGVuZCgpOwotICAg
IG1fYmFja2VuZERpc3BhdGNoZXIuY2xlYXIoKTsKKyAgICBtX2JhY2tlbmREaXNwYXRjaGVyID0g
bnVsbHB0cjsKICAgICBtX2Zyb250ZW5kQ2hhbm5lbCA9IG51bGxwdHI7CiAKICAgICBtX2lzQXV0
b21hdGljSW5zcGVjdGlvbiA9IGZhbHNlOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvaW5z
cGVjdG9yL0luc3BlY3RvckRPTUFnZW50LmNwcCBiL1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9J
bnNwZWN0b3JET01BZ2VudC5jcHAKaW5kZXggMGVkMmM1YzA0ZmFhM2IxY2M4YmIwNWQ0OWFkOTZh
NmQxOTcxMmNhMS4uNzE5Zjc2MWRlNTZkOTA5MTU0YWYxNjIxNjBlMDJhMTQ2Y2E2MjYyZCAxMDA2
NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL0luc3BlY3RvckRPTUFnZW50LmNwcAor
KysgYi9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvSW5zcGVjdG9yRE9NQWdlbnQuY3BwCkBAIC0y
MzgsNyArMjM4LDcgQEAgdm9pZCBJbnNwZWN0b3JET01BZ2VudDo6ZGlkQ3JlYXRlRnJvbnRlbmRB
bmRCYWNrZW5kKEluc3BlY3Rvcjo6RnJvbnRlbmRDaGFubmVsKgogdm9pZCBJbnNwZWN0b3JET01B
Z2VudDo6d2lsbERlc3Ryb3lGcm9udGVuZEFuZEJhY2tlbmQoSW5zcGVjdG9yOjpEaXNjb25uZWN0
UmVhc29uKQogewogICAgIG1fZnJvbnRlbmREaXNwYXRjaGVyID0gbnVsbHB0cjsKLSAgICBtX2Jh
Y2tlbmREaXNwYXRjaGVyLmNsZWFyKCk7CisgICAgbV9iYWNrZW5kRGlzcGF0Y2hlciA9IG51bGxw
dHI7CiAKICAgICBtX2hpc3RvcnkucmVzZXQoKTsKICAgICBtX2RvbUVkaXRvci5yZXNldCgpOwpA
QCAtMjcyLDcgKzI3Miw3IEBAIHZvaWQgSW5zcGVjdG9yRE9NQWdlbnQ6OnJlc2V0KCkKICAgICBk
aXNjYXJkQmluZGluZ3MoKTsKICAgICBpZiAobV9yZXZhbGlkYXRlU3R5bGVBdHRyVGFzaykKICAg
ICAgICAgbV9yZXZhbGlkYXRlU3R5bGVBdHRyVGFzay0+cmVzZXQoKTsKLSAgICBtX2RvY3VtZW50
ID0gMDsKKyAgICBtX2RvY3VtZW50ID0gbnVsbHB0cjsKIH0KIAogdm9pZCBJbnNwZWN0b3JET01B
Z2VudDo6c2V0RE9NTGlzdGVuZXIoRE9NTGlzdGVuZXIqIGxpc3RlbmVyKQpkaWZmIC0tZ2l0IGEv
U291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL0luc3BlY3RvckRPTURlYnVnZ2VyQWdlbnQuY3BwIGIv
U291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL0luc3BlY3RvckRPTURlYnVnZ2VyQWdlbnQuY3BwCmlu
ZGV4IGY3NzhkZDk2MmNiMmRkYzE2MDYzMTc0NmE5OTViZGRhMGE5YjI3OGIuLmQ1MWQ0YmVhZTkx
MjIzNTA3YjZjNDQ2Nzc5NDRjYjI3YmEzNmM0NjQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3Jl
L2luc3BlY3Rvci9JbnNwZWN0b3JET01EZWJ1Z2dlckFnZW50LmNwcAorKysgYi9Tb3VyY2UvV2Vi
Q29yZS9pbnNwZWN0b3IvSW5zcGVjdG9yRE9NRGVidWdnZXJBZ2VudC5jcHAKQEAgLTEwOSw3ICsx
MDksNyBAQCB2b2lkIEluc3BlY3RvckRPTURlYnVnZ2VyQWdlbnQ6OmRpZENyZWF0ZUZyb250ZW5k
QW5kQmFja2VuZChJbnNwZWN0b3I6OkZyb250ZW5kQwogCiB2b2lkIEluc3BlY3RvckRPTURlYnVn
Z2VyQWdlbnQ6OndpbGxEZXN0cm95RnJvbnRlbmRBbmRCYWNrZW5kKEluc3BlY3Rvcjo6RGlzY29u
bmVjdFJlYXNvbikKIHsKLSAgICBtX2JhY2tlbmREaXNwYXRjaGVyLmNsZWFyKCk7CisgICAgbV9i
YWNrZW5kRGlzcGF0Y2hlciA9IG51bGxwdHI7CiAKICAgICBkaXNhYmxlKCk7CiB9CmRpZmYgLS1n
aXQgYS9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvSW5zcGVjdG9yRE9NU3RvcmFnZUFnZW50LmNw
cCBiL1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9JbnNwZWN0b3JET01TdG9yYWdlQWdlbnQuY3Bw
CmluZGV4IGIxNjg3Y2Y1NDg1M2Y2MjJmNTJhNjc2OGM5MmNjZjQyNThlN2E1ZjEuLjA0YWY4OGJj
ZTNkYzAwNTE0ODViM2UyYTUwZDk3MTYwMTdjMmY2OWYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJD
b3JlL2luc3BlY3Rvci9JbnNwZWN0b3JET01TdG9yYWdlQWdlbnQuY3BwCisrKyBiL1NvdXJjZS9X
ZWJDb3JlL2luc3BlY3Rvci9JbnNwZWN0b3JET01TdG9yYWdlQWdlbnQuY3BwCkBAIC03Niw3ICs3
Niw3IEBAIHZvaWQgSW5zcGVjdG9yRE9NU3RvcmFnZUFnZW50OjpkaWRDcmVhdGVGcm9udGVuZEFu
ZEJhY2tlbmQoSW5zcGVjdG9yOjpGcm9udGVuZENoCiB2b2lkIEluc3BlY3RvckRPTVN0b3JhZ2VB
Z2VudDo6d2lsbERlc3Ryb3lGcm9udGVuZEFuZEJhY2tlbmQoSW5zcGVjdG9yOjpEaXNjb25uZWN0
UmVhc29uKQogewogICAgIG1fZnJvbnRlbmREaXNwYXRjaGVyID0gbnVsbHB0cjsKLSAgICBtX2Jh
Y2tlbmREaXNwYXRjaGVyLmNsZWFyKCk7CisgICAgbV9iYWNrZW5kRGlzcGF0Y2hlciA9IG51bGxw
dHI7CiAKICAgICBFcnJvclN0cmluZyB1bnVzZWQ7CiAgICAgZGlzYWJsZSh1bnVzZWQpOwpkaWZm
IC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL0luc3BlY3RvckRhdGFiYXNlQWdlbnQu
Y3BwIGIvU291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL0luc3BlY3RvckRhdGFiYXNlQWdlbnQuY3Bw
CmluZGV4IDkxMzRkZmU0N2M3OWM2YzZlZjQ0MTM0NDUyMGI3MDQ2ZTFkNWRjMTMuLmJlMjdmOTU2
MTQ0NTlmYmZmZDFiMDJkNDg1Y2YxZDc3ZGVkOTY2ZWQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJD
b3JlL2luc3BlY3Rvci9JbnNwZWN0b3JEYXRhYmFzZUFnZW50LmNwcAorKysgYi9Tb3VyY2UvV2Vi
Q29yZS9pbnNwZWN0b3IvSW5zcGVjdG9yRGF0YWJhc2VBZ2VudC5jcHAKQEAgLTIzMSw3ICsyMzEs
NyBAQCB2b2lkIEluc3BlY3RvckRhdGFiYXNlQWdlbnQ6OmRpZENyZWF0ZUZyb250ZW5kQW5kQmFj
a2VuZChJbnNwZWN0b3I6OkZyb250ZW5kQ2hhbgogdm9pZCBJbnNwZWN0b3JEYXRhYmFzZUFnZW50
Ojp3aWxsRGVzdHJveUZyb250ZW5kQW5kQmFja2VuZChJbnNwZWN0b3I6OkRpc2Nvbm5lY3RSZWFz
b24pCiB7CiAgICAgbV9mcm9udGVuZERpc3BhdGNoZXIgPSBudWxscHRyOwotICAgIG1fYmFja2Vu
ZERpc3BhdGNoZXIuY2xlYXIoKTsKKyAgICBtX2JhY2tlbmREaXNwYXRjaGVyID0gbnVsbHB0cjsK
IAogICAgIEVycm9yU3RyaW5nIHVudXNlZDsKICAgICBkaXNhYmxlKHVudXNlZCk7CmRpZmYgLS1n
aXQgYS9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvSW5zcGVjdG9ySW5kZXhlZERCQWdlbnQuY3Bw
IGIvU291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL0luc3BlY3RvckluZGV4ZWREQkFnZW50LmNwcApp
bmRleCA5YmYxMjkxMTZjNGRjODBhMDg2MzFjMDRkNzA3YjE4M2FiOGJjYWNmLi4xNzJmYjU4MTI4
MDIwYTNhZTU1ZDY1ZDRmMDhmNTdhZTE2YTBlY2Y3IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29y
ZS9pbnNwZWN0b3IvSW5zcGVjdG9ySW5kZXhlZERCQWdlbnQuY3BwCisrKyBiL1NvdXJjZS9XZWJD
b3JlL2luc3BlY3Rvci9JbnNwZWN0b3JJbmRleGVkREJBZ2VudC5jcHAKQEAgLTU4Miw3ICs1ODIs
NyBAQCB2b2lkIEluc3BlY3RvckluZGV4ZWREQkFnZW50OjpkaWRDcmVhdGVGcm9udGVuZEFuZEJh
Y2tlbmQoSW5zcGVjdG9yOjpGcm9udGVuZENoYQogCiB2b2lkIEluc3BlY3RvckluZGV4ZWREQkFn
ZW50Ojp3aWxsRGVzdHJveUZyb250ZW5kQW5kQmFja2VuZChJbnNwZWN0b3I6OkRpc2Nvbm5lY3RS
ZWFzb24pCiB7Ci0gICAgbV9iYWNrZW5kRGlzcGF0Y2hlci5jbGVhcigpOworICAgIG1fYmFja2Vu
ZERpc3BhdGNoZXIgPSBudWxscHRyOwogCiAgICAgRXJyb3JTdHJpbmcgdW51c2VkOwogICAgIGRp
c2FibGUodW51c2VkKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9JbnNw
ZWN0b3JMYXllclRyZWVBZ2VudC5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvSW5zcGVj
dG9yTGF5ZXJUcmVlQWdlbnQuY3BwCmluZGV4IGJlNjQ0OTZlNDYzOGQwMGMzZWMyODkwODY1NmFl
Njc3YTczODk3NTguLmY2ZTQxZmFjODI4YWM2YzRmNzc2MDY1YWRmN2EzZGJmOGQ3OGJlMDQgMTAw
NjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9JbnNwZWN0b3JMYXllclRyZWVBZ2Vu
dC5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL0luc3BlY3RvckxheWVyVHJlZUFn
ZW50LmNwcApAQCAtNjUsNyArNjUsNyBAQCB2b2lkIEluc3BlY3RvckxheWVyVHJlZUFnZW50Ojpk
aWRDcmVhdGVGcm9udGVuZEFuZEJhY2tlbmQoSW5zcGVjdG9yOjpGcm9udGVuZENoYQogdm9pZCBJ
bnNwZWN0b3JMYXllclRyZWVBZ2VudDo6d2lsbERlc3Ryb3lGcm9udGVuZEFuZEJhY2tlbmQoSW5z
cGVjdG9yOjpEaXNjb25uZWN0UmVhc29uKQogewogICAgIG1fZnJvbnRlbmREaXNwYXRjaGVyID0g
bnVsbHB0cjsKLSAgICBtX2JhY2tlbmREaXNwYXRjaGVyLmNsZWFyKCk7CisgICAgbV9iYWNrZW5k
RGlzcGF0Y2hlciA9IG51bGxwdHI7CiAKICAgICBFcnJvclN0cmluZyB1bnVzZWQ7CiAgICAgZGlz
YWJsZSh1bnVzZWQpOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL0luc3Bl
Y3Rvck92ZXJsYXkuY3BwIGIvU291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL0luc3BlY3Rvck92ZXJs
YXkuY3BwCmluZGV4IDZkM2EwZjNjYTcyNjVhMWFmZjhjMzI4YTVmM2Y2Yjc5YzMzMWQ4ZDQuLmZh
ZWE3Y2VmMmM2MzJlZTUxMDJjZGYyYjY1NDQ5N2FiODA3YmUxNzcgMTAwNjQ0Ci0tLSBhL1NvdXJj
ZS9XZWJDb3JlL2luc3BlY3Rvci9JbnNwZWN0b3JPdmVybGF5LmNwcAorKysgYi9Tb3VyY2UvV2Vi
Q29yZS9pbnNwZWN0b3IvSW5zcGVjdG9yT3ZlcmxheS5jcHAKQEAgLTI0Myw5ICsyNDMsOSBAQCB2
b2lkIEluc3BlY3Rvck92ZXJsYXk6OnNldFBhdXNlZEluRGVidWdnZXJNZXNzYWdlKGNvbnN0IFN0
cmluZyogbWVzc2FnZSkKIAogdm9pZCBJbnNwZWN0b3JPdmVybGF5OjpoaWRlSGlnaGxpZ2h0KCkK
IHsKLSAgICBtX2hpZ2hsaWdodE5vZGUuY2xlYXIoKTsKLSAgICBtX2hpZ2hsaWdodE5vZGVMaXN0
LmNsZWFyKCk7Ci0gICAgbV9oaWdobGlnaHRRdWFkLnJlc2V0KCk7CisgICAgbV9oaWdobGlnaHRO
b2RlID0gbnVsbHB0cjsKKyAgICBtX2hpZ2hsaWdodE5vZGVMaXN0ID0gbnVsbHB0cjsKKyAgICBt
X2hpZ2hsaWdodFF1YWQgPSBudWxscHRyOwogICAgIHVwZGF0ZSgpOwogfQogCkBAIC0yNTMsNyAr
MjUzLDcgQEAgdm9pZCBJbnNwZWN0b3JPdmVybGF5OjpoaWdobGlnaHROb2RlTGlzdChQYXNzUmVm
UHRyPE5vZGVMaXN0PiBub2RlcywgY29uc3QgSGlnaGwKIHsKICAgICBtX25vZGVIaWdobGlnaHRD
b25maWcgPSBoaWdobGlnaHRDb25maWc7CiAgICAgbV9oaWdobGlnaHROb2RlTGlzdCA9IG5vZGVz
OwotICAgIG1faGlnaGxpZ2h0Tm9kZS5jbGVhcigpOworICAgIG1faGlnaGxpZ2h0Tm9kZSA9IG51
bGxwdHI7CiAgICAgdXBkYXRlKCk7CiB9CiAKQEAgLTI2MSw3ICsyNjEsNyBAQCB2b2lkIEluc3Bl
Y3Rvck92ZXJsYXk6OmhpZ2hsaWdodE5vZGUoTm9kZSogbm9kZSwgY29uc3QgSGlnaGxpZ2h0Q29u
ZmlnJiBoaWdobGlnaAogewogICAgIG1fbm9kZUhpZ2hsaWdodENvbmZpZyA9IGhpZ2hsaWdodENv
bmZpZzsKICAgICBtX2hpZ2hsaWdodE5vZGUgPSBub2RlOwotICAgIG1faGlnaGxpZ2h0Tm9kZUxp
c3QuY2xlYXIoKTsKKyAgICBtX2hpZ2hsaWdodE5vZGVMaXN0ID0gbnVsbHB0cjsKICAgICB1cGRh
dGUoKTsKIH0KIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL0luc3BlY3Rv
clBhZ2VBZ2VudC5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvSW5zcGVjdG9yUGFnZUFn
ZW50LmNwcAppbmRleCA2ZjUyYmZhZTBiNTIzYzk2ZjE0ZTU3NDE3MjI2OTVhMTc1NTFjYThhLi4z
ZTlmZWJlZmI1NGZlNDQ4YWM4ODA3NmQ5OTZmOWE4YWQwN2E1YjlhIDEwMDY0NAotLS0gYS9Tb3Vy
Y2UvV2ViQ29yZS9pbnNwZWN0b3IvSW5zcGVjdG9yUGFnZUFnZW50LmNwcAorKysgYi9Tb3VyY2Uv
V2ViQ29yZS9pbnNwZWN0b3IvSW5zcGVjdG9yUGFnZUFnZW50LmNwcApAQCAtMzQ4LDcgKzM0OCw3
IEBAIHZvaWQgSW5zcGVjdG9yUGFnZUFnZW50OjpkaWRDcmVhdGVGcm9udGVuZEFuZEJhY2tlbmQo
SW5zcGVjdG9yOjpGcm9udGVuZENoYW5uZWwqCiB2b2lkIEluc3BlY3RvclBhZ2VBZ2VudDo6d2ls
bERlc3Ryb3lGcm9udGVuZEFuZEJhY2tlbmQoSW5zcGVjdG9yOjpEaXNjb25uZWN0UmVhc29uKQog
ewogICAgIG1fZnJvbnRlbmREaXNwYXRjaGVyID0gbnVsbHB0cjsKLSAgICBtX2JhY2tlbmREaXNw
YXRjaGVyLmNsZWFyKCk7CisgICAgbV9iYWNrZW5kRGlzcGF0Y2hlciA9IG51bGxwdHI7CiAKICAg
ICBFcnJvclN0cmluZyB1bnVzZWQ7CiAgICAgZGlzYWJsZSh1bnVzZWQpOwpAQCAtMzc0LDcgKzM3
NCw3IEBAIHZvaWQgSW5zcGVjdG9yUGFnZUFnZW50OjplbmFibGUoRXJyb3JTdHJpbmcmKQogdm9p
ZCBJbnNwZWN0b3JQYWdlQWdlbnQ6OmRpc2FibGUoRXJyb3JTdHJpbmcmKQogewogICAgIG1fZW5h
YmxlZCA9IGZhbHNlOwotICAgIG1fc2NyaXB0c1RvRXZhbHVhdGVPbkxvYWQuY2xlYXIoKTsKKyAg
ICBtX3NjcmlwdHNUb0V2YWx1YXRlT25Mb2FkID0gbnVsbHB0cjsKICAgICBtX2luc3RydW1lbnRp
bmdBZ2VudHMtPnNldEluc3BlY3RvclBhZ2VBZ2VudChudWxscHRyKTsKIAogICAgIEVycm9yU3Ry
aW5nIHVudXNlZDsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9JbnNwZWN0
b3JSZXBsYXlBZ2VudC5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvSW5zcGVjdG9yUmVw
bGF5QWdlbnQuY3BwCmluZGV4IDY0Y2I4MTE3Yzc5ODFkYWM0MzRmNDNjYmYzYmZkOWUzMzEyODQ3
YTEuLjE4MWE2MDk4MmFmNzI2YzI0NGE0YzFiMzNkNmJjODdjMjliNTA1ODUgMTAwNjQ0Ci0tLSBh
L1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9JbnNwZWN0b3JSZXBsYXlBZ2VudC5jcHAKKysrIGIv
U291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL0luc3BlY3RvclJlcGxheUFnZW50LmNwcApAQCAtMTkz
LDcgKzE5Myw3IEBAIHZvaWQgSW5zcGVjdG9yUmVwbGF5QWdlbnQ6OmRpZENyZWF0ZUZyb250ZW5k
QW5kQmFja2VuZChJbnNwZWN0b3I6OkZyb250ZW5kQ2hhbm5lCiB2b2lkIEluc3BlY3RvclJlcGxh
eUFnZW50Ojp3aWxsRGVzdHJveUZyb250ZW5kQW5kQmFja2VuZChJbnNwZWN0b3I6OkRpc2Nvbm5l
Y3RSZWFzb24pCiB7CiAgICAgbV9mcm9udGVuZERpc3BhdGNoZXIgPSBudWxscHRyOwotICAgIG1f
YmFja2VuZERpc3BhdGNoZXIuY2xlYXIoKTsKKyAgICBtX2JhY2tlbmREaXNwYXRjaGVyID0gbnVs
bHB0cjsKIAogICAgIG1faW5zdHJ1bWVudGluZ0FnZW50cy0+c2V0SW5zcGVjdG9yUmVwbGF5QWdl
bnQobnVsbHB0cik7CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9JbnNw
ZWN0b3JSZXNvdXJjZUFnZW50LmNwcCBiL1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9JbnNwZWN0
b3JSZXNvdXJjZUFnZW50LmNwcAppbmRleCA4NTQ0ODljMDRmOTc0ZDk3Y2QzNjY0YWVhYWQ0NWZl
MDFiYjFlZjAxLi43YjU2YTBmZjlkMTU4ZjZiYThiMTM1M2EwYmFiMmU0ZDBlODlhMWQ3IDEwMDY0
NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvSW5zcGVjdG9yUmVzb3VyY2VBZ2VudC5j
cHAKKysrIGIvU291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL0luc3BlY3RvclJlc291cmNlQWdlbnQu
Y3BwCkBAIC0xODEsNyArMTgxLDcgQEAgdm9pZCBJbnNwZWN0b3JSZXNvdXJjZUFnZW50OjpkaWRD
cmVhdGVGcm9udGVuZEFuZEJhY2tlbmQoSW5zcGVjdG9yOjpGcm9udGVuZENoYW4KIHZvaWQgSW5z
cGVjdG9yUmVzb3VyY2VBZ2VudDo6d2lsbERlc3Ryb3lGcm9udGVuZEFuZEJhY2tlbmQoSW5zcGVj
dG9yOjpEaXNjb25uZWN0UmVhc29uKQogewogICAgIG1fZnJvbnRlbmREaXNwYXRjaGVyID0gbnVs
bHB0cjsKLSAgICBtX2JhY2tlbmREaXNwYXRjaGVyLmNsZWFyKCk7CisgICAgbV9iYWNrZW5kRGlz
cGF0Y2hlciA9IG51bGxwdHI7CiAKICAgICBFcnJvclN0cmluZyB1bnVzZWQ7CiAgICAgZGlzYWJs
ZSh1bnVzZWQpOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL0luc3BlY3Rv
clN0eWxlU2hlZXQuY3BwIGIvU291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL0luc3BlY3RvclN0eWxl
U2hlZXQuY3BwCmluZGV4IGI0N2M2NTRkM2Q3NjJjZTQ1ZGNmZTRmMTQ0YjRjOTY1N2VjYzlmYzQu
LjA2ZWMxYjZmMmY2NDRjMmMxZDA2ZDNmZWU5YWJlMTI4ZmMwYTVmOGMgMTAwNjQ0Ci0tLSBhL1Nv
dXJjZS9XZWJDb3JlL2luc3BlY3Rvci9JbnNwZWN0b3JTdHlsZVNoZWV0LmNwcAorKysgYi9Tb3Vy
Y2UvV2ViQ29yZS9pbnNwZWN0b3IvSW5zcGVjdG9yU3R5bGVTaGVldC5jcHAKQEAgLTEyNjEsNyAr
MTI2MSw3IEBAIHZvaWQgSW5zcGVjdG9yU3R5bGVTaGVldEZvcklubGluZVN0eWxlOjpkaWRNb2Rp
ZnlFbGVtZW50QXR0cmlidXRlKCkKICAgICBtX2lzU3R5bGVUZXh0VmFsaWQgPSBmYWxzZTsKICAg
ICBpZiAobV9lbGVtZW50LT5pc1N0eWxlZEVsZW1lbnQoKSAmJiBtX2VsZW1lbnQtPnN0eWxlKCkg
IT0gbV9pbnNwZWN0b3JTdHlsZS0+Y3NzU3R5bGUoKSkKICAgICAgICAgbV9pbnNwZWN0b3JTdHls
ZSA9IEluc3BlY3RvclN0eWxlOjpjcmVhdGUoSW5zcGVjdG9yQ1NTSWQoaWQoKSwgMCksIGlubGlu
ZVN0eWxlKCksIHRoaXMpOwotICAgIG1fcnVsZVNvdXJjZURhdGEuY2xlYXIoKTsKKyAgICBtX3J1
bGVTb3VyY2VEYXRhID0gbnVsbHB0cjsKIH0KIAogYm9vbCBJbnNwZWN0b3JTdHlsZVNoZWV0Rm9y
SW5saW5lU3R5bGU6OmdldFRleHQoU3RyaW5nKiByZXN1bHQpIGNvbnN0CkBAIC0xMjg1LDcgKzEy
ODUsNyBAQCBib29sIEluc3BlY3RvclN0eWxlU2hlZXRGb3JJbmxpbmVTdHlsZTo6c2V0U3R5bGVU
ZXh0KENTU1N0eWxlRGVjbGFyYXRpb24qIHN0eWxlLAogCiAgICAgbV9zdHlsZVRleHQgPSB0ZXh0
OwogICAgIG1faXNTdHlsZVRleHRWYWxpZCA9IHRydWU7Ci0gICAgbV9ydWxlU291cmNlRGF0YS5j
bGVhcigpOworICAgIG1fcnVsZVNvdXJjZURhdGEgPSBudWxscHRyOwogICAgIHJldHVybiAhZWM7
CiB9CiAKQEAgLTEzMDQsNyArMTMwNCw3IEBAIGJvb2wgSW5zcGVjdG9yU3R5bGVTaGVldEZvcklu
bGluZVN0eWxlOjplbnN1cmVQYXJzZWREYXRhUmVhZHkoKQogICAgIC8vIFRoZSAic3R5bGUiIHBy
b3BlcnR5IHZhbHVlIGNhbiBnZXQgY2hhbmdlZCBpbmRpcmVjdGx5LCBlLmcuIHZpYSBlbGVtZW50
LnN0eWxlLmJvcmRlcldpZHRoID0gIjJweCIuCiAgICAgY29uc3QgU3RyaW5nJiBjdXJyZW50U3R5
bGVUZXh0ID0gZWxlbWVudFN0eWxlVGV4dCgpOwogICAgIGlmIChtX3N0eWxlVGV4dCAhPSBjdXJy
ZW50U3R5bGVUZXh0KSB7Ci0gICAgICAgIG1fcnVsZVNvdXJjZURhdGEuY2xlYXIoKTsKKyAgICAg
ICAgbV9ydWxlU291cmNlRGF0YSA9IG51bGxwdHI7CiAgICAgICAgIG1fc3R5bGVUZXh0ID0gY3Vy
cmVudFN0eWxlVGV4dDsKICAgICAgICAgbV9pc1N0eWxlVGV4dFZhbGlkID0gdHJ1ZTsKICAgICB9
CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvSW5zcGVjdG9yVGltZWxpbmVB
Z2VudC5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvSW5zcGVjdG9yVGltZWxpbmVBZ2Vu
dC5jcHAKaW5kZXggMGUzMmJjNWU2Mzg5OGFmZjhlZDJiMDZhYmIwZjdhMWJhOTgwMDhhNC4uZjU3
NTZhMmQxZWE4Mzg3MTE1MGQ1MjFmOGVmZjE0OWEyM2FjNzhjYiAxMDA2NDQKLS0tIGEvU291cmNl
L1dlYkNvcmUvaW5zcGVjdG9yL0luc3BlY3RvclRpbWVsaW5lQWdlbnQuY3BwCisrKyBiL1NvdXJj
ZS9XZWJDb3JlL2luc3BlY3Rvci9JbnNwZWN0b3JUaW1lbGluZUFnZW50LmNwcApAQCAtMTAzLDcg
KzEwMyw3IEBAIHZvaWQgSW5zcGVjdG9yVGltZWxpbmVBZ2VudDo6ZGlkQ3JlYXRlRnJvbnRlbmRB
bmRCYWNrZW5kKEluc3BlY3Rvcjo6RnJvbnRlbmRDaGFuCiB2b2lkIEluc3BlY3RvclRpbWVsaW5l
QWdlbnQ6OndpbGxEZXN0cm95RnJvbnRlbmRBbmRCYWNrZW5kKEluc3BlY3Rvcjo6RGlzY29ubmVj
dFJlYXNvbiByZWFzb24pCiB7CiAgICAgbV9mcm9udGVuZERpc3BhdGNoZXIgPSBudWxscHRyOwot
ICAgIG1fYmFja2VuZERpc3BhdGNoZXIuY2xlYXIoKTsKKyAgICBtX2JhY2tlbmREaXNwYXRjaGVy
ID0gbnVsbHB0cjsKIAogICAgIG1faW5zdHJ1bWVudGluZ0FnZW50cy0+c2V0UGVyc2lzdGVudElu
c3BlY3RvclRpbWVsaW5lQWdlbnQobnVsbHB0cik7CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJD
b3JlL2luc3BlY3Rvci9JbnNwZWN0b3JXb3JrZXJBZ2VudC5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9p
bnNwZWN0b3IvSW5zcGVjdG9yV29ya2VyQWdlbnQuY3BwCmluZGV4IGRlYmM2OTg3OTVkOThjNDJi
OGViMThjMTBmZGEyYTI1Zjg1ZjJlOWIuLjVlMjFmMzViYjQ4MDNiZWIxZWEyZDU5ODRiNDJkMDg2
NjQ1ZDkxODEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9JbnNwZWN0b3JX
b3JrZXJBZ2VudC5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL0luc3BlY3Rvcldv
cmtlckFnZW50LmNwcApAQCAtMTI3LDcgKzEyNyw3IEBAIHZvaWQgSW5zcGVjdG9yV29ya2VyQWdl
bnQ6OndpbGxEZXN0cm95RnJvbnRlbmRBbmRCYWNrZW5kKEluc3BlY3Rvcjo6RGlzY29ubmVjdFJl
CiAgICAgZGlzYWJsZSh1bnVzZWQpOwogCiAgICAgbV9mcm9udGVuZERpc3BhdGNoZXIgPSBudWxs
cHRyOwotICAgIG1fYmFja2VuZERpc3BhdGNoZXIuY2xlYXIoKTsKKyAgICBtX2JhY2tlbmREaXNw
YXRjaGVyID0gbnVsbHB0cjsKIH0KIAogdm9pZCBJbnNwZWN0b3JXb3JrZXJBZ2VudDo6ZW5hYmxl
KEVycm9yU3RyaW5nJikKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9QYWdl
UnVudGltZUFnZW50LmNwcCBiL1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9QYWdlUnVudGltZUFn
ZW50LmNwcAppbmRleCA5M2RiNTcyYTdmMDQ1NTA1YjllNTE1ZTUwOTBjNGZjMGI1MDIxZTJkLi5l
MjQ0NWFiZjQ0M2QwOGY0Mzg0YTAzOWJjOWU1NWQ4ZDVmM2Y3MTJiIDEwMDY0NAotLS0gYS9Tb3Vy
Y2UvV2ViQ29yZS9pbnNwZWN0b3IvUGFnZVJ1bnRpbWVBZ2VudC5jcHAKKysrIGIvU291cmNlL1dl
YkNvcmUvaW5zcGVjdG9yL1BhZ2VSdW50aW1lQWdlbnQuY3BwCkBAIC02OSw3ICs2OSw3IEBAIHZv
aWQgUGFnZVJ1bnRpbWVBZ2VudDo6ZGlkQ3JlYXRlRnJvbnRlbmRBbmRCYWNrZW5kKEluc3BlY3Rv
cjo6RnJvbnRlbmRDaGFubmVsKiBmCiB2b2lkIFBhZ2VSdW50aW1lQWdlbnQ6OndpbGxEZXN0cm95
RnJvbnRlbmRBbmRCYWNrZW5kKEluc3BlY3Rvcjo6RGlzY29ubmVjdFJlYXNvbiByZWFzb24pCiB7
CiAgICAgbV9mcm9udGVuZERpc3BhdGNoZXIgPSBudWxscHRyOwotICAgIG1fYmFja2VuZERpc3Bh
dGNoZXIuY2xlYXIoKTsKKyAgICBtX2JhY2tlbmREaXNwYXRjaGVyID0gbnVsbHB0cjsKIAogICAg
IFN0cmluZyB1bnVzZWQ7CiAgICAgZGlzYWJsZSh1bnVzZWQpOwpkaWZmIC0tZ2l0IGEvU291cmNl
L1dlYkNvcmUvaW5zcGVjdG9yL1dlYkluamVjdGVkU2NyaXB0TWFuYWdlci5jcHAgYi9Tb3VyY2Uv
V2ViQ29yZS9pbnNwZWN0b3IvV2ViSW5qZWN0ZWRTY3JpcHRNYW5hZ2VyLmNwcAppbmRleCA5ZjRh
ZjQyNjkzZWM1NzU5NTMxMzM5NDQ2MGIxOTA1ZGZlMGFkNTg3Li41NjE5NmYwYWUzNzFlZjQ0M2Mw
NTIzZWIzMWJiNmZjNWVhZjNlNWIxIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0
b3IvV2ViSW5qZWN0ZWRTY3JpcHRNYW5hZ2VyLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9pbnNw
ZWN0b3IvV2ViSW5qZWN0ZWRTY3JpcHRNYW5hZ2VyLmNwcApAQCAtNDQsNyArNDQsNyBAQCB2b2lk
IFdlYkluamVjdGVkU2NyaXB0TWFuYWdlcjo6ZGlzY29ubmVjdCgpCiAgICAgSW5qZWN0ZWRTY3Jp
cHRNYW5hZ2VyOjpkaXNjb25uZWN0KCk7CiAKICAgICBtX2NvbW1hbmRMaW5lQVBJSG9zdC0+ZGlz
Y29ubmVjdCgpOwotICAgIG1fY29tbWFuZExpbmVBUElIb3N0LmNsZWFyKCk7CisgICAgbV9jb21t
YW5kTGluZUFQSUhvc3QgPSBudWxscHRyOwogfQogCiB2b2lkIFdlYkluamVjdGVkU2NyaXB0TWFu
YWdlcjo6ZGlkQ3JlYXRlSW5qZWN0ZWRTY3JpcHQoSW5qZWN0ZWRTY3JpcHQgaW5qZWN0ZWRTY3Jp
cHQpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvV29ya2VySW5zcGVjdG9y
Q29udHJvbGxlci5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvV29ya2VySW5zcGVjdG9y
Q29udHJvbGxlci5jcHAKaW5kZXggZjFmZTQxMDA1YWRmZWE0YmMwMWUwYWQ1Yjc3ZjU4ZjBiOTZj
MjcwZC4uZDgzNGUwZWE5ZjVhMzAwYTgzMjRmNGFmMWQ2NjZkM2I5MDZhYzY1MiAxMDA2NDQKLS0t
IGEvU291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL1dvcmtlckluc3BlY3RvckNvbnRyb2xsZXIuY3Bw
CisrKyBiL1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9Xb3JrZXJJbnNwZWN0b3JDb250cm9sbGVy
LmNwcApAQCAtMTI2LDcgKzEyNiw3IEBAIHZvaWQgV29ya2VySW5zcGVjdG9yQ29udHJvbGxlcjo6
ZGlzY29ubmVjdEZyb250ZW5kKEluc3BlY3Rvcjo6RGlzY29ubmVjdFJlYXNvbiByCiAKICAgICBt
X2FnZW50cy53aWxsRGVzdHJveUZyb250ZW5kQW5kQmFja2VuZChyZWFzb24pOwogICAgIG1fYmFj
a2VuZERpc3BhdGNoZXItPmNsZWFyRnJvbnRlbmQoKTsKLSAgICBtX2JhY2tlbmREaXNwYXRjaGVy
LmNsZWFyKCk7CisgICAgbV9iYWNrZW5kRGlzcGF0Y2hlciA9IG51bGxwdHI7CiAgICAgbV9mcm9u
dGVuZENoYW5uZWwgPSBudWxscHRyOwogfQogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9p
bnNwZWN0b3IvV29ya2VyUnVudGltZUFnZW50LmNwcCBiL1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rv
ci9Xb3JrZXJSdW50aW1lQWdlbnQuY3BwCmluZGV4IDIwNmE0MWY1ZmI0MmNkMTVhMzM2Y2NiMzk0
YjJlYWM1MWRlNTRmZmEuLjEyMjJlNTUyNzk4YmI2MzczOTlmOGFlNzU3YjRmZjRmZGJkMmU1MGQg
MTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9Xb3JrZXJSdW50aW1lQWdlbnQu
Y3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9Xb3JrZXJSdW50aW1lQWdlbnQuY3Bw
CkBAIC02MCw3ICs2MCw3IEBAIHZvaWQgV29ya2VyUnVudGltZUFnZW50OjpkaWRDcmVhdGVGcm9u
dGVuZEFuZEJhY2tlbmQoSW5zcGVjdG9yOjpGcm9udGVuZENoYW5uZWwqCiAKIHZvaWQgV29ya2Vy
UnVudGltZUFnZW50Ojp3aWxsRGVzdHJveUZyb250ZW5kQW5kQmFja2VuZChJbnNwZWN0b3I6OkRp
c2Nvbm5lY3RSZWFzb24gcmVhc29uKQogewotICAgIG1fYmFja2VuZERpc3BhdGNoZXIuY2xlYXIo
KTsKKyAgICBtX2JhY2tlbmREaXNwYXRjaGVyID0gbnVsbHB0cjsKIAogICAgIEluc3BlY3RvclJ1
bnRpbWVBZ2VudDo6d2lsbERlc3Ryb3lGcm9udGVuZEFuZEJhY2tlbmQocmVhc29uKTsKIH0KZGlm
ZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2xvYWRlci9Eb2N1bWVudExvYWRlci5jcHAgYi9Tb3Vy
Y2UvV2ViQ29yZS9sb2FkZXIvRG9jdW1lbnRMb2FkZXIuY3BwCmluZGV4IDVlYzQ3YWMzMWYzMzVi
MzVhZWUyODc3MjJkYjYwYzU0NDZkMWJiOGEuLjdjYTFmMjM4NjZlNmQxNzc1YzA2YTUyYWNlMzIy
MmMyMTE1NGI0OTUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2xvYWRlci9Eb2N1bWVudExv
YWRlci5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvbG9hZGVyL0RvY3VtZW50TG9hZGVyLmNwcApA
QCAtMTUyNCw3ICsxNTI0LDcgQEAgdm9pZCBEb2N1bWVudExvYWRlcjo6Z2V0SWNvbkxvYWREZWNp
c2lvbkZvckljb25VUkwoY29uc3QgU3RyaW5nJiB1cmxTdHJpbmcpCiB2b2lkIERvY3VtZW50TG9h
ZGVyOjpjb250aW51ZUljb25Mb2FkV2l0aERlY2lzaW9uKEljb25Mb2FkRGVjaXNpb24gZGVjaXNp
b24pCiB7CiAgICAgQVNTRVJUKG1faWNvbkxvYWREZWNpc2lvbkNhbGxiYWNrKTsKLSAgICBtX2lj
b25Mb2FkRGVjaXNpb25DYWxsYmFjayA9IDA7CisgICAgbV9pY29uTG9hZERlY2lzaW9uQ2FsbGJh
Y2sgPSBudWxscHRyOwogICAgIGlmIChtX2ZyYW1lKQogICAgICAgICBtX2ZyYW1lLT5sb2FkZXIo
KS5pY29uKCkuY29udGludWVMb2FkV2l0aERlY2lzaW9uKGRlY2lzaW9uKTsKIH0KZGlmZiAtLWdp
dCBhL1NvdXJjZS9XZWJDb3JlL2xvYWRlci9Eb2N1bWVudFRocmVhZGFibGVMb2FkZXIuY3BwIGIv
U291cmNlL1dlYkNvcmUvbG9hZGVyL0RvY3VtZW50VGhyZWFkYWJsZUxvYWRlci5jcHAKaW5kZXgg
MWU4NmZhYzFiZGY4MjlhNjNlMTY5MGFmMmEzZTQ3NTI2MzIwN2QxYy4uYjBlNTg5OGJiY2Y4MGY5
ZmZhOWQyODY1NGIyNzRlY2ZhYjgyOWZmMSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvbG9h
ZGVyL0RvY3VtZW50VGhyZWFkYWJsZUxvYWRlci5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvbG9h
ZGVyL0RvY3VtZW50VGhyZWFkYWJsZUxvYWRlci5jcHAKQEAgLTY0LDcgKzY0LDcgQEAgUGFzc1Jl
ZlB0cjxEb2N1bWVudFRocmVhZGFibGVMb2FkZXI+IERvY3VtZW50VGhyZWFkYWJsZUxvYWRlcjo6
Y3JlYXRlKERvY3VtZW50JgogewogICAgIFJlZlB0cjxEb2N1bWVudFRocmVhZGFibGVMb2FkZXI+
IGxvYWRlciA9IGFkb3B0UmVmKG5ldyBEb2N1bWVudFRocmVhZGFibGVMb2FkZXIoZG9jdW1lbnQs
IGNsaWVudCwgTG9hZEFzeW5jaHJvbm91c2x5LCByZXF1ZXN0LCBvcHRpb25zKSk7CiAgICAgaWYg
KCFsb2FkZXItPm1fcmVzb3VyY2UpCi0gICAgICAgIGxvYWRlciA9IDA7CisgICAgICAgIGxvYWRl
ciA9IG51bGxwdHI7CiAgICAgcmV0dXJuIGxvYWRlci5yZWxlYXNlKCk7CiB9CiAKZGlmZiAtLWdp
dCBhL1NvdXJjZS9XZWJDb3JlL2xvYWRlci9Eb2N1bWVudFdyaXRlci5jcHAgYi9Tb3VyY2UvV2Vi
Q29yZS9sb2FkZXIvRG9jdW1lbnRXcml0ZXIuY3BwCmluZGV4IGNjNTEzOTNjMTBmNjM2YmQ3NmVk
MTA5OGIzZWJjYzM2YzQyMmMxMTEuLmExYzM3N2Y4ZTFiMzQ2MDdkMjU3NTQxNWFjZmE0YWJjZjkx
MGI0MzEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2xvYWRlci9Eb2N1bWVudFdyaXRlci5j
cHAKKysrIGIvU291cmNlL1dlYkNvcmUvbG9hZGVyL0RvY3VtZW50V3JpdGVyLmNwcApAQCAtOTAs
NyArOTAsNyBAQCB2b2lkIERvY3VtZW50V3JpdGVyOjpyZXBsYWNlRG9jdW1lbnQoY29uc3QgU3Ry
aW5nJiBzb3VyY2UsIERvY3VtZW50KiBvd25lckRvY3VtZQogCiB2b2lkIERvY3VtZW50V3JpdGVy
OjpjbGVhcigpCiB7Ci0gICAgbV9kZWNvZGVyID0gMDsKKyAgICBtX2RlY29kZXIgPSBudWxscHRy
OwogICAgIG1faGFzUmVjZWl2ZWRTb21lRGF0YSA9IGZhbHNlOwogICAgIGlmICghbV9lbmNvZGlu
Z1dhc0Nob3NlbkJ5VXNlcikKICAgICAgICAgbV9lbmNvZGluZyA9IFN0cmluZygpOwpAQCAtMjQ1
LDcgKzI0NSw3IEBAIHZvaWQgRG9jdW1lbnRXcml0ZXI6OmVuZCgpCiAgICAgaWYgKCFtX3BhcnNl
cikKICAgICAgICAgcmV0dXJuOwogICAgIG1fcGFyc2VyLT5maW5pc2goKTsKLSAgICBtX3BhcnNl
ciA9IDA7CisgICAgbV9wYXJzZXIgPSBudWxscHRyOwogfQogCiB2b2lkIERvY3VtZW50V3JpdGVy
OjpzZXRFbmNvZGluZyhjb25zdCBTdHJpbmcmIG5hbWUsIGJvb2wgdXNlckNob3NlbikKZGlmZiAt
LWdpdCBhL1NvdXJjZS9XZWJDb3JlL2xvYWRlci9GcmFtZUxvYWRlci5jcHAgYi9Tb3VyY2UvV2Vi
Q29yZS9sb2FkZXIvRnJhbWVMb2FkZXIuY3BwCmluZGV4IDUyMmIxNTdkYmNiZWMwYjUwMTFmOTVl
ODY2NjZhOWUyMGM2OWJmY2QuLjNiZGI2MjFkN2RhYjU2MzZlMDA5ZTk1YTFjM2IwYjdmOWNiZjM4
OGIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2xvYWRlci9GcmFtZUxvYWRlci5jcHAKKysr
IGIvU291cmNlL1dlYkNvcmUvbG9hZGVyL0ZyYW1lTG9hZGVyLmNwcApAQCAtNjkyLDcgKzY5Miw3
IEBAIHZvaWQgRnJhbWVMb2FkZXI6OmRpZEJlZ2luRG9jdW1lbnQoYm9vbCBkaXNwYXRjaCkKIAog
ICAgIGlmIChtX3BlbmRpbmdTdGF0ZU9iamVjdCkgewogICAgICAgICBtX2ZyYW1lLmRvY3VtZW50
KCktPnN0YXRlUG9wcGVkKG1fcGVuZGluZ1N0YXRlT2JqZWN0LmdldCgpKTsKLSAgICAgICAgbV9w
ZW5kaW5nU3RhdGVPYmplY3QuY2xlYXIoKTsKKyAgICAgICAgbV9wZW5kaW5nU3RhdGVPYmplY3Qg
PSBudWxscHRyOwogICAgIH0KIAogICAgIGlmIChkaXNwYXRjaCkKQEAgLTgxOCw3ICs4MTgsNyBA
QCB2b2lkIEZyYW1lTG9hZGVyOjpjaGVja0NvbXBsZXRlZCgpCiAKICAgICAvLyBPSywgY29tcGxl
dGVkLgogICAgIG1faXNDb21wbGV0ZSA9IHRydWU7Ci0gICAgbV9yZXF1ZXN0ZWRIaXN0b3J5SXRl
bSA9IDA7CisgICAgbV9yZXF1ZXN0ZWRIaXN0b3J5SXRlbSA9IG51bGxwdHI7CiAgICAgbV9mcmFt
ZS5kb2N1bWVudCgpLT5zZXRSZWFkeVN0YXRlKERvY3VtZW50OjpDb21wbGV0ZSk7CiAKICNpZiBQ
TEFURk9STShJT1MpCkBAIC0xMTM3LDcgKzExMzcsNyBAQCB2b2lkIEZyYW1lTG9hZGVyOjpzZXR1
cEZvclJlcGxhY2UoKQogICAgIG1fY2xpZW50LnJldmVydFRvUHJvdmlzaW9uYWxTdGF0ZShtX2Rv
Y3VtZW50TG9hZGVyLmdldCgpKTsKICAgICBzZXRTdGF0ZShGcmFtZVN0YXRlUHJvdmlzaW9uYWwp
OwogICAgIG1fcHJvdmlzaW9uYWxEb2N1bWVudExvYWRlciA9IG1fZG9jdW1lbnRMb2FkZXI7Ci0g
ICAgbV9kb2N1bWVudExvYWRlciA9IDA7CisgICAgbV9kb2N1bWVudExvYWRlciA9IG51bGxwdHI7
CiAgICAgZGV0YWNoQ2hpbGRyZW4oKTsKIH0KIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUv
bG9hZGVyL1Byb2dyZXNzVHJhY2tlci5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9sb2FkZXIvUHJvZ3Jl
c3NUcmFja2VyLmNwcAppbmRleCAwNDA1NGRlNGVhYjM5NTFmOTVlMDdlOWRlZDMyZGM5MTZmZDdl
ZTA2Li5kNTZjYTA1ZGI5OTBiMzBhNmIwN2QxMmZiMmMwOWU5OTZiNzk3MjBmIDEwMDY0NAotLS0g
YS9Tb3VyY2UvV2ViQ29yZS9sb2FkZXIvUHJvZ3Jlc3NUcmFja2VyLmNwcAorKysgYi9Tb3VyY2Uv
V2ViQ29yZS9sb2FkZXIvUHJvZ3Jlc3NUcmFja2VyLmNwcApAQCAtMTEzLDcgKzExMyw3IEBAIHZv
aWQgUHJvZ3Jlc3NUcmFja2VyOjpyZXNldCgpCiAgICAgbV9sYXN0Tm90aWZpZWRQcm9ncmVzc1Rp
bWUgPSBzdGQ6OmNocm9ubzo6c3RlYWR5X2Nsb2NrOjp0aW1lX3BvaW50KCk7CiAgICAgbV9maW5h
bFByb2dyZXNzQ2hhbmdlZFNlbnQgPSBmYWxzZTsKICAgICBtX251bVByb2dyZXNzVHJhY2tlZEZy
YW1lcyA9IDA7Ci0gICAgbV9vcmlnaW5hdGluZ1Byb2dyZXNzRnJhbWUgPSAwOworICAgIG1fb3Jp
Z2luYXRpbmdQcm9ncmVzc0ZyYW1lID0gbnVsbHB0cjsKIAogICAgIG1faGVhcnRiZWF0c1dpdGhO
b1Byb2dyZXNzID0gMDsKICAgICBtX3RvdGFsQnl0ZXNSZWNlaXZlZEJlZm9yZVByZXZpb3VzSGVh
cnRiZWF0ID0gMDsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2xvYWRlci9SZXNvdXJjZUxv
YWRlci5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9sb2FkZXIvUmVzb3VyY2VMb2FkZXIuY3BwCmluZGV4
IDQzMWEwY2IxZDQ0NWJlMmZmNTkwM2Q2MjM1NDc2NmFhY2NlNDM1MzYuLjE2NmE0NTRjMTA5MGJh
OGJkMmRkYzBjY2M3YmEyMDMxMzJhOTEzODAgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2xv
YWRlci9SZXNvdXJjZUxvYWRlci5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvbG9hZGVyL1Jlc291
cmNlTG9hZGVyLmNwcApAQCAtOTAsOCArOTAsOCBAQCB2b2lkIFJlc291cmNlTG9hZGVyOjpyZWxl
YXNlUmVzb3VyY2VzKCkKICAgICAvLyBoYXMgYmVlbiBkZWFsbG9jYXRlZCBhbmQgYWxzbyB0byBh
dm9pZCByZWVudGVyaW5nIHRoaXMgbWV0aG9kLgogICAgIFJlZjxSZXNvdXJjZUxvYWRlcj4gcHJv
dGVjdCgqdGhpcyk7CiAKLSAgICBtX2ZyYW1lID0gMDsKLSAgICBtX2RvY3VtZW50TG9hZGVyID0g
MDsKKyAgICBtX2ZyYW1lID0gbnVsbHB0cjsKKyAgICBtX2RvY3VtZW50TG9hZGVyID0gbnVsbHB0
cjsKICAgICAKICAgICAvLyBXZSBuZWVkIHRvIHNldCByZWFjaGVkVGVybWluYWxTdGF0ZSB0byB0
cnVlIGJlZm9yZSB3ZSByZWxlYXNlCiAgICAgLy8gdGhlIHJlc291cmNlcyB0byBwcmV2ZW50IGEg
ZG91YmxlIGRlYWxsb2Mgb2YgV2ViVmlldyA8cmRhcjovL3Byb2JsZW0vNDM3MjYyOD4KQEAgLTEw
NCwxMSArMTA0LDExIEBAIHZvaWQgUmVzb3VyY2VMb2FkZXI6OnJlbGVhc2VSZXNvdXJjZXMoKQog
ICAgICAgICAvLyBDbGVhciBvdXQgdGhlIFJlc291cmNlSGFuZGxlJ3MgY2xpZW50IHNvIHRoYXQg
aXQgZG9lc24ndCB0cnkgdG8gY2FsbAogICAgICAgICAvLyB1cyBiYWNrIGFmdGVyIHdlIHJlbGVh
c2UgaXQsIHVubGVzcyBpdCBoYXMgYmVlbiByZXBsYWNlZCBieSBzb21lb25lIGVsc2UuCiAgICAg
ICAgIGlmIChtX2hhbmRsZS0+Y2xpZW50KCkgPT0gdGhpcykKLSAgICAgICAgICAgIG1faGFuZGxl
LT5zZXRDbGllbnQoMCk7Ci0gICAgICAgIG1faGFuZGxlID0gMDsKKyAgICAgICAgICAgIG1faGFu
ZGxlLT5zZXRDbGllbnQobnVsbHB0cik7CisgICAgICAgIG1faGFuZGxlID0gbnVsbHB0cjsKICAg
ICB9CiAKLSAgICBtX3Jlc291cmNlRGF0YSA9IDA7CisgICAgbV9yZXNvdXJjZURhdGEgPSBudWxs
cHRyOwogICAgIG1fZGVmZXJyZWRSZXF1ZXN0ID0gUmVzb3VyY2VSZXF1ZXN0KCk7CiB9CiAKQEAg
LTIyNSw3ICsyMjUsNyBAQCB2b2lkIFJlc291cmNlTG9hZGVyOjpzZXREZWZlcnNMb2FkaW5nKGJv
b2wgZGVmZXJzKQogRnJhbWVMb2FkZXIqIFJlc291cmNlTG9hZGVyOjpmcmFtZUxvYWRlcigpIGNv
bnN0CiB7CiAgICAgaWYgKCFtX2ZyYW1lKQotICAgICAgICByZXR1cm4gMDsKKyAgICAgICAgcmV0
dXJuIG51bGxwdHI7CiAgICAgcmV0dXJuICZtX2ZyYW1lLT5sb2FkZXIoKTsKIH0KIApAQCAtMjQ0
LDcgKzI0NCw3IEBAIHZvaWQgUmVzb3VyY2VMb2FkZXI6OnNldERhdGFCdWZmZXJpbmdQb2xpY3ko
RGF0YUJ1ZmZlcmluZ1BvbGljeSBkYXRhQnVmZmVyaW5nUG9sCiAKICAgICAvLyBSZXNldCBhbnkg
YWxyZWFkeSBidWZmZXJlZCBkYXRhCiAgICAgaWYgKGRhdGFCdWZmZXJpbmdQb2xpY3kgPT0gRG9O
b3RCdWZmZXJEYXRhKQotICAgICAgICBtX3Jlc291cmNlRGF0YSA9IDA7CisgICAgICAgIG1fcmVz
b3VyY2VEYXRhID0gbnVsbHB0cjsKIH0KICAgICAKIHZvaWQgUmVzb3VyY2VMb2FkZXI6OndpbGxT
d2l0Y2hUb1N1YnN0aXR1dGVSZXNvdXJjZSgpCkBAIC01MzAsNyArNTMwLDcgQEAgdm9pZCBSZXNv
dXJjZUxvYWRlcjo6Y2FuY2VsKGNvbnN0IFJlc291cmNlRXJyb3ImIGVycm9yKQogICAgICAgICBt
X2RvY3VtZW50TG9hZGVyLT5jYW5jZWxQZW5kaW5nU3Vic3RpdHV0ZUxvYWQodGhpcyk7CiAgICAg
ICAgIGlmIChtX2hhbmRsZSkgewogICAgICAgICAgICAgbV9oYW5kbGUtPmNhbmNlbCgpOwotICAg
ICAgICAgICAgbV9oYW5kbGUgPSAwOworICAgICAgICAgICAgbV9oYW5kbGUgPSBudWxscHRyOwog
ICAgICAgICB9CiAgICAgICAgIGNsZWFudXBGb3JFcnJvcihub25OdWxsRXJyb3IpOwogICAgIH0K
ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2xvYWRlci9hcHBjYWNoZS9BcHBsaWNhdGlvbkNh
Y2hlR3JvdXAuY3BwIGIvU291cmNlL1dlYkNvcmUvbG9hZGVyL2FwcGNhY2hlL0FwcGxpY2F0aW9u
Q2FjaGVHcm91cC5jcHAKaW5kZXggNjI3YzBmZTc5ZTc1ZTA4MzljNjYxOWNhNzRhYjk3MDkxODk4
OTJhNi4uNTliY2FjOWExMDBiYmM1NDM4YWQ0MDMyN2ZmN2ZmY2QzOTg5NzA2MyAxMDA2NDQKLS0t
IGEvU291cmNlL1dlYkNvcmUvbG9hZGVyL2FwcGNhY2hlL0FwcGxpY2F0aW9uQ2FjaGVHcm91cC5j
cHAKKysrIGIvU291cmNlL1dlYkNvcmUvbG9hZGVyL2FwcGNhY2hlL0FwcGxpY2F0aW9uQ2FjaGVH
cm91cC5jcHAKQEAgLTMyNyw3ICszMjcsNyBAQCB2b2lkIEFwcGxpY2F0aW9uQ2FjaGVHcm91cDo6
c3RvcExvYWRpbmcoKQogICAgICAgICBtX21hbmlmZXN0SGFuZGxlLT5zZXRDbGllbnQoMCk7CiAK
ICAgICAgICAgbV9tYW5pZmVzdEhhbmRsZS0+Y2FuY2VsKCk7Ci0gICAgICAgIG1fbWFuaWZlc3RI
YW5kbGUgPSAwOworICAgICAgICBtX21hbmlmZXN0SGFuZGxlID0gbnVsbHB0cjsKICAgICB9CiAg
ICAgCiAgICAgaWYgKG1fY3VycmVudEhhbmRsZSkgewpAQCAtMzM4LDExICszMzgsMTEgQEAgdm9p
ZCBBcHBsaWNhdGlvbkNhY2hlR3JvdXA6OnN0b3BMb2FkaW5nKCkKICAgICAgICAgbV9jdXJyZW50
SGFuZGxlLT5zZXRDbGllbnQoMCk7CiAKICAgICAgICAgbV9jdXJyZW50SGFuZGxlLT5jYW5jZWwo
KTsKLSAgICAgICAgbV9jdXJyZW50SGFuZGxlID0gMDsKKyAgICAgICAgbV9jdXJyZW50SGFuZGxl
ID0gbnVsbHB0cjsKICAgICB9ICAgIAogCiAgICAgLy8gRklYTUU6IFJlc2V0dGluZyBqdXN0IGEg
dGlueSBwYXJ0IG9mIHRoZSBzdGF0ZSBpbiB0aGlzIGZ1bmN0aW9uIGlzIGNvbmZ1c2luZy4gQ2Fs
bGVycyBoYXZlIHRvIHRha2UgY2FyZSBvZiBhIGxvdCBtb3JlLgotICAgIG1fY2FjaGVCZWluZ1Vw
ZGF0ZWQgPSAwOworICAgIG1fY2FjaGVCZWluZ1VwZGF0ZWQgPSBudWxscHRyOwogICAgIG1fcGVu
ZGluZ0VudHJpZXMuY2xlYXIoKTsKIH0gICAgCiAKQEAgLTUyMSw3ICs1MjEsNyBAQCB2b2lkIEFw
cGxpY2F0aW9uQ2FjaGVHcm91cDo6ZGlkUmVjZWl2ZVJlc3BvbnNlKFJlc291cmNlSGFuZGxlKiBo
YW5kbGUsIGNvbnN0IFJlcwogICAgICAgICAgICAgbV9jYWNoZUJlaW5nVXBkYXRlZC0+YWRkUmVz
b3VyY2UoQXBwbGljYXRpb25DYWNoZVJlc291cmNlOjpjcmVhdGUodXJsLCBuZXdlc3RDYWNoZWRS
ZXNvdXJjZS0+cmVzcG9uc2UoKSwgdHlwZSwgbmV3ZXN0Q2FjaGVkUmVzb3VyY2UtPmRhdGEoKSwg
bmV3ZXN0Q2FjaGVkUmVzb3VyY2UtPnBhdGgoKSkpOwogICAgICAgICAgICAgbV9wZW5kaW5nRW50
cmllcy5yZW1vdmUobV9jdXJyZW50SGFuZGxlLT5maXJzdFJlcXVlc3QoKS51cmwoKSk7CiAgICAg
ICAgICAgICBtX2N1cnJlbnRIYW5kbGUtPmNhbmNlbCgpOwotICAgICAgICAgICAgbV9jdXJyZW50
SGFuZGxlID0gMDsKKyAgICAgICAgICAgIG1fY3VycmVudEhhbmRsZSA9IG51bGxwdHI7CiAgICAg
ICAgICAgICAvLyBMb2FkIHRoZSBuZXh0IHJlc291cmNlLCBpZiBhbnkuCiAgICAgICAgICAgICBz
dGFydExvYWRpbmdFbnRyeSgpOwogICAgICAgICAgICAgcmV0dXJuOwpAQCAtNTM4LDcgKzUzOCw3
IEBAIHZvaWQgQXBwbGljYXRpb25DYWNoZUdyb3VwOjpkaWRSZWNlaXZlUmVzcG9uc2UoUmVzb3Vy
Y2VIYW5kbGUqIGhhbmRsZSwgY29uc3QgUmVzCiAgICAgICAgIH0gZWxzZSBpZiAocmVzcG9uc2Uu
aHR0cFN0YXR1c0NvZGUoKSA9PSA0MDQgfHwgcmVzcG9uc2UuaHR0cFN0YXR1c0NvZGUoKSA9PSA0
MTApIHsKICAgICAgICAgICAgIC8vIFNraXAgdGhpcyByZXNvdXJjZS4gSXQgaXMgZHJvcHBlZCBm
cm9tIHRoZSBjYWNoZS4KICAgICAgICAgICAgIG1fY3VycmVudEhhbmRsZS0+Y2FuY2VsKCk7Ci0g
ICAgICAgICAgICBtX2N1cnJlbnRIYW5kbGUgPSAwOworICAgICAgICAgICAgbV9jdXJyZW50SGFu
ZGxlID0gbnVsbHB0cjsKICAgICAgICAgICAgIG1fcGVuZGluZ0VudHJpZXMucmVtb3ZlKHVybCk7
CiAgICAgICAgICAgICAvLyBMb2FkIHRoZSBuZXh0IHJlc291cmNlLCBpZiBhbnkuCiAgICAgICAg
ICAgICBzdGFydExvYWRpbmdFbnRyeSgpOwpAQCAtNTUxLDcgKzU1MSw3IEBAIHZvaWQgQXBwbGlj
YXRpb25DYWNoZUdyb3VwOjpkaWRSZWNlaXZlUmVzcG9uc2UoUmVzb3VyY2VIYW5kbGUqIGhhbmRs
ZSwgY29uc3QgUmVzCiAgICAgICAgICAgICBtX2NhY2hlQmVpbmdVcGRhdGVkLT5hZGRSZXNvdXJj
ZShBcHBsaWNhdGlvbkNhY2hlUmVzb3VyY2U6OmNyZWF0ZSh1cmwsIG5ld2VzdENhY2hlZFJlc291
cmNlLT5yZXNwb25zZSgpLCB0eXBlLCBuZXdlc3RDYWNoZWRSZXNvdXJjZS0+ZGF0YSgpLCBuZXdl
c3RDYWNoZWRSZXNvdXJjZS0+cGF0aCgpKSk7CiAgICAgICAgICAgICBtX3BlbmRpbmdFbnRyaWVz
LnJlbW92ZShtX2N1cnJlbnRIYW5kbGUtPmZpcnN0UmVxdWVzdCgpLnVybCgpKTsKICAgICAgICAg
ICAgIG1fY3VycmVudEhhbmRsZS0+Y2FuY2VsKCk7Ci0gICAgICAgICAgICBtX2N1cnJlbnRIYW5k
bGUgPSAwOworICAgICAgICAgICAgbV9jdXJyZW50SGFuZGxlID0gbnVsbHB0cjsKICAgICAgICAg
ICAgIC8vIExvYWQgdGhlIG5leHQgcmVzb3VyY2UsIGlmIGFueS4KICAgICAgICAgICAgIHN0YXJ0
TG9hZGluZ0VudHJ5KCk7CiAgICAgICAgIH0KQEAgLTU5NSw3ICs1OTUsNyBAQCB2b2lkIEFwcGxp
Y2F0aW9uQ2FjaGVHcm91cDo6ZGlkRmluaXNoTG9hZGluZyhSZXNvdXJjZUhhbmRsZSogaGFuZGxl
LCBkb3VibGUgZmluaQogICAgIEFTU0VSVChtX2NhY2hlQmVpbmdVcGRhdGVkKTsKIAogICAgIG1f
Y2FjaGVCZWluZ1VwZGF0ZWQtPmFkZFJlc291cmNlKG1fY3VycmVudFJlc291cmNlLnJlbGVhc2Uo
KSk7Ci0gICAgbV9jdXJyZW50SGFuZGxlID0gMDsKKyAgICBtX2N1cnJlbnRIYW5kbGUgPSBudWxs
cHRyOwogCiAgICAgLy8gV2hpbGUgZG93bmxvYWRpbmcgY2hlY2sgdG8gc2VlIGlmIHdlIGhhdmUg
ZXhjZWVkZWQgdGhlIGF2YWlsYWJsZSBxdW90YS4KICAgICAvLyBXZSBjYW4gc3RvcCBpbW1lZGlh
dGVseSBpZiB3ZSBoYXZlIGFscmVhZHkgcHJldmlvdXNseSBmYWlsZWQKQEAgLTYwMyw3ICs2MDMs
NyBAQCB2b2lkIEFwcGxpY2F0aW9uQ2FjaGVHcm91cDo6ZGlkRmluaXNoTG9hZGluZyhSZXNvdXJj
ZUhhbmRsZSogaGFuZGxlLCBkb3VibGUgZmluaQogICAgIC8vIG9mIHRoZSBxdW90YSBiZWluZyBy
ZWFjaGVkIGFuZCBkZWNpZGVkIG5vdCB0byBpbmNyZWFzZSBpdCB0aGVuLgogICAgIC8vIEZJWE1F
OiBTaG91bGQgd2UgYnJlYWsgZWFybGllciBhbmQgcHJldmVudCByZWRvd25sb2FkaW5nIG9uIGxh
dGVyIHBhZ2UgbG9hZHM/CiAgICAgaWYgKG1fb3JpZ2luUXVvdGFFeGNlZWRlZFByZXZpb3VzbHkg
JiYgbV9hdmFpbGFibGVTcGFjZUluUXVvdGEgPCBtX2NhY2hlQmVpbmdVcGRhdGVkLT5lc3RpbWF0
ZWRTaXplSW5TdG9yYWdlKCkpIHsKLSAgICAgICAgbV9jdXJyZW50UmVzb3VyY2UgPSAwOworICAg
ICAgICBtX2N1cnJlbnRSZXNvdXJjZSA9IG51bGxwdHI7CiAgICAgICAgIG1fZnJhbWUtPmRvY3Vt
ZW50KCktPmFkZENvbnNvbGVNZXNzYWdlKE1lc3NhZ2VTb3VyY2U6OkFwcENhY2hlLCBNZXNzYWdl
TGV2ZWw6OkVycm9yLCBBU0NJSUxpdGVyYWwoIkFwcGxpY2F0aW9uIENhY2hlIHVwZGF0ZSBmYWls
ZWQsIGJlY2F1c2Ugc2l6ZSBxdW90YSB3YXMgZXhjZWVkZWQuIikpOwogICAgICAgICBjYWNoZVVw
ZGF0ZUZhaWxlZCgpOwogICAgICAgICByZXR1cm47CkBAIC02MzEsNyArNjMxLDcgQEAgdm9pZCBB
cHBsaWNhdGlvbkNhY2hlR3JvdXA6OmRpZEZhaWwoUmVzb3VyY2VIYW5kbGUqIGhhbmRsZSwgY29u
c3QgUmVzb3VyY2VFcnJvciYKICAgICAgICAgdXJsLnJlbW92ZUZyYWdtZW50SWRlbnRpZmllcigp
OwogCiAgICAgQVNTRVJUKCFtX2N1cnJlbnRSZXNvdXJjZSB8fCAhbV9wZW5kaW5nRW50cmllcy5j
b250YWlucyh1cmwpKTsKLSAgICBtX2N1cnJlbnRSZXNvdXJjZSA9IDA7CisgICAgbV9jdXJyZW50
UmVzb3VyY2UgPSBudWxscHRyOwogICAgIG1fcGVuZGluZ0VudHJpZXMucmVtb3ZlKHVybCk7CiAK
ICAgICBpZiAoKHR5cGUgJiBBcHBsaWNhdGlvbkNhY2hlUmVzb3VyY2U6OkV4cGxpY2l0KSB8fCAo
dHlwZSAmIEFwcGxpY2F0aW9uQ2FjaGVSZXNvdXJjZTo6RmFsbGJhY2spKSB7CkBAIC02OTUsNyAr
Njk1LDcgQEAgdm9pZCBBcHBsaWNhdGlvbkNhY2hlR3JvdXA6OmRpZEZpbmlzaExvYWRpbmdNYW5p
ZmVzdCgpCiAgICAgICAgIHJldHVybjsKICAgICB9CiAKLSAgICBtX21hbmlmZXN0SGFuZGxlID0g
MDsKKyAgICBtX21hbmlmZXN0SGFuZGxlID0gbnVsbHB0cjsKIAogICAgIC8vIENoZWNrIGlmIHRo
ZSBtYW5pZmVzdCB3YXMgbm90IG1vZGlmaWVkLgogICAgIGlmIChpc1VwZ3JhZGVBdHRlbXB0KSB7
CkBAIC03MDYsNyArNzA2LDcgQEAgdm9pZCBBcHBsaWNhdGlvbkNhY2hlR3JvdXA6OmRpZEZpbmlz
aExvYWRpbmdNYW5pZmVzdCgpCiAgICAgICAgICAgICAobmV3ZXN0TWFuaWZlc3QtPmRhdGEoKS0+
c2l6ZSgpID09IG1fbWFuaWZlc3RSZXNvdXJjZS0+ZGF0YSgpLT5zaXplKCkgJiYgIW1lbWNtcChu
ZXdlc3RNYW5pZmVzdC0+ZGF0YSgpLT5kYXRhKCksIG1fbWFuaWZlc3RSZXNvdXJjZS0+ZGF0YSgp
LT5kYXRhKCksIG5ld2VzdE1hbmlmZXN0LT5kYXRhKCktPnNpemUoKSkpKSB7CiAKICAgICAgICAg
ICAgIG1fY29tcGxldGlvblR5cGUgPSBOb1VwZGF0ZTsKLSAgICAgICAgICAgIG1fbWFuaWZlc3RS
ZXNvdXJjZSA9IDA7CisgICAgICAgICAgICBtX21hbmlmZXN0UmVzb3VyY2UgPSBudWxscHRyOwog
ICAgICAgICAgICAgZGVsaXZlckRlbGF5ZWRNYWluUmVzb3VyY2VzKCk7CiAKICAgICAgICAgICAg
IHJldHVybjsKQEAgLTc4Miw3ICs3ODIsNyBAQCB2b2lkIEFwcGxpY2F0aW9uQ2FjaGVHcm91cDo6
ZGlkUmVhY2hPcmlnaW5RdW90YShpbnQ2NF90IHRvdGFsU3BhY2VOZWVkZWQpCiB2b2lkIEFwcGxp
Y2F0aW9uQ2FjaGVHcm91cDo6Y2FjaGVVcGRhdGVGYWlsZWQoKQogewogICAgIHN0b3BMb2FkaW5n
KCk7Ci0gICAgbV9tYW5pZmVzdFJlc291cmNlID0gMDsKKyAgICBtX21hbmlmZXN0UmVzb3VyY2Ug
PSBudWxscHRyOwogCiAgICAgLy8gV2FpdCBmb3IgbWFzdGVyIHJlc291cmNlIGxvYWRzIHRvIGZp
bmlzaC4KICAgICBtX2NvbXBsZXRpb25UeXBlID0gRmFpbHVyZTsKQEAgLTgwNyw3ICs4MDcsNyBA
QCB2b2lkIEFwcGxpY2F0aW9uQ2FjaGVHcm91cDo6bWFuaWZlc3ROb3RGb3VuZCgpCiAgICAgc3Rv
cExvYWRpbmcoKTsKIAogICAgIEFTU0VSVChtX3BlbmRpbmdFbnRyaWVzLmlzRW1wdHkoKSk7Ci0g
ICAgbV9tYW5pZmVzdFJlc291cmNlID0gMDsKKyAgICBtX21hbmlmZXN0UmVzb3VyY2UgPSBudWxs
cHRyOwogCiAgICAgd2hpbGUgKCFtX3BlbmRpbmdNYXN0ZXJSZXNvdXJjZUxvYWRlcnMuaXNFbXB0
eSgpKSB7CiAgICAgICAgIEhhc2hTZXQ8RG9jdW1lbnRMb2FkZXIqPjo6aXRlcmF0b3IgaXQgPSBt
X3BlbmRpbmdNYXN0ZXJSZXNvdXJjZUxvYWRlcnMuYmVnaW4oKTsKZGlmZiAtLWdpdCBhL1NvdXJj
ZS9XZWJDb3JlL2xvYWRlci9jYWNoZS9DYWNoZWRDU1NTdHlsZVNoZWV0LmNwcCBiL1NvdXJjZS9X
ZWJDb3JlL2xvYWRlci9jYWNoZS9DYWNoZWRDU1NTdHlsZVNoZWV0LmNwcAppbmRleCA3YzJmZTdk
ODkyNGY0ZjkwZWNkZDU4MjA2NmFmZTI3YzA5ZjMwOGMxLi42ZDExODgwMWFmODI2ODQ1ZmI2MTk5
MjcwNDRhZjliMmIyZDIzNmM0IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9sb2FkZXIvY2Fj
aGUvQ2FjaGVkQ1NTU3R5bGVTaGVldC5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvbG9hZGVyL2Nh
Y2hlL0NhY2hlZENTU1N0eWxlU2hlZXQuY3BwCkBAIC0xMzgsNyArMTM4LDcgQEAgdm9pZCBDYWNo
ZWRDU1NTdHlsZVNoZWV0OjpkZXN0cm95RGVjb2RlZERhdGEoKQogICAgICAgICByZXR1cm47CiAK
ICAgICBtX3BhcnNlZFN0eWxlU2hlZXRDYWNoZS0+cmVtb3ZlZEZyb21NZW1vcnlDYWNoZSgpOwot
ICAgIG1fcGFyc2VkU3R5bGVTaGVldENhY2hlLmNsZWFyKCk7CisgICAgbV9wYXJzZWRTdHlsZVNo
ZWV0Q2FjaGUgPSBudWxscHRyOwogCiAgICAgc2V0RGVjb2RlZFNpemUoMCk7CiB9CkBAIC0xNDYs
MTEgKzE0NiwxMSBAQCB2b2lkIENhY2hlZENTU1N0eWxlU2hlZXQ6OmRlc3Ryb3lEZWNvZGVkRGF0
YSgpCiBQYXNzUmVmUHRyPFN0eWxlU2hlZXRDb250ZW50cz4gQ2FjaGVkQ1NTU3R5bGVTaGVldDo6
cmVzdG9yZVBhcnNlZFN0eWxlU2hlZXQoY29uc3QgQ1NTUGFyc2VyQ29udGV4dCYgY29udGV4dCwg
Q2FjaGVQb2xpY3kgY2FjaGVQb2xpY3kpCiB7CiAgICAgaWYgKCFtX3BhcnNlZFN0eWxlU2hlZXRD
YWNoZSkKLSAgICAgICAgcmV0dXJuIDA7CisgICAgICAgIHJldHVybiBudWxscHRyOwogICAgIGlm
ICghbV9wYXJzZWRTdHlsZVNoZWV0Q2FjaGUtPnN1YnJlc291cmNlc0FsbG93UmV1c2UoY2FjaGVQ
b2xpY3kpKSB7CiAgICAgICAgIG1fcGFyc2VkU3R5bGVTaGVldENhY2hlLT5yZW1vdmVkRnJvbU1l
bW9yeUNhY2hlKCk7Ci0gICAgICAgIG1fcGFyc2VkU3R5bGVTaGVldENhY2hlLmNsZWFyKCk7Ci0g
ICAgICAgIHJldHVybiAwOworICAgICAgICBtX3BhcnNlZFN0eWxlU2hlZXRDYWNoZSA9IG51bGxw
dHI7CisgICAgICAgIHJldHVybiBudWxscHRyOwogICAgIH0KIAogICAgIEFTU0VSVChtX3BhcnNl
ZFN0eWxlU2hlZXRDYWNoZS0+aXNDYWNoZWFibGUoKSk7CkBAIC0xNTgsNyArMTU4LDcgQEAgUGFz
c1JlZlB0cjxTdHlsZVNoZWV0Q29udGVudHM+IENhY2hlZENTU1N0eWxlU2hlZXQ6OnJlc3RvcmVQ
YXJzZWRTdHlsZVNoZWV0KGNvbnMKIAogICAgIC8vIENvbnRleHRzIG11c3QgYmUgaWRlbnRpY2Fs
IHNvIHdlIGtub3cgd2Ugd291bGQgZ2V0IHRoZSBzYW1lIGV4YWN0IHJlc3VsdCBpZiB3ZSBwYXJz
ZWQgYWdhaW4uCiAgICAgaWYgKG1fcGFyc2VkU3R5bGVTaGVldENhY2hlLT5wYXJzZXJDb250ZXh0
KCkgIT0gY29udGV4dCkKLSAgICAgICAgcmV0dXJuIDA7CisgICAgICAgIHJldHVybiBudWxscHRy
OwogCiAgICAgZGlkQWNjZXNzRGVjb2RlZERhdGEobW9ub3RvbmljYWxseUluY3JlYXNpbmdUaW1l
KCkpOwogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9sb2FkZXIvY2FjaGUvQ2FjaGVkSW1h
Z2UuY3BwIGIvU291cmNlL1dlYkNvcmUvbG9hZGVyL2NhY2hlL0NhY2hlZEltYWdlLmNwcAppbmRl
eCA1Mjc2OWRiOTZjZTE3ZGVhZDcyMDQxYTc2ODFiYTZmMmEwYWQ1OTg5Li5kZjMzNjc1YzYzYjVk
YjRhZjAzZTMyOTM3YzkxYTlkNzM0MDRhNzBhIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9s
b2FkZXIvY2FjaGUvQ2FjaGVkSW1hZ2UuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2xvYWRlci9j
YWNoZS9DYWNoZWRJbWFnZS5jcHAKQEAgLTM2NSw4ICszNjUsOCBAQCBpbmxpbmUgdm9pZCBDYWNo
ZWRJbWFnZTo6Y2xlYXJJbWFnZSgpCiAgICAgLy8gSWYgb3VyIEltYWdlIGhhcyBhbiBvYnNlcnZl
ciwgaXQncyBhbHdheXMgdXMgc28gd2UgbmVlZCB0byBjbGVhciB0aGUgYmFjayBwb2ludGVyCiAg
ICAgLy8gYmVmb3JlIGRyb3BwaW5nIG91ciByZWZlcmVuY2UuCiAgICAgaWYgKG1faW1hZ2UpCi0g
ICAgICAgIG1faW1hZ2UtPnNldEltYWdlT2JzZXJ2ZXIoMCk7Ci0gICAgbV9pbWFnZS5jbGVhcigp
OworICAgICAgICBtX2ltYWdlLT5zZXRJbWFnZU9ic2VydmVyKG51bGxwdHIpOworICAgIG1faW1h
Z2UgPSBudWxscHRyOwogfQogCiB2b2lkIENhY2hlZEltYWdlOjphZGRJbmNyZW1lbnRhbERhdGFC
dWZmZXIoU2hhcmVkQnVmZmVyJiBkYXRhKQpAQCAtNDU4LDcgKzQ1OCw3IEBAIHZvaWQgQ2FjaGVk
SW1hZ2U6OmRlc3Ryb3lEZWNvZGVkRGF0YSgpCiB7CiAgICAgYm9vbCBjYW5EZWxldGVJbWFnZSA9
ICFtX2ltYWdlIHx8IChtX2ltYWdlLT5oYXNPbmVSZWYoKSAmJiBtX2ltYWdlLT5pc0JpdG1hcElt
YWdlKCkpOwogICAgIGlmIChjYW5EZWxldGVJbWFnZSAmJiAhaXNMb2FkaW5nKCkgJiYgIWhhc0Ns
aWVudHMoKSkgewotICAgICAgICBtX2ltYWdlID0gMDsKKyAgICAgICAgbV9pbWFnZSA9IG51bGxw
dHI7CiAgICAgICAgIHNldERlY29kZWRTaXplKDApOwogICAgIH0gZWxzZSBpZiAobV9pbWFnZSAm
JiAhZXJyb3JPY2N1cnJlZCgpKQogICAgICAgICBtX2ltYWdlLT5kZXN0cm95RGVjb2RlZERhdGEo
KTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2xvYWRlci9jYWNoZS9DYWNoZWRSYXdSZXNv
dXJjZS5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9sb2FkZXIvY2FjaGUvQ2FjaGVkUmF3UmVzb3VyY2Uu
Y3BwCmluZGV4IDNjMWIyOTU1NGIxOWMwNWUyZmU5MWViMDdlMGU1NTJjMmY5OGE4ZjQuLjU0YmJk
ZTFhYzhlYzg3MTQ4YTk1M2QzZGQ3NzgyYTdiM2UzMjQ1NjUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9X
ZWJDb3JlL2xvYWRlci9jYWNoZS9DYWNoZWRSYXdSZXNvdXJjZS5jcHAKKysrIGIvU291cmNlL1dl
YkNvcmUvbG9hZGVyL2NhY2hlL0NhY2hlZFJhd1Jlc291cmNlLmNwcApAQCAtMjY4LDcgKzI2OCw3
IEBAIGJvb2wgQ2FjaGVkUmF3UmVzb3VyY2U6OmNhblJldXNlKGNvbnN0IFJlc291cmNlUmVxdWVz
dCYgbmV3UmVxdWVzdCkgY29uc3QKIAogdm9pZCBDYWNoZWRSYXdSZXNvdXJjZTo6Y2xlYXIoKQog
ewotICAgIG1fZGF0YS5jbGVhcigpOworICAgIG1fZGF0YSA9IG51bGxwdHI7CiAgICAgc2V0RW5j
b2RlZFNpemUoMCk7CiAgICAgaWYgKG1fbG9hZGVyKQogICAgICAgICBtX2xvYWRlci0+Y2xlYXJS
ZXNvdXJjZURhdGEoKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2xvYWRlci9jYWNoZS9D
YWNoZWRSZXNvdXJjZS5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9sb2FkZXIvY2FjaGUvQ2FjaGVkUmVz
b3VyY2UuY3BwCmluZGV4IGY0NDMxYmYzZGRhZmNkMmZiNzAzODM3YzZmN2NjZDAxMzA3NTExZjAu
LjNiZWYyMWU4ZDk4OTg4YTAzOGRlYjdlMTBlMGVmNGUzY2VmNDNhNmIgMTAwNjQ0Ci0tLSBhL1Nv
dXJjZS9XZWJDb3JlL2xvYWRlci9jYWNoZS9DYWNoZWRSZXNvdXJjZS5jcHAKKysrIGIvU291cmNl
L1dlYkNvcmUvbG9hZGVyL2NhY2hlL0NhY2hlZFJlc291cmNlLmNwcApAQCAtMzE3LDcgKzMxNyw3
IEBAIHZvaWQgQ2FjaGVkUmVzb3VyY2U6OmVycm9yKENhY2hlZFJlc291cmNlOjpTdGF0dXMgc3Rh
dHVzKQogewogICAgIHNldFN0YXR1cyhzdGF0dXMpOwogICAgIEFTU0VSVChlcnJvck9jY3VycmVk
KCkpOwotICAgIG1fZGF0YS5jbGVhcigpOworICAgIG1fZGF0YSA9IG51bGxwdHI7CiAKICAgICBz
ZXRMb2FkaW5nKGZhbHNlKTsKICAgICBjaGVja05vdGlmeSgpOwpkaWZmIC0tZ2l0IGEvU291cmNl
L1dlYkNvcmUvbG9hZGVyL2ljb24vSWNvblJlY29yZC5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9sb2Fk
ZXIvaWNvbi9JY29uUmVjb3JkLmNwcAppbmRleCBkNGJjMGQxYTE5ZjM3MDYyYmY3Y2E1OGVkYzY0
MmJmZWU2MjA1YTg4Li5lN2YxZDRiMjMzNDYxMDY5NGRkMzFlZTdlYzQ0MDQ3ZjgzNzNiNzY1IDEw
MDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9sb2FkZXIvaWNvbi9JY29uUmVjb3JkLmNwcAorKysg
Yi9Tb3VyY2UvV2ViQ29yZS9sb2FkZXIvaWNvbi9JY29uUmVjb3JkLmNwcApAQCAtNzEsNyArNzEs
NyBAQCB2b2lkIEljb25SZWNvcmQ6OnNldEltYWdlRGF0YShQYXNzUmVmUHRyPFNoYXJlZEJ1ZmZl
cj4gZGF0YSkKICAgICAvLyBDb3B5IHRoZSBwcm92aWRlZCBkYXRhIGludG8gdGhlIGJ1ZmZlciBv
ZiB0aGUgbmV3IEltYWdlIG9iamVjdC4KICAgICBpZiAoIW1faW1hZ2UtPnNldERhdGEoZGF0YSwg
dHJ1ZSkpIHsKICAgICAgICAgTE9HKEljb25EYXRhYmFzZSwgIk1hbnVhbCBpbWFnZSBkYXRhIGZv
ciBpY29uVVJMICclcycgRkFJTEVEIC0gaXQgd2FzIHByb2JhYmx5IGludmFsaWQgaW1hZ2UgZGF0
YSIsIG1faWNvblVSTC5hc2NpaSgpLmRhdGEoKSk7Ci0gICAgICAgIG1faW1hZ2UuY2xlYXIoKTsK
KyAgICAgICAgbV9pbWFnZSA9IG51bGxwdHI7CiAgICAgfQogICAgIAogICAgIG1fZGF0YVNldCA9
IHRydWU7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wYWdlL0V2ZW50SGFuZGxlci5jcHAg
Yi9Tb3VyY2UvV2ViQ29yZS9wYWdlL0V2ZW50SGFuZGxlci5jcHAKaW5kZXggNjU0YTRmZWM3NzM3
OTcyM2Q3YjYxZjM2MTY3YWJhMjVlODk0NTA5Yy4uM2FhNjZkOWJjODE0ZWMzYmZkYmQzNGM5ZDc1
ZTNlNzM1NjExNTRlMyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGFnZS9FdmVudEhhbmRs
ZXIuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BhZ2UvRXZlbnRIYW5kbGVyLmNwcApAQCAtNDg1
LDcgKzQ4NSw3IEBAIHZvaWQgRXZlbnRIYW5kbGVyOjpjbGVhcigpCiAgICAgbV9tb3VzZVBvc2l0
aW9uSXNVbmtub3duID0gdHJ1ZTsKICAgICBtX2xhc3RLbm93bk1vdXNlUG9zaXRpb24gPSBJbnRQ
b2ludCgpOwogICAgIG1fbGFzdEtub3duTW91c2VHbG9iYWxQb3NpdGlvbiA9IEludFBvaW50KCk7
Ci0gICAgbV9tb3VzZVByZXNzTm9kZSA9IDA7CisgICAgbV9tb3VzZVByZXNzTm9kZSA9IG51bGxw
dHI7CiAgICAgbV9tb3VzZVByZXNzZWQgPSBmYWxzZTsKICAgICBtX2NhcHR1cmVzRHJhZ2dpbmcg
PSBmYWxzZTsKICAgICBtX2NhcHR1cmluZ01vdXNlRXZlbnRzRWxlbWVudCA9IG51bGxwdHI7CkBA
IC00OTQsNyArNDk0LDcgQEAgdm9pZCBFdmVudEhhbmRsZXI6OmNsZWFyKCkKICNlbmRpZgogI2lm
IEVOQUJMRShUT1VDSF9FVkVOVFMpICYmICFFTkFCTEUoSU9TX1RPVUNIX0VWRU5UUykKICAgICBt
X29yaWdpbmF0aW5nVG91Y2hQb2ludFRhcmdldHMuY2xlYXIoKTsKLSAgICBtX29yaWdpbmF0aW5n
VG91Y2hQb2ludERvY3VtZW50LmNsZWFyKCk7CisgICAgbV9vcmlnaW5hdGluZ1RvdWNoUG9pbnRE
b2N1bWVudCA9IG51bGxwdHI7CiAgICAgbV9vcmlnaW5hdGluZ1RvdWNoUG9pbnRUYXJnZXRLZXkg
PSAwOwogI2VuZGlmCiAgICAgbV9tYXhNb3VzZU1vdmVkRHVyYXRpb24gPSAwOwpAQCAtMzk5NCw3
ICszOTk0LDcgQEAgYm9vbCBFdmVudEhhbmRsZXI6OmhhbmRsZVRvdWNoRXZlbnQoY29uc3QgUGxh
dGZvcm1Ub3VjaEV2ZW50JiBldmVudCkKICAgICB9CiAgICAgbV90b3VjaFByZXNzZWQgPSB0b3Vj
aGVzLT5sZW5ndGgoKSA+IDA7CiAgICAgaWYgKGFsbFRvdWNoUmVsZWFzZWQpCi0gICAgICAgIG1f
b3JpZ2luYXRpbmdUb3VjaFBvaW50RG9jdW1lbnQuY2xlYXIoKTsKKyAgICAgICAgbV9vcmlnaW5h
dGluZ1RvdWNoUG9pbnREb2N1bWVudCA9IG51bGxwdHI7CiAKICAgICAvLyBOb3cgaXRlcmF0ZSB0
aGUgY2hhbmdlZFRvdWNoZXMgbGlzdCBhbmQgbV90YXJnZXRzIHdpdGhpbiBpdCwgc2VuZGluZyBl
dmVudHMgdG8gdGhlIHRhcmdldHMgYXMgcmVxdWlyZWQuCiAgICAgYm9vbCBzd2FsbG93ZWRFdmVu
dCA9IGZhbHNlOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGFnZS9QYWdlLmNwcCBiL1Nv
dXJjZS9XZWJDb3JlL3BhZ2UvUGFnZS5jcHAKaW5kZXggMWQzZGNjMmI1NjM5NjIxNGU5ZjgwZjcy
YzhlMzNlYTE4OWI5M2FkMi4uZjg2ZDgxZmQwNTMwYTAzYzYyNjIyMTE2YzkwYmZlOTA1NjcxNjdi
MCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGFnZS9QYWdlLmNwcAorKysgYi9Tb3VyY2Uv
V2ViQ29yZS9wYWdlL1BhZ2UuY3BwCkBAIC01MTYsNyArNTE2LDcgQEAgdm9pZCBQYWdlOjpyZWZy
ZXNoUGx1Z2lucyhib29sIHJlbG9hZCkKICAgICBWZWN0b3I8UmVmPEZyYW1lPj4gZnJhbWVzTmVl
ZGluZ1JlbG9hZDsKIAogICAgIGZvciAoYXV0byYgcGFnZSA6ICphbGxQYWdlcykgewotICAgICAg
ICBwYWdlLT5tX3BsdWdpbkRhdGEuY2xlYXIoKTsKKyAgICAgICAgcGFnZS0+bV9wbHVnaW5EYXRh
ID0gbnVsbHB0cjsKIAogICAgICAgICBpZiAoIXJlbG9hZCkKICAgICAgICAgICAgIGNvbnRpbnVl
OwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vYXVkaW8vbWFjL0NBUmluZ0J1
ZmZlci5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9hdWRpby9tYWMvQ0FSaW5nQnVmZmVy
LmNwcAppbmRleCBmNzZlOGRmOTA2YjVhNjFlNTdjNzc1YzRjZTZkMmNjNDRiYzhhYTUyLi4wNTQ0
MmFkYzQ1ZTk3Nzg5OTMxNTIwNWMzNzJlNjE5NjAxMjc5ZDM3IDEwMDY0NAotLS0gYS9Tb3VyY2Uv
V2ViQ29yZS9wbGF0Zm9ybS9hdWRpby9tYWMvQ0FSaW5nQnVmZmVyLmNwcAorKysgYi9Tb3VyY2Uv
V2ViQ29yZS9wbGF0Zm9ybS9hdWRpby9tYWMvQ0FSaW5nQnVmZmVyLmNwcApAQCAtODYsNyArODYs
NyBAQCB2b2lkIENBUmluZ0J1ZmZlcjo6YWxsb2NhdGUodWludDMyX3QgY2hhbm5lbENvdW50LCBz
aXplX3QgYnl0ZXNQZXJGcmFtZSwgc2l6ZV90CiB2b2lkIENBUmluZ0J1ZmZlcjo6ZGVhbGxvY2F0
ZSgpCiB7CiAgICAgaWYgKG1fYnVmZmVycykKLSAgICAgICAgbV9idWZmZXJzLmNsZWFyKCk7Cisg
ICAgICAgIG1fYnVmZmVycyA9IG51bGxwdHI7CiAKICAgICBtX2NoYW5uZWxDb3VudCA9IDA7CiAg
ICAgbV9jYXBhY2l0eUJ5dGVzID0gMDsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRm
b3JtL2dyYXBoaWNzL0ZvbnQuY3BwIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3Mv
Rm9udC5jcHAKaW5kZXggNjAzZWJhODFmMDEwZmVmMGIwOWVhOTQ3YWU4ODZhNTE5OThiNWFjYy4u
ZDkyNjViNThkMmJlMjRhZDcxNDczYWJhNWIyM2I1MjZkMDkxMzcyZSAxMDA2NDQKLS0tIGEvU291
cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvRm9udC5jcHAKKysrIGIvU291cmNlL1dlYkNv
cmUvcGxhdGZvcm0vZ3JhcGhpY3MvRm9udC5jcHAKQEAgLTM2Myw3ICszNjMsNyBAQCBjb25zdCBP
cGVuVHlwZU1hdGhEYXRhKiBGb250OjptYXRoRGF0YSgpIGNvbnN0CiAgICAgaWYgKCFtX21hdGhE
YXRhKSB7CiAgICAgICAgIG1fbWF0aERhdGEgPSBPcGVuVHlwZU1hdGhEYXRhOjpjcmVhdGUobV9w
bGF0Zm9ybURhdGEpOwogICAgICAgICBpZiAoIW1fbWF0aERhdGEtPmhhc01hdGhEYXRhKCkpCi0g
ICAgICAgICAgICBtX21hdGhEYXRhLmNsZWFyKCk7CisgICAgICAgICAgICBtX21hdGhEYXRhID0g
bnVsbHB0cjsKICAgICB9CiAgICAgcmV0dXJuIG1fbWF0aERhdGEuZ2V0KCk7CiB9CmRpZmYgLS1n
aXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9Gb250Q2FjaGUuY3BwIGIvU291
cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvRm9udENhY2hlLmNwcAppbmRleCBhNmM0MDQ5
OTQ4Y2YzNjMyMWI3M2RkNTExYjkxOGEyYThhYWUwNDVjLi44ZDFhODM1OWQ2OWNiNzBlNGMyMGI1
ZWE4MzI4NzY1YTZiY2Q0NjM0IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9n
cmFwaGljcy9Gb250Q2FjaGUuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBo
aWNzL0ZvbnRDYWNoZS5jcHAKQEAgLTMyMCw3ICszMjAsNyBAQCBQYXNzUmVmUHRyPE9wZW5UeXBl
VmVydGljYWxEYXRhPiBGb250Q2FjaGU6OmdldFZlcnRpY2FsRGF0YShjb25zdCBGb250RmlsZUtl
eSYgawogCiAgICAgUmVmUHRyPE9wZW5UeXBlVmVydGljYWxEYXRhPiB2ZXJ0aWNhbERhdGEgPSBP
cGVuVHlwZVZlcnRpY2FsRGF0YTo6Y3JlYXRlKHBsYXRmb3JtRGF0YSk7CiAgICAgaWYgKCF2ZXJ0
aWNhbERhdGEtPmlzT3BlblR5cGUoKSkKLSAgICAgICAgdmVydGljYWxEYXRhLmNsZWFyKCk7Cisg
ICAgICAgIHZlcnRpY2FsRGF0YSA9IG51bGxwdHI7CiAgICAgZm9udFZlcnRpY2FsRGF0YUNhY2hl
LnNldChrZXksIHZlcnRpY2FsRGF0YSk7CiAgICAgcmV0dXJuIHZlcnRpY2FsRGF0YTsKIH0KZGlm
ZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL0dyYXBoaWNzQ29udGV4
dC5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9HcmFwaGljc0NvbnRleHQu
Y3BwCmluZGV4IGQzOGMxZmFmNzc1MjU4MzNmMzdlM2NiNjE3OGJiNGM2ZjY3Y2MzOTkuLmU2YjM3
ZmRlNWY5NWVjMDJjMmY3ZDY4YTYxZjQwZjQ3YTc3ZjI3MzEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9X
ZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL0dyYXBoaWNzQ29udGV4dC5jcHAKKysrIGIvU291cmNl
L1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvR3JhcGhpY3NDb250ZXh0LmNwcApAQCAtMTc4LDgg
KzE3OCw4IEBAIHZvaWQgR3JhcGhpY3NDb250ZXh0OjpzZXRTdHJva2VDb2xvcihjb25zdCBDb2xv
ciYgY29sb3IsIENvbG9yU3BhY2UgY29sb3JTcGFjZSkKIHsKICAgICBtX3N0YXRlLnN0cm9rZUNv
bG9yID0gY29sb3I7CiAgICAgbV9zdGF0ZS5zdHJva2VDb2xvclNwYWNlID0gY29sb3JTcGFjZTsK
LSAgICBtX3N0YXRlLnN0cm9rZUdyYWRpZW50LmNsZWFyKCk7Ci0gICAgbV9zdGF0ZS5zdHJva2VQ
YXR0ZXJuLmNsZWFyKCk7CisgICAgbV9zdGF0ZS5zdHJva2VHcmFkaWVudCA9IG51bGxwdHI7Cisg
ICAgbV9zdGF0ZS5zdHJva2VQYXR0ZXJuID0gbnVsbHB0cjsKICAgICBzZXRQbGF0Zm9ybVN0cm9r
ZUNvbG9yKGNvbG9yLCBjb2xvclNwYWNlKTsKIH0KIApAQCAtMjQ1LDggKzI0NSw4IEBAIHZvaWQg
R3JhcGhpY3NDb250ZXh0OjpzZXRGaWxsQ29sb3IoY29uc3QgQ29sb3ImIGNvbG9yLCBDb2xvclNw
YWNlIGNvbG9yU3BhY2UpCiB7CiAgICAgbV9zdGF0ZS5maWxsQ29sb3IgPSBjb2xvcjsKICAgICBt
X3N0YXRlLmZpbGxDb2xvclNwYWNlID0gY29sb3JTcGFjZTsKLSAgICBtX3N0YXRlLmZpbGxHcmFk
aWVudC5jbGVhcigpOwotICAgIG1fc3RhdGUuZmlsbFBhdHRlcm4uY2xlYXIoKTsKKyAgICBtX3N0
YXRlLmZpbGxHcmFkaWVudCA9IG51bGxwdHI7CisgICAgbV9zdGF0ZS5maWxsUGF0dGVybiA9IG51
bGxwdHI7CiAgICAgc2V0UGxhdGZvcm1GaWxsQ29sb3IoY29sb3IsIGNvbG9yU3BhY2UpOwogfQog
CkBAIC0yNjksMjYgKzI2OSwyNiBAQCB2b2lkIEdyYXBoaWNzQ29udGV4dDo6c2V0QW50aWFsaWFz
ZWRGb250RGlsYXRpb25FbmFibGVkKGJvb2wgYW50aWFsaWFzZWRGb250RGlsYQogCiB2b2lkIEdy
YXBoaWNzQ29udGV4dDo6c2V0U3Ryb2tlUGF0dGVybihSZWY8UGF0dGVybj4mJiBwYXR0ZXJuKQog
ewotICAgIG1fc3RhdGUuc3Ryb2tlR3JhZGllbnQuY2xlYXIoKTsKKyAgICBtX3N0YXRlLnN0cm9r
ZUdyYWRpZW50ID0gbnVsbHB0cjsKICAgICBtX3N0YXRlLnN0cm9rZVBhdHRlcm4gPSBXVEY6Om1v
dmUocGF0dGVybik7CiB9CiAKIHZvaWQgR3JhcGhpY3NDb250ZXh0OjpzZXRGaWxsUGF0dGVybihS
ZWY8UGF0dGVybj4mJiBwYXR0ZXJuKQogewotICAgIG1fc3RhdGUuZmlsbEdyYWRpZW50LmNsZWFy
KCk7CisgICAgbV9zdGF0ZS5maWxsR3JhZGllbnQgPSBudWxscHRyOwogICAgIG1fc3RhdGUuZmls
bFBhdHRlcm4gPSBXVEY6Om1vdmUocGF0dGVybik7CiB9CiAKIHZvaWQgR3JhcGhpY3NDb250ZXh0
OjpzZXRTdHJva2VHcmFkaWVudChSZWY8R3JhZGllbnQ+JiYgZ3JhZGllbnQpCiB7CiAgICAgbV9z
dGF0ZS5zdHJva2VHcmFkaWVudCA9IFdURjo6bW92ZShncmFkaWVudCk7Ci0gICAgbV9zdGF0ZS5z
dHJva2VQYXR0ZXJuLmNsZWFyKCk7CisgICAgbV9zdGF0ZS5zdHJva2VQYXR0ZXJuID0gbnVsbHB0
cjsKIH0KIAogdm9pZCBHcmFwaGljc0NvbnRleHQ6OnNldEZpbGxHcmFkaWVudChSZWY8R3JhZGll
bnQ+JiYgZ3JhZGllbnQpCiB7CiAgICAgbV9zdGF0ZS5maWxsR3JhZGllbnQgPSBXVEY6Om1vdmUo
Z3JhZGllbnQpOwotICAgIG1fc3RhdGUuZmlsbFBhdHRlcm4uY2xlYXIoKTsKKyAgICBtX3N0YXRl
LmZpbGxQYXR0ZXJuID0gbnVsbHB0cjsKIH0KIAogdm9pZCBHcmFwaGljc0NvbnRleHQ6OmJlZ2lu
VHJhbnNwYXJlbmN5TGF5ZXIoZmxvYXQgb3BhY2l0eSkKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJD
b3JlL3BsYXRmb3JtL2dyYXBoaWNzL01lZGlhUGxheWVyLmNwcCBiL1NvdXJjZS9XZWJDb3JlL3Bs
YXRmb3JtL2dyYXBoaWNzL01lZGlhUGxheWVyLmNwcAppbmRleCAyOTRhNzZkOWY4NmVmMmU3NzUw
ZDM2YTgzYTk4N2Q3NjBkNDBiMWQyLi4wMTI3OTVlNDY1YmVhMDRkMGY4N2U3Mjc3ZTc0ZTBmZTVi
NTg3MmIxIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9NZWRp
YVBsYXllci5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvTWVkaWFQ
bGF5ZXIuY3BwCkBAIC0zMTQsMTAgKzMxNCwxMCBAQCBib29sIE1lZGlhUGxheWVyOjpsb2FkKGNv
bnN0IFVSTCYgdXJsLCBjb25zdCBDb250ZW50VHlwZSYgY29udGVudFR5cGUsIGNvbnN0IFN0cgog
ICAgIG1fY29udGVudE1JTUVUeXBlV2FzSW5mZXJyZWRGcm9tRXh0ZW5zaW9uID0gZmFsc2U7CiAK
ICNpZiBFTkFCTEUoTUVESUFfU09VUkNFKQotICAgIG1fbWVkaWFTb3VyY2UgPSAwOworICAgIG1f
bWVkaWFTb3VyY2UgPSBudWxscHRyOwogI2VuZGlmCiAjaWYgRU5BQkxFKE1FRElBX1NUUkVBTSkK
LSAgICBtX21lZGlhU3RyZWFtID0gMDsKKyAgICBtX21lZGlhU3RyZWFtID0gbnVsbHB0cjsKICNl
bmRpZgogCiAgICAgLy8gSWYgdGhlIE1JTUUgdHlwZSBpcyBtaXNzaW5nIG9yIGlzIG5vdCBtZWFu
aW5nZnVsLCB0cnkgdG8gZmlndXJlIGl0IG91dCBmcm9tIHRoZSBVUkwuCmRpZmYgLS1naXQgYS9T
b3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9jYS9HcmFwaGljc0xheWVyQ0EuY3BwIGIv
U291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvY2EvR3JhcGhpY3NMYXllckNBLmNwcApp
bmRleCA4MmMwNzY5MTI3YmY5ZTUxNjlkYWU0OGRmYjRiMjg5MDJmZTkwNmMwLi4zNGY0Y2UxMDNh
OTM2ZTNhMDExYjg1Y2ZiNGRmZWVjZDYxNTJjOGU4IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29y
ZS9wbGF0Zm9ybS9ncmFwaGljcy9jYS9HcmFwaGljc0xheWVyQ0EuY3BwCisrKyBiL1NvdXJjZS9X
ZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2NhL0dyYXBoaWNzTGF5ZXJDQS5jcHAKQEAgLTIyMDgs
NyArMjIwOCw3IEBAIHZvaWQgR3JhcGhpY3NMYXllckNBOjp1cGRhdGVDb250ZW50c0ltYWdlKCkK
ICAgICB9IGVsc2UgewogICAgICAgICAvLyBObyBpbWFnZS4KICAgICAgICAgLy8gbV9jb250ZW50
c0xheWVyIHdpbGwgYmUgcmVtb3ZlZCB2aWEgdXBkYXRlU3VibGF5ZXJMaXN0LgotICAgICAgICBt
X2NvbnRlbnRzTGF5ZXIgPSAwOworICAgICAgICBtX2NvbnRlbnRzTGF5ZXIgPSBudWxscHRyOwog
ICAgIH0KIH0KIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3Mv
Y2Fpcm8vQmFja2luZ1N0b3JlQmFja2VuZENhaXJvWDExLmNwcCBiL1NvdXJjZS9XZWJDb3JlL3Bs
YXRmb3JtL2dyYXBoaWNzL2NhaXJvL0JhY2tpbmdTdG9yZUJhY2tlbmRDYWlyb1gxMS5jcHAKaW5k
ZXggN2I4NjMxYWYwYTlkOGY0YWU5MDYzYjI3OWU0MGNlZTM0NTQ5Y2ZhNC4uNDM3ZGFmYzgyZmQy
MmVjYmYwNjA0N2EzYzI4Njg5ZWJlMDIyMzZkMiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUv
cGxhdGZvcm0vZ3JhcGhpY3MvY2Fpcm8vQmFja2luZ1N0b3JlQmFja2VuZENhaXJvWDExLmNwcAor
KysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9jYWlyby9CYWNraW5nU3RvcmVC
YWNrZW5kQ2Fpcm9YMTEuY3BwCkBAIC00Myw3ICs0Myw3IEBAIEJhY2tpbmdTdG9yZUJhY2tlbmRD
YWlyb1gxMTo6QmFja2luZ1N0b3JlQmFja2VuZENhaXJvWDExKHVuc2lnbmVkIGxvbmcgcm9vdFdp
bmRvCiBCYWNraW5nU3RvcmVCYWNrZW5kQ2Fpcm9YMTE6On5CYWNraW5nU3RvcmVCYWNrZW5kQ2Fp
cm9YMTEoKQogewogICAgIC8vIFRoZSBwaXhtYXAgbmVlZHMgdG8gZXhpc3Qgd2hlbiB0aGUgc3Vy
ZmFjZSBpcyBkZXN0cm95ZWQsIHNvIGJlZ2luIGJ5IGNsZWFyaW5nIGl0LgotICAgIG1fc3VyZmFj
ZS5jbGVhcigpOworICAgIG1fc3VyZmFjZSA9IG51bGxwdHI7CiB9CiAKIHZvaWQgQmFja2luZ1N0
b3JlQmFja2VuZENhaXJvWDExOjpzY3JvbGwoY29uc3QgSW50UmVjdCYgc2Nyb2xsUmVjdCwgY29u
c3QgSW50U2l6ZSYgc2Nyb2xsT2Zmc2V0KQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxh
dGZvcm0vZ3JhcGhpY3MvY2Fpcm8vQml0bWFwSW1hZ2VDYWlyby5jcHAgYi9Tb3VyY2UvV2ViQ29y
ZS9wbGF0Zm9ybS9ncmFwaGljcy9jYWlyby9CaXRtYXBJbWFnZUNhaXJvLmNwcAppbmRleCAyNmRm
NWRmM2FiYTQ5MDc2MDEyNzg5YzI2NmZhOTYwMjc3NWJlMmRlLi5mMGQzYTdhNzJkYjkyZmRlMWQx
YjVmOTkzOGIzYzBjMWU3YWQ2MWYxIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9y
bS9ncmFwaGljcy9jYWlyby9CaXRtYXBJbWFnZUNhaXJvLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29y
ZS9wbGF0Zm9ybS9ncmFwaGljcy9jYWlyby9CaXRtYXBJbWFnZUNhaXJvLmNwcApAQCAtMTU5LDcg
KzE1OSw3IEBAIGJvb2wgRnJhbWVEYXRhOjpjbGVhcihib29sIGNsZWFyTWV0YWRhdGEpCiAgICAg
ICAgIG1faGF2ZU1ldGFkYXRhID0gZmFsc2U7CiAKICAgICBpZiAobV9mcmFtZSkgewotICAgICAg
ICBtX2ZyYW1lLmNsZWFyKCk7CisgICAgICAgIG1fZnJhbWUgPSBudWxscHRyOwogICAgICAgICBy
ZXR1cm4gdHJ1ZTsKICAgICB9CiAgICAgcmV0dXJuIGZhbHNlOwpkaWZmIC0tZ2l0IGEvU291cmNl
L1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvZmlsdGVycy9GaWx0ZXJFZmZlY3QuY3BwIGIvU291
cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvZmlsdGVycy9GaWx0ZXJFZmZlY3QuY3BwCmlu
ZGV4IDc2MjcwMDgwMzBkN2VmYWU2ZTA4MGU2ODc1OGRjMTYwZWFjMmMwYjkuLmM5OGQ1Yjk4NWFm
M2JiMWU1YjBjMGMyMjZiYjQ1ZmM2MDU0ZjQzM2MgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3Jl
L3BsYXRmb3JtL2dyYXBoaWNzL2ZpbHRlcnMvRmlsdGVyRWZmZWN0LmNwcAorKysgYi9Tb3VyY2Uv
V2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9maWx0ZXJzL0ZpbHRlckVmZmVjdC5jcHAKQEAgLTI0
NSwxMiArMjQ1LDEyIEBAIHZvaWQgRmlsdGVyRWZmZWN0OjpjbGVhclJlc3VsdCgpCiAgICAgaWYg
KG1faW1hZ2VCdWZmZXJSZXN1bHQpCiAgICAgICAgIG1faW1hZ2VCdWZmZXJSZXN1bHQucmVzZXQo
KTsKICAgICBpZiAobV91bm11bHRpcGxpZWRJbWFnZVJlc3VsdCkKLSAgICAgICAgbV91bm11bHRp
cGxpZWRJbWFnZVJlc3VsdC5jbGVhcigpOworICAgICAgICBtX3VubXVsdGlwbGllZEltYWdlUmVz
dWx0ID0gbnVsbHB0cjsKICAgICBpZiAobV9wcmVtdWx0aXBsaWVkSW1hZ2VSZXN1bHQpCi0gICAg
ICAgIG1fcHJlbXVsdGlwbGllZEltYWdlUmVzdWx0LmNsZWFyKCk7CisgICAgICAgIG1fcHJlbXVs
dGlwbGllZEltYWdlUmVzdWx0ID0gbnVsbHB0cjsKICNpZiBFTkFCTEUoT1BFTkNMKQogICAgIGlm
IChtX29wZW5DTEltYWdlUmVzdWx0KQotICAgICAgICBtX29wZW5DTEltYWdlUmVzdWx0LmNsZWFy
KCk7CisgICAgICAgIG1fb3BlbkNMSW1hZ2VSZXN1bHQgPSBudWxscHRyOwogI2VuZGlmCiB9CiAK
QEAgLTU0MCw3ICs1NDAsNyBAQCB2b2lkIEZpbHRlckVmZmVjdDo6dHJhbnNmb3JtUmVzdWx0Q29s
b3JTcGFjZShDb2xvclNwYWNlIGRzdENvbG9yU3BhY2UpCiAjaWYgRU5BQkxFKE9QRU5DTCkKICAg
ICBpZiAob3BlbkNMSW1hZ2UoKSkgewogICAgICAgICBpZiAobV9pbWFnZUJ1ZmZlclJlc3VsdCkK
LSAgICAgICAgICAgIG1faW1hZ2VCdWZmZXJSZXN1bHQuY2xlYXIoKTsKKyAgICAgICAgICAgIG1f
aW1hZ2VCdWZmZXJSZXN1bHQgPSBudWxscHRyOwogICAgICAgICBGaWx0ZXJDb250ZXh0T3BlbkNM
KiBjb250ZXh0ID0gRmlsdGVyQ29udGV4dE9wZW5DTDo6Y29udGV4dCgpOwogICAgICAgICBBU1NF
UlQoY29udGV4dCk7CiAgICAgICAgIGNvbnRleHQtPm9wZW5DTFRyYW5zZm9ybUNvbG9yU3BhY2Uo
bV9vcGVuQ0xJbWFnZVJlc3VsdCwgYWJzb2x1dGVQYWludFJlY3QoKSwgbV9yZXN1bHRDb2xvclNw
YWNlLCBkc3RDb2xvclNwYWNlKTsKQEAgLTU1OCw5ICs1NTgsOSBAQCB2b2lkIEZpbHRlckVmZmVj
dDo6dHJhbnNmb3JtUmVzdWx0Q29sb3JTcGFjZShDb2xvclNwYWNlIGRzdENvbG9yU3BhY2UpCiAg
ICAgbV9yZXN1bHRDb2xvclNwYWNlID0gZHN0Q29sb3JTcGFjZTsKIAogICAgIGlmIChtX3VubXVs
dGlwbGllZEltYWdlUmVzdWx0KQotICAgICAgICBtX3VubXVsdGlwbGllZEltYWdlUmVzdWx0LmNs
ZWFyKCk7CisgICAgICAgIG1fdW5tdWx0aXBsaWVkSW1hZ2VSZXN1bHQgPSBudWxscHRyOwogICAg
IGlmIChtX3ByZW11bHRpcGxpZWRJbWFnZVJlc3VsdCkKLSAgICAgICAgbV9wcmVtdWx0aXBsaWVk
SW1hZ2VSZXN1bHQuY2xlYXIoKTsKKyAgICAgICAgbV9wcmVtdWx0aXBsaWVkSW1hZ2VSZXN1bHQg
PSBudWxscHRyOwogI2VuZGlmCiB9CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRm
b3JtL2dyYXBoaWNzL2dzdHJlYW1lci9JbWFnZUdTdHJlYW1lckNhaXJvLmNwcCBiL1NvdXJjZS9X
ZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2dzdHJlYW1lci9JbWFnZUdTdHJlYW1lckNhaXJvLmNw
cAppbmRleCAwNmZhZWNhMTliYTI1M2VhNzgzNzBmNTg1NDRhYmYxYWNiMmU1MjVlLi5lZTI3Mjc3
ZmYwYjdlOTAzM2Y0YjkzMzYwMjhhY2Y0MjE4YjIwYTVmIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2Vi
Q29yZS9wbGF0Zm9ybS9ncmFwaGljcy9nc3RyZWFtZXIvSW1hZ2VHU3RyZWFtZXJDYWlyby5jcHAK
KysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvZ3N0cmVhbWVyL0ltYWdlR1N0
cmVhbWVyQ2Fpcm8uY3BwCkBAIC03MSw5ICs3MSw3IEBAIEltYWdlR1N0cmVhbWVyOjpJbWFnZUdT
dHJlYW1lcihHc3RTYW1wbGUqIHNhbXBsZSkKIEltYWdlR1N0cmVhbWVyOjp+SW1hZ2VHU3RyZWFt
ZXIoKQogewogICAgIGlmIChtX2ltYWdlKQotICAgICAgICBtX2ltYWdlLmNsZWFyKCk7Ci0KLSAg
ICBtX2ltYWdlID0gMDsKKyAgICAgICAgbV9pbWFnZSA9IG51bGxwdHI7CiAKICAgICAvLyBXZSBr
ZWVwIHRoZSBidWZmZXIgbWVtb3J5IG1hcHBlZCB1bnRpbCB0aGUgaW1hZ2UgaXMgZGVzdHJveWVk
IGJlY2F1c2UgdGhlIGludGVybmFsCiAgICAgLy8gY2Fpcm9fc3VyZmFjZV90IHdhcyBjcmVhdGVk
IHVzaW5nIGNhaXJvX2ltYWdlX3N1cmZhY2VfY3JlYXRlX2Zvcl9kYXRhKCkuCmRpZmYgLS1naXQg
YS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9nc3RyZWFtZXIvV2ViS2l0V2ViU291
cmNlR1N0cmVhbWVyLmNwcCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2dzdHJl
YW1lci9XZWJLaXRXZWJTb3VyY2VHU3RyZWFtZXIuY3BwCmluZGV4IDkzNGRhZjhjYjZkNTk4Yzdl
ZWI2YTdkMjZjNzRmNDIxYWY2Nzk0YTAuLmMyZGEzNzA2NDVhYjgwNjA2MzEwMDBmZWJmMzY2Mjkw
ZTNhYzdlOGQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2dz
dHJlYW1lci9XZWJLaXRXZWJTb3VyY2VHU3RyZWFtZXIuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3Jl
L3BsYXRmb3JtL2dyYXBoaWNzL2dzdHJlYW1lci9XZWJLaXRXZWJTb3VyY2VHU3RyZWFtZXIuY3Bw
CkBAIC0xMTY5LDggKzExNjksNyBAQCBSZXNvdXJjZUhhbmRsZVN0cmVhbWluZ0NsaWVudDo6flJl
c291cmNlSGFuZGxlU3RyZWFtaW5nQ2xpZW50KCkKIHsKICAgICBpZiAobV9yZXNvdXJjZSkgewog
ICAgICAgICBtX3Jlc291cmNlLT5jYW5jZWwoKTsKLSAgICAgICAgbV9yZXNvdXJjZS5yZWxlYXNl
KCk7Ci0gICAgICAgIG1fcmVzb3VyY2UgPSAwOworICAgICAgICBtX3Jlc291cmNlID0gbnVsbHB0
cjsKICAgICB9CiB9CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBo
aWNzL3RleG1hcC9CaXRtYXBUZXh0dXJlR0wuY3BwIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0v
Z3JhcGhpY3MvdGV4bWFwL0JpdG1hcFRleHR1cmVHTC5jcHAKaW5kZXggOTc1YzM4ZjJmZjRiMTkx
ODI4ZDdkMWVjZTE2ZTRkNjA5YjA5MGJmNi4uMGU1MmQ3YjRiMjU4NDVhNjAzOGRiNDVlZDhmOGE5
YWJkNGFlZjk5NCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3Mv
dGV4bWFwL0JpdG1hcFRleHR1cmVHTC5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0v
Z3JhcGhpY3MvdGV4bWFwL0JpdG1hcFRleHR1cmVHTC5jcHAKQEAgLTI3OCw3ICsyNzgsNyBAQCBQ
YXNzUmVmUHRyPEJpdG1hcFRleHR1cmU+IEJpdG1hcFRleHR1cmVHTDo6YXBwbHlGaWx0ZXJzKFRl
eHR1cmVNYXBwZXIqIHRleHR1cmVNYQogICAgICAgICAgICAgdGV4bWFwR0wtPmRyYXdGaWx0ZXJl
ZCgqcmVzdWx0U3VyZmFjZS5nZXQoKSwgc3BhcmVTdXJmYWNlLmdldCgpLCAqZmlsdGVyLCBqKTsK
ICAgICAgICAgICAgIGlmICghaiAmJiBmaWx0ZXItPnR5cGUoKSA9PSBGaWx0ZXJPcGVyYXRpb246
OkRST1BfU0hBRE9XKSB7CiAgICAgICAgICAgICAgICAgc3BhcmVTdXJmYWNlID0gcmVzdWx0U3Vy
ZmFjZTsKLSAgICAgICAgICAgICAgICByZXN1bHRTdXJmYWNlLmNsZWFyKCk7CisgICAgICAgICAg
ICAgICAgcmVzdWx0U3VyZmFjZSA9IG51bGxwdHI7CiAgICAgICAgICAgICB9CiAgICAgICAgICAg
ICBzdGQ6OnN3YXAocmVzdWx0U3VyZmFjZSwgaW50ZXJtZWRpYXRlU3VyZmFjZSk7CiAgICAgICAg
IH0KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL3RleG1hcC9H
cmFwaGljc0xheWVyVGV4dHVyZU1hcHBlci5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9n
cmFwaGljcy90ZXhtYXAvR3JhcGhpY3NMYXllclRleHR1cmVNYXBwZXIuY3BwCmluZGV4IDllZTRh
Nzg0Yzg1N2FiMWNmMTI2ZGEyY2IxMmRhZmFlYmMwOWRlN2UuLmQ1MzQ3MDQ0ZTg4YzA4ZWRiYTRk
NDYwNDY5ZjNmOTA3YTAwYjlkYzEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3Jt
L2dyYXBoaWNzL3RleG1hcC9HcmFwaGljc0xheWVyVGV4dHVyZU1hcHBlci5jcHAKKysrIGIvU291
cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvdGV4bWFwL0dyYXBoaWNzTGF5ZXJUZXh0dXJl
TWFwcGVyLmNwcApAQCAtMzAxLDggKzMwMSw4IEBAIHZvaWQgR3JhcGhpY3NMYXllclRleHR1cmVN
YXBwZXI6OnNldENvbnRlbnRzVG9JbWFnZShJbWFnZSogaW1hZ2UpCiAgICAgICAgICAgICBtX2Nv
bXBvc2l0ZWRJbWFnZSA9IFRleHR1cmVNYXBwZXJUaWxlZEJhY2tpbmdTdG9yZTo6Y3JlYXRlKCk7
CiAgICAgICAgIG1fY29tcG9zaXRlZEltYWdlLT5zZXRDb250ZW50c1RvSW1hZ2UoaW1hZ2UpOwog
ICAgIH0gZWxzZSB7Ci0gICAgICAgIG1fY29tcG9zaXRlZE5hdGl2ZUltYWdlUHRyID0gMDsKLSAg
ICAgICAgbV9jb21wb3NpdGVkSW1hZ2UgPSAwOworICAgICAgICBtX2NvbXBvc2l0ZWROYXRpdmVJ
bWFnZVB0ciA9IG51bGxwdHI7CisgICAgICAgIG1fY29tcG9zaXRlZEltYWdlID0gbnVsbHB0cjsK
ICAgICB9CiAKICAgICBzZXRDb250ZW50c1RvUGxhdGZvcm1MYXllcihtX2NvbXBvc2l0ZWRJbWFn
ZS5nZXQoKSwgQ29udGVudHNMYXllckZvckltYWdlKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJD
b3JlL3BsYXRmb3JtL2dyYXBoaWNzL3RleG1hcC9UZXh0dXJlTWFwcGVyR0wuY3BwIGIvU291cmNl
L1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvdGV4bWFwL1RleHR1cmVNYXBwZXJHTC5jcHAKaW5k
ZXggMGJjZThjNzQyMGQ3ZDBhNDRiMzA5ZTI2ZjU2NmE5MjE5M2U0ODYwYS4uNGM1NDgwNTYyMzVl
Mzk4ZmFjOTgzNjBmZTljYmY2MjVjNzVhMWQwNSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUv
cGxhdGZvcm0vZ3JhcGhpY3MvdGV4bWFwL1RleHR1cmVNYXBwZXJHTC5jcHAKKysrIGIvU291cmNl
L1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvdGV4bWFwL1RleHR1cmVNYXBwZXJHTC5jcHAKQEAg
LTY5MSw3ICs2OTEsNyBAQCB2b2lkIFRleHR1cmVNYXBwZXJHTDo6YmluZERlZmF1bHRTdXJmYWNl
KCkKICAgICBkYXRhKCkucHJvamVjdGlvbk1hdHJpeCA9IGNyZWF0ZVByb2plY3Rpb25NYXRyaXgo
dmlld3BvcnRTaXplLCBkYXRhKCkuUGFpbnRGbGFncyAmIFBhaW50aW5nTWlycm9yZWQpOwogICAg
IG1fY29udGV4dDNELT52aWV3cG9ydChkYXRhKCkudmlld3BvcnRbMF0sIGRhdGEoKS52aWV3cG9y
dFsxXSwgdmlld3BvcnRTaXplLndpZHRoKCksIHZpZXdwb3J0U2l6ZS5oZWlnaHQoKSk7CiAgICAg
bV9jbGlwU3RhY2suYXBwbHkobV9jb250ZXh0M0QuZ2V0KCkpOwotICAgIGRhdGEoKS5jdXJyZW50
U3VyZmFjZS5jbGVhcigpOworICAgIGRhdGEoKS5jdXJyZW50U3VyZmFjZSA9IG51bGxwdHI7CiB9
CiAKIHZvaWQgVGV4dHVyZU1hcHBlckdMOjpiaW5kU3VyZmFjZShCaXRtYXBUZXh0dXJlICpzdXJm
YWNlKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvdGV4bWFw
L1RleHR1cmVNYXBwZXJMYXllci5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGlj
cy90ZXhtYXAvVGV4dHVyZU1hcHBlckxheWVyLmNwcAppbmRleCBjODY0MjAyMmEzYWMxNDY1Nzcw
ODgxZjEyNDg3ZmY3ZGRiYjU0NGQ4Li4zNDU1Mzk4NzAyNGE2ZTc1ZmQ5ZDFlMzkwNjgxNzhiOWVk
NzIzYTJiIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy90ZXht
YXAvVGV4dHVyZU1hcHBlckxheWVyLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9n
cmFwaGljcy90ZXhtYXAvVGV4dHVyZU1hcHBlckxheWVyLmNwcApAQCAtNDA4LDcgKzQwOCw3IEBA
IHZvaWQgVGV4dHVyZU1hcHBlckxheWVyOjpwYWludFdpdGhJbnRlcm1lZGlhdGVTdXJmYWNlKGNv
bnN0IFRleHR1cmVNYXBwZXJQYWludE9wCiAKICAgICBpZiAocmVwbGljYVN1cmZhY2UgJiYgb3B0
aW9ucy5vcGFjaXR5ID09IDEpIHsKICAgICAgICAgY29tbWl0U3VyZmFjZShvcHRpb25zLCByZXBs
aWNhU3VyZmFjZSwgcmVjdCwgMSk7Ci0gICAgICAgIHJlcGxpY2FTdXJmYWNlLmNsZWFyKCk7Cisg
ICAgICAgIHJlcGxpY2FTdXJmYWNlID0gbnVsbHB0cjsKICAgICB9CiAKICAgICBtYWluU3VyZmFj
ZSA9IHBhaW50SW50b1N1cmZhY2UocGFpbnRPcHRpb25zLCByZWN0LnNpemUoKSk7CmRpZmYgLS1n
aXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy90ZXhtYXAvVGV4dHVyZU1hcHBl
clRpbGVkQmFja2luZ1N0b3JlLmNwcCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNz
L3RleG1hcC9UZXh0dXJlTWFwcGVyVGlsZWRCYWNraW5nU3RvcmUuY3BwCmluZGV4IDIwODA0NjIz
OTNiZGJiOWNiMDE0ODIyODM5NGU4YjJmNjVmMGM2ZDcuLmQzNTcxMGE2OTI4MWE4MjA2MTZkZTMx
MjEzM2M0ZDNjN2ZmOTE3ZTggMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dy
YXBoaWNzL3RleG1hcC9UZXh0dXJlTWFwcGVyVGlsZWRCYWNraW5nU3RvcmUuY3BwCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL3RleG1hcC9UZXh0dXJlTWFwcGVyVGlsZWRC
YWNraW5nU3RvcmUuY3BwCkBAIC0zOSw3ICszOSw3IEBAIHZvaWQgVGV4dHVyZU1hcHBlclRpbGVk
QmFja2luZ1N0b3JlOjp1cGRhdGVDb250ZW50c0Zyb21JbWFnZUlmTmVlZGVkKFRleHR1cmVNYXBw
CiAgICAgICAgIHJldHVybjsKIAogICAgIHVwZGF0ZUNvbnRlbnRzKHRleHR1cmVNYXBwZXIsIG1f
aW1hZ2UuZ2V0KCksIG1faW1hZ2UtPnNpemUoKSwgZW5jbG9zaW5nSW50UmVjdChtX2ltYWdlLT5y
ZWN0KCkpLCBCaXRtYXBUZXh0dXJlOjpVcGRhdGVDYW5ub3RNb2RpZnlPcmlnaW5hbEltYWdlRGF0
YSk7Ci0gICAgbV9pbWFnZS5jbGVhcigpOworICAgIG1faW1hZ2UgPSBudWxscHRyOwogfQogCiBU
cmFuc2Zvcm1hdGlvbk1hdHJpeCBUZXh0dXJlTWFwcGVyVGlsZWRCYWNraW5nU3RvcmU6OmFkanVz
dGVkVHJhbnNmb3JtRm9yUmVjdChjb25zdCBGbG9hdFJlY3QmIHRhcmdldFJlY3QpCmRpZmYgLS1n
aXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy90ZXhtYXAvY29vcmRpbmF0ZWQv
Q29vcmRpbmF0ZWRHcmFwaGljc0xheWVyLmNwcCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dy
YXBoaWNzL3RleG1hcC9jb29yZGluYXRlZC9Db29yZGluYXRlZEdyYXBoaWNzTGF5ZXIuY3BwCmlu
ZGV4IGUyZTFmNGFiOGZhMTk5NjRmZjZkZmNkNTJjN2I3ZDdlZDkxOGNhYjAuLmZhYTE2NWVhZTYz
ODIxZWMzZDEzOWQxOGVmZWYxN2RhZTAyODc4ZTAgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3Jl
L3BsYXRmb3JtL2dyYXBoaWNzL3RleG1hcC9jb29yZGluYXRlZC9Db29yZGluYXRlZEdyYXBoaWNz
TGF5ZXIuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL3RleG1hcC9j
b29yZGluYXRlZC9Db29yZGluYXRlZEdyYXBoaWNzTGF5ZXIuY3BwCkBAIC00NzAsOCArNDcwLDgg
QEAgdm9pZCBDb29yZGluYXRlZEdyYXBoaWNzTGF5ZXI6OnNldENvbnRlbnRzVG9JbWFnZShJbWFn
ZSogaW1hZ2UpCiAgICAgICAgIG1fY29tcG9zaXRlZEltYWdlID0gaW1hZ2U7CiAgICAgICAgIG1f
Y29tcG9zaXRlZE5hdGl2ZUltYWdlUHRyID0gbmV3TmF0aXZlSW1hZ2VQdHI7CiAgICAgfSBlbHNl
IHsKLSAgICAgICAgbV9jb21wb3NpdGVkSW1hZ2UgPSAwOwotICAgICAgICBtX2NvbXBvc2l0ZWRO
YXRpdmVJbWFnZVB0ciA9IDA7CisgICAgICAgIG1fY29tcG9zaXRlZEltYWdlID0gbnVsbHB0cjsK
KyAgICAgICAgbV9jb21wb3NpdGVkTmF0aXZlSW1hZ2VQdHIgPSBudWxscHRyOwogICAgIH0KIAog
ICAgIEdyYXBoaWNzTGF5ZXI6OnNldENvbnRlbnRzVG9JbWFnZShpbWFnZSk7CkBAIC04MjAsNyAr
ODIwLDcgQEAgdm9pZCBDb29yZGluYXRlZEdyYXBoaWNzTGF5ZXI6OnJlbGVhc2VJbWFnZUJhY2tp
bmdJZk5lZWRlZCgpCiAKICAgICBBU1NFUlQobV9jb29yZGluYXRvcik7CiAgICAgbV9jb29yZGlu
YXRlZEltYWdlQmFja2luZy0+cmVtb3ZlSG9zdCh0aGlzKTsKLSAgICBtX2Nvb3JkaW5hdGVkSW1h
Z2VCYWNraW5nLmNsZWFyKCk7CisgICAgbV9jb29yZGluYXRlZEltYWdlQmFja2luZyA9IG51bGxw
dHI7CiAgICAgbV9sYXllclN0YXRlLmltYWdlSUQgPSBJbnZhbGlkQ29vcmRpbmF0ZWRJbWFnZUJh
Y2tpbmdJRDsKICAgICBtX2xheWVyU3RhdGUuaW1hZ2VDaGFuZ2VkID0gdHJ1ZTsKIH0KZGlmZiAt
LWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL3RleG1hcC9jb29yZGluYXRl
ZC9Db29yZGluYXRlZEltYWdlQmFja2luZy5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9n
cmFwaGljcy90ZXhtYXAvY29vcmRpbmF0ZWQvQ29vcmRpbmF0ZWRJbWFnZUJhY2tpbmcuY3BwCmlu
ZGV4IGQyMmIxNWVkZDMwYWY5ZWEwOWMyNDY4NTYyMmIwMzkzYjViNTUyOTMuLmUyNjE1MGZlZWU5
ZTI3OWJhMzMyMDcwZGU4NGJmNDI0OWZmMjMxZTcgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3Jl
L3BsYXRmb3JtL2dyYXBoaWNzL3RleG1hcC9jb29yZGluYXRlZC9Db29yZGluYXRlZEltYWdlQmFj
a2luZy5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvdGV4bWFwL2Nv
b3JkaW5hdGVkL0Nvb3JkaW5hdGVkSW1hZ2VCYWNraW5nLmNwcApAQCAtMTQxLDcgKzE0MSw3IEBA
IHZvaWQgQ29vcmRpbmF0ZWRJbWFnZUJhY2tpbmc6OnJlbGVhc2VTdXJmYWNlSWZOZWVkZWQoKQog
ewogICAgIC8vIFdlIG11c3Qga2VlcCBtX3N1cmZhY2UgdW50aWwgVUkgUHJvY2VzcyByZWFkcyBt
X3N1cmZhY2UuCiAgICAgLy8gSWYgbV9zdXJmYWNlIGV4aXN0cywgaXQgd2FzIGNyZWF0ZWQgaW4g
dGhlIHByZXZpb3VzIHVwZGF0ZS4KLSAgICBtX3N1cmZhY2UuY2xlYXIoKTsKKyAgICBtX3N1cmZh
Y2UgPSBudWxscHRyOwogfQogCiBzdGF0aWMgY29uc3QgZG91YmxlIGNsZWFyQ29udGVudHNUaW1l
ckludGVydmFsID0gMzsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2d0ay9H
YW1lcGFkc0d0ay5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ndGsvR2FtZXBhZHNHdGsu
Y3BwCmluZGV4IDI2ZjliZTYyYzc2NDYzYzZlMDgxZmNlZmU3OTZiMmVhZjE3NTk1OGQuLjlmYjI5
ZjJiOTU0NmZjMTgzOWM0ZWE4ZWI1Nzg0YThhNTYyMzIzNDkgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9X
ZWJDb3JlL3BsYXRmb3JtL2d0ay9HYW1lcGFkc0d0ay5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUv
cGxhdGZvcm0vZ3RrL0dhbWVwYWRzR3RrLmNwcApAQCAtMTU1LDcgKzE1NSw3IEBAIHZvaWQgR2Ft
ZXBhZHNHdGs6OnVucmVnaXN0ZXJEZXZpY2UoU3RyaW5nIGRldmljZUZpbGUpCiAgICAgc2l6ZV90
IGluZGV4ID0gbV9zbG90cy5maW5kKGdhbWVwYWREZXZpY2UpOwogICAgIEFTU0VSVChpbmRleCAh
PSBub3RGb3VuZCk7CiAKLSAgICBtX3Nsb3RzW2luZGV4XS5jbGVhcigpOworICAgIG1fc2xvdHNb
aW5kZXhdID0gbnVsbHB0cjsKIH0KIAogdm9pZCBHYW1lcGFkc0d0azo6dXBkYXRlR2FtZXBhZExp
c3QoR2FtZXBhZExpc3QqIGludG8pCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9y
bS9pb3MvUGxhdGZvcm1TcGVlY2hTeW50aGVzaXplcklPUy5tbSBiL1NvdXJjZS9XZWJDb3JlL3Bs
YXRmb3JtL2lvcy9QbGF0Zm9ybVNwZWVjaFN5bnRoZXNpemVySU9TLm1tCmluZGV4IGFiMTRjNzA5
MDUyOTI4MmRiNGM1NTNkZjFhNWU1NTUxY2JlODI3MTYuLmRjMGNhYTg4YTA1ZTA4NGVhMDk4Y2U0
MTBiYTZkMmFiZDM4ZDkwYzcgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2lv
cy9QbGF0Zm9ybVNwZWVjaFN5bnRoZXNpemVySU9TLm1tCisrKyBiL1NvdXJjZS9XZWJDb3JlL3Bs
YXRmb3JtL2lvcy9QbGF0Zm9ybVNwZWVjaFN5bnRoZXNpemVySU9TLm1tCkBAIC0xNzksNyArMTc5
LDcgQEAgLSAodm9pZClzcGVlY2hTeW50aGVzaXplcjooQVZTcGVlY2hTeW50aGVzaXplciAqKXN5
bnRoZXNpemVyIGRpZEZpbmlzaFNwZWVjaFV0dGUKICAgICAKICAgICAvLyBDbGVhciB0aGUgbV91
dHRlcmFuY2UgdmFyaWFibGUgaW4gY2FzZSBmaW5pc2ggc3BlYWtpbmcga2lja3Mgb2ZmIGEgbmV3
IHNwZWFraW5nIGpvYiBpbW1lZGlhdGVseS4KICAgICBSZWZQdHI8V2ViQ29yZTo6UGxhdGZvcm1T
cGVlY2hTeW50aGVzaXNVdHRlcmFuY2U+IHBsYXRmb3JtVXR0ZXJhbmNlID0gbV91dHRlcmFuY2U7
Ci0gICAgbV91dHRlcmFuY2UgPSAwOworICAgIG1fdXR0ZXJhbmNlID0gbnVsbHB0cjsKICAgICAK
ICAgICBtX3N5bnRoZXNpemVyT2JqZWN0LT5jbGllbnQoKS0+ZGlkRmluaXNoU3BlYWtpbmcocGxh
dGZvcm1VdHRlcmFuY2UpOwogfQpAQCAtMjEzLDcgKzIxMyw3IEBAIC0gKHZvaWQpc3BlZWNoU3lu
dGhlc2l6ZXI6KEFWU3BlZWNoU3ludGhlc2l6ZXIgKilzeW50aGVzaXplciBkaWRDYW5jZWxTcGVl
Y2hVdHRlCiAgICAgCiAgICAgLy8gQ2xlYXIgdGhlIG1fdXR0ZXJhbmNlIHZhcmlhYmxlIGluIGNh
c2UgZmluaXNoIHNwZWFraW5nIGtpY2tzIG9mZiBhIG5ldyBzcGVha2luZyBqb2IgaW1tZWRpYXRl
bHkuCiAgICAgUmVmUHRyPFdlYkNvcmU6OlBsYXRmb3JtU3BlZWNoU3ludGhlc2lzVXR0ZXJhbmNl
PiBwbGF0Zm9ybVV0dGVyYW5jZSA9IG1fdXR0ZXJhbmNlOwotICAgIG1fdXR0ZXJhbmNlID0gMDsK
KyAgICBtX3V0dGVyYW5jZSA9IG51bGxwdHI7CiAgICAgCiAgICAgbV9zeW50aGVzaXplck9iamVj
dC0+Y2xpZW50KCktPmRpZEZpbmlzaFNwZWFraW5nKHBsYXRmb3JtVXR0ZXJhbmNlKTsKIH0KZGlm
ZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL21vY2svR2VvbG9jYXRpb25DbGllbnRN
b2NrLmNwcCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL21vY2svR2VvbG9jYXRpb25DbGllbnRN
b2NrLmNwcAppbmRleCA4MTg2YTZhNTIzM2VlODViZTY1MjY4YjY4ZjA1NDQ3ZTg1NTIzMzAwLi5i
N2NmYjliZTA2ZGNiZmZjN2MxNmIzY2ZlNzQ2NTAxMzBmYTcwMGU1IDEwMDY0NAotLS0gYS9Tb3Vy
Y2UvV2ViQ29yZS9wbGF0Zm9ybS9tb2NrL0dlb2xvY2F0aW9uQ2xpZW50TW9jay5jcHAKKysrIGIv
U291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbW9jay9HZW9sb2NhdGlvbkNsaWVudE1vY2suY3BwCkBA
IC0xMjYsNyArMTI2LDcgQEAgdm9pZCBHZW9sb2NhdGlvbkNsaWVudE1vY2s6OnBlcm1pc3Npb25U
aW1lckZpcmVkKCkKIAogdm9pZCBHZW9sb2NhdGlvbkNsaWVudE1vY2s6OnJlc2V0KCkKIHsKLSAg
ICBtX2xhc3RQb3NpdGlvbiA9IDA7CisgICAgbV9sYXN0UG9zaXRpb24gPSBudWxscHRyOwogICAg
IGNsZWFyRXJyb3IoKTsKICAgICBtX3Blcm1pc3Npb25TdGF0ZSA9IFBlcm1pc3Npb25TdGF0ZVVu
c2V0OwogfQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbW9jay9QbGF0Zm9y
bVNwZWVjaFN5bnRoZXNpemVyTW9jay5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9tb2Nr
L1BsYXRmb3JtU3BlZWNoU3ludGhlc2l6ZXJNb2NrLmNwcAppbmRleCAzODM4MzcyYzU3NzhlYzI3
MmM4YjU1ZjgzMTUwNjUzODRkOWNmODc0Li5jMGI0ZGZhMmM2ZjIyNDRlYWE0ZGE4ODY0ZDVjNGIz
MjYzMjU5MmRjIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9tb2NrL1BsYXRm
b3JtU3BlZWNoU3ludGhlc2l6ZXJNb2NrLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9y
bS9tb2NrL1BsYXRmb3JtU3BlZWNoU3ludGhlc2l6ZXJNb2NrLmNwcApAQCAtNDUsNyArNDUsNyBA
QCB2b2lkIFBsYXRmb3JtU3BlZWNoU3ludGhlc2l6ZXJNb2NrOjpzcGVha2luZ0ZpbmlzaGVkKCkK
IHsKICAgICBBU1NFUlQobV91dHRlcmFuY2UuZ2V0KCkpOwogICAgIFJlZlB0cjxQbGF0Zm9ybVNw
ZWVjaFN5bnRoZXNpc1V0dGVyYW5jZT4gcHJvdGVjdChtX3V0dGVyYW5jZSk7Ci0gICAgbV91dHRl
cmFuY2UgPSAwOworICAgIG1fdXR0ZXJhbmNlID0gbnVsbHB0cjsKICAgICAKICAgICBjbGllbnQo
KS0+ZGlkRmluaXNoU3BlYWtpbmcocHJvdGVjdCk7CiB9CkBAIC03OCw3ICs3OCw3IEBAIHZvaWQg
UGxhdGZvcm1TcGVlY2hTeW50aGVzaXplck1vY2s6OmNhbmNlbCgpCiAgICAgCiAgICAgbV9zcGVh
a2luZ0ZpbmlzaGVkVGltZXIuc3RvcCgpOwogICAgIGNsaWVudCgpLT5zcGVha2luZ0Vycm9yT2Nj
dXJyZWQobV91dHRlcmFuY2UpOwotICAgIG1fdXR0ZXJhbmNlID0gMDsKKyAgICBtX3V0dGVyYW5j
ZSA9IG51bGxwdHI7CiB9CiAKIHZvaWQgUGxhdGZvcm1TcGVlY2hTeW50aGVzaXplck1vY2s6OnBh
dXNlKCkKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL25ldHdvcmsvY2YvUmVz
b3VyY2VSZXF1ZXN0Q0ZOZXQuY3BwIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbmV0d29yay9j
Zi9SZXNvdXJjZVJlcXVlc3RDRk5ldC5jcHAKaW5kZXggY2RjN2Q3MzQ2ZDVhN2JmZTE5NzJjZmI3
ODZiZWNjZjJlM2QzOWU5ZS4uYTRkNDNkZjNjMGE0MjhmMTcwNjE4MmU4YThhYWJjMDVkZGEyM2E5
ZSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbmV0d29yay9jZi9SZXNvdXJj
ZVJlcXVlc3RDRk5ldC5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbmV0d29yay9j
Zi9SZXNvdXJjZVJlcXVlc3RDRk5ldC5jcHAKQEAgLTI5NSw3ICsyOTUsNyBAQCB2b2lkIFJlc291
cmNlUmVxdWVzdDo6ZG9VcGRhdGVSZXNvdXJjZVJlcXVlc3QoKQogdm9pZCBSZXNvdXJjZVJlcXVl
c3Q6OmRvVXBkYXRlUmVzb3VyY2VIVFRQQm9keSgpCiB7CiAgICAgaWYgKCFtX2NmUmVxdWVzdCkg
ewotICAgICAgICBtX2h0dHBCb2R5ID0gMDsKKyAgICAgICAgbV9odHRwQm9keSA9IG51bGxwdHI7
CiAgICAgICAgIHJldHVybjsKICAgICB9CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3Jl
bmRlcmluZy9JbmxpbmVGbG93Qm94LmNwcCBiL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9Jbmxp
bmVGbG93Qm94LmNwcAppbmRleCA0MTY4MmM4ZTJiNjBjYjkyOGU0NjFiNGVmZmFhM2JmNzljMzYx
YzI4Li4yZDZmYjY5NDQ4ZjhmMWJiNTk0NGMxMGJhNTQ5MDExNTY3ZDY3NzM3IDEwMDY0NAotLS0g
YS9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvSW5saW5lRmxvd0JveC5jcHAKKysrIGIvU291cmNl
L1dlYkNvcmUvcmVuZGVyaW5nL0lubGluZUZsb3dCb3guY3BwCkBAIC05NTQsNyArOTU0LDcgQEAg
dm9pZCBJbmxpbmVGbG93Qm94Ojpjb21wdXRlT3ZlcmZsb3coTGF5b3V0VW5pdCBsaW5lVG9wLCBM
YXlvdXRVbml0IGxpbmVCb3R0b20sIEcKICAgICAgICAgcmV0dXJuOwogCiAgICAgaWYgKG1fb3Zl
cmZsb3cpCi0gICAgICAgIG1fb3ZlcmZsb3cuY2xlYXIoKTsKKyAgICAgICAgbV9vdmVyZmxvdyA9
IG51bGxwdHI7CiAKICAgICAvLyBWaXN1YWwgb3ZlcmZsb3cganVzdCBpbmNsdWRlcyBvdmVyZmxv
dyBmb3Igc3R1ZmYgd2UgbmVlZCB0byByZXBhaW50IG91cnNlbHZlcy4gIFNlbGYtcGFpbnRpbmcg
bGF5ZXJzIGFyZSBpZ25vcmVkLgogICAgIC8vIExheW91dCBvdmVyZmxvdyBpcyB1c2VkIHRvIGRl
dGVybWluZSBzY3JvbGxpbmcgZXh0ZW50LCBzbyBpdCBzdGlsbCBpbmNsdWRlcyBjaGlsZCBsYXll
cnMgYW5kIGFsc28gZmFjdG9ycyBpbgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcmVuZGVy
aW5nL1JlbmRlckJveC5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyQm94LmNw
cAppbmRleCA1MDJkZjY2YzBkMGRlOThhOWE0MmNkOTRmNzBiMjBiNGUwYjJhY2JjLi42MTcxZGI1
ZTBhOGE5MjI1N2NiZTJkMzA3ZDZmNzZkYTM2OWFkYjI0IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2Vi
Q29yZS9yZW5kZXJpbmcvUmVuZGVyQm94LmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJp
bmcvUmVuZGVyQm94LmNwcApAQCAtNDQ5Nyw3ICs0NDk3LDcgQEAgdm9pZCBSZW5kZXJCb3g6OmFk
ZFZpc3VhbE92ZXJmbG93KGNvbnN0IExheW91dFJlY3QmIHJlY3QpCiAKIHZvaWQgUmVuZGVyQm94
OjpjbGVhck92ZXJmbG93KCkKIHsKLSAgICBtX292ZXJmbG93LmNsZWFyKCk7CisgICAgbV9vdmVy
ZmxvdyA9IG51bGxwdHI7CiAgICAgUmVuZGVyRmxvd1RocmVhZCogZmxvd1RocmVhZCA9IGZsb3dU
aHJlYWRDb250YWluaW5nQmxvY2soKTsKICAgICBpZiAoZmxvd1RocmVhZCkKICAgICAgICAgZmxv
d1RocmVhZC0+Y2xlYXJSZWdpb25zT3ZlcmZsb3codGhpcyk7CmRpZmYgLS1naXQgYS9Tb3VyY2Uv
V2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyQm94UmVnaW9uSW5mby5oIGIvU291cmNlL1dlYkNvcmUv
cmVuZGVyaW5nL1JlbmRlckJveFJlZ2lvbkluZm8uaAppbmRleCA2MjM2MDhkNjc1ZGNjNjkxMWUy
N2RhZjI0YWNiODQwOWQ0NmUxOGFmLi5lYTIzYzFlYzhlZTM3NWU3YTYxMWMxNGVjMDQxOWY2NTZk
YTE5N2IyIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyQm94UmVn
aW9uSW5mby5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJCb3hSZWdpb25J
bmZvLmgKQEAgLTUzLDcgKzUzLDcgQEAgcHVibGljOgogICAgIHZvaWQgY2xlYXJPdmVyZmxvdygp
CiAgICAgewogICAgICAgICBpZiAobV9vdmVyZmxvdykKLSAgICAgICAgICAgIG1fb3ZlcmZsb3cu
Y2xlYXIoKTsKKyAgICAgICAgICAgIG1fb3ZlcmZsb3cgPSBudWxscHRyOwogICAgIH0KIAogcHJp
dmF0ZToKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJDb3VudGVy
LmNwcCBiL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJDb3VudGVyLmNwcAppbmRleCA5
MThhNGY4OGEyM2Q5NmQ4YWU1ZTIzNjY5NTY3MTc4MGEwOTM2MjdlLi5jNzQ1NjM5ZjhhMGFiZTRk
OGZkZjY4MTA1NGMxNjg1MjI5ODZlZjM2IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9yZW5k
ZXJpbmcvUmVuZGVyQ291bnRlci5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1Jl
bmRlckNvdW50ZXIuY3BwCkBAIC0xODYsOCArMTg2LDggQEAgc3RhdGljIGJvb2wgZmluZFBsYWNl
Rm9yQ291bnRlcihSZW5kZXJFbGVtZW50JiBjb3VudGVyT3duZXIsIGNvbnN0IEF0b21pY1N0cmlu
ZyYKICAgICAvLyB0b3dhcmRzIHRoZSBiZWdpbmluZyBvZiB0aGUgZG9jdW1lbnQgZm9yIGNvdW50
ZXJzIHdpdGggdGhlIHNhbWUgaWRlbnRpZmllciBhcyB0aGUgb25lCiAgICAgLy8gd2UgYXJlIHRy
eWluZyB0byBmaW5kIGEgcGxhY2UgZm9yLiBUaGlzIGlzIHRoZSBuZXh0IHJlbmRlcmVyIHRvIGJl
IGNoZWNrZWQuCiAgICAgUmVuZGVyRWxlbWVudCogY3VycmVudFJlbmRlcmVyID0gcHJldmlvdXNJ
blByZU9yZGVyKGNvdW50ZXJPd25lcik7Ci0gICAgcHJldmlvdXNTaWJsaW5nID0gMDsKLSAgICBS
ZWZQdHI8Q291bnRlck5vZGU+IHByZXZpb3VzU2libGluZ1Byb3RlY3RvciA9IDA7CisgICAgcHJl
dmlvdXNTaWJsaW5nID0gbnVsbHB0cjsKKyAgICBSZWZQdHI8Q291bnRlck5vZGU+IHByZXZpb3Vz
U2libGluZ1Byb3RlY3RvcjsKIAogICAgIHdoaWxlIChjdXJyZW50UmVuZGVyZXIpIHsKICAgICAg
ICAgQ291bnRlck5vZGUqIGN1cnJlbnRDb3VudGVyID0gbWFrZUNvdW50ZXJOb2RlKCpjdXJyZW50
UmVuZGVyZXIsIGlkZW50aWZpZXIsIGZhbHNlKTsKQEAgLTIwMyw3ICsyMDMsNyBAQCBzdGF0aWMg
Ym9vbCBmaW5kUGxhY2VGb3JDb3VudGVyKFJlbmRlckVsZW1lbnQmIGNvdW50ZXJPd25lciwgY29u
c3QgQXRvbWljU3RyaW5nJgogICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8vIGhlbmNlIHdl
IGFyZSB0aGUgbmV4dCBzaWJsaW5nIG9mIHRoYXQgY291bnRlciBpZiB0aGF0IHJlc2V0IGlzIG5v
dCBhIHJvb3Qgb3IKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAvLyB3ZSBhcmUgYSByb290
IG5vZGUgaWYgdGhhdCByZXNldCBpcyBhIHJvb3QuCiAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgcGFyZW50ID0gY3VycmVudENvdW50ZXItPnBhcmVudCgpOwotICAgICAgICAgICAgICAgICAg
ICAgICAgICAgIHByZXZpb3VzU2libGluZyA9IHBhcmVudCA/IGN1cnJlbnRDb3VudGVyIDogMDsK
KyAgICAgICAgICAgICAgICAgICAgICAgICAgICBwcmV2aW91c1NpYmxpbmcgPSBwYXJlbnQgPyBj
dXJyZW50Q291bnRlciA6IG51bGxwdHI7CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgcmV0
dXJuIHBhcmVudDsKICAgICAgICAgICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgICAgICAg
ICAgICAgIC8vIFdlIGFyZSBub3QgYSByZXNldCBub2RlIG9yIHRoZSBwcmV2aW91cyByZXNldCBt
dXN0IGJlIG9uIGFuIGFuY2VzdG9yIG9mIG91ciBvd25lciByZW5kZXJlcgpAQCAtMjEzLDcgKzIx
Myw3IEBAIHN0YXRpYyBib29sIGZpbmRQbGFjZUZvckNvdW50ZXIoUmVuZGVyRWxlbWVudCYgY291
bnRlck93bmVyLCBjb25zdCBBdG9taWNTdHJpbmcmCiAgICAgICAgICAgICAgICAgICAgICAgICAv
LyBJbiB0aGVzZSBjYXNlcyB0aGUgaWRlbnRpZmllZCBwcmV2aW91c1NpYmxpbmcgd2lsbCBiZSBp
bnZhbGlkIGFzIGl0cyBwYXJlbnQgaXMgZGlmZmVyZW50IGZyb20KICAgICAgICAgICAgICAgICAg
ICAgICAgIC8vIG91ciBpZGVudGlmaWVkIHBhcmVudC4KICAgICAgICAgICAgICAgICAgICAgICAg
IGlmIChwcmV2aW91c1NpYmxpbmdQcm90ZWN0b3ItPnBhcmVudCgpICE9IGN1cnJlbnRDb3VudGVy
KQotICAgICAgICAgICAgICAgICAgICAgICAgICAgIHByZXZpb3VzU2libGluZ1Byb3RlY3RvciA9
IDA7CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgcHJldmlvdXNTaWJsaW5nUHJvdGVjdG9y
ID0gbnVsbHB0cjsKIAogICAgICAgICAgICAgICAgICAgICAgICAgcHJldmlvdXNTaWJsaW5nID0g
cHJldmlvdXNTaWJsaW5nUHJvdGVjdG9yLmdldCgpOwogICAgICAgICAgICAgICAgICAgICAgICAg
cmV0dXJuIHRydWU7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVy
TWVudUxpc3QuY3BwIGIvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlck1lbnVMaXN0LmNw
cAppbmRleCBmZjlhMmM1ODZiYmQ5YmU5OWM3NzU1ZTIyMmUwMDM4NjQ2YzE3NGQ2Li5kYjk5NDk5
Y2JkZmYwM2E1NTEwMWQyYWQ4NmUxODM3NmNmYWZhMjhiIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2Vi
Q29yZS9yZW5kZXJpbmcvUmVuZGVyTWVudUxpc3QuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3Jl
bmRlcmluZy9SZW5kZXJNZW51TGlzdC5jcHAKQEAgLTg4LDcgKzg4LDcgQEAgUmVuZGVyTWVudUxp
c3Q6On5SZW5kZXJNZW51TGlzdCgpCiAjaWYgIVBMQVRGT1JNKElPUykKICAgICBpZiAobV9wb3B1
cCkKICAgICAgICAgbV9wb3B1cC0+ZGlzY29ubmVjdENsaWVudCgpOwotICAgIG1fcG9wdXAgPSAw
OworICAgIG1fcG9wdXAgPSBudWxscHRyOwogI2VuZGlmCiB9CiAKZGlmZiAtLWdpdCBhL1NvdXJj
ZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJTZWFyY2hGaWVsZC5jcHAgYi9Tb3VyY2UvV2ViQ29y
ZS9yZW5kZXJpbmcvUmVuZGVyU2VhcmNoRmllbGQuY3BwCmluZGV4IGZhNmUzOTY3MzE2NDhlYTA1
MWM2ODA2YzE5MjRkYzJjZjhiZTRjMDAuLjg5ZGMzNGM0ZjQ0NGRjYzVjNmM5ZTA3NWUxN2Q3N2M2
ZWQyZDQ4MDUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJTZWFy
Y2hGaWVsZC5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlclNlYXJjaEZp
ZWxkLmNwcApAQCAtNjIsNyArNjIsNyBAQCBSZW5kZXJTZWFyY2hGaWVsZDo6flJlbmRlclNlYXJj
aEZpZWxkKCkKIHsKICAgICBpZiAobV9zZWFyY2hQb3B1cCkgewogICAgICAgICBtX3NlYXJjaFBv
cHVwLT5wb3B1cE1lbnUoKS0+ZGlzY29ubmVjdENsaWVudCgpOwotICAgICAgICBtX3NlYXJjaFBv
cHVwID0gMDsKKyAgICAgICAgbV9zZWFyY2hQb3B1cCA9IG51bGxwdHI7CiAgICAgfQogfQogCmRp
ZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvc3R5bGUvRmlsbExheWVyLmggYi9T
b3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvc3R5bGUvRmlsbExheWVyLmgKaW5kZXggOGIwNmNlM2I3
ZTg3N2UyNTU2ZjY3Njg4YTM0M2FhZmMyZDEzMThmOS4uMDMwOTg2M2RhZTYwZTc4ZTc2OTRiMTY5
ZTY2YmJjZTVmMTljYzgwNCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL3N0
eWxlL0ZpbGxMYXllci5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9zdHlsZS9GaWxs
TGF5ZXIuaApAQCAtMTIxLDggKzEyMSw4IEBAIHB1YmxpYzoKICAgICB2b2lkIHNldFNpemUoRmls
bFNpemUgZikgeyBtX3NpemVUeXBlID0gZi50eXBlOyBtX3NpemVMZW5ndGggPSBmLnNpemU7IH0K
ICAgICB2b2lkIHNldE1hc2tTb3VyY2VUeXBlKEVNYXNrU291cmNlVHlwZSBtKSB7IG1fbWFza1Nv
dXJjZVR5cGUgPSBtOyBtX21hc2tTb3VyY2VUeXBlU2V0ID0gdHJ1ZTsgfQogCi0gICAgdm9pZCBj
bGVhck1hc2tJbWFnZSgpIHsgbV9tYXNrSW1hZ2VPcGVyYXRpb24uY2xlYXIoKTsgfQotICAgIHZv
aWQgY2xlYXJJbWFnZSgpIHsgbV9pbWFnZS5jbGVhcigpOyBtX2ltYWdlU2V0ID0gZmFsc2U7IH0K
KyAgICB2b2lkIGNsZWFyTWFza0ltYWdlKCkgeyBtX21hc2tJbWFnZU9wZXJhdGlvbiA9IG51bGxw
dHI7IH0KKyAgICB2b2lkIGNsZWFySW1hZ2UoKSB7IG1faW1hZ2UgPSBudWxscHRyOyBtX2ltYWdl
U2V0ID0gZmFsc2U7IH0KICAgICB2b2lkIGNsZWFyWFBvc2l0aW9uKCkgeyBtX3hQb3NTZXQgPSBm
YWxzZTsgbV9iYWNrZ3JvdW5kT3JpZ2luU2V0ID0gZmFsc2U7IH0KICAgICB2b2lkIGNsZWFyWVBv
c2l0aW9uKCkgeyBtX3lQb3NTZXQgPSBmYWxzZTsgbV9iYWNrZ3JvdW5kT3JpZ2luU2V0ID0gZmFs
c2U7IH0KIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL3N0eWxlL1JlbmRl
clN0eWxlLmNwcCBiL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9zdHlsZS9SZW5kZXJTdHlsZS5j
cHAKaW5kZXggODdjNThlOWJmYzdmNDRlNGYyYjljMjZmMWVmNTlkNjhmMTIwOWZkYy4uNDdmZWU4
OTUxY2M4NjlmZjk5YmIyMmY2NTk3YzA3ZjI0YWZmMWUxMSAxMDA2NDQKLS0tIGEvU291cmNlL1dl
YkNvcmUvcmVuZGVyaW5nL3N0eWxlL1JlbmRlclN0eWxlLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29y
ZS9yZW5kZXJpbmcvc3R5bGUvUmVuZGVyU3R5bGUuY3BwCkBAIC05NTAsNyArOTUwLDcgQEAgdm9p
ZCBSZW5kZXJTdHlsZTo6c2V0UXVvdGVzKFBhc3NSZWZQdHI8UXVvdGVzRGF0YT4gcSkKIHZvaWQg
UmVuZGVyU3R5bGU6OmNsZWFyQ3Vyc29yTGlzdCgpCiB7CiAgICAgaWYgKHJhcmVJbmhlcml0ZWRE
YXRhLT5jdXJzb3JEYXRhKQotICAgICAgICByYXJlSW5oZXJpdGVkRGF0YS5hY2Nlc3MoKS0+Y3Vy
c29yRGF0YSA9IDA7CisgICAgICAgIHJhcmVJbmhlcml0ZWREYXRhLmFjY2VzcygpLT5jdXJzb3JE
YXRhID0gbnVsbHB0cjsKIH0KIAogdm9pZCBSZW5kZXJTdHlsZTo6Y2xlYXJDb250ZW50KCkKZGlm
ZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3N2Zy9TVkdUUmVmRWxlbWVudC5jcHAgYi9Tb3VyY2Uv
V2ViQ29yZS9zdmcvU1ZHVFJlZkVsZW1lbnQuY3BwCmluZGV4IDIyNWEzMDQ2YTQ5OTJjOTcwNWJh
Nzk1MDk5NTYxYjNiOWViYWZmYmQuLmUzZmFkOGQ1OTBjNTRkZTZiZTk0Njc5Yzk1NzE3Yjk4NWFj
NzRhMjEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3N2Zy9TVkdUUmVmRWxlbWVudC5jcHAK
KysrIGIvU291cmNlL1dlYkNvcmUvc3ZnL1NWR1RSZWZFbGVtZW50LmNwcApAQCAtMTA0LDcgKzEw
NCw3IEBAIHZvaWQgU1ZHVFJlZlRhcmdldEV2ZW50TGlzdGVuZXI6OmRldGFjaCgpCiAKICAgICBt
X3RhcmdldC0+cmVtb3ZlRXZlbnRMaXN0ZW5lcihldmVudE5hbWVzKCkuRE9NU3VidHJlZU1vZGlm
aWVkRXZlbnQsIHRoaXMsIGZhbHNlKTsKICAgICBtX3RhcmdldC0+cmVtb3ZlRXZlbnRMaXN0ZW5l
cihldmVudE5hbWVzKCkuRE9NTm9kZVJlbW92ZWRGcm9tRG9jdW1lbnRFdmVudCwgdGhpcywgZmFs
c2UpOwotICAgIG1fdGFyZ2V0LmNsZWFyKCk7CisgICAgbV90YXJnZXQgPSBudWxscHRyOwogfQog
CiBib29sIFNWR1RSZWZUYXJnZXRFdmVudExpc3RlbmVyOjpvcGVyYXRvcj09KGNvbnN0IEV2ZW50
TGlzdGVuZXImIGxpc3RlbmVyKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvdGVzdGluZy9J
bnRlcm5hbHMuY3BwIGIvU291cmNlL1dlYkNvcmUvdGVzdGluZy9JbnRlcm5hbHMuY3BwCmluZGV4
IDFhMTA1MTc0NzllOGU4ZTk4MWE3NDUzYWJkYTZmZGMyNDc1NzUxYjcuLjQ3NmQxZTI3NTllNjA2
ZjIwNzY0NTgyMTBkYjQ5MzNjODIzMDZlODIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3Rl
c3RpbmcvSW50ZXJuYWxzLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS90ZXN0aW5nL0ludGVybmFs
cy5jcHAKQEAgLTE3MjMsNyArMTcyMyw3IEBAIHZvaWQgSW50ZXJuYWxzOjpjbG9zZUR1bW15SW5z
cGVjdG9yRnJvbnRlbmQoKQogICAgIG1fZnJvbnRlbmRDaGFubmVsID0gbnVsbHB0cjsKIAogICAg
IG1fZnJvbnRlbmRXaW5kb3ctPmNsb3NlKG1fZnJvbnRlbmRXaW5kb3ctPnNjcmlwdEV4ZWN1dGlv
bkNvbnRleHQoKSk7Ci0gICAgbV9mcm9udGVuZFdpbmRvdy5jbGVhcigpOworICAgIG1fZnJvbnRl
bmRXaW5kb3cgPSBudWxscHRyOwogfQogCiB2b2lkIEludGVybmFsczo6c2V0SmF2YVNjcmlwdFBy
b2ZpbGluZ0VuYWJsZWQoYm9vbCBlbmFibGVkLCBFeGNlcHRpb25Db2RlJiBlYykKZGlmZiAtLWdp
dCBhL1NvdXJjZS9XZWJDb3JlL3dvcmtlcnMvV29ya2VyRXZlbnRRdWV1ZS5jcHAgYi9Tb3VyY2Uv
V2ViQ29yZS93b3JrZXJzL1dvcmtlckV2ZW50UXVldWUuY3BwCmluZGV4IGY1MjBjMWRlZWZhYjFl
YjE0ZjFiN2ZkOTI0MGZlODY0N2FjMjRhODkuLjA3MjEwNzY5ZmQwNmJhOWNlODdhYzQ2NTJjOTll
MmMxNzhkMjg0ZjEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3dvcmtlcnMvV29ya2VyRXZl
bnRRdWV1ZS5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvd29ya2Vycy9Xb3JrZXJFdmVudFF1ZXVl
LmNwcApAQCAtNjgsMTMgKzY4LDEzIEBAIHB1YmxpYzoKICAgICAgICAgICAgIHJldHVybjsKICAg
ICAgICAgbV9ldmVudFF1ZXVlLm1fZXZlbnREaXNwYXRjaGVyTWFwLnJlbW92ZShtX2V2ZW50Lmdl
dCgpKTsKICAgICAgICAgbV9ldmVudC0+dGFyZ2V0KCktPmRpc3BhdGNoRXZlbnQobV9ldmVudCk7
Ci0gICAgICAgIG1fZXZlbnQuY2xlYXIoKTsKKyAgICAgICAgbV9ldmVudCA9IG51bGxwdHI7CiAg
ICAgfQogCiAgICAgdm9pZCBjYW5jZWwoKQogICAgIHsKICAgICAgICAgbV9pc0NhbmNlbGxlZCA9
IHRydWU7Ci0gICAgICAgIG1fZXZlbnQuY2xlYXIoKTsKKyAgICAgICAgbV9ldmVudCA9IG51bGxw
dHI7CiAgICAgfQogCiBwcml2YXRlOgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvd29ya2Vy
cy9Xb3JrZXJNZXNzYWdpbmdQcm94eS5jcHAgYi9Tb3VyY2UvV2ViQ29yZS93b3JrZXJzL1dvcmtl
ck1lc3NhZ2luZ1Byb3h5LmNwcAppbmRleCA3ODQ1YjYxZmE4ZGNmYWY5ZjY3ZmFhMGQ5NDI1ZDBm
OWIyYjVkNjE1Li5iZDc0ZWFjZTAyY2QzYzEwNmZkZWFiYzdlNGNkZjYxNjhhM2RiZTFlIDEwMDY0
NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS93b3JrZXJzL1dvcmtlck1lc3NhZ2luZ1Byb3h5LmNwcAor
KysgYi9Tb3VyY2UvV2ViQ29yZS93b3JrZXJzL1dvcmtlck1lc3NhZ2luZ1Byb3h5LmNwcApAQCAt
MjY0LDcgKzI2NCw3IEBAIHZvaWQgV29ya2VyTWVzc2FnaW5nUHJveHk6Ondvcmtlckdsb2JhbFNj
b3BlRGVzdHJveWVkSW50ZXJuYWwoKQogICAgIC8vIFdvcmtlckdsb2JhbFNjb3BlRGVzdHJveWVk
VGFzayBpcyBhbHdheXMgdGhlIGxhc3QgdG8gYmUgcGVyZm9ybWVkLCBzbyB0aGUgcHJveHkgaXMg
bm90IG5lZWRlZCBmb3IgY29tbXVuaWNhdGlvbgogICAgIC8vIGluIGVpdGhlciBzaWRlIGFueSBt
b3JlLiBIb3dldmVyLCB0aGUgV29ya2VyIG9iamVjdCBtYXkgc3RpbGwgZXhpc3QsIGFuZCBpdCBh
c3N1bWVzIHRoYXQgdGhlIHByb3h5IGV4aXN0cywgdG9vLgogICAgIG1fYXNrZWRUb1Rlcm1pbmF0
ZSA9IHRydWU7Ci0gICAgbV93b3JrZXJUaHJlYWQgPSAwOworICAgIG1fd29ya2VyVGhyZWFkID0g
bnVsbHB0cjsKIAogICAgIEluc3BlY3Rvckluc3RydW1lbnRhdGlvbjo6d29ya2VyR2xvYmFsU2Nv
cGVUZXJtaW5hdGVkKG1fc2NyaXB0RXhlY3V0aW9uQ29udGV4dC5nZXQoKSwgdGhpcyk7CiAKZGlm
ZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3dvcmtlcnMvV29ya2VyVGhyZWFkLmNwcCBiL1NvdXJj
ZS9XZWJDb3JlL3dvcmtlcnMvV29ya2VyVGhyZWFkLmNwcAppbmRleCA4NzNjODI5NmU2ZTJlZjEx
NzE0MmUwNWRmODlmNGJjNDZhMTRkOTA0Li5lNTE1NTUyNmM5OGU5MTAyOTdlMDFiODZmZWQyOGIx
MmY0ZDAyMjkwIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS93b3JrZXJzL1dvcmtlclRocmVh
ZC5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvd29ya2Vycy9Xb3JrZXJUaHJlYWQuY3BwCkBAIC0x
NzEsNyArMTcxLDcgQEAgdm9pZCBXb3JrZXJUaHJlYWQ6OndvcmtlclRocmVhZCgpCiAKICAgICAv
LyBUaGUgYmVsb3cgYXNzaWdubWVudCB3aWxsIGRlc3Ryb3kgdGhlIGNvbnRleHQsIHdoaWNoIHdp
bGwgaW4gdHVybiBub3RpZnkgbWVzc2FnaW5nIHByb3h5LgogICAgIC8vIFdlIGNhbm5vdCBsZXQg
YW55IG9iamVjdHMgc3Vydml2ZSBwYXN0IHRocmVhZCBleGl0LCBiZWNhdXNlIG5vIG90aGVyIHRo
cmVhZCB3aWxsIHJ1biBHQyBvciBvdGhlcndpc2UgZGVzdHJveSB0aGVtLgotICAgIG1fd29ya2Vy
R2xvYmFsU2NvcGUgPSAwOworICAgIG1fd29ya2VyR2xvYmFsU2NvcGUgPSBudWxscHRyOwogCiAg
ICAgLy8gQ2xlYW4gdXAgV2ViQ29yZTo6VGhyZWFkR2xvYmFsRGF0YSBiZWZvcmUgV1RGOjpXVEZU
aHJlYWREYXRhIGdvZXMgYXdheSEKICAgICB0aHJlYWRHbG9iYWxEYXRhKCkuZGVzdHJveSgpOwpk
aWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUveG1sL1hNTEh0dHBSZXF1ZXN0LmNwcCBiL1NvdXJj
ZS9XZWJDb3JlL3htbC9YTUxIdHRwUmVxdWVzdC5jcHAKaW5kZXggYzdlOGMwYjJiMGZkZDNhNzli
YTA5ZDJmZDkxNWYzMjE1ZmU2YzcyOS4uNDc1ZDZmYjRkNTZiZjY1NzVlZjUwYzFjNTQ0ZDU4ODM1
MDViOTQ3NSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUveG1sL1hNTEh0dHBSZXF1ZXN0LmNw
cAorKysgYi9Tb3VyY2UvV2ViQ29yZS94bWwvWE1MSHR0cFJlcXVlc3QuY3BwCkBAIC0yNDUsNyAr
MjQ1LDcgQEAgQmxvYiogWE1MSHR0cFJlcXVlc3Q6OnJlc3BvbnNlQmxvYigpCiAgICAgICAgICAg
ICBkYXRhLmFwcGVuZChtX2JpbmFyeVJlc3BvbnNlQnVpbGRlci0+ZGF0YSgpLCBtX2JpbmFyeVJl
c3BvbnNlQnVpbGRlci0+c2l6ZSgpKTsKICAgICAgICAgICAgIFN0cmluZyBub3JtYWxpemVkQ29u
dGVudFR5cGUgPSBCbG9iOjpub3JtYWxpemVkQ29udGVudFR5cGUocmVzcG9uc2VNSU1FVHlwZSgp
KTsgLy8gcmVzcG9uc2VNSU1FVHlwZSBkZWZhdWx0cyB0byB0ZXh0L3htbCB3aGljaCBtYXkgYmUg
aW5jb3JyZWN0LgogICAgICAgICAgICAgbV9yZXNwb25zZUJsb2IgPSBCbG9iOjpjcmVhdGUoV1RG
Ojptb3ZlKGRhdGEpLCBub3JtYWxpemVkQ29udGVudFR5cGUpOwotICAgICAgICAgICAgbV9iaW5h
cnlSZXNwb25zZUJ1aWxkZXIuY2xlYXIoKTsKKyAgICAgICAgICAgIG1fYmluYXJ5UmVzcG9uc2VC
dWlsZGVyID0gbnVsbHB0cjsKICAgICAgICAgfSBlbHNlIHsKICAgICAgICAgICAgIC8vIElmIHdl
IGVycm9yZWQgb3V0IG9yIGdvdCBubyBkYXRhLCB3ZSBzdGlsbCByZXR1cm4gYSBibG9iLCBqdXN0
IGFuIGVtcHR5IG9uZS4KICAgICAgICAgICAgIG1fcmVzcG9uc2VCbG9iID0gQmxvYjo6Y3JlYXRl
KCk7CkBAIC0yNjUsNyArMjY1LDcgQEAgQXJyYXlCdWZmZXIqIFhNTEh0dHBSZXF1ZXN0OjpyZXNw
b25zZUFycmF5QnVmZmVyKCkKICAgICAgICAgICAgIG1fcmVzcG9uc2VBcnJheUJ1ZmZlciA9IG1f
YmluYXJ5UmVzcG9uc2VCdWlsZGVyLT5jcmVhdGVBcnJheUJ1ZmZlcigpOwogICAgICAgICBlbHNl
CiAgICAgICAgICAgICBtX3Jlc3BvbnNlQXJyYXlCdWZmZXIgPSBBcnJheUJ1ZmZlcjo6Y3JlYXRl
KG51bGxwdHIsIDApOwotICAgICAgICBtX2JpbmFyeVJlc3BvbnNlQnVpbGRlci5jbGVhcigpOwor
ICAgICAgICBtX2JpbmFyeVJlc3BvbnNlQnVpbGRlciA9IG51bGxwdHI7CiAgICAgfQogCiAgICAg
cmV0dXJuIG1fcmVzcG9uc2VBcnJheUJ1ZmZlci5nZXQoKTsKQEAgLTg2OCw4ICs4NjgsOCBAQCB2
b2lkIFhNTEh0dHBSZXF1ZXN0OjpjbGVhclJlc3BvbnNlQnVmZmVycygpCiAgICAgbV9jcmVhdGVk
RG9jdW1lbnQgPSBmYWxzZTsKICAgICBtX3Jlc3BvbnNlRG9jdW1lbnQgPSBudWxscHRyOwogICAg
IG1fcmVzcG9uc2VCbG9iID0gbnVsbHB0cjsKLSAgICBtX2JpbmFyeVJlc3BvbnNlQnVpbGRlci5j
bGVhcigpOwotICAgIG1fcmVzcG9uc2VBcnJheUJ1ZmZlci5jbGVhcigpOworICAgIG1fYmluYXJ5
UmVzcG9uc2VCdWlsZGVyID0gbnVsbHB0cjsKKyAgICBtX3Jlc3BvbnNlQXJyYXlCdWZmZXIgPSBu
dWxscHRyOwogICAgIG1fcmVzcG9uc2VDYWNoZUlzVmFsaWQgPSBmYWxzZTsKIH0KIApkaWZmIC0t
Z2l0IGEvU291cmNlL1dlYkNvcmUveG1sL1hTTFRQcm9jZXNzb3IuY3BwIGIvU291cmNlL1dlYkNv
cmUveG1sL1hTTFRQcm9jZXNzb3IuY3BwCmluZGV4IDA2OWNjZWNiN2JmMmM5NDAwNmRlOTQ4NWQx
NjMyODRlODQwNzkxZmIuLjQ5MWYxMmM5OWQ4YTViNDIwYWZmYzI5MDc3YzRiM2RlMjEzZDU0MDgg
MTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3htbC9YU0xUUHJvY2Vzc29yLmNwcAorKysgYi9T
b3VyY2UvV2ViQ29yZS94bWwvWFNMVFByb2Nlc3Nvci5jcHAKQEAgLTE2Miw4ICsxNjIsOCBAQCB2
b2lkIFhTTFRQcm9jZXNzb3I6OnJlbW92ZVBhcmFtZXRlcihjb25zdCBTdHJpbmcmIC8qbmFtZXNw
YWNlVVJJKi8sIGNvbnN0IFN0cmluZwogCiB2b2lkIFhTTFRQcm9jZXNzb3I6OnJlc2V0KCkKIHsK
LSAgICBtX3N0eWxlc2hlZXQuY2xlYXIoKTsKLSAgICBtX3N0eWxlc2hlZXRSb290Tm9kZS5jbGVh
cigpOworICAgIG1fc3R5bGVzaGVldCA9IG51bGxwdHI7CisgICAgbV9zdHlsZXNoZWV0Um9vdE5v
ZGUgPSBudWxscHRyOwogICAgIG1fcGFyYW1ldGVycy5jbGVhcigpOwogfQogCmRpZmYgLS1naXQg
YS9Tb3VyY2UvV2ViS2l0L1N0b3JhZ2UvU3RvcmFnZUFyZWFTeW5jLmNwcCBiL1NvdXJjZS9XZWJL
aXQvU3RvcmFnZS9TdG9yYWdlQXJlYVN5bmMuY3BwCmluZGV4IGQxZWIzMmEwZGE0Y2QzYmJlYjZm
ODhjNzYxNWUyYmZkOWI5NzcxODYuLmJhMTdmMTg5ODFlM2JlNmYxODQwZjkwOThhOGIxYWIxOTAw
NTNmNTkgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvU3RvcmFnZS9TdG9yYWdlQXJlYVN5bmMu
Y3BwCisrKyBiL1NvdXJjZS9XZWJLaXQvU3RvcmFnZS9TdG9yYWdlQXJlYVN5bmMuY3BwCkBAIC04
OCw3ICs4OCw3IEBAIHZvaWQgU3RvcmFnZUFyZWFTeW5jOjpzY2hlZHVsZUZpbmFsU3luYygpCiAg
ICAgQVNTRVJUKGlzTWFpblRocmVhZCgpKTsKICAgICAvLyBGSVhNRTogV2UgZG8gdGhpcyB0byBh
dm9pZCByYWNlcywgYnV0IGl0J2QgYmUgYmV0dGVyIHRvIG1ha2UgdGhpbmdzIHNhZmUgd2l0aG91
dCBibG9ja2luZy4KICAgICBibG9ja1VudGlsSW1wb3J0Q29tcGxldGUoKTsKLSAgICBtX3N0b3Jh
Z2VBcmVhID0gMDsgIC8vIFRoaXMgaXMgZG9uZSBpbiBibG9ja1VudGlsSW1wb3J0Q29tcGxldGUo
KSBidXQgdGhpcyBpcyBoZXJlIGFzIGEgZm9ybSBvZiBkb2N1bWVudGF0aW9uIHRoYXQgd2UgbXVz
dCBiZSBhYnNvbHV0ZWx5IHN1cmUgdGhlIHJlZiBjb3VudCBjeWNsZSBpcyBicm9rZW4uCisgICAg
bV9zdG9yYWdlQXJlYSA9IG51bGxwdHI7IC8vIFRoaXMgaXMgZG9uZSBpbiBibG9ja1VudGlsSW1w
b3J0Q29tcGxldGUoKSBidXQgdGhpcyBpcyBoZXJlIGFzIGEgZm9ybSBvZiBkb2N1bWVudGF0aW9u
IHRoYXQgd2UgbXVzdCBiZSBhYnNvbHV0ZWx5IHN1cmUgdGhlIHJlZiBjb3VudCBjeWNsZSBpcyBi
cm9rZW4uCiAKICAgICBpZiAobV9zeW5jVGltZXIuaXNBY3RpdmUoKSkKICAgICAgICAgbV9zeW5j
VGltZXIuc3RvcCgpOwpAQCAtMzc1LDcgKzM3NSw3IEBAIHZvaWQgU3RvcmFnZUFyZWFTeW5jOjpi
bG9ja1VudGlsSW1wb3J0Q29tcGxldGUoKQogICAgIE11dGV4TG9ja2VyIGxvY2tlcihtX2ltcG9y
dExvY2spOwogICAgIHdoaWxlICghbV9pbXBvcnRDb21wbGV0ZSkKICAgICAgICAgbV9pbXBvcnRD
b25kaXRpb24ud2FpdChtX2ltcG9ydExvY2spOwotICAgIG1fc3RvcmFnZUFyZWEgPSAwOworICAg
IG1fc3RvcmFnZUFyZWEgPSBudWxscHRyOwogfQogCiB2b2lkIFN0b3JhZ2VBcmVhU3luYzo6c3lu
Yyhib29sIGNsZWFySXRlbXMsIGNvbnN0IEhhc2hNYXA8U3RyaW5nLCBTdHJpbmc+JiBpdGVtcykK
ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvbWFjL1BsdWdpbnMvSG9zdGVkL1dlYkhvc3RlZE5l
dHNjYXBlUGx1Z2luVmlldy5tbSBiL1NvdXJjZS9XZWJLaXQvbWFjL1BsdWdpbnMvSG9zdGVkL1dl
Ykhvc3RlZE5ldHNjYXBlUGx1Z2luVmlldy5tbQppbmRleCA3NjAwNTgzNjkwZDc5NjBjNWQ4YTU5
YTczZTcyZDAyNWRiMmNmZjM3Li5hYzQzNGVjMWE5ZjM0OGM3MDVjOGJiMDEyY2U2YTRlYzg5N2Vm
MzBhIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L21hYy9QbHVnaW5zL0hvc3RlZC9XZWJIb3N0
ZWROZXRzY2FwZVBsdWdpblZpZXcubW0KKysrIGIvU291cmNlL1dlYktpdC9tYWMvUGx1Z2lucy9I
b3N0ZWQvV2ViSG9zdGVkTmV0c2NhcGVQbHVnaW5WaWV3Lm1tCkBAIC0yODEsNyArMjgxLDcgQEAg
LSAodm9pZClkZXN0cm95UGx1Z2luCiAgICAgICAgIH0KICAgICAgICAgCiAgICAgICAgIF9wcm94
eS0+ZGVzdHJveSgpOwotICAgICAgICBfcHJveHkgPSAwOworICAgICAgICBfcHJveHkgPSBudWxs
cHRyOwogICAgIH0KICAgICAKICAgICBfcGx1Z2luTGF5ZXIgPSAwOwpAQCAtNDMyLDcgKzQzMiw3
IEBAIC0gKHZvaWQpcGx1Z2luSG9zdERpZWQKICAgICAgICAgZG93bmNhc3Q8UmVuZGVyRW1iZWRk
ZWRPYmplY3Q+KCpfZWxlbWVudC0+cmVuZGVyZXIoKSkuc2V0UGx1Z2luVW5hdmFpbGFiaWxpdHlS
ZWFzb24oUmVuZGVyRW1iZWRkZWRPYmplY3Q6OlBsdWdpbkNyYXNoZWQpOwogCiAgICAgX3BsdWdp
bkxheWVyID0gbmlsOwotICAgIF9wcm94eSA9IDA7CisgICAgX3Byb3h5ID0gbnVsbHB0cjsKICAg
ICAKICAgICAvLyBObyBuZWVkIGZvciB1cyB0byBiZSBsYXllciBiYWNrZWQgYW55bW9yZQogICAg
IHNlbGYud2FudHNMYXllciA9IE5POwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9tYWMvV2Vi
Q29yZVN1cHBvcnQvV2ViRWRpdG9yQ2xpZW50Lm1tIGIvU291cmNlL1dlYktpdC9tYWMvV2ViQ29y
ZVN1cHBvcnQvV2ViRWRpdG9yQ2xpZW50Lm1tCmluZGV4IDZjZWQxOTQxMzg2YjBjNjkxMDYyNjdm
MWNkNzRkOGVjM2ExOWQ5NTYuLmMxODhiOWQ3Mzk1N2E0YTIzMDNkODcwMjE4MzEzMDZjZDYwMTNi
MjkgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvbWFjL1dlYkNvcmVTdXBwb3J0L1dlYkVkaXRv
ckNsaWVudC5tbQorKysgYi9Tb3VyY2UvV2ViS2l0L21hYy9XZWJDb3JlU3VwcG9ydC9XZWJFZGl0
b3JDbGllbnQubW0KQEAgLTExNDMsNyArMTE0Myw3IEBAIHZvaWQgV2ViRWRpdG9yQ2xpZW50Ojpk
aWRDaGVja1N1Y2NlZWQoaW50IHNlcXVlbmNlLCBOU0FycmF5KiByZXN1bHRzKQogewogICAgIEFT
U0VSVF9VTlVTRUQoc2VxdWVuY2UsIHNlcXVlbmNlID09IG1fdGV4dENoZWNraW5nUmVxdWVzdC0+
ZGF0YSgpLnNlcXVlbmNlKCkpOwogICAgIG1fdGV4dENoZWNraW5nUmVxdWVzdC0+ZGlkU3VjY2Vl
ZChjb3JlKHJlc3VsdHMsIG1fdGV4dENoZWNraW5nUmVxdWVzdC0+ZGF0YSgpLm1hc2soKSkpOwot
ICAgIG1fdGV4dENoZWNraW5nUmVxdWVzdC5jbGVhcigpOworICAgIG1fdGV4dENoZWNraW5nUmVx
dWVzdCA9IG51bGxwdHI7CiB9CiAjZW5kaWYKIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9t
YWMvV2ViQ29yZVN1cHBvcnQvV2ViVXNlck1lZGlhQ2xpZW50Lm1tIGIvU291cmNlL1dlYktpdC9t
YWMvV2ViQ29yZVN1cHBvcnQvV2ViVXNlck1lZGlhQ2xpZW50Lm1tCmluZGV4IDYyMmJkOWRkM2Fm
ZTA4OTJiMWRjMmRmNTBiYTdlNGI0MzIyYjE1OWQuLjE3ZjE2NDczZWQ1YjlkNDM0ODMwZWQ3Yzcy
Njk4NjVkN2E1YjM1M2YgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvbWFjL1dlYkNvcmVTdXBw
b3J0L1dlYlVzZXJNZWRpYUNsaWVudC5tbQorKysgYi9Tb3VyY2UvV2ViS2l0L21hYy9XZWJDb3Jl
U3VwcG9ydC9XZWJVc2VyTWVkaWFDbGllbnQubW0KQEAgLTE0Miw3ICsxNDIsNyBAQCAtICh2b2lk
KWNhbmNlbFJlcXVlc3QKICAgICBpZiAoIV9yZXF1ZXN0KQogICAgICAgICByZXR1cm47CiAKLSAg
ICBfcmVxdWVzdCA9IDA7CisgICAgX3JlcXVlc3QgPSBudWxscHRyOwogI2VuZGlmCiAgICAgCiB9
CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L3dpbi9XZWJWaWV3LmNwcCBiL1NvdXJjZS9XZWJL
aXQvd2luL1dlYlZpZXcuY3BwCmluZGV4IDQzNzUyNzEyOGQxNTQxZmM2OWU4N2QwNThjYjllOTA2
MmI2MzYyM2QuLmI3OWU2M2M1NDY1NWIxNzMwZjA0ZTZkNmE4ZTA3NDc0ZDZkYWJiMDEgMTAwNjQ0
Ci0tLSBhL1NvdXJjZS9XZWJLaXQvd2luL1dlYlZpZXcuY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQv
d2luL1dlYlZpZXcuY3BwCkBAIC04NTEsOCArODUxLDggQEAgdm9pZCBXZWJWaWV3OjpkZWxldGVC
YWNraW5nU3RvcmUoKQogICAgICAgICBLaWxsVGltZXIobV92aWV3V2luZG93LCBEZWxldGVCYWNr
aW5nU3RvcmVUaW1lcik7CiAgICAgICAgIG1fZGVsZXRlQmFja2luZ1N0b3JlVGltZXJBY3RpdmUg
PSBmYWxzZTsKICAgICB9Ci0gICAgbV9iYWNraW5nU3RvcmVCaXRtYXAuY2xlYXIoKTsKLSAgICBt
X2JhY2tpbmdTdG9yZURpcnR5UmVnaW9uLmNsZWFyKCk7CisgICAgbV9iYWNraW5nU3RvcmVCaXRt
YXAgPSBudWxscHRyOworICAgIG1fYmFja2luZ1N0b3JlRGlydHlSZWdpb24gPSBudWxscHRyOwog
ICAgIG1fYmFja2luZ1N0b3JlU2l6ZS5jeCA9IG1fYmFja2luZ1N0b3JlU2l6ZS5jeSA9IDA7CiB9
CiAKQEAgLTEwNzksNyArMTA3OSw3IEBAIHZvaWQgV2ViVmlldzo6dXBkYXRlQmFja2luZ1N0b3Jl
KEZyYW1lVmlldyogZnJhbWVWaWV3LCBIREMgZGMsIGJvb2wgYmFja2luZ1N0b3JlCiAgICAgICAg
IGlmIChtX3VpRGVsZWdhdGVQcml2YXRlKQogICAgICAgICAgICAgbV91aURlbGVnYXRlUHJpdmF0
ZS0+d2ViVmlld1BhaW50ZWQodGhpcyk7CiAKLSAgICAgICAgbV9iYWNraW5nU3RvcmVEaXJ0eVJl
Z2lvbi5jbGVhcigpOworICAgICAgICBtX2JhY2tpbmdTdG9yZURpcnR5UmVnaW9uID0gbnVsbHB0
cjsKICAgICB9CiAKICAgICBpZiAoIWRjKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdDIvRGF0
YWJhc2VQcm9jZXNzL0luZGV4ZWREQi9VbmlxdWVJREJEYXRhYmFzZS5jcHAgYi9Tb3VyY2UvV2Vi
S2l0Mi9EYXRhYmFzZVByb2Nlc3MvSW5kZXhlZERCL1VuaXF1ZUlEQkRhdGFiYXNlLmNwcAppbmRl
eCA2MTk4MDVjZDlhMjYxZTcxNWIyNzg4OGMxYjFiZWYxMTkzMmUzZWNkLi4zZDJjYTViYmJmYWM2
NGFlYjgxNjgwYmE4NzVmNjA3Yzg0ZTRiZDFkIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0Mi9E
YXRhYmFzZVByb2Nlc3MvSW5kZXhlZERCL1VuaXF1ZUlEQkRhdGFiYXNlLmNwcAorKysgYi9Tb3Vy
Y2UvV2ViS2l0Mi9EYXRhYmFzZVByb2Nlc3MvSW5kZXhlZERCL1VuaXF1ZUlEQkRhdGFiYXNlLmNw
cApAQCAtMTQ3LDcgKzE0Nyw3IEBAIHZvaWQgVW5pcXVlSURCRGF0YWJhc2U6OnNodXRkb3duQmFj
a2luZ1N0b3JlKFVuaXF1ZUlEQkRhdGFiYXNlU2h1dGRvd25UeXBlIHR5cGUsCiB7CiAgICAgQVNT
RVJUKCFSdW5Mb29wOjppc01haW4oKSk7CiAKLSAgICBtX2JhY2tpbmdTdG9yZS5jbGVhcigpOwor
ICAgIG1fYmFja2luZ1N0b3JlID0gbnVsbHB0cjsKIAogICAgIGlmICh0eXBlID09IFVuaXF1ZUlE
QkRhdGFiYXNlU2h1dGRvd25UeXBlOjpEZWxldGVTaHV0ZG93bikgewogICAgICAgICBTdHJpbmcg
ZGJGaWxlbmFtZSA9IFVuaXF1ZUlEQkRhdGFiYXNlOjpjYWxjdWxhdGVBYnNvbHV0ZURhdGFiYXNl
RmlsZW5hbWUoZGF0YWJhc2VEaXJlY3RvcnkpOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdDIv
UGx1Z2luUHJvY2Vzcy9QbHVnaW5Db250cm9sbGVyUHJveHkuY3BwIGIvU291cmNlL1dlYktpdDIv
UGx1Z2luUHJvY2Vzcy9QbHVnaW5Db250cm9sbGVyUHJveHkuY3BwCmluZGV4IDg4ZDZkMTc3ZGE4
NDYxZWY4ZjRlMzIzY2M2YzYyZmY5ZGNmNGMxODEuLjRhOWY0NjdlODc4ZGU4MWM2NjFiZGVkMzVk
NzYxNjYzMDYxMWM0N2MgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQyL1BsdWdpblByb2Nlc3Mv
UGx1Z2luQ29udHJvbGxlclByb3h5LmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0Mi9QbHVnaW5Qcm9j
ZXNzL1BsdWdpbkNvbnRyb2xsZXJQcm94eS5jcHAKQEAgLTEyNiw3ICsxMjYsNyBAQCBib29sIFBs
dWdpbkNvbnRyb2xsZXJQcm94eTo6aW5pdGlhbGl6ZShjb25zdCBQbHVnaW5DcmVhdGlvblBhcmFt
ZXRlcnMmIGNyZWF0aW9uUAogICAgICAgICAvLyB1c2VkIGFzIGFuIGlkZW50aWZpZXIgc28gaXQn
cyBPSyB0byBqdXN0IGdldCBhIHdlYWsgcmVmZXJlbmNlLgogICAgICAgICBQbHVnaW4qIHBsdWdp
biA9IG1fcGx1Z2luLmdldCgpOwogICAgICAgICAKLSAgICAgICAgbV9wbHVnaW4gPSAwOworICAg
ICAgICBtX3BsdWdpbiA9IG51bGxwdHI7CiAKICAgICAgICAgLy8gVGhpcyB3aWxsIGRlbGV0ZSB0
aGUgcGx1Zy1pbiBjb250cm9sbGVyIHByb3h5IG9iamVjdC4KICAgICAgICAgbV9jb25uZWN0aW9u
LT5yZW1vdmVQbHVnaW5Db250cm9sbGVyUHJveHkodGhpcywgcGx1Z2luKTsKQEAgLTE1Niw3ICsx
NTYsNyBAQCB2b2lkIFBsdWdpbkNvbnRyb2xsZXJQcm94eTo6ZGVzdHJveSgpCiAgICAgUGx1Z2lu
KiBwbHVnaW4gPSBtX3BsdWdpbi5nZXQoKTsKIAogICAgIG1fcGx1Z2luLT5kZXN0cm95UGx1Z2lu
KCk7Ci0gICAgbV9wbHVnaW4gPSAwOworICAgIG1fcGx1Z2luID0gbnVsbHB0cjsKIAogICAgIHBs
YXRmb3JtRGVzdHJveSgpOwogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9TaGFyZWQvQ2hp
bGRQcm9jZXNzUHJveHkuY3BwIGIvU291cmNlL1dlYktpdDIvU2hhcmVkL0NoaWxkUHJvY2Vzc1By
b3h5LmNwcAppbmRleCAzOTMwOTg5NzllNjhlYzEyNDQwZTEyNWZjYzNhMjQyYjA3ZTY4OTdkLi5k
OWUwN2VmNGM3ZDYyZGU4NmRmYzY5OGY3MDU0Zjg4YzRhODUzMzg1IDEwMDY0NAotLS0gYS9Tb3Vy
Y2UvV2ViS2l0Mi9TaGFyZWQvQ2hpbGRQcm9jZXNzUHJveHkuY3BwCisrKyBiL1NvdXJjZS9XZWJL
aXQyL1NoYXJlZC9DaGlsZFByb2Nlc3NQcm94eS5jcHAKQEAgLTQyLDcgKzQyLDcgQEAgQ2hpbGRQ
cm9jZXNzUHJveHk6On5DaGlsZFByb2Nlc3NQcm94eSgpCiAKICAgICBpZiAobV9wcm9jZXNzTGF1
bmNoZXIpIHsKICAgICAgICAgbV9wcm9jZXNzTGF1bmNoZXItPmludmFsaWRhdGUoKTsKLSAgICAg
ICAgbV9wcm9jZXNzTGF1bmNoZXIgPSAwOworICAgICAgICBtX3Byb2Nlc3NMYXVuY2hlciA9IG51
bGxwdHI7CiAgICAgfQogfQogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9TaGFyZWQvQ29v
cmRpbmF0ZWRHcmFwaGljcy9Db29yZGluYXRlZEJhY2tpbmdTdG9yZS5jcHAgYi9Tb3VyY2UvV2Vi
S2l0Mi9TaGFyZWQvQ29vcmRpbmF0ZWRHcmFwaGljcy9Db29yZGluYXRlZEJhY2tpbmdTdG9yZS5j
cHAKaW5kZXggYjlhMDVmOTA2ZTljMTFmMDI3ZWExYTE1MjVlZTQzZWNmZDVjNTNkNy4uYzY2ZDI4
Yjc1Mzk3NGEwNTc0MGNiNmFmNjhlMmM0ODQ4MWQ5M2MzMiAxMDA2NDQKLS0tIGEvU291cmNlL1dl
YktpdDIvU2hhcmVkL0Nvb3JkaW5hdGVkR3JhcGhpY3MvQ29vcmRpbmF0ZWRCYWNraW5nU3RvcmUu
Y3BwCisrKyBiL1NvdXJjZS9XZWJLaXQyL1NoYXJlZC9Db29yZGluYXRlZEdyYXBoaWNzL0Nvb3Jk
aW5hdGVkQmFja2luZ1N0b3JlLmNwcApAQCAtNTUsNyArNTUsNyBAQCB2b2lkIENvb3JkaW5hdGVk
QmFja2luZ1N0b3JlVGlsZTo6c3dhcEJ1ZmZlcnMoVGV4dHVyZU1hcHBlciogdGV4dHVyZU1hcHBl
cikKICAgICAgICAgdGV4dHVyZS0+cmVzZXQobV90aWxlUmVjdC5zaXplKCksIG1fc3VyZmFjZS0+
c3VwcG9ydHNBbHBoYSgpKTsKIAogICAgIG1fc3VyZmFjZS0+Y29weVRvVGV4dHVyZSh0ZXh0dXJl
LCBtX3NvdXJjZVJlY3QsIG1fc3VyZmFjZU9mZnNldCk7Ci0gICAgbV9zdXJmYWNlLmNsZWFyKCk7
CisgICAgbV9zdXJmYWNlID0gbnVsbHB0cjsKIH0KIAogdm9pZCBDb29yZGluYXRlZEJhY2tpbmdT
dG9yZVRpbGU6OnNldEJhY2tCdWZmZXIoY29uc3QgSW50UmVjdCYgdGlsZVJlY3QsIGNvbnN0IElu
dFJlY3QmIHNvdXJjZVJlY3QsIFBhc3NSZWZQdHI8Q29vcmRpbmF0ZWRTdXJmYWNlPiBidWZmZXIs
IGNvbnN0IEludFBvaW50JiBvZmZzZXQpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9TaGFy
ZWQvRG93bmxvYWRzL3NvdXAvRG93bmxvYWRTb3VwLmNwcCBiL1NvdXJjZS9XZWJLaXQyL1NoYXJl
ZC9Eb3dubG9hZHMvc291cC9Eb3dubG9hZFNvdXAuY3BwCmluZGV4IGMwOTlmODlhNDUzYjU5ZTdk
NGMwN2JmYTRlMjA4Nzg3OGZjNmNlMDAuLmEyMjQ5YmE0ZTI3NzQ1MmE5ZTE2NzA5ZmJjMDg2NzAw
NDUxMDE1ZjAgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQyL1NoYXJlZC9Eb3dubG9hZHMvc291
cC9Eb3dubG9hZFNvdXAuY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQyL1NoYXJlZC9Eb3dubG9hZHMv
c291cC9Eb3dubG9hZFNvdXAuY3BwCkBAIC0yNTcsNyArMjU3LDcgQEAgdm9pZCBEb3dubG9hZDo6
cGxhdGZvcm1JbnZhbGlkYXRlKCkKICAgICBpZiAobV9yZXNvdXJjZUhhbmRsZSkgewogICAgICAg
ICBtX3Jlc291cmNlSGFuZGxlLT5zZXRDbGllbnQoMCk7CiAgICAgICAgIG1fcmVzb3VyY2VIYW5k
bGUtPmNhbmNlbCgpOwotICAgICAgICBtX3Jlc291cmNlSGFuZGxlID0gMDsKKyAgICAgICAgbV9y
ZXNvdXJjZUhhbmRsZSA9IG51bGxwdHI7CiAgICAgfQogCiAgICAgbV9kb3dubG9hZENsaWVudCA9
IG51bGxwdHI7CkBAIC0yNjUsNyArMjY1LDcgQEAgdm9pZCBEb3dubG9hZDo6cGxhdGZvcm1JbnZh
bGlkYXRlKCkKIAogdm9pZCBEb3dubG9hZDo6cGxhdGZvcm1EaWRGaW5pc2goKQogewotICAgIG1f
cmVzb3VyY2VIYW5kbGUgPSAwOworICAgIG1fcmVzb3VyY2VIYW5kbGUgPSBudWxscHRyOwogfQog
CiB2b2lkIERvd25sb2FkOjpyZWNlaXZlZENyZWRlbnRpYWwoY29uc3QgQXV0aGVudGljYXRpb25D
aGFsbGVuZ2UmLCBjb25zdCBDcmVkZW50aWFsJikKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQy
L1VJUHJvY2Vzcy9BUEkvZWZsL0V3a1ZpZXcuY3BwIGIvU291cmNlL1dlYktpdDIvVUlQcm9jZXNz
L0FQSS9lZmwvRXdrVmlldy5jcHAKaW5kZXggNzdiNTAxYTg0ZGY2NDNlMWJkZWU3ZTU3NDVmZjE5
NDQxNDI1YWY1OS4uNDU4ODQ2NDU3ODczNzQ3MzdkODNiYmM0MDVlZThjN2JmZTc0NWZjOSAxMDA2
NDQKLS0tIGEvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL0FQSS9lZmwvRXdrVmlldy5jcHAKKysr
IGIvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL0FQSS9lZmwvRXdrVmlldy5jcHAKQEAgLTk0MCw3
ICs5NDAsNyBAQCB2b2lkIEV3a1ZpZXc6OmhpZGVDb250ZXh0TWVudSgpCiAgICAgaWYgKHNkLT5h
cGktPmNvbnRleHRfbWVudV9oaWRlKQogICAgICAgICBzZC0+YXBpLT5jb250ZXh0X21lbnVfaGlk
ZShzZCk7CiAKLSAgICBtX2NvbnRleHRNZW51LmNsZWFyKCk7CisgICAgbV9jb250ZXh0TWVudSA9
IG51bGxwdHI7CiB9CiAKIHZvaWQgRXdrVmlldzo6cmVxdWVzdFBvcHVwTWVudShXS1BvcHVwTWVu
dUxpc3RlbmVyUmVmIHBvcHVwTWVudUxpc3RlbmVyLCBjb25zdCBXS1JlY3QmIHJlY3QsIFdLUG9w
dXBJdGVtVGV4dERpcmVjdGlvbiB0ZXh0RGlyZWN0aW9uLCBkb3VibGUgcGFnZVNjYWxlRmFjdG9y
LCBXS0FycmF5UmVmIGl0ZW1zLCBpbnQzMl90IHNlbGVjdGVkSW5kZXgpCmRpZmYgLS1naXQgYS9T
b3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvQVBJL2d0ay9XZWJLaXRGb3JtU3VibWlzc2lvblJlcXVl
c3QuY3BwIGIvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL0FQSS9ndGsvV2ViS2l0Rm9ybVN1Ym1p
c3Npb25SZXF1ZXN0LmNwcAppbmRleCBkMmQ1ZTY4MjE4ZmEyNjEzNGQ4ZDZjYjMzODhmNDVmY2Nl
YWVmYTI5Li43YWYyYWVlMTBiNzU0OGY5ZWQ3YmJmN2VkYzIzM2M0M2QxNjk1MTc1IDEwMDY0NAot
LS0gYS9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvQVBJL2d0ay9XZWJLaXRGb3JtU3VibWlzc2lv
blJlcXVlc3QuY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9BUEkvZ3RrL1dlYktp
dEZvcm1TdWJtaXNzaW9uUmVxdWVzdC5jcHAKQEAgLTk2LDcgKzk2LDcgQEAgR0hhc2hUYWJsZSog
d2Via2l0X2Zvcm1fc3VibWlzc2lvbl9yZXF1ZXN0X2dldF90ZXh0X2ZpZWxkcyhXZWJLaXRGb3Jt
U3VibWlzc2lvblIKICAgICAgICAgcmV0dXJuIHJlcXVlc3QtPnByaXYtPnZhbHVlcy5nZXQoKTsK
IAogICAgIGlmICghcmVxdWVzdC0+cHJpdi0+d2ViVmFsdWVzLT5zaXplKCkpCi0gICAgICAgIHJl
dHVybiAwOworICAgICAgICByZXR1cm4gbnVsbHB0cjsKIAogICAgIHJlcXVlc3QtPnByaXYtPnZh
bHVlcyA9IGFkb3B0R1JlZihnX2hhc2hfdGFibGVfbmV3X2Z1bGwoZ19zdHJfaGFzaCwgZ19zdHJf
ZXF1YWwsIGdfZnJlZSwgZ19mcmVlKSk7CiAKQEAgLTEwNyw3ICsxMDcsNyBAQCBHSGFzaFRhYmxl
KiB3ZWJraXRfZm9ybV9zdWJtaXNzaW9uX3JlcXVlc3RfZ2V0X3RleHRfZmllbGRzKFdlYktpdEZv
cm1TdWJtaXNzaW9uUgogICAgICAgICBnX2hhc2hfdGFibGVfaW5zZXJ0KHJlcXVlc3QtPnByaXYt
PnZhbHVlcy5nZXQoKSwgZ19zdHJkdXAoaXQtPmtleS51dGY4KCkuZGF0YSgpKSwgZ19zdHJkdXAo
dmFsdWUtPnN0cmluZygpLnV0ZjgoKS5kYXRhKCkpKTsKICAgICB9CiAKLSAgICByZXF1ZXN0LT5w
cml2LT53ZWJWYWx1ZXMgPSAwOworICAgIHJlcXVlc3QtPnByaXYtPndlYlZhbHVlcyA9IG51bGxw
dHI7CiAKICAgICByZXR1cm4gcmVxdWVzdC0+cHJpdi0+dmFsdWVzLmdldCgpOwogfQpkaWZmIC0t
Z2l0IGEvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL0FQSS9tYWMvV0tWaWV3Lm1tIGIvU291cmNl
L1dlYktpdDIvVUlQcm9jZXNzL0FQSS9tYWMvV0tWaWV3Lm1tCmluZGV4IGQ1NTE1YWUxZmMzZjQy
OTlkYTEyNDMxYTQxYTc0N2UzOGEzZTQ2NTcuLmU4ZDI0NDk1OGYwOWRlNWZkZWM5ZTFiYzNiMTRh
MjYxMDIyZTMyYTYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9BUEkvbWFj
L1dLVmlldy5tbQorKysgYi9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvQVBJL21hYy9XS1ZpZXcu
bW0KQEAgLTM1MjAsNyArMzUyMCw3IEBAIC0gKHZvaWQpX3NldFByb21pc2VkRGF0YUZvckF0dGFj
aG1lbnQ6KE5TU3RyaW5nICopZmlsZW5hbWUgd2l0aEV4dGVuc2lvbjooTlNTdHJpCiAKIC0gKHZv
aWQpcGFzdGVib2FyZENoYW5nZWRPd25lcjooTlNQYXN0ZWJvYXJkICopcGFzdGVib2FyZAogewot
ICAgIF9kYXRhLT5fcHJvbWlzZWRJbWFnZSA9IDA7CisgICAgX2RhdGEtPl9wcm9taXNlZEltYWdl
ID0gbnVsbHB0cjsKICAgICBfZGF0YS0+X3Byb21pc2VkRmlsZW5hbWUgPSAiIjsKICAgICBfZGF0
YS0+X3Byb21pc2VkVVJMID0gIiI7CiB9CkBAIC0zNTMxLDcgKzM1MzEsNyBAQCAtICh2b2lkKXBh
c3RlYm9hcmQ6KE5TUGFzdGVib2FyZCAqKXBhc3RlYm9hcmQgcHJvdmlkZURhdGFGb3JUeXBlOihO
U1N0cmluZyAqKXR5cAogCiAgICAgaWYgKFt0eXBlIGlzRXF1YWw6TlNUSUZGUGJvYXJkVHlwZV0g
JiYgX2RhdGEtPl9wcm9taXNlZEltYWdlKSB7CiAgICAgICAgIFtwYXN0ZWJvYXJkIHNldERhdGE6
KE5TRGF0YSAqKV9kYXRhLT5fcHJvbWlzZWRJbWFnZS0+Z2V0VElGRlJlcHJlc2VudGF0aW9uKCkg
Zm9yVHlwZTpOU1RJRkZQYm9hcmRUeXBlXTsKLSAgICAgICAgX2RhdGEtPl9wcm9taXNlZEltYWdl
ID0gMDsKKyAgICAgICAgX2RhdGEtPl9wcm9taXNlZEltYWdlID0gbnVsbHB0cjsKICAgICB9CiB9
CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9JbnNwZWN0b3JTZXJ2ZXIv
V2ViU29ja2V0U2VydmVyQ29ubmVjdGlvbi5jcHAgYi9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3Mv
SW5zcGVjdG9yU2VydmVyL1dlYlNvY2tldFNlcnZlckNvbm5lY3Rpb24uY3BwCmluZGV4IDgwOTdh
YzFhNGNjMWUwZGRiZmFkZmY5OTBjM2U0ZTUyNzdiZmU0MDYuLjk0YTI0YzkwYzM4NjZhZjU5N2Vi
MGQ1OTFmMzY5ZjcxMGRmNjA3YzggMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vz
cy9JbnNwZWN0b3JTZXJ2ZXIvV2ViU29ja2V0U2VydmVyQ29ubmVjdGlvbi5jcHAKKysrIGIvU291
cmNlL1dlYktpdDIvVUlQcm9jZXNzL0luc3BlY3RvclNlcnZlci9XZWJTb2NrZXRTZXJ2ZXJDb25u
ZWN0aW9uLmNwcApAQCAtMTI2LDcgKzEyNiw3IEBAIHZvaWQgV2ViU29ja2V0U2VydmVyQ29ubmVj
dGlvbjo6c2VuZFJhd0RhdGEoY29uc3QgY2hhciogZGF0YSwgc2l6ZV90IGxlbmd0aCkKIHZvaWQg
V2ViU29ja2V0U2VydmVyQ29ubmVjdGlvbjo6ZGlkQ2xvc2VTb2NrZXRTdHJlYW0oU29ja2V0U3Ry
ZWFtSGFuZGxlKikKIHsKICAgICAvLyBEZXN0cm95IHRoZSBTb2NrZXRTdHJlYW1IYW5kbGUgbm93
IHRvIHByZXZlbnQgY2xvc2luZyBhbiBhbHJlYWR5IGNsb3NlZCBzb2NrZXQgbGF0ZXIuCi0gICAg
bV9zb2NrZXQuY2xlYXIoKTsKKyAgICBtX3NvY2tldCA9IG51bGxwdHI7CiAKICAgICAvLyBXZWIg
U29ja2V0IE1vZGUuCiAgICAgaWYgKG1fbW9kZSA9PSBXZWJTb2NrZXQpCmRpZmYgLS1naXQgYS9T
b3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvTmV0d29yay9DdXN0b21Qcm90b2NvbHMvbWFjL0N1c3Rv
bVByb3RvY29sTWFuYWdlclByb3h5TWFjLm1tIGIvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL05l
dHdvcmsvQ3VzdG9tUHJvdG9jb2xzL21hYy9DdXN0b21Qcm90b2NvbE1hbmFnZXJQcm94eU1hYy5t
bQppbmRleCA5NDI1Mjk5YTJlYzczZjhiZTBkMTk5YTExM2EyZDZiYmE4YjYxOTc0Li41MTNiMWUw
Y2ZmOTdmYjE2ZmU0YWJlOTFlYThiZmE0ZGRlYzEyYmE0IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2Vi
S2l0Mi9VSVByb2Nlc3MvTmV0d29yay9DdXN0b21Qcm90b2NvbHMvbWFjL0N1c3RvbVByb3RvY29s
TWFuYWdlclByb3h5TWFjLm1tCisrKyBiL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9OZXR3b3Jr
L0N1c3RvbVByb3RvY29scy9tYWMvQ3VzdG9tUHJvdG9jb2xNYW5hZ2VyUHJveHlNYWMubW0KQEAg
LTc2LDcgKzc2LDcgQEAgLSAoaWQpaW5pdFdpdGhDdXN0b21Qcm90b2NvbE1hbmFnZXJQcm94eToo
Q3VzdG9tUHJvdG9jb2xNYW5hZ2VyUHJveHkqKWN1c3RvbVByb3QKIAogLSAodm9pZClkZWFsbG9j
CiB7Ci0gICAgX2Nvbm5lY3Rpb24uY2xlYXIoKTsKKyAgICBfY29ubmVjdGlvbiA9IG51bGxwdHI7
CiAgICAgW191cmxDb25uZWN0aW9uIGNhbmNlbF07CiAgICAgW191cmxDb25uZWN0aW9uIHJlbGVh
c2VdOwogICAgIFtzdXBlciBkZWFsbG9jXTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL1VJ
UHJvY2Vzcy9TdGF0aXN0aWNzUmVxdWVzdC5jcHAgYi9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3Mv
U3RhdGlzdGljc1JlcXVlc3QuY3BwCmluZGV4IGMwZWM0OGVlM2JiOTY1MmRkNzg4N2U4NGU4NDhm
MjI0ZTJmYmZiMjAuLjgwNmUxMGYwMGZmM2YxNDRmMTdmYjdiMDI2OGUxMWZhY2ExNmYxNTkgMTAw
NjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9TdGF0aXN0aWNzUmVxdWVzdC5jcHAK
KysrIGIvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL1N0YXRpc3RpY3NSZXF1ZXN0LmNwcApAQCAt
OTUsNyArOTUsNyBAQCB2b2lkIFN0YXRpc3RpY3NSZXF1ZXN0Ojpjb21wbGV0ZWRSZXF1ZXN0KHVp
bnQ2NF90IHJlcXVlc3RJRCwgY29uc3QgU3RhdGlzdGljc0RhdAogCiAgICAgaWYgKG1fb3V0c3Rh
bmRpbmdSZXF1ZXN0cy5pc0VtcHR5KCkpIHsKICAgICAgICAgbV9jYWxsYmFjay0+cGVyZm9ybUNh
bGxiYWNrV2l0aFJldHVyblZhbHVlKG1fcmVzcG9uc2VEaWN0aW9uYXJ5LmdldCgpKTsKLSAgICAg
ICAgbV9jYWxsYmFjayA9IDA7CisgICAgICAgIG1fY2FsbGJhY2sgPSBudWxscHRyOwogICAgIH0K
IH0KIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL1dlYkZyYW1lTGlzdGVu
ZXJQcm94eS5jcHAgYi9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvV2ViRnJhbWVMaXN0ZW5lclBy
b3h5LmNwcAppbmRleCBlODAxMGU1YjYyNjkwNTFiMjM1ZTBiYzNhMjNmNzBkZTkwZjcyMzRmLi40
MDYxZGQ1MjkxMzRlZDhkOGQyNWQ2OGQwY2M5YzVlOTZlODY5NjYwIDEwMDY0NAotLS0gYS9Tb3Vy
Y2UvV2ViS2l0Mi9VSVByb2Nlc3MvV2ViRnJhbWVMaXN0ZW5lclByb3h5LmNwcAorKysgYi9Tb3Vy
Y2UvV2ViS2l0Mi9VSVByb2Nlc3MvV2ViRnJhbWVMaXN0ZW5lclByb3h5LmNwcApAQCAtNDIsNyAr
NDIsNyBAQCBXZWJGcmFtZUxpc3RlbmVyUHJveHk6On5XZWJGcmFtZUxpc3RlbmVyUHJveHkoKQog
CiB2b2lkIFdlYkZyYW1lTGlzdGVuZXJQcm94eTo6aW52YWxpZGF0ZSgpCiB7Ci0gICAgbV9mcmFt
ZSA9IDA7CisgICAgbV9mcmFtZSA9IG51bGxwdHI7CiB9CiAKIHZvaWQgV2ViRnJhbWVMaXN0ZW5l
clByb3h5OjpyZWNlaXZlZFBvbGljeURlY2lzaW9uKFdlYkNvcmU6OlBvbGljeUFjdGlvbiBhY3Rp
b24pCkBAIC01MSw3ICs1MSw3IEBAIHZvaWQgV2ViRnJhbWVMaXN0ZW5lclByb3h5OjpyZWNlaXZl
ZFBvbGljeURlY2lzaW9uKFdlYkNvcmU6OlBvbGljeUFjdGlvbiBhY3Rpb24pCiAgICAgICAgIHJl
dHVybjsKIAogICAgIG1fZnJhbWUtPnJlY2VpdmVkUG9saWN5RGVjaXNpb24oYWN0aW9uLCBtX2xp
c3RlbmVySUQsIG1fbmF2aWdhdGlvbi5nZXQoKSk7Ci0gICAgbV9mcmFtZSA9IDA7CisgICAgbV9m
cmFtZSA9IG51bGxwdHI7CiB9CiAKIH0gLy8gbmFtZXNwYWNlIFdlYktpdApkaWZmIC0tZ2l0IGEv
U291cmNlL1dlYktpdDIvVUlQcm9jZXNzL1dlYkZyYW1lUHJveHkuY3BwIGIvU291cmNlL1dlYktp
dDIvVUlQcm9jZXNzL1dlYkZyYW1lUHJveHkuY3BwCmluZGV4IDQxYmI5MWExMzYxYjg4NGEyOGQx
OTRjOTJiMTc2MjhiZDQwNmQyMTQuLjY5MjhhZmJjNzAyYzcwYmRmMDk3NjNkNzNlMDZlNjJjYjNj
YTM0MjEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9XZWJGcmFtZVByb3h5
LmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvV2ViRnJhbWVQcm94eS5jcHAKQEAg
LTU3LDExICs1NywxMSBAQCBXZWJGcmFtZVByb3h5Ojp+V2ViRnJhbWVQcm94eSgpCiAKIHZvaWQg
V2ViRnJhbWVQcm94eTo6d2ViUHJvY2Vzc1dpbGxTaHV0RG93bigpCiB7Ci0gICAgbV9wYWdlID0g
MDsKKyAgICBtX3BhZ2UgPSBudWxscHRyOwogCiAgICAgaWYgKG1fYWN0aXZlTGlzdGVuZXIpIHsK
ICAgICAgICAgbV9hY3RpdmVMaXN0ZW5lci0+aW52YWxpZGF0ZSgpOwotICAgICAgICBtX2FjdGl2
ZUxpc3RlbmVyID0gMDsKKyAgICAgICAgbV9hY3RpdmVMaXN0ZW5lciA9IG51bGxwdHI7CiAgICAg
fQogfQogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvV2ViT3BlblBhbmVs
UmVzdWx0TGlzdGVuZXJQcm94eS5jcHAgYi9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvV2ViT3Bl
blBhbmVsUmVzdWx0TGlzdGVuZXJQcm94eS5jcHAKaW5kZXggZGQ2NjY3MTExOGQyNDhmODYyMWMy
Yjk4OGVlMzhiMWNmYjAzZjk2MC4uYTM3N2U0YWYwOGUyOTdmM2MyZmE3NDYwNmM5ZTU5NDhhZTdk
NDJlOCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL1dlYk9wZW5QYW5lbFJl
c3VsdExpc3RlbmVyUHJveHkuY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9XZWJP
cGVuUGFuZWxSZXN1bHRMaXN0ZW5lclByb3h5LmNwcApAQCAtODksNyArODksNyBAQCB2b2lkIFdl
Yk9wZW5QYW5lbFJlc3VsdExpc3RlbmVyUHJveHk6OmNhbmNlbCgpCiAKIHZvaWQgV2ViT3BlblBh
bmVsUmVzdWx0TGlzdGVuZXJQcm94eTo6aW52YWxpZGF0ZSgpCiB7Ci0gICAgbV9wYWdlID0gMDsK
KyAgICBtX3BhZ2UgPSBudWxscHRyOwogfQogCiB9IC8vIG5hbWVzcGFjZSBXZWJLaXQKZGlmZiAt
LWdpdCBhL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9XZWJQYWdlUHJveHkuY3BwIGIvU291cmNl
L1dlYktpdDIvVUlQcm9jZXNzL1dlYlBhZ2VQcm94eS5jcHAKaW5kZXggYmQxM2EzM2IxNjkyNGY3
NDNhZDY4NmU3YzhmMjQ2MDAxYWFlM2Q4Yy4uNzlkMjNlMDU4NGYyOTQwMzQ5MGI2N2UwMDkxYjBl
YWQzN2ZhMzVhZiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL1dlYlBhZ2VQ
cm94eS5jcHAKKysrIGIvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL1dlYlBhZ2VQcm94eS5jcHAK
QEAgLTM3MDYsNyArMzcwNiw3IEBAIHZvaWQgV2ViUGFnZVByb3h5OjpydW5PcGVuUGFuZWwodWlu
dDY0X3QgZnJhbWVJRCwgY29uc3QgRmlsZUNob29zZXJTZXR0aW5ncyYgc2V0CiB7CiAgICAgaWYg
KG1fb3BlblBhbmVsUmVzdWx0TGlzdGVuZXIpIHsKICAgICAgICAgbV9vcGVuUGFuZWxSZXN1bHRM
aXN0ZW5lci0+aW52YWxpZGF0ZSgpOwotICAgICAgICBtX29wZW5QYW5lbFJlc3VsdExpc3RlbmVy
ID0gMDsKKyAgICAgICAgbV9vcGVuUGFuZWxSZXN1bHRMaXN0ZW5lciA9IG51bGxwdHI7CiAgICAg
fQogCiAgICAgV2ViRnJhbWVQcm94eSogZnJhbWUgPSBtX3Byb2Nlc3MtPndlYkZyYW1lKGZyYW1l
SUQpOwpAQCAtMzgwOCw3ICszODA4LDcgQEAgdm9pZCBXZWJQYWdlUHJveHk6OnNob3dDb2xvclBp
Y2tlcihjb25zdCBXZWJDb3JlOjpDb2xvciYgaW5pdGlhbENvbG9yLCBjb25zdCBJbnQKICNpZiBF
TkFCTEUoSU5QVVRfVFlQRV9DT0xPUl9QT1BPVkVSKQogICAgIC8vIEEgbmV3IHBvcG92ZXIgY29s
b3Igd2VsbCBuZWVkcyB0byBiZSBjcmVhdGVkIChhbmQgdGhlIHByZXZpb3VzIG9uZSBkZXN0cm95
ZWQpIGZvcgogICAgIC8vIGVhY2ggYWN0aXZhdGlvbiBvZiBhIGNvbG9yIGVsZW1lbnQuCi0gICAg
bV9jb2xvclBpY2tlciA9IDA7CisgICAgbV9jb2xvclBpY2tlciA9IG51bGxwdHI7CiAjZW5kaWYK
ICAgICBpZiAoIW1fY29sb3JQaWNrZXIpCiAgICAgICAgIG1fY29sb3JQaWNrZXIgPSBtX3BhZ2VD
bGllbnQuY3JlYXRlQ29sb3JQaWNrZXIodGhpcywgaW5pdGlhbENvbG9yLCBlbGVtZW50UmVjdCk7
CkBAIC00MzAwLDcgKzQzMDAsNyBAQCB2b2lkIFdlYlBhZ2VQcm94eTo6ZGlkQ2hvb3NlRmlsZXNG
b3JPcGVuUGFuZWwoY29uc3QgVmVjdG9yPFN0cmluZz4mIGZpbGVVUkxzKQogICAgIG1fcHJvY2Vz
cy0+c2VuZChNZXNzYWdlczo6V2ViUGFnZTo6RGlkQ2hvb3NlRmlsZXNGb3JPcGVuUGFuZWwoZmls
ZVVSTHMpLCBtX3BhZ2VJRCk7CiAKICAgICBtX29wZW5QYW5lbFJlc3VsdExpc3RlbmVyLT5pbnZh
bGlkYXRlKCk7Ci0gICAgbV9vcGVuUGFuZWxSZXN1bHRMaXN0ZW5lciA9IDA7CisgICAgbV9vcGVu
UGFuZWxSZXN1bHRMaXN0ZW5lciA9IG51bGxwdHI7CiB9CiAKIHZvaWQgV2ViUGFnZVByb3h5Ojpk
aWRDYW5jZWxGb3JPcGVuUGFuZWwoKQpAQCAtNDMxMSw3ICs0MzExLDcgQEAgdm9pZCBXZWJQYWdl
UHJveHk6OmRpZENhbmNlbEZvck9wZW5QYW5lbCgpCiAgICAgbV9wcm9jZXNzLT5zZW5kKE1lc3Nh
Z2VzOjpXZWJQYWdlOjpEaWRDYW5jZWxGb3JPcGVuUGFuZWwoKSwgbV9wYWdlSUQpOwogICAgIAog
ICAgIG1fb3BlblBhbmVsUmVzdWx0TGlzdGVuZXItPmludmFsaWRhdGUoKTsKLSAgICBtX29wZW5Q
YW5lbFJlc3VsdExpc3RlbmVyID0gMDsKKyAgICBtX29wZW5QYW5lbFJlc3VsdExpc3RlbmVyID0g
bnVsbHB0cjsKIH0KIAogdm9pZCBXZWJQYWdlUHJveHk6OmFkdmFuY2VUb05leHRNaXNzcGVsbGlu
Zyhib29sIHN0YXJ0QmVmb3JlU2VsZWN0aW9uKQpAQCAtNDc2Nyw3ICs0NzY3LDcgQEAgdm9pZCBX
ZWJQYWdlUHJveHk6OnByaW50RmluaXNoZWRDYWxsYmFjayhjb25zdCBSZXNvdXJjZUVycm9yJiBw
cmludEVycm9yLCB1aW50NjQKIHZvaWQgV2ViUGFnZVByb3h5Ojpmb2N1c2VkRnJhbWVDaGFuZ2Vk
KHVpbnQ2NF90IGZyYW1lSUQpCiB7CiAgICAgaWYgKCFmcmFtZUlEKSB7Ci0gICAgICAgIG1fZm9j
dXNlZEZyYW1lID0gMDsKKyAgICAgICAgbV9mb2N1c2VkRnJhbWUgPSBudWxscHRyOwogICAgICAg
ICByZXR1cm47CiAgICAgfQogCkBAIC00NzgwLDcgKzQ3ODAsNyBAQCB2b2lkIFdlYlBhZ2VQcm94
eTo6Zm9jdXNlZEZyYW1lQ2hhbmdlZCh1aW50NjRfdCBmcmFtZUlEKQogdm9pZCBXZWJQYWdlUHJv
eHk6OmZyYW1lU2V0TGFyZ2VzdEZyYW1lQ2hhbmdlZCh1aW50NjRfdCBmcmFtZUlEKQogewogICAg
IGlmICghZnJhbWVJRCkgewotICAgICAgICBtX2ZyYW1lU2V0TGFyZ2VzdEZyYW1lID0gMDsKKyAg
ICAgICAgbV9mcmFtZVNldExhcmdlc3RGcmFtZSA9IG51bGxwdHI7CiAgICAgICAgIHJldHVybjsK
ICAgICB9CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9pb3MvV0tHZW9s
b2NhdGlvblByb3ZpZGVySU9TLm1tIGIvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL2lvcy9XS0dl
b2xvY2F0aW9uUHJvdmlkZXJJT1MubW0KaW5kZXggYmI2YmI2MDU0ZjdmODZiOWM2M2Q2ODVlNjVl
Zjc5ZjkyMWEzYWIxZS4uYmRkMTE0YTI0NDhkZmFhYTk3MTkxYTYyNWQ3Y2ExYmIyNjc3NjAyOSAx
MDA2NDQKLS0tIGEvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL2lvcy9XS0dlb2xvY2F0aW9uUHJv
dmlkZXJJT1MubW0KKysrIGIvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL2lvcy9XS0dlb2xvY2F0
aW9uUHJvdmlkZXJJT1MubW0KQEAgLTExOCw3ICsxMTgsNyBAQCAtKHZvaWQpX3N0b3BVcGRhdGlu
ZwogewogICAgIF9pc1dlYkNvcmVHZW9sb2NhdGlvbkFjdGl2ZSA9IE5POwogICAgIFtfY29yZUxv
Y2F0aW9uUHJvdmlkZXIgc3RvcF07Ci0gICAgX2xhc3RBY3RpdmVQb3NpdGlvbi5jbGVhcigpOwor
ICAgIF9sYXN0QWN0aXZlUG9zaXRpb24gPSBudWxscHRyOwogfQogCiAtKHZvaWQpX3NldEVuYWJs
ZUhpZ2hBY2N1cmFjeTooQk9PTCllbmFibGVIaWdoQWNjdXJhY3kKZGlmZiAtLWdpdCBhL1NvdXJj
ZS9XZWJLaXQyL1dlYlByb2Nlc3MvSW5qZWN0ZWRCdW5kbGUvbWFjL0luamVjdGVkQnVuZGxlTWFj
Lm1tIGIvU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9JbmplY3RlZEJ1bmRsZS9tYWMvSW5qZWN0
ZWRCdW5kbGVNYWMubW0KaW5kZXggNGU4NmFmMTlkNWM5YWNlMTYyZDQwZTI2ZDAwNDI3OTBlZDFj
NDhhMi4uMjg1NzVlZjc0OWIyZGRiM2Q5MGZlMjk0ZGJhMzcxMmU1NTRlODhkOSAxMDA2NDQKLS0t
IGEvU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9JbmplY3RlZEJ1bmRsZS9tYWMvSW5qZWN0ZWRC
dW5kbGVNYWMubW0KKysrIGIvU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9JbmplY3RlZEJ1bmRs
ZS9tYWMvSW5qZWN0ZWRCdW5kbGVNYWMubW0KQEAgLTU1LDcgKzU1LDcgQEAgYm9vbCBJbmplY3Rl
ZEJ1bmRsZTo6aW5pdGlhbGl6ZShjb25zdCBXZWJQcm9jZXNzQ3JlYXRpb25QYXJhbWV0ZXJzJiBw
YXJhbWV0ZXJzLAogICAgICAgICAgICAgcmV0dXJuIGZhbHNlOwogICAgICAgICB9CiAKLSAgICAg
ICAgbV9zYW5kYm94RXh0ZW5zaW9uID0gMDsKKyAgICAgICAgbV9zYW5kYm94RXh0ZW5zaW9uID0g
bnVsbHB0cjsKICAgICB9CiAgICAgCiAgICAgUmV0YWluUHRyPENGU3RyaW5nUmVmPiBpbmplY3Rl
ZEJ1bmRsZVBhdGhTdHIgPSBtX3BhdGguY3JlYXRlQ0ZTdHJpbmcoKTsKZGlmZiAtLWdpdCBhL1Nv
dXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvTmV0d29yay9XZWJSZXNvdXJjZUxvYWRlci5jcHAgYi9T
b3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL05ldHdvcmsvV2ViUmVzb3VyY2VMb2FkZXIuY3BwCmlu
ZGV4IDgzZDZjYThhYWFmZjYyNTgzMmUzODIwMDFjZjZiMDA4MDYyZDY0OWUuLjI1Mzk3YzNiYzhl
NjcxY2JkNTUwMjBlM2NkNjk3M2M2YmEwYTI5ZTcgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQy
L1dlYlByb2Nlc3MvTmV0d29yay9XZWJSZXNvdXJjZUxvYWRlci5jcHAKKysrIGIvU291cmNlL1dl
YktpdDIvV2ViUHJvY2Vzcy9OZXR3b3JrL1dlYlJlc291cmNlTG9hZGVyLmNwcApAQCAtNzYsNyAr
NzYsNyBAQCB2b2lkIFdlYlJlc291cmNlTG9hZGVyOjpjYW5jZWxSZXNvdXJjZUxvYWRlcigpCiAK
IHZvaWQgV2ViUmVzb3VyY2VMb2FkZXI6OmRldGFjaEZyb21Db3JlTG9hZGVyKCkKIHsKLSAgICBt
X2NvcmVMb2FkZXIgPSAwOworICAgIG1fY29yZUxvYWRlciA9IG51bGxwdHI7CiB9CiAKIHZvaWQg
V2ViUmVzb3VyY2VMb2FkZXI6OndpbGxTZW5kUmVxdWVzdChjb25zdCBSZXNvdXJjZVJlcXVlc3Qm
IHByb3Bvc2VkUmVxdWVzdCwgY29uc3QgUmVzb3VyY2VSZXNwb25zZSYgcmVkaXJlY3RSZXNwb25z
ZSkKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvUGx1Z2lucy9OZXRzY2Fw
ZS9OZXRzY2FwZVBsdWdpbi5jcHAgYi9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL1BsdWdpbnMv
TmV0c2NhcGUvTmV0c2NhcGVQbHVnaW4uY3BwCmluZGV4IDBhN2I3NGRlNWM1YzY2MmJkN2QxMTg0
YzQ2M2ZjOTYyNmFiNDFlY2QuLmEzNmU0YjQxMzQ1ZGViMDEzNTBhMjQ5MGU3MDU4MDhmOTUzNDkw
NjcgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvUGx1Z2lucy9OZXRzY2Fw
ZS9OZXRzY2FwZVBsdWdpbi5jcHAKKysrIGIvU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9QbHVn
aW5zL05ldHNjYXBlL05ldHNjYXBlUGx1Z2luLmNwcApAQCAtMjc3LDcgKzI3Nyw3IEBAIHZvaWQg
TmV0c2NhcGVQbHVnaW46OmNhbmNlbFN0cmVhbUxvYWQoTmV0c2NhcGVQbHVnaW5TdHJlYW0qIHBs
dWdpblN0cmVhbSkKIHZvaWQgTmV0c2NhcGVQbHVnaW46OnJlbW92ZVBsdWdpblN0cmVhbShOZXRz
Y2FwZVBsdWdpblN0cmVhbSogcGx1Z2luU3RyZWFtKQogewogICAgIGlmIChwbHVnaW5TdHJlYW0g
PT0gbV9tYW51YWxTdHJlYW0pIHsKLSAgICAgICAgbV9tYW51YWxTdHJlYW0gPSAwOworICAgICAg
ICBtX21hbnVhbFN0cmVhbSA9IG51bGxwdHI7CiAgICAgICAgIHJldHVybjsKICAgICB9CiAKZGlm
ZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvUGx1Z2lucy9QREYvUERGUGx1Z2lu
Lm1tIGIvU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9QbHVnaW5zL1BERi9QREZQbHVnaW4ubW0K
aW5kZXggZGNjYzU0MTA1ZmJhODcxOWU1ZmMzOGRmNGM1MDJkZGQyNzI5ZWVjZC4uNDcwNjFkNmQ2
MTRkMjYxZDczMzlmNTcwZmU2YjU4MDAwOTZmM2U5NCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktp
dDIvV2ViUHJvY2Vzcy9QbHVnaW5zL1BERi9QREZQbHVnaW4ubW0KKysrIGIvU291cmNlL1dlYktp
dDIvV2ViUHJvY2Vzcy9QbHVnaW5zL1BERi9QREZQbHVnaW4ubW0KQEAgLTExMDMsOCArMTEwMyw4
IEBAIHZvaWQgUERGUGx1Z2luOjpkZXN0cm95KCkKICAgICAgICAgICAgIGZyYW1lVmlldy0+cmVt
b3ZlU2Nyb2xsYWJsZUFyZWEodGhpcyk7CiAgICAgfQogCi0gICAgbV9hY3RpdmVBbm5vdGF0aW9u
ID0gMDsKLSAgICBtX2Fubm90YXRpb25Db250YWluZXIgPSAwOworICAgIG1fYWN0aXZlQW5ub3Rh
dGlvbiA9IG51bGxwdHI7CisgICAgbV9hbm5vdGF0aW9uQ29udGFpbmVyID0gbnVsbHB0cjsKIAog
ICAgIGRlc3Ryb3lTY3JvbGxiYXIoSG9yaXpvbnRhbFNjcm9sbGJhcik7CiAgICAgZGVzdHJveVNj
cm9sbGJhcihWZXJ0aWNhbFNjcm9sbGJhcik7CkBAIC0xNjA0LDE0ICsxNjA0LDE0IEBAIHZvaWQg
UERGUGx1Z2luOjpzZXRBY3RpdmVBbm5vdGF0aW9uKFBERkFubm90YXRpb24gKmFubm90YXRpb24p
CiAKICAgICBpZiAoYW5ub3RhdGlvbikgewogICAgICAgICBpZiAoW2Fubm90YXRpb24gaXNLaW5k
T2ZDbGFzczpwZGZBbm5vdGF0aW9uVGV4dFdpZGdldENsYXNzKCldICYmIHN0YXRpY19jYXN0PFBE
RkFubm90YXRpb25UZXh0V2lkZ2V0ICo+KGFubm90YXRpb24pLmlzUmVhZE9ubHkpIHsKLSAgICAg
ICAgICAgIG1fYWN0aXZlQW5ub3RhdGlvbiA9IDA7CisgICAgICAgICAgICBtX2FjdGl2ZUFubm90
YXRpb24gPSBudWxscHRyOwogICAgICAgICAgICAgcmV0dXJuOwogICAgICAgICB9CiAKICAgICAg
ICAgbV9hY3RpdmVBbm5vdGF0aW9uID0gUERGUGx1Z2luQW5ub3RhdGlvbjo6Y3JlYXRlKGFubm90
YXRpb24sIG1fcGRmTGF5ZXJDb250cm9sbGVyLmdldCgpLCB0aGlzKTsKICAgICAgICAgbV9hY3Rp
dmVBbm5vdGF0aW9uLT5hdHRhY2gobV9hbm5vdGF0aW9uQ29udGFpbmVyLmdldCgpKTsKICAgICB9
IGVsc2UKLSAgICAgICAgbV9hY3RpdmVBbm5vdGF0aW9uID0gMDsKKyAgICAgICAgbV9hY3RpdmVB
bm5vdGF0aW9uID0gbnVsbHB0cjsKIH0KIAogYm9vbCBQREZQbHVnaW46OnN1cHBvcnRzRm9ybXMo
KQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9QbHVnaW5zL1BsdWdpblZp
ZXcuY3BwIGIvU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9QbHVnaW5zL1BsdWdpblZpZXcuY3Bw
CmluZGV4IDZhODMzZjEzMTExMzUzMDc2YWNhZTEyODE0MzNiMmY1MTE5YmIyNDYuLjJhMGZkOTcz
MTMwYjIxMjY3OGIwNTU0YzdkOGJlYjU1YzY4NTk2OGQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJL
aXQyL1dlYlByb2Nlc3MvUGx1Z2lucy9QbHVnaW5WaWV3LmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0
Mi9XZWJQcm9jZXNzL1BsdWdpbnMvUGx1Z2luVmlldy5jcHAKQEAgLTE2Niw3ICsxNjYsNyBAQCB2
b2lkIFBsdWdpblZpZXc6OlN0cmVhbTo6Y2FuY2VsKCkKIAogICAgIG1fc3RyZWFtV2FzQ2FuY2Vs
bGVkID0gdHJ1ZTsKICAgICBtX2xvYWRlci0+Y2FuY2VsKG1fbG9hZGVyLT5jYW5jZWxsZWRFcnJv
cigpKTsKLSAgICBtX2xvYWRlciA9IDA7CisgICAgbV9sb2FkZXIgPSBudWxscHRyOwogfQogCiBz
dGF0aWMgU3RyaW5nIGJ1aWxkSFRUUEhlYWRlcnMoY29uc3QgUmVzb3VyY2VSZXNwb25zZSYgcmVz
cG9uc2UsIGxvbmcgbG9uZyYgZXhwZWN0ZWRDb250ZW50TGVuZ3RoKQpAQCAtNjA0LDcgKzYwNCw3
IEBAIHZvaWQgUGx1Z2luVmlldzo6aW5pdGlhbGl6ZVBsdWdpbigpCiAKIHZvaWQgUGx1Z2luVmll
dzo6ZGlkRmFpbFRvSW5pdGlhbGl6ZVBsdWdpbigpCiB7Ci0gICAgbV9wbHVnaW4gPSAwOworICAg
IG1fcGx1Z2luID0gbnVsbHB0cjsKIAogI2lmIEVOQUJMRShORVRTQ0FQRV9QTFVHSU5fQVBJKQog
ICAgIFN0cmluZyBmcmFtZVVSTFN0cmluZyA9IGZyYW1lKCktPmxvYWRlcigpLmRvY3VtZW50TG9h
ZGVyKCktPnJlc3BvbnNlVVJMKCkuc3RyaW5nKCk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0
Mi9XZWJQcm9jZXNzL1dlYlBhZ2UvV2ViUGFnZS5jcHAgYi9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9j
ZXNzL1dlYlBhZ2UvV2ViUGFnZS5jcHAKaW5kZXggMTU1NGRiY2Y3NDk2Yzc2ZDk3MjAzM2I4ZDM5
MTM2NGFiNmZlMWViOC4uN2I4YTkyNjAwN2RkMTgwNzg4NWRhMjgxMTZjODJiOThiMzE4MzI2NCAx
MDA2NDQKLS0tIGEvU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9XZWJQYWdlL1dlYlBhZ2UuY3Bw
CisrKyBiL1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvV2ViUGFnZS9XZWJQYWdlLmNwcApAQCAt
OTMwLDIzICs5MzAsMjMgQEAgdm9pZCBXZWJQYWdlOjpjbG9zZSgpCiAgICAgfQogCiAjaWYgRU5B
QkxFKEZVTExTQ1JFRU5fQVBJKQotICAgIG1fZnVsbFNjcmVlbk1hbmFnZXIgPSAwOworICAgIG1f
ZnVsbFNjcmVlbk1hbmFnZXIgPSBudWxscHRyOwogI2VuZGlmCiAKICAgICBpZiAobV9hY3RpdmVQ
b3B1cE1lbnUpIHsKICAgICAgICAgbV9hY3RpdmVQb3B1cE1lbnUtPmRpc2Nvbm5lY3RGcm9tUGFn
ZSgpOwotICAgICAgICBtX2FjdGl2ZVBvcHVwTWVudSA9IDA7CisgICAgICAgIG1fYWN0aXZlUG9w
dXBNZW51ID0gbnVsbHB0cjsKICAgICB9CiAKICAgICBpZiAobV9hY3RpdmVPcGVuUGFuZWxSZXN1
bHRMaXN0ZW5lcikgewogICAgICAgICBtX2FjdGl2ZU9wZW5QYW5lbFJlc3VsdExpc3RlbmVyLT5k
aXNjb25uZWN0RnJvbVBhZ2UoKTsKLSAgICAgICAgbV9hY3RpdmVPcGVuUGFuZWxSZXN1bHRMaXN0
ZW5lciA9IDA7CisgICAgICAgIG1fYWN0aXZlT3BlblBhbmVsUmVzdWx0TGlzdGVuZXIgPSBudWxs
cHRyOwogICAgIH0KIAogI2lmIEVOQUJMRShJTlBVVF9UWVBFX0NPTE9SKQogICAgIGlmIChtX2Fj
dGl2ZUNvbG9yQ2hvb3NlcikgewogICAgICAgICBtX2FjdGl2ZUNvbG9yQ2hvb3Nlci0+ZGlzY29u
bmVjdEZyb21QYWdlKCk7Ci0gICAgICAgIG1fYWN0aXZlQ29sb3JDaG9vc2VyID0gMDsKKyAgICAg
ICAgbV9hY3RpdmVDb2xvckNob29zZXIgPSBudWxscHRyOwogICAgIH0KICNlbmRpZgogCkBAIC0z
MjcwLDcgKzMyNzAsNyBAQCB2b2lkIFdlYlBhZ2U6OmNvdW50U3RyaW5nTWF0Y2hlcyhjb25zdCBT
dHJpbmcmIHN0cmluZywgdWludDMyX3Qgb3B0aW9ucywgdWludDMyXwogdm9pZCBXZWJQYWdlOjpk
aWRDaGFuZ2VTZWxlY3RlZEluZGV4Rm9yQWN0aXZlUG9wdXBNZW51KGludDMyX3QgbmV3SW5kZXgp
CiB7CiAgICAgY2hhbmdlU2VsZWN0ZWRJbmRleChuZXdJbmRleCk7Ci0gICAgbV9hY3RpdmVQb3B1
cE1lbnUgPSAwOworICAgIG1fYWN0aXZlUG9wdXBNZW51ID0gbnVsbHB0cjsKIH0KIAogdm9pZCBX
ZWJQYWdlOjpjaGFuZ2VTZWxlY3RlZEluZGV4KGludDMyX3QgaW5kZXgpCkBAIC0zMzA2LDEyICsz
MzA2LDEyIEBAIHZvaWQgV2ViUGFnZTo6ZGlkQ2hvb3NlRmlsZXNGb3JPcGVuUGFuZWwoY29uc3Qg
VmVjdG9yPFN0cmluZz4mIGZpbGVzKQogICAgICAgICByZXR1cm47CiAKICAgICBtX2FjdGl2ZU9w
ZW5QYW5lbFJlc3VsdExpc3RlbmVyLT5kaWRDaG9vc2VGaWxlcyhmaWxlcyk7Ci0gICAgbV9hY3Rp
dmVPcGVuUGFuZWxSZXN1bHRMaXN0ZW5lciA9IDA7CisgICAgbV9hY3RpdmVPcGVuUGFuZWxSZXN1
bHRMaXN0ZW5lciA9IG51bGxwdHI7CiB9CiAKIHZvaWQgV2ViUGFnZTo6ZGlkQ2FuY2VsRm9yT3Bl
blBhbmVsKCkKIHsKLSAgICBtX2FjdGl2ZU9wZW5QYW5lbFJlc3VsdExpc3RlbmVyID0gMDsKKyAg
ICBtX2FjdGl2ZU9wZW5QYW5lbFJlc3VsdExpc3RlbmVyID0gbnVsbHB0cjsKIH0KIAogI2lmIEVO
QUJMRShTQU5EQk9YX0VYVEVOU0lPTlMpCkBAIC0zNDE1LDcgKzM0MTUsNyBAQCB2b2lkIFdlYlBh
Z2U6OmRpZFNlbGVjdEl0ZW1Gcm9tQWN0aXZlQ29udGV4dE1lbnUoY29uc3QgV2ViQ29udGV4dE1l
bnVJdGVtRGF0YSYgaQogICAgICAgICByZXR1cm47CiAKICAgICBtX2NvbnRleHRNZW51LT5pdGVt
U2VsZWN0ZWQoaXRlbSk7Ci0gICAgbV9jb250ZXh0TWVudSA9IDA7CisgICAgbV9jb250ZXh0TWVu
dSA9IG51bGxwdHI7CiB9CiAjZW5kaWYKIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdDIvV2Vi
UHJvY2Vzcy9XZWJQYWdlL2d0ay9XZWJQcmludE9wZXJhdGlvbkd0ay5jcHAgYi9Tb3VyY2UvV2Vi
S2l0Mi9XZWJQcm9jZXNzL1dlYlBhZ2UvZ3RrL1dlYlByaW50T3BlcmF0aW9uR3RrLmNwcAppbmRl
eCA1NWVjZGIyYjQ2ZTYzYWJjOGRmMWExMmE4MTFkNWE3NTViNzNhMDhhLi5iNjIwNWRiOTQ5NTAx
M2U0YThlMjIxY2Q2YmZiNmQ4NDk4MzgzMDEyIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0Mi9X
ZWJQcm9jZXNzL1dlYlBhZ2UvZ3RrL1dlYlByaW50T3BlcmF0aW9uR3RrLmNwcAorKysgYi9Tb3Vy
Y2UvV2ViS2l0Mi9XZWJQcm9jZXNzL1dlYlBhZ2UvZ3RrL1dlYlByaW50T3BlcmF0aW9uR3RrLmNw
cApAQCAtNjk5LDcgKzY5OSw3IEBAIHZvaWQgV2ViUHJpbnRPcGVyYXRpb25HdGs6OnByaW50UGFn
ZXNEb25lKCkKIHsKICAgICBtX3ByaW50UGFnZXNJZGxlSWQgPSAwOwogICAgIGVuZFByaW50KCk7
Ci0gICAgbV9jYWlyb0NvbnRleHQgPSAwOworICAgIG1fY2Fpcm9Db250ZXh0ID0gbnVsbHB0cjsK
IH0KIAogdm9pZCBXZWJQcmludE9wZXJhdGlvbkd0azo6cHJpbnREb25lKGNvbnN0IFdlYkNvcmU6
OlJlc291cmNlRXJyb3ImIGVycm9yKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdDIvV2ViUHJv
Y2Vzcy9XZWJQYWdlL2lvcy9XZWJQYWdlSU9TLm1tIGIvU291cmNlL1dlYktpdDIvV2ViUHJvY2Vz
cy9XZWJQYWdlL2lvcy9XZWJQYWdlSU9TLm1tCmluZGV4IDIzZGU4M2VmYWQ2ODk0NjI0NzU2MGY4
MTFkMDg4Y2QyOTc1MmE2YTcuLjlmNGNlYzcyMzFkZDQ2MjcxNTYzZDUyYjZhNGUyYjlkMzI3ODg3
YzYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvV2ViUGFnZS9pb3MvV2Vi
UGFnZUlPUy5tbQorKysgYi9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL1dlYlBhZ2UvaW9zL1dl
YlBhZ2VJT1MubW0KQEAgLTE5NzgsNyArMTk3OCw3IEBAIHZvaWQgV2ViUGFnZTo6c3luY0FwcGx5
QXV0b2NvcnJlY3Rpb24oY29uc3QgU3RyaW5nJiBjb3JyZWN0aW9uLCBjb25zdCBTdHJpbmcmIG9y
CiAgICAgICAgIHdoaWxlICh0ZXh0Rm9yUmFuZ2UubGVuZ3RoKCkgJiYgdGV4dEZvclJhbmdlLmxl
bmd0aCgpID4gb3JpZ2luYWxUZXh0Lmxlbmd0aCgpICYmIGxvb3BDb3VudCA8IG1heFBvc2l0aW9u
c0F0dGVtcHRzKSB7CiAgICAgICAgICAgICBwb3NpdGlvbiA9IHBvc2l0aW9uLm5leHQoKTsKICAg
ICAgICAgICAgIGlmIChwb3NpdGlvbi5pc05vdE51bGwoKSAmJiBwb3NpdGlvbiA+PSBmcmFtZS5z
ZWxlY3Rpb24oKS5zZWxlY3Rpb24oKS5zdGFydCgpKQotICAgICAgICAgICAgICAgIHJhbmdlID0g
TlVMTDsKKyAgICAgICAgICAgICAgICByYW5nZSA9IG51bGxwdHI7CiAgICAgICAgICAgICBlbHNl
CiAgICAgICAgICAgICAgICAgcmFuZ2UgPSBSYW5nZTo6Y3JlYXRlKCpmcmFtZS5kb2N1bWVudCgp
LCBwb3NpdGlvbiwgZnJhbWUuc2VsZWN0aW9uKCkuc2VsZWN0aW9uKCkuc3RhcnQoKSk7CiAgICAg
ICAgICAgICB0ZXh0Rm9yUmFuZ2UgPSAocmFuZ2UpID8gcGxhaW5UZXh0UmVwbGFjaW5nTm9CcmVh
a1NwYWNlKHJhbmdlLmdldCgpKSA6IGVtcHR5U3RyaW5nKCk7CkBAIC0yNDU4LDcgKzI0NTgsNyBA
QCB2b2lkIFdlYlBhZ2U6OmVsZW1lbnREaWRCbHVyKFdlYkNvcmU6Ok5vZGUqIG5vZGUpCiAgICAg
ICAgICAgICAgICAgc2VuZChNZXNzYWdlczo6V2ViUGFnZVByb3h5OjpTdG9wQXNzaXN0aW5nTm9k
ZSgpKTsKICAgICAgICAgICAgIG1faGFzUGVuZGluZ0JsdXJOb3RpZmljYXRpb24gPSBmYWxzZTsK
ICAgICAgICAgfSk7Ci0gICAgICAgIG1fYXNzaXN0ZWROb2RlID0gMDsKKyAgICAgICAgbV9hc3Np
c3RlZE5vZGUgPSBudWxscHRyOwogICAgIH0KIH0KIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktp
dDIvV2ViUHJvY2Vzcy9XZWJQcm9jZXNzLmNwcCBiL1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3Mv
V2ViUHJvY2Vzcy5jcHAKaW5kZXggYTk3YmMyMWE5ODE1NDlhY2NkN2ZlZGZiMjgzM2FlYzg0ZWVk
ZDA3YS4uYjRjOWUwZWU4ODFmZTczMTA1ZDM1ZTFmMTAyNDQ1MWEzYTJiOTBlYSAxMDA2NDQKLS0t
IGEvU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9XZWJQcm9jZXNzLmNwcAorKysgYi9Tb3VyY2Uv
V2ViS2l0Mi9XZWJQcm9jZXNzL1dlYlByb2Nlc3MuY3BwCkBAIC0xMDM0LDcgKzEwMzQsNyBAQCB2
b2lkIFdlYlByb2Nlc3M6Om5ldHdvcmtQcm9jZXNzQ29ubmVjdGlvbkNsb3NlZChOZXR3b3JrUHJv
Y2Vzc0Nvbm5lY3Rpb24qIGNvbm5lYwogICAgIEFTU0VSVChtX25ldHdvcmtQcm9jZXNzQ29ubmVj
dGlvbik7CiAgICAgQVNTRVJUX1VOVVNFRChjb25uZWN0aW9uLCBtX25ldHdvcmtQcm9jZXNzQ29u
bmVjdGlvbiA9PSBjb25uZWN0aW9uKTsKIAotICAgIG1fbmV0d29ya1Byb2Nlc3NDb25uZWN0aW9u
ID0gMDsKKyAgICBtX25ldHdvcmtQcm9jZXNzQ29ubmVjdGlvbiA9IG51bGxwdHI7CiAgICAgCiAg
ICAgbV93ZWJSZXNvdXJjZUxvYWRTY2hlZHVsZXItPm5ldHdvcmtQcm9jZXNzQ3Jhc2hlZCgpOwog
fQpAQCAtMTA1MSw3ICsxMDUxLDcgQEAgdm9pZCBXZWJQcm9jZXNzOjp3ZWJUb0RhdGFiYXNlUHJv
Y2Vzc0Nvbm5lY3Rpb25DbG9zZWQoV2ViVG9EYXRhYmFzZVByb2Nlc3NDb25uZWMKICAgICBBU1NF
UlQobV93ZWJUb0RhdGFiYXNlUHJvY2Vzc0Nvbm5lY3Rpb24pOwogICAgIEFTU0VSVChtX3dlYlRv
RGF0YWJhc2VQcm9jZXNzQ29ubmVjdGlvbiA9PSBjb25uZWN0aW9uKTsKIAotICAgIG1fd2ViVG9E
YXRhYmFzZVByb2Nlc3NDb25uZWN0aW9uID0gMDsKKyAgICBtX3dlYlRvRGF0YWJhc2VQcm9jZXNz
Q29ubmVjdGlvbiA9IG51bGxwdHI7CiB9CiAKIFdlYlRvRGF0YWJhc2VQcm9jZXNzQ29ubmVjdGlv
biogV2ViUHJvY2Vzczo6d2ViVG9EYXRhYmFzZVByb2Nlc3NDb25uZWN0aW9uKCkKZGlmZiAtLWdp
dCBhL1Rvb2xzL0NoYW5nZUxvZyBiL1Rvb2xzL0NoYW5nZUxvZwppbmRleCA5ODc2MGNjZjVhNDE5
NzRiMDhjODIwOThlNTRkMjg4OGFmNDcxN2E4Li42OWVlZmNmODgzZmQzMThjNjExN2RlZTBmYWYw
ZWFjN2IzNjZkM2YxIDEwMDY0NAotLS0gYS9Ub29scy9DaGFuZ2VMb2cKKysrIGIvVG9vbHMvQ2hh
bmdlTG9nCkBAIC0xLDMgKzEsMTIgQEAKKzIwMTUtMDctMDMgIENocmlzIER1bWV6ICA8Y2R1bWV6
QGFwcGxlLmNvbT4KKworICAgICAgICBEcm9wIFJlZlB0cjo6Y2xlYXIoKSBtZXRob2QKKyAgICAg
ICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTE0NjU1NgorCisgICAg
ICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIERyb3AgUmVmUHRyOjpj
bGVhcigpIG1ldGhvZCBpbiBmYXZvciBvZiAiPSBudWxscHRyOyIgcGF0dGVybi4KKwogMjAxNS0w
Ny0wMyAgRGFuIEJlcm5zdGVpbiAgPG1pdHpAYXBwbGUuY29tPgogCiAgICAgICAgIFtYY29kZV0g
VXBkYXRlIHNvbWUgYnVpbGQgc2V0dGluZ3MgYXMgcmVjb21tZW5kZWQgYnkgWGNvZGUgNwpkaWZm
IC0tZ2l0IGEvVG9vbHMvRHVtcFJlbmRlclRyZWUvbWFjL0R1bXBSZW5kZXJUcmVlLm1tIGIvVG9v
bHMvRHVtcFJlbmRlclRyZWUvbWFjL0R1bXBSZW5kZXJUcmVlLm1tCmluZGV4IGJjY2Q0YTkxMTJl
NjcyYzFjYzJiMmQ5MzBmZjBhM2VlMDNiMDNlMDYuLjI3NmRmOGI4OTJlYzUyN2E3NDZiZjNmYTZk
ZGM2NGVhZDM3NzdjMTUgMTAwNjQ0Ci0tLSBhL1Rvb2xzL0R1bXBSZW5kZXJUcmVlL21hYy9EdW1w
UmVuZGVyVHJlZS5tbQorKysgYi9Ub29scy9EdW1wUmVuZGVyVHJlZS9tYWMvRHVtcFJlbmRlclRy
ZWUubW0KQEAgLTIwNjQsNyArMjA2NCw3IEBAIHN0YXRpYyB2b2lkIHJ1blRlc3QoY29uc3Qgc3Ry
aW5nJiBpbnB1dExpbmUpCiAgICAgQVNTRVJUKENGQXJyYXlHZXRDb3VudChvcGVuV2luZG93c1Jl
ZikgPT0gMSk7CiAgICAgQVNTRVJUKENGQXJyYXlHZXRWYWx1ZUF0SW5kZXgob3BlbldpbmRvd3NS
ZWYsIDApID09IFtbbWFpbkZyYW1lIHdlYlZpZXddIHdpbmRvd10pOwogCi0gICAgZ1Rlc3RSdW5u
ZXIuY2xlYXIoKTsKKyAgICBnVGVzdFJ1bm5lciA9IG51bGxwdHI7CiAKICAgICBpZiAoaWdub3Jl
V2ViQ29yZU5vZGVMZWFrcykKICAgICAgICAgW1dlYkNvcmVTdGF0aXN0aWNzIHN0b3BJZ25vcmlu
Z1dlYkNvcmVOb2RlTGVha3NdOwpkaWZmIC0tZ2l0IGEvVG9vbHMvRHVtcFJlbmRlclRyZWUvd2lu
L0R1bXBSZW5kZXJUcmVlLmNwcCBiL1Rvb2xzL0R1bXBSZW5kZXJUcmVlL3dpbi9EdW1wUmVuZGVy
VHJlZS5jcHAKaW5kZXggZDk4NmNiZmQzNzM0MDI0NjZmNDBiOGU2NWE0MDQ2OWJlY2UwYThkYy4u
Yzg0MzU0NzIzY2JhOTVmNGExNWE0MTYwNzYzMjkzYmQ2NzY2OGYyOSAxMDA2NDQKLS0tIGEvVG9v
bHMvRHVtcFJlbmRlclRyZWUvd2luL0R1bXBSZW5kZXJUcmVlLmNwcAorKysgYi9Ub29scy9EdW1w
UmVuZGVyVHJlZS93aW4vRHVtcFJlbmRlclRyZWUuY3BwCkBAIC0xMTgzLDcgKzExODMsNyBAQCBz
dGF0aWMgdm9pZCBydW5UZXN0KGNvbnN0IHN0cmluZyYgaW5wdXRMaW5lKQogCiBleGl0OgogICAg
IHJlbW92ZUZvbnRGYWxsYmFja0lmUHJlc2VudChmYWxsYmFja1BhdGgpOwotICAgIDo6Z1Rlc3RS
dW5uZXIuY2xlYXIoKTsKKyAgICA6OmdUZXN0UnVubmVyID0gbnVsbHB0cjsKIAogICAgIGZwdXRz
KCIjRU9GXG4iLCBzdGRlcnIpOwogICAgIGZmbHVzaChzdGRlcnIpOwpkaWZmIC0tZ2l0IGEvVG9v
bHMvVGVzdFdlYktpdEFQSS9UZXN0cy9XVEYvUmVmUHRyLmNwcCBiL1Rvb2xzL1Rlc3RXZWJLaXRB
UEkvVGVzdHMvV1RGL1JlZlB0ci5jcHAKaW5kZXggZmM5MjI0NjcyNzg0NjQxZDFkMzc0OWMyMDc5
ZTE1YmJkM2U4NzI2Yy4uYjcyNmQ3ZGRmMDNjYzJmZDZhMjBlMTRkOWI0MDIzY2YyNmE3ZDQzOCAx
MDA2NDQKLS0tIGEvVG9vbHMvVGVzdFdlYktpdEFQSS9UZXN0cy9XVEYvUmVmUHRyLmNwcAorKysg
Yi9Ub29scy9UZXN0V2ViS2l0QVBJL1Rlc3RzL1dURi9SZWZQdHIuY3BwCkBAIC0xMDIsNyArMTAy
LDcgQEAgVEVTVChXVEZfUmVmUHRyLCBCYXNpYykKICAgICB7CiAgICAgICAgIFJlZlB0cjxSZWZM
b2dnZXI+IHB0cigmYSk7CiAgICAgICAgIEFTU0VSVF9FUSgmYSwgcHRyLmdldCgpKTsKLSAgICAg
ICAgcHRyLmNsZWFyKCk7CisgICAgICAgIHB0ciA9IG51bGxwdHI7CiAgICAgICAgIEFTU0VSVF9F
UShudWxscHRyLCBwdHIuZ2V0KCkpOwogICAgIH0KICAgICBBU1NFUlRfU1RSRVEoInJlZihhKSBk
ZXJlZihhKSAiLCB0YWtlTG9nU3RyKCkuY19zdHIoKSk7Cg==
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>256136</attachid>
            <date>2015-07-03 21:36:34 -0700</date>
            <delta_ts>2015-07-03 23:34:09 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-146556-20150703213532.patch</filename>
            <type>text/plain</type>
            <size>174474</size>
            <attacher name="Chris Dumez">cdumez</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTg2MjcxCmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlw
dENvcmUvQ2hhbmdlTG9nIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL0NoYW5nZUxvZwppbmRleCA3
NThjNmEzYWY4NTAzMTIzOGRiZjUzY2ZjMjg4NTc5ODM0OGUzYTJiLi4xMDE2ZTQ4ODM0ODAxMjg3
MDYxYjUxMzZjNmU4MzkxZWE4NGQxMzk2IDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENv
cmUvQ2hhbmdlTG9nCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9DaGFuZ2VMb2cKQEAgLTEs
MyArMSwxMiBAQAorMjAxNS0wNy0wMyAgQ2hyaXMgRHVtZXogIDxjZHVtZXpAYXBwbGUuY29tPgor
CisgICAgICAgIERyb3AgUmVmUHRyOjpjbGVhcigpIG1ldGhvZAorICAgICAgICBodHRwczovL2J1
Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTQ2NTU2CisKKyAgICAgICAgUmV2aWV3ZWQg
YnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgRHJvcCBSZWZQdHI6OmNsZWFyKCkgbWV0aG9k
IGluIGZhdm9yIG9mICI9IG51bGxwdHI7IiBwYXR0ZXJuLgorCiAyMDE1LTA3LTAzICBEYW4gQmVy
bnN0ZWluICA8bWl0ekBhcHBsZS5jb20+CiAKICAgICAgICAgW1hjb2RlXSBVcGRhdGUgc29tZSBi
dWlsZCBzZXR0aW5ncyBhcyByZWNvbW1lbmRlZCBieSBYY29kZSA3CmRpZmYgLS1naXQgYS9Tb3Vy
Y2UvV1RGL0NoYW5nZUxvZyBiL1NvdXJjZS9XVEYvQ2hhbmdlTG9nCmluZGV4IDcxMDIyNmE3ZTZj
Nzg3NjQ2YWZhMDllN2ViYmNlZDA4ZDg1M2I0N2MuLjlhNDkxMmEwMDJkYjcwYmUxMTk5M2UxNTcw
YzU0YmIzMjQ4MDBjYjggMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XVEYvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XVEYvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMTYgQEAKKzIwMTUtMDctMDMgIENocmlzIER1
bWV6ICA8Y2R1bWV6QGFwcGxlLmNvbT4KKworICAgICAgICBEcm9wIFJlZlB0cjo6Y2xlYXIoKSBt
ZXRob2QKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTE0
NjU1NgorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIERy
b3AgUmVmUHRyOjpjbGVhcigpIG1ldGhvZCBpbiBmYXZvciBvZiAiPSBudWxscHRyOyIgcGF0dGVy
bi4KKyAgICAgICAgQWxzbyBtYWRlIHRoZSAiPSBudWxscHRyOyIgcGF0dGVybiBhcyBlZmZpY2ll
bnQgYXMgY2xlYXIoKQorICAgICAgICBieSBwcm92aWRpbmcgYSBvcGVyYXRvcj0obnVsbHB0cl90
KSBvdmVybG9hZC4gTG9jYWwgbWljcm8tCisgICAgICAgIGJlbmNobWFya2luZyBzaG93ZWQgdGhh
dCAiPSBudWxscHRyOyIgdXNlZCB0byBiZSB+MS43JSBzbG93ZXIKKyAgICAgICAgdGhhbiBjbGVh
cigpLgorCiAyMDE1LTA3LTAzICBEYW4gQmVybnN0ZWluICA8bWl0ekBhcHBsZS5jb20+CiAKICAg
ICAgICAgW1hjb2RlXSBVcGRhdGUgc29tZSBidWlsZCBzZXR0aW5ncyBhcyByZWNvbW1lbmRlZCBi
eSBYY29kZSA3CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cgYi9Tb3VyY2Uv
V2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggY2ZhNDExOWI1YWM2NmMxMDk1YjRmMzY5MDZmYjliYWQ5
YTA4MmRjNy4uOWY0NmU2NGVlMWNkZmVjMTA3OTEzNGE1OGNkMzc1MzYwOTY0Zjk4OSAxMDA2NDQK
LS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1NvdXJjZS9XZWJDb3JlL0NoYW5n
ZUxvZwpAQCAtMSwzICsxLDEyIEBACisyMDE1LTA3LTAzICBDaHJpcyBEdW1leiAgPGNkdW1lekBh
cHBsZS5jb20+CisKKyAgICAgICAgRHJvcCBSZWZQdHI6OmNsZWFyKCkgbWV0aG9kCisgICAgICAg
IGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0xNDY1NTYKKworICAgICAg
ICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICBEcm9wIFJlZlB0cjo6Y2xl
YXIoKSBtZXRob2QgaW4gZmF2b3Igb2YgIj0gbnVsbHB0cjsiIHBhdHRlcm4uCisKIDIwMTUtMDct
MDMgIERhbiBCZXJuc3RlaW4gIDxtaXR6QGFwcGxlLmNvbT4KIAogICAgICAgICBUcmllZCB0byBm
aXggdGhlIGlPUyBidWlsZC4KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvQ2hhbmdlTG9nIGIv
U291cmNlL1dlYktpdC9DaGFuZ2VMb2cKaW5kZXggNzNhZDUwMDYxOWY1ZmQwOWJkNTUxMWNlNGZl
NTMyMjIxOWQyYzIyZi4uODY4NjgyMTcyNzUwMTkyYzZmZmQ0MzI2YzA5ODZlMWQ4Yjk4MzM0YyAx
MDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9DaGFuZ2VMb2cKKysrIGIvU291cmNlL1dlYktpdC9D
aGFuZ2VMb2cKQEAgLTEsMyArMSwxMiBAQAorMjAxNS0wNy0wMyAgQ2hyaXMgRHVtZXogIDxjZHVt
ZXpAYXBwbGUuY29tPgorCisgICAgICAgIERyb3AgUmVmUHRyOjpjbGVhcigpIG1ldGhvZAorICAg
ICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTQ2NTU2CisKKyAg
ICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgRHJvcCBSZWZQdHI6
OmNsZWFyKCkgbWV0aG9kIGluIGZhdm9yIG9mICI9IG51bGxwdHI7IiBwYXR0ZXJuLgorCiAyMDE1
LTA3LTAzICBEYW4gQmVybnN0ZWluICA8bWl0ekBhcHBsZS5jb20+CiAKICAgICAgICAgW1hjb2Rl
XSBVcGRhdGUgc29tZSBidWlsZCBzZXR0aW5ncyBhcyByZWNvbW1lbmRlZCBieSBYY29kZSA3CmRp
ZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L21hYy9DaGFuZ2VMb2cgYi9Tb3VyY2UvV2ViS2l0L21h
Yy9DaGFuZ2VMb2cKaW5kZXggYjFjMDhjNDcyYTY5MDVjNmJjOGUyYjkxOTNmZGI1NGQ4Zjk4YTQ0
Ny4uYjkxODRjNWNlYzgwZjg1YTEyYWUxYjZhNjA4MjVlNzhhNDQyY2RhYiAxMDA2NDQKLS0tIGEv
U291cmNlL1dlYktpdC9tYWMvQ2hhbmdlTG9nCisrKyBiL1NvdXJjZS9XZWJLaXQvbWFjL0NoYW5n
ZUxvZwpAQCAtMSwzICsxLDEyIEBACisyMDE1LTA3LTAzICBDaHJpcyBEdW1leiAgPGNkdW1lekBh
cHBsZS5jb20+CisKKyAgICAgICAgRHJvcCBSZWZQdHI6OmNsZWFyKCkgbWV0aG9kCisgICAgICAg
IGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0xNDY1NTYKKworICAgICAg
ICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICBEcm9wIFJlZlB0cjo6Y2xl
YXIoKSBtZXRob2QgaW4gZmF2b3Igb2YgIj0gbnVsbHB0cjsiIHBhdHRlcm4uCisKIDIwMTUtMDct
MDMgIERhbiBCZXJuc3RlaW4gIDxtaXR6QGFwcGxlLmNvbT4KIAogICAgICAgICBbWGNvZGVdIFVw
ZGF0ZSBzb21lIGJ1aWxkIHNldHRpbmdzIGFzIHJlY29tbWVuZGVkIGJ5IFhjb2RlIDcKZGlmZiAt
LWdpdCBhL1NvdXJjZS9XZWJLaXQvd2luL0NoYW5nZUxvZyBiL1NvdXJjZS9XZWJLaXQvd2luL0No
YW5nZUxvZwppbmRleCAxMTQyODU4YWM5NGI1NjZjNGIwZmMzOWJiODVjZDRlYjA3ZDk5ZWZkLi41
NjJhMTJiZjQ1ODIxMTI3YTZiMTg5YjRkZTVjNjYzZjY2YjdmOWU2IDEwMDY0NAotLS0gYS9Tb3Vy
Y2UvV2ViS2l0L3dpbi9DaGFuZ2VMb2cKKysrIGIvU291cmNlL1dlYktpdC93aW4vQ2hhbmdlTG9n
CkBAIC0xLDMgKzEsMTIgQEAKKzIwMTUtMDctMDMgIENocmlzIER1bWV6ICA8Y2R1bWV6QGFwcGxl
LmNvbT4KKworICAgICAgICBEcm9wIFJlZlB0cjo6Y2xlYXIoKSBtZXRob2QKKyAgICAgICAgaHR0
cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTE0NjU1NgorCisgICAgICAgIFJl
dmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIERyb3AgUmVmUHRyOjpjbGVhcigp
IG1ldGhvZCBpbiBmYXZvciBvZiAiPSBudWxscHRyOyIgcGF0dGVybi4KKwogMjAxNS0wNi0zMCAg
U2ltb24gRnJhc2VyICA8c2ltb24uZnJhc2VyQGFwcGxlLmNvbT4KIAogICAgICAgICBGaXggTWFj
IGFuZCBXaW5kb3dzIGJ1aWxkcy4KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL0NoYW5nZUxv
ZyBiL1NvdXJjZS9XZWJLaXQyL0NoYW5nZUxvZwppbmRleCA4MTcwYWM4MjVlMTJjZjQ1MzcyMDcz
MzE5MTZlZTdmNzVlNGI2OWMyLi45MzJjNGI3Mjg3ZWU4ZmUwYTA3NjBmZDBmYTQ3N2M5Njg5MTA4
YTJiIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0Mi9DaGFuZ2VMb2cKKysrIGIvU291cmNlL1dl
YktpdDIvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMTIgQEAKKzIwMTUtMDctMDMgIENocmlzIER1bWV6
ICA8Y2R1bWV6QGFwcGxlLmNvbT4KKworICAgICAgICBEcm9wIFJlZlB0cjo6Y2xlYXIoKSBtZXRo
b2QKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTE0NjU1
NgorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIERyb3Ag
UmVmUHRyOjpjbGVhcigpIG1ldGhvZCBpbiBmYXZvciBvZiAiPSBudWxscHRyOyIgcGF0dGVybi4g
ICAgICAgIAorCiAyMDE1LTA3LTAzICBEYW4gQmVybnN0ZWluICA8bWl0ekBhcHBsZS5jb20+CiAK
ICAgICAgICAgW1hjb2RlXSBVcGRhdGUgc29tZSBidWlsZCBzZXR0aW5ncyBhcyByZWNvbW1lbmRl
ZCBieSBYY29kZSA3CmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvQVBJL0pTVmFs
dWVSZWYuY3BwIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL0FQSS9KU1ZhbHVlUmVmLmNwcAppbmRl
eCA3NTlhNjVhOWM3ZGUzYzU2NjE5YWI0NzQ1NDgzNDg2ODhkY2M0N2MxLi41NDQwNWUyYWY1OTdj
MjQ4MjM2ZGVmNzY5ZThiYmM2MDI4OTc5ZDI2IDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlw
dENvcmUvQVBJL0pTVmFsdWVSZWYuY3BwCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9BUEkv
SlNWYWx1ZVJlZi5jcHAKQEAgLTQyMiw3ICs0MjIsNyBAQCBKU1N0cmluZ1JlZiBKU1ZhbHVlVG9T
dHJpbmdDb3B5KEpTQ29udGV4dFJlZiBjdHgsIEpTVmFsdWVSZWYgdmFsdWUsIEpTVmFsdWVSZWYq
CiAgICAgCiAgICAgUmVmUHRyPE9wYXF1ZUpTU3RyaW5nPiBzdHJpbmdSZWYoT3BhcXVlSlNTdHJp
bmc6OmNyZWF0ZShqc1ZhbHVlLnRvU3RyaW5nKGV4ZWMpLT52YWx1ZShleGVjKSkpOwogICAgIGlm
IChoYW5kbGVFeGNlcHRpb25JZk5lZWRlZChleGVjLCBleGNlcHRpb24pID09IEV4Y2VwdGlvblN0
YXR1czo6RGlkVGhyb3cpCi0gICAgICAgIHN0cmluZ1JlZi5jbGVhcigpOworICAgICAgICBzdHJp
bmdSZWYgPSBudWxscHRyOwogICAgIHJldHVybiBzdHJpbmdSZWYucmVsZWFzZSgpLmxlYWtSZWYo
KTsKIH0KIApkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL2J5dGVjb2RlL0NhbGxM
aW5rSW5mby5jcHAgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvYnl0ZWNvZGUvQ2FsbExpbmtJbmZv
LmNwcAppbmRleCA3MmEwYzI0MWRmY2NkMTY1ZDkwMzBkNWZhODRlZmI2OGY4MWY0YjM4Li5kOTIw
MDk4NzRhOTM4NTc3NzJjNDM2NmY0ZDAwOWI1NDZhMzNiOWFjIDEwMDY0NAotLS0gYS9Tb3VyY2Uv
SmF2YVNjcmlwdENvcmUvYnl0ZWNvZGUvQ2FsbExpbmtJbmZvLmNwcAorKysgYi9Tb3VyY2UvSmF2
YVNjcmlwdENvcmUvYnl0ZWNvZGUvQ2FsbExpbmtJbmZvLmNwcApAQCAtNDMsNyArNDMsNyBAQCB2
b2lkIENhbGxMaW5rSW5mbzo6Y2xlYXJTdHViKCkKICAgICAgICAgcmV0dXJuOwogCiAgICAgbV9z
dHViLT5jbGVhckNhbGxOb2Rlc0Zvcih0aGlzKTsKLSAgICBtX3N0dWIuY2xlYXIoKTsKKyAgICBt
X3N0dWIgPSBudWxscHRyOwogfQogCiB2b2lkIENhbGxMaW5rSW5mbzo6dW5saW5rKFJlcGF0Y2hC
dWZmZXImIHJlcGF0Y2hCdWZmZXIpCmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUv
Ynl0ZWNvZGUvU3RydWN0dXJlU3R1YkluZm8uaCBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ieXRl
Y29kZS9TdHJ1Y3R1cmVTdHViSW5mby5oCmluZGV4IGVjOGI3OWMxZjI4NTI1YmI0ODQ5NWRkMWJl
YzZmMTlmMTYyNTc0ZWYuLmQ0MDJhY2VlNTc5M2JiNGY3ODY2OTUxNzE2NDE0OGU4YTdhMjcxYzgg
MTAwNjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ieXRlY29kZS9TdHJ1Y3R1cmVTdHVi
SW5mby5oCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ieXRlY29kZS9TdHJ1Y3R1cmVTdHVi
SW5mby5oCkBAIC0xNDksOCArMTQ5LDggQEAgc3RydWN0IFN0cnVjdHVyZVN0dWJJbmZvIHsKICAg
ICB7CiAgICAgICAgIGRlcmVmKCk7CiAgICAgICAgIGFjY2Vzc1R5cGUgPSBhY2Nlc3NfdW5zZXQ7
Ci0gICAgICAgIHN0dWJSb3V0aW5lLmNsZWFyKCk7Ci0gICAgICAgIHdhdGNocG9pbnRzLmNsZWFy
KCk7CisgICAgICAgIHN0dWJSb3V0aW5lID0gbnVsbHB0cjsKKyAgICAgICAgd2F0Y2hwb2ludHMg
PSBudWxscHRyOwogICAgIH0KIAogICAgIHZvaWQgZGVyZWYoKTsKZGlmZiAtLWdpdCBhL1NvdXJj
ZS9KYXZhU2NyaXB0Q29yZS9kZWJ1Z2dlci9EZWJ1Z2dlci5jcHAgYi9Tb3VyY2UvSmF2YVNjcmlw
dENvcmUvZGVidWdnZXIvRGVidWdnZXIuY3BwCmluZGV4IDU3NDEwNjkyZTAwODAwNzc5NzhiMzdl
YjE2NzcwMzIzMzVjNGI0YzIuLmJjMWI1N2U1OTNhNzk5MzA3MTI4OTJkZTY1MDkzMTA2YTNhYTQ3
ZDEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9kZWJ1Z2dlci9EZWJ1Z2dlci5j
cHAKKysrIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL2RlYnVnZ2VyL0RlYnVnZ2VyLmNwcApAQCAt
MTE3LDcgKzExNyw3IEBAIHB1YmxpYzoKICAgICB7CiAgICAgICAgIGlmIChtX2RlYnVnZ2VyLm1f
Y3VycmVudERlYnVnZ2VyQ2FsbEZyYW1lKSB7CiAgICAgICAgICAgICBtX2RlYnVnZ2VyLm1fY3Vy
cmVudERlYnVnZ2VyQ2FsbEZyYW1lLT5pbnZhbGlkYXRlKCk7Ci0gICAgICAgICAgICBtX2RlYnVn
Z2VyLm1fY3VycmVudERlYnVnZ2VyQ2FsbEZyYW1lID0gMDsKKyAgICAgICAgICAgIG1fZGVidWdn
ZXIubV9jdXJyZW50RGVidWdnZXJDYWxsRnJhbWUgPSBudWxscHRyOwogICAgICAgICB9CiAgICAg
fQogCmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvZGZnL0RGR0dyYXBoLmggYi9T
b3VyY2UvSmF2YVNjcmlwdENvcmUvZGZnL0RGR0dyYXBoLmgKaW5kZXggMmNlN2Q2MGIyYTJmOGFm
N2EzMzVjNTY1MTA2OThkOTllNjcyODQxYi4uNTE0OGMyNmQ4ZTM3ZTc3MzI0NGU4ZDliMjQ0MzVi
MjNhYTMwMmUyNCAxMDA2NDQKLS0tIGEvU291cmNlL0phdmFTY3JpcHRDb3JlL2RmZy9ERkdHcmFw
aC5oCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9kZmcvREZHR3JhcGguaApAQCAtNDQ0LDcg
KzQ0NCw3IEBAIHB1YmxpYzoKICAgICAKICAgICB2b2lkIGtpbGxCbG9jayhCbG9ja0luZGV4IGJs
b2NrSW5kZXgpCiAgICAgewotICAgICAgICBtX2Jsb2Nrc1tibG9ja0luZGV4XS5jbGVhcigpOwor
ICAgICAgICBtX2Jsb2Nrc1tibG9ja0luZGV4XSA9IG51bGxwdHI7CiAgICAgfQogICAgIAogICAg
IHZvaWQga2lsbEJsb2NrKEJhc2ljQmxvY2sqIGJhc2ljQmxvY2spCmRpZmYgLS1naXQgYS9Tb3Vy
Y2UvSmF2YVNjcmlwdENvcmUvZGZnL0RGR09wZXJhdGlvbnMuY3BwIGIvU291cmNlL0phdmFTY3Jp
cHRDb3JlL2RmZy9ERkdPcGVyYXRpb25zLmNwcAppbmRleCBhOTlhM2ZhMTAyMDE4Y2JlODRlNGQx
Mzc0NTBkNzI1MGQ0ODdlZTA4Li42Zjk1MTJiYTUzNGM0OTBkNGJmOTk4YWY1ZDA4MjQ0MTJkYmI5
MTRlIDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvZGZnL0RGR09wZXJhdGlvbnMu
Y3BwCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9kZmcvREZHT3BlcmF0aW9ucy5jcHAKQEAg
LTE0NDcsNyArMTQ0Nyw3IEBAIGNoYXIqIEpJVF9PUEVSQVRJT04gdHJpZ2dlck9TUkVudHJ5Tm93
KAogICAgICAgICAKICAgICAgICAgLy8gT1NSIGVudHJ5IGZhaWxlZC4gT2ggbm8hIFRoaXMgaW1w
bGllcyB0aGF0IHdlIG5lZWQgdG8gcmV0cnkuIFdlIHJldHJ5CiAgICAgICAgIC8vIHdpdGhvdXQg
ZXhwb25lbnRpYWwgYmFja29mZiBhbmQgd2Ugb25seSBkbyB0aGlzIGZvciB0aGUgZW50cnkgY29k
ZSBibG9jay4KLSAgICAgICAgaml0Q29kZS0+b3NyRW50cnlCbG9jay5jbGVhcigpOworICAgICAg
ICBqaXRDb2RlLT5vc3JFbnRyeUJsb2NrID0gbnVsbHB0cjsKICAgICAgICAgaml0Q29kZS0+b3Ny
RW50cnlSZXRyeSA9IDA7CiAgICAgICAgIHJldHVybiAwOwogICAgIH0KZGlmZiAtLWdpdCBhL1Nv
dXJjZS9KYXZhU2NyaXB0Q29yZS9pbnNwZWN0b3IvQ29uc29sZU1lc3NhZ2UuY3BwIGIvU291cmNl
L0phdmFTY3JpcHRDb3JlL2luc3BlY3Rvci9Db25zb2xlTWVzc2FnZS5jcHAKaW5kZXggYTA0YTk3
ZGMzYjQ1MTQ4NTY3NzY0ZjRkMjhkMGYzYjJjMzhkMWUwNi4uOWFjMGRkZWUyZGM5MGJhZjgxOGZh
ZTNhMmQ0MTZkZDU4YWE5MTQ0NSAxMDA2NDQKLS0tIGEvU291cmNlL0phdmFTY3JpcHRDb3JlL2lu
c3BlY3Rvci9Db25zb2xlTWVzc2FnZS5jcHAKKysrIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL2lu
c3BlY3Rvci9Db25zb2xlTWVzc2FnZS5jcHAKQEAgLTI3Myw3ICsyNzMsNyBAQCB2b2lkIENvbnNv
bGVNZXNzYWdlOjpjbGVhcigpCiAgICAgICAgIG1fbWVzc2FnZSA9IEFTQ0lJTGl0ZXJhbCgiPG1l
c3NhZ2UgY29sbGVjdGVkPiIpOwogCiAgICAgaWYgKG1fYXJndW1lbnRzKQotICAgICAgICBtX2Fy
Z3VtZW50cy5jbGVhcigpOworICAgICAgICBtX2FyZ3VtZW50cyA9IG51bGxwdHI7CiB9CiAKIEpT
Qzo6RXhlY1N0YXRlKiBDb25zb2xlTWVzc2FnZTo6c2NyaXB0U3RhdGUoKSBjb25zdApkaWZmIC0t
Z2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL2luc3BlY3Rvci9KU0dsb2JhbE9iamVjdEluc3Bl
Y3RvckNvbnRyb2xsZXIuY3BwIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL2luc3BlY3Rvci9KU0ds
b2JhbE9iamVjdEluc3BlY3RvckNvbnRyb2xsZXIuY3BwCmluZGV4IDU3ZjUyYzU1NTQ3YTYzODg3
OWM4MmY0MGI2OGVjM2QyMmIzMmEwMzkuLjExZDg2ZWQzMjk3NTAzMTczNzE2YTg1ZDkzNTgwOGZj
Njc3YjVkNDggMTAwNjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9pbnNwZWN0b3IvSlNH
bG9iYWxPYmplY3RJbnNwZWN0b3JDb250cm9sbGVyLmNwcAorKysgYi9Tb3VyY2UvSmF2YVNjcmlw
dENvcmUvaW5zcGVjdG9yL0pTR2xvYmFsT2JqZWN0SW5zcGVjdG9yQ29udHJvbGxlci5jcHAKQEAg
LTEzMSw3ICsxMzEsNyBAQCB2b2lkIEpTR2xvYmFsT2JqZWN0SW5zcGVjdG9yQ29udHJvbGxlcjo6
ZGlzY29ubmVjdEZyb250ZW5kKERpc2Nvbm5lY3RSZWFzb24gcmVhcwogICAgIG1fYWdlbnRzLndp
bGxEZXN0cm95RnJvbnRlbmRBbmRCYWNrZW5kKHJlYXNvbik7CiAKICAgICBtX2JhY2tlbmREaXNw
YXRjaGVyLT5jbGVhckZyb250ZW5kKCk7Ci0gICAgbV9iYWNrZW5kRGlzcGF0Y2hlci5jbGVhcigp
OworICAgIG1fYmFja2VuZERpc3BhdGNoZXIgPSBudWxscHRyOwogICAgIG1fZnJvbnRlbmRDaGFu
bmVsID0gbnVsbHB0cjsKIAogICAgIG1faXNBdXRvbWF0aWNJbnNwZWN0aW9uID0gZmFsc2U7CmRp
ZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvaW5zcGVjdG9yL2FnZW50cy9JbnNwZWN0
b3JBZ2VudC5jcHAgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvaW5zcGVjdG9yL2FnZW50cy9JbnNw
ZWN0b3JBZ2VudC5jcHAKaW5kZXggYmYyNDFiYTc3ODJkOWMwOWNhNmRhZDM2MDkyYjgyMWE3MmE4
MzhhYS4uMDUzODY5MDFlNjFlN2ZiY2RlY2UwYmMxNTI5MGQ5ZjViYWNlMDE4OCAxMDA2NDQKLS0t
IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL2luc3BlY3Rvci9hZ2VudHMvSW5zcGVjdG9yQWdlbnQu
Y3BwCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9pbnNwZWN0b3IvYWdlbnRzL0luc3BlY3Rv
ckFnZW50LmNwcApAQCAtNTcsNyArNTcsNyBAQCB2b2lkIEluc3BlY3RvckFnZW50OjpkaWRDcmVh
dGVGcm9udGVuZEFuZEJhY2tlbmQoRnJvbnRlbmRDaGFubmVsKiBmcm9udGVuZENoYW5uZQogdm9p
ZCBJbnNwZWN0b3JBZ2VudDo6d2lsbERlc3Ryb3lGcm9udGVuZEFuZEJhY2tlbmQoRGlzY29ubmVj
dFJlYXNvbikKIHsKICAgICBtX2Zyb250ZW5kRGlzcGF0Y2hlciA9IG51bGxwdHI7Ci0gICAgbV9i
YWNrZW5kRGlzcGF0Y2hlci5jbGVhcigpOworICAgIG1fYmFja2VuZERpc3BhdGNoZXIgPSBudWxs
cHRyOwogCiAgICAgbV9wZW5kaW5nRXZhbHVhdGVUZXN0Q29tbWFuZHMuY2xlYXIoKTsKIApkaWZm
IC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL2luc3BlY3Rvci9hZ2VudHMvSW5zcGVjdG9y
Q29uc29sZUFnZW50LmNwcCBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9pbnNwZWN0b3IvYWdlbnRz
L0luc3BlY3RvckNvbnNvbGVBZ2VudC5jcHAKaW5kZXggODE0YTBjMTFjZjYwOGVjNjk4OTljZWJm
MWJhYzE0ZWFiYzE5YmFkNi4uOWZmZDA0ODRmMjgwNjJjMjliY2FkYjRiOWI5ZDM3MGIxZjcxMTM3
ZiAxMDA2NDQKLS0tIGEvU291cmNlL0phdmFTY3JpcHRDb3JlL2luc3BlY3Rvci9hZ2VudHMvSW5z
cGVjdG9yQ29uc29sZUFnZW50LmNwcAorKysgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvaW5zcGVj
dG9yL2FnZW50cy9JbnNwZWN0b3JDb25zb2xlQWdlbnQuY3BwCkBAIC02NCw3ICs2NCw3IEBAIHZv
aWQgSW5zcGVjdG9yQ29uc29sZUFnZW50OjpkaWRDcmVhdGVGcm9udGVuZEFuZEJhY2tlbmQoRnJv
bnRlbmRDaGFubmVsKiBmcm9udGVuCiB2b2lkIEluc3BlY3RvckNvbnNvbGVBZ2VudDo6d2lsbERl
c3Ryb3lGcm9udGVuZEFuZEJhY2tlbmQoRGlzY29ubmVjdFJlYXNvbikKIHsKICAgICBtX2Zyb250
ZW5kRGlzcGF0Y2hlciA9IG51bGxwdHI7Ci0gICAgbV9iYWNrZW5kRGlzcGF0Y2hlci5jbGVhcigp
OworICAgIG1fYmFja2VuZERpc3BhdGNoZXIgPSBudWxscHRyOwogCiAgICAgU3RyaW5nIGVycm9y
U3RyaW5nOwogICAgIGRpc2FibGUoZXJyb3JTdHJpbmcpOwpkaWZmIC0tZ2l0IGEvU291cmNlL0ph
dmFTY3JpcHRDb3JlL2luc3BlY3Rvci9hZ2VudHMvSW5zcGVjdG9yRGVidWdnZXJBZ2VudC5jcHAg
Yi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvaW5zcGVjdG9yL2FnZW50cy9JbnNwZWN0b3JEZWJ1Z2dl
ckFnZW50LmNwcAppbmRleCBhNzVlMGIyYjZlYzdlOGM5ZGRkNjc3ZmY5NDg1YzllOGZlOWRiZTRk
Li5mMGYwYjQ4ZGQ0ZDQ3Y2RlM2EwZjJhODgyMmM0NjMyNWRlNWFhYjRmIDEwMDY0NAotLS0gYS9T
b3VyY2UvSmF2YVNjcmlwdENvcmUvaW5zcGVjdG9yL2FnZW50cy9JbnNwZWN0b3JEZWJ1Z2dlckFn
ZW50LmNwcAorKysgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvaW5zcGVjdG9yL2FnZW50cy9JbnNw
ZWN0b3JEZWJ1Z2dlckFnZW50LmNwcApAQCAtNzcsNyArNzcsNyBAQCB2b2lkIEluc3BlY3RvckRl
YnVnZ2VyQWdlbnQ6OmRpZENyZWF0ZUZyb250ZW5kQW5kQmFja2VuZChGcm9udGVuZENoYW5uZWwq
IGZyb250ZQogdm9pZCBJbnNwZWN0b3JEZWJ1Z2dlckFnZW50Ojp3aWxsRGVzdHJveUZyb250ZW5k
QW5kQmFja2VuZChEaXNjb25uZWN0UmVhc29uIHJlYXNvbikKIHsKICAgICBtX2Zyb250ZW5kRGlz
cGF0Y2hlciA9IG51bGxwdHI7Ci0gICAgbV9iYWNrZW5kRGlzcGF0Y2hlci5jbGVhcigpOworICAg
IG1fYmFja2VuZERpc3BhdGNoZXIgPSBudWxscHRyOwogCiAgICAgYm9vbCBza2lwUmVjb21waWxl
ID0gcmVhc29uID09IERpc2Nvbm5lY3RSZWFzb246Okluc3BlY3RlZFRhcmdldERlc3Ryb3llZDsK
ICAgICBkaXNhYmxlKHNraXBSZWNvbXBpbGUpOwpkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3Jp
cHRDb3JlL2luc3BlY3Rvci9hZ2VudHMvSlNHbG9iYWxPYmplY3RSdW50aW1lQWdlbnQuY3BwIGIv
U291cmNlL0phdmFTY3JpcHRDb3JlL2luc3BlY3Rvci9hZ2VudHMvSlNHbG9iYWxPYmplY3RSdW50
aW1lQWdlbnQuY3BwCmluZGV4IDY1OGM2N2FiMTVmODk1MjA1YzU1YmI1Mjg5YzBiOWQyZTRlNDBj
NjAuLjQ2MDQ5ZjU2Yzc1YWQ3Mzk4ZjNjOWQwNzU4NDZjZTdhMWMxMjgyNjggMTAwNjQ0Ci0tLSBh
L1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9pbnNwZWN0b3IvYWdlbnRzL0pTR2xvYmFsT2JqZWN0UnVu
dGltZUFnZW50LmNwcAorKysgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvaW5zcGVjdG9yL2FnZW50
cy9KU0dsb2JhbE9iamVjdFJ1bnRpbWVBZ2VudC5jcHAKQEAgLTQ5LDcgKzQ5LDcgQEAgdm9pZCBK
U0dsb2JhbE9iamVjdFJ1bnRpbWVBZ2VudDo6ZGlkQ3JlYXRlRnJvbnRlbmRBbmRCYWNrZW5kKEZy
b250ZW5kQ2hhbm5lbCogZnIKIHZvaWQgSlNHbG9iYWxPYmplY3RSdW50aW1lQWdlbnQ6OndpbGxE
ZXN0cm95RnJvbnRlbmRBbmRCYWNrZW5kKERpc2Nvbm5lY3RSZWFzb24gcmVhc29uKQogewogICAg
IG1fZnJvbnRlbmREaXNwYXRjaGVyID0gbnVsbHB0cjsKLSAgICBtX2JhY2tlbmREaXNwYXRjaGVy
LmNsZWFyKCk7CisgICAgbV9iYWNrZW5kRGlzcGF0Y2hlciA9IG51bGxwdHI7CiAKICAgICBJbnNw
ZWN0b3JSdW50aW1lQWdlbnQ6OndpbGxEZXN0cm95RnJvbnRlbmRBbmRCYWNrZW5kKHJlYXNvbik7
CiB9CmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcGFyc2VyL1BhcnNlci5jcHAg
Yi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcGFyc2VyL1BhcnNlci5jcHAKaW5kZXggZGMwZjU1ZjEz
MmZhMGUxOGY4NDdhODU0YzhjZmY1NmIwYTYwOTQ5Zi4uYTNjNWUzMTIxOGIwMzkyZWU3NjE2ZmVk
NjFkOWQzOTUyYjRhNDhlNiAxMDA2NDQKLS0tIGEvU291cmNlL0phdmFTY3JpcHRDb3JlL3BhcnNl
ci9QYXJzZXIuY3BwCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9wYXJzZXIvUGFyc2VyLmNw
cApAQCAtNDkxLDcgKzQ5MSw3IEBAIHRlbXBsYXRlIDxjbGFzcyBUcmVlQnVpbGRlcj4gVHJlZUV4
cHJlc3Npb24gUGFyc2VyPExleGVyVHlwZT46OnBhcnNlVmFyRGVjbGFyYXRpCiAgICAgSlNUb2tl
biBsYXN0SWRlbnRUb2tlbjsgCiAgICAgZG8gewogICAgICAgICBsYXN0SWRlbnQgPSAwOwotICAg
ICAgICBsYXN0UGF0dGVybiA9IDA7CisgICAgICAgIGxhc3RQYXR0ZXJuID0gVHJlZURlc3RydWN0
dXJpbmdQYXR0ZXJuKDApOwogICAgICAgICBKU1Rva2VuTG9jYXRpb24gbG9jYXRpb24odG9rZW5M
b2NhdGlvbigpKTsKICAgICAgICAgbmV4dCgpOwogICAgICAgICBUcmVlRXhwcmVzc2lvbiBub2Rl
ID0gMDsKQEAgLTg5NCw3ICs4OTQsNyBAQCB0ZW1wbGF0ZSA8Y2xhc3MgVHJlZUJ1aWxkZXI+IFRy
ZWVTdGF0ZW1lbnQgUGFyc2VyPExleGVyVHlwZT46OnBhcnNlRm9yU3RhdGVtZW50KAogICAgICAg
ICAgICAgZGVjbHNFbmQgPSBsYXN0VG9rZW5FbmRQb3NpdGlvbigpOwogICAgICAgICAgICAgaWYg
KHBhdHRlcm4gJiYgKG1hdGNoKElOVE9LRU4pIHx8IChtYXRjaChJREVOVCkgJiYgKm1fdG9rZW4u
bV9kYXRhLmlkZW50ID09IG1fdm0tPnByb3BlcnR5TmFtZXMtPm9mKSkpCiAgICAgICAgICAgICAg
ICAgZ290byBlbnVtZXJhdGlvbkxvb3A7Ci0gICAgICAgICAgICBwYXR0ZXJuID0gMDsKKyAgICAg
ICAgICAgIHBhdHRlcm4gPSBUcmVlRGVzdHJ1Y3R1cmluZ1BhdHRlcm4oMCk7CiAgICAgICAgICAg
ICByZXN0b3JlU2F2ZVBvaW50KHNhdmVQb2ludCk7CiAgICAgICAgIH0KICAgICAgICAgbV9hbGxv
d3NJbiA9IGZhbHNlOwpkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUv
RXhlY3V0YWJsZS5jcHAgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9FeGVjdXRhYmxl
LmNwcAppbmRleCA2Y2IwOWIwMWIzODI1Yjg0NTZlOTVjMWFiYzlkZmYyYjgwNmU0MTE4Li41NTI0
MGZkOTFmN2JjNzg0MmYxM2U1OTI4MWQxMGQyMWQ4NmM0ZjUwIDEwMDY0NAotLS0gYS9Tb3VyY2Uv
SmF2YVNjcmlwdENvcmUvcnVudGltZS9FeGVjdXRhYmxlLmNwcAorKysgYi9Tb3VyY2UvSmF2YVNj
cmlwdENvcmUvcnVudGltZS9FeGVjdXRhYmxlLmNwcApAQCAtNTIsOCArNTIsOCBAQCB2b2lkIEV4
ZWN1dGFibGVCYXNlOjpkZXN0cm95KEpTQ2VsbCogY2VsbCkKIHZvaWQgRXhlY3V0YWJsZUJhc2U6
OmNsZWFyQ29kZSgpCiB7CiAjaWYgRU5BQkxFKEpJVCkKLSAgICBtX2ppdENvZGVGb3JDYWxsLmNs
ZWFyKCk7Ci0gICAgbV9qaXRDb2RlRm9yQ29uc3RydWN0LmNsZWFyKCk7CisgICAgbV9qaXRDb2Rl
Rm9yQ2FsbCA9IG51bGxwdHI7CisgICAgbV9qaXRDb2RlRm9yQ29uc3RydWN0ID0gbnVsbHB0cjsK
ICAgICBtX2ppdENvZGVGb3JDYWxsV2l0aEFyaXR5Q2hlY2sgPSBNYWNyb0Fzc2VtYmxlckNvZGVQ
dHIoKTsKICAgICBtX2ppdENvZGVGb3JDb25zdHJ1Y3RXaXRoQXJpdHlDaGVjayA9IE1hY3JvQXNz
ZW1ibGVyQ29kZVB0cigpOwogICAgIG1faml0Q29kZUZvckNhbGxXaXRoQXJpdHlDaGVja0FuZFBy
ZXNlcnZlUmVncyA9IE1hY3JvQXNzZW1ibGVyQ29kZVB0cigpOwpAQCAtNDY0LDcgKzQ2NCw3IEBA
IHZvaWQgRXZhbEV4ZWN1dGFibGU6OnVubGlua0NhbGxzKCkKIAogdm9pZCBFdmFsRXhlY3V0YWJs
ZTo6Y2xlYXJDb2RlKCkKIHsKLSAgICBtX2V2YWxDb2RlQmxvY2suY2xlYXIoKTsKKyAgICBtX2V2
YWxDb2RlQmxvY2sgPSBudWxscHRyOwogICAgIG1fdW5saW5rZWRFdmFsQ29kZUJsb2NrLmNsZWFy
KCk7CiAgICAgQmFzZTo6Y2xlYXJDb2RlKCk7CiB9CkBAIC01NDMsNyArNTQzLDcgQEAgdm9pZCBQ
cm9ncmFtRXhlY3V0YWJsZTo6dmlzaXRDaGlsZHJlbihKU0NlbGwqIGNlbGwsIFNsb3RWaXNpdG9y
JiB2aXNpdG9yKQogCiB2b2lkIFByb2dyYW1FeGVjdXRhYmxlOjpjbGVhckNvZGUoKQogewotICAg
IG1fcHJvZ3JhbUNvZGVCbG9jay5jbGVhcigpOworICAgIG1fcHJvZ3JhbUNvZGVCbG9jayA9IG51
bGxwdHI7CiAgICAgbV91bmxpbmtlZFByb2dyYW1Db2RlQmxvY2suY2xlYXIoKTsKICAgICBCYXNl
OjpjbGVhckNvZGUoKTsKIH0KQEAgLTU4Nyw4ICs1ODcsOCBAQCB2b2lkIEZ1bmN0aW9uRXhlY3V0
YWJsZTo6Y2xlYXJVbmxpbmtlZENvZGVGb3JSZWNvbXBpbGF0aW9uKCkKIAogdm9pZCBGdW5jdGlv
bkV4ZWN1dGFibGU6OmNsZWFyQ29kZSgpCiB7Ci0gICAgbV9jb2RlQmxvY2tGb3JDYWxsLmNsZWFy
KCk7Ci0gICAgbV9jb2RlQmxvY2tGb3JDb25zdHJ1Y3QuY2xlYXIoKTsKKyAgICBtX2NvZGVCbG9j
a0ZvckNhbGwgPSBudWxscHRyOworICAgIG1fY29kZUJsb2NrRm9yQ29uc3RydWN0ID0gbnVsbHB0
cjsKICAgICBCYXNlOjpjbGVhckNvZGUoKTsKIH0KIApkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFT
Y3JpcHRDb3JlL3J1bnRpbWUvSlNMb2NrLmNwcCBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50
aW1lL0pTTG9jay5jcHAKaW5kZXggMmU3OTk0Y2YyN2MzYzU0ZDVkNTdjMzcwMDBkZDE4MGVjNGRm
OWYwNS4uYzJlZTBhNTUzMmMwYjUxOTM2ODcxMDlkOWEzMmVjNGExNDQ1ZDhiZCAxMDA2NDQKLS0t
IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvSlNMb2NrLmNwcAorKysgYi9Tb3VyY2Uv
SmF2YVNjcmlwdENvcmUvcnVudGltZS9KU0xvY2suY3BwCkBAIC03Myw3ICs3Myw3IEBAIHZvaWQg
SlNMb2NrSG9sZGVyOjppbml0KCkKIEpTTG9ja0hvbGRlcjo6fkpTTG9ja0hvbGRlcigpCiB7CiAg
ICAgUmVmUHRyPEpTTG9jaz4gYXBpTG9jaygmbV92bS0+YXBpTG9jaygpKTsKLSAgICBtX3ZtLmNs
ZWFyKCk7CisgICAgbV92bSA9IG51bGxwdHI7CiAgICAgYXBpTG9jay0+dW5sb2NrKCk7CiB9CiAK
ZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL1N0cnVjdHVyZS5jcHAg
Yi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9TdHJ1Y3R1cmUuY3BwCmluZGV4IGY3NzFi
NjBiY2I2NWRlOGU1NGM2YTYxMWM3ZDI2Zjg2NTk4YjA3NGQuLjM5ODU4MDVjZjU1YzgzYzFkYTY1
NGExMzVjNDUxMGM3NTAxNzBiMTkgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9y
dW50aW1lL1N0cnVjdHVyZS5jcHAKKysrIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUv
U3RydWN0dXJlLmNwcApAQCAtNzM3LDcgKzczNyw3IEBAIHZvaWQgU3RydWN0dXJlOjpwaW4oKQog
ICAgIEFTU0VSVChwcm9wZXJ0eVRhYmxlKCkpOwogICAgIHNldElzUGlubmVkUHJvcGVydHlUYWJs
ZSh0cnVlKTsKICAgICBjbGVhclByZXZpb3VzSUQoKTsKLSAgICBtX25hbWVJblByZXZpb3VzLmNs
ZWFyKCk7CisgICAgbV9uYW1lSW5QcmV2aW91cyA9IG51bGxwdHI7CiB9CiAKIHZvaWQgU3RydWN0
dXJlOjphbGxvY2F0ZVJhcmVEYXRhKFZNJiB2bSkKZGlmZiAtLWdpdCBhL1NvdXJjZS9XVEYvd3Rm
L1JlZlB0ci5oIGIvU291cmNlL1dURi93dGYvUmVmUHRyLmgKaW5kZXggMjkxMWYwZGE5MDYyYjc2
Y2NkMmFkMTU0NDBiOWNkMjU4NWQ1ODg4Ni4uN2M4MzA1ZTM4ZWQ3MmI0NDc3ZGE1ZjJlMjI3NTA3
NjRhNzgzZTI2NCAxMDA2NDQKLS0tIGEvU291cmNlL1dURi93dGYvUmVmUHRyLmgKKysrIGIvU291
cmNlL1dURi93dGYvUmVmUHRyLmgKQEAgLTYwLDcgKzYwLDYgQEAgcHVibGljOgogCiAgICAgVCog
Z2V0KCkgY29uc3QgeyByZXR1cm4gbV9wdHI7IH0KICAgICAKLSAgICB2b2lkIGNsZWFyKCk7CiAg
ICAgUGFzc1JlZlB0cjxUPiByZWxlYXNlKCkgeyBQYXNzUmVmUHRyPFQ+IHRtcCA9IGFkb3B0UmVm
KG1fcHRyKTsgbV9wdHIgPSBudWxscHRyOyByZXR1cm4gdG1wOyB9CiAgICAgUmVmPFQ+IHJlbGVh
c2VOb25OdWxsKCkgeyBBU1NFUlQobV9wdHIpOyBSZWY8VD4gdG1wKGFkb3B0UmVmKCptX3B0cikp
OyBtX3B0ciA9IG51bGxwdHI7IHJldHVybiB0bXA7IH0KIApAQCAtNzcsNiArNzYsNyBAQCBwdWJs
aWM6CiAgICAgCiAgICAgUmVmUHRyJiBvcGVyYXRvcj0oY29uc3QgUmVmUHRyJik7CiAgICAgUmVm
UHRyJiBvcGVyYXRvcj0oVCopOworICAgIFJlZlB0ciYgb3BlcmF0b3I9KHN0ZDo6bnVsbHB0cl90
KTsKICAgICBSZWZQdHImIG9wZXJhdG9yPShjb25zdCBQYXNzUmVmUHRyPFQ+Jik7CiAgICAgdGVt
cGxhdGU8dHlwZW5hbWUgVT4gUmVmUHRyJiBvcGVyYXRvcj0oY29uc3QgUmVmUHRyPFU+Jik7CiAg
ICAgdGVtcGxhdGU8dHlwZW5hbWUgVT4gUmVmUHRyJiBvcGVyYXRvcj0oY29uc3QgUGFzc1JlZlB0
cjxVPiYpOwpAQCAtMTA5LDExICsxMDksNiBAQCB0ZW1wbGF0ZTx0eXBlbmFtZSBUPiB0ZW1wbGF0
ZTx0eXBlbmFtZSBVPiBpbmxpbmUgUmVmUHRyPFQ+OjpSZWZQdHIoUmVmPFU+JiYgcmVmZQogewog
fQogCi10ZW1wbGF0ZTx0eXBlbmFtZSBUPiBpbmxpbmUgdm9pZCBSZWZQdHI8VD46OmNsZWFyKCkK
LXsKLSAgICBkZXJlZklmTm90TnVsbChzdGQ6OmV4Y2hhbmdlKG1fcHRyLCBudWxscHRyKSk7Ci19
Ci0KIHRlbXBsYXRlPHR5cGVuYW1lIFQ+CiBpbmxpbmUgVCogUmVmUHRyPFQ+OjpsZWFrUmVmKCkK
IHsKQEAgLTE0MSw2ICsxMzYsMTIgQEAgdGVtcGxhdGU8dHlwZW5hbWUgVD4gaW5saW5lIFJlZlB0
cjxUPiYgUmVmUHRyPFQ+OjpvcGVyYXRvcj0oVCogb3B0cikKICAgICByZXR1cm4gKnRoaXM7CiB9
CiAKK3RlbXBsYXRlPHR5cGVuYW1lIFQ+IGlubGluZSBSZWZQdHI8VD4mIFJlZlB0cjxUPjo6b3Bl
cmF0b3I9KHN0ZDo6bnVsbHB0cl90KQoreworICAgIGRlcmVmSWZOb3ROdWxsKHN0ZDo6ZXhjaGFu
Z2UobV9wdHIsIG51bGxwdHIpKTsKKyAgICByZXR1cm4gKnRoaXM7Cit9CisKIHRlbXBsYXRlPHR5
cGVuYW1lIFQ+IGlubGluZSBSZWZQdHI8VD4mIFJlZlB0cjxUPjo6b3BlcmF0b3I9KGNvbnN0IFBh
c3NSZWZQdHI8VD4mIG8pCiB7CiAgICAgUmVmUHRyIHB0ciA9IG87CmRpZmYgLS1naXQgYS9Tb3Vy
Y2UvV1RGL3d0Zi90ZXh0L1N0cmluZ0J1aWxkZXIuaCBiL1NvdXJjZS9XVEYvd3RmL3RleHQvU3Ry
aW5nQnVpbGRlci5oCmluZGV4IGJlNWMxMTcyY2NjYjk5OGE0MTA1ODAzNDVhZjQwYzI5Y2IxMzQ5
OGUuLjFkYzRhYzYyMjk0MGMwYTUzNDJkNzZjOTIyYTM2ZGQ2MTgyYTkxZjggMTAwNjQ0Ci0tLSBh
L1NvdXJjZS9XVEYvd3RmL3RleHQvU3RyaW5nQnVpbGRlci5oCisrKyBiL1NvdXJjZS9XVEYvd3Rm
L3RleHQvU3RyaW5nQnVpbGRlci5oCkBAIC0yNjQsNyArMjY0LDcgQEAgcHVibGljOgogICAgIHsK
ICAgICAgICAgbV9sZW5ndGggPSAwOwogICAgICAgICBtX3N0cmluZyA9IFN0cmluZygpOwotICAg
ICAgICBtX2J1ZmZlciA9IDA7CisgICAgICAgIG1fYnVmZmVyID0gbnVsbHB0cjsKICAgICAgICAg
bV9idWZmZXJDaGFyYWN0ZXJzOCA9IDA7CiAgICAgICAgIG1faXM4Qml0ID0gdHJ1ZTsKICAgICB9
CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL2luZGV4ZWRkYi9JREJDdXJzb3Iu
Y3BwIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9pbmRleGVkZGIvSURCQ3Vyc29yLmNwcAppbmRl
eCBhMjBlMWUxYWNlMjQ5OTQ4NGRmNzQ1OTE5OGExMTFlMTg0MjkwZTZkLi5jNDAxMWRjMjc1NTVm
NDhmY2UyZDZkMmUxNjQwOGYxZDdhNzYxMzZmIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9N
b2R1bGVzL2luZGV4ZWRkYi9JREJDdXJzb3IuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL01vZHVs
ZXMvaW5kZXhlZGRiL0lEQkN1cnNvci5jcHAKQEAgLTI1OSw3ICsyNTksNyBAQCB2b2lkIElEQkN1
cnNvcjo6Y2xvc2UoKQogICAgIG1fdHJhbnNhY3Rpb25Ob3RpZmllci5jdXJzb3JGaW5pc2hlZCgp
OwogICAgIGlmIChtX3JlcXVlc3QpIHsKICAgICAgICAgbV9yZXF1ZXN0LT5maW5pc2hDdXJzb3Io
KTsKLSAgICAgICAgbV9yZXF1ZXN0LmNsZWFyKCk7CisgICAgICAgIG1fcmVxdWVzdCA9IG51bGxw
dHI7CiAgICAgfQogfQogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL2luZGV4
ZWRkYi9JREJEYXRhYmFzZUJhY2tlbmQuY3BwIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9pbmRl
eGVkZGIvSURCRGF0YWJhc2VCYWNrZW5kLmNwcAppbmRleCBmYzIzMTAyZGRhYTlhMzc3MDk0MGVm
NGViMDRjMTM4MDM4MzRkYzNmLi4wOWU0ZTI3YjhmOTA5ZTE3ODA5YjQ5ZDAzNGUzYjhjNGU0NWVm
NTM3IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL2luZGV4ZWRkYi9JREJEYXRh
YmFzZUJhY2tlbmQuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvaW5kZXhlZGRiL0lE
QkRhdGFiYXNlQmFja2VuZC5jcHAKQEAgLTMzMyw3ICszMzMsNyBAQCB2b2lkIElEQkRhdGFiYXNl
QmFja2VuZDo6dHJhbnNhY3Rpb25GaW5pc2hlZChJREJUcmFuc2FjdGlvbkJhY2tlbmQqIHJhd1Ry
YW5zYWN0aQogICAgIG1fdHJhbnNhY3Rpb25zLnJlbW92ZSh0cmFuc2FjdGlvbi0+aWQoKSk7CiAg
ICAgaWYgKHRyYW5zYWN0aW9uLT5tb2RlKCkgPT0gSW5kZXhlZERCOjpUcmFuc2FjdGlvbk1vZGU6
OlZlcnNpb25DaGFuZ2UpIHsKICAgICAgICAgQVNTRVJUKHRyYW5zYWN0aW9uLmdldCgpID09IG1f
cnVubmluZ1ZlcnNpb25DaGFuZ2VUcmFuc2FjdGlvbi5nZXQoKSk7Ci0gICAgICAgIG1fcnVubmlu
Z1ZlcnNpb25DaGFuZ2VUcmFuc2FjdGlvbi5jbGVhcigpOworICAgICAgICBtX3J1bm5pbmdWZXJz
aW9uQ2hhbmdlVHJhbnNhY3Rpb24gPSBudWxscHRyOwogICAgIH0KIH0KIApkaWZmIC0tZ2l0IGEv
U291cmNlL1dlYkNvcmUvTW9kdWxlcy9pbmRleGVkZGIvSURCT2JqZWN0U3RvcmUuY3BwIGIvU291
cmNlL1dlYkNvcmUvTW9kdWxlcy9pbmRleGVkZGIvSURCT2JqZWN0U3RvcmUuY3BwCmluZGV4IGU4
YmY5ZGRlZmU0OTdiNTYzZDk4ZjA4NTBlYWU4ZDQ4N2ViMjI1YjkuLmE2ZDI4MTQyZjYyMjIyMmY5
NDNmOGQ0ZTEzNWI0MjQ4MzEyMDMwMTkgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL01vZHVs
ZXMvaW5kZXhlZGRiL0lEQk9iamVjdFN0b3JlLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1
bGVzL2luZGV4ZWRkYi9JREJPYmplY3RTdG9yZS5jcHAKQEAgLTMzNyw3ICszMzcsNyBAQCBwcml2
YXRlOgogICAgICAgICAgICAgLy8gTm93IHRoYXQgd2UgYXJlIGRvbmUgaW5kZXhpbmcsIHRlbGwg
dGhlIGJhY2tlbmQgdG8gZ28KICAgICAgICAgICAgIC8vIGJhY2sgdG8gcHJvY2Vzc2luZyB0YXNr
cyBvZiB0eXBlIE5vcm1hbFRhc2suCiAgICAgICAgICAgICBtX2RhdGFiYXNlQmFja2VuZC0+c2V0
SW5kZXhlc1JlYWR5KG1fdHJhbnNhY3Rpb25JZCwgbV9vYmplY3RTdG9yZUlkLCBpbmRleElkcyk7
Ci0gICAgICAgICAgICBtX2RhdGFiYXNlQmFja2VuZC5jbGVhcigpOworICAgICAgICAgICAgbV9k
YXRhYmFzZUJhY2tlbmQgPSBudWxscHRyOwogICAgICAgICB9CiAKICAgICB9CmRpZmYgLS1naXQg
YS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL2luZGV4ZWRkYi9JREJPcGVuREJSZXF1ZXN0LmNwcCBi
L1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvaW5kZXhlZGRiL0lEQk9wZW5EQlJlcXVlc3QuY3BwCmlu
ZGV4IDYzNzgwN2VhZDk0Y2I3OGM5YzlkOTM1OGRlZDY3MGZmZjIwMTc3ZGMuLjcxNTc5YjA1OTU1
NjI0ZTAzZjJhZTE3MjdmYzUwNDY3OTI1MDQ3YjQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3Jl
L01vZHVsZXMvaW5kZXhlZGRiL0lEQk9wZW5EQlJlcXVlc3QuY3BwCisrKyBiL1NvdXJjZS9XZWJD
b3JlL01vZHVsZXMvaW5kZXhlZGRiL0lEQk9wZW5EQlJlcXVlc3QuY3BwCkBAIC0xNDIsNyArMTQy
LDcgQEAgYm9vbCBJREJPcGVuREJSZXF1ZXN0OjpkaXNwYXRjaEV2ZW50KFBhc3NSZWZQdHI8RXZl
bnQ+IGV2ZW50KQogICAgIC8vIElmIHRoZSBjb25uZWN0aW9uIGNsb3NlZCBiZXR3ZWVuIG9uVXBn
cmFkZU5lZWRlZCBhbmQgdGhlIGRlbGl2ZXJ5IG9mIHRoZSAic3VjY2VzcyIgZXZlbnQsCiAgICAg
Ly8gYW4gImVycm9yIiBldmVudCBzaG91bGQgYmUgZmlyZWQgaW5zdGVhZC4KICAgICBpZiAoZXZl
bnQtPnR5cGUoKSA9PSBldmVudE5hbWVzKCkuc3VjY2Vzc0V2ZW50ICYmIG1fcmVzdWx0LT50eXBl
KCkgPT0gSURCQW55OjpJREJEYXRhYmFzZVR5cGUgJiYgbV9yZXN1bHQtPmlkYkRhdGFiYXNlKCkt
PmlzQ2xvc2VQZW5kaW5nKCkpIHsKLSAgICAgICAgbV9yZXN1bHQuY2xlYXIoKTsKKyAgICAgICAg
bV9yZXN1bHQgPSBudWxscHRyOwogICAgICAgICBvbkVycm9yKElEQkRhdGFiYXNlRXJyb3I6OmNy
ZWF0ZShJREJEYXRhYmFzZUV4Y2VwdGlvbjo6QWJvcnRFcnJvciwgIlRoZSBjb25uZWN0aW9uIHdh
cyBjbG9zZWQuIikpOwogICAgICAgICByZXR1cm4gZmFsc2U7CiAgICAgfQpkaWZmIC0tZ2l0IGEv
U291cmNlL1dlYkNvcmUvTW9kdWxlcy9pbmRleGVkZGIvSURCUmVxdWVzdC5jcHAgYi9Tb3VyY2Uv
V2ViQ29yZS9Nb2R1bGVzL2luZGV4ZWRkYi9JREJSZXF1ZXN0LmNwcAppbmRleCA5ZTUwMWI0Zjg2
MjZiMDQwMTZkZWNkOTU4NjE2YTgxNTNmYTY1YWVmLi44NjRkZTUzNTc1MzExYjA5ZTI4Nzg0YTNk
YTY1YzgxZmY4YTg0NWFmIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL2luZGV4
ZWRkYi9JREJSZXF1ZXN0LmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL2luZGV4ZWRk
Yi9JREJSZXF1ZXN0LmNwcApAQCAtMTcwLDkgKzE3MCw5IEBAIHZvaWQgSURCUmVxdWVzdDo6YWJv
cnQoKQogICAgIG1fZW5xdWV1ZWRFdmVudHMuY2xlYXIoKTsKIAogICAgIG1fZXJyb3JDb2RlID0g
MDsKLSAgICBtX2Vycm9yLmNsZWFyKCk7CisgICAgbV9lcnJvciA9IG51bGxwdHI7CiAgICAgbV9l
cnJvck1lc3NhZ2UgPSBTdHJpbmcoKTsKLSAgICBtX3Jlc3VsdC5jbGVhcigpOworICAgIG1fcmVz
dWx0ID0gbnVsbHB0cjsKICAgICBvbkVycm9yKElEQkRhdGFiYXNlRXJyb3I6OmNyZWF0ZShJREJE
YXRhYmFzZUV4Y2VwdGlvbjo6QWJvcnRFcnJvcikpOwogICAgIG1fcmVxdWVzdEFib3J0ZWQgPSB0
cnVlOwogfQpAQCAtMTk0LDEwICsxOTQsMTAgQEAgdm9pZCBJREJSZXF1ZXN0OjpzZXRQZW5kaW5n
Q3Vyc29yKFBhc3NSZWZQdHI8SURCQ3Vyc29yPiBjdXJzb3IpCiAgICAgQVNTRVJUKGN1cnNvciA9
PSBnZXRSZXN1bHRDdXJzb3IoKSk7CiAKICAgICBtX3BlbmRpbmdDdXJzb3IgPSBjdXJzb3I7Ci0g
ICAgbV9yZXN1bHQuY2xlYXIoKTsKKyAgICBtX3Jlc3VsdCA9IG51bGxwdHI7CiAgICAgbV9yZWFk
eVN0YXRlID0gUEVORElORzsKICAgICBtX2Vycm9yQ29kZSA9IDA7Ci0gICAgbV9lcnJvci5jbGVh
cigpOworICAgIG1fZXJyb3IgPSBudWxscHRyOwogICAgIG1fZXJyb3JNZXNzYWdlID0gU3RyaW5n
KCk7CiAgICAgbV90cmFuc2FjdGlvbi0+cmVnaXN0ZXJSZXF1ZXN0KHRoaXMpOwogfQpAQCAtMjU2
LDcgKzI1Niw3IEBAIHZvaWQgSURCUmVxdWVzdDo6b25FcnJvcihQYXNzUmVmUHRyPElEQkRhdGFi
YXNlRXJyb3I+IGVycm9yKQogICAgIG1fZXJyb3JDb2RlID0gZXJyb3ItPmNvZGUoKTsKICAgICBt
X2Vycm9yTWVzc2FnZSA9IGVycm9yLT5tZXNzYWdlKCk7CiAgICAgbV9lcnJvciA9IERPTUVycm9y
OjpjcmVhdGUoSURCRGF0YWJhc2VFeGNlcHRpb246OmdldEVycm9yTmFtZShlcnJvci0+aWRiQ29k
ZSgpKSk7Ci0gICAgbV9wZW5kaW5nQ3Vyc29yLmNsZWFyKCk7CisgICAgbV9wZW5kaW5nQ3Vyc29y
ID0gbnVsbHB0cjsKICAgICBlbnF1ZXVlRXZlbnQoRXZlbnQ6OmNyZWF0ZShldmVudE5hbWVzKCku
ZXJyb3JFdmVudCwgdHJ1ZSwgdHJ1ZSkpOwogfQogCkBAIC00MDQsNyArNDA0LDcgQEAgdm9pZCBJ
REJSZXF1ZXN0OjpvblN1Y2Nlc3NJbnRlcm5hbChjb25zdCBEZXByZWNhdGVkOjpTY3JpcHRWYWx1
ZSYgdmFsdWUpCiAgICAgbV9yZXN1bHQgPSBJREJBbnk6OmNyZWF0ZSh2YWx1ZSk7CiAgICAgaWYg
KG1fcGVuZGluZ0N1cnNvcikgewogICAgICAgICBtX3BlbmRpbmdDdXJzb3ItPmNsb3NlKCk7Ci0g
ICAgICAgIG1fcGVuZGluZ0N1cnNvci5jbGVhcigpOworICAgICAgICBtX3BlbmRpbmdDdXJzb3Ig
PSBudWxscHRyOwogICAgIH0KICAgICBlbnF1ZXVlRXZlbnQoY3JlYXRlU3VjY2Vzc0V2ZW50KCkp
OwogfQpAQCAtNTUzLDcgKzU1Myw3IEBAIHZvaWQgSURCUmVxdWVzdDo6dHJhbnNhY3Rpb25EaWRG
aW5pc2hBbmREaXNwYXRjaCgpCiAgICAgQVNTRVJUKG1fdHJhbnNhY3Rpb24tPmlzVmVyc2lvbkNo
YW5nZSgpKTsKICAgICBBU1NFUlQobV9yZWFkeVN0YXRlID09IERPTkUpOwogICAgIEFTU0VSVChz
Y3JpcHRFeGVjdXRpb25Db250ZXh0KCkpOwotICAgIG1fdHJhbnNhY3Rpb24uY2xlYXIoKTsKKyAg
ICBtX3RyYW5zYWN0aW9uID0gbnVsbHB0cjsKICAgICBtX3JlYWR5U3RhdGUgPSBQRU5ESU5HOwog
fQogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL2luZGV4ZWRkYi9JREJUcmFu
c2FjdGlvbi5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL2luZGV4ZWRkYi9JREJUcmFuc2Fj
dGlvbi5jcHAKaW5kZXggOTk0OGJjNzJiYjI1MmVhZDgwNGVkMDM3MTUzZDI0MTRlYThiMWVhNy4u
NmVjMjlmYTY3ODRjNzhlN2IwNGJhMzA0ZTI0ODYzMDczOTJlZDg5YSAxMDA2NDQKLS0tIGEvU291
cmNlL1dlYkNvcmUvTW9kdWxlcy9pbmRleGVkZGIvSURCVHJhbnNhY3Rpb24uY3BwCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL01vZHVsZXMvaW5kZXhlZGRiL0lEQlRyYW5zYWN0aW9uLmNwcApAQCAtMjQw
LDcgKzI0MCw3IEBAIHZvaWQgSURCVHJhbnNhY3Rpb246Ok9wZW5DdXJzb3JOb3RpZmllcjo6Y3Vy
c29yRmluaXNoZWQoKQogICAgIGlmIChtX2N1cnNvcikgewogICAgICAgICBtX3RyYW5zYWN0aW9u
LT51bnJlZ2lzdGVyT3BlbkN1cnNvcihtX2N1cnNvcik7CiAgICAgICAgIG1fY3Vyc29yID0gbnVs
bHB0cjsKLSAgICAgICAgbV90cmFuc2FjdGlvbi5jbGVhcigpOworICAgICAgICBtX3RyYW5zYWN0
aW9uID0gbnVsbHB0cjsKICAgICB9CiB9CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL01v
ZHVsZXMvbWVkaWFzb3VyY2UvTWVkaWFTb3VyY2UuY3BwIGIvU291cmNlL1dlYkNvcmUvTW9kdWxl
cy9tZWRpYXNvdXJjZS9NZWRpYVNvdXJjZS5jcHAKaW5kZXggOTExNzBhYTRlODJhMDE3NWZkMmE0
MDFkYWU0NTQ5NzllNzBiYTJiNC4uYzQwZDZlMzAzNjllMzk5MTNjN2ZhOTc3MmMxZWQ2Y2YzMjQw
NGUxOSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9tZWRpYXNvdXJjZS9NZWRp
YVNvdXJjZS5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9tZWRpYXNvdXJjZS9NZWRp
YVNvdXJjZS5jcHAKQEAgLTM5NCw3ICszOTQsNyBAQCB2b2lkIE1lZGlhU291cmNlOjpzZXRSZWFk
eVN0YXRlKGNvbnN0IEF0b21pY1N0cmluZyYgc3RhdGUpCiAgICAgTE9HKE1lZGlhU291cmNlLCAi
TWVkaWFTb3VyY2U6OnNldFJlYWR5U3RhdGUoJXApIDogJXMgLT4gJXMiLCB0aGlzLCBvbGRTdGF0
ZS5zdHJpbmcoKS5hc2NpaSgpLmRhdGEoKSwgc3RhdGUuc3RyaW5nKCkuYXNjaWkoKS5kYXRhKCkp
OwogCiAgICAgaWYgKHN0YXRlID09IGNsb3NlZEtleXdvcmQoKSkgewotICAgICAgICBtX3ByaXZh
dGUuY2xlYXIoKTsKKyAgICAgICAgbV9wcml2YXRlID0gbnVsbHB0cjsKICAgICAgICAgbV9tZWRp
YUVsZW1lbnQgPSBudWxscHRyOwogICAgICAgICBtX2R1cmF0aW9uID0gTWVkaWFUaW1lOjppbnZh
bGlkVGltZSgpOwogICAgIH0KQEAgLTgxMSw3ICs4MTEsNyBAQCB2b2lkIE1lZGlhU291cmNlOjpz
dG9wKCkKICAgICBtX2FzeW5jRXZlbnRRdWV1ZS5jbG9zZSgpOwogICAgIGlmICghaXNDbG9zZWQo
KSkKICAgICAgICAgc2V0UmVhZHlTdGF0ZShjbG9zZWRLZXl3b3JkKCkpOwotICAgIG1fcHJpdmF0
ZS5jbGVhcigpOworICAgIG1fcHJpdmF0ZSA9IG51bGxwdHI7CiB9CiAKIGJvb2wgTWVkaWFTb3Vy
Y2U6OmNhblN1c3BlbmRGb3JQYWdlQ2FjaGUoKSBjb25zdApkaWZmIC0tZ2l0IGEvU291cmNlL1dl
YkNvcmUvTW9kdWxlcy9tZWRpYXN0cmVhbS9SVENTZXNzaW9uRGVzY3JpcHRpb25SZXF1ZXN0SW1w
bC5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL21lZGlhc3RyZWFtL1JUQ1Nlc3Npb25EZXNj
cmlwdGlvblJlcXVlc3RJbXBsLmNwcAppbmRleCBkNzEwZGMxOGY1ZTIzY2I2ZTEzMDhkZjI4ZjY1
NmE2ODliY2IwNmQ3Li4zMDEzMzRkY2Q1MTA4NWQzMjVmNTI0ZjhlZDk5NGFlY2I4ZTY4NDQzIDEw
MDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL21lZGlhc3RyZWFtL1JUQ1Nlc3Npb25E
ZXNjcmlwdGlvblJlcXVlc3RJbXBsLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL21l
ZGlhc3RyZWFtL1JUQ1Nlc3Npb25EZXNjcmlwdGlvblJlcXVlc3RJbXBsLmNwcApAQCAtOTcsOCAr
OTcsOCBAQCBib29sIFJUQ1Nlc3Npb25EZXNjcmlwdGlvblJlcXVlc3RJbXBsOjpjYW5TdXNwZW5k
Rm9yUGFnZUNhY2hlKCkgY29uc3QKIAogdm9pZCBSVENTZXNzaW9uRGVzY3JpcHRpb25SZXF1ZXN0
SW1wbDo6Y2xlYXIoKQogewotICAgIG1fc3VjY2Vzc0NhbGxiYWNrLmNsZWFyKCk7Ci0gICAgbV9l
cnJvckNhbGxiYWNrLmNsZWFyKCk7CisgICAgbV9zdWNjZXNzQ2FsbGJhY2sgPSBudWxscHRyOwor
ICAgIG1fZXJyb3JDYWxsYmFjayA9IG51bGxwdHI7CiB9CiAKIH0gLy8gbmFtZXNwYWNlIFdlYkNv
cmUKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvbWVkaWFzdHJlYW0vUlRDU3Rh
dHNSZXF1ZXN0SW1wbC5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL21lZGlhc3RyZWFtL1JU
Q1N0YXRzUmVxdWVzdEltcGwuY3BwCmluZGV4IGRlYjE5YTlhZjkwZGNmYzQ1NjM3Mzg2OGUxNWY4
ODM1ZGZiZTRjOGYuLmQwMDBiMTFkZjE3ZmVmMTAxMGUzODk5Yjc3MDIxY2U3OTIwMWY3ZTkgMTAw
NjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvbWVkaWFzdHJlYW0vUlRDU3RhdHNSZXF1
ZXN0SW1wbC5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9tZWRpYXN0cmVhbS9SVENT
dGF0c1JlcXVlc3RJbXBsLmNwcApAQCAtMTA0LDcgKzEwNCw3IEBAIGJvb2wgUlRDU3RhdHNSZXF1
ZXN0SW1wbDo6Y2FuU3VzcGVuZEZvclBhZ2VDYWNoZSgpIGNvbnN0CiAKIHZvaWQgUlRDU3RhdHNS
ZXF1ZXN0SW1wbDo6Y2xlYXIoKQogewotICAgIG1fc3VjY2Vzc0NhbGxiYWNrLmNsZWFyKCk7Cisg
ICAgbV9zdWNjZXNzQ2FsbGJhY2sgPSBudWxscHRyOwogfQogCiAKZGlmZiAtLWdpdCBhL1NvdXJj
ZS9XZWJDb3JlL01vZHVsZXMvbWVkaWFzdHJlYW0vUlRDVm9pZFJlcXVlc3RJbXBsLmNwcCBiL1Nv
dXJjZS9XZWJDb3JlL01vZHVsZXMvbWVkaWFzdHJlYW0vUlRDVm9pZFJlcXVlc3RJbXBsLmNwcApp
bmRleCA4MmY4YTEyMmRkMzA5ZTNhZDBlNDM5NGVjOWNjMzVlZTAwOWRhZDM3Li43MDZmOTA3NThm
ZGMxNWRjOTdlZmExYTVkMzExMmM0ZTJhYjQ5ZGE2IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29y
ZS9Nb2R1bGVzL21lZGlhc3RyZWFtL1JUQ1ZvaWRSZXF1ZXN0SW1wbC5jcHAKKysrIGIvU291cmNl
L1dlYkNvcmUvTW9kdWxlcy9tZWRpYXN0cmVhbS9SVENWb2lkUmVxdWVzdEltcGwuY3BwCkBAIC05
NCw4ICs5NCw4IEBAIGJvb2wgUlRDVm9pZFJlcXVlc3RJbXBsOjpjYW5TdXNwZW5kRm9yUGFnZUNh
Y2hlKCkgY29uc3QKIAogdm9pZCBSVENWb2lkUmVxdWVzdEltcGw6OmNsZWFyKCkKIHsKLSAgICBt
X3N1Y2Nlc3NDYWxsYmFjay5jbGVhcigpOwotICAgIG1fZXJyb3JDYWxsYmFjay5jbGVhcigpOwor
ICAgIG1fc3VjY2Vzc0NhbGxiYWNrID0gbnVsbHB0cjsKKyAgICBtX2Vycm9yQ2FsbGJhY2sgPSBu
dWxscHRyOwogfQogCiB9IC8vIG5hbWVzcGFjZSBXZWJDb3JlCmRpZmYgLS1naXQgYS9Tb3VyY2Uv
V2ViQ29yZS9Nb2R1bGVzL3dlYmF1ZGlvL0F1ZGlvQ29udGV4dC5jcHAgYi9Tb3VyY2UvV2ViQ29y
ZS9Nb2R1bGVzL3dlYmF1ZGlvL0F1ZGlvQ29udGV4dC5jcHAKaW5kZXggNWEzZGVhMGE1MDcxZDhk
YWZiY2RmZTA1NWE4ZDA1Y2Q4MDM0MGRhZi4uZmFhOTk2Yjc0Y2Y4YjBmYjJiMDQzMjJkYjE3YmE2
Njg2MzYwYzliOSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy93ZWJhdWRpby9B
dWRpb0NvbnRleHQuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvd2ViYXVkaW8vQXVk
aW9Db250ZXh0LmNwcApAQCAtMjMxLDcgKzIzMSw3IEBAIHZvaWQgQXVkaW9Db250ZXh0OjpjbGVh
cigpCiB7CiAgICAgLy8gV2UgaGF2ZSB0byByZWxlYXNlIG91ciByZWZlcmVuY2UgdG8gdGhlIGRl
c3RpbmF0aW9uIG5vZGUgYmVmb3JlIHRoZSBjb250ZXh0IHdpbGwgZXZlciBiZSBkZWxldGVkIHNp
bmNlIHRoZSBkZXN0aW5hdGlvbiBub2RlIGhvbGRzIGEgcmVmZXJlbmNlIHRvIHRoZSBjb250ZXh0
LgogICAgIGlmIChtX2Rlc3RpbmF0aW9uTm9kZSkKLSAgICAgICAgbV9kZXN0aW5hdGlvbk5vZGUu
Y2xlYXIoKTsKKyAgICAgICAgbV9kZXN0aW5hdGlvbk5vZGUgPSBudWxscHRyOwogCiAgICAgLy8g
QXVkaW8gdGhyZWFkIGlzIGRlYWQuIE5vYm9keSB3aWxsIHNjaGVkdWxlIG5vZGUgZGVsZXRpb24g
YWN0aW9uLiBMZXQncyBkbyBpdCBvdXJzZWx2ZXMuCiAgICAgZG8gewpkaWZmIC0tZ2l0IGEvU291
cmNlL1dlYkNvcmUvTW9kdWxlcy93ZWJkYXRhYmFzZS9TUUxUcmFuc2FjdGlvbkJhY2tlbmQuY3Bw
IGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy93ZWJkYXRhYmFzZS9TUUxUcmFuc2FjdGlvbkJhY2tl
bmQuY3BwCmluZGV4IGRhMjU0YjY1NGYyMzVlNWExODJlNGQ3Zjg0YzM5YTE1NWU0ZTgwZDYuLmQz
MTEzODBlNDQ4NTgxYWQ5ZTQzN2QyNDVlZWEyOWY2YTlmOWMwOTYgMTAwNjQ0Ci0tLSBhL1NvdXJj
ZS9XZWJDb3JlL01vZHVsZXMvd2ViZGF0YWJhc2UvU1FMVHJhbnNhY3Rpb25CYWNrZW5kLmNwcAor
KysgYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL3dlYmRhdGFiYXNlL1NRTFRyYW5zYWN0aW9uQmFj
a2VuZC5jcHAKQEAgLTg0NSw3ICs4NDUsNyBAQCB2b2lkIFNRTFRyYW5zYWN0aW9uQmFja2VuZDo6
cmVsZWFzZU9yaWdpbkxvY2tJZk5lZWRlZCgpCiB7CiAgICAgaWYgKG1fb3JpZ2luTG9jaykgewog
ICAgICAgICBtX29yaWdpbkxvY2stPnVubG9jaygpOwotICAgICAgICBtX29yaWdpbkxvY2suY2xl
YXIoKTsKKyAgICAgICAgbV9vcmlnaW5Mb2NrID0gbnVsbHB0cjsKICAgICB9CiB9CiAKZGlmZiAt
LWdpdCBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvd2Vic29ja2V0cy9Xb3JrZXJUaHJlYWRhYmxl
V2ViU29ja2V0Q2hhbm5lbC5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL3dlYnNvY2tldHMv
V29ya2VyVGhyZWFkYWJsZVdlYlNvY2tldENoYW5uZWwuY3BwCmluZGV4IGJjYmRhZjk0YzcwMTE3
YzNkMTQzOWE4NDNlYTdjYjAzMjhjMmVlODUuLjM0YjY0ZDc3YTBmNThkOGM1N2ZiYzA4MjYyYTky
MzM1NWE4ZWQxZDYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvd2Vic29ja2V0
cy9Xb3JrZXJUaHJlYWRhYmxlV2ViU29ja2V0Q2hhbm5lbC5jcHAKKysrIGIvU291cmNlL1dlYkNv
cmUvTW9kdWxlcy93ZWJzb2NrZXRzL1dvcmtlclRocmVhZGFibGVXZWJTb2NrZXRDaGFubmVsLmNw
cApAQCAtMTI2LDcgKzEyNiw3IEBAIHZvaWQgV29ya2VyVGhyZWFkYWJsZVdlYlNvY2tldENoYW5u
ZWw6OmZhaWwoY29uc3QgU3RyaW5nJiByZWFzb24pCiB2b2lkIFdvcmtlclRocmVhZGFibGVXZWJT
b2NrZXRDaGFubmVsOjpkaXNjb25uZWN0KCkKIHsKICAgICBtX2JyaWRnZS0+ZGlzY29ubmVjdCgp
OwotICAgIG1fYnJpZGdlLmNsZWFyKCk7CisgICAgbV9icmlkZ2UgPSBudWxscHRyOwogfQogCiB2
b2lkIFdvcmtlclRocmVhZGFibGVXZWJTb2NrZXRDaGFubmVsOjpzdXNwZW5kKCkKZGlmZiAtLWdp
dCBhL1NvdXJjZS9XZWJDb3JlL2FjY2Vzc2liaWxpdHkvYXRrL0FYT2JqZWN0Q2FjaGVBdGsuY3Bw
IGIvU291cmNlL1dlYkNvcmUvYWNjZXNzaWJpbGl0eS9hdGsvQVhPYmplY3RDYWNoZUF0ay5jcHAK
aW5kZXggMmYzNWY3NDA5NzhlNzgzNTc1MjE0YzQ5NWU0M2ViNDU1YzkyNzRhNC4uYmMzODQxMTgy
YWZiMDY3MTA4YTE2NzJlODFhMzI4YTRkZTI0ZDkyZCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNv
cmUvYWNjZXNzaWJpbGl0eS9hdGsvQVhPYmplY3RDYWNoZUF0ay5jcHAKKysrIGIvU291cmNlL1dl
YkNvcmUvYWNjZXNzaWJpbGl0eS9hdGsvQVhPYmplY3RDYWNoZUF0ay5jcHAKQEAgLTE1Myw3ICsx
NTMsNyBAQCBzdGF0aWMgdm9pZCBub3RpZnlDaGlsZHJlblNlbGVjdGlvbkNoYW5nZShBY2Nlc3Np
YmlsaXR5T2JqZWN0KiBvYmplY3QpCiAKICAgICBBY2Nlc3NpYmlsaXR5T2JqZWN0KiBsaXN0T2Jq
ZWN0ID0gZ2V0TGlzdE9iamVjdChvYmplY3QpOwogICAgIGlmICghbGlzdE9iamVjdCkgewotICAg
ICAgICBvbGRMaXN0T2JqZWN0LmdldCgpID0gMDsKKyAgICAgICAgb2xkTGlzdE9iamVjdC5nZXQo
KSA9IG51bGxwdHI7CiAgICAgICAgIHJldHVybjsKICAgICB9CiAKQEAgLTE2Niw3ICsxNjYsNyBA
QCBzdGF0aWMgdm9pZCBub3RpZnlDaGlsZHJlblNlbGVjdGlvbkNoYW5nZShBY2Nlc3NpYmlsaXR5
T2JqZWN0KiBvYmplY3QpCiAgICAgLy8gZnVydGhlciBjb21wYXJpc29ucyBtYWtlIHNlbnNlLiBP
dGhlcndpc2UsIGp1c3QgcmVzZXQKICAgICAvLyBvbGRGb2N1c2VkT2JqZWN0IHNvIGl0IHdvbid0
IGJlIHRha2VuIGludG8gYWNjb3VudC4KICAgICBpZiAob2xkTGlzdE9iamVjdC5nZXQoKSAhPSBs
aXN0T2JqZWN0KQotICAgICAgICBvbGRGb2N1c2VkT2JqZWN0LmdldCgpID0gMDsKKyAgICAgICAg
b2xkRm9jdXNlZE9iamVjdC5nZXQoKSA9IG51bGxwdHI7CiAKICAgICBBdGtPYmplY3QqIGF4SXRl
bSA9IGl0ZW0gPyBpdGVtLT53cmFwcGVyKCkgOiBudWxscHRyOwogICAgIEF0a09iamVjdCogYXhP
bGRGb2N1c2VkT2JqZWN0ID0gb2xkRm9jdXNlZE9iamVjdC5nZXQoKSA/IG9sZEZvY3VzZWRPYmpl
Y3QuZ2V0KCktPndyYXBwZXIoKSA6IG51bGxwdHI7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29y
ZS9iaW5kaW5ncy9qcy9TY3JpcHRDb250cm9sbGVyLmNwcCBiL1NvdXJjZS9XZWJDb3JlL2JpbmRp
bmdzL2pzL1NjcmlwdENvbnRyb2xsZXIuY3BwCmluZGV4IDNhYmRkMmI5ZGI1YTY5YWFjNDE4ZWEx
OWQyNWE0NGY1YmY1NzA4ZDMuLmM1MTk5Y2ZkZjc5YmRlNDNjZTRlNmZmMTBkNzA1NTEwZDY1NDc1
N2QgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL2pzL1NjcmlwdENvbnRyb2xs
ZXIuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL2pzL1NjcmlwdENvbnRyb2xsZXIu
Y3BwCkBAIC0xMDIsNyArMTAyLDcgQEAgU2NyaXB0Q29udHJvbGxlcjo6flNjcmlwdENvbnRyb2xs
ZXIoKQogICAgIGlmIChtX2NhY2hlYWJsZUJpbmRpbmdSb290T2JqZWN0KSB7CiAgICAgICAgIEpT
TG9ja0hvbGRlciBsb2NrKEpTRE9NV2luZG93QmFzZTo6Y29tbW9uVk0oKSk7CiAgICAgICAgIG1f
Y2FjaGVhYmxlQmluZGluZ1Jvb3RPYmplY3QtPmludmFsaWRhdGUoKTsKLSAgICAgICAgbV9jYWNo
ZWFibGVCaW5kaW5nUm9vdE9iamVjdCA9IDA7CisgICAgICAgIG1fY2FjaGVhYmxlQmluZGluZ1Jv
b3RPYmplY3QgPSBudWxscHRyOwogICAgIH0KIAogICAgIC8vIEl0J3MgbGlrZWx5IHRoYXQgZGVz
dHJveWluZyBtX3dpbmRvd1NoZWxscyB3aWxsIGNyZWF0ZSBhIGxvdCBvZiBnYXJiYWdlLgpAQCAt
NDg5LDcgKzQ4OSw3IEBAIHZvaWQgU2NyaXB0Q29udHJvbGxlcjo6Y2xlYXJTY3JpcHRPYmplY3Rz
KCkKIAogICAgIGlmIChtX2JpbmRpbmdSb290T2JqZWN0KSB7CiAgICAgICAgIG1fYmluZGluZ1Jv
b3RPYmplY3QtPmludmFsaWRhdGUoKTsKLSAgICAgICAgbV9iaW5kaW5nUm9vdE9iamVjdCA9IDA7
CisgICAgICAgIG1fYmluZGluZ1Jvb3RPYmplY3QgPSBudWxscHRyOwogICAgIH0KIAogI2lmIEVO
QUJMRShORVRTQ0FQRV9QTFVHSU5fQVBJKQpAQCAtNDk4LDcgKzQ5OCw3IEBAIHZvaWQgU2NyaXB0
Q29udHJvbGxlcjo6Y2xlYXJTY3JpcHRPYmplY3RzKCkKICAgICAgICAgLy8gc2NyaXB0IG9iamVj
dCBwcm9wZXJseS4KICAgICAgICAgLy8gVGhpcyBzaG91bGRuJ3QgY2F1c2UgYW55IHByb2JsZW1z
IGZvciBwbHVnaW5zIHNpbmNlIHRoZXkgc2hvdWxkIGhhdmUgYWxyZWFkeSBiZWVuIHN0b3BwZWQg
YW5kIGRlc3Ryb3llZCBhdCB0aGlzIHBvaW50LgogICAgICAgICBfTlBOX0RlYWxsb2NhdGVPYmpl
Y3QobV93aW5kb3dTY3JpcHROUE9iamVjdCk7Ci0gICAgICAgIG1fd2luZG93U2NyaXB0TlBPYmpl
Y3QgPSAwOworICAgICAgICBtX3dpbmRvd1NjcmlwdE5QT2JqZWN0ID0gbnVsbHB0cjsKICAgICB9
CiAjZW5kaWYKIH0KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL2pzL1dlYkNv
cmVKU0NsaWVudERhdGEuaCBiL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL2pzL1dlYkNvcmVKU0Ns
aWVudERhdGEuaAppbmRleCA2NTQ1MTMzNWQzZDhhOTIxZjU4MTYyMmMyOWU0OTAwMGI5YTYzNjZj
Li40MzAyZDY4ZTVjOGM2ZDc4N2Q0NzI2MjQxNGJjZWI5OGQyMmUwMTllIDEwMDY0NAotLS0gYS9T
b3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9qcy9XZWJDb3JlSlNDbGllbnREYXRhLmgKKysrIGIvU291
cmNlL1dlYkNvcmUvYmluZGluZ3MvanMvV2ViQ29yZUpTQ2xpZW50RGF0YS5oCkBAIC00NCw3ICs0
NCw3IEBAIHB1YmxpYzoKICAgICAgICAgQVNTRVJUKG1fd29ybGRTZXQuY29udGFpbnMobV9ub3Jt
YWxXb3JsZC5nZXQoKSkpOwogICAgICAgICBBU1NFUlQobV93b3JsZFNldC5zaXplKCkgPT0gMSk7
CiAgICAgICAgIEFTU0VSVChtX25vcm1hbFdvcmxkLT5oYXNPbmVSZWYoKSk7Ci0gICAgICAgIG1f
bm9ybWFsV29ybGQuY2xlYXIoKTsKKyAgICAgICAgbV9ub3JtYWxXb3JsZCA9IG51bGxwdHI7CiAg
ICAgICAgIEFTU0VSVChtX3dvcmxkU2V0LmlzRW1wdHkoKSk7CiAgICAgfQogCmRpZmYgLS1naXQg
YS9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9qcy9Xb3JrZXJTY3JpcHRDb250cm9sbGVyLmNwcCBi
L1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL2pzL1dvcmtlclNjcmlwdENvbnRyb2xsZXIuY3BwCmlu
ZGV4IDkwZTBmZjUxMDg4YWE2NTQ5M2RlZWNlNWM5NGY5YTBkYzAwN2NlY2EuLjI4YzllZjBmMjcw
M2YzMjNjNjFjOGYyMjQ1ODljYzY5ZDZkZDZiZTYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3Jl
L2JpbmRpbmdzL2pzL1dvcmtlclNjcmlwdENvbnRyb2xsZXIuY3BwCisrKyBiL1NvdXJjZS9XZWJD
b3JlL2JpbmRpbmdzL2pzL1dvcmtlclNjcmlwdENvbnRyb2xsZXIuY3BwCkBAIC02Miw3ICs2Miw3
IEBAIFdvcmtlclNjcmlwdENvbnRyb2xsZXI6On5Xb3JrZXJTY3JpcHRDb250cm9sbGVyKCkKIHsK
ICAgICBKU0xvY2tIb2xkZXIgbG9jayh2bSgpKTsKICAgICBtX3dvcmtlckdsb2JhbFNjb3BlV3Jh
cHBlci5jbGVhcigpOwotICAgIG1fdm0uY2xlYXIoKTsKKyAgICBtX3ZtID0gbnVsbHB0cjsKIH0K
IAogdm9pZCBXb3JrZXJTY3JpcHRDb250cm9sbGVyOjppbml0U2NyaXB0KCkKZGlmZiAtLWdpdCBh
L1NvdXJjZS9XZWJDb3JlL2JyaWRnZS9ydW50aW1lX29iamVjdC5jcHAgYi9Tb3VyY2UvV2ViQ29y
ZS9icmlkZ2UvcnVudGltZV9vYmplY3QuY3BwCmluZGV4IDkxZjA3YmM1MzdjZjBmM2YyMDMwZjVl
ZDRmZWVjNjMyNzI0ZWIyMzguLjVkMGZhNGY4MTJhOWFkZmI4ZjI2YTk3NTFlODlkNmViZGRlZmZk
NjIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2JyaWRnZS9ydW50aW1lX29iamVjdC5jcHAK
KysrIGIvU291cmNlL1dlYkNvcmUvYnJpZGdlL3J1bnRpbWVfb2JqZWN0LmNwcApAQCAtNTksNyAr
NTksNyBAQCB2b2lkIFJ1bnRpbWVPYmplY3Q6OmludmFsaWRhdGUoKQogICAgIEFTU0VSVChtX2lu
c3RhbmNlKTsKICAgICBpZiAobV9pbnN0YW5jZSkKICAgICAgICAgbV9pbnN0YW5jZS0+d2lsbElu
dmFsaWRhdGVSdW50aW1lT2JqZWN0KCk7Ci0gICAgbV9pbnN0YW5jZSA9IDA7CisgICAgbV9pbnN0
YW5jZSA9IG51bGxwdHI7CiB9CiAKIEVuY29kZWRKU1ZhbHVlIFJ1bnRpbWVPYmplY3Q6OmZhbGxi
YWNrT2JqZWN0R2V0dGVyKEV4ZWNTdGF0ZSogZXhlYywgSlNPYmplY3QqIHNsb3RCYXNlLCBFbmNv
ZGVkSlNWYWx1ZSwgUHJvcGVydHlOYW1lIHByb3BlcnR5TmFtZSkKZGlmZiAtLWdpdCBhL1NvdXJj
ZS9XZWJDb3JlL2NvbnRlbnRleHRlbnNpb25zL0NvbnRlbnRFeHRlbnNpb25QYXJzZXIuY3BwIGIv
U291cmNlL1dlYkNvcmUvY29udGVudGV4dGVuc2lvbnMvQ29udGVudEV4dGVuc2lvblBhcnNlci5j
cHAKaW5kZXggMDIyNjUyYjJkNjlmODkxY2VhNzM5NGExMDlkN2ZiZGY1MDEyYWIyNS4uN2JmNTZl
N2Q0YjJlNjc4NmMzM2Y3ZTg5NTJmYzg1NDcyODhiNWYyYiAxMDA2NDQKLS0tIGEvU291cmNlL1dl
YkNvcmUvY29udGVudGV4dGVuc2lvbnMvQ29udGVudEV4dGVuc2lvblBhcnNlci5jcHAKKysrIGIv
U291cmNlL1dlYkNvcmUvY29udGVudGV4dGVuc2lvbnMvQ29udGVudEV4dGVuc2lvblBhcnNlci5j
cHAKQEAgLTI3Nyw3ICsyNzcsNyBAQCBzdGQ6OmVycm9yX2NvZGUgcGFyc2VSdWxlTGlzdChjb25z
dCBTdHJpbmcmIHJ1bGVzLCBWZWN0b3I8Q29udGVudEV4dGVuc2lvblJ1bGU+JgogICAgIEV4ZWNT
dGF0ZSogZXhlYyA9IGdsb2JhbE9iamVjdC0+Z2xvYmFsRXhlYygpOwogICAgIGF1dG8gZXJyb3Ig
PSBsb2FkRW5jb2RlZFJ1bGVzKCpleGVjLCBydWxlcywgcnVsZUxpc3QpOwogCi0gICAgdm0uY2xl
YXIoKTsKKyAgICB2bSA9IG51bGxwdHI7CiAKICAgICBpZiAoZXJyb3IpCiAgICAgICAgIHJldHVy
biBlcnJvcjsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2Nzcy9DU1NQYXJzZXIuY3BwIGIv
U291cmNlL1dlYkNvcmUvY3NzL0NTU1BhcnNlci5jcHAKaW5kZXggNWU4ZjA1Y2UwODE2ZTcxNjBl
NTNlNDQzYTBiMTNlNDRiODQyZjU2Ny4uOWNjMzA4YjRmODNhMDkwOWZkMzNhZDMxMDZmOGY5NmNk
NGU1MDdhMSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvY3NzL0NTU1BhcnNlci5jcHAKKysr
IGIvU291cmNlL1dlYkNvcmUvY3NzL0NTU1BhcnNlci5jcHAKQEAgLTQ1MDIsMTUgKzQ1MDIsMTUg
QEAgdm9pZCBDU1NQYXJzZXI6OnBhcnNlRmlsbFBvc2l0aW9uKENTU1BhcnNlclZhbHVlTGlzdCYg
dmFsdWVMaXN0LCBSZWZQdHI8Q1NTVmFsdWUKICAgICBpZiAodmFsdWUyKQogICAgICAgICB2YWx1
ZUxpc3QubmV4dCgpOwogICAgIGVsc2UgewotICAgICAgICB2YWx1ZTEuY2xlYXIoKTsKKyAgICAg
ICAgdmFsdWUxID0gbnVsbHB0cjsKICAgICAgICAgcmV0dXJuOwogICAgIH0KIAogICAgIFJlZlB0
cjxDU1NQcmltaXRpdmVWYWx1ZT4gcGFyc2VkVmFsdWUxID0gZG93bmNhc3Q8Q1NTUHJpbWl0aXZl
VmFsdWU+KHZhbHVlMS5nZXQoKSk7CiAgICAgUmVmUHRyPENTU1ByaW1pdGl2ZVZhbHVlPiBwYXJz
ZWRWYWx1ZTIgPSBkb3duY2FzdDxDU1NQcmltaXRpdmVWYWx1ZT4odmFsdWUyLmdldCgpKTsKIAot
ICAgIHZhbHVlMS5jbGVhcigpOwotICAgIHZhbHVlMi5jbGVhcigpOworICAgIHZhbHVlMSA9IG51
bGxwdHI7CisgICAgdmFsdWUyID0gbnVsbHB0cjsKIAogICAgIC8vIFBlciBDU1MzIHN5bnRheCwg
PHBvc2l0aW9uPiBjYW4ndCBoYXZlICdjZW50ZXInIGFzIGl0cyBzZWNvbmQga2V5d29yZCBhcyB3
ZSBoYXZlIG1vcmUgYXJndW1lbnRzIHRvIGZvbGxvdy4KICAgICBpZiAocGFyc2VkVmFsdWUyLT5n
ZXRWYWx1ZUlEKCkgPT0gQ1NTVmFsdWVDZW50ZXIpCkBAIC00NTQ5LDcgKzQ1NDksNyBAQCB2b2lk
IENTU1BhcnNlcjo6cGFyc2UyVmFsdWVzRmlsbFBvc2l0aW9uKENTU1BhcnNlclZhbHVlTGlzdCYg
dmFsdWVMaXN0LCBSZWZQdHI8QwogICAgICAgICAgICAgdmFsdWVMaXN0Lm5leHQoKTsKICAgICAg
ICAgZWxzZSB7CiAgICAgICAgICAgICBpZiAoIWluU2hvcnRoYW5kKCkpIHsKLSAgICAgICAgICAg
ICAgICB2YWx1ZTEuY2xlYXIoKTsKKyAgICAgICAgICAgICAgICB2YWx1ZTEgPSBudWxscHRyOwog
ICAgICAgICAgICAgICAgIHJldHVybjsKICAgICAgICAgICAgIH0KICAgICAgICAgfQpAQCAtNzU4
Nyw4ICs3NTg3LDggQEAgc3RydWN0IFNoYWRvd1BhcnNlQ29udGV4dCB7CiAgICAgICAgIH0KIAog
ICAgICAgICAvLyBOb3cgcmVzZXQgZm9yIHRoZSBuZXh0IHNoYWRvdyB2YWx1ZS4KLSAgICAgICAg
eCA9IDA7Ci0gICAgICAgIHkgPSAwOworICAgICAgICB4ID0gbnVsbHB0cjsKKyAgICAgICAgeSA9
IG51bGxwdHI7CiAgICAgICAgIGJsdXIgPSBudWxscHRyOwogICAgICAgICBzcHJlYWQgPSBudWxs
cHRyOwogICAgICAgICBzdHlsZSA9IG51bGxwdHI7CkBAIC0xMjE4NCw3ICsxMjE4NCw3IEBAIFBh
c3NSZWZQdHI8Q1NTUnVsZVNvdXJjZURhdGE+IENTU1BhcnNlcjo6cG9wUnVsZURhdGEoKQogICAg
ICAgICByZXR1cm4gbnVsbHB0cjsKIAogICAgIEFTU0VSVCghbV9jdXJyZW50UnVsZURhdGFTdGFj
ay0+aXNFbXB0eSgpKTsKLSAgICBtX2N1cnJlbnRSdWxlRGF0YS5jbGVhcigpOworICAgIG1fY3Vy
cmVudFJ1bGVEYXRhID0gbnVsbHB0cjsKICAgICBSZWZQdHI8Q1NTUnVsZVNvdXJjZURhdGE+IGRh
dGEgPSBtX2N1cnJlbnRSdWxlRGF0YVN0YWNrLT5sYXN0KCk7CiAgICAgbV9jdXJyZW50UnVsZURh
dGFTdGFjay0+cmVtb3ZlTGFzdCgpOwogICAgIHJldHVybiBkYXRhLnJlbGVhc2UoKTsKQEAgLTEy
NjA1LDcgKzEyNjA1LDcgQEAgdm9pZCBDU1NQYXJzZXI6Om1hcmtSdWxlQm9keVN0YXJ0KCkKIHsK
ICAgICBpZiAoIWlzRXh0cmFjdGluZ1NvdXJjZURhdGEoKSkKICAgICAgICAgcmV0dXJuOwotICAg
IG1fY3VycmVudFJ1bGVEYXRhLmNsZWFyKCk7CisgICAgbV9jdXJyZW50UnVsZURhdGEgPSBudWxs
cHRyOwogICAgIHVuc2lnbmVkIG9mZnNldCA9IHRva2VuU3RhcnRPZmZzZXQoKTsKICAgICBpZiAo
dG9rZW5TdGFydENoYXIoKSA9PSAneycpCiAgICAgICAgICsrb2Zmc2V0OyAvLyBTa2lwIHRoZSBy
dWxlIGJvZHkgb3BlbmluZyBicmFjZS4KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2Nzcy9D
U1NWYWx1ZVBvb2wuY3BwIGIvU291cmNlL1dlYkNvcmUvY3NzL0NTU1ZhbHVlUG9vbC5jcHAKaW5k
ZXggMWY0MTMxMTVhMzZkMGY0OTQzY2I1MzdhOTk0Njg5ZGRjODZmZDlkMS4uYWUzZTBmZDRhZWI2
MGQ2ZGM4ODZkYzkxYjliMDA0YzVmNWM0OTFkYSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUv
Y3NzL0NTU1ZhbHVlUG9vbC5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvY3NzL0NTU1ZhbHVlUG9v
bC5jcHAKQEAgLTE1MywxMiArMTUzLDEyIEBAIHZvaWQgQ1NTVmFsdWVQb29sOjpkcmFpbigpCiAg
ICAgbV9mb250RmFtaWx5VmFsdWVDYWNoZS5jbGVhcigpOwogCiAgICAgZm9yIChpbnQgaSA9IDA7
IGkgPCBudW1DU1NWYWx1ZUtleXdvcmRzOyArK2kpCi0gICAgICAgIG1faWRlbnRpZmllclZhbHVl
Q2FjaGVbaV0gPSAwOworICAgICAgICBtX2lkZW50aWZpZXJWYWx1ZUNhY2hlW2ldID0gbnVsbHB0
cjsKIAogICAgIGZvciAoaW50IGkgPSAwOyBpIDwgbWF4aW11bUNhY2hlYWJsZUludGVnZXJWYWx1
ZTsgKytpKSB7Ci0gICAgICAgIG1fcGl4ZWxWYWx1ZUNhY2hlW2ldID0gMDsKLSAgICAgICAgbV9w
ZXJjZW50VmFsdWVDYWNoZVtpXSA9IDA7Ci0gICAgICAgIG1fbnVtYmVyVmFsdWVDYWNoZVtpXSA9
IDA7CisgICAgICAgIG1fcGl4ZWxWYWx1ZUNhY2hlW2ldID0gbnVsbHB0cjsKKyAgICAgICAgbV9w
ZXJjZW50VmFsdWVDYWNoZVtpXSA9IG51bGxwdHI7CisgICAgICAgIG1fbnVtYmVyVmFsdWVDYWNo
ZVtpXSA9IG51bGxwdHI7CiAgICAgfQogfQogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9j
c3MvU3R5bGVQcm9wZXJ0aWVzLmNwcCBiL1NvdXJjZS9XZWJDb3JlL2Nzcy9TdHlsZVByb3BlcnRp
ZXMuY3BwCmluZGV4IGI5MDkwOGQzMWQ4ZTFkYmY2YTU5NGQwNDc3OTg5MmRkMmFhN2EwNWMuLmRl
ZGQwNzAwN2FlNWU5NWUzYTRlNDg4NDIxZTg4YTVhZWQzN2QzNjQgMTAwNjQ0Ci0tLSBhL1NvdXJj
ZS9XZWJDb3JlL2Nzcy9TdHlsZVByb3BlcnRpZXMuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2Nz
cy9TdHlsZVByb3BlcnRpZXMuY3BwCkBAIC0zOTcsOSArMzk3LDkgQEAgU3RyaW5nIFN0eWxlUHJv
cGVydGllczo6Z2V0TGF5ZXJlZFNob3J0aGFuZFZhbHVlKGNvbnN0IFN0eWxlUHJvcGVydHlTaG9y
dGhhbmQmIHMKICAgICAgICAgICAgICAgICAgICAgLy8gQ29sb3Igb25seSBiZWxvbmdzIGluIHRo
ZSBsYXN0IGxheWVyLgogICAgICAgICAgICAgICAgICAgICBpZiAoc2hvcnRoYW5kLnByb3BlcnRp
ZXMoKVtqXSA9PSBDU1NQcm9wZXJ0eUJhY2tncm91bmRDb2xvcikgewogICAgICAgICAgICAgICAg
ICAgICAgICAgaWYgKGkgIT0gbnVtTGF5ZXJzIC0gMSkKLSAgICAgICAgICAgICAgICAgICAgICAg
ICAgICB2YWx1ZSA9IDA7CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgdmFsdWUgPSBudWxs
cHRyOwogICAgICAgICAgICAgICAgICAgICB9IGVsc2UgaWYgKGkpIC8vIE90aGVyIHNpbmdsZXRv
bnMgb25seSBiZWxvbmcgaW4gdGhlIGZpcnN0IGxheWVyLgotICAgICAgICAgICAgICAgICAgICAg
ICAgdmFsdWUgPSAwOworICAgICAgICAgICAgICAgICAgICAgICAgdmFsdWUgPSBudWxscHRyOwog
ICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgIH0KIApkaWZmIC0tZ2l0IGEvU291cmNlL1dl
YkNvcmUvY3NzL1ZpZXdwb3J0U3R5bGVSZXNvbHZlci5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9jc3Mv
Vmlld3BvcnRTdHlsZVJlc29sdmVyLmNwcAppbmRleCBmODllZmYwMDg2M2FjODlkYjc3OGRiMzIz
ZmU3ODUwMTU2NmFkZjA5Li5kYmI2Y2M0ZGY0NDA0MTVhNGJjNDBlMGM5ZTBkYWE2YzEyYTU2OWJh
IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9jc3MvVmlld3BvcnRTdHlsZVJlc29sdmVyLmNw
cAorKysgYi9Tb3VyY2UvV2ViQ29yZS9jc3MvVmlld3BvcnRTdHlsZVJlc29sdmVyLmNwcApAQCAt
NzEsNyArNzEsNyBAQCB2b2lkIFZpZXdwb3J0U3R5bGVSZXNvbHZlcjo6YWRkVmlld3BvcnRSdWxl
KFN0eWxlUnVsZVZpZXdwb3J0KiB2aWV3cG9ydFJ1bGUpCiAKIHZvaWQgVmlld3BvcnRTdHlsZVJl
c29sdmVyOjpjbGVhckRvY3VtZW50KCkKIHsKLSAgICBtX2RvY3VtZW50ID0gMDsKKyAgICBtX2Rv
Y3VtZW50ID0gbnVsbHB0cjsKIH0KIAogdm9pZCBWaWV3cG9ydFN0eWxlUmVzb2x2ZXI6OnJlc29s
dmUoKQpAQCAtOTQsNyArOTQsNyBAQCB2b2lkIFZpZXdwb3J0U3R5bGVSZXNvbHZlcjo6cmVzb2x2
ZSgpCiAgICAgbV9kb2N1bWVudC0+c2V0Vmlld3BvcnRBcmd1bWVudHMoYXJndW1lbnRzKTsKICAg
ICBtX2RvY3VtZW50LT51cGRhdGVWaWV3cG9ydEFyZ3VtZW50cygpOwogCi0gICAgbV9wcm9wZXJ0
eVNldCA9IDA7CisgICAgbV9wcm9wZXJ0eVNldCA9IG51bGxwdHI7CiB9CiAKIGZsb2F0IFZpZXdw
b3J0U3R5bGVSZXNvbHZlcjo6Z2V0Vmlld3BvcnRBcmd1bWVudFZhbHVlKENTU1Byb3BlcnR5SUQg
aWQpIGNvbnN0CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9kb20vRG9jdW1lbnQuY3BwIGIv
U291cmNlL1dlYkNvcmUvZG9tL0RvY3VtZW50LmNwcAppbmRleCBlNTAyNjY5NjEyZDdjNGM1ODI4
MzRhNGMxYjE5YmIwMzg5NGVkYWY5Li5mNjQwYjdjZmJkZjE0MTg5YzFlOTg4ZjRlYmFkYjRkYzUy
OGFlMWJhIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9kb20vRG9jdW1lbnQuY3BwCisrKyBi
L1NvdXJjZS9XZWJDb3JlL2RvbS9Eb2N1bWVudC5jcHAKQEAgLTI0MjQsNyArMjQyNCw3IEBAIHZv
aWQgRG9jdW1lbnQ6OmRldGFjaFBhcnNlcigpCiAgICAgaWYgKCFtX3BhcnNlcikKICAgICAgICAg
cmV0dXJuOwogICAgIG1fcGFyc2VyLT5kZXRhY2goKTsKLSAgICBtX3BhcnNlci5jbGVhcigpOwor
ICAgIG1fcGFyc2VyID0gbnVsbHB0cjsKIH0KIAogdm9pZCBEb2N1bWVudDo6Y2FuY2VsUGFyc2lu
ZygpCkBAIC01ODgyLDcgKzU4ODIsNyBAQCB2b2lkIERvY3VtZW50OjpjbGVhclNjcmlwdGVkQW5p
bWF0aW9uQ29udHJvbGxlcigpCiAgICAgLy8gRklYTUU6IGNvbnNpZGVyIHVzaW5nIEFjdGl2ZURP
TU9iamVjdC4KICAgICBpZiAobV9zY3JpcHRlZEFuaW1hdGlvbkNvbnRyb2xsZXIpCiAgICAgICAg
IG1fc2NyaXB0ZWRBbmltYXRpb25Db250cm9sbGVyLT5jbGVhckRvY3VtZW50UG9pbnRlcigpOwot
ICAgIG1fc2NyaXB0ZWRBbmltYXRpb25Db250cm9sbGVyLmNsZWFyKCk7CisgICAgbV9zY3JpcHRl
ZEFuaW1hdGlvbkNvbnRyb2xsZXIgPSBudWxscHRyOwogfQogI2VuZGlmCiAgICAgCkBAIC02MzAw
LDcgKzYzMDAsNyBAQCB2b2lkIERvY3VtZW50Ojp1cGRhdGVIb3ZlckFjdGl2ZVN0YXRlKGNvbnN0
IEhpdFRlc3RSZXF1ZXN0JiByZXF1ZXN0LCBFbGVtZW50KiBpbgogICAgICAgICAgICAgY3Vyci0+
c2V0QWN0aXZlKGZhbHNlKTsKICAgICAgICAgICAgIG1fdXNlckFjdGlvbkVsZW1lbnRzLnNldElu
QWN0aXZlQ2hhaW4oY3VyciwgZmFsc2UpOwogICAgICAgICB9Ci0gICAgICAgIG1fYWN0aXZlRWxl
bWVudC5jbGVhcigpOworICAgICAgICBtX2FjdGl2ZUVsZW1lbnQgPSBudWxscHRyOwogICAgIH0g
ZWxzZSB7CiAgICAgICAgIEVsZW1lbnQqIG5ld0FjdGl2ZUVsZW1lbnQgPSBpbm5lckVsZW1lbnRJ
bkRvY3VtZW50OwogICAgICAgICBpZiAoIW9sZEFjdGl2ZUVsZW1lbnQgJiYgbmV3QWN0aXZlRWxl
bWVudCAmJiByZXF1ZXN0LmFjdGl2ZSgpICYmICFyZXF1ZXN0LnRvdWNoTW92ZSgpKSB7CmRpZmYg
LS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9kb20vRG9jdW1lbnRNYXJrZXIuaCBiL1NvdXJjZS9XZWJD
b3JlL2RvbS9Eb2N1bWVudE1hcmtlci5oCmluZGV4IDQ3OTQ5ZmU4MGJkZDliMTFlNjhkYWU2MjU2
ZWEyYjMzMDZmYmI0NjMuLmVjNTI0ODk0MGMxNjdlZDFjNmNhMDJiMzFkYzRlNDczNzlhNTU0MTkg
MTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2RvbS9Eb2N1bWVudE1hcmtlci5oCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL2RvbS9Eb2N1bWVudE1hcmtlci5oCkBAIC0xMzEsNyArMTMxLDcgQEAgcHVi
bGljOgogICAgIERvY3VtZW50TWFya2VyRGV0YWlscyogZGV0YWlscygpIGNvbnN0OwogCiAgICAg
dm9pZCBzZXRBY3RpdmVNYXRjaChib29sKTsKLSAgICB2b2lkIGNsZWFyRGV0YWlscygpIHsgbV9k
ZXRhaWxzLmNsZWFyKCk7IH0KKyAgICB2b2lkIGNsZWFyRGV0YWlscygpIHsgbV9kZXRhaWxzID0g
bnVsbHB0cjsgfQogCiAgICAgLy8gT2Zmc2V0IG1vZGlmaWNhdGlvbnMgYXJlIGRvbmUgYnkgRG9j
dW1lbnRNYXJrZXJDb250cm9sbGVyLgogICAgIC8vIE90aGVyIGNsYXNzZXMgc2hvdWxkIG5vdCBj
YWxsIGZvbGxvd2luZyBzZXR0ZXJzLgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvZG9tL0Rv
Y3VtZW50U3R5bGVTaGVldENvbGxlY3Rpb24uY3BwIGIvU291cmNlL1dlYkNvcmUvZG9tL0RvY3Vt
ZW50U3R5bGVTaGVldENvbGxlY3Rpb24uY3BwCmluZGV4IDFjYmJlODUxNTUyNWUwYTE1MzJjMjI4
MzZmMGU3YjNhYTNiZWRlYmEuLjMyMmFjODRiZDMxYjZlYzJkMDMyZDE5YmZjMmFjYmYzOTMzZmI0
YTQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2RvbS9Eb2N1bWVudFN0eWxlU2hlZXRDb2xs
ZWN0aW9uLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9kb20vRG9jdW1lbnRTdHlsZVNoZWV0Q29s
bGVjdGlvbi5jcHAKQEAgLTEwNCw3ICsxMDQsNyBAQCBDU1NTdHlsZVNoZWV0KiBEb2N1bWVudFN0
eWxlU2hlZXRDb2xsZWN0aW9uOjpwYWdlVXNlclNoZWV0KCkKIHZvaWQgRG9jdW1lbnRTdHlsZVNo
ZWV0Q29sbGVjdGlvbjo6Y2xlYXJQYWdlVXNlclNoZWV0KCkKIHsKICAgICBpZiAobV9wYWdlVXNl
clNoZWV0KSB7Ci0gICAgICAgIG1fcGFnZVVzZXJTaGVldCA9IDA7CisgICAgICAgIG1fcGFnZVVz
ZXJTaGVldCA9IG51bGxwdHI7CiAgICAgICAgIG1fZG9jdW1lbnQuc3R5bGVSZXNvbHZlckNoYW5n
ZWQoRGVmZXJSZWNhbGNTdHlsZSk7CiAgICAgfQogfQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNv
cmUvZG9tL0VsZW1lbnQuY3BwIGIvU291cmNlL1dlYkNvcmUvZG9tL0VsZW1lbnQuY3BwCmluZGV4
IGJlODg0ZWI1NzFhNDAyZmJiODdiMWVkYWZjMmQ1YjQzMDI0ZjgzOTguLjZjOGM5ZTE3MGJjOWVi
NjFiYzU3YjAyMDAwOTk5MGZiMzI4YjMyOTQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2Rv
bS9FbGVtZW50LmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9kb20vRWxlbWVudC5jcHAKQEAgLTMy
MDcsNyArMzIwNyw3IEBAIHZvaWQgRWxlbWVudDo6Y2xvbmVBdHRyaWJ1dGVzRnJvbUVsZW1lbnQo
Y29uc3QgRWxlbWVudCYgb3RoZXIpCiAKICAgICBvdGhlci5zeW5jaHJvbml6ZUFsbEF0dHJpYnV0
ZXMoKTsKICAgICBpZiAoIW90aGVyLm1fZWxlbWVudERhdGEpIHsKLSAgICAgICAgbV9lbGVtZW50
RGF0YS5jbGVhcigpOworICAgICAgICBtX2VsZW1lbnREYXRhID0gbnVsbHB0cjsKICAgICAgICAg
cmV0dXJuOwogICAgIH0KIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvZG9tL011dGF0aW9u
T2JzZXJ2ZXJSZWdpc3RyYXRpb24uY3BwIGIvU291cmNlL1dlYkNvcmUvZG9tL011dGF0aW9uT2Jz
ZXJ2ZXJSZWdpc3RyYXRpb24uY3BwCmluZGV4IDQ0ZThmNzBmY2I2YzQ4NGNiYjAyYTc5ODM3YTMz
MjVjMjE3M2ZmMTQuLjcwYTMxZGVjYWMzNWYxZGVhYmY4OGQwZThhODg1ZmI3ZmE4MzQxM2QgMTAw
NjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2RvbS9NdXRhdGlvbk9ic2VydmVyUmVnaXN0cmF0aW9u
LmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9kb20vTXV0YXRpb25PYnNlcnZlclJlZ2lzdHJhdGlv
bi5jcHAKQEAgLTg5LDcgKzg5LDcgQEAgdm9pZCBNdXRhdGlvbk9ic2VydmVyUmVnaXN0cmF0aW9u
OjpjbGVhclRyYW5zaWVudFJlZ2lzdHJhdGlvbnMoKQogICAgIG1fdHJhbnNpZW50UmVnaXN0cmF0
aW9uTm9kZXMgPSBudWxscHRyOwogCiAgICAgQVNTRVJUKG1fcmVnaXN0cmF0aW9uTm9kZUtlZXBB
bGl2ZSk7Ci0gICAgbV9yZWdpc3RyYXRpb25Ob2RlS2VlcEFsaXZlID0gMDsgLy8gQmFsYW5jZWQg
aW4gb2JzZXJ2ZVN1YnRyZWVOb2RlV2lsbERldGFjaC4KKyAgICBtX3JlZ2lzdHJhdGlvbk5vZGVL
ZWVwQWxpdmUgPSBudWxscHRyOyAvLyBCYWxhbmNlZCBpbiBvYnNlcnZlU3VidHJlZU5vZGVXaWxs
RGV0YWNoLgogfQogCiB2b2lkIE11dGF0aW9uT2JzZXJ2ZXJSZWdpc3RyYXRpb246OnVucmVnaXN0
ZXJBbmREZWxldGUoTXV0YXRpb25PYnNlcnZlclJlZ2lzdHJhdGlvbiogcmVnaXN0cnkpCmRpZmYg
LS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9kb20vTm9kZUl0ZXJhdG9yLmNwcCBiL1NvdXJjZS9XZWJD
b3JlL2RvbS9Ob2RlSXRlcmF0b3IuY3BwCmluZGV4IDU4YjJiOWY2NGM3NmU3ZWM2OGE3NGZjZTZl
ZWM0NTc3NjhjNWZmYTMuLjYxYWUyOGY2ZjhlOTg5N2M0ZWE2MDFiMzUzY2RhMDkxZjQyMTRjZTIg
MTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2RvbS9Ob2RlSXRlcmF0b3IuY3BwCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL2RvbS9Ob2RlSXRlcmF0b3IuY3BwCkBAIC00NSw3ICs0NSw3IEBAIE5vZGVJ
dGVyYXRvcjo6Tm9kZVBvaW50ZXI6Ok5vZGVQb2ludGVyKFBhc3NSZWZQdHI8Tm9kZT4gbiwgYm9v
bCBiKQogCiB2b2lkIE5vZGVJdGVyYXRvcjo6Tm9kZVBvaW50ZXI6OmNsZWFyKCkKIHsKLSAgICBu
b2RlLmNsZWFyKCk7CisgICAgbm9kZSA9IG51bGxwdHI7CiB9CiAKIGJvb2wgTm9kZUl0ZXJhdG9y
OjpOb2RlUG9pbnRlcjo6bW92ZVRvTmV4dChOb2RlKiByb290KQpAQCAtMTUxLDcgKzE1MSw3IEBA
IHZvaWQgTm9kZUl0ZXJhdG9yOjpkZXRhY2goKQogewogICAgIHJvb3QoKS0+ZG9jdW1lbnQoKS5k
ZXRhY2hOb2RlSXRlcmF0b3IodGhpcyk7CiAgICAgbV9kZXRhY2hlZCA9IHRydWU7Ci0gICAgbV9y
ZWZlcmVuY2VOb2RlLm5vZGUuY2xlYXIoKTsKKyAgICBtX3JlZmVyZW5jZU5vZGUubm9kZSA9IG51
bGxwdHI7CiB9CiAKIHZvaWQgTm9kZUl0ZXJhdG9yOjpub2RlV2lsbEJlUmVtb3ZlZChOb2RlJiBy
ZW1vdmVkTm9kZSkKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2RvbS9Qb3NpdGlvbi5oIGIv
U291cmNlL1dlYkNvcmUvZG9tL1Bvc2l0aW9uLmgKaW5kZXggMGYzMTZkYTg1ODhhNTE5MjlmZDQ3
NTFjOWZjYjMzYjk5MTY3MzNlYi4uNjAzZTg4ZjNlYzFiMWFjM2FhOTIyOTA1YzAxMzgxMjM4NDIw
ZGRlYiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvZG9tL1Bvc2l0aW9uLmgKKysrIGIvU291
cmNlL1dlYkNvcmUvZG9tL1Bvc2l0aW9uLmgKQEAgLTkyLDcgKzkyLDcgQEAgcHVibGljOgogCiAg
ICAgQW5jaG9yVHlwZSBhbmNob3JUeXBlKCkgY29uc3QgeyByZXR1cm4gc3RhdGljX2Nhc3Q8QW5j
aG9yVHlwZT4obV9hbmNob3JUeXBlKTsgfQogCi0gICAgdm9pZCBjbGVhcigpIHsgbV9hbmNob3JO
b2RlLmNsZWFyKCk7IG1fb2Zmc2V0ID0gMDsgbV9hbmNob3JUeXBlID0gUG9zaXRpb25Jc09mZnNl
dEluQW5jaG9yOyBtX2lzTGVnYWN5RWRpdGluZ1Bvc2l0aW9uID0gZmFsc2U7IH0KKyAgICB2b2lk
IGNsZWFyKCkgeyBtX2FuY2hvck5vZGUgPSBudWxscHRyOyBtX29mZnNldCA9IDA7IG1fYW5jaG9y
VHlwZSA9IFBvc2l0aW9uSXNPZmZzZXRJbkFuY2hvcjsgbV9pc0xlZ2FjeUVkaXRpbmdQb3NpdGlv
biA9IGZhbHNlOyB9CiAKICAgICAvLyBUaGVzZSBhcmUgYWx3YXlzIERPTSBjb21wbGlhbnQgdmFs
dWVzLiAgRWRpdGluZyBwb3NpdGlvbnMgbGlrZSBbaW1nLCAwXSAoYWthIFtpbWcsIGJlZm9yZV0p
CiAgICAgLy8gd2lsbCByZXR1cm4gaW1nLT5wYXJlbnROb2RlKCkgYW5kIGltZy0+Y29tcHV0ZU5v
ZGVJbmRleCgpIGZyb20gdGhlc2UgZnVuY3Rpb25zLgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNv
cmUvZG9tL1Byb2Nlc3NpbmdJbnN0cnVjdGlvbi5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9kb20vUHJv
Y2Vzc2luZ0luc3RydWN0aW9uLmNwcAppbmRleCAzZWNiNjQ2MzljZmFiYTYwYTVkM2I2NmUyZmFk
ZTUwZGRjYjdmMWIwLi5iMzQzY2EzYTAxYWU4ZWVmZGI1OTdlNWQ0ZTIyZTI3Yjk5M2ZlZjkwIDEw
MDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9kb20vUHJvY2Vzc2luZ0luc3RydWN0aW9uLmNwcAor
KysgYi9Tb3VyY2UvV2ViQ29yZS9kb20vUHJvY2Vzc2luZ0luc3RydWN0aW9uLmNwcApAQCAtMjgx
LDcgKzI4MSw3IEBAIHZvaWQgUHJvY2Vzc2luZ0luc3RydWN0aW9uOjpyZW1vdmVkRnJvbShDb250
YWluZXJOb2RlJiBpbnNlcnRpb25Qb2ludCkKICAgICBpZiAobV9zaGVldCkgewogICAgICAgICBB
U1NFUlQobV9zaGVldC0+b3duZXJOb2RlKCkgPT0gdGhpcyk7CiAgICAgICAgIG1fc2hlZXQtPmNs
ZWFyT3duZXJOb2RlKCk7Ci0gICAgICAgIG1fc2hlZXQgPSAwOworICAgICAgICBtX3NoZWV0ID0g
bnVsbHB0cjsKICAgICB9CiAKICAgICAvLyBJZiB3ZSdyZSBpbiBkb2N1bWVudCB0ZWFyZG93biwg
dGhlbiB3ZSBkb24ndCBuZWVkIHRvIGRvIGFueSBub3RpZmljYXRpb24gb2Ygb3VyIHNoZWV0J3Mg
cmVtb3ZhbC4KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2RvbS9SYW5nZUJvdW5kYXJ5UG9p
bnQuaCBiL1NvdXJjZS9XZWJDb3JlL2RvbS9SYW5nZUJvdW5kYXJ5UG9pbnQuaAppbmRleCBiMDRk
YzA4YjU1YmYwMjFjY2RkZmIyNmFlZTVkMzg0YjExMjZhZTAzLi41YjE0YTNkZmMxZTJlMjlmMTQ3
OWJmNDZjOWNlOGJhZDdkYmVlYjE5IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9kb20vUmFu
Z2VCb3VuZGFyeVBvaW50LmgKKysrIGIvU291cmNlL1dlYkNvcmUvZG9tL1JhbmdlQm91bmRhcnlQ
b2ludC5oCkBAIC0xMTIsOSArMTEyLDkgQEAgaW5saW5lIGludCBSYW5nZUJvdW5kYXJ5UG9pbnQ6
Om9mZnNldCgpIGNvbnN0CiAKIGlubGluZSB2b2lkIFJhbmdlQm91bmRhcnlQb2ludDo6Y2xlYXIo
KQogewotICAgIG1fY29udGFpbmVyTm9kZS5jbGVhcigpOworICAgIG1fY29udGFpbmVyTm9kZSA9
IG51bGxwdHI7CiAgICAgbV9vZmZzZXRJbkNvbnRhaW5lciA9IDA7Ci0gICAgbV9jaGlsZEJlZm9y
ZUJvdW5kYXJ5ID0gMDsKKyAgICBtX2NoaWxkQmVmb3JlQm91bmRhcnkgPSBudWxscHRyOwogfQog
CiBpbmxpbmUgdm9pZCBSYW5nZUJvdW5kYXJ5UG9pbnQ6OnNldChQYXNzUmVmUHRyPE5vZGU+IGNv
bnRhaW5lciwgaW50IG9mZnNldCwgTm9kZSogY2hpbGRCZWZvcmUpCkBAIC0xNDksNyArMTQ5LDcg
QEAgaW5saW5lIHZvaWQgUmFuZ2VCb3VuZGFyeVBvaW50OjpzZXRUb1N0YXJ0T2ZOb2RlKFBhc3NS
ZWZQdHI8Tm9kZT4gY29udGFpbmVyKQogICAgIEFTU0VSVChjb250YWluZXIpOwogICAgIG1fY29u
dGFpbmVyTm9kZSA9IGNvbnRhaW5lcjsKICAgICBtX29mZnNldEluQ29udGFpbmVyID0gMDsKLSAg
ICBtX2NoaWxkQmVmb3JlQm91bmRhcnkgPSAwOworICAgIG1fY2hpbGRCZWZvcmVCb3VuZGFyeSA9
IG51bGxwdHI7CiB9CiAKIGlubGluZSB2b2lkIFJhbmdlQm91bmRhcnlQb2ludDo6c2V0VG9FbmRP
Zk5vZGUoUGFzc1JlZlB0cjxOb2RlPiBjb250YWluZXIpCkBAIC0xNTgsNyArMTU4LDcgQEAgaW5s
aW5lIHZvaWQgUmFuZ2VCb3VuZGFyeVBvaW50OjpzZXRUb0VuZE9mTm9kZShQYXNzUmVmUHRyPE5v
ZGU+IGNvbnRhaW5lcikKICAgICBtX2NvbnRhaW5lck5vZGUgPSBjb250YWluZXI7CiAgICAgaWYg
KG1fY29udGFpbmVyTm9kZS0+b2Zmc2V0SW5DaGFyYWN0ZXJzKCkpIHsKICAgICAgICAgbV9vZmZz
ZXRJbkNvbnRhaW5lciA9IG1fY29udGFpbmVyTm9kZS0+bWF4Q2hhcmFjdGVyT2Zmc2V0KCk7Ci0g
ICAgICAgIG1fY2hpbGRCZWZvcmVCb3VuZGFyeSA9IDA7CisgICAgICAgIG1fY2hpbGRCZWZvcmVC
b3VuZGFyeSA9IG51bGxwdHI7CiAgICAgfSBlbHNlIHsKICAgICAgICAgbV9jaGlsZEJlZm9yZUJv
dW5kYXJ5ID0gbV9jb250YWluZXJOb2RlLT5sYXN0Q2hpbGQoKTsKICAgICAgICAgbV9vZmZzZXRJ
bkNvbnRhaW5lciA9IG1fY2hpbGRCZWZvcmVCb3VuZGFyeSA/IGludmFsaWRPZmZzZXQgOiAwOwpk
aWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvZG9tL1NwYWNlU3BsaXRTdHJpbmcuaCBiL1NvdXJj
ZS9XZWJDb3JlL2RvbS9TcGFjZVNwbGl0U3RyaW5nLmgKaW5kZXggZWY1NjgwMWE3NzExZGY1YTJj
YjU1ODEzYmU1NjczZjE5MDMyOGU3My4uZjg1Yjk2NDIxMmQxZGE4ZTgwMmQxNjYwODk0NmMzNzdh
ZTBiNzg1ZCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvZG9tL1NwYWNlU3BsaXRTdHJpbmcu
aAorKysgYi9Tb3VyY2UvV2ViQ29yZS9kb20vU3BhY2VTcGxpdFN0cmluZy5oCkBAIC0xMDUsNyAr
MTA1LDcgQEAgcHVibGljOgogICAgIGJvb2wgb3BlcmF0b3IhPShjb25zdCBTcGFjZVNwbGl0U3Ry
aW5nJiBvdGhlcikgY29uc3QgeyByZXR1cm4gbV9kYXRhICE9IG90aGVyLm1fZGF0YTsgfQogCiAg
ICAgdm9pZCBzZXQoY29uc3QgQXRvbWljU3RyaW5nJiwgYm9vbCBzaG91bGRGb2xkQ2FzZSk7Ci0g
ICAgdm9pZCBjbGVhcigpIHsgbV9kYXRhLmNsZWFyKCk7IH0KKyAgICB2b2lkIGNsZWFyKCkgeyBt
X2RhdGEgPSBudWxscHRyOyB9CiAKICAgICBib29sIGNvbnRhaW5zKGNvbnN0IEF0b21pY1N0cmlu
ZyYgc3RyaW5nKSBjb25zdCB7IHJldHVybiBtX2RhdGEgJiYgbV9kYXRhLT5jb250YWlucyhzdHJp
bmcpOyB9CiAgICAgYm9vbCBjb250YWluc0FsbChjb25zdCBTcGFjZVNwbGl0U3RyaW5nJiBuYW1l
cykgY29uc3QgeyByZXR1cm4gIW5hbWVzLm1fZGF0YSB8fCAobV9kYXRhICYmIG1fZGF0YS0+Y29u
dGFpbnNBbGwoKm5hbWVzLm1fZGF0YSkpOyB9CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9k
b20vU3R5bGVkRWxlbWVudC5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9kb20vU3R5bGVkRWxlbWVudC5j
cHAKaW5kZXggNWIyNjk2NmI1YzM4N2I5Yzg4N2Y4MDA2ZTBkMjUwYTU4ZjY5M2QwOS4uMGVjMGQ3
ZjVhMGVlYTlkY2IxZThlNjVlNTY5ZDYyMGRjMmQyY2MwNCAxMDA2NDQKLS0tIGEvU291cmNlL1dl
YkNvcmUvZG9tL1N0eWxlZEVsZW1lbnQuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2RvbS9TdHls
ZWRFbGVtZW50LmNwcApAQCAtMTg1LDcgKzE4NSw3IEBAIGlubGluZSB2b2lkIFN0eWxlZEVsZW1l
bnQ6OnNldElubGluZVN0eWxlRnJvbVN0cmluZyhjb25zdCBBdG9taWNTdHJpbmcmIG5ld1N0eWxl
CiAgICAgLy8gV2UgcmVjb25zdHJ1Y3QgdGhlIHByb3BlcnR5IHNldCBpbnN0ZWFkIG9mIG11dGF0
aW5nIGlmIHRoZXJlIGlzIG5vIENTU09NIHdyYXBwZXIuCiAgICAgLy8gVGhpcyBtYWtlcyB3cmFw
cGVybGVzcyBwcm9wZXJ0eSBzZXRzIGltbXV0YWJsZSBhbmQgc28gY2FjaGVhYmxlLgogICAgIGlm
IChpbmxpbmVTdHlsZSAmJiAhaXM8TXV0YWJsZVN0eWxlUHJvcGVydGllcz4oKmlubGluZVN0eWxl
KSkKLSAgICAgICAgaW5saW5lU3R5bGUuY2xlYXIoKTsKKyAgICAgICAgaW5saW5lU3R5bGUgPSBu
dWxscHRyOwogCiAgICAgaWYgKCFpbmxpbmVTdHlsZSkKICAgICAgICAgaW5saW5lU3R5bGUgPSBD
U1NQYXJzZXI6OnBhcnNlSW5saW5lU3R5bGVEZWNsYXJhdGlvbihuZXdTdHlsZVN0cmluZywgdGhp
cyk7CkBAIC0yMDIsNyArMjAyLDcgQEAgdm9pZCBTdHlsZWRFbGVtZW50OjpzdHlsZUF0dHJpYnV0
ZUNoYW5nZWQoY29uc3QgQXRvbWljU3RyaW5nJiBuZXdTdHlsZVN0cmluZywgQXQKICAgICBpZiAo
bmV3U3R5bGVTdHJpbmcuaXNOdWxsKCkpIHsKICAgICAgICAgaWYgKFByb3BlcnR5U2V0Q1NTU3R5
bGVEZWNsYXJhdGlvbiogY3Nzb21XcmFwcGVyID0gaW5saW5lU3R5bGVDU1NPTVdyYXBwZXIoKSkK
ICAgICAgICAgICAgIGNzc29tV3JhcHBlci0+Y2xlYXJQYXJlbnRFbGVtZW50KCk7Ci0gICAgICAg
IGVuc3VyZVVuaXF1ZUVsZW1lbnREYXRhKCkubV9pbmxpbmVTdHlsZS5jbGVhcigpOworICAgICAg
ICBlbnN1cmVVbmlxdWVFbGVtZW50RGF0YSgpLm1faW5saW5lU3R5bGUgPSBudWxscHRyOwogICAg
IH0gZWxzZSBpZiAocmVhc29uID09IE1vZGlmaWVkQnlDbG9uaW5nIHx8IGRvY3VtZW50KCkuY29u
dGVudFNlY3VyaXR5UG9saWN5KCktPmFsbG93SW5saW5lU3R5bGUoZG9jdW1lbnQoKS51cmwoKSwg
c3RhcnRMaW5lTnVtYmVyKSkKICAgICAgICAgc2V0SW5saW5lU3R5bGVGcm9tU3RyaW5nKG5ld1N0
eWxlU3RyaW5nKTsKIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvZG9tL2RlZmF1bHQvUGxh
dGZvcm1NZXNzYWdlUG9ydENoYW5uZWwuY3BwIGIvU291cmNlL1dlYkNvcmUvZG9tL2RlZmF1bHQv
UGxhdGZvcm1NZXNzYWdlUG9ydENoYW5uZWwuY3BwCmluZGV4IGM2ODYxMWZjOGZjN2JlY2ZhZGY4
ZDg0ODNiMTRmZjkwOGNmNDYxZmEuLmM0MTc0ODYzNzQ5MTczNjczM2Y3YzI5MWE0NmU1YTlkMTdi
N2QyNzYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2RvbS9kZWZhdWx0L1BsYXRmb3JtTWVz
c2FnZVBvcnRDaGFubmVsLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9kb20vZGVmYXVsdC9QbGF0
Zm9ybU1lc3NhZ2VQb3J0Q2hhbm5lbC5jcHAKQEAgLTE4Myw5ICsxODMsOSBAQCB2b2lkIFBsYXRm
b3JtTWVzc2FnZVBvcnRDaGFubmVsOjpjbG9zZUludGVybmFsKCkKIHsKICAgICBNdXRleExvY2tl
ciBsb2NrKG1fbXV0ZXgpOwogICAgIC8vIERpc2VudGFuZ2xlIG91cnNlbHZlcyBmcm9tIHRoZSBv
dGhlciBlbmQuIFdlIHN0aWxsIG1haW50YWluIGEgcmVmZXJlbmNlIHRvIG91ciBpbmNvbWluZyBx
dWV1ZSwgc2luY2UgcHJldmlvdXNseS1leGlzdGluZyBtZXNzYWdlcyBzaG91bGQgc3RpbGwgYmUg
ZGVsaXZlcmVkLgotICAgIG1fcmVtb3RlUG9ydCA9IDA7Ci0gICAgbV9lbnRhbmdsZWRDaGFubmVs
ID0gMDsKLSAgICBtX291dGdvaW5nUXVldWUgPSAwOworICAgIG1fcmVtb3RlUG9ydCA9IG51bGxw
dHI7CisgICAgbV9lbnRhbmdsZWRDaGFubmVsID0gbnVsbHB0cjsKKyAgICBtX291dGdvaW5nUXVl
dWUgPSBudWxscHRyOwogfQogCiB9IC8vIG5hbWVzcGFjZSBXZWJDb3JlCmRpZmYgLS1naXQgYS9T
b3VyY2UvV2ViQ29yZS9lZGl0aW5nL0FsdGVybmF0aXZlVGV4dENvbnRyb2xsZXIuY3BwIGIvU291
cmNlL1dlYkNvcmUvZWRpdGluZy9BbHRlcm5hdGl2ZVRleHRDb250cm9sbGVyLmNwcAppbmRleCBm
NWJjOTQ4OTFjYWY3ZTcwOTdhMDNlMjcyOWU3MjhmMjYzNmYwOGJkLi4yNzVlNDMwZWI3M2MxNGNh
MmNmZjMzYzY1Nzc2MWU0NjE5ZTVlYWU5IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9lZGl0
aW5nL0FsdGVybmF0aXZlVGV4dENvbnRyb2xsZXIuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2Vk
aXRpbmcvQWx0ZXJuYXRpdmVUZXh0Q29udHJvbGxlci5jcHAKQEAgLTE0Nyw3ICsxNDcsNyBAQCB2
b2lkIEFsdGVybmF0aXZlVGV4dENvbnRyb2xsZXI6OnN0YXJ0QWx0ZXJuYXRpdmVUZXh0VUlUaW1l
cihBbHRlcm5hdGl2ZVRleHRUeXBlCiAKICAgICAvLyBJZiB0eXBlIGlzIFBhbmVsVHlwZVJldmVy
c2lvbiwgdGhlbiB0aGUgbmV3IHJhbmdlIGhhcyBiZWVuIHNldC4gU28gd2Ugc2hvdWxkbid0IGNs
ZWFyIGl0LgogICAgIGlmICh0eXBlID09IEFsdGVybmF0aXZlVGV4dFR5cGVDb3JyZWN0aW9uKQot
ICAgICAgICBtX2FsdGVybmF0aXZlVGV4dEluZm8ucmFuZ2VXaXRoQWx0ZXJuYXRpdmUuY2xlYXIo
KTsKKyAgICAgICAgbV9hbHRlcm5hdGl2ZVRleHRJbmZvLnJhbmdlV2l0aEFsdGVybmF0aXZlID0g
bnVsbHB0cjsKICAgICBtX2FsdGVybmF0aXZlVGV4dEluZm8udHlwZSA9IHR5cGU7CiAgICAgbV90
aW1lci5zdGFydE9uZVNob3QoY29ycmVjdGlvblBhbmVsVGltZXJJbnRlcnZhbCk7CiB9CkBAIC0x
NTUsNyArMTU1LDcgQEAgdm9pZCBBbHRlcm5hdGl2ZVRleHRDb250cm9sbGVyOjpzdGFydEFsdGVy
bmF0aXZlVGV4dFVJVGltZXIoQWx0ZXJuYXRpdmVUZXh0VHlwZQogdm9pZCBBbHRlcm5hdGl2ZVRl
eHRDb250cm9sbGVyOjpzdG9wQWx0ZXJuYXRpdmVUZXh0VUlUaW1lcigpCiB7CiAgICAgbV90aW1l
ci5zdG9wKCk7Ci0gICAgbV9hbHRlcm5hdGl2ZVRleHRJbmZvLnJhbmdlV2l0aEFsdGVybmF0aXZl
LmNsZWFyKCk7CisgICAgbV9hbHRlcm5hdGl2ZVRleHRJbmZvLnJhbmdlV2l0aEFsdGVybmF0aXZl
ID0gbnVsbHB0cjsKIH0KIAogdm9pZCBBbHRlcm5hdGl2ZVRleHRDb250cm9sbGVyOjpzdG9wUGVu
ZGluZ0NvcnJlY3Rpb24oY29uc3QgVmlzaWJsZVNlbGVjdGlvbiYgb2xkU2VsZWN0aW9uKQpAQCAt
MTgzLDcgKzE4Myw3IEBAIHZvaWQgQWx0ZXJuYXRpdmVUZXh0Q29udHJvbGxlcjo6YXBwbHlQZW5k
aW5nQ29ycmVjdGlvbihjb25zdCBWaXNpYmxlU2VsZWN0aW9uJiBzCiAgICAgaWYgKGRvQXBwbHlD
b3JyZWN0aW9uKQogICAgICAgICBoYW5kbGVBbHRlcm5hdGl2ZVRleHRVSVJlc3VsdChkaXNtaXNz
U29vbihSZWFzb25Gb3JEaXNtaXNzaW5nQWx0ZXJuYXRpdmVUZXh0QWNjZXB0ZWQpKTsgCiAgICAg
ZWxzZQotICAgICAgICBtX2FsdGVybmF0aXZlVGV4dEluZm8ucmFuZ2VXaXRoQWx0ZXJuYXRpdmUu
Y2xlYXIoKTsKKyAgICAgICAgbV9hbHRlcm5hdGl2ZVRleHRJbmZvLnJhbmdlV2l0aEFsdGVybmF0
aXZlID0gbnVsbHB0cjsKIH0KIAogYm9vbCBBbHRlcm5hdGl2ZVRleHRDb250cm9sbGVyOjpoYXNQ
ZW5kaW5nQ29ycmVjdGlvbigpIGNvbnN0CkBAIC0zNTksNyArMzU5LDcgQEAgdm9pZCBBbHRlcm5h
dGl2ZVRleHRDb250cm9sbGVyOjp0aW1lckZpcmVkKCkKICAgICAgICAgVmVjdG9yPFN0cmluZz4g
c3VnZ2VzdGlvbnM7CiAgICAgICAgIHRleHRDaGVja2VyKCktPmdldEd1ZXNzZXNGb3JXb3JkKG1f
YWx0ZXJuYXRpdmVUZXh0SW5mby5vcmlnaW5hbFRleHQsIHBhcmFncmFwaFRleHQsIHN1Z2dlc3Rp
b25zKTsKICAgICAgICAgaWYgKHN1Z2dlc3Rpb25zLmlzRW1wdHkoKSkgewotICAgICAgICAgICAg
bV9hbHRlcm5hdGl2ZVRleHRJbmZvLnJhbmdlV2l0aEFsdGVybmF0aXZlLmNsZWFyKCk7CisgICAg
ICAgICAgICBtX2FsdGVybmF0aXZlVGV4dEluZm8ucmFuZ2VXaXRoQWx0ZXJuYXRpdmUgPSBudWxs
cHRyOwogICAgICAgICAgICAgYnJlYWs7CiAgICAgICAgIH0KICAgICAgICAgU3RyaW5nIHRvcFN1
Z2dlc3Rpb24gPSBzdWdnZXN0aW9ucy5maXJzdCgpOwpAQCAtNDIyLDcgKzQyMiw3IEBAIHZvaWQg
QWx0ZXJuYXRpdmVUZXh0Q29udHJvbGxlcjo6aGFuZGxlQWx0ZXJuYXRpdmVUZXh0VUlSZXN1bHQo
Y29uc3QgU3RyaW5nJiByZXN1CiAgICAgICAgIGJyZWFrOwogICAgIH0KIAotICAgIG1fYWx0ZXJu
YXRpdmVUZXh0SW5mby5yYW5nZVdpdGhBbHRlcm5hdGl2ZS5jbGVhcigpOworICAgIG1fYWx0ZXJu
YXRpdmVUZXh0SW5mby5yYW5nZVdpdGhBbHRlcm5hdGl2ZSA9IG51bGxwdHI7CiB9CiAKIGJvb2wg
QWx0ZXJuYXRpdmVUZXh0Q29udHJvbGxlcjo6aXNBdXRvbWF0aWNTcGVsbGluZ0NvcnJlY3Rpb25F
bmFibGVkKCkKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2VkaXRpbmcvQXBwbHlCbG9ja0Vs
ZW1lbnRDb21tYW5kLmNwcCBiL1NvdXJjZS9XZWJDb3JlL2VkaXRpbmcvQXBwbHlCbG9ja0VsZW1l
bnRDb21tYW5kLmNwcAppbmRleCA0MzNlOTUzNjY0ZjcwMWQxMjEyNmZiNDAzYTY3Y2JmYmE3ZjRm
MDg4Li4yMWFiZTcxY2M4ZWRkNTBmMTYzNGYwNDMzMGE4YzEyYmNjOTE2NWVlIDEwMDY0NAotLS0g
YS9Tb3VyY2UvV2ViQ29yZS9lZGl0aW5nL0FwcGx5QmxvY2tFbGVtZW50Q29tbWFuZC5jcHAKKysr
IGIvU291cmNlL1dlYkNvcmUvZWRpdGluZy9BcHBseUJsb2NrRWxlbWVudENvbW1hbmQuY3BwCkBA
IC0xNDMsNyArMTQzLDcgQEAgdm9pZCBBcHBseUJsb2NrRWxlbWVudENvbW1hbmQ6OmZvcm1hdFNl
bGVjdGlvbihjb25zdCBWaXNpYmxlUG9zaXRpb24mIHN0YXJ0T2ZTZWwKICAgICAgICAgLy8gRG9u
J3QgcHV0IHRoZSBuZXh0IHBhcmFncmFwaCBpbiB0aGUgYmxvY2txdW90ZSB3ZSBqdXN0IGNyZWF0
ZWQgZm9yIHRoaXMgcGFyYWdyYXBoIHVubGVzcyAKICAgICAgICAgLy8gdGhlIG5leHQgcGFyYWdy
YXBoIGlzIGluIHRoZSBzYW1lIGNlbGwuCiAgICAgICAgIGlmIChlbmNsb3NpbmdDZWxsICYmIGVu
Y2xvc2luZ0NlbGwgIT0gZW5jbG9zaW5nTm9kZU9mVHlwZShlbmRPZk5leHRQYXJhZ3JhcGguZGVl
cEVxdWl2YWxlbnQoKSwgJmlzVGFibGVDZWxsKSkKLSAgICAgICAgICAgIGJsb2NrcXVvdGVGb3JO
ZXh0SW5kZW50ID0gMDsKKyAgICAgICAgICAgIGJsb2NrcXVvdGVGb3JOZXh0SW5kZW50ID0gbnVs
bHB0cjsKIAogICAgICAgICAvLyBpbmRlbnRJbnRvQmxvY2txdW90ZSBjb3VsZCBtb3ZlIG1vcmUg
dGhhbiBvbmUgcGFyYWdyYXBoIGlmIHRoZSBwYXJhZ3JhcGgKICAgICAgICAgLy8gaXMgaW4gYSBs
aXN0IGl0ZW0gb3IgYSB0YWJsZS4gQXMgYSByZXN1bHQsIGVuZEFmdGVyU2VsZWN0aW9uIGNvdWxk
IHJlZmVyIHRvIGEgcG9zaXRpb24KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2VkaXRpbmcv
RGVsZXRlU2VsZWN0aW9uQ29tbWFuZC5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9lZGl0aW5nL0RlbGV0
ZVNlbGVjdGlvbkNvbW1hbmQuY3BwCmluZGV4IGViM2E1ZjMwYTAzZjI4NGUyMjYwZmY0OGZiYTlm
MWI5OTlhZDk5MjcuLmM2NDkxZDI2OTI2NWU1YWI2Y2U5NjVlYWE5NTM0MWI2NTQ0N2QxYWUgMTAw
NjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2VkaXRpbmcvRGVsZXRlU2VsZWN0aW9uQ29tbWFuZC5j
cHAKKysrIGIvU291cmNlL1dlYkNvcmUvZWRpdGluZy9EZWxldGVTZWxlY3Rpb25Db21tYW5kLmNw
cApAQCAtMzAyLDcgKzMwMiw3IEBAIHZvaWQgRGVsZXRlU2VsZWN0aW9uQ29tbWFuZDo6c2F2ZVR5
cGluZ1N0eWxlU3RhdGUoKQogICAgIGlmIChlbmNsb3NpbmdOb2RlT2ZUeXBlKG1fc2VsZWN0aW9u
VG9EZWxldGUuc3RhcnQoKSwgaXNNYWlsQmxvY2txdW90ZSkpCiAgICAgICAgIG1fZGVsZXRlSW50
b0Jsb2NrcXVvdGVTdHlsZSA9IEVkaXRpbmdTdHlsZTo6Y3JlYXRlKG1fc2VsZWN0aW9uVG9EZWxl
dGUuZW5kKCkpOwogICAgIGVsc2UKLSAgICAgICAgbV9kZWxldGVJbnRvQmxvY2txdW90ZVN0eWxl
ID0gMDsKKyAgICAgICAgbV9kZWxldGVJbnRvQmxvY2txdW90ZVN0eWxlID0gbnVsbHB0cjsKIH0K
IAogYm9vbCBEZWxldGVTZWxlY3Rpb25Db21tYW5kOjpoYW5kbGVTcGVjaWFsQ2FzZUJSRGVsZXRl
KCkKQEAgLTcyOCwxMSArNzI4LDExIEBAIHZvaWQgRGVsZXRlU2VsZWN0aW9uQ29tbWFuZDo6Y2Fs
Y3VsYXRlVHlwaW5nU3R5bGVBZnRlckRlbGV0ZSgpCiAgICAgLy8gSWYgd2UgZGVsZXRlZCBpbnRv
IGEgYmxvY2txdW90ZSwgYnV0IGFyZSBub3cgbm8gbG9uZ2VyIGluIGEgYmxvY2txdW90ZSwgdXNl
IHRoZSBhbHRlcm5hdGUgdHlwaW5nIHN0eWxlCiAgICAgaWYgKG1fZGVsZXRlSW50b0Jsb2NrcXVv
dGVTdHlsZSAmJiAhZW5jbG9zaW5nTm9kZU9mVHlwZShtX2VuZGluZ1Bvc2l0aW9uLCBpc01haWxC
bG9ja3F1b3RlLCBDYW5Dcm9zc0VkaXRpbmdCb3VuZGFyeSkpCiAgICAgICAgIG1fdHlwaW5nU3R5
bGUgPSBtX2RlbGV0ZUludG9CbG9ja3F1b3RlU3R5bGU7Ci0gICAgbV9kZWxldGVJbnRvQmxvY2tx
dW90ZVN0eWxlID0gMDsKKyAgICBtX2RlbGV0ZUludG9CbG9ja3F1b3RlU3R5bGUgPSBudWxscHRy
OwogCiAgICAgbV90eXBpbmdTdHlsZS0+cHJlcGFyZVRvQXBwbHlBdChtX2VuZGluZ1Bvc2l0aW9u
KTsKICAgICBpZiAobV90eXBpbmdTdHlsZS0+aXNFbXB0eSgpKQotICAgICAgICBtX3R5cGluZ1N0
eWxlID0gMDsKKyAgICAgICAgbV90eXBpbmdTdHlsZSA9IG51bGxwdHI7CiAgICAgLy8gVGhpcyBp
cyB3aGVyZSB3ZSd2ZSBkZWxldGVkIGFsbCB0cmFjZXMgb2YgYSBzdHlsZSBidXQgbm90IGEgd2hv
bGUgcGFyYWdyYXBoICh0aGF0J3MgaGFuZGxlZCBhYm92ZSkuCiAgICAgLy8gSW4gdGhpcyBjYXNl
IGlmIHdlIHN0YXJ0IHR5cGluZywgdGhlIG5ldyBjaGFyYWN0ZXJzIHNob3VsZCBoYXZlIHRoZSBz
YW1lIHN0eWxlIGFzIHRoZSBqdXN0IGRlbGV0ZWQgb25lcywKICAgICAvLyBidXQsIGlmIHdlIGNo
YW5nZSB0aGUgc2VsZWN0aW9uLCBjb21lIGJhY2sgYW5kIHN0YXJ0IHR5cGluZyB0aGF0IHN0eWxl
IHNob3VsZCBiZSBsb3N0LiAgQWxzbyBzZWUgCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9l
ZGl0aW5nL0VkaXRpbmdTdHlsZS5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9lZGl0aW5nL0VkaXRpbmdT
dHlsZS5jcHAKaW5kZXggNWNmMTJjZDliNzM4YTFkZDc0MGQ1ZWNkNTViZDU5NzJkOWVkMjY2MS4u
MTdhYWIyOTViYTZiOTJkYWUyYTcyNDRkYzE1NjhlZmYyZjU1NzQ3YSAxMDA2NDQKLS0tIGEvU291
cmNlL1dlYkNvcmUvZWRpdGluZy9FZGl0aW5nU3R5bGUuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3Jl
L2VkaXRpbmcvRWRpdGluZ1N0eWxlLmNwcApAQCAtNjM4LDcgKzYzOCw3IEBAIHZvaWQgRWRpdGlu
Z1N0eWxlOjpvdmVycmlkZVR5cGluZ1N0eWxlQXQoY29uc3QgRWRpdGluZ1N0eWxlJiBzdHlsZSwg
Y29uc3QgUG9zaXRpCiAKIHZvaWQgRWRpdGluZ1N0eWxlOjpjbGVhcigpCiB7Ci0gICAgbV9tdXRh
YmxlU3R5bGUuY2xlYXIoKTsKKyAgICBtX211dGFibGVTdHlsZSA9IG51bGxwdHI7CiAgICAgbV9z
aG91bGRVc2VGaXhlZERlZmF1bHRGb250U2l6ZSA9IGZhbHNlOwogICAgIG1fZm9udFNpemVEZWx0
YSA9IE5vRm9udERlbHRhOwogICAgIHNldFVuZGVybGluZUNoYW5nZShUZXh0RGVjb3JhdGlvbkNo
YW5nZTo6Tm9uZSk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9lZGl0aW5nL0VkaXRvci5j
cHAgYi9Tb3VyY2UvV2ViQ29yZS9lZGl0aW5nL0VkaXRvci5jcHAKaW5kZXggYTNjM2M5YzNiNDM0
NDI5NzUxZjczZWYxOTI4YzQxOWM5NWQ1YTk3Yy4uZTc2ODdlYzI0NjUwMDVkYjU3NDZmZTZjNGFk
ZjZjMTU4Njg3YjM3NCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvZWRpdGluZy9FZGl0b3Iu
Y3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2VkaXRpbmcvRWRpdG9yLmNwcApAQCAtODI4LDcgKzgy
OCw3IEBAIHZvaWQgRWRpdG9yOjpyZW1vdmVGb3JtYXR0aW5nQW5kU3R5bGUoKQogCiB2b2lkIEVk
aXRvcjo6Y2xlYXJMYXN0RWRpdENvbW1hbmQoKSAKIHsKLSAgICBtX2xhc3RFZGl0Q29tbWFuZC5j
bGVhcigpOworICAgIG1fbGFzdEVkaXRDb21tYW5kID0gbnVsbHB0cjsKIH0KICNpZiBQTEFURk9S
TShJT1MpCiAvLyBJZiB0aGUgc2VsZWN0aW9uIGlzIGFkanVzdGVkIGZyb20gVUlLaXQgd2l0aG91
dCBjbG9zaW5nIHRoZSB0eXBpbmcsIHRoZSB0eXBpbmcgY29tbWFuZCBtYXkKQEAgLTEwNjYsNyAr
MTA2Niw3IEBAIHZvaWQgRWRpdG9yOjp1bmFwcGxpZWRFZGl0aW5nKFBhc3NSZWZQdHI8RWRpdENv
bW1hbmRDb21wb3NpdGlvbj4gY21kKQogCiAgICAgbV9hbHRlcm5hdGl2ZVRleHRDb250cm9sbGVy
LT5yZXNwb25kVG9VbmFwcGxpZWRFZGl0aW5nKGNtZC5nZXQoKSk7CiAKLSAgICBtX2xhc3RFZGl0
Q29tbWFuZCA9IDA7CisgICAgbV9sYXN0RWRpdENvbW1hbmQgPSBudWxscHRyOwogICAgIGlmIChj
bGllbnQoKSkKICAgICAgICAgY2xpZW50KCktPnJlZ2lzdGVyUmVkb1N0ZXAoY21kKTsKICAgICBy
ZXNwb25kVG9DaGFuZ2VkQ29udGVudHMobmV3U2VsZWN0aW9uKTsKQEAgLTEwODQsNyArMTA4NCw3
IEBAIHZvaWQgRWRpdG9yOjpyZWFwcGxpZWRFZGl0aW5nKFBhc3NSZWZQdHI8RWRpdENvbW1hbmRD
b21wb3NpdGlvbj4gY21kKQogICAgIAogICAgIHVwZGF0ZUVkaXRvclVJTm93SWZTY2hlZHVsZWQo
KTsKIAotICAgIG1fbGFzdEVkaXRDb21tYW5kID0gMDsKKyAgICBtX2xhc3RFZGl0Q29tbWFuZCA9
IG51bGxwdHI7CiAgICAgaWYgKGNsaWVudCgpKQogICAgICAgICBjbGllbnQoKS0+cmVnaXN0ZXJV
bmRvU3RlcChjbWQpOwogICAgIHJlc3BvbmRUb0NoYW5nZWRDb250ZW50cyhuZXdTZWxlY3Rpb24p
OwpAQCAtMTcyNyw3ICsxNzI3LDcgQEAgdm9pZCBFZGl0b3I6OnNldENvbXBvc2l0aW9uKGNvbnN0
IFN0cmluZyYgdGV4dCwgU2V0Q29tcG9zaXRpb25Nb2RlIG1vZGUpCiAgICAgaWYgKHRleHQuaXNF
bXB0eSgpICYmIG1vZGUgIT0gQ2FuY2VsQ29tcG9zaXRpb24pCiAgICAgICAgIFR5cGluZ0NvbW1h
bmQ6OmRlbGV0ZVNlbGVjdGlvbihkb2N1bWVudCgpLCAwKTsKIAotICAgIG1fY29tcG9zaXRpb25O
b2RlID0gMDsKKyAgICBtX2NvbXBvc2l0aW9uTm9kZSA9IG51bGxwdHI7CiAgICAgbV9jdXN0b21D
b21wb3NpdGlvblVuZGVybGluZXMuY2xlYXIoKTsKIAogICAgIGluc2VydFRleHRGb3JDb25maXJt
ZWRDb21wb3NpdGlvbih0ZXh0KTsKQEAgLTE4MDIsNyArMTgwMiw3IEBAIHZvaWQgRWRpdG9yOjpz
ZXRDb21wb3NpdGlvbihjb25zdCBTdHJpbmcmIHRleHQsIGNvbnN0IFZlY3RvcjxDb21wb3NpdGlv
blVuZGVybGluCiAgICAgaWYgKHRleHQuaXNFbXB0eSgpKQogICAgICAgICBUeXBpbmdDb21tYW5k
OjpkZWxldGVTZWxlY3Rpb24oZG9jdW1lbnQoKSwgVHlwaW5nQ29tbWFuZDo6UHJldmVudFNwZWxs
Q2hlY2tpbmcpOwogCi0gICAgbV9jb21wb3NpdGlvbk5vZGUgPSAwOworICAgIG1fY29tcG9zaXRp
b25Ob2RlID0gbnVsbHB0cjsKICAgICBtX2N1c3RvbUNvbXBvc2l0aW9uVW5kZXJsaW5lcy5jbGVh
cigpOwogCiAgICAgaWYgKCF0ZXh0LmlzRW1wdHkoKSkgewpkaWZmIC0tZ2l0IGEvU291cmNlL1dl
YkNvcmUvZWRpdGluZy9GcmFtZVNlbGVjdGlvbi5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9lZGl0aW5n
L0ZyYW1lU2VsZWN0aW9uLmNwcAppbmRleCBiMGUyNTM1ODdmZDhhZGNkZTM0ZDhiYjIxYWIzYWVm
Yjg2M2Q2YjgyLi5mYTA4ODM3MTI1MzcxYTExY2I4Nzk5OGZhNGExNTcxZGQxODRmYjMzIDEwMDY0
NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9lZGl0aW5nL0ZyYW1lU2VsZWN0aW9uLmNwcAorKysgYi9T
b3VyY2UvV2ViQ29yZS9lZGl0aW5nL0ZyYW1lU2VsZWN0aW9uLmNwcApAQCAtMTM1OSw3ICsxMzU5
LDcgQEAgdm9pZCBGcmFtZVNlbGVjdGlvbjo6cHJlcGFyZUZvckRlc3RydWN0aW9uKCkKICAgICAg
ICAgdmlldy0+Y2xlYXJTZWxlY3Rpb24oKTsKIAogICAgIHNldFNlbGVjdGlvbldpdGhvdXRVcGRh
dGluZ0FwcGVhcmFuY2UoVmlzaWJsZVNlbGVjdGlvbigpLCBkZWZhdWx0U2V0U2VsZWN0aW9uT3B0
aW9ucygpLCBBbGlnbkN1cnNvck9uU2Nyb2xsSWZOZWVkZWQsIENoYXJhY3RlckdyYW51bGFyaXR5
KTsKLSAgICBtX3ByZXZpb3VzQ2FyZXROb2RlLmNsZWFyKCk7CisgICAgbV9wcmV2aW91c0NhcmV0
Tm9kZSA9IG51bGxwdHI7CiB9CiAKIHZvaWQgRnJhbWVTZWxlY3Rpb246OnNldFN0YXJ0KGNvbnN0
IFZpc2libGVQb3NpdGlvbiAmcG9zLCBFVXNlclRyaWdnZXJlZCB0cmlnZ2VyKQpkaWZmIC0tZ2l0
IGEvU291cmNlL1dlYkNvcmUvZWRpdGluZy9GcmFtZVNlbGVjdGlvbi5oIGIvU291cmNlL1dlYkNv
cmUvZWRpdGluZy9GcmFtZVNlbGVjdGlvbi5oCmluZGV4IGVkODc5NmVmMDMxMDI4YzdiZjI5MGJl
MzQ4OGQ5ODY5YjIzZWU5YjIuLjMxMGE3NGFhYjlkMmY1MWRmYTcxYmQxYWQ5NjYzNDgzN2I2MTI1
YzAgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2VkaXRpbmcvRnJhbWVTZWxlY3Rpb24uaAor
KysgYi9Tb3VyY2UvV2ViQ29yZS9lZGl0aW5nL0ZyYW1lU2VsZWN0aW9uLmgKQEAgLTM1OSw3ICsz
NTksNyBAQCBpbmxpbmUgRWRpdGluZ1N0eWxlKiBGcmFtZVNlbGVjdGlvbjo6dHlwaW5nU3R5bGUo
KSBjb25zdAogCiBpbmxpbmUgdm9pZCBGcmFtZVNlbGVjdGlvbjo6Y2xlYXJUeXBpbmdTdHlsZSgp
CiB7Ci0gICAgbV90eXBpbmdTdHlsZS5jbGVhcigpOworICAgIG1fdHlwaW5nU3R5bGUgPSBudWxs
cHRyOwogfQogCiBpbmxpbmUgdm9pZCBGcmFtZVNlbGVjdGlvbjo6c2V0VHlwaW5nU3R5bGUoUGFz
c1JlZlB0cjxFZGl0aW5nU3R5bGU+IHN0eWxlKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUv
ZWRpdGluZy9JbmRlbnRPdXRkZW50Q29tbWFuZC5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9lZGl0aW5n
L0luZGVudE91dGRlbnRDb21tYW5kLmNwcAppbmRleCBiMjM4Zjg3OTMxNTZjNzI5NzJlNWE3Y2Rl
M2FhY2RlMzljZTAxYjBmLi5lYzRkMjcyNDQ3ZWNhYjc1NjUwNDE5N2Q2NzU1MjcyZDhiOGNmNjMx
IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9lZGl0aW5nL0luZGVudE91dGRlbnRDb21tYW5k
LmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9lZGl0aW5nL0luZGVudE91dGRlbnRDb21tYW5kLmNw
cApAQCAtMjMyLDcgKzIzMiw3IEBAIHZvaWQgSW5kZW50T3V0ZGVudENvbW1hbmQ6OmZvcm1hdFNl
bGVjdGlvbihjb25zdCBWaXNpYmxlUG9zaXRpb24mIHN0YXJ0T2ZTZWxlY3RpCiB2b2lkIEluZGVu
dE91dGRlbnRDb21tYW5kOjpmb3JtYXRSYW5nZShjb25zdCBQb3NpdGlvbiYgc3RhcnQsIGNvbnN0
IFBvc2l0aW9uJiBlbmQsIGNvbnN0IFBvc2l0aW9uJiwgUmVmUHRyPEVsZW1lbnQ+JiBibG9ja3F1
b3RlRm9yTmV4dEluZGVudCkKIHsKICAgICBpZiAodHJ5SW5kZW50aW5nQXNMaXN0SXRlbShzdGFy
dCwgZW5kKSkKLSAgICAgICAgYmxvY2txdW90ZUZvck5leHRJbmRlbnQgPSAwOworICAgICAgICBi
bG9ja3F1b3RlRm9yTmV4dEluZGVudCA9IG51bGxwdHI7CiAgICAgZWxzZQogICAgICAgICBpbmRl
bnRJbnRvQmxvY2txdW90ZShzdGFydCwgZW5kLCBibG9ja3F1b3RlRm9yTmV4dEluZGVudCk7CiB9
CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9lZGl0aW5nL1JlcGxhY2VTZWxlY3Rpb25Db21t
YW5kLmNwcCBiL1NvdXJjZS9XZWJDb3JlL2VkaXRpbmcvUmVwbGFjZVNlbGVjdGlvbkNvbW1hbmQu
Y3BwCmluZGV4IDJlMjVlZWYwZWM2MGI1N2ZlZjIzOWQ0MzljYjFlZTkxNDY2MWM4MDIuLmVlZTIy
MGM4NmY5OGE1ZTdkMjg5OWM0MzNmYTkxZjAwMDA1NDZiZTMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9X
ZWJDb3JlL2VkaXRpbmcvUmVwbGFjZVNlbGVjdGlvbkNvbW1hbmQuY3BwCisrKyBiL1NvdXJjZS9X
ZWJDb3JlL2VkaXRpbmcvUmVwbGFjZVNlbGVjdGlvbkNvbW1hbmQuY3BwCkBAIC0zNTQsOCArMzU0
LDggQEAgaW5saW5lIHZvaWQgUmVwbGFjZVNlbGVjdGlvbkNvbW1hbmQ6Okluc2VydGVkTm9kZXM6
OndpbGxSZW1vdmVOb2RlUHJlc2VydmluZ0NoaWwKIGlubGluZSB2b2lkIFJlcGxhY2VTZWxlY3Rp
b25Db21tYW5kOjpJbnNlcnRlZE5vZGVzOjp3aWxsUmVtb3ZlTm9kZShOb2RlKiBub2RlKQogewog
ICAgIGlmIChtX2ZpcnN0Tm9kZUluc2VydGVkID09IG5vZGUgJiYgbV9sYXN0Tm9kZUluc2VydGVk
ID09IG5vZGUpIHsKLSAgICAgICAgbV9maXJzdE5vZGVJbnNlcnRlZCA9IDA7Ci0gICAgICAgIG1f
bGFzdE5vZGVJbnNlcnRlZCA9IDA7CisgICAgICAgIG1fZmlyc3ROb2RlSW5zZXJ0ZWQgPSBudWxs
cHRyOworICAgICAgICBtX2xhc3ROb2RlSW5zZXJ0ZWQgPSBudWxscHRyOwogICAgIH0gZWxzZSBp
ZiAobV9maXJzdE5vZGVJbnNlcnRlZCA9PSBub2RlKQogICAgICAgICBtX2ZpcnN0Tm9kZUluc2Vy
dGVkID0gTm9kZVRyYXZlcnNhbDo6bmV4dFNraXBwaW5nQ2hpbGRyZW4oKm1fZmlyc3ROb2RlSW5z
ZXJ0ZWQpOwogICAgIGVsc2UgaWYgKG1fbGFzdE5vZGVJbnNlcnRlZCA9PSBub2RlKQpkaWZmIC0t
Z2l0IGEvU291cmNlL1dlYkNvcmUvZWRpdGluZy9TcGVsbENoZWNrZXIuY3BwIGIvU291cmNlL1dl
YkNvcmUvZWRpdGluZy9TcGVsbENoZWNrZXIuY3BwCmluZGV4IDhiNGQ1NDExOWMwMTNjNDg1ZWY0
NGViOTMzNzU3MzkyOGM2NDgwZGIuLjAzZjJlNTEwNDgzNTIxNTIwZDI5Yjc3ZTc2OGRmYzkzYmFh
NDA1OTMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2VkaXRpbmcvU3BlbGxDaGVja2VyLmNw
cAorKysgYi9Tb3VyY2UvV2ViQ29yZS9lZGl0aW5nL1NwZWxsQ2hlY2tlci5jcHAKQEAgLTIxNCw3
ICsyMTQsNyBAQCB2b2lkIFNwZWxsQ2hlY2tlcjo6ZGlkQ2hlY2soaW50IHNlcXVlbmNlLCBjb25z
dCBWZWN0b3I8VGV4dENoZWNraW5nUmVzdWx0PiYgcmVzdQogICAgIGlmIChtX2xhc3RQcm9jZXNz
ZWRTZXF1ZW5jZSA8IHNlcXVlbmNlKQogICAgICAgICBtX2xhc3RQcm9jZXNzZWRTZXF1ZW5jZSA9
IHNlcXVlbmNlOwogCi0gICAgbV9wcm9jZXNzaW5nUmVxdWVzdC5jbGVhcigpOworICAgIG1fcHJv
Y2Vzc2luZ1JlcXVlc3QgPSBudWxscHRyOwogICAgIGlmICghbV9yZXF1ZXN0UXVldWUuaXNFbXB0
eSgpKQogICAgICAgICBtX3RpbWVyVG9Qcm9jZXNzUXVldWVkUmVxdWVzdC5zdGFydE9uZVNob3Qo
MCk7CiB9CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9lZGl0aW5nL1RleHRDaGVja2luZ0hl
bHBlci5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9lZGl0aW5nL1RleHRDaGVja2luZ0hlbHBlci5jcHAK
aW5kZXggMDI0ZDJhZDdjMjRmNDE0ZTUxZmUxNjY2Y2Y5MDkyNzIxM2RlZjE3MC4uZTk2MTM0ZDc4
YTkyYmIwNWU3ZjJlZDc3MDliOGNjYTRjNGFjYTNiNSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNv
cmUvZWRpdGluZy9UZXh0Q2hlY2tpbmdIZWxwZXIuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2Vk
aXRpbmcvVGV4dENoZWNraW5nSGVscGVyLmNwcApAQCAtMTQ2LDcgKzE0Niw3IEBAIHZvaWQgVGV4
dENoZWNraW5nUGFyYWdyYXBoOjpleHBhbmRSYW5nZVRvTmV4dEVuZCgpCiB2b2lkIFRleHRDaGVj
a2luZ1BhcmFncmFwaDo6aW52YWxpZGF0ZVBhcmFncmFwaFJhbmdlVmFsdWVzKCkKIHsKICAgICBt
X2NoZWNraW5nU3RhcnQgPSBtX2NoZWNraW5nRW5kID0gLTE7Ci0gICAgbV9vZmZzZXRBc1Jhbmdl
ID0gMDsKKyAgICBtX29mZnNldEFzUmFuZ2UgPSBudWxscHRyOwogICAgIG1fdGV4dCA9IFN0cmlu
ZygpOwogfQogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9maWxlYXBpL0ZpbGVSZWFkZXIu
Y3BwIGIvU291cmNlL1dlYkNvcmUvZmlsZWFwaS9GaWxlUmVhZGVyLmNwcAppbmRleCA3ZjRjMDVk
MjkzNTY0Zjk4NGJmYjhiZDMwMmU5ZmE0OGJjNjM4NjY1Li42MWZjMmRlNjFhZWY4YTNlYmIwODg0
ZDc0MDc2ZTZiM2JkMWQwYjEzIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9maWxlYXBpL0Zp
bGVSZWFkZXIuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2ZpbGVhcGkvRmlsZVJlYWRlci5jcHAK
QEAgLTE0MCw3ICsxNDAsNyBAQCB2b2lkIEZpbGVSZWFkZXI6OnJlYWRJbnRlcm5hbChCbG9iKiBi
bG9iLCBGaWxlUmVhZGVyTG9hZGVyOjpSZWFkVHlwZSB0eXBlLCBFeGNlcAogICAgIG1fYmxvYiA9
IGJsb2I7CiAgICAgbV9yZWFkVHlwZSA9IHR5cGU7CiAgICAgbV9zdGF0ZSA9IExPQURJTkc7Ci0g
ICAgbV9lcnJvciA9IDA7CisgICAgbV9lcnJvciA9IG51bGxwdHI7CiAKICAgICBtX2xvYWRlciA9
IHN0ZDo6bWFrZV91bmlxdWU8RmlsZVJlYWRlckxvYWRlcj4obV9yZWFkVHlwZSwgdGhpcyk7CiAg
ICAgbV9sb2FkZXItPnNldEVuY29kaW5nKG1fZW5jb2RpbmcpOwpkaWZmIC0tZ2l0IGEvU291cmNl
L1dlYkNvcmUvZmlsZWFwaS9GaWxlUmVhZGVyTG9hZGVyLmNwcCBiL1NvdXJjZS9XZWJDb3JlL2Zp
bGVhcGkvRmlsZVJlYWRlckxvYWRlci5jcHAKaW5kZXggOTRlMGE0YTdjYjQxMGJhZmUzYWVlZDM4
ZmI2Y2UyZmNlMjlhZTI2YS4uZDhmZmMxMDIzMzVmMWIyNWQ1NzJkYjZiMjc1YTc0NDQ1MjdlYTJk
OSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvZmlsZWFwaS9GaWxlUmVhZGVyTG9hZGVyLmNw
cAorKysgYi9Tb3VyY2UvV2ViQ29yZS9maWxlYXBpL0ZpbGVSZWFkZXJMb2FkZXIuY3BwCkBAIC0x
MjEsMTEgKzEyMSwxMSBAQCB2b2lkIEZpbGVSZWFkZXJMb2FkZXI6OnRlcm1pbmF0ZSgpCiAKIHZv
aWQgRmlsZVJlYWRlckxvYWRlcjo6Y2xlYW51cCgpCiB7Ci0gICAgbV9sb2FkZXIgPSAwOworICAg
IG1fbG9hZGVyID0gbnVsbHB0cjsKIAogICAgIC8vIElmIHdlIGdldCBhbnkgZXJyb3IsIHdlIGRv
IG5vdCBuZWVkIHRvIGtlZXAgYSBidWZmZXIgYXJvdW5kLgogICAgIGlmIChtX2Vycm9yQ29kZSkg
ewotICAgICAgICBtX3Jhd0RhdGEgPSAwOworICAgICAgICBtX3Jhd0RhdGEgPSBudWxscHRyOwog
ICAgICAgICBtX3N0cmluZ1Jlc3VsdCA9ICIiOwogICAgIH0KIH0KZGlmZiAtLWdpdCBhL1NvdXJj
ZS9XZWJDb3JlL2hpc3RvcnkvSGlzdG9yeUl0ZW0uY3BwIGIvU291cmNlL1dlYkNvcmUvaGlzdG9y
eS9IaXN0b3J5SXRlbS5jcHAKaW5kZXggMjI5YmFiOGU3YTIzYWMwNWMwYWQwNWU3ZWQ0MzE1N2Rj
ZDdlOGIwMy4uODI5NTczZjdkNzliNmE5Mjc1MmI2YTA3YmI4YjU3OTA5NjMyZGJkMSAxMDA2NDQK
LS0tIGEvU291cmNlL1dlYkNvcmUvaGlzdG9yeS9IaXN0b3J5SXRlbS5jcHAKKysrIGIvU291cmNl
L1dlYkNvcmUvaGlzdG9yeS9IaXN0b3J5SXRlbS5jcHAKQEAgLTE5NiwxMCArMTk2LDEwIEBAIHZv
aWQgSGlzdG9yeUl0ZW06OnJlc2V0KCkKIAogICAgIG1faXRlbVNlcXVlbmNlTnVtYmVyID0gZ2Vu
ZXJhdGVTZXF1ZW5jZU51bWJlcigpOwogCi0gICAgbV9zdGF0ZU9iamVjdCA9IDA7CisgICAgbV9z
dGF0ZU9iamVjdCA9IG51bGxwdHI7CiAgICAgbV9kb2N1bWVudFNlcXVlbmNlTnVtYmVyID0gZ2Vu
ZXJhdGVTZXF1ZW5jZU51bWJlcigpOwogCi0gICAgbV9mb3JtRGF0YSA9IDA7CisgICAgbV9mb3Jt
RGF0YSA9IG51bGxwdHI7CiAgICAgbV9mb3JtQ29udGVudFR5cGUgPSBTdHJpbmcoKTsKIAogICAg
IGNsZWFyQ2hpbGRyZW4oKTsKQEAgLTUyNCw3ICs1MjQsNyBAQCB2b2lkIEhpc3RvcnlJdGVtOjpz
ZXRGb3JtSW5mb0Zyb21SZXF1ZXN0KGNvbnN0IFJlc291cmNlUmVxdWVzdCYgcmVxdWVzdCkKICAg
ICAgICAgbV9mb3JtRGF0YSA9IHJlcXVlc3QuaHR0cEJvZHkoKTsKICAgICAgICAgbV9mb3JtQ29u
dGVudFR5cGUgPSByZXF1ZXN0Lmh0dHBDb250ZW50VHlwZSgpOwogICAgIH0gZWxzZSB7Ci0gICAg
ICAgIG1fZm9ybURhdGEgPSAwOworICAgICAgICBtX2Zvcm1EYXRhID0gbnVsbHB0cjsKICAgICAg
ICAgbV9mb3JtQ29udGVudFR5cGUgPSBTdHJpbmcoKTsKICAgICB9CiB9CmRpZmYgLS1naXQgYS9T
b3VyY2UvV2ViQ29yZS9odG1sL0Jhc2VDaG9vc2VyT25seURhdGVBbmRUaW1lSW5wdXRUeXBlLmNw
cCBiL1NvdXJjZS9XZWJDb3JlL2h0bWwvQmFzZUNob29zZXJPbmx5RGF0ZUFuZFRpbWVJbnB1dFR5
cGUuY3BwCmluZGV4IGU5YTZjYzAzOTNjNTA1NTY4ZDUxMzQzYzY1N2E2YmRiYWQxYTk1MjMuLmRi
ZWEwZTk5YmQ5MzRjN2RiZGVhNTJkMjVkMDFjMmY4MTc1ZGMxZDAgMTAwNjQ0Ci0tLSBhL1NvdXJj
ZS9XZWJDb3JlL2h0bWwvQmFzZUNob29zZXJPbmx5RGF0ZUFuZFRpbWVJbnB1dFR5cGUuY3BwCisr
KyBiL1NvdXJjZS9XZWJDb3JlL2h0bWwvQmFzZUNob29zZXJPbmx5RGF0ZUFuZFRpbWVJbnB1dFR5
cGUuY3BwCkBAIC05OCw3ICs5OCw3IEBAIHZvaWQgQmFzZUNob29zZXJPbmx5RGF0ZUFuZFRpbWVJ
bnB1dFR5cGU6OmRpZENob29zZVZhbHVlKGNvbnN0IFN0cmluZyYgdmFsdWUpCiAKIHZvaWQgQmFz
ZUNob29zZXJPbmx5RGF0ZUFuZFRpbWVJbnB1dFR5cGU6OmRpZEVuZENob29zZXIoKQogewotICAg
IG1fZGF0ZVRpbWVDaG9vc2VyLmNsZWFyKCk7CisgICAgbV9kYXRlVGltZUNob29zZXIgPSBudWxs
cHRyOwogfQogCiB2b2lkIEJhc2VDaG9vc2VyT25seURhdGVBbmRUaW1lSW5wdXRUeXBlOjpjbG9z
ZURhdGVUaW1lQ2hvb3NlcigpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9odG1sL0ZUUERp
cmVjdG9yeURvY3VtZW50LmNwcCBiL1NvdXJjZS9XZWJDb3JlL2h0bWwvRlRQRGlyZWN0b3J5RG9j
dW1lbnQuY3BwCmluZGV4IGU3NTUzZDc0MzAzZGQ5NGRiMjYxMGRjZGQyYTE4MGY0ZjhlYjIwOWUu
LjAwZGU5ZmY1NzFhOGUzOGUyYzJkOGNjNWU5YzFiYzdjMjM5N2VlNjkgMTAwNjQ0Ci0tLSBhL1Nv
dXJjZS9XZWJDb3JlL2h0bWwvRlRQRGlyZWN0b3J5RG9jdW1lbnQuY3BwCisrKyBiL1NvdXJjZS9X
ZWJDb3JlL2h0bWwvRlRQRGlyZWN0b3J5RG9jdW1lbnQuY3BwCkBAIC00MTEsNyArNDExLDcgQEAg
dm9pZCBGVFBEaXJlY3RvcnlEb2N1bWVudFBhcnNlcjo6ZmluaXNoKCkKICAgICAgICAgbV9jYXJy
eU92ZXIgPSBTdHJpbmcoKTsKICAgICB9CiAKLSAgICBtX3RhYmxlRWxlbWVudCA9IDA7CisgICAg
bV90YWJsZUVsZW1lbnQgPSBudWxscHRyOwogICAgIGZhc3RGcmVlKG1fYnVmZmVyKTsKIAogICAg
IEhUTUxEb2N1bWVudFBhcnNlcjo6ZmluaXNoKCk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29y
ZS9odG1sL0ZpbGVJbnB1dFR5cGUuY3BwIGIvU291cmNlL1dlYkNvcmUvaHRtbC9GaWxlSW5wdXRU
eXBlLmNwcAppbmRleCBhM2QzYjZiNzExZmZlMWU4YWExYWZkZmZjMTg2ZWJjMGFmNTJjMTQ3Li40
ODlkNzk5MzhmY2ZkMjI2ZmM5OTRjMjYwZTZlNTUzNTNjNTRhZjI5IDEwMDY0NAotLS0gYS9Tb3Vy
Y2UvV2ViQ29yZS9odG1sL0ZpbGVJbnB1dFR5cGUuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2h0
bWwvRmlsZUlucHV0VHlwZS5jcHAKQEAgLTI1MCw3ICsyNTAsNyBAQCB2b2lkIEZpbGVJbnB1dFR5
cGU6OnNldFZhbHVlKGNvbnN0IFN0cmluZyYsIGJvb2wsIFRleHRGaWVsZEV2ZW50QmVoYXZpb3Ip
CiB7CiAgICAgLy8gRklYTUU6IFNob3VsZCB3ZSBjbGVhciB0aGUgZmlsZSBsaXN0LCBvciByZXBs
YWNlIGl0IHdpdGggYSBuZXcgZW1wdHkgb25lIGhlcmU/IFRoaXMgaXMgb2JzZXJ2YWJsZSBmcm9t
IEphdmFTY3JpcHQgdGhyb3VnaCBjdXN0b20gcHJvcGVydGllcy4KICAgICBtX2ZpbGVMaXN0LT5j
bGVhcigpOwotICAgIG1faWNvbi5jbGVhcigpOworICAgIG1faWNvbiA9IG51bGxwdHI7CiAgICAg
ZWxlbWVudCgpLnNldE5lZWRzU3R5bGVSZWNhbGMoKTsKIH0KIApkaWZmIC0tZ2l0IGEvU291cmNl
L1dlYkNvcmUvaHRtbC9IVE1MQ2FudmFzRWxlbWVudC5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9odG1s
L0hUTUxDYW52YXNFbGVtZW50LmNwcAppbmRleCA4NmQ0NWE0OGEwYzc2MmRhYjcyNmZkOTk2YWY3
MjQ2YzgxODc4NjYzLi5jZTVkN2IyYTVmMjdmNGM3NmY1MTBkNmVmNTk1ZTMwYWEyNTRhMzJhIDEw
MDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxDYW52YXNFbGVtZW50LmNwcAorKysg
Yi9Tb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxDYW52YXNFbGVtZW50LmNwcApAQCAtNDIzLDcgKzQy
Myw3IEBAIHZvaWQgSFRNTENhbnZhc0VsZW1lbnQ6Om1ha2VQcmVzZW50YXRpb25Db3B5KCkKIAog
dm9pZCBIVE1MQ2FudmFzRWxlbWVudDo6Y2xlYXJQcmVzZW50YXRpb25Db3B5KCkKIHsKLSAgICBt
X3ByZXNlbnRlZEltYWdlLmNsZWFyKCk7CisgICAgbV9wcmVzZW50ZWRJbWFnZSA9IG51bGxwdHI7
CiB9CiAKIHZvaWQgSFRNTENhbnZhc0VsZW1lbnQ6OnNldFN1cmZhY2VTaXplKGNvbnN0IEludFNp
emUmIHNpemUpCkBAIC02NDQsNyArNjQ0LDcgQEAgdm9pZCBIVE1MQ2FudmFzRWxlbWVudDo6Y2xl
YXJJbWFnZUJ1ZmZlcigpIGNvbnN0CiAKIHZvaWQgSFRNTENhbnZhc0VsZW1lbnQ6OmNsZWFyQ29w
aWVkSW1hZ2UoKQogewotICAgIG1fY29waWVkSW1hZ2UuY2xlYXIoKTsKKyAgICBtX2NvcGllZElt
YWdlID0gbnVsbHB0cjsKICAgICBtX2RpZENsZWFySW1hZ2VCdWZmZXIgPSBmYWxzZTsKIH0KIApk
aWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvaHRtbC9IVE1MTGlua0VsZW1lbnQuY3BwIGIvU291
cmNlL1dlYkNvcmUvaHRtbC9IVE1MTGlua0VsZW1lbnQuY3BwCmluZGV4IGMyM2VkZmYzYTJhYWVj
ZjFiMGRjMGE2NWU5ODQ5ZDU5OTJkNmFiMjcuLmU0ZTEyODExYzg0NTEzMjAzOGQ4N2NmM2JjNmM4
NDQ2MzNmMDBlZTEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTExpbmtFbGVt
ZW50LmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxMaW5rRWxlbWVudC5jcHAKQEAg
LTI2NCw3ICsyNjQsNyBAQCB2b2lkIEhUTUxMaW5rRWxlbWVudDo6Y2xlYXJTaGVldCgpCiAgICAg
QVNTRVJUKG1fc2hlZXQpOwogICAgIEFTU0VSVChtX3NoZWV0LT5vd25lck5vZGUoKSA9PSB0aGlz
KTsKICAgICBtX3NoZWV0LT5jbGVhck93bmVyTm9kZSgpOwotICAgIG1fc2hlZXQgPSAwOworICAg
IG1fc2hlZXQgPSBudWxscHRyOwogfQogCiBOb2RlOjpJbnNlcnRpb25Ob3RpZmljYXRpb25SZXF1
ZXN0IEhUTUxMaW5rRWxlbWVudDo6aW5zZXJ0ZWRJbnRvKENvbnRhaW5lck5vZGUmIGluc2VydGlv
blBvaW50KQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvaHRtbC9IVE1MTWVkaWFFbGVtZW50
LmNwcCBiL1NvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTE1lZGlhRWxlbWVudC5jcHAKaW5kZXggNGZl
YWViOTdjOTljMTg1MTU0ZDdmMzk5MzdmNGJlNWM2YzQzODNlMS4uZGQ4ODkyZjNjYjRjZDc4ZGQ0
ZmRmNzgwZmUyZTA1MWRhMmRjNDk2NiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvaHRtbC9I
VE1MTWVkaWFFbGVtZW50LmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxNZWRpYUVs
ZW1lbnQuY3BwCkBAIC00NTcsNyArNDU3LDcgQEAgSFRNTE1lZGlhRWxlbWVudDo6fkhUTUxNZWRp
YUVsZW1lbnQoKQogCiAgICAgaWYgKG1fbWVkaWFDb250cm9sbGVyKSB7CiAgICAgICAgIG1fbWVk
aWFDb250cm9sbGVyLT5yZW1vdmVNZWRpYUVsZW1lbnQodGhpcyk7Ci0gICAgICAgIG1fbWVkaWFD
b250cm9sbGVyID0gMDsKKyAgICAgICAgbV9tZWRpYUNvbnRyb2xsZXIgPSBudWxscHRyOwogICAg
IH0KIAogI2lmIEVOQUJMRShNRURJQV9TT1VSQ0UpCkBAIC05NDIsNyArOTQyLDcgQEAgdm9pZCBI
VE1MTWVkaWFFbGVtZW50OjpwcmVwYXJlRm9yTG9hZCgpCiAKICAgICAvLyAxIC0gQWJvcnQgYW55
IGFscmVhZHktcnVubmluZyBpbnN0YW5jZSBvZiB0aGUgcmVzb3VyY2Ugc2VsZWN0aW9uIGFsZ29y
aXRobSBmb3IgdGhpcyBlbGVtZW50LgogICAgIG1fbG9hZFN0YXRlID0gV2FpdGluZ0ZvclNvdXJj
ZTsKLSAgICBtX2N1cnJlbnRTb3VyY2VOb2RlID0gMDsKKyAgICBtX2N1cnJlbnRTb3VyY2VOb2Rl
ID0gbnVsbHB0cjsKIAogICAgIC8vIDIgLSBJZiB0aGVyZSBhcmUgYW55IHRhc2tzIGZyb20gdGhl
IG1lZGlhIGVsZW1lbnQncyBtZWRpYSBlbGVtZW50IGV2ZW50IHRhc2sgc291cmNlIGluIAogICAg
IC8vIG9uZSBvZiB0aGUgdGFzayBxdWV1ZXMsIHRoZW4gcmVtb3ZlIHRob3NlIHRhc2tzLgpAQCAt
MTAwNiw3ICsxMDA2LDcgQEAgdm9pZCBIVE1MTWVkaWFFbGVtZW50OjpwcmVwYXJlRm9yTG9hZCgp
CiAgICAgc2V0UGxheWJhY2tSYXRlKGRlZmF1bHRQbGF5YmFja1JhdGUoKSk7CiAKICAgICAvLyA2
IC0gU2V0IHRoZSBlcnJvciBhdHRyaWJ1dGUgdG8gbnVsbCBhbmQgdGhlIGF1dG9wbGF5aW5nIGZs
YWcgdG8gdHJ1ZS4KLSAgICBtX2Vycm9yID0gMDsKKyAgICBtX2Vycm9yID0gbnVsbHB0cjsKICAg
ICBtX2F1dG9wbGF5aW5nID0gdHJ1ZTsKIAogICAgIC8vIDcgLSBJbnZva2UgdGhlIG1lZGlhIGVs
ZW1lbnQncyByZXNvdXJjZSBzZWxlY3Rpb24gYWxnb3JpdGhtLgpAQCAtMTEwMSw3ICsxMTAxLDcg
QEAgdm9pZCBIVE1MTWVkaWFFbGVtZW50OjpzZWxlY3RNZWRpYVJlc291cmNlKCkKICAgICAgICAg
aWYgKGF1dG8gZmlyc3RTb3VyY2UgPSBjaGlsZHJlbk9mVHlwZTxIVE1MU291cmNlRWxlbWVudD4o
KnRoaXMpLmZpcnN0KCkpIHsKICAgICAgICAgICAgIG1vZGUgPSBjaGlsZHJlbjsKICAgICAgICAg
ICAgIG1fbmV4dENoaWxkTm9kZVRvQ29uc2lkZXIgPSBmaXJzdFNvdXJjZTsKLSAgICAgICAgICAg
IG1fY3VycmVudFNvdXJjZU5vZGUgPSAwOworICAgICAgICAgICAgbV9jdXJyZW50U291cmNlTm9k
ZSA9IG51bGxwdHI7CiAgICAgICAgIH0gZWxzZSB7CiAgICAgICAgICAgICAvLyBPdGhlcndpc2Ug
dGhlIG1lZGlhIGVsZW1lbnQgaGFzIG5laXRoZXIgYSBzcmMgYXR0cmlidXRlIG5vciBhIHNvdXJj
ZSBlbGVtZW50IAogICAgICAgICAgICAgLy8gY2hpbGQ6IHNldCB0aGUgbmV0d29ya1N0YXRlIHRv
IE5FVFdPUktfRU1QVFksIGFuZCBhYm9ydCB0aGVzZSBzdGVwczsgdGhlIApAQCAtMTI3Nyw3ICsx
Mjc3LDcgQEAgdm9pZCBIVE1MTWVkaWFFbGVtZW50Ojpsb2FkUmVzb3VyY2UoY29uc3QgVVJMJiBp
bml0aWFsVVJMLCBDb250ZW50VHlwZSYgY29udGVudFQKICAgICAgICAgZWxzZSB7CiAgICAgICAg
ICAgICAvLyBGb3JnZXQgb3VyIHJlZmVyZW5jZSB0byB0aGUgTWVkaWFTb3VyY2UsIHNvIHdlIGxl
YXZlIGl0IGFsb25lCiAgICAgICAgICAgICAvLyB3aGlsZSBwcm9jZXNzaW5nIHJlbWFpbmRlciBv
ZiBsb2FkIGZhaWx1cmUuCi0gICAgICAgICAgICBtX21lZGlhU291cmNlID0gMDsKKyAgICAgICAg
ICAgIG1fbWVkaWFTb3VyY2UgPSBudWxscHRyOwogICAgICAgICAgICAgbWVkaWFMb2FkaW5nRmFp
bGVkKE1lZGlhUGxheWVyOjpGb3JtYXRFcnJvcik7CiAgICAgICAgIH0KICAgICB9IGVsc2UKQEAg
LTE4MDAsNyArMTgwMCw3IEBAIHZvaWQgSFRNTE1lZGlhRWxlbWVudDo6bm9uZVN1cHBvcnRlZCgp
CiAKICAgICBzdG9wUGVyaW9kaWNUaW1lcnMoKTsKICAgICBtX2xvYWRTdGF0ZSA9IFdhaXRpbmdG
b3JTb3VyY2U7Ci0gICAgbV9jdXJyZW50U291cmNlTm9kZSA9IDA7CisgICAgbV9jdXJyZW50U291
cmNlTm9kZSA9IG51bGxwdHI7CiAKICAgICAvLyA0LjguMTAuNSAKICAgICAvLyA2IC0gUmVhY2hp
bmcgdGhpcyBzdGVwIGluZGljYXRlcyB0aGF0IHRoZSBtZWRpYSByZXNvdXJjZSBmYWlsZWQgdG8g
bG9hZCBvciB0aGF0IHRoZSBnaXZlbiAKQEAgLTI5MzksNyArMjkzOSw3IEBAIHZvaWQgSFRNTE1l
ZGlhRWxlbWVudDo6Y2xvc2VNZWRpYVNvdXJjZSgpCiAgICAgICAgIHJldHVybjsKIAogICAgIG1f
bWVkaWFTb3VyY2UtPmNsb3NlKCk7Ci0gICAgbV9tZWRpYVNvdXJjZSA9IDA7CisgICAgbV9tZWRp
YVNvdXJjZSA9IG51bGxwdHI7CiB9CiAjZW5kaWYKIApAQCAtNDExMiw4ICs0MTEyLDggQEAgY2hl
Y2tfYWdhaW46CiAgICAgICAgIG1fY3VycmVudFNvdXJjZU5vZGUgPSBzb3VyY2U7CiAgICAgICAg
IG1fbmV4dENoaWxkTm9kZVRvQ29uc2lkZXIgPSBzb3VyY2UtPm5leHRTaWJsaW5nKCk7CiAgICAg
fSBlbHNlIHsKLSAgICAgICAgbV9jdXJyZW50U291cmNlTm9kZSA9IDA7Ci0gICAgICAgIG1fbmV4
dENoaWxkTm9kZVRvQ29uc2lkZXIgPSAwOworICAgICAgICBtX2N1cnJlbnRTb3VyY2VOb2RlID0g
bnVsbHB0cjsKKyAgICAgICAgbV9uZXh0Q2hpbGROb2RlVG9Db25zaWRlciA9IG51bGxwdHI7CiAg
ICAgfQogCiAjaWYgIUxPR19ESVNBQkxFRApAQCAtNDE5Myw3ICs0MTkzLDcgQEAgdm9pZCBIVE1M
TWVkaWFFbGVtZW50Ojpzb3VyY2VXYXNSZW1vdmVkKEhUTUxTb3VyY2VFbGVtZW50KiBzb3VyY2Up
CiAgICAgICAgIC8vIENsZWFyIHRoZSBjdXJyZW50IHNvdXJjZSBub2RlIHBvaW50ZXIsIGJ1dCBk
b24ndCBjaGFuZ2UgdGhlIG1vdmllIGFzIHRoZSBzcGVjIHNheXM6CiAgICAgICAgIC8vIDQuOC44
IC0gRHluYW1pY2FsbHkgbW9kaWZ5aW5nIGEgc291cmNlIGVsZW1lbnQgYW5kIGl0cyBhdHRyaWJ1
dGUgd2hlbiB0aGUgZWxlbWVudCBpcyBhbHJlYWR5IAogICAgICAgICAvLyBpbnNlcnRlZCBpbiBh
IHZpZGVvIG9yIGF1ZGlvIGVsZW1lbnQgd2lsbCBoYXZlIG5vIGVmZmVjdC4KLSAgICAgICAgbV9j
dXJyZW50U291cmNlTm9kZSA9IDA7CisgICAgICAgIG1fY3VycmVudFNvdXJjZU5vZGUgPSBudWxs
cHRyOwogICAgICAgICBMT0coTWVkaWEsICJIVE1MTWVkaWFFbGVtZW50Ojpzb3VyY2VSZW1vdmVk
KCVwKSAtIG1fY3VycmVudFNvdXJjZU5vZGUgc2V0IHRvIDAiLCB0aGlzKTsKICAgICB9CiB9CkBA
IC00Nzk1LDcgKzQ3OTUsNyBAQCB2b2lkIEhUTUxNZWRpYUVsZW1lbnQ6OnVzZXJDYW5jZWxsZWRM
b2FkKCkKICAgICBzZXRTaG91bGREZWxheUxvYWRFdmVudChmYWxzZSk7CiAKICAgICAvLyA2IC0g
QWJvcnQgdGhlIG92ZXJhbGwgcmVzb3VyY2Ugc2VsZWN0aW9uIGFsZ29yaXRobS4KLSAgICBtX2N1
cnJlbnRTb3VyY2VOb2RlID0gMDsKKyAgICBtX2N1cnJlbnRTb3VyY2VOb2RlID0gbnVsbHB0cjsK
IAogICAgIC8vIFJlc2V0IG1fcmVhZHlTdGF0ZSBzaW5jZSBtX3BsYXllciBpcyBnb25lLgogICAg
IG1fcmVhZHlTdGF0ZSA9IEhBVkVfTk9USElORzsKQEAgLTQ4MTIsOCArNDgxMiw4IEBAIHZvaWQg
SFRNTE1lZGlhRWxlbWVudDo6Y2xlYXJNZWRpYVBsYXllcihpbnQgZmxhZ3MpCiAKICNpZiBVU0Uo
UExBVEZPUk1fVEVYVF9UUkFDS19NRU5VKQogICAgIGlmIChwbGF0Zm9ybVRleHRUcmFja01lbnUo
KSkgewotICAgICAgICBtX3BsYXRmb3JtTWVudS0+c2V0Q2xpZW50KDApOwotICAgICAgICBtX3Bs
YXRmb3JtTWVudSA9IDA7CisgICAgICAgIG1fcGxhdGZvcm1NZW51LT5zZXRDbGllbnQobnVsbHB0
cik7CisgICAgICAgIG1fcGxhdGZvcm1NZW51ID0gbnVsbHB0cjsKICAgICB9CiAjZW5kaWYKIApk
aWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvaHRtbC9IVE1MUGx1Z0luRWxlbWVudC5jcHAgYi9T
b3VyY2UvV2ViQ29yZS9odG1sL0hUTUxQbHVnSW5FbGVtZW50LmNwcAppbmRleCAyMjA0NmVhODQz
NTU2YzQ4MGYxM2I3OTU2MzJlNzkzY2ZhNzQzYTk5Li5kNzg2ZGY0ZmU4NzEwM2Y1MjAxM2FiN2Q3
Nzk5NzEwNDVkYTJjOTYxIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxQbHVn
SW5FbGVtZW50LmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxQbHVnSW5FbGVtZW50
LmNwcApAQCAtMTA0LDcgKzEwNCw3IEBAIGJvb2wgSFRNTFBsdWdJbkVsZW1lbnQ6OndpbGxSZXNw
b25kVG9Nb3VzZUNsaWNrRXZlbnRzKCkKIAogdm9pZCBIVE1MUGx1Z0luRWxlbWVudDo6d2lsbERl
dGFjaFJlbmRlcmVycygpCiB7Ci0gICAgbV9pbnN0YW5jZS5jbGVhcigpOworICAgIG1faW5zdGFu
Y2UgPSBudWxscHRyOwogCiAgICAgaWYgKG1faXNDYXB0dXJpbmdNb3VzZUV2ZW50cykgewogICAg
ICAgICBpZiAoRnJhbWUqIGZyYW1lID0gZG9jdW1lbnQoKS5mcmFtZSgpKQpAQCAtMTIyLDcgKzEy
Miw3IEBAIHZvaWQgSFRNTFBsdWdJbkVsZW1lbnQ6OndpbGxEZXRhY2hSZW5kZXJlcnMoKQogCiB2
b2lkIEhUTUxQbHVnSW5FbGVtZW50OjpyZXNldEluc3RhbmNlKCkKIHsKLSAgICBtX2luc3RhbmNl
LmNsZWFyKCk7CisgICAgbV9pbnN0YW5jZSA9IG51bGxwdHI7CiB9CiAKIFBhc3NSZWZQdHI8SlND
OjpCaW5kaW5nczo6SW5zdGFuY2U+IEhUTUxQbHVnSW5FbGVtZW50OjpnZXRJbnN0YW5jZSgpCmRp
ZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxUYWJsZUVsZW1lbnQuY3BwIGIvU291
cmNlL1dlYkNvcmUvaHRtbC9IVE1MVGFibGVFbGVtZW50LmNwcAppbmRleCA0ZmI2NTY5YWUyMWU5
NTczNjM3MDAyMzYwY2EzM2Y5YjUxNzJjNTVkLi43NDU3MzYxYjZlMTI1ZWFlZjk2NWFmNTQ1MzNi
ZjMzZjY4NDZlYWE3IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxUYWJsZUVs
ZW1lbnQuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTFRhYmxlRWxlbWVudC5jcHAK
QEAgLTQwMiw3ICs0MDIsNyBAQCB2b2lkIEhUTUxUYWJsZUVsZW1lbnQ6OnBhcnNlQXR0cmlidXRl
KGNvbnN0IFF1YWxpZmllZE5hbWUmIG5hbWUsIGNvbnN0IEF0b21pY1N0cgogICAgICAgICBIVE1M
RWxlbWVudDo6cGFyc2VBdHRyaWJ1dGUobmFtZSwgdmFsdWUpOwogCiAgICAgaWYgKGJvcmRlcnNC
ZWZvcmUgIT0gY2VsbEJvcmRlcnMoKSB8fCBvbGRQYWRkaW5nICE9IG1fcGFkZGluZykgewotICAg
ICAgICBtX3NoYXJlZENlbGxTdHlsZSA9IDA7CisgICAgICAgIG1fc2hhcmVkQ2VsbFN0eWxlID0g
bnVsbHB0cjsKICAgICAgICAgYm9vbCBjZWxsQ2hhbmdlZCA9IGZhbHNlOwogICAgICAgICBmb3Ig
KE5vZGUqIGNoaWxkID0gZmlyc3RDaGlsZCgpOyBjaGlsZDsgY2hpbGQgPSBjaGlsZC0+bmV4dFNp
YmxpbmcoKSkKICAgICAgICAgICAgIGNlbGxDaGFuZ2VkIHw9IHNldFRhYmxlQ2VsbHNDaGFuZ2Vk
KGNoaWxkKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2h0bWwvUGx1Z2luRG9jdW1lbnQu
Y3BwIGIvU291cmNlL1dlYkNvcmUvaHRtbC9QbHVnaW5Eb2N1bWVudC5jcHAKaW5kZXggNzc5NmMy
N2IzZGMxODcyY2I2MTFiNzg2NTFkNDIyNWVhMjM2MzQ5OC4uZTk2NzcwOTBmNGMzODUzYTdjZmYy
MDhiMjNjMzFkYzlkMjU0NDgyMSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvaHRtbC9QbHVn
aW5Eb2N1bWVudC5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvaHRtbC9QbHVnaW5Eb2N1bWVudC5j
cHAKQEAgLTE2OCw4ICsxNjgsOCBAQCB2b2lkIFBsdWdpbkRvY3VtZW50OjpzZXRQbHVnaW5FbGVt
ZW50KFBhc3NSZWZQdHI8SFRNTFBsdWdJbkVsZW1lbnQ+IGVsZW1lbnQpCiB2b2lkIFBsdWdpbkRv
Y3VtZW50OjpkZXRhY2hGcm9tUGx1Z2luRWxlbWVudCgpCiB7CiAgICAgLy8gUmVsZWFzZSB0aGUg
cGx1Z2luIEVsZW1lbnQgc28gdGhhdCB3ZSBkb24ndCBoYXZlIGEgY2lyY3VsYXIgcmVmZXJlbmNl
LgotICAgIG1fcGx1Z2luRWxlbWVudCA9IDA7Ci0gICAgZnJhbWUoKS0+bG9hZGVyKCkuY2xpZW50
KCkucmVkaXJlY3REYXRhVG9QbHVnaW4oMCk7CisgICAgbV9wbHVnaW5FbGVtZW50ID0gbnVsbHB0
cjsKKyAgICBmcmFtZSgpLT5sb2FkZXIoKS5jbGllbnQoKS5yZWRpcmVjdERhdGFUb1BsdWdpbihu
dWxscHRyKTsKIH0KIAogdm9pZCBQbHVnaW5Eb2N1bWVudDo6Y2FuY2VsTWFudWFsUGx1Z2luTG9h
ZCgpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9odG1sL1RleHRGaWVsZElucHV0VHlwZS5j
cHAgYi9Tb3VyY2UvV2ViQ29yZS9odG1sL1RleHRGaWVsZElucHV0VHlwZS5jcHAKaW5kZXggNGIy
OGFhOGRhMmQxYTU1ZGQ5ZWE0MjBlNDE0MmUxNGU3MzFiNzljNS4uZWFlM2RiMjllZWUzYzJkZTk1
ZmU3MTgwYzU0NmZmOGU3ZTJhNzY3ZSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvaHRtbC9U
ZXh0RmllbGRJbnB1dFR5cGUuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2h0bWwvVGV4dEZpZWxk
SW5wdXRUeXBlLmNwcApAQCAtNDYyLDcgKzQ2Miw3IEBAIHZvaWQgVGV4dEZpZWxkSW5wdXRUeXBl
Ojp1cGRhdGVQbGFjZWhvbGRlclRleHQoKQogICAgIGlmIChwbGFjZWhvbGRlclRleHQuaXNFbXB0
eSgpKSB7CiAgICAgICAgIGlmIChtX3BsYWNlaG9sZGVyKSB7CiAgICAgICAgICAgICBtX3BsYWNl
aG9sZGVyLT5wYXJlbnROb2RlKCktPnJlbW92ZUNoaWxkKG1fcGxhY2Vob2xkZXIuZ2V0KCksIEFT
U0VSVF9OT19FWENFUFRJT04pOwotICAgICAgICAgICAgbV9wbGFjZWhvbGRlci5jbGVhcigpOwor
ICAgICAgICAgICAgbV9wbGFjZWhvbGRlciA9IG51bGxwdHI7CiAgICAgICAgIH0KICAgICAgICAg
cmV0dXJuOwogICAgIH0KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2h0bWwvVmFsaWRhdGlv
bk1lc3NhZ2UuY3BwIGIvU291cmNlL1dlYkNvcmUvaHRtbC9WYWxpZGF0aW9uTWVzc2FnZS5jcHAK
aW5kZXggNTNiNjc1YmMyYjQ5NDY3NGU3YmZjNWJhMzliNjliNjZmODk1ZjBiOC4uZjYxZTFiNWVm
ZTI3MDkzMWRhYjBlYzJlZWRmMGYzNGJkNzc4MmI5NiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNv
cmUvaHRtbC9WYWxpZGF0aW9uTWVzc2FnZS5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvaHRtbC9W
YWxpZGF0aW9uTWVzc2FnZS5jcHAKQEAgLTIzNSwxMCArMjM1LDEwIEBAIHZvaWQgVmFsaWRhdGlv
bk1lc3NhZ2U6OmRlbGV0ZUJ1YmJsZVRyZWUoKQogewogICAgIEFTU0VSVCghdmFsaWRhdGlvbk1l
c3NhZ2VDbGllbnQoKSk7CiAgICAgaWYgKG1fYnViYmxlKSB7Ci0gICAgICAgIG1fbWVzc2FnZUhl
YWRpbmcgPSAwOwotICAgICAgICBtX21lc3NhZ2VCb2R5ID0gMDsKKyAgICAgICAgbV9tZXNzYWdl
SGVhZGluZyA9IG51bGxwdHI7CisgICAgICAgIG1fbWVzc2FnZUJvZHkgPSBudWxscHRyOwogICAg
ICAgICBtX2VsZW1lbnQtPnVzZXJBZ2VudFNoYWRvd1Jvb3QoKS0+cmVtb3ZlQ2hpbGQobV9idWJi
bGUuZ2V0KCksIEFTU0VSVF9OT19FWENFUFRJT04pOwotICAgICAgICBtX2J1YmJsZSA9IDA7Cisg
ICAgICAgIG1fYnViYmxlID0gbnVsbHB0cjsKICAgICB9CiAgICAgbV9tZXNzYWdlID0gU3RyaW5n
KCk7CiB9CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9odG1sL2NhbnZhcy9XZWJHTFByb2dy
YW0uY3BwIGIvU291cmNlL1dlYkNvcmUvaHRtbC9jYW52YXMvV2ViR0xQcm9ncmFtLmNwcAppbmRl
eCA5MmMwNTExOTAxZDMwNmMzODUzOWQ1NTMzOThmMTUwMmIzZjBhZGFjLi4xYjc1MmU2ZTBmZGI0
YmE2M2M5M2JjMmU3NTMwNjI1NjVjMmQ0Y2Q3IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9o
dG1sL2NhbnZhcy9XZWJHTFByb2dyYW0uY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2h0bWwvY2Fu
dmFzL1dlYkdMUHJvZ3JhbS5jcHAKQEAgLTU4LDExICs1OCwxMSBAQCB2b2lkIFdlYkdMUHJvZ3Jh
bTo6ZGVsZXRlT2JqZWN0SW1wbChHcmFwaGljc0NvbnRleHQzRCogY29udGV4dDNkLCBQbGF0Zm9y
bTNET2JqZQogICAgIGNvbnRleHQzZC0+ZGVsZXRlUHJvZ3JhbShvYmopOwogICAgIGlmIChtX3Zl
cnRleFNoYWRlcikgewogICAgICAgICBtX3ZlcnRleFNoYWRlci0+b25EZXRhY2hlZChjb250ZXh0
M2QpOwotICAgICAgICBtX3ZlcnRleFNoYWRlciA9IDA7CisgICAgICAgIG1fdmVydGV4U2hhZGVy
ID0gbnVsbHB0cjsKICAgICB9CiAgICAgaWYgKG1fZnJhZ21lbnRTaGFkZXIpIHsKICAgICAgICAg
bV9mcmFnbWVudFNoYWRlci0+b25EZXRhY2hlZChjb250ZXh0M2QpOwotICAgICAgICBtX2ZyYWdt
ZW50U2hhZGVyID0gMDsKKyAgICAgICAgbV9mcmFnbWVudFNoYWRlciA9IG51bGxwdHI7CiAgICAg
fQogfQogCkBAIC0xNDgsMTIgKzE0OCwxMiBAQCBib29sIFdlYkdMUHJvZ3JhbTo6ZGV0YWNoU2hh
ZGVyKFdlYkdMU2hhZGVyKiBzaGFkZXIpCiAgICAgY2FzZSBHcmFwaGljc0NvbnRleHQzRDo6VkVS
VEVYX1NIQURFUjoKICAgICAgICAgaWYgKG1fdmVydGV4U2hhZGVyICE9IHNoYWRlcikKICAgICAg
ICAgICAgIHJldHVybiBmYWxzZTsKLSAgICAgICAgbV92ZXJ0ZXhTaGFkZXIgPSAwOworICAgICAg
ICBtX3ZlcnRleFNoYWRlciA9IG51bGxwdHI7CiAgICAgICAgIHJldHVybiB0cnVlOwogICAgIGNh
c2UgR3JhcGhpY3NDb250ZXh0M0Q6OkZSQUdNRU5UX1NIQURFUjoKICAgICAgICAgaWYgKG1fZnJh
Z21lbnRTaGFkZXIgIT0gc2hhZGVyKQogICAgICAgICAgICAgcmV0dXJuIGZhbHNlOwotICAgICAg
ICBtX2ZyYWdtZW50U2hhZGVyID0gMDsKKyAgICAgICAgbV9mcmFnbWVudFNoYWRlciA9IG51bGxw
dHI7CiAgICAgICAgIHJldHVybiB0cnVlOwogICAgIGRlZmF1bHQ6CiAgICAgICAgIHJldHVybiBm
YWxzZTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2h0bWwvY2FudmFzL1dlYkdMUmVuZGVy
aW5nQ29udGV4dEJhc2UuY3BwIGIvU291cmNlL1dlYkNvcmUvaHRtbC9jYW52YXMvV2ViR0xSZW5k
ZXJpbmdDb250ZXh0QmFzZS5jcHAKaW5kZXggYjY2YjY2OTA0YjE0ZmZkZTJmMzM5YWQ2ZGEyNzZm
NmQ3NmMxYjRhMy4uN2ExY2ZmM2YyODNhODg4NmMxNzIzYWEwM2ZkZjk3MTkxY2VkZmU1OCAxMDA2
NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvaHRtbC9jYW52YXMvV2ViR0xSZW5kZXJpbmdDb250ZXh0
QmFzZS5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvaHRtbC9jYW52YXMvV2ViR0xSZW5kZXJpbmdD
b250ZXh0QmFzZS5jcHAKQEAgLTQ5NCwxMCArNDk0LDEwIEBAIHZvaWQgV2ViR0xSZW5kZXJpbmdD
b250ZXh0QmFzZTo6aW5pdGlhbGl6ZU5ld0NvbnRleHQoKQogICAgIG1fdW5wYWNrRmxpcFkgPSBm
YWxzZTsKICAgICBtX3VucGFja1ByZW11bHRpcGx5QWxwaGEgPSBmYWxzZTsKICAgICBtX3VucGFj
a0NvbG9yc3BhY2VDb252ZXJzaW9uID0gR3JhcGhpY3NDb250ZXh0M0Q6OkJST1dTRVJfREVGQVVM
VF9XRUJHTDsKLSAgICBtX2JvdW5kQXJyYXlCdWZmZXIgPSAwOwotICAgIG1fY3VycmVudFByb2dy
YW0gPSAwOwotICAgIG1fZnJhbWVidWZmZXJCaW5kaW5nID0gMDsKLSAgICBtX3JlbmRlcmJ1ZmZl
ckJpbmRpbmcgPSAwOworICAgIG1fYm91bmRBcnJheUJ1ZmZlciA9IG51bGxwdHI7CisgICAgbV9j
dXJyZW50UHJvZ3JhbSA9IG51bGxwdHI7CisgICAgbV9mcmFtZWJ1ZmZlckJpbmRpbmcgPSBudWxs
cHRyOworICAgIG1fcmVuZGVyYnVmZmVyQmluZGluZyA9IG51bGxwdHI7CiAgICAgbV9kZXB0aE1h
c2sgPSB0cnVlOwogICAgIG1fc3RlbmNpbEVuYWJsZWQgPSBmYWxzZTsKICAgICBtX3N0ZW5jaWxN
YXNrID0gMHhGRkZGRkZGRjsKQEAgLTYyMyw3ICs2MjMsNyBAQCB2b2lkIFdlYkdMUmVuZGVyaW5n
Q29udGV4dEJhc2U6OmRlc3Ryb3lHcmFwaGljc0NvbnRleHQzRCgpCiAgICAgaWYgKG1fY29udGV4
dCkgewogICAgICAgICBtX2NvbnRleHQtPnNldENvbnRleHRMb3N0Q2FsbGJhY2sobnVsbHB0cik7
CiAgICAgICAgIG1fY29udGV4dC0+c2V0RXJyb3JNZXNzYWdlQ2FsbGJhY2sobnVsbHB0cik7Ci0g
ICAgICAgIG1fY29udGV4dC5jbGVhcigpOworICAgICAgICBtX2NvbnRleHQgPSBudWxscHRyOwog
ICAgIH0KIH0KIApAQCAtMTQ3OSw3ICsxNDc5LDcgQEAgdm9pZCBXZWJHTFJlbmRlcmluZ0NvbnRl
eHRCYXNlOjpkZWxldGVCdWZmZXIoV2ViR0xCdWZmZXIqIGJ1ZmZlcikKICAgICBpZiAoIWRlbGV0
ZU9iamVjdChidWZmZXIpKQogICAgICAgICByZXR1cm47CiAgICAgaWYgKG1fYm91bmRBcnJheUJ1
ZmZlciA9PSBidWZmZXIpCi0gICAgICAgIG1fYm91bmRBcnJheUJ1ZmZlciA9IDA7CisgICAgICAg
IG1fYm91bmRBcnJheUJ1ZmZlciA9IG51bGxwdHI7CiAKICAgICBtX2JvdW5kVmVydGV4QXJyYXlP
YmplY3QtPnVuYmluZEJ1ZmZlcihidWZmZXIpOwogfQpAQCAtMTQ4OSw3ICsxNDg5LDcgQEAgdm9p
ZCBXZWJHTFJlbmRlcmluZ0NvbnRleHRCYXNlOjpkZWxldGVGcmFtZWJ1ZmZlcihXZWJHTEZyYW1l
YnVmZmVyKiBmcmFtZWJ1ZmZlcikKICAgICBpZiAoIWRlbGV0ZU9iamVjdChmcmFtZWJ1ZmZlcikp
CiAgICAgICAgIHJldHVybjsKICAgICBpZiAoZnJhbWVidWZmZXIgPT0gbV9mcmFtZWJ1ZmZlckJp
bmRpbmcpIHsKLSAgICAgICAgbV9mcmFtZWJ1ZmZlckJpbmRpbmcgPSAwOworICAgICAgICBtX2Zy
YW1lYnVmZmVyQmluZGluZyA9IG51bGxwdHI7CiAgICAgICAgIG1fY29udGV4dC0+YmluZEZyYW1l
YnVmZmVyKEdyYXBoaWNzQ29udGV4dDNEOjpGUkFNRUJVRkZFUiwgMCk7CiAgICAgfQogfQpAQCAt
MTUwNiw3ICsxNTA2LDcgQEAgdm9pZCBXZWJHTFJlbmRlcmluZ0NvbnRleHRCYXNlOjpkZWxldGVS
ZW5kZXJidWZmZXIoV2ViR0xSZW5kZXJidWZmZXIqIHJlbmRlcmJ1ZmYKICAgICBpZiAoIWRlbGV0
ZU9iamVjdChyZW5kZXJidWZmZXIpKQogICAgICAgICByZXR1cm47CiAgICAgaWYgKHJlbmRlcmJ1
ZmZlciA9PSBtX3JlbmRlcmJ1ZmZlckJpbmRpbmcpCi0gICAgICAgIG1fcmVuZGVyYnVmZmVyQmlu
ZGluZyA9IDA7CisgICAgICAgIG1fcmVuZGVyYnVmZmVyQmluZGluZyA9IG51bGxwdHI7CiAgICAg
aWYgKG1fZnJhbWVidWZmZXJCaW5kaW5nKQogICAgICAgICBtX2ZyYW1lYnVmZmVyQmluZGluZy0+
cmVtb3ZlQXR0YWNobWVudEZyb21Cb3VuZEZyYW1lYnVmZmVyKHJlbmRlcmJ1ZmZlcik7CiB9CmRp
ZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9odG1sL2NhbnZhcy9XZWJHTFZlcnRleEFycmF5T2Jq
ZWN0QmFzZS5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9odG1sL2NhbnZhcy9XZWJHTFZlcnRleEFycmF5
T2JqZWN0QmFzZS5jcHAKaW5kZXggZjZkOGRhNjZlODAxNDc5NzhmODE3NTdjNjNiZTQ2ZWFjNjk1
NTg0OS4uZjM5YzBkZGQyMjc3OWQwNWYxNjBkMTk3OTU2MzE4YTYwMGViOTNjYyAxMDA2NDQKLS0t
IGEvU291cmNlL1dlYkNvcmUvaHRtbC9jYW52YXMvV2ViR0xWZXJ0ZXhBcnJheU9iamVjdEJhc2Uu
Y3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2h0bWwvY2FudmFzL1dlYkdMVmVydGV4QXJyYXlPYmpl
Y3RCYXNlLmNwcApAQCAtNzYsNyArNzYsNyBAQCB2b2lkIFdlYkdMVmVydGV4QXJyYXlPYmplY3RC
YXNlOjp1bmJpbmRCdWZmZXIoUGFzc1JlZlB0cjxXZWJHTEJ1ZmZlcj4gYnVmZmVyKQogewogICAg
IGlmIChtX2JvdW5kRWxlbWVudEFycmF5QnVmZmVyID09IGJ1ZmZlcikgewogICAgICAgICBtX2Jv
dW5kRWxlbWVudEFycmF5QnVmZmVyLT5vbkRldGFjaGVkKGNvbnRleHQoKS0+Z3JhcGhpY3NDb250
ZXh0M0QoKSk7Ci0gICAgICAgIG1fYm91bmRFbGVtZW50QXJyYXlCdWZmZXIgPSAwOworICAgICAg
ICBtX2JvdW5kRWxlbWVudEFycmF5QnVmZmVyID0gbnVsbHB0cjsKICAgICB9CiAgICAgCiAgICAg
Zm9yIChzaXplX3QgaSA9IDA7IGkgPCBtX3ZlcnRleEF0dHJpYlN0YXRlLnNpemUoKTsgKytpKSB7
CkBAIC05NSw3ICs5NSw3IEBAIHZvaWQgV2ViR0xWZXJ0ZXhBcnJheU9iamVjdEJhc2U6OnVuYmlu
ZEJ1ZmZlcihQYXNzUmVmUHRyPFdlYkdMQnVmZmVyPiBidWZmZXIpCiAgICAgICAgICAgICAgICAg
c3RhdGUub3JpZ2luYWxTdHJpZGUgPSAwOwogICAgICAgICAgICAgICAgIHN0YXRlLm9mZnNldCA9
IDA7CiAgICAgICAgICAgICB9IGVsc2UKLSAgICAgICAgICAgICAgICBzdGF0ZS5idWZmZXJCaW5k
aW5nID0gMDsKKyAgICAgICAgICAgICAgICBzdGF0ZS5idWZmZXJCaW5kaW5nID0gbnVsbHB0cjsK
ICAgICAgICAgfQogICAgIH0KIH0KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2h0bWwvdHJh
Y2svVGV4dFRyYWNrLmNwcCBiL1NvdXJjZS9XZWJDb3JlL2h0bWwvdHJhY2svVGV4dFRyYWNrLmNw
cAppbmRleCA3NGVjZjE2ZDcwOTc2NmY0YWYxZjQ1ZGMyMDZjMmRlYzYzMzZhNmYxLi4yYTEzM2E1
ZmNlYWZlM2M3YjNiYzE4NmFkMmI4NTcwZjYxMmVkMzE5IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2Vi
Q29yZS9odG1sL3RyYWNrL1RleHRUcmFjay5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvaHRtbC90
cmFjay9UZXh0VHJhY2suY3BwCkBAIC0yNDUsNyArMjQ1LDcgQEAgVGV4dFRyYWNrQ3VlTGlzdCog
VGV4dFRyYWNrOjpjdWVzKCkKICAgICAvLyBodHRwOi8vd3d3LndoYXR3Zy5vcmcvc3BlY3Mvd2Vi
LWFwcHMvY3VycmVudC13b3JrLyNkb20tdGV4dHRyYWNrLWN1ZXMKICAgICBpZiAobV9tb2RlICE9
IGRpc2FibGVkS2V5d29yZCgpKQogICAgICAgICByZXR1cm4gZW5zdXJlVGV4dFRyYWNrQ3VlTGlz
dCgpOwotICAgIHJldHVybiAwOworICAgIHJldHVybiBudWxscHRyOwogfQogCiB2b2lkIFRleHRU
cmFjazo6cmVtb3ZlQWxsQ3VlcygpCkBAIC0yNTcsOSArMjU3LDkgQEAgdm9pZCBUZXh0VHJhY2s6
OnJlbW92ZUFsbEN1ZXMoKQogICAgICAgICBtX2NsaWVudC0+dGV4dFRyYWNrUmVtb3ZlQ3Vlcyh0
aGlzLCBtX2N1ZXMuZ2V0KCkpOwogICAgIAogICAgIGZvciAoc2l6ZV90IGkgPSAwOyBpIDwgbV9j
dWVzLT5sZW5ndGgoKTsgKytpKQotICAgICAgICBtX2N1ZXMtPml0ZW0oaSktPnNldFRyYWNrKDAp
OworICAgICAgICBtX2N1ZXMtPml0ZW0oaSktPnNldFRyYWNrKG51bGxwdHIpOwogICAgIAotICAg
IG1fY3VlcyA9IDA7CisgICAgbV9jdWVzID0gbnVsbHB0cjsKIH0KIAogVGV4dFRyYWNrQ3VlTGlz
dCogVGV4dFRyYWNrOjphY3RpdmVDdWVzKCkgY29uc3QKQEAgLTI3Miw3ICsyNzIsNyBAQCBUZXh0
VHJhY2tDdWVMaXN0KiBUZXh0VHJhY2s6OmFjdGl2ZUN1ZXMoKSBjb25zdAogICAgIC8vIGh0dHA6
Ly93d3cud2hhdHdnLm9yZy9zcGVjcy93ZWItYXBwcy9jdXJyZW50LXdvcmsvI2RvbS10ZXh0dHJh
Y2stYWN0aXZlY3VlcwogICAgIGlmIChtX2N1ZXMgJiYgbV9tb2RlICE9IGRpc2FibGVkS2V5d29y
ZCgpKQogICAgICAgICByZXR1cm4gbV9jdWVzLT5hY3RpdmVDdWVzKCk7Ci0gICAgcmV0dXJuIDA7
CisgICAgcmV0dXJuIG51bGxwdHI7CiB9CiAKIHZvaWQgVGV4dFRyYWNrOjphZGRDdWUoUGFzc1Jl
ZlB0cjxUZXh0VHJhY2tDdWU+IHBycEN1ZSwgRXhjZXB0aW9uQ29kZSYgZWMpCmRpZmYgLS1naXQg
YS9Tb3VyY2UvV2ViQ29yZS9odG1sL3RyYWNrL1ZUVEN1ZS5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9o
dG1sL3RyYWNrL1ZUVEN1ZS5jcHAKaW5kZXggMzRhMmVlNzk2YTg4ODAwNjkwMzI4ODNjMzFlYjhm
ZjE1ZTc0N2JkMy4uMGI5YzcxNzkzMGJmMDY3YjVlYTIzZTUxNDMxZjlmY2VhOTdkNmJiNSAxMDA2
NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvaHRtbC90cmFjay9WVFRDdWUuY3BwCisrKyBiL1NvdXJj
ZS9XZWJDb3JlL2h0bWwvdHJhY2svVlRUQ3VlLmNwcApAQCAtNDgyLDcgKzQ4Miw3IEBAIHZvaWQg
VlRUQ3VlOjpzZXRUZXh0KGNvbnN0IFN0cmluZyYgdGV4dCkKICAgICB3aWxsQ2hhbmdlKCk7CiAg
ICAgLy8gQ2xlYXIgdGhlIGRvY3VtZW50IGZyYWdtZW50IGJ1dCBkb24ndCBib3RoZXIgdG8gY3Jl
YXRlIGl0IGFnYWluIGp1c3QgeWV0IGFzIHdlIGNhbiBkbyB0aGF0CiAgICAgLy8gd2hlbiBpdCBp
cyByZXF1ZXN0ZWQuCi0gICAgbV93ZWJWVFROb2RlVHJlZSA9IDA7CisgICAgbV93ZWJWVFROb2Rl
VHJlZSA9IG51bGxwdHI7CiAgICAgbV9jb250ZW50ID0gdGV4dDsKICAgICBkaWRDaGFuZ2UoKTsK
IH0KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9JbnNwZWN0b3JBcHBsaWNh
dGlvbkNhY2hlQWdlbnQuY3BwIGIvU291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL0luc3BlY3RvckFw
cGxpY2F0aW9uQ2FjaGVBZ2VudC5jcHAKaW5kZXggZmQ0Y2FmNjIxNDExOWE4NDQ3YzAyOTQ1NzQw
NGYxZjUyYmM4ZTM3YS4uMmRjZDI2ZTk5YmYzYTA3YTY3NjA4YWFlMTJkNTc0NDM5MDVhNjI2NSAx
MDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL0luc3BlY3RvckFwcGxpY2F0aW9u
Q2FjaGVBZ2VudC5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL0luc3BlY3RvckFw
cGxpY2F0aW9uQ2FjaGVBZ2VudC5jcHAKQEAgLTU4LDcgKzU4LDcgQEAgdm9pZCBJbnNwZWN0b3JB
cHBsaWNhdGlvbkNhY2hlQWdlbnQ6OmRpZENyZWF0ZUZyb250ZW5kQW5kQmFja2VuZChGcm9udGVu
ZENoYW5uZWwKIHZvaWQgSW5zcGVjdG9yQXBwbGljYXRpb25DYWNoZUFnZW50Ojp3aWxsRGVzdHJv
eUZyb250ZW5kQW5kQmFja2VuZChJbnNwZWN0b3I6OkRpc2Nvbm5lY3RSZWFzb24pCiB7CiAgICAg
bV9mcm9udGVuZERpc3BhdGNoZXIgPSBudWxscHRyOwotICAgIG1fYmFja2VuZERpc3BhdGNoZXIu
Y2xlYXIoKTsKKyAgICBtX2JhY2tlbmREaXNwYXRjaGVyID0gbnVsbHB0cjsKIAogICAgIG1faW5z
dHJ1bWVudGluZ0FnZW50cy0+c2V0SW5zcGVjdG9yQXBwbGljYXRpb25DYWNoZUFnZW50KG51bGxw
dHIpOwogfQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL0luc3BlY3RvckNT
U0FnZW50LmNwcCBiL1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9JbnNwZWN0b3JDU1NBZ2VudC5j
cHAKaW5kZXggYTkwODNkMDgxNDI3YjljMDE5MTg5ZTZjNDliODE0NjJlZjM2MzU5ZS4uM2QwNjIw
ODM0ZWIyOGNkZmQwNmI1OGNkNjYyNmJhM2MxNDhlNzE5MSAxMDA2NDQKLS0tIGEvU291cmNlL1dl
YkNvcmUvaW5zcGVjdG9yL0luc3BlY3RvckNTU0FnZW50LmNwcAorKysgYi9Tb3VyY2UvV2ViQ29y
ZS9pbnNwZWN0b3IvSW5zcGVjdG9yQ1NTQWdlbnQuY3BwCkBAIC0zNjAsNyArMzYwLDcgQEAgdm9p
ZCBJbnNwZWN0b3JDU1NBZ2VudDo6ZGlkQ3JlYXRlRnJvbnRlbmRBbmRCYWNrZW5kKEluc3BlY3Rv
cjo6RnJvbnRlbmRDaGFubmVsKgogdm9pZCBJbnNwZWN0b3JDU1NBZ2VudDo6d2lsbERlc3Ryb3lG
cm9udGVuZEFuZEJhY2tlbmQoSW5zcGVjdG9yOjpEaXNjb25uZWN0UmVhc29uKQogewogICAgIG1f
ZnJvbnRlbmREaXNwYXRjaGVyID0gbnVsbHB0cjsKLSAgICBtX2JhY2tlbmREaXNwYXRjaGVyLmNs
ZWFyKCk7CisgICAgbV9iYWNrZW5kRGlzcGF0Y2hlciA9IG51bGxwdHI7CiAKICAgICByZXNldE5v
blBlcnNpc3RlbnREYXRhKCk7CiB9CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0
b3IvSW5zcGVjdG9yQ29udHJvbGxlci5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvSW5z
cGVjdG9yQ29udHJvbGxlci5jcHAKaW5kZXggZjIzYTVlYTBlZTU2ZDA1ZTE0NDUxMDZhNzI1YWMx
Yzk2YTQ2OGU5OS4uYmM4MGJjYTI5Yzk1MTQ3NzdkYTA0ZGMxY2FlMWI3NTFjZjlmZjhhZiAxMDA2
NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL0luc3BlY3RvckNvbnRyb2xsZXIuY3Bw
CisrKyBiL1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9JbnNwZWN0b3JDb250cm9sbGVyLmNwcApA
QCAtMjYzLDcgKzI2Myw3IEBAIHZvaWQgSW5zcGVjdG9yQ29udHJvbGxlcjo6ZGlzY29ubmVjdEZy
b250ZW5kKERpc2Nvbm5lY3RSZWFzb24gcmVhc29uKQogICAgIG1fYWdlbnRzLndpbGxEZXN0cm95
RnJvbnRlbmRBbmRCYWNrZW5kKHJlYXNvbik7CiAKICAgICBtX2JhY2tlbmREaXNwYXRjaGVyLT5j
bGVhckZyb250ZW5kKCk7Ci0gICAgbV9iYWNrZW5kRGlzcGF0Y2hlci5jbGVhcigpOworICAgIG1f
YmFja2VuZERpc3BhdGNoZXIgPSBudWxscHRyOwogICAgIG1fZnJvbnRlbmRDaGFubmVsID0gbnVs
bHB0cjsKIAogICAgIG1faXNBdXRvbWF0aWNJbnNwZWN0aW9uID0gZmFsc2U7CmRpZmYgLS1naXQg
YS9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvSW5zcGVjdG9yRE9NQWdlbnQuY3BwIGIvU291cmNl
L1dlYkNvcmUvaW5zcGVjdG9yL0luc3BlY3RvckRPTUFnZW50LmNwcAppbmRleCAwZWQyYzVjMDRm
YWEzYjFjYzhiYjA1ZDQ5YWQ5NmE2ZDE5NzEyY2ExLi43MTlmNzYxZGU1NmQ5MDkxNTRhZjE2MjE2
MGUwMmExNDZjYTYyNjJkIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvSW5z
cGVjdG9yRE9NQWdlbnQuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9JbnNwZWN0
b3JET01BZ2VudC5jcHAKQEAgLTIzOCw3ICsyMzgsNyBAQCB2b2lkIEluc3BlY3RvckRPTUFnZW50
OjpkaWRDcmVhdGVGcm9udGVuZEFuZEJhY2tlbmQoSW5zcGVjdG9yOjpGcm9udGVuZENoYW5uZWwq
CiB2b2lkIEluc3BlY3RvckRPTUFnZW50Ojp3aWxsRGVzdHJveUZyb250ZW5kQW5kQmFja2VuZChJ
bnNwZWN0b3I6OkRpc2Nvbm5lY3RSZWFzb24pCiB7CiAgICAgbV9mcm9udGVuZERpc3BhdGNoZXIg
PSBudWxscHRyOwotICAgIG1fYmFja2VuZERpc3BhdGNoZXIuY2xlYXIoKTsKKyAgICBtX2JhY2tl
bmREaXNwYXRjaGVyID0gbnVsbHB0cjsKIAogICAgIG1faGlzdG9yeS5yZXNldCgpOwogICAgIG1f
ZG9tRWRpdG9yLnJlc2V0KCk7CkBAIC0yNzIsNyArMjcyLDcgQEAgdm9pZCBJbnNwZWN0b3JET01B
Z2VudDo6cmVzZXQoKQogICAgIGRpc2NhcmRCaW5kaW5ncygpOwogICAgIGlmIChtX3JldmFsaWRh
dGVTdHlsZUF0dHJUYXNrKQogICAgICAgICBtX3JldmFsaWRhdGVTdHlsZUF0dHJUYXNrLT5yZXNl
dCgpOwotICAgIG1fZG9jdW1lbnQgPSAwOworICAgIG1fZG9jdW1lbnQgPSBudWxscHRyOwogfQog
CiB2b2lkIEluc3BlY3RvckRPTUFnZW50OjpzZXRET01MaXN0ZW5lcihET01MaXN0ZW5lciogbGlz
dGVuZXIpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvSW5zcGVjdG9yRE9N
RGVidWdnZXJBZ2VudC5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvSW5zcGVjdG9yRE9N
RGVidWdnZXJBZ2VudC5jcHAKaW5kZXggZjc3OGRkOTYyY2IyZGRjMTYwNjMxNzQ2YTk5NWJkZGEw
YTliMjc4Yi4uZDUxZDRiZWFlOTEyMjM1MDdiNmM0NDY3Nzk0NGNiMjdiYTM2YzQ2NCAxMDA2NDQK
LS0tIGEvU291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL0luc3BlY3RvckRPTURlYnVnZ2VyQWdlbnQu
Y3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9JbnNwZWN0b3JET01EZWJ1Z2dlckFn
ZW50LmNwcApAQCAtMTA5LDcgKzEwOSw3IEBAIHZvaWQgSW5zcGVjdG9yRE9NRGVidWdnZXJBZ2Vu
dDo6ZGlkQ3JlYXRlRnJvbnRlbmRBbmRCYWNrZW5kKEluc3BlY3Rvcjo6RnJvbnRlbmRDCiAKIHZv
aWQgSW5zcGVjdG9yRE9NRGVidWdnZXJBZ2VudDo6d2lsbERlc3Ryb3lGcm9udGVuZEFuZEJhY2tl
bmQoSW5zcGVjdG9yOjpEaXNjb25uZWN0UmVhc29uKQogewotICAgIG1fYmFja2VuZERpc3BhdGNo
ZXIuY2xlYXIoKTsKKyAgICBtX2JhY2tlbmREaXNwYXRjaGVyID0gbnVsbHB0cjsKIAogICAgIGRp
c2FibGUoKTsKIH0KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9JbnNwZWN0
b3JET01TdG9yYWdlQWdlbnQuY3BwIGIvU291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL0luc3BlY3Rv
ckRPTVN0b3JhZ2VBZ2VudC5jcHAKaW5kZXggYjE2ODdjZjU0ODUzZjYyMmY1MmE2NzY4YzkyY2Nm
NDI1OGU3YTVmMS4uMDRhZjg4YmNlM2RjMDA1MTQ4NWIzZTJhNTBkOTcxNjAxN2MyZjY5ZiAxMDA2
NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL0luc3BlY3RvckRPTVN0b3JhZ2VBZ2Vu
dC5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL0luc3BlY3RvckRPTVN0b3JhZ2VB
Z2VudC5jcHAKQEAgLTc2LDcgKzc2LDcgQEAgdm9pZCBJbnNwZWN0b3JET01TdG9yYWdlQWdlbnQ6
OmRpZENyZWF0ZUZyb250ZW5kQW5kQmFja2VuZChJbnNwZWN0b3I6OkZyb250ZW5kQ2gKIHZvaWQg
SW5zcGVjdG9yRE9NU3RvcmFnZUFnZW50Ojp3aWxsRGVzdHJveUZyb250ZW5kQW5kQmFja2VuZChJ
bnNwZWN0b3I6OkRpc2Nvbm5lY3RSZWFzb24pCiB7CiAgICAgbV9mcm9udGVuZERpc3BhdGNoZXIg
PSBudWxscHRyOwotICAgIG1fYmFja2VuZERpc3BhdGNoZXIuY2xlYXIoKTsKKyAgICBtX2JhY2tl
bmREaXNwYXRjaGVyID0gbnVsbHB0cjsKIAogICAgIEVycm9yU3RyaW5nIHVudXNlZDsKICAgICBk
aXNhYmxlKHVudXNlZCk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvSW5z
cGVjdG9yRGF0YWJhc2VBZ2VudC5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvSW5zcGVj
dG9yRGF0YWJhc2VBZ2VudC5jcHAKaW5kZXggOTEzNGRmZTQ3Yzc5YzZjNmVmNDQxMzQ0NTIwYjcw
NDZlMWQ1ZGMxMy4uYmUyN2Y5NTYxNDQ1OWZiZmZkMWIwMmQ0ODVjZjFkNzdkZWQ5NjZlZCAxMDA2
NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL0luc3BlY3RvckRhdGFiYXNlQWdlbnQu
Y3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9JbnNwZWN0b3JEYXRhYmFzZUFnZW50
LmNwcApAQCAtMjMxLDcgKzIzMSw3IEBAIHZvaWQgSW5zcGVjdG9yRGF0YWJhc2VBZ2VudDo6ZGlk
Q3JlYXRlRnJvbnRlbmRBbmRCYWNrZW5kKEluc3BlY3Rvcjo6RnJvbnRlbmRDaGFuCiB2b2lkIElu
c3BlY3RvckRhdGFiYXNlQWdlbnQ6OndpbGxEZXN0cm95RnJvbnRlbmRBbmRCYWNrZW5kKEluc3Bl
Y3Rvcjo6RGlzY29ubmVjdFJlYXNvbikKIHsKICAgICBtX2Zyb250ZW5kRGlzcGF0Y2hlciA9IG51
bGxwdHI7Ci0gICAgbV9iYWNrZW5kRGlzcGF0Y2hlci5jbGVhcigpOworICAgIG1fYmFja2VuZERp
c3BhdGNoZXIgPSBudWxscHRyOwogCiAgICAgRXJyb3JTdHJpbmcgdW51c2VkOwogICAgIGRpc2Fi
bGUodW51c2VkKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9JbnNwZWN0
b3JJbmRleGVkREJBZ2VudC5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvSW5zcGVjdG9y
SW5kZXhlZERCQWdlbnQuY3BwCmluZGV4IDliZjEyOTExNmM0ZGM4MGEwODYzMWMwNGQ3MDdiMTgz
YWI4YmNhY2YuLjE3MmZiNTgxMjgwMjBhM2FlNTVkNjVkNGYwOGY1N2FlMTZhMGVjZjcgMTAwNjQ0
Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9JbnNwZWN0b3JJbmRleGVkREJBZ2VudC5j
cHAKKysrIGIvU291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL0luc3BlY3RvckluZGV4ZWREQkFnZW50
LmNwcApAQCAtNTgyLDcgKzU4Miw3IEBAIHZvaWQgSW5zcGVjdG9ySW5kZXhlZERCQWdlbnQ6OmRp
ZENyZWF0ZUZyb250ZW5kQW5kQmFja2VuZChJbnNwZWN0b3I6OkZyb250ZW5kQ2hhCiAKIHZvaWQg
SW5zcGVjdG9ySW5kZXhlZERCQWdlbnQ6OndpbGxEZXN0cm95RnJvbnRlbmRBbmRCYWNrZW5kKElu
c3BlY3Rvcjo6RGlzY29ubmVjdFJlYXNvbikKIHsKLSAgICBtX2JhY2tlbmREaXNwYXRjaGVyLmNs
ZWFyKCk7CisgICAgbV9iYWNrZW5kRGlzcGF0Y2hlciA9IG51bGxwdHI7CiAKICAgICBFcnJvclN0
cmluZyB1bnVzZWQ7CiAgICAgZGlzYWJsZSh1bnVzZWQpOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dl
YkNvcmUvaW5zcGVjdG9yL0luc3BlY3RvckxheWVyVHJlZUFnZW50LmNwcCBiL1NvdXJjZS9XZWJD
b3JlL2luc3BlY3Rvci9JbnNwZWN0b3JMYXllclRyZWVBZ2VudC5jcHAKaW5kZXggYmU2NDQ5NmU0
NjM4ZDAwYzNlYzI4OTA4NjU2YWU2NzdhNzM4OTc1OC4uZjZlNDFmYWM4MjhhYzZjNGY3NzYwNjVh
ZGY3YTNkYmY4ZDc4YmUwNCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL0lu
c3BlY3RvckxheWVyVHJlZUFnZW50LmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3Iv
SW5zcGVjdG9yTGF5ZXJUcmVlQWdlbnQuY3BwCkBAIC02NSw3ICs2NSw3IEBAIHZvaWQgSW5zcGVj
dG9yTGF5ZXJUcmVlQWdlbnQ6OmRpZENyZWF0ZUZyb250ZW5kQW5kQmFja2VuZChJbnNwZWN0b3I6
OkZyb250ZW5kQ2hhCiB2b2lkIEluc3BlY3RvckxheWVyVHJlZUFnZW50Ojp3aWxsRGVzdHJveUZy
b250ZW5kQW5kQmFja2VuZChJbnNwZWN0b3I6OkRpc2Nvbm5lY3RSZWFzb24pCiB7CiAgICAgbV9m
cm9udGVuZERpc3BhdGNoZXIgPSBudWxscHRyOwotICAgIG1fYmFja2VuZERpc3BhdGNoZXIuY2xl
YXIoKTsKKyAgICBtX2JhY2tlbmREaXNwYXRjaGVyID0gbnVsbHB0cjsKIAogICAgIEVycm9yU3Ry
aW5nIHVudXNlZDsKICAgICBkaXNhYmxlKHVudXNlZCk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2Vi
Q29yZS9pbnNwZWN0b3IvSW5zcGVjdG9yT3ZlcmxheS5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9pbnNw
ZWN0b3IvSW5zcGVjdG9yT3ZlcmxheS5jcHAKaW5kZXggNmQzYTBmM2NhNzI2NWExYWZmOGMzMjhh
NWYzZjZiNzljMzMxZDhkNC4uZmFlYTdjZWYyYzYzMmVlNTEwMmNkZjJiNjU0NDk3YWI4MDdiZTE3
NyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL0luc3BlY3Rvck92ZXJsYXku
Y3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9JbnNwZWN0b3JPdmVybGF5LmNwcApA
QCAtMjQzLDkgKzI0Myw5IEBAIHZvaWQgSW5zcGVjdG9yT3ZlcmxheTo6c2V0UGF1c2VkSW5EZWJ1
Z2dlck1lc3NhZ2UoY29uc3QgU3RyaW5nKiBtZXNzYWdlKQogCiB2b2lkIEluc3BlY3Rvck92ZXJs
YXk6OmhpZGVIaWdobGlnaHQoKQogewotICAgIG1faGlnaGxpZ2h0Tm9kZS5jbGVhcigpOwotICAg
IG1faGlnaGxpZ2h0Tm9kZUxpc3QuY2xlYXIoKTsKLSAgICBtX2hpZ2hsaWdodFF1YWQucmVzZXQo
KTsKKyAgICBtX2hpZ2hsaWdodE5vZGUgPSBudWxscHRyOworICAgIG1faGlnaGxpZ2h0Tm9kZUxp
c3QgPSBudWxscHRyOworICAgIG1faGlnaGxpZ2h0UXVhZCA9IG51bGxwdHI7CiAgICAgdXBkYXRl
KCk7CiB9CiAKQEAgLTI1Myw3ICsyNTMsNyBAQCB2b2lkIEluc3BlY3Rvck92ZXJsYXk6OmhpZ2hs
aWdodE5vZGVMaXN0KFBhc3NSZWZQdHI8Tm9kZUxpc3Q+IG5vZGVzLCBjb25zdCBIaWdobAogewog
ICAgIG1fbm9kZUhpZ2hsaWdodENvbmZpZyA9IGhpZ2hsaWdodENvbmZpZzsKICAgICBtX2hpZ2hs
aWdodE5vZGVMaXN0ID0gbm9kZXM7Ci0gICAgbV9oaWdobGlnaHROb2RlLmNsZWFyKCk7CisgICAg
bV9oaWdobGlnaHROb2RlID0gbnVsbHB0cjsKICAgICB1cGRhdGUoKTsKIH0KIApAQCAtMjYxLDcg
KzI2MSw3IEBAIHZvaWQgSW5zcGVjdG9yT3ZlcmxheTo6aGlnaGxpZ2h0Tm9kZShOb2RlKiBub2Rl
LCBjb25zdCBIaWdobGlnaHRDb25maWcmIGhpZ2hsaWdoCiB7CiAgICAgbV9ub2RlSGlnaGxpZ2h0
Q29uZmlnID0gaGlnaGxpZ2h0Q29uZmlnOwogICAgIG1faGlnaGxpZ2h0Tm9kZSA9IG5vZGU7Ci0g
ICAgbV9oaWdobGlnaHROb2RlTGlzdC5jbGVhcigpOworICAgIG1faGlnaGxpZ2h0Tm9kZUxpc3Qg
PSBudWxscHRyOwogICAgIHVwZGF0ZSgpOwogfQogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29y
ZS9pbnNwZWN0b3IvSW5zcGVjdG9yUGFnZUFnZW50LmNwcCBiL1NvdXJjZS9XZWJDb3JlL2luc3Bl
Y3Rvci9JbnNwZWN0b3JQYWdlQWdlbnQuY3BwCmluZGV4IDZmNTJiZmFlMGI1MjNjOTZmMTRlNTc0
MTcyMjY5NWExNzU1MWNhOGEuLjNlOWZlYmVmYjU0ZmU0NDhhYzg4MDc2ZDk5NmY5YThhZDA3YTVi
OWEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9JbnNwZWN0b3JQYWdlQWdl
bnQuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9JbnNwZWN0b3JQYWdlQWdlbnQu
Y3BwCkBAIC0zNDgsNyArMzQ4LDcgQEAgdm9pZCBJbnNwZWN0b3JQYWdlQWdlbnQ6OmRpZENyZWF0
ZUZyb250ZW5kQW5kQmFja2VuZChJbnNwZWN0b3I6OkZyb250ZW5kQ2hhbm5lbCoKIHZvaWQgSW5z
cGVjdG9yUGFnZUFnZW50Ojp3aWxsRGVzdHJveUZyb250ZW5kQW5kQmFja2VuZChJbnNwZWN0b3I6
OkRpc2Nvbm5lY3RSZWFzb24pCiB7CiAgICAgbV9mcm9udGVuZERpc3BhdGNoZXIgPSBudWxscHRy
OwotICAgIG1fYmFja2VuZERpc3BhdGNoZXIuY2xlYXIoKTsKKyAgICBtX2JhY2tlbmREaXNwYXRj
aGVyID0gbnVsbHB0cjsKIAogICAgIEVycm9yU3RyaW5nIHVudXNlZDsKICAgICBkaXNhYmxlKHVu
dXNlZCk7CkBAIC0zNzQsNyArMzc0LDcgQEAgdm9pZCBJbnNwZWN0b3JQYWdlQWdlbnQ6OmVuYWJs
ZShFcnJvclN0cmluZyYpCiB2b2lkIEluc3BlY3RvclBhZ2VBZ2VudDo6ZGlzYWJsZShFcnJvclN0
cmluZyYpCiB7CiAgICAgbV9lbmFibGVkID0gZmFsc2U7Ci0gICAgbV9zY3JpcHRzVG9FdmFsdWF0
ZU9uTG9hZC5jbGVhcigpOworICAgIG1fc2NyaXB0c1RvRXZhbHVhdGVPbkxvYWQgPSBudWxscHRy
OwogICAgIG1faW5zdHJ1bWVudGluZ0FnZW50cy0+c2V0SW5zcGVjdG9yUGFnZUFnZW50KG51bGxw
dHIpOwogCiAgICAgRXJyb3JTdHJpbmcgdW51c2VkOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNv
cmUvaW5zcGVjdG9yL0luc3BlY3RvclJlcGxheUFnZW50LmNwcCBiL1NvdXJjZS9XZWJDb3JlL2lu
c3BlY3Rvci9JbnNwZWN0b3JSZXBsYXlBZ2VudC5jcHAKaW5kZXggNjRjYjgxMTdjNzk4MWRhYzQz
NGY0M2NiZjNiZmQ5ZTMzMTI4NDdhMS4uMTgxYTYwOTgyYWY3MjZjMjQ0YTRjMWIzM2Q2YmM4N2My
OWI1MDU4NSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL0luc3BlY3RvclJl
cGxheUFnZW50LmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvSW5zcGVjdG9yUmVw
bGF5QWdlbnQuY3BwCkBAIC0xOTMsNyArMTkzLDcgQEAgdm9pZCBJbnNwZWN0b3JSZXBsYXlBZ2Vu
dDo6ZGlkQ3JlYXRlRnJvbnRlbmRBbmRCYWNrZW5kKEluc3BlY3Rvcjo6RnJvbnRlbmRDaGFubmUK
IHZvaWQgSW5zcGVjdG9yUmVwbGF5QWdlbnQ6OndpbGxEZXN0cm95RnJvbnRlbmRBbmRCYWNrZW5k
KEluc3BlY3Rvcjo6RGlzY29ubmVjdFJlYXNvbikKIHsKICAgICBtX2Zyb250ZW5kRGlzcGF0Y2hl
ciA9IG51bGxwdHI7Ci0gICAgbV9iYWNrZW5kRGlzcGF0Y2hlci5jbGVhcigpOworICAgIG1fYmFj
a2VuZERpc3BhdGNoZXIgPSBudWxscHRyOwogCiAgICAgbV9pbnN0cnVtZW50aW5nQWdlbnRzLT5z
ZXRJbnNwZWN0b3JSZXBsYXlBZ2VudChudWxscHRyKTsKIApkaWZmIC0tZ2l0IGEvU291cmNlL1dl
YkNvcmUvaW5zcGVjdG9yL0luc3BlY3RvclJlc291cmNlQWdlbnQuY3BwIGIvU291cmNlL1dlYkNv
cmUvaW5zcGVjdG9yL0luc3BlY3RvclJlc291cmNlQWdlbnQuY3BwCmluZGV4IDg1NDQ4OWMwNGY5
NzRkOTdjZDM2NjRhZWFhZDQ1ZmUwMWJiMWVmMDEuLjdiNTZhMGZmOWQxNThmNmJhOGIxMzUzYTBi
YWIyZTRkMGU4OWExZDcgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9JbnNw
ZWN0b3JSZXNvdXJjZUFnZW50LmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvSW5z
cGVjdG9yUmVzb3VyY2VBZ2VudC5jcHAKQEAgLTE4MSw3ICsxODEsNyBAQCB2b2lkIEluc3BlY3Rv
clJlc291cmNlQWdlbnQ6OmRpZENyZWF0ZUZyb250ZW5kQW5kQmFja2VuZChJbnNwZWN0b3I6OkZy
b250ZW5kQ2hhbgogdm9pZCBJbnNwZWN0b3JSZXNvdXJjZUFnZW50Ojp3aWxsRGVzdHJveUZyb250
ZW5kQW5kQmFja2VuZChJbnNwZWN0b3I6OkRpc2Nvbm5lY3RSZWFzb24pCiB7CiAgICAgbV9mcm9u
dGVuZERpc3BhdGNoZXIgPSBudWxscHRyOwotICAgIG1fYmFja2VuZERpc3BhdGNoZXIuY2xlYXIo
KTsKKyAgICBtX2JhY2tlbmREaXNwYXRjaGVyID0gbnVsbHB0cjsKIAogICAgIEVycm9yU3RyaW5n
IHVudXNlZDsKICAgICBkaXNhYmxlKHVudXNlZCk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29y
ZS9pbnNwZWN0b3IvSW5zcGVjdG9yU3R5bGVTaGVldC5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9pbnNw
ZWN0b3IvSW5zcGVjdG9yU3R5bGVTaGVldC5jcHAKaW5kZXggYjQ3YzY1NGQzZDc2MmNlNDVkY2Zl
NGYxNDRiNGM5NjU3ZWNjOWZjNC4uMDZlYzFiNmYyZjY0NGMyYzFkMDZkM2ZlZTlhYmUxMjhmYzBh
NWY4YyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL0luc3BlY3RvclN0eWxl
U2hlZXQuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9JbnNwZWN0b3JTdHlsZVNo
ZWV0LmNwcApAQCAtMTI2MSw3ICsxMjYxLDcgQEAgdm9pZCBJbnNwZWN0b3JTdHlsZVNoZWV0Rm9y
SW5saW5lU3R5bGU6OmRpZE1vZGlmeUVsZW1lbnRBdHRyaWJ1dGUoKQogICAgIG1faXNTdHlsZVRl
eHRWYWxpZCA9IGZhbHNlOwogICAgIGlmIChtX2VsZW1lbnQtPmlzU3R5bGVkRWxlbWVudCgpICYm
IG1fZWxlbWVudC0+c3R5bGUoKSAhPSBtX2luc3BlY3RvclN0eWxlLT5jc3NTdHlsZSgpKQogICAg
ICAgICBtX2luc3BlY3RvclN0eWxlID0gSW5zcGVjdG9yU3R5bGU6OmNyZWF0ZShJbnNwZWN0b3JD
U1NJZChpZCgpLCAwKSwgaW5saW5lU3R5bGUoKSwgdGhpcyk7Ci0gICAgbV9ydWxlU291cmNlRGF0
YS5jbGVhcigpOworICAgIG1fcnVsZVNvdXJjZURhdGEgPSBudWxscHRyOwogfQogCiBib29sIElu
c3BlY3RvclN0eWxlU2hlZXRGb3JJbmxpbmVTdHlsZTo6Z2V0VGV4dChTdHJpbmcqIHJlc3VsdCkg
Y29uc3QKQEAgLTEyODUsNyArMTI4NSw3IEBAIGJvb2wgSW5zcGVjdG9yU3R5bGVTaGVldEZvcklu
bGluZVN0eWxlOjpzZXRTdHlsZVRleHQoQ1NTU3R5bGVEZWNsYXJhdGlvbiogc3R5bGUsCiAKICAg
ICBtX3N0eWxlVGV4dCA9IHRleHQ7CiAgICAgbV9pc1N0eWxlVGV4dFZhbGlkID0gdHJ1ZTsKLSAg
ICBtX3J1bGVTb3VyY2VEYXRhLmNsZWFyKCk7CisgICAgbV9ydWxlU291cmNlRGF0YSA9IG51bGxw
dHI7CiAgICAgcmV0dXJuICFlYzsKIH0KIApAQCAtMTMwNCw3ICsxMzA0LDcgQEAgYm9vbCBJbnNw
ZWN0b3JTdHlsZVNoZWV0Rm9ySW5saW5lU3R5bGU6OmVuc3VyZVBhcnNlZERhdGFSZWFkeSgpCiAg
ICAgLy8gVGhlICJzdHlsZSIgcHJvcGVydHkgdmFsdWUgY2FuIGdldCBjaGFuZ2VkIGluZGlyZWN0
bHksIGUuZy4gdmlhIGVsZW1lbnQuc3R5bGUuYm9yZGVyV2lkdGggPSAiMnB4Ii4KICAgICBjb25z
dCBTdHJpbmcmIGN1cnJlbnRTdHlsZVRleHQgPSBlbGVtZW50U3R5bGVUZXh0KCk7CiAgICAgaWYg
KG1fc3R5bGVUZXh0ICE9IGN1cnJlbnRTdHlsZVRleHQpIHsKLSAgICAgICAgbV9ydWxlU291cmNl
RGF0YS5jbGVhcigpOworICAgICAgICBtX3J1bGVTb3VyY2VEYXRhID0gbnVsbHB0cjsKICAgICAg
ICAgbV9zdHlsZVRleHQgPSBjdXJyZW50U3R5bGVUZXh0OwogICAgICAgICBtX2lzU3R5bGVUZXh0
VmFsaWQgPSB0cnVlOwogICAgIH0KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rv
ci9JbnNwZWN0b3JUaW1lbGluZUFnZW50LmNwcCBiL1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9J
bnNwZWN0b3JUaW1lbGluZUFnZW50LmNwcAppbmRleCAwZTMyYmM1ZTYzODk4YWZmOGVkMmIwNmFi
YjBmN2ExYmE5ODAwOGE0Li5mNTc1NmEyZDFlYTgzODcxMTUwZDUyMWY4ZWZmMTQ5YTIzYWM3OGNi
IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvSW5zcGVjdG9yVGltZWxpbmVB
Z2VudC5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL0luc3BlY3RvclRpbWVsaW5l
QWdlbnQuY3BwCkBAIC0xMDMsNyArMTAzLDcgQEAgdm9pZCBJbnNwZWN0b3JUaW1lbGluZUFnZW50
OjpkaWRDcmVhdGVGcm9udGVuZEFuZEJhY2tlbmQoSW5zcGVjdG9yOjpGcm9udGVuZENoYW4KIHZv
aWQgSW5zcGVjdG9yVGltZWxpbmVBZ2VudDo6d2lsbERlc3Ryb3lGcm9udGVuZEFuZEJhY2tlbmQo
SW5zcGVjdG9yOjpEaXNjb25uZWN0UmVhc29uIHJlYXNvbikKIHsKICAgICBtX2Zyb250ZW5kRGlz
cGF0Y2hlciA9IG51bGxwdHI7Ci0gICAgbV9iYWNrZW5kRGlzcGF0Y2hlci5jbGVhcigpOworICAg
IG1fYmFja2VuZERpc3BhdGNoZXIgPSBudWxscHRyOwogCiAgICAgbV9pbnN0cnVtZW50aW5nQWdl
bnRzLT5zZXRQZXJzaXN0ZW50SW5zcGVjdG9yVGltZWxpbmVBZ2VudChudWxscHRyKTsKIApkaWZm
IC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL0luc3BlY3RvcldvcmtlckFnZW50LmNw
cCBiL1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9JbnNwZWN0b3JXb3JrZXJBZ2VudC5jcHAKaW5k
ZXggZGViYzY5ODc5NWQ5OGM0MmI4ZWIxOGMxMGZkYTJhMjVmODVmMmU5Yi4uNWUyMWYzNWJiNDgw
M2JlYjFlYTJkNTk4NGI0MmQwODY2NDVkOTE4MSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUv
aW5zcGVjdG9yL0luc3BlY3RvcldvcmtlckFnZW50LmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9p
bnNwZWN0b3IvSW5zcGVjdG9yV29ya2VyQWdlbnQuY3BwCkBAIC0xMjcsNyArMTI3LDcgQEAgdm9p
ZCBJbnNwZWN0b3JXb3JrZXJBZ2VudDo6d2lsbERlc3Ryb3lGcm9udGVuZEFuZEJhY2tlbmQoSW5z
cGVjdG9yOjpEaXNjb25uZWN0UmUKICAgICBkaXNhYmxlKHVudXNlZCk7CiAKICAgICBtX2Zyb250
ZW5kRGlzcGF0Y2hlciA9IG51bGxwdHI7Ci0gICAgbV9iYWNrZW5kRGlzcGF0Y2hlci5jbGVhcigp
OworICAgIG1fYmFja2VuZERpc3BhdGNoZXIgPSBudWxscHRyOwogfQogCiB2b2lkIEluc3BlY3Rv
cldvcmtlckFnZW50OjplbmFibGUoRXJyb3JTdHJpbmcmKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dl
YkNvcmUvaW5zcGVjdG9yL1BhZ2VSdW50aW1lQWdlbnQuY3BwIGIvU291cmNlL1dlYkNvcmUvaW5z
cGVjdG9yL1BhZ2VSdW50aW1lQWdlbnQuY3BwCmluZGV4IDkzZGI1NzJhN2YwNDU1MDViOWU1MTVl
NTA5MGM0ZmMwYjUwMjFlMmQuLmUyNDQ1YWJmNDQzZDA4ZjQzODRhMDM5YmM5ZTU1ZDhkNWYzZjcx
MmIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9QYWdlUnVudGltZUFnZW50
LmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvUGFnZVJ1bnRpbWVBZ2VudC5jcHAK
QEAgLTY5LDcgKzY5LDcgQEAgdm9pZCBQYWdlUnVudGltZUFnZW50OjpkaWRDcmVhdGVGcm9udGVu
ZEFuZEJhY2tlbmQoSW5zcGVjdG9yOjpGcm9udGVuZENoYW5uZWwqIGYKIHZvaWQgUGFnZVJ1bnRp
bWVBZ2VudDo6d2lsbERlc3Ryb3lGcm9udGVuZEFuZEJhY2tlbmQoSW5zcGVjdG9yOjpEaXNjb25u
ZWN0UmVhc29uIHJlYXNvbikKIHsKICAgICBtX2Zyb250ZW5kRGlzcGF0Y2hlciA9IG51bGxwdHI7
Ci0gICAgbV9iYWNrZW5kRGlzcGF0Y2hlci5jbGVhcigpOworICAgIG1fYmFja2VuZERpc3BhdGNo
ZXIgPSBudWxscHRyOwogCiAgICAgU3RyaW5nIHVudXNlZDsKICAgICBkaXNhYmxlKHVudXNlZCk7
CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvV2ViSW5qZWN0ZWRTY3JpcHRN
YW5hZ2VyLmNwcCBiL1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9XZWJJbmplY3RlZFNjcmlwdE1h
bmFnZXIuY3BwCmluZGV4IDlmNGFmNDI2OTNlYzU3NTk1MzEzMzk0NDYwYjE5MDVkZmUwYWQ1ODcu
LjU2MTk2ZjBhZTM3MWVmNDQzYzA1MjNlYjMxYmI2ZmM1ZWFmM2U1YjEgMTAwNjQ0Ci0tLSBhL1Nv
dXJjZS9XZWJDb3JlL2luc3BlY3Rvci9XZWJJbmplY3RlZFNjcmlwdE1hbmFnZXIuY3BwCisrKyBi
L1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9XZWJJbmplY3RlZFNjcmlwdE1hbmFnZXIuY3BwCkBA
IC00NCw3ICs0NCw3IEBAIHZvaWQgV2ViSW5qZWN0ZWRTY3JpcHRNYW5hZ2VyOjpkaXNjb25uZWN0
KCkKICAgICBJbmplY3RlZFNjcmlwdE1hbmFnZXI6OmRpc2Nvbm5lY3QoKTsKIAogICAgIG1fY29t
bWFuZExpbmVBUElIb3N0LT5kaXNjb25uZWN0KCk7Ci0gICAgbV9jb21tYW5kTGluZUFQSUhvc3Qu
Y2xlYXIoKTsKKyAgICBtX2NvbW1hbmRMaW5lQVBJSG9zdCA9IG51bGxwdHI7CiB9CiAKIHZvaWQg
V2ViSW5qZWN0ZWRTY3JpcHRNYW5hZ2VyOjpkaWRDcmVhdGVJbmplY3RlZFNjcmlwdChJbmplY3Rl
ZFNjcmlwdCBpbmplY3RlZFNjcmlwdCkKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2luc3Bl
Y3Rvci9Xb3JrZXJJbnNwZWN0b3JDb250cm9sbGVyLmNwcCBiL1NvdXJjZS9XZWJDb3JlL2luc3Bl
Y3Rvci9Xb3JrZXJJbnNwZWN0b3JDb250cm9sbGVyLmNwcAppbmRleCBmMWZlNDEwMDVhZGZlYTRi
YzAxZTBhZDViNzdmNThmMGI5NmMyNzBkLi5kODM0ZTBlYTlmNWEzMDBhODMyNGY0YWYxZDY2NmQz
YjkwNmFjNjUyIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvV29ya2VySW5z
cGVjdG9yQ29udHJvbGxlci5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL1dvcmtl
ckluc3BlY3RvckNvbnRyb2xsZXIuY3BwCkBAIC0xMjYsNyArMTI2LDcgQEAgdm9pZCBXb3JrZXJJ
bnNwZWN0b3JDb250cm9sbGVyOjpkaXNjb25uZWN0RnJvbnRlbmQoSW5zcGVjdG9yOjpEaXNjb25u
ZWN0UmVhc29uIHIKIAogICAgIG1fYWdlbnRzLndpbGxEZXN0cm95RnJvbnRlbmRBbmRCYWNrZW5k
KHJlYXNvbik7CiAgICAgbV9iYWNrZW5kRGlzcGF0Y2hlci0+Y2xlYXJGcm9udGVuZCgpOwotICAg
IG1fYmFja2VuZERpc3BhdGNoZXIuY2xlYXIoKTsKKyAgICBtX2JhY2tlbmREaXNwYXRjaGVyID0g
bnVsbHB0cjsKICAgICBtX2Zyb250ZW5kQ2hhbm5lbCA9IG51bGxwdHI7CiB9CiAKZGlmZiAtLWdp
dCBhL1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9Xb3JrZXJSdW50aW1lQWdlbnQuY3BwIGIvU291
cmNlL1dlYkNvcmUvaW5zcGVjdG9yL1dvcmtlclJ1bnRpbWVBZ2VudC5jcHAKaW5kZXggMjA2YTQx
ZjVmYjQyY2QxNWEzMzZjY2IzOTRiMmVhYzUxZGU1NGZmYS4uMTIyMmU1NTI3OThiYjYzNzM5OWY4
YWU3NTdiNGZmNGZkYmQyZTUwZCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvaW5zcGVjdG9y
L1dvcmtlclJ1bnRpbWVBZ2VudC5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL1dv
cmtlclJ1bnRpbWVBZ2VudC5jcHAKQEAgLTYwLDcgKzYwLDcgQEAgdm9pZCBXb3JrZXJSdW50aW1l
QWdlbnQ6OmRpZENyZWF0ZUZyb250ZW5kQW5kQmFja2VuZChJbnNwZWN0b3I6OkZyb250ZW5kQ2hh
bm5lbCoKIAogdm9pZCBXb3JrZXJSdW50aW1lQWdlbnQ6OndpbGxEZXN0cm95RnJvbnRlbmRBbmRC
YWNrZW5kKEluc3BlY3Rvcjo6RGlzY29ubmVjdFJlYXNvbiByZWFzb24pCiB7Ci0gICAgbV9iYWNr
ZW5kRGlzcGF0Y2hlci5jbGVhcigpOworICAgIG1fYmFja2VuZERpc3BhdGNoZXIgPSBudWxscHRy
OwogCiAgICAgSW5zcGVjdG9yUnVudGltZUFnZW50Ojp3aWxsRGVzdHJveUZyb250ZW5kQW5kQmFj
a2VuZChyZWFzb24pOwogfQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvbG9hZGVyL0RvY3Vt
ZW50TG9hZGVyLmNwcCBiL1NvdXJjZS9XZWJDb3JlL2xvYWRlci9Eb2N1bWVudExvYWRlci5jcHAK
aW5kZXggNWVjNDdhYzMxZjMzNWIzNWFlZTI4NzcyMmRiNjBjNTQ0NmQxYmI4YS4uN2NhMWYyMzg2
NmU2ZDE3NzVjMDZhNTJhY2UzMjIyYzIxMTU0YjQ5NSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNv
cmUvbG9hZGVyL0RvY3VtZW50TG9hZGVyLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9sb2FkZXIv
RG9jdW1lbnRMb2FkZXIuY3BwCkBAIC0xNTI0LDcgKzE1MjQsNyBAQCB2b2lkIERvY3VtZW50TG9h
ZGVyOjpnZXRJY29uTG9hZERlY2lzaW9uRm9ySWNvblVSTChjb25zdCBTdHJpbmcmIHVybFN0cmlu
ZykKIHZvaWQgRG9jdW1lbnRMb2FkZXI6OmNvbnRpbnVlSWNvbkxvYWRXaXRoRGVjaXNpb24oSWNv
bkxvYWREZWNpc2lvbiBkZWNpc2lvbikKIHsKICAgICBBU1NFUlQobV9pY29uTG9hZERlY2lzaW9u
Q2FsbGJhY2spOwotICAgIG1faWNvbkxvYWREZWNpc2lvbkNhbGxiYWNrID0gMDsKKyAgICBtX2lj
b25Mb2FkRGVjaXNpb25DYWxsYmFjayA9IG51bGxwdHI7CiAgICAgaWYgKG1fZnJhbWUpCiAgICAg
ICAgIG1fZnJhbWUtPmxvYWRlcigpLmljb24oKS5jb250aW51ZUxvYWRXaXRoRGVjaXNpb24oZGVj
aXNpb24pOwogfQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvbG9hZGVyL0RvY3VtZW50VGhy
ZWFkYWJsZUxvYWRlci5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9sb2FkZXIvRG9jdW1lbnRUaHJlYWRh
YmxlTG9hZGVyLmNwcAppbmRleCAxZTg2ZmFjMWJkZjgyOWE2M2UxNjkwYWYyYTNlNDc1MjYzMjA3
ZDFjLi5iMGU1ODk4YmJjZjgwZjlmZmE5ZDI4NjU0YjI3NGVjZmFiODI5ZmYxIDEwMDY0NAotLS0g
YS9Tb3VyY2UvV2ViQ29yZS9sb2FkZXIvRG9jdW1lbnRUaHJlYWRhYmxlTG9hZGVyLmNwcAorKysg
Yi9Tb3VyY2UvV2ViQ29yZS9sb2FkZXIvRG9jdW1lbnRUaHJlYWRhYmxlTG9hZGVyLmNwcApAQCAt
NjQsNyArNjQsNyBAQCBQYXNzUmVmUHRyPERvY3VtZW50VGhyZWFkYWJsZUxvYWRlcj4gRG9jdW1l
bnRUaHJlYWRhYmxlTG9hZGVyOjpjcmVhdGUoRG9jdW1lbnQmCiB7CiAgICAgUmVmUHRyPERvY3Vt
ZW50VGhyZWFkYWJsZUxvYWRlcj4gbG9hZGVyID0gYWRvcHRSZWYobmV3IERvY3VtZW50VGhyZWFk
YWJsZUxvYWRlcihkb2N1bWVudCwgY2xpZW50LCBMb2FkQXN5bmNocm9ub3VzbHksIHJlcXVlc3Qs
IG9wdGlvbnMpKTsKICAgICBpZiAoIWxvYWRlci0+bV9yZXNvdXJjZSkKLSAgICAgICAgbG9hZGVy
ID0gMDsKKyAgICAgICAgbG9hZGVyID0gbnVsbHB0cjsKICAgICByZXR1cm4gbG9hZGVyLnJlbGVh
c2UoKTsKIH0KIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvbG9hZGVyL0RvY3VtZW50V3Jp
dGVyLmNwcCBiL1NvdXJjZS9XZWJDb3JlL2xvYWRlci9Eb2N1bWVudFdyaXRlci5jcHAKaW5kZXgg
Y2M1MTM5M2MxMGY2MzZiZDc2ZWQxMDk4YjNlYmNjMzZjNDIyYzExMS4uYTFjMzc3ZjhlMWIzNDYw
N2QyNTc1NDE1YWNmYTRhYmNmOTEwYjQzMSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvbG9h
ZGVyL0RvY3VtZW50V3JpdGVyLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9sb2FkZXIvRG9jdW1l
bnRXcml0ZXIuY3BwCkBAIC05MCw3ICs5MCw3IEBAIHZvaWQgRG9jdW1lbnRXcml0ZXI6OnJlcGxh
Y2VEb2N1bWVudChjb25zdCBTdHJpbmcmIHNvdXJjZSwgRG9jdW1lbnQqIG93bmVyRG9jdW1lCiAK
IHZvaWQgRG9jdW1lbnRXcml0ZXI6OmNsZWFyKCkKIHsKLSAgICBtX2RlY29kZXIgPSAwOworICAg
IG1fZGVjb2RlciA9IG51bGxwdHI7CiAgICAgbV9oYXNSZWNlaXZlZFNvbWVEYXRhID0gZmFsc2U7
CiAgICAgaWYgKCFtX2VuY29kaW5nV2FzQ2hvc2VuQnlVc2VyKQogICAgICAgICBtX2VuY29kaW5n
ID0gU3RyaW5nKCk7CkBAIC0yNDUsNyArMjQ1LDcgQEAgdm9pZCBEb2N1bWVudFdyaXRlcjo6ZW5k
KCkKICAgICBpZiAoIW1fcGFyc2VyKQogICAgICAgICByZXR1cm47CiAgICAgbV9wYXJzZXItPmZp
bmlzaCgpOwotICAgIG1fcGFyc2VyID0gMDsKKyAgICBtX3BhcnNlciA9IG51bGxwdHI7CiB9CiAK
IHZvaWQgRG9jdW1lbnRXcml0ZXI6OnNldEVuY29kaW5nKGNvbnN0IFN0cmluZyYgbmFtZSwgYm9v
bCB1c2VyQ2hvc2VuKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvbG9hZGVyL0ZyYW1lTG9h
ZGVyLmNwcCBiL1NvdXJjZS9XZWJDb3JlL2xvYWRlci9GcmFtZUxvYWRlci5jcHAKaW5kZXggNTIy
YjE1N2RiY2JlYzBiNTAxMWY5NWU4NjY2NmE5ZTIwYzY5YmZjZC4uM2JkYjYyMWQ3ZGFiNTYzNmUw
MDllOTVhMWMzYjBiN2Y5Y2JmMzg4YiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvbG9hZGVy
L0ZyYW1lTG9hZGVyLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9sb2FkZXIvRnJhbWVMb2FkZXIu
Y3BwCkBAIC02OTIsNyArNjkyLDcgQEAgdm9pZCBGcmFtZUxvYWRlcjo6ZGlkQmVnaW5Eb2N1bWVu
dChib29sIGRpc3BhdGNoKQogCiAgICAgaWYgKG1fcGVuZGluZ1N0YXRlT2JqZWN0KSB7CiAgICAg
ICAgIG1fZnJhbWUuZG9jdW1lbnQoKS0+c3RhdGVQb3BwZWQobV9wZW5kaW5nU3RhdGVPYmplY3Qu
Z2V0KCkpOwotICAgICAgICBtX3BlbmRpbmdTdGF0ZU9iamVjdC5jbGVhcigpOworICAgICAgICBt
X3BlbmRpbmdTdGF0ZU9iamVjdCA9IG51bGxwdHI7CiAgICAgfQogCiAgICAgaWYgKGRpc3BhdGNo
KQpAQCAtODE4LDcgKzgxOCw3IEBAIHZvaWQgRnJhbWVMb2FkZXI6OmNoZWNrQ29tcGxldGVkKCkK
IAogICAgIC8vIE9LLCBjb21wbGV0ZWQuCiAgICAgbV9pc0NvbXBsZXRlID0gdHJ1ZTsKLSAgICBt
X3JlcXVlc3RlZEhpc3RvcnlJdGVtID0gMDsKKyAgICBtX3JlcXVlc3RlZEhpc3RvcnlJdGVtID0g
bnVsbHB0cjsKICAgICBtX2ZyYW1lLmRvY3VtZW50KCktPnNldFJlYWR5U3RhdGUoRG9jdW1lbnQ6
OkNvbXBsZXRlKTsKIAogI2lmIFBMQVRGT1JNKElPUykKQEAgLTExMzcsNyArMTEzNyw3IEBAIHZv
aWQgRnJhbWVMb2FkZXI6OnNldHVwRm9yUmVwbGFjZSgpCiAgICAgbV9jbGllbnQucmV2ZXJ0VG9Q
cm92aXNpb25hbFN0YXRlKG1fZG9jdW1lbnRMb2FkZXIuZ2V0KCkpOwogICAgIHNldFN0YXRlKEZy
YW1lU3RhdGVQcm92aXNpb25hbCk7CiAgICAgbV9wcm92aXNpb25hbERvY3VtZW50TG9hZGVyID0g
bV9kb2N1bWVudExvYWRlcjsKLSAgICBtX2RvY3VtZW50TG9hZGVyID0gMDsKKyAgICBtX2RvY3Vt
ZW50TG9hZGVyID0gbnVsbHB0cjsKICAgICBkZXRhY2hDaGlsZHJlbigpOwogfQogCmRpZmYgLS1n
aXQgYS9Tb3VyY2UvV2ViQ29yZS9sb2FkZXIvUHJvZ3Jlc3NUcmFja2VyLmNwcCBiL1NvdXJjZS9X
ZWJDb3JlL2xvYWRlci9Qcm9ncmVzc1RyYWNrZXIuY3BwCmluZGV4IDA0MDU0ZGU0ZWFiMzk1MWY5
NWUwN2U5ZGVkMzJkYzkxNmZkN2VlMDYuLmQ1NmNhMDVkYjk5MGIzMGE2YjA3ZDEyZmIyYzA5ZTk5
NmI3OTcyMGYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2xvYWRlci9Qcm9ncmVzc1RyYWNr
ZXIuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2xvYWRlci9Qcm9ncmVzc1RyYWNrZXIuY3BwCkBA
IC0xMTMsNyArMTEzLDcgQEAgdm9pZCBQcm9ncmVzc1RyYWNrZXI6OnJlc2V0KCkKICAgICBtX2xh
c3ROb3RpZmllZFByb2dyZXNzVGltZSA9IHN0ZDo6Y2hyb25vOjpzdGVhZHlfY2xvY2s6OnRpbWVf
cG9pbnQoKTsKICAgICBtX2ZpbmFsUHJvZ3Jlc3NDaGFuZ2VkU2VudCA9IGZhbHNlOwogICAgIG1f
bnVtUHJvZ3Jlc3NUcmFja2VkRnJhbWVzID0gMDsKLSAgICBtX29yaWdpbmF0aW5nUHJvZ3Jlc3NG
cmFtZSA9IDA7CisgICAgbV9vcmlnaW5hdGluZ1Byb2dyZXNzRnJhbWUgPSBudWxscHRyOwogCiAg
ICAgbV9oZWFydGJlYXRzV2l0aE5vUHJvZ3Jlc3MgPSAwOwogICAgIG1fdG90YWxCeXRlc1JlY2Vp
dmVkQmVmb3JlUHJldmlvdXNIZWFydGJlYXQgPSAwOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNv
cmUvbG9hZGVyL1Jlc291cmNlTG9hZGVyLmNwcCBiL1NvdXJjZS9XZWJDb3JlL2xvYWRlci9SZXNv
dXJjZUxvYWRlci5jcHAKaW5kZXggNDMxYTBjYjFkNDQ1YmUyZmY1OTAzZDYyMzU0NzY2YWFjY2U0
MzUzNi4uMTY2YTQ1NGMxMDkwYmE4YmQyZGRjMGNjYzdiYTIwMzEzMmE5MTM4MCAxMDA2NDQKLS0t
IGEvU291cmNlL1dlYkNvcmUvbG9hZGVyL1Jlc291cmNlTG9hZGVyLmNwcAorKysgYi9Tb3VyY2Uv
V2ViQ29yZS9sb2FkZXIvUmVzb3VyY2VMb2FkZXIuY3BwCkBAIC05MCw4ICs5MCw4IEBAIHZvaWQg
UmVzb3VyY2VMb2FkZXI6OnJlbGVhc2VSZXNvdXJjZXMoKQogICAgIC8vIGhhcyBiZWVuIGRlYWxs
b2NhdGVkIGFuZCBhbHNvIHRvIGF2b2lkIHJlZW50ZXJpbmcgdGhpcyBtZXRob2QuCiAgICAgUmVm
PFJlc291cmNlTG9hZGVyPiBwcm90ZWN0KCp0aGlzKTsKIAotICAgIG1fZnJhbWUgPSAwOwotICAg
IG1fZG9jdW1lbnRMb2FkZXIgPSAwOworICAgIG1fZnJhbWUgPSBudWxscHRyOworICAgIG1fZG9j
dW1lbnRMb2FkZXIgPSBudWxscHRyOwogICAgIAogICAgIC8vIFdlIG5lZWQgdG8gc2V0IHJlYWNo
ZWRUZXJtaW5hbFN0YXRlIHRvIHRydWUgYmVmb3JlIHdlIHJlbGVhc2UKICAgICAvLyB0aGUgcmVz
b3VyY2VzIHRvIHByZXZlbnQgYSBkb3VibGUgZGVhbGxvYyBvZiBXZWJWaWV3IDxyZGFyOi8vcHJv
YmxlbS80MzcyNjI4PgpAQCAtMTA0LDExICsxMDQsMTEgQEAgdm9pZCBSZXNvdXJjZUxvYWRlcjo6
cmVsZWFzZVJlc291cmNlcygpCiAgICAgICAgIC8vIENsZWFyIG91dCB0aGUgUmVzb3VyY2VIYW5k
bGUncyBjbGllbnQgc28gdGhhdCBpdCBkb2Vzbid0IHRyeSB0byBjYWxsCiAgICAgICAgIC8vIHVz
IGJhY2sgYWZ0ZXIgd2UgcmVsZWFzZSBpdCwgdW5sZXNzIGl0IGhhcyBiZWVuIHJlcGxhY2VkIGJ5
IHNvbWVvbmUgZWxzZS4KICAgICAgICAgaWYgKG1faGFuZGxlLT5jbGllbnQoKSA9PSB0aGlzKQot
ICAgICAgICAgICAgbV9oYW5kbGUtPnNldENsaWVudCgwKTsKLSAgICAgICAgbV9oYW5kbGUgPSAw
OworICAgICAgICAgICAgbV9oYW5kbGUtPnNldENsaWVudChudWxscHRyKTsKKyAgICAgICAgbV9o
YW5kbGUgPSBudWxscHRyOwogICAgIH0KIAotICAgIG1fcmVzb3VyY2VEYXRhID0gMDsKKyAgICBt
X3Jlc291cmNlRGF0YSA9IG51bGxwdHI7CiAgICAgbV9kZWZlcnJlZFJlcXVlc3QgPSBSZXNvdXJj
ZVJlcXVlc3QoKTsKIH0KIApAQCAtMjI1LDcgKzIyNSw3IEBAIHZvaWQgUmVzb3VyY2VMb2FkZXI6
OnNldERlZmVyc0xvYWRpbmcoYm9vbCBkZWZlcnMpCiBGcmFtZUxvYWRlciogUmVzb3VyY2VMb2Fk
ZXI6OmZyYW1lTG9hZGVyKCkgY29uc3QKIHsKICAgICBpZiAoIW1fZnJhbWUpCi0gICAgICAgIHJl
dHVybiAwOworICAgICAgICByZXR1cm4gbnVsbHB0cjsKICAgICByZXR1cm4gJm1fZnJhbWUtPmxv
YWRlcigpOwogfQogCkBAIC0yNDQsNyArMjQ0LDcgQEAgdm9pZCBSZXNvdXJjZUxvYWRlcjo6c2V0
RGF0YUJ1ZmZlcmluZ1BvbGljeShEYXRhQnVmZmVyaW5nUG9saWN5IGRhdGFCdWZmZXJpbmdQb2wK
IAogICAgIC8vIFJlc2V0IGFueSBhbHJlYWR5IGJ1ZmZlcmVkIGRhdGEKICAgICBpZiAoZGF0YUJ1
ZmZlcmluZ1BvbGljeSA9PSBEb05vdEJ1ZmZlckRhdGEpCi0gICAgICAgIG1fcmVzb3VyY2VEYXRh
ID0gMDsKKyAgICAgICAgbV9yZXNvdXJjZURhdGEgPSBudWxscHRyOwogfQogICAgIAogdm9pZCBS
ZXNvdXJjZUxvYWRlcjo6d2lsbFN3aXRjaFRvU3Vic3RpdHV0ZVJlc291cmNlKCkKQEAgLTUzMCw3
ICs1MzAsNyBAQCB2b2lkIFJlc291cmNlTG9hZGVyOjpjYW5jZWwoY29uc3QgUmVzb3VyY2VFcnJv
ciYgZXJyb3IpCiAgICAgICAgIG1fZG9jdW1lbnRMb2FkZXItPmNhbmNlbFBlbmRpbmdTdWJzdGl0
dXRlTG9hZCh0aGlzKTsKICAgICAgICAgaWYgKG1faGFuZGxlKSB7CiAgICAgICAgICAgICBtX2hh
bmRsZS0+Y2FuY2VsKCk7Ci0gICAgICAgICAgICBtX2hhbmRsZSA9IDA7CisgICAgICAgICAgICBt
X2hhbmRsZSA9IG51bGxwdHI7CiAgICAgICAgIH0KICAgICAgICAgY2xlYW51cEZvckVycm9yKG5v
bk51bGxFcnJvcik7CiAgICAgfQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvbG9hZGVyL2Fw
cGNhY2hlL0FwcGxpY2F0aW9uQ2FjaGVHcm91cC5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9sb2FkZXIv
YXBwY2FjaGUvQXBwbGljYXRpb25DYWNoZUdyb3VwLmNwcAppbmRleCA2MjdjMGZlNzllNzVlMDgz
OWM2NjE5Y2E3NGFiOTcwOTE4OTg5MmE2Li41OWJjYWM5YTEwMGJiYzU0MzhhZDQwMzI3ZmY3ZmZj
ZDM5ODk3MDYzIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9sb2FkZXIvYXBwY2FjaGUvQXBw
bGljYXRpb25DYWNoZUdyb3VwLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9sb2FkZXIvYXBwY2Fj
aGUvQXBwbGljYXRpb25DYWNoZUdyb3VwLmNwcApAQCAtMzI3LDcgKzMyNyw3IEBAIHZvaWQgQXBw
bGljYXRpb25DYWNoZUdyb3VwOjpzdG9wTG9hZGluZygpCiAgICAgICAgIG1fbWFuaWZlc3RIYW5k
bGUtPnNldENsaWVudCgwKTsKIAogICAgICAgICBtX21hbmlmZXN0SGFuZGxlLT5jYW5jZWwoKTsK
LSAgICAgICAgbV9tYW5pZmVzdEhhbmRsZSA9IDA7CisgICAgICAgIG1fbWFuaWZlc3RIYW5kbGUg
PSBudWxscHRyOwogICAgIH0KICAgICAKICAgICBpZiAobV9jdXJyZW50SGFuZGxlKSB7CkBAIC0z
MzgsMTEgKzMzOCwxMSBAQCB2b2lkIEFwcGxpY2F0aW9uQ2FjaGVHcm91cDo6c3RvcExvYWRpbmco
KQogICAgICAgICBtX2N1cnJlbnRIYW5kbGUtPnNldENsaWVudCgwKTsKIAogICAgICAgICBtX2N1
cnJlbnRIYW5kbGUtPmNhbmNlbCgpOwotICAgICAgICBtX2N1cnJlbnRIYW5kbGUgPSAwOworICAg
ICAgICBtX2N1cnJlbnRIYW5kbGUgPSBudWxscHRyOwogICAgIH0gICAgCiAKICAgICAvLyBGSVhN
RTogUmVzZXR0aW5nIGp1c3QgYSB0aW55IHBhcnQgb2YgdGhlIHN0YXRlIGluIHRoaXMgZnVuY3Rp
b24gaXMgY29uZnVzaW5nLiBDYWxsZXJzIGhhdmUgdG8gdGFrZSBjYXJlIG9mIGEgbG90IG1vcmUu
Ci0gICAgbV9jYWNoZUJlaW5nVXBkYXRlZCA9IDA7CisgICAgbV9jYWNoZUJlaW5nVXBkYXRlZCA9
IG51bGxwdHI7CiAgICAgbV9wZW5kaW5nRW50cmllcy5jbGVhcigpOwogfSAgICAKIApAQCAtNTIx
LDcgKzUyMSw3IEBAIHZvaWQgQXBwbGljYXRpb25DYWNoZUdyb3VwOjpkaWRSZWNlaXZlUmVzcG9u
c2UoUmVzb3VyY2VIYW5kbGUqIGhhbmRsZSwgY29uc3QgUmVzCiAgICAgICAgICAgICBtX2NhY2hl
QmVpbmdVcGRhdGVkLT5hZGRSZXNvdXJjZShBcHBsaWNhdGlvbkNhY2hlUmVzb3VyY2U6OmNyZWF0
ZSh1cmwsIG5ld2VzdENhY2hlZFJlc291cmNlLT5yZXNwb25zZSgpLCB0eXBlLCBuZXdlc3RDYWNo
ZWRSZXNvdXJjZS0+ZGF0YSgpLCBuZXdlc3RDYWNoZWRSZXNvdXJjZS0+cGF0aCgpKSk7CiAgICAg
ICAgICAgICBtX3BlbmRpbmdFbnRyaWVzLnJlbW92ZShtX2N1cnJlbnRIYW5kbGUtPmZpcnN0UmVx
dWVzdCgpLnVybCgpKTsKICAgICAgICAgICAgIG1fY3VycmVudEhhbmRsZS0+Y2FuY2VsKCk7Ci0g
ICAgICAgICAgICBtX2N1cnJlbnRIYW5kbGUgPSAwOworICAgICAgICAgICAgbV9jdXJyZW50SGFu
ZGxlID0gbnVsbHB0cjsKICAgICAgICAgICAgIC8vIExvYWQgdGhlIG5leHQgcmVzb3VyY2UsIGlm
IGFueS4KICAgICAgICAgICAgIHN0YXJ0TG9hZGluZ0VudHJ5KCk7CiAgICAgICAgICAgICByZXR1
cm47CkBAIC01MzgsNyArNTM4LDcgQEAgdm9pZCBBcHBsaWNhdGlvbkNhY2hlR3JvdXA6OmRpZFJl
Y2VpdmVSZXNwb25zZShSZXNvdXJjZUhhbmRsZSogaGFuZGxlLCBjb25zdCBSZXMKICAgICAgICAg
fSBlbHNlIGlmIChyZXNwb25zZS5odHRwU3RhdHVzQ29kZSgpID09IDQwNCB8fCByZXNwb25zZS5o
dHRwU3RhdHVzQ29kZSgpID09IDQxMCkgewogICAgICAgICAgICAgLy8gU2tpcCB0aGlzIHJlc291
cmNlLiBJdCBpcyBkcm9wcGVkIGZyb20gdGhlIGNhY2hlLgogICAgICAgICAgICAgbV9jdXJyZW50
SGFuZGxlLT5jYW5jZWwoKTsKLSAgICAgICAgICAgIG1fY3VycmVudEhhbmRsZSA9IDA7CisgICAg
ICAgICAgICBtX2N1cnJlbnRIYW5kbGUgPSBudWxscHRyOwogICAgICAgICAgICAgbV9wZW5kaW5n
RW50cmllcy5yZW1vdmUodXJsKTsKICAgICAgICAgICAgIC8vIExvYWQgdGhlIG5leHQgcmVzb3Vy
Y2UsIGlmIGFueS4KICAgICAgICAgICAgIHN0YXJ0TG9hZGluZ0VudHJ5KCk7CkBAIC01NTEsNyAr
NTUxLDcgQEAgdm9pZCBBcHBsaWNhdGlvbkNhY2hlR3JvdXA6OmRpZFJlY2VpdmVSZXNwb25zZShS
ZXNvdXJjZUhhbmRsZSogaGFuZGxlLCBjb25zdCBSZXMKICAgICAgICAgICAgIG1fY2FjaGVCZWlu
Z1VwZGF0ZWQtPmFkZFJlc291cmNlKEFwcGxpY2F0aW9uQ2FjaGVSZXNvdXJjZTo6Y3JlYXRlKHVy
bCwgbmV3ZXN0Q2FjaGVkUmVzb3VyY2UtPnJlc3BvbnNlKCksIHR5cGUsIG5ld2VzdENhY2hlZFJl
c291cmNlLT5kYXRhKCksIG5ld2VzdENhY2hlZFJlc291cmNlLT5wYXRoKCkpKTsKICAgICAgICAg
ICAgIG1fcGVuZGluZ0VudHJpZXMucmVtb3ZlKG1fY3VycmVudEhhbmRsZS0+Zmlyc3RSZXF1ZXN0
KCkudXJsKCkpOwogICAgICAgICAgICAgbV9jdXJyZW50SGFuZGxlLT5jYW5jZWwoKTsKLSAgICAg
ICAgICAgIG1fY3VycmVudEhhbmRsZSA9IDA7CisgICAgICAgICAgICBtX2N1cnJlbnRIYW5kbGUg
PSBudWxscHRyOwogICAgICAgICAgICAgLy8gTG9hZCB0aGUgbmV4dCByZXNvdXJjZSwgaWYgYW55
LgogICAgICAgICAgICAgc3RhcnRMb2FkaW5nRW50cnkoKTsKICAgICAgICAgfQpAQCAtNTk1LDcg
KzU5NSw3IEBAIHZvaWQgQXBwbGljYXRpb25DYWNoZUdyb3VwOjpkaWRGaW5pc2hMb2FkaW5nKFJl
c291cmNlSGFuZGxlKiBoYW5kbGUsIGRvdWJsZSBmaW5pCiAgICAgQVNTRVJUKG1fY2FjaGVCZWlu
Z1VwZGF0ZWQpOwogCiAgICAgbV9jYWNoZUJlaW5nVXBkYXRlZC0+YWRkUmVzb3VyY2UobV9jdXJy
ZW50UmVzb3VyY2UucmVsZWFzZSgpKTsKLSAgICBtX2N1cnJlbnRIYW5kbGUgPSAwOworICAgIG1f
Y3VycmVudEhhbmRsZSA9IG51bGxwdHI7CiAKICAgICAvLyBXaGlsZSBkb3dubG9hZGluZyBjaGVj
ayB0byBzZWUgaWYgd2UgaGF2ZSBleGNlZWRlZCB0aGUgYXZhaWxhYmxlIHF1b3RhLgogICAgIC8v
IFdlIGNhbiBzdG9wIGltbWVkaWF0ZWx5IGlmIHdlIGhhdmUgYWxyZWFkeSBwcmV2aW91c2x5IGZh
aWxlZApAQCAtNjAzLDcgKzYwMyw3IEBAIHZvaWQgQXBwbGljYXRpb25DYWNoZUdyb3VwOjpkaWRG
aW5pc2hMb2FkaW5nKFJlc291cmNlSGFuZGxlKiBoYW5kbGUsIGRvdWJsZSBmaW5pCiAgICAgLy8g
b2YgdGhlIHF1b3RhIGJlaW5nIHJlYWNoZWQgYW5kIGRlY2lkZWQgbm90IHRvIGluY3JlYXNlIGl0
IHRoZW4uCiAgICAgLy8gRklYTUU6IFNob3VsZCB3ZSBicmVhayBlYXJsaWVyIGFuZCBwcmV2ZW50
IHJlZG93bmxvYWRpbmcgb24gbGF0ZXIgcGFnZSBsb2Fkcz8KICAgICBpZiAobV9vcmlnaW5RdW90
YUV4Y2VlZGVkUHJldmlvdXNseSAmJiBtX2F2YWlsYWJsZVNwYWNlSW5RdW90YSA8IG1fY2FjaGVC
ZWluZ1VwZGF0ZWQtPmVzdGltYXRlZFNpemVJblN0b3JhZ2UoKSkgewotICAgICAgICBtX2N1cnJl
bnRSZXNvdXJjZSA9IDA7CisgICAgICAgIG1fY3VycmVudFJlc291cmNlID0gbnVsbHB0cjsKICAg
ICAgICAgbV9mcmFtZS0+ZG9jdW1lbnQoKS0+YWRkQ29uc29sZU1lc3NhZ2UoTWVzc2FnZVNvdXJj
ZTo6QXBwQ2FjaGUsIE1lc3NhZ2VMZXZlbDo6RXJyb3IsIEFTQ0lJTGl0ZXJhbCgiQXBwbGljYXRp
b24gQ2FjaGUgdXBkYXRlIGZhaWxlZCwgYmVjYXVzZSBzaXplIHF1b3RhIHdhcyBleGNlZWRlZC4i
KSk7CiAgICAgICAgIGNhY2hlVXBkYXRlRmFpbGVkKCk7CiAgICAgICAgIHJldHVybjsKQEAgLTYz
MSw3ICs2MzEsNyBAQCB2b2lkIEFwcGxpY2F0aW9uQ2FjaGVHcm91cDo6ZGlkRmFpbChSZXNvdXJj
ZUhhbmRsZSogaGFuZGxlLCBjb25zdCBSZXNvdXJjZUVycm9yJgogICAgICAgICB1cmwucmVtb3Zl
RnJhZ21lbnRJZGVudGlmaWVyKCk7CiAKICAgICBBU1NFUlQoIW1fY3VycmVudFJlc291cmNlIHx8
ICFtX3BlbmRpbmdFbnRyaWVzLmNvbnRhaW5zKHVybCkpOwotICAgIG1fY3VycmVudFJlc291cmNl
ID0gMDsKKyAgICBtX2N1cnJlbnRSZXNvdXJjZSA9IG51bGxwdHI7CiAgICAgbV9wZW5kaW5nRW50
cmllcy5yZW1vdmUodXJsKTsKIAogICAgIGlmICgodHlwZSAmIEFwcGxpY2F0aW9uQ2FjaGVSZXNv
dXJjZTo6RXhwbGljaXQpIHx8ICh0eXBlICYgQXBwbGljYXRpb25DYWNoZVJlc291cmNlOjpGYWxs
YmFjaykpIHsKQEAgLTY5NSw3ICs2OTUsNyBAQCB2b2lkIEFwcGxpY2F0aW9uQ2FjaGVHcm91cDo6
ZGlkRmluaXNoTG9hZGluZ01hbmlmZXN0KCkKICAgICAgICAgcmV0dXJuOwogICAgIH0KIAotICAg
IG1fbWFuaWZlc3RIYW5kbGUgPSAwOworICAgIG1fbWFuaWZlc3RIYW5kbGUgPSBudWxscHRyOwog
CiAgICAgLy8gQ2hlY2sgaWYgdGhlIG1hbmlmZXN0IHdhcyBub3QgbW9kaWZpZWQuCiAgICAgaWYg
KGlzVXBncmFkZUF0dGVtcHQpIHsKQEAgLTcwNiw3ICs3MDYsNyBAQCB2b2lkIEFwcGxpY2F0aW9u
Q2FjaGVHcm91cDo6ZGlkRmluaXNoTG9hZGluZ01hbmlmZXN0KCkKICAgICAgICAgICAgIChuZXdl
c3RNYW5pZmVzdC0+ZGF0YSgpLT5zaXplKCkgPT0gbV9tYW5pZmVzdFJlc291cmNlLT5kYXRhKCkt
PnNpemUoKSAmJiAhbWVtY21wKG5ld2VzdE1hbmlmZXN0LT5kYXRhKCktPmRhdGEoKSwgbV9tYW5p
ZmVzdFJlc291cmNlLT5kYXRhKCktPmRhdGEoKSwgbmV3ZXN0TWFuaWZlc3QtPmRhdGEoKS0+c2l6
ZSgpKSkpIHsKIAogICAgICAgICAgICAgbV9jb21wbGV0aW9uVHlwZSA9IE5vVXBkYXRlOwotICAg
ICAgICAgICAgbV9tYW5pZmVzdFJlc291cmNlID0gMDsKKyAgICAgICAgICAgIG1fbWFuaWZlc3RS
ZXNvdXJjZSA9IG51bGxwdHI7CiAgICAgICAgICAgICBkZWxpdmVyRGVsYXllZE1haW5SZXNvdXJj
ZXMoKTsKIAogICAgICAgICAgICAgcmV0dXJuOwpAQCAtNzgyLDcgKzc4Miw3IEBAIHZvaWQgQXBw
bGljYXRpb25DYWNoZUdyb3VwOjpkaWRSZWFjaE9yaWdpblF1b3RhKGludDY0X3QgdG90YWxTcGFj
ZU5lZWRlZCkKIHZvaWQgQXBwbGljYXRpb25DYWNoZUdyb3VwOjpjYWNoZVVwZGF0ZUZhaWxlZCgp
CiB7CiAgICAgc3RvcExvYWRpbmcoKTsKLSAgICBtX21hbmlmZXN0UmVzb3VyY2UgPSAwOworICAg
IG1fbWFuaWZlc3RSZXNvdXJjZSA9IG51bGxwdHI7CiAKICAgICAvLyBXYWl0IGZvciBtYXN0ZXIg
cmVzb3VyY2UgbG9hZHMgdG8gZmluaXNoLgogICAgIG1fY29tcGxldGlvblR5cGUgPSBGYWlsdXJl
OwpAQCAtODA3LDcgKzgwNyw3IEBAIHZvaWQgQXBwbGljYXRpb25DYWNoZUdyb3VwOjptYW5pZmVz
dE5vdEZvdW5kKCkKICAgICBzdG9wTG9hZGluZygpOwogCiAgICAgQVNTRVJUKG1fcGVuZGluZ0Vu
dHJpZXMuaXNFbXB0eSgpKTsKLSAgICBtX21hbmlmZXN0UmVzb3VyY2UgPSAwOworICAgIG1fbWFu
aWZlc3RSZXNvdXJjZSA9IG51bGxwdHI7CiAKICAgICB3aGlsZSAoIW1fcGVuZGluZ01hc3RlclJl
c291cmNlTG9hZGVycy5pc0VtcHR5KCkpIHsKICAgICAgICAgSGFzaFNldDxEb2N1bWVudExvYWRl
cio+OjppdGVyYXRvciBpdCA9IG1fcGVuZGluZ01hc3RlclJlc291cmNlTG9hZGVycy5iZWdpbigp
OwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvbG9hZGVyL2NhY2hlL0NhY2hlZENTU1N0eWxl
U2hlZXQuY3BwIGIvU291cmNlL1dlYkNvcmUvbG9hZGVyL2NhY2hlL0NhY2hlZENTU1N0eWxlU2hl
ZXQuY3BwCmluZGV4IDdjMmZlN2Q4OTI0ZjRmOTBlY2RkNTgyMDY2YWZlMjdjMDlmMzA4YzEuLjZk
MTE4ODAxYWY4MjY4NDVmYjYxOTkyNzA0NGFmOWIyYjJkMjM2YzQgMTAwNjQ0Ci0tLSBhL1NvdXJj
ZS9XZWJDb3JlL2xvYWRlci9jYWNoZS9DYWNoZWRDU1NTdHlsZVNoZWV0LmNwcAorKysgYi9Tb3Vy
Y2UvV2ViQ29yZS9sb2FkZXIvY2FjaGUvQ2FjaGVkQ1NTU3R5bGVTaGVldC5jcHAKQEAgLTEzOCw3
ICsxMzgsNyBAQCB2b2lkIENhY2hlZENTU1N0eWxlU2hlZXQ6OmRlc3Ryb3lEZWNvZGVkRGF0YSgp
CiAgICAgICAgIHJldHVybjsKIAogICAgIG1fcGFyc2VkU3R5bGVTaGVldENhY2hlLT5yZW1vdmVk
RnJvbU1lbW9yeUNhY2hlKCk7Ci0gICAgbV9wYXJzZWRTdHlsZVNoZWV0Q2FjaGUuY2xlYXIoKTsK
KyAgICBtX3BhcnNlZFN0eWxlU2hlZXRDYWNoZSA9IG51bGxwdHI7CiAKICAgICBzZXREZWNvZGVk
U2l6ZSgwKTsKIH0KQEAgLTE0NiwxMSArMTQ2LDExIEBAIHZvaWQgQ2FjaGVkQ1NTU3R5bGVTaGVl
dDo6ZGVzdHJveURlY29kZWREYXRhKCkKIFBhc3NSZWZQdHI8U3R5bGVTaGVldENvbnRlbnRzPiBD
YWNoZWRDU1NTdHlsZVNoZWV0OjpyZXN0b3JlUGFyc2VkU3R5bGVTaGVldChjb25zdCBDU1NQYXJz
ZXJDb250ZXh0JiBjb250ZXh0LCBDYWNoZVBvbGljeSBjYWNoZVBvbGljeSkKIHsKICAgICBpZiAo
IW1fcGFyc2VkU3R5bGVTaGVldENhY2hlKQotICAgICAgICByZXR1cm4gMDsKKyAgICAgICAgcmV0
dXJuIG51bGxwdHI7CiAgICAgaWYgKCFtX3BhcnNlZFN0eWxlU2hlZXRDYWNoZS0+c3VicmVzb3Vy
Y2VzQWxsb3dSZXVzZShjYWNoZVBvbGljeSkpIHsKICAgICAgICAgbV9wYXJzZWRTdHlsZVNoZWV0
Q2FjaGUtPnJlbW92ZWRGcm9tTWVtb3J5Q2FjaGUoKTsKLSAgICAgICAgbV9wYXJzZWRTdHlsZVNo
ZWV0Q2FjaGUuY2xlYXIoKTsKLSAgICAgICAgcmV0dXJuIDA7CisgICAgICAgIG1fcGFyc2VkU3R5
bGVTaGVldENhY2hlID0gbnVsbHB0cjsKKyAgICAgICAgcmV0dXJuIG51bGxwdHI7CiAgICAgfQog
CiAgICAgQVNTRVJUKG1fcGFyc2VkU3R5bGVTaGVldENhY2hlLT5pc0NhY2hlYWJsZSgpKTsKQEAg
LTE1OCw3ICsxNTgsNyBAQCBQYXNzUmVmUHRyPFN0eWxlU2hlZXRDb250ZW50cz4gQ2FjaGVkQ1NT
U3R5bGVTaGVldDo6cmVzdG9yZVBhcnNlZFN0eWxlU2hlZXQoY29ucwogCiAgICAgLy8gQ29udGV4
dHMgbXVzdCBiZSBpZGVudGljYWwgc28gd2Uga25vdyB3ZSB3b3VsZCBnZXQgdGhlIHNhbWUgZXhh
Y3QgcmVzdWx0IGlmIHdlIHBhcnNlZCBhZ2Fpbi4KICAgICBpZiAobV9wYXJzZWRTdHlsZVNoZWV0
Q2FjaGUtPnBhcnNlckNvbnRleHQoKSAhPSBjb250ZXh0KQotICAgICAgICByZXR1cm4gMDsKKyAg
ICAgICAgcmV0dXJuIG51bGxwdHI7CiAKICAgICBkaWRBY2Nlc3NEZWNvZGVkRGF0YShtb25vdG9u
aWNhbGx5SW5jcmVhc2luZ1RpbWUoKSk7CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2xv
YWRlci9jYWNoZS9DYWNoZWRJbWFnZS5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9sb2FkZXIvY2FjaGUv
Q2FjaGVkSW1hZ2UuY3BwCmluZGV4IDUyNzY5ZGI5NmNlMTdkZWFkNzIwNDFhNzY4MWJhNmYyYTBh
ZDU5ODkuLmRmMzM2NzVjNjNiNWRiNGFmMDNlMzI5MzdjOTFhOWQ3MzQwNGE3MGEgMTAwNjQ0Ci0t
LSBhL1NvdXJjZS9XZWJDb3JlL2xvYWRlci9jYWNoZS9DYWNoZWRJbWFnZS5jcHAKKysrIGIvU291
cmNlL1dlYkNvcmUvbG9hZGVyL2NhY2hlL0NhY2hlZEltYWdlLmNwcApAQCAtMzY1LDggKzM2NSw4
IEBAIGlubGluZSB2b2lkIENhY2hlZEltYWdlOjpjbGVhckltYWdlKCkKICAgICAvLyBJZiBvdXIg
SW1hZ2UgaGFzIGFuIG9ic2VydmVyLCBpdCdzIGFsd2F5cyB1cyBzbyB3ZSBuZWVkIHRvIGNsZWFy
IHRoZSBiYWNrIHBvaW50ZXIKICAgICAvLyBiZWZvcmUgZHJvcHBpbmcgb3VyIHJlZmVyZW5jZS4K
ICAgICBpZiAobV9pbWFnZSkKLSAgICAgICAgbV9pbWFnZS0+c2V0SW1hZ2VPYnNlcnZlcigwKTsK
LSAgICBtX2ltYWdlLmNsZWFyKCk7CisgICAgICAgIG1faW1hZ2UtPnNldEltYWdlT2JzZXJ2ZXIo
bnVsbHB0cik7CisgICAgbV9pbWFnZSA9IG51bGxwdHI7CiB9CiAKIHZvaWQgQ2FjaGVkSW1hZ2U6
OmFkZEluY3JlbWVudGFsRGF0YUJ1ZmZlcihTaGFyZWRCdWZmZXImIGRhdGEpCkBAIC00NTgsNyAr
NDU4LDcgQEAgdm9pZCBDYWNoZWRJbWFnZTo6ZGVzdHJveURlY29kZWREYXRhKCkKIHsKICAgICBi
b29sIGNhbkRlbGV0ZUltYWdlID0gIW1faW1hZ2UgfHwgKG1faW1hZ2UtPmhhc09uZVJlZigpICYm
IG1faW1hZ2UtPmlzQml0bWFwSW1hZ2UoKSk7CiAgICAgaWYgKGNhbkRlbGV0ZUltYWdlICYmICFp
c0xvYWRpbmcoKSAmJiAhaGFzQ2xpZW50cygpKSB7Ci0gICAgICAgIG1faW1hZ2UgPSAwOworICAg
ICAgICBtX2ltYWdlID0gbnVsbHB0cjsKICAgICAgICAgc2V0RGVjb2RlZFNpemUoMCk7CiAgICAg
fSBlbHNlIGlmIChtX2ltYWdlICYmICFlcnJvck9jY3VycmVkKCkpCiAgICAgICAgIG1faW1hZ2Ut
PmRlc3Ryb3lEZWNvZGVkRGF0YSgpOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvbG9hZGVy
L2NhY2hlL0NhY2hlZFJhd1Jlc291cmNlLmNwcCBiL1NvdXJjZS9XZWJDb3JlL2xvYWRlci9jYWNo
ZS9DYWNoZWRSYXdSZXNvdXJjZS5jcHAKaW5kZXggM2MxYjI5NTU0YjE5YzA1ZTJmZTkxZWIwN2Uw
ZTU1MmMyZjk4YThmNC4uNTRiYmRlMWFjOGVjODcxNDhhOTUzZDNkZDc3ODJhN2IzZTMyNDU2NSAx
MDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvbG9hZGVyL2NhY2hlL0NhY2hlZFJhd1Jlc291cmNl
LmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9sb2FkZXIvY2FjaGUvQ2FjaGVkUmF3UmVzb3VyY2Uu
Y3BwCkBAIC0yNjgsNyArMjY4LDcgQEAgYm9vbCBDYWNoZWRSYXdSZXNvdXJjZTo6Y2FuUmV1c2Uo
Y29uc3QgUmVzb3VyY2VSZXF1ZXN0JiBuZXdSZXF1ZXN0KSBjb25zdAogCiB2b2lkIENhY2hlZFJh
d1Jlc291cmNlOjpjbGVhcigpCiB7Ci0gICAgbV9kYXRhLmNsZWFyKCk7CisgICAgbV9kYXRhID0g
bnVsbHB0cjsKICAgICBzZXRFbmNvZGVkU2l6ZSgwKTsKICAgICBpZiAobV9sb2FkZXIpCiAgICAg
ICAgIG1fbG9hZGVyLT5jbGVhclJlc291cmNlRGF0YSgpOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dl
YkNvcmUvbG9hZGVyL2NhY2hlL0NhY2hlZFJlc291cmNlLmNwcCBiL1NvdXJjZS9XZWJDb3JlL2xv
YWRlci9jYWNoZS9DYWNoZWRSZXNvdXJjZS5jcHAKaW5kZXggZjQ0MzFiZjNkZGFmY2QyZmI3MDM4
MzdjNmY3Y2NkMDEzMDc1MTFmMC4uM2JlZjIxZThkOTg5ODhhMDM4ZGViN2UxMGUwZWY0ZTNjZWY0
M2E2YiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvbG9hZGVyL2NhY2hlL0NhY2hlZFJlc291
cmNlLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9sb2FkZXIvY2FjaGUvQ2FjaGVkUmVzb3VyY2Uu
Y3BwCkBAIC0zMTcsNyArMzE3LDcgQEAgdm9pZCBDYWNoZWRSZXNvdXJjZTo6ZXJyb3IoQ2FjaGVk
UmVzb3VyY2U6OlN0YXR1cyBzdGF0dXMpCiB7CiAgICAgc2V0U3RhdHVzKHN0YXR1cyk7CiAgICAg
QVNTRVJUKGVycm9yT2NjdXJyZWQoKSk7Ci0gICAgbV9kYXRhLmNsZWFyKCk7CisgICAgbV9kYXRh
ID0gbnVsbHB0cjsKIAogICAgIHNldExvYWRpbmcoZmFsc2UpOwogICAgIGNoZWNrTm90aWZ5KCk7
CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9sb2FkZXIvaWNvbi9JY29uUmVjb3JkLmNwcCBi
L1NvdXJjZS9XZWJDb3JlL2xvYWRlci9pY29uL0ljb25SZWNvcmQuY3BwCmluZGV4IGQ0YmMwZDFh
MTlmMzcwNjJiZjdjYTU4ZWRjNjQyYmZlZTYyMDVhODguLmU3ZjFkNGIyMzM0NjEwNjk0ZGQzMWVl
N2VjNDQwNDdmODM3M2I3NjUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2xvYWRlci9pY29u
L0ljb25SZWNvcmQuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2xvYWRlci9pY29uL0ljb25SZWNv
cmQuY3BwCkBAIC03MSw3ICs3MSw3IEBAIHZvaWQgSWNvblJlY29yZDo6c2V0SW1hZ2VEYXRhKFBh
c3NSZWZQdHI8U2hhcmVkQnVmZmVyPiBkYXRhKQogICAgIC8vIENvcHkgdGhlIHByb3ZpZGVkIGRh
dGEgaW50byB0aGUgYnVmZmVyIG9mIHRoZSBuZXcgSW1hZ2Ugb2JqZWN0LgogICAgIGlmICghbV9p
bWFnZS0+c2V0RGF0YShkYXRhLCB0cnVlKSkgewogICAgICAgICBMT0coSWNvbkRhdGFiYXNlLCAi
TWFudWFsIGltYWdlIGRhdGEgZm9yIGljb25VUkwgJyVzJyBGQUlMRUQgLSBpdCB3YXMgcHJvYmFi
bHkgaW52YWxpZCBpbWFnZSBkYXRhIiwgbV9pY29uVVJMLmFzY2lpKCkuZGF0YSgpKTsKLSAgICAg
ICAgbV9pbWFnZS5jbGVhcigpOworICAgICAgICBtX2ltYWdlID0gbnVsbHB0cjsKICAgICB9CiAg
ICAgCiAgICAgbV9kYXRhU2V0ID0gdHJ1ZTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3Bh
Z2UvRXZlbnRIYW5kbGVyLmNwcCBiL1NvdXJjZS9XZWJDb3JlL3BhZ2UvRXZlbnRIYW5kbGVyLmNw
cAppbmRleCA2NTRhNGZlYzc3Mzc5NzIzZDdiNjFmMzYxNjdhYmEyNWU4OTQ1MDljLi4zYWE2NmQ5
YmM4MTRlYzNiZmRiZDM0YzlkNzVlM2U3MzU2MTE1NGUzIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2Vi
Q29yZS9wYWdlL0V2ZW50SGFuZGxlci5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvcGFnZS9FdmVu
dEhhbmRsZXIuY3BwCkBAIC00ODUsNyArNDg1LDcgQEAgdm9pZCBFdmVudEhhbmRsZXI6OmNsZWFy
KCkKICAgICBtX21vdXNlUG9zaXRpb25Jc1Vua25vd24gPSB0cnVlOwogICAgIG1fbGFzdEtub3du
TW91c2VQb3NpdGlvbiA9IEludFBvaW50KCk7CiAgICAgbV9sYXN0S25vd25Nb3VzZUdsb2JhbFBv
c2l0aW9uID0gSW50UG9pbnQoKTsKLSAgICBtX21vdXNlUHJlc3NOb2RlID0gMDsKKyAgICBtX21v
dXNlUHJlc3NOb2RlID0gbnVsbHB0cjsKICAgICBtX21vdXNlUHJlc3NlZCA9IGZhbHNlOwogICAg
IG1fY2FwdHVyZXNEcmFnZ2luZyA9IGZhbHNlOwogICAgIG1fY2FwdHVyaW5nTW91c2VFdmVudHNF
bGVtZW50ID0gbnVsbHB0cjsKQEAgLTQ5NCw3ICs0OTQsNyBAQCB2b2lkIEV2ZW50SGFuZGxlcjo6
Y2xlYXIoKQogI2VuZGlmCiAjaWYgRU5BQkxFKFRPVUNIX0VWRU5UUykgJiYgIUVOQUJMRShJT1Nf
VE9VQ0hfRVZFTlRTKQogICAgIG1fb3JpZ2luYXRpbmdUb3VjaFBvaW50VGFyZ2V0cy5jbGVhcigp
OwotICAgIG1fb3JpZ2luYXRpbmdUb3VjaFBvaW50RG9jdW1lbnQuY2xlYXIoKTsKKyAgICBtX29y
aWdpbmF0aW5nVG91Y2hQb2ludERvY3VtZW50ID0gbnVsbHB0cjsKICAgICBtX29yaWdpbmF0aW5n
VG91Y2hQb2ludFRhcmdldEtleSA9IDA7CiAjZW5kaWYKICAgICBtX21heE1vdXNlTW92ZWREdXJh
dGlvbiA9IDA7CkBAIC0zOTk0LDcgKzM5OTQsNyBAQCBib29sIEV2ZW50SGFuZGxlcjo6aGFuZGxl
VG91Y2hFdmVudChjb25zdCBQbGF0Zm9ybVRvdWNoRXZlbnQmIGV2ZW50KQogICAgIH0KICAgICBt
X3RvdWNoUHJlc3NlZCA9IHRvdWNoZXMtPmxlbmd0aCgpID4gMDsKICAgICBpZiAoYWxsVG91Y2hS
ZWxlYXNlZCkKLSAgICAgICAgbV9vcmlnaW5hdGluZ1RvdWNoUG9pbnREb2N1bWVudC5jbGVhcigp
OworICAgICAgICBtX29yaWdpbmF0aW5nVG91Y2hQb2ludERvY3VtZW50ID0gbnVsbHB0cjsKIAog
ICAgIC8vIE5vdyBpdGVyYXRlIHRoZSBjaGFuZ2VkVG91Y2hlcyBsaXN0IGFuZCBtX3RhcmdldHMg
d2l0aGluIGl0LCBzZW5kaW5nIGV2ZW50cyB0byB0aGUgdGFyZ2V0cyBhcyByZXF1aXJlZC4KICAg
ICBib29sIHN3YWxsb3dlZEV2ZW50ID0gZmFsc2U7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29y
ZS9wYWdlL1BhZ2UuY3BwIGIvU291cmNlL1dlYkNvcmUvcGFnZS9QYWdlLmNwcAppbmRleCAxZDNk
Y2MyYjU2Mzk2MjE0ZTlmODBmNzJjOGUzM2VhMTg5YjkzYWQyLi5mODZkODFmZDA1MzBhMDNjNjI2
MjIxMTZjOTBiZmU5MDU2NzE2N2IwIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wYWdlL1Bh
Z2UuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BhZ2UvUGFnZS5jcHAKQEAgLTUxNiw3ICs1MTYs
NyBAQCB2b2lkIFBhZ2U6OnJlZnJlc2hQbHVnaW5zKGJvb2wgcmVsb2FkKQogICAgIFZlY3RvcjxS
ZWY8RnJhbWU+PiBmcmFtZXNOZWVkaW5nUmVsb2FkOwogCiAgICAgZm9yIChhdXRvJiBwYWdlIDog
KmFsbFBhZ2VzKSB7Ci0gICAgICAgIHBhZ2UtPm1fcGx1Z2luRGF0YS5jbGVhcigpOworICAgICAg
ICBwYWdlLT5tX3BsdWdpbkRhdGEgPSBudWxscHRyOwogCiAgICAgICAgIGlmICghcmVsb2FkKQog
ICAgICAgICAgICAgY29udGludWU7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9y
bS9hdWRpby9tYWMvQ0FSaW5nQnVmZmVyLmNwcCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2F1
ZGlvL21hYy9DQVJpbmdCdWZmZXIuY3BwCmluZGV4IGY3NmU4ZGY5MDZiNWE2MWU1N2M3NzVjNGNl
NmQyY2M0NGJjOGFhNTIuLjA1NDQyYWRjNDVlOTc3ODk5MzE1MjA1YzM3MmU2MTk2MDEyNzlkMzcg
MTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2F1ZGlvL21hYy9DQVJpbmdCdWZm
ZXIuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2F1ZGlvL21hYy9DQVJpbmdCdWZm
ZXIuY3BwCkBAIC04Niw3ICs4Niw3IEBAIHZvaWQgQ0FSaW5nQnVmZmVyOjphbGxvY2F0ZSh1aW50
MzJfdCBjaGFubmVsQ291bnQsIHNpemVfdCBieXRlc1BlckZyYW1lLCBzaXplX3QKIHZvaWQgQ0FS
aW5nQnVmZmVyOjpkZWFsbG9jYXRlKCkKIHsKICAgICBpZiAobV9idWZmZXJzKQotICAgICAgICBt
X2J1ZmZlcnMuY2xlYXIoKTsKKyAgICAgICAgbV9idWZmZXJzID0gbnVsbHB0cjsKIAogICAgIG1f
Y2hhbm5lbENvdW50ID0gMDsKICAgICBtX2NhcGFjaXR5Qnl0ZXMgPSAwOwpkaWZmIC0tZ2l0IGEv
U291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvRm9udC5jcHAgYi9Tb3VyY2UvV2ViQ29y
ZS9wbGF0Zm9ybS9ncmFwaGljcy9Gb250LmNwcAppbmRleCA2MDNlYmE4MWYwMTBmZWYwYjA5ZWE5
NDdhZTg4NmE1MTk5OGI1YWNjLi5kOTI2NWI1OGQyYmUyNGFkNzE0NzNhYmE1YjIzYjUyNmQwOTEz
NzJlIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9Gb250LmNw
cAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9Gb250LmNwcApAQCAtMzYz
LDcgKzM2Myw3IEBAIGNvbnN0IE9wZW5UeXBlTWF0aERhdGEqIEZvbnQ6Om1hdGhEYXRhKCkgY29u
c3QKICAgICBpZiAoIW1fbWF0aERhdGEpIHsKICAgICAgICAgbV9tYXRoRGF0YSA9IE9wZW5UeXBl
TWF0aERhdGE6OmNyZWF0ZShtX3BsYXRmb3JtRGF0YSk7CiAgICAgICAgIGlmICghbV9tYXRoRGF0
YS0+aGFzTWF0aERhdGEoKSkKLSAgICAgICAgICAgIG1fbWF0aERhdGEuY2xlYXIoKTsKKyAgICAg
ICAgICAgIG1fbWF0aERhdGEgPSBudWxscHRyOwogICAgIH0KICAgICByZXR1cm4gbV9tYXRoRGF0
YS5nZXQoKTsKIH0KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNz
L0ZvbnRDYWNoZS5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9Gb250Q2Fj
aGUuY3BwCmluZGV4IGE2YzQwNDk5NDhjZjM2MzIxYjczZGQ1MTFiOTE4YTJhOGFhZTA0NWMuLjhk
MWE4MzU5ZDY5Y2I3MGU0YzIwYjVlYTgzMjg3NjVhNmJjZDQ2MzQgMTAwNjQ0Ci0tLSBhL1NvdXJj
ZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL0ZvbnRDYWNoZS5jcHAKKysrIGIvU291cmNlL1dl
YkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvRm9udENhY2hlLmNwcApAQCAtMzIwLDcgKzMyMCw3IEBA
IFBhc3NSZWZQdHI8T3BlblR5cGVWZXJ0aWNhbERhdGE+IEZvbnRDYWNoZTo6Z2V0VmVydGljYWxE
YXRhKGNvbnN0IEZvbnRGaWxlS2V5JiBrCiAKICAgICBSZWZQdHI8T3BlblR5cGVWZXJ0aWNhbERh
dGE+IHZlcnRpY2FsRGF0YSA9IE9wZW5UeXBlVmVydGljYWxEYXRhOjpjcmVhdGUocGxhdGZvcm1E
YXRhKTsKICAgICBpZiAoIXZlcnRpY2FsRGF0YS0+aXNPcGVuVHlwZSgpKQotICAgICAgICB2ZXJ0
aWNhbERhdGEuY2xlYXIoKTsKKyAgICAgICAgdmVydGljYWxEYXRhID0gbnVsbHB0cjsKICAgICBm
b250VmVydGljYWxEYXRhQ2FjaGUuc2V0KGtleSwgdmVydGljYWxEYXRhKTsKICAgICByZXR1cm4g
dmVydGljYWxEYXRhOwogfQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3Jh
cGhpY3MvR3JhcGhpY3NDb250ZXh0LmNwcCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBo
aWNzL0dyYXBoaWNzQ29udGV4dC5jcHAKaW5kZXggZDM4YzFmYWY3NzUyNTgzM2YzN2UzY2I2MTc4
YmI0YzZmNjdjYzM5OS4uZTZiMzdmZGU1Zjk1ZWMwMmMyZjdkNjhhNjFmNDBmNDdhNzdmMjczMSAx
MDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvR3JhcGhpY3NDb250
ZXh0LmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9HcmFwaGljc0Nv
bnRleHQuY3BwCkBAIC0xNzgsOCArMTc4LDggQEAgdm9pZCBHcmFwaGljc0NvbnRleHQ6OnNldFN0
cm9rZUNvbG9yKGNvbnN0IENvbG9yJiBjb2xvciwgQ29sb3JTcGFjZSBjb2xvclNwYWNlKQogewog
ICAgIG1fc3RhdGUuc3Ryb2tlQ29sb3IgPSBjb2xvcjsKICAgICBtX3N0YXRlLnN0cm9rZUNvbG9y
U3BhY2UgPSBjb2xvclNwYWNlOwotICAgIG1fc3RhdGUuc3Ryb2tlR3JhZGllbnQuY2xlYXIoKTsK
LSAgICBtX3N0YXRlLnN0cm9rZVBhdHRlcm4uY2xlYXIoKTsKKyAgICBtX3N0YXRlLnN0cm9rZUdy
YWRpZW50ID0gbnVsbHB0cjsKKyAgICBtX3N0YXRlLnN0cm9rZVBhdHRlcm4gPSBudWxscHRyOwog
ICAgIHNldFBsYXRmb3JtU3Ryb2tlQ29sb3IoY29sb3IsIGNvbG9yU3BhY2UpOwogfQogCkBAIC0y
NDUsOCArMjQ1LDggQEAgdm9pZCBHcmFwaGljc0NvbnRleHQ6OnNldEZpbGxDb2xvcihjb25zdCBD
b2xvciYgY29sb3IsIENvbG9yU3BhY2UgY29sb3JTcGFjZSkKIHsKICAgICBtX3N0YXRlLmZpbGxD
b2xvciA9IGNvbG9yOwogICAgIG1fc3RhdGUuZmlsbENvbG9yU3BhY2UgPSBjb2xvclNwYWNlOwot
ICAgIG1fc3RhdGUuZmlsbEdyYWRpZW50LmNsZWFyKCk7Ci0gICAgbV9zdGF0ZS5maWxsUGF0dGVy
bi5jbGVhcigpOworICAgIG1fc3RhdGUuZmlsbEdyYWRpZW50ID0gbnVsbHB0cjsKKyAgICBtX3N0
YXRlLmZpbGxQYXR0ZXJuID0gbnVsbHB0cjsKICAgICBzZXRQbGF0Zm9ybUZpbGxDb2xvcihjb2xv
ciwgY29sb3JTcGFjZSk7CiB9CiAKQEAgLTI2OSwyNiArMjY5LDI2IEBAIHZvaWQgR3JhcGhpY3ND
b250ZXh0OjpzZXRBbnRpYWxpYXNlZEZvbnREaWxhdGlvbkVuYWJsZWQoYm9vbCBhbnRpYWxpYXNl
ZEZvbnREaWxhCiAKIHZvaWQgR3JhcGhpY3NDb250ZXh0OjpzZXRTdHJva2VQYXR0ZXJuKFJlZjxQ
YXR0ZXJuPiYmIHBhdHRlcm4pCiB7Ci0gICAgbV9zdGF0ZS5zdHJva2VHcmFkaWVudC5jbGVhcigp
OworICAgIG1fc3RhdGUuc3Ryb2tlR3JhZGllbnQgPSBudWxscHRyOwogICAgIG1fc3RhdGUuc3Ry
b2tlUGF0dGVybiA9IFdURjo6bW92ZShwYXR0ZXJuKTsKIH0KIAogdm9pZCBHcmFwaGljc0NvbnRl
eHQ6OnNldEZpbGxQYXR0ZXJuKFJlZjxQYXR0ZXJuPiYmIHBhdHRlcm4pCiB7Ci0gICAgbV9zdGF0
ZS5maWxsR3JhZGllbnQuY2xlYXIoKTsKKyAgICBtX3N0YXRlLmZpbGxHcmFkaWVudCA9IG51bGxw
dHI7CiAgICAgbV9zdGF0ZS5maWxsUGF0dGVybiA9IFdURjo6bW92ZShwYXR0ZXJuKTsKIH0KIAog
dm9pZCBHcmFwaGljc0NvbnRleHQ6OnNldFN0cm9rZUdyYWRpZW50KFJlZjxHcmFkaWVudD4mJiBn
cmFkaWVudCkKIHsKICAgICBtX3N0YXRlLnN0cm9rZUdyYWRpZW50ID0gV1RGOjptb3ZlKGdyYWRp
ZW50KTsKLSAgICBtX3N0YXRlLnN0cm9rZVBhdHRlcm4uY2xlYXIoKTsKKyAgICBtX3N0YXRlLnN0
cm9rZVBhdHRlcm4gPSBudWxscHRyOwogfQogCiB2b2lkIEdyYXBoaWNzQ29udGV4dDo6c2V0Rmls
bEdyYWRpZW50KFJlZjxHcmFkaWVudD4mJiBncmFkaWVudCkKIHsKICAgICBtX3N0YXRlLmZpbGxH
cmFkaWVudCA9IFdURjo6bW92ZShncmFkaWVudCk7Ci0gICAgbV9zdGF0ZS5maWxsUGF0dGVybi5j
bGVhcigpOworICAgIG1fc3RhdGUuZmlsbFBhdHRlcm4gPSBudWxscHRyOwogfQogCiB2b2lkIEdy
YXBoaWNzQ29udGV4dDo6YmVnaW5UcmFuc3BhcmVuY3lMYXllcihmbG9hdCBvcGFjaXR5KQpkaWZm
IC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvTWVkaWFQbGF5ZXIuY3Bw
IGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvTWVkaWFQbGF5ZXIuY3BwCmluZGV4
IDI5NGE3NmQ5Zjg2ZWYyZTc3NTBkMzZhODNhOTg3ZDc2MGQ0MGIxZDIuLjAxMjc5NWU0NjViZWEw
NGQwZjg3ZTcyNzdlNzRlMGZlNWI1ODcyYjEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3Bs
YXRmb3JtL2dyYXBoaWNzL01lZGlhUGxheWVyLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0
Zm9ybS9ncmFwaGljcy9NZWRpYVBsYXllci5jcHAKQEAgLTMxNCwxMCArMzE0LDEwIEBAIGJvb2wg
TWVkaWFQbGF5ZXI6OmxvYWQoY29uc3QgVVJMJiB1cmwsIGNvbnN0IENvbnRlbnRUeXBlJiBjb250
ZW50VHlwZSwgY29uc3QgU3RyCiAgICAgbV9jb250ZW50TUlNRVR5cGVXYXNJbmZlcnJlZEZyb21F
eHRlbnNpb24gPSBmYWxzZTsKIAogI2lmIEVOQUJMRShNRURJQV9TT1VSQ0UpCi0gICAgbV9tZWRp
YVNvdXJjZSA9IDA7CisgICAgbV9tZWRpYVNvdXJjZSA9IG51bGxwdHI7CiAjZW5kaWYKICNpZiBF
TkFCTEUoTUVESUFfU1RSRUFNKQotICAgIG1fbWVkaWFTdHJlYW0gPSAwOworICAgIG1fbWVkaWFT
dHJlYW0gPSBudWxscHRyOwogI2VuZGlmCiAKICAgICAvLyBJZiB0aGUgTUlNRSB0eXBlIGlzIG1p
c3Npbmcgb3IgaXMgbm90IG1lYW5pbmdmdWwsIHRyeSB0byBmaWd1cmUgaXQgb3V0IGZyb20gdGhl
IFVSTC4KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2NhL0dy
YXBoaWNzTGF5ZXJDQS5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9jYS9H
cmFwaGljc0xheWVyQ0EuY3BwCmluZGV4IDgyYzA3NjkxMjdiZjllNTE2OWRhZTQ4ZGZiNGIyODkw
MmZlOTA2YzAuLjM0ZjRjZTEwM2E5MzZlM2EwMTFiODVjZmI0ZGZlZWNkNjE1MmM4ZTggMTAwNjQ0
Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2NhL0dyYXBoaWNzTGF5ZXJD
QS5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvY2EvR3JhcGhpY3NM
YXllckNBLmNwcApAQCAtMjIwOCw3ICsyMjA4LDcgQEAgdm9pZCBHcmFwaGljc0xheWVyQ0E6OnVw
ZGF0ZUNvbnRlbnRzSW1hZ2UoKQogICAgIH0gZWxzZSB7CiAgICAgICAgIC8vIE5vIGltYWdlLgog
ICAgICAgICAvLyBtX2NvbnRlbnRzTGF5ZXIgd2lsbCBiZSByZW1vdmVkIHZpYSB1cGRhdGVTdWJs
YXllckxpc3QuCi0gICAgICAgIG1fY29udGVudHNMYXllciA9IDA7CisgICAgICAgIG1fY29udGVu
dHNMYXllciA9IG51bGxwdHI7CiAgICAgfQogfQogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29y
ZS9wbGF0Zm9ybS9ncmFwaGljcy9jYWlyby9CYWNraW5nU3RvcmVCYWNrZW5kQ2Fpcm9YMTEuY3Bw
IGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvY2Fpcm8vQmFja2luZ1N0b3JlQmFj
a2VuZENhaXJvWDExLmNwcAppbmRleCA3Yjg2MzFhZjBhOWQ4ZjRhZTkwNjNiMjc5ZTQwY2VlMzQ1
NDljZmE0Li40MzdkYWZjODJmZDIyZWNiZjA2MDQ3YTNjMjg2ODllYmUwMjIzNmQyIDEwMDY0NAot
LS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9jYWlyby9CYWNraW5nU3RvcmVC
YWNrZW5kQ2Fpcm9YMTEuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNz
L2NhaXJvL0JhY2tpbmdTdG9yZUJhY2tlbmRDYWlyb1gxMS5jcHAKQEAgLTQzLDcgKzQzLDcgQEAg
QmFja2luZ1N0b3JlQmFja2VuZENhaXJvWDExOjpCYWNraW5nU3RvcmVCYWNrZW5kQ2Fpcm9YMTEo
dW5zaWduZWQgbG9uZyByb290V2luZG8KIEJhY2tpbmdTdG9yZUJhY2tlbmRDYWlyb1gxMTo6fkJh
Y2tpbmdTdG9yZUJhY2tlbmRDYWlyb1gxMSgpCiB7CiAgICAgLy8gVGhlIHBpeG1hcCBuZWVkcyB0
byBleGlzdCB3aGVuIHRoZSBzdXJmYWNlIGlzIGRlc3Ryb3llZCwgc28gYmVnaW4gYnkgY2xlYXJp
bmcgaXQuCi0gICAgbV9zdXJmYWNlLmNsZWFyKCk7CisgICAgbV9zdXJmYWNlID0gbnVsbHB0cjsK
IH0KIAogdm9pZCBCYWNraW5nU3RvcmVCYWNrZW5kQ2Fpcm9YMTE6OnNjcm9sbChjb25zdCBJbnRS
ZWN0JiBzY3JvbGxSZWN0LCBjb25zdCBJbnRTaXplJiBzY3JvbGxPZmZzZXQpCmRpZmYgLS1naXQg
YS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9jYWlyby9CaXRtYXBJbWFnZUNhaXJv
LmNwcCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2NhaXJvL0JpdG1hcEltYWdl
Q2Fpcm8uY3BwCmluZGV4IDI2ZGY1ZGYzYWJhNDkwNzYwMTI3ODljMjY2ZmE5NjAyNzc1YmUyZGUu
LmYwZDNhN2E3MmRiOTJmZGUxZDFiNWY5OTM4YjNjMGMxZTdhZDYxZjEgMTAwNjQ0Ci0tLSBhL1Nv
dXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2NhaXJvL0JpdG1hcEltYWdlQ2Fpcm8uY3Bw
CisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2NhaXJvL0JpdG1hcEltYWdl
Q2Fpcm8uY3BwCkBAIC0xNTksNyArMTU5LDcgQEAgYm9vbCBGcmFtZURhdGE6OmNsZWFyKGJvb2wg
Y2xlYXJNZXRhZGF0YSkKICAgICAgICAgbV9oYXZlTWV0YWRhdGEgPSBmYWxzZTsKIAogICAgIGlm
IChtX2ZyYW1lKSB7Ci0gICAgICAgIG1fZnJhbWUuY2xlYXIoKTsKKyAgICAgICAgbV9mcmFtZSA9
IG51bGxwdHI7CiAgICAgICAgIHJldHVybiB0cnVlOwogICAgIH0KICAgICByZXR1cm4gZmFsc2U7
CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9maWx0ZXJzL0Zp
bHRlckVmZmVjdC5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9maWx0ZXJz
L0ZpbHRlckVmZmVjdC5jcHAKaW5kZXggNzYyNzAwODAzMGQ3ZWZhZTZlMDgwZTY4NzU4ZGMxNjBl
YWMyYzBiOS4uYzk4ZDViOTg1YWYzYmIxZTViMGMwYzIyNmJiNDVmYzYwNTRmNDMzYyAxMDA2NDQK
LS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvZmlsdGVycy9GaWx0ZXJFZmZl
Y3QuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2ZpbHRlcnMvRmls
dGVyRWZmZWN0LmNwcApAQCAtMjQ1LDEyICsyNDUsMTIgQEAgdm9pZCBGaWx0ZXJFZmZlY3Q6OmNs
ZWFyUmVzdWx0KCkKICAgICBpZiAobV9pbWFnZUJ1ZmZlclJlc3VsdCkKICAgICAgICAgbV9pbWFn
ZUJ1ZmZlclJlc3VsdC5yZXNldCgpOwogICAgIGlmIChtX3VubXVsdGlwbGllZEltYWdlUmVzdWx0
KQotICAgICAgICBtX3VubXVsdGlwbGllZEltYWdlUmVzdWx0LmNsZWFyKCk7CisgICAgICAgIG1f
dW5tdWx0aXBsaWVkSW1hZ2VSZXN1bHQgPSBudWxscHRyOwogICAgIGlmIChtX3ByZW11bHRpcGxp
ZWRJbWFnZVJlc3VsdCkKLSAgICAgICAgbV9wcmVtdWx0aXBsaWVkSW1hZ2VSZXN1bHQuY2xlYXIo
KTsKKyAgICAgICAgbV9wcmVtdWx0aXBsaWVkSW1hZ2VSZXN1bHQgPSBudWxscHRyOwogI2lmIEVO
QUJMRShPUEVOQ0wpCiAgICAgaWYgKG1fb3BlbkNMSW1hZ2VSZXN1bHQpCi0gICAgICAgIG1fb3Bl
bkNMSW1hZ2VSZXN1bHQuY2xlYXIoKTsKKyAgICAgICAgbV9vcGVuQ0xJbWFnZVJlc3VsdCA9IG51
bGxwdHI7CiAjZW5kaWYKIH0KIApAQCAtNTQwLDcgKzU0MCw3IEBAIHZvaWQgRmlsdGVyRWZmZWN0
Ojp0cmFuc2Zvcm1SZXN1bHRDb2xvclNwYWNlKENvbG9yU3BhY2UgZHN0Q29sb3JTcGFjZSkKICNp
ZiBFTkFCTEUoT1BFTkNMKQogICAgIGlmIChvcGVuQ0xJbWFnZSgpKSB7CiAgICAgICAgIGlmICht
X2ltYWdlQnVmZmVyUmVzdWx0KQotICAgICAgICAgICAgbV9pbWFnZUJ1ZmZlclJlc3VsdC5jbGVh
cigpOworICAgICAgICAgICAgbV9pbWFnZUJ1ZmZlclJlc3VsdCA9IG51bGxwdHI7CiAgICAgICAg
IEZpbHRlckNvbnRleHRPcGVuQ0wqIGNvbnRleHQgPSBGaWx0ZXJDb250ZXh0T3BlbkNMOjpjb250
ZXh0KCk7CiAgICAgICAgIEFTU0VSVChjb250ZXh0KTsKICAgICAgICAgY29udGV4dC0+b3BlbkNM
VHJhbnNmb3JtQ29sb3JTcGFjZShtX29wZW5DTEltYWdlUmVzdWx0LCBhYnNvbHV0ZVBhaW50UmVj
dCgpLCBtX3Jlc3VsdENvbG9yU3BhY2UsIGRzdENvbG9yU3BhY2UpOwpAQCAtNTU4LDkgKzU1OCw5
IEBAIHZvaWQgRmlsdGVyRWZmZWN0Ojp0cmFuc2Zvcm1SZXN1bHRDb2xvclNwYWNlKENvbG9yU3Bh
Y2UgZHN0Q29sb3JTcGFjZSkKICAgICBtX3Jlc3VsdENvbG9yU3BhY2UgPSBkc3RDb2xvclNwYWNl
OwogCiAgICAgaWYgKG1fdW5tdWx0aXBsaWVkSW1hZ2VSZXN1bHQpCi0gICAgICAgIG1fdW5tdWx0
aXBsaWVkSW1hZ2VSZXN1bHQuY2xlYXIoKTsKKyAgICAgICAgbV91bm11bHRpcGxpZWRJbWFnZVJl
c3VsdCA9IG51bGxwdHI7CiAgICAgaWYgKG1fcHJlbXVsdGlwbGllZEltYWdlUmVzdWx0KQotICAg
ICAgICBtX3ByZW11bHRpcGxpZWRJbWFnZVJlc3VsdC5jbGVhcigpOworICAgICAgICBtX3ByZW11
bHRpcGxpZWRJbWFnZVJlc3VsdCA9IG51bGxwdHI7CiAjZW5kaWYKIH0KIApkaWZmIC0tZ2l0IGEv
U291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvZ3N0cmVhbWVyL0ltYWdlR1N0cmVhbWVy
Q2Fpcm8uY3BwIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvZ3N0cmVhbWVyL0lt
YWdlR1N0cmVhbWVyQ2Fpcm8uY3BwCmluZGV4IDA2ZmFlY2ExOWJhMjUzZWE3ODM3MGY1ODU0NGFi
ZjFhY2IyZTUyNWUuLmVlMjcyNzdmZjBiN2U5MDMzZjRiOTMzNjAyOGFjZjQyMThiMjBhNWYgMTAw
NjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2dzdHJlYW1lci9JbWFn
ZUdTdHJlYW1lckNhaXJvLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGlj
cy9nc3RyZWFtZXIvSW1hZ2VHU3RyZWFtZXJDYWlyby5jcHAKQEAgLTcxLDkgKzcxLDcgQEAgSW1h
Z2VHU3RyZWFtZXI6OkltYWdlR1N0cmVhbWVyKEdzdFNhbXBsZSogc2FtcGxlKQogSW1hZ2VHU3Ry
ZWFtZXI6On5JbWFnZUdTdHJlYW1lcigpCiB7CiAgICAgaWYgKG1faW1hZ2UpCi0gICAgICAgIG1f
aW1hZ2UuY2xlYXIoKTsKLQotICAgIG1faW1hZ2UgPSAwOworICAgICAgICBtX2ltYWdlID0gbnVs
bHB0cjsKIAogICAgIC8vIFdlIGtlZXAgdGhlIGJ1ZmZlciBtZW1vcnkgbWFwcGVkIHVudGlsIHRo
ZSBpbWFnZSBpcyBkZXN0cm95ZWQgYmVjYXVzZSB0aGUgaW50ZXJuYWwKICAgICAvLyBjYWlyb19z
dXJmYWNlX3Qgd2FzIGNyZWF0ZWQgdXNpbmcgY2Fpcm9faW1hZ2Vfc3VyZmFjZV9jcmVhdGVfZm9y
X2RhdGEoKS4KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2dz
dHJlYW1lci9XZWJLaXRXZWJTb3VyY2VHU3RyZWFtZXIuY3BwIGIvU291cmNlL1dlYkNvcmUvcGxh
dGZvcm0vZ3JhcGhpY3MvZ3N0cmVhbWVyL1dlYktpdFdlYlNvdXJjZUdTdHJlYW1lci5jcHAKaW5k
ZXggOTM0ZGFmOGNiNmQ1OThjN2VlYjZhN2QyNmM3NGY0MjFhZjY3OTRhMC4uYzJkYTM3MDY0NWFi
ODA2MDYzMTAwMGZlYmYzNjYyOTBlM2FjN2U4ZCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUv
cGxhdGZvcm0vZ3JhcGhpY3MvZ3N0cmVhbWVyL1dlYktpdFdlYlNvdXJjZUdTdHJlYW1lci5jcHAK
KysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvZ3N0cmVhbWVyL1dlYktpdFdl
YlNvdXJjZUdTdHJlYW1lci5jcHAKQEAgLTExNjksOCArMTE2OSw3IEBAIFJlc291cmNlSGFuZGxl
U3RyZWFtaW5nQ2xpZW50Ojp+UmVzb3VyY2VIYW5kbGVTdHJlYW1pbmdDbGllbnQoKQogewogICAg
IGlmIChtX3Jlc291cmNlKSB7CiAgICAgICAgIG1fcmVzb3VyY2UtPmNhbmNlbCgpOwotICAgICAg
ICBtX3Jlc291cmNlLnJlbGVhc2UoKTsKLSAgICAgICAgbV9yZXNvdXJjZSA9IDA7CisgICAgICAg
IG1fcmVzb3VyY2UgPSBudWxscHRyOwogICAgIH0KIH0KIApkaWZmIC0tZ2l0IGEvU291cmNlL1dl
YkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvdGV4bWFwL0JpdG1hcFRleHR1cmVHTC5jcHAgYi9Tb3Vy
Y2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy90ZXhtYXAvQml0bWFwVGV4dHVyZUdMLmNwcApp
bmRleCA5NzVjMzhmMmZmNGIxOTE4MjhkN2QxZWNlMTZlNGQ2MDliMDkwYmY2Li4wZTUyZDdiNGIy
NTg0NWE2MDM4ZGI0NWVkOGY4YTlhYmQ0YWVmOTk0IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29y
ZS9wbGF0Zm9ybS9ncmFwaGljcy90ZXhtYXAvQml0bWFwVGV4dHVyZUdMLmNwcAorKysgYi9Tb3Vy
Y2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy90ZXhtYXAvQml0bWFwVGV4dHVyZUdMLmNwcApA
QCAtMjc4LDcgKzI3OCw3IEBAIFBhc3NSZWZQdHI8Qml0bWFwVGV4dHVyZT4gQml0bWFwVGV4dHVy
ZUdMOjphcHBseUZpbHRlcnMoVGV4dHVyZU1hcHBlciogdGV4dHVyZU1hCiAgICAgICAgICAgICB0
ZXhtYXBHTC0+ZHJhd0ZpbHRlcmVkKCpyZXN1bHRTdXJmYWNlLmdldCgpLCBzcGFyZVN1cmZhY2Uu
Z2V0KCksICpmaWx0ZXIsIGopOwogICAgICAgICAgICAgaWYgKCFqICYmIGZpbHRlci0+dHlwZSgp
ID09IEZpbHRlck9wZXJhdGlvbjo6RFJPUF9TSEFET1cpIHsKICAgICAgICAgICAgICAgICBzcGFy
ZVN1cmZhY2UgPSByZXN1bHRTdXJmYWNlOwotICAgICAgICAgICAgICAgIHJlc3VsdFN1cmZhY2Uu
Y2xlYXIoKTsKKyAgICAgICAgICAgICAgICByZXN1bHRTdXJmYWNlID0gbnVsbHB0cjsKICAgICAg
ICAgICAgIH0KICAgICAgICAgICAgIHN0ZDo6c3dhcChyZXN1bHRTdXJmYWNlLCBpbnRlcm1lZGlh
dGVTdXJmYWNlKTsKICAgICAgICAgfQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZv
cm0vZ3JhcGhpY3MvdGV4bWFwL0dyYXBoaWNzTGF5ZXJUZXh0dXJlTWFwcGVyLmNwcCBiL1NvdXJj
ZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL3RleG1hcC9HcmFwaGljc0xheWVyVGV4dHVyZU1h
cHBlci5jcHAKaW5kZXggOWVlNGE3ODRjODU3YWIxY2YxMjZkYTJjYjEyZGFmYWViYzA5ZGU3ZS4u
ZDUzNDcwNDRlODhjMDhlZGJhNGQ0NjA0NjlmM2Y5MDdhMDBiOWRjMSAxMDA2NDQKLS0tIGEvU291
cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvdGV4bWFwL0dyYXBoaWNzTGF5ZXJUZXh0dXJl
TWFwcGVyLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy90ZXhtYXAv
R3JhcGhpY3NMYXllclRleHR1cmVNYXBwZXIuY3BwCkBAIC0zMDEsOCArMzAxLDggQEAgdm9pZCBH
cmFwaGljc0xheWVyVGV4dHVyZU1hcHBlcjo6c2V0Q29udGVudHNUb0ltYWdlKEltYWdlKiBpbWFn
ZSkKICAgICAgICAgICAgIG1fY29tcG9zaXRlZEltYWdlID0gVGV4dHVyZU1hcHBlclRpbGVkQmFj
a2luZ1N0b3JlOjpjcmVhdGUoKTsKICAgICAgICAgbV9jb21wb3NpdGVkSW1hZ2UtPnNldENvbnRl
bnRzVG9JbWFnZShpbWFnZSk7CiAgICAgfSBlbHNlIHsKLSAgICAgICAgbV9jb21wb3NpdGVkTmF0
aXZlSW1hZ2VQdHIgPSAwOwotICAgICAgICBtX2NvbXBvc2l0ZWRJbWFnZSA9IDA7CisgICAgICAg
IG1fY29tcG9zaXRlZE5hdGl2ZUltYWdlUHRyID0gbnVsbHB0cjsKKyAgICAgICAgbV9jb21wb3Np
dGVkSW1hZ2UgPSBudWxscHRyOwogICAgIH0KIAogICAgIHNldENvbnRlbnRzVG9QbGF0Zm9ybUxh
eWVyKG1fY29tcG9zaXRlZEltYWdlLmdldCgpLCBDb250ZW50c0xheWVyRm9ySW1hZ2UpOwpkaWZm
IC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvdGV4bWFwL1RleHR1cmVN
YXBwZXJHTC5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy90ZXhtYXAvVGV4
dHVyZU1hcHBlckdMLmNwcAppbmRleCAwYmNlOGM3NDIwZDdkMGE0NGIzMDllMjZmNTY2YTkyMTkz
ZTQ4NjBhLi40YzU0ODA1NjIzNWUzOThmYWM5ODM2MGZlOWNiZjYyNWM3NWExZDA1IDEwMDY0NAot
LS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy90ZXhtYXAvVGV4dHVyZU1hcHBl
ckdMLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy90ZXhtYXAvVGV4
dHVyZU1hcHBlckdMLmNwcApAQCAtNjkxLDcgKzY5MSw3IEBAIHZvaWQgVGV4dHVyZU1hcHBlckdM
OjpiaW5kRGVmYXVsdFN1cmZhY2UoKQogICAgIGRhdGEoKS5wcm9qZWN0aW9uTWF0cml4ID0gY3Jl
YXRlUHJvamVjdGlvbk1hdHJpeCh2aWV3cG9ydFNpemUsIGRhdGEoKS5QYWludEZsYWdzICYgUGFp
bnRpbmdNaXJyb3JlZCk7CiAgICAgbV9jb250ZXh0M0QtPnZpZXdwb3J0KGRhdGEoKS52aWV3cG9y
dFswXSwgZGF0YSgpLnZpZXdwb3J0WzFdLCB2aWV3cG9ydFNpemUud2lkdGgoKSwgdmlld3BvcnRT
aXplLmhlaWdodCgpKTsKICAgICBtX2NsaXBTdGFjay5hcHBseShtX2NvbnRleHQzRC5nZXQoKSk7
Ci0gICAgZGF0YSgpLmN1cnJlbnRTdXJmYWNlLmNsZWFyKCk7CisgICAgZGF0YSgpLmN1cnJlbnRT
dXJmYWNlID0gbnVsbHB0cjsKIH0KIAogdm9pZCBUZXh0dXJlTWFwcGVyR0w6OmJpbmRTdXJmYWNl
KEJpdG1hcFRleHR1cmUgKnN1cmZhY2UpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0
Zm9ybS9ncmFwaGljcy90ZXhtYXAvVGV4dHVyZU1hcHBlckxheWVyLmNwcCBiL1NvdXJjZS9XZWJD
b3JlL3BsYXRmb3JtL2dyYXBoaWNzL3RleG1hcC9UZXh0dXJlTWFwcGVyTGF5ZXIuY3BwCmluZGV4
IGM4NjQyMDIyYTNhYzE0NjU3NzA4ODFmMTI0ODdmZjdkZGJiNTQ0ZDguLjM0NTUzOTg3MDI0YTZl
NzVmZDlkMWUzOTA2ODE3OGI5ZWQ3MjNhMmIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3Bs
YXRmb3JtL2dyYXBoaWNzL3RleG1hcC9UZXh0dXJlTWFwcGVyTGF5ZXIuY3BwCisrKyBiL1NvdXJj
ZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL3RleG1hcC9UZXh0dXJlTWFwcGVyTGF5ZXIuY3Bw
CkBAIC00MDgsNyArNDA4LDcgQEAgdm9pZCBUZXh0dXJlTWFwcGVyTGF5ZXI6OnBhaW50V2l0aElu
dGVybWVkaWF0ZVN1cmZhY2UoY29uc3QgVGV4dHVyZU1hcHBlclBhaW50T3AKIAogICAgIGlmIChy
ZXBsaWNhU3VyZmFjZSAmJiBvcHRpb25zLm9wYWNpdHkgPT0gMSkgewogICAgICAgICBjb21taXRT
dXJmYWNlKG9wdGlvbnMsIHJlcGxpY2FTdXJmYWNlLCByZWN0LCAxKTsKLSAgICAgICAgcmVwbGlj
YVN1cmZhY2UuY2xlYXIoKTsKKyAgICAgICAgcmVwbGljYVN1cmZhY2UgPSBudWxscHRyOwogICAg
IH0KIAogICAgIG1haW5TdXJmYWNlID0gcGFpbnRJbnRvU3VyZmFjZShwYWludE9wdGlvbnMsIHJl
Y3Quc2l6ZSgpKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNz
L3RleG1hcC9UZXh0dXJlTWFwcGVyVGlsZWRCYWNraW5nU3RvcmUuY3BwIGIvU291cmNlL1dlYkNv
cmUvcGxhdGZvcm0vZ3JhcGhpY3MvdGV4bWFwL1RleHR1cmVNYXBwZXJUaWxlZEJhY2tpbmdTdG9y
ZS5jcHAKaW5kZXggMjA4MDQ2MjM5M2JkYmI5Y2IwMTQ4MjI4Mzk0ZThiMmY2NWYwYzZkNy4uZDM1
NzEwYTY5MjgxYTgyMDYxNmRlMzEyMTMzYzRkM2M3ZmY5MTdlOCAxMDA2NDQKLS0tIGEvU291cmNl
L1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvdGV4bWFwL1RleHR1cmVNYXBwZXJUaWxlZEJhY2tp
bmdTdG9yZS5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvdGV4bWFw
L1RleHR1cmVNYXBwZXJUaWxlZEJhY2tpbmdTdG9yZS5jcHAKQEAgLTM5LDcgKzM5LDcgQEAgdm9p
ZCBUZXh0dXJlTWFwcGVyVGlsZWRCYWNraW5nU3RvcmU6OnVwZGF0ZUNvbnRlbnRzRnJvbUltYWdl
SWZOZWVkZWQoVGV4dHVyZU1hcHAKICAgICAgICAgcmV0dXJuOwogCiAgICAgdXBkYXRlQ29udGVu
dHModGV4dHVyZU1hcHBlciwgbV9pbWFnZS5nZXQoKSwgbV9pbWFnZS0+c2l6ZSgpLCBlbmNsb3Np
bmdJbnRSZWN0KG1faW1hZ2UtPnJlY3QoKSksIEJpdG1hcFRleHR1cmU6OlVwZGF0ZUNhbm5vdE1v
ZGlmeU9yaWdpbmFsSW1hZ2VEYXRhKTsKLSAgICBtX2ltYWdlLmNsZWFyKCk7CisgICAgbV9pbWFn
ZSA9IG51bGxwdHI7CiB9CiAKIFRyYW5zZm9ybWF0aW9uTWF0cml4IFRleHR1cmVNYXBwZXJUaWxl
ZEJhY2tpbmdTdG9yZTo6YWRqdXN0ZWRUcmFuc2Zvcm1Gb3JSZWN0KGNvbnN0IEZsb2F0UmVjdCYg
dGFyZ2V0UmVjdCkKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNz
L3RleG1hcC9jb29yZGluYXRlZC9Db29yZGluYXRlZEdyYXBoaWNzTGF5ZXIuY3BwIGIvU291cmNl
L1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvdGV4bWFwL2Nvb3JkaW5hdGVkL0Nvb3JkaW5hdGVk
R3JhcGhpY3NMYXllci5jcHAKaW5kZXggZTJlMWY0YWI4ZmExOTk2NGZmNmRmY2Q1MmM3YjdkN2Vk
OTE4Y2FiMC4uZmFhMTY1ZWFlNjM4MjFlYzNkMTM5ZDE4ZWZlZjE3ZGFlMDI4NzhlMCAxMDA2NDQK
LS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvdGV4bWFwL2Nvb3JkaW5hdGVk
L0Nvb3JkaW5hdGVkR3JhcGhpY3NMYXllci5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZv
cm0vZ3JhcGhpY3MvdGV4bWFwL2Nvb3JkaW5hdGVkL0Nvb3JkaW5hdGVkR3JhcGhpY3NMYXllci5j
cHAKQEAgLTQ3MCw4ICs0NzAsOCBAQCB2b2lkIENvb3JkaW5hdGVkR3JhcGhpY3NMYXllcjo6c2V0
Q29udGVudHNUb0ltYWdlKEltYWdlKiBpbWFnZSkKICAgICAgICAgbV9jb21wb3NpdGVkSW1hZ2Ug
PSBpbWFnZTsKICAgICAgICAgbV9jb21wb3NpdGVkTmF0aXZlSW1hZ2VQdHIgPSBuZXdOYXRpdmVJ
bWFnZVB0cjsKICAgICB9IGVsc2UgewotICAgICAgICBtX2NvbXBvc2l0ZWRJbWFnZSA9IDA7Ci0g
ICAgICAgIG1fY29tcG9zaXRlZE5hdGl2ZUltYWdlUHRyID0gMDsKKyAgICAgICAgbV9jb21wb3Np
dGVkSW1hZ2UgPSBudWxscHRyOworICAgICAgICBtX2NvbXBvc2l0ZWROYXRpdmVJbWFnZVB0ciA9
IG51bGxwdHI7CiAgICAgfQogCiAgICAgR3JhcGhpY3NMYXllcjo6c2V0Q29udGVudHNUb0ltYWdl
KGltYWdlKTsKQEAgLTgyMCw3ICs4MjAsNyBAQCB2b2lkIENvb3JkaW5hdGVkR3JhcGhpY3NMYXll
cjo6cmVsZWFzZUltYWdlQmFja2luZ0lmTmVlZGVkKCkKIAogICAgIEFTU0VSVChtX2Nvb3JkaW5h
dG9yKTsKICAgICBtX2Nvb3JkaW5hdGVkSW1hZ2VCYWNraW5nLT5yZW1vdmVIb3N0KHRoaXMpOwot
ICAgIG1fY29vcmRpbmF0ZWRJbWFnZUJhY2tpbmcuY2xlYXIoKTsKKyAgICBtX2Nvb3JkaW5hdGVk
SW1hZ2VCYWNraW5nID0gbnVsbHB0cjsKICAgICBtX2xheWVyU3RhdGUuaW1hZ2VJRCA9IEludmFs
aWRDb29yZGluYXRlZEltYWdlQmFja2luZ0lEOwogICAgIG1fbGF5ZXJTdGF0ZS5pbWFnZUNoYW5n
ZWQgPSB0cnVlOwogfQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhp
Y3MvdGV4bWFwL2Nvb3JkaW5hdGVkL0Nvb3JkaW5hdGVkSW1hZ2VCYWNraW5nLmNwcCBiL1NvdXJj
ZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL3RleG1hcC9jb29yZGluYXRlZC9Db29yZGluYXRl
ZEltYWdlQmFja2luZy5jcHAKaW5kZXggZDIyYjE1ZWRkMzBhZjllYTA5YzI0Njg1NjIyYjAzOTNi
NWI1NTI5My4uZTI2MTUwZmVlZTllMjc5YmEzMzIwNzBkZTg0YmY0MjQ5ZmYyMzFlNyAxMDA2NDQK
LS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvdGV4bWFwL2Nvb3JkaW5hdGVk
L0Nvb3JkaW5hdGVkSW1hZ2VCYWNraW5nLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9y
bS9ncmFwaGljcy90ZXhtYXAvY29vcmRpbmF0ZWQvQ29vcmRpbmF0ZWRJbWFnZUJhY2tpbmcuY3Bw
CkBAIC0xNDEsNyArMTQxLDcgQEAgdm9pZCBDb29yZGluYXRlZEltYWdlQmFja2luZzo6cmVsZWFz
ZVN1cmZhY2VJZk5lZWRlZCgpCiB7CiAgICAgLy8gV2UgbXVzdCBrZWVwIG1fc3VyZmFjZSB1bnRp
bCBVSSBQcm9jZXNzIHJlYWRzIG1fc3VyZmFjZS4KICAgICAvLyBJZiBtX3N1cmZhY2UgZXhpc3Rz
LCBpdCB3YXMgY3JlYXRlZCBpbiB0aGUgcHJldmlvdXMgdXBkYXRlLgotICAgIG1fc3VyZmFjZS5j
bGVhcigpOworICAgIG1fc3VyZmFjZSA9IG51bGxwdHI7CiB9CiAKIHN0YXRpYyBjb25zdCBkb3Vi
bGUgY2xlYXJDb250ZW50c1RpbWVySW50ZXJ2YWwgPSAzOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dl
YkNvcmUvcGxhdGZvcm0vZ3RrL0dhbWVwYWRzR3RrLmNwcCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRm
b3JtL2d0ay9HYW1lcGFkc0d0ay5jcHAKaW5kZXggMjZmOWJlNjJjNzY0NjNjNmUwODFmY2VmZTc5
NmIyZWFmMTc1OTU4ZC4uOWZiMjlmMmI5NTQ2ZmMxODM5YzRlYThlYjU3ODRhOGE1NjIzMjM0OSAx
MDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3RrL0dhbWVwYWRzR3RrLmNwcAor
KysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ndGsvR2FtZXBhZHNHdGsuY3BwCkBAIC0xNTUs
NyArMTU1LDcgQEAgdm9pZCBHYW1lcGFkc0d0azo6dW5yZWdpc3RlckRldmljZShTdHJpbmcgZGV2
aWNlRmlsZSkKICAgICBzaXplX3QgaW5kZXggPSBtX3Nsb3RzLmZpbmQoZ2FtZXBhZERldmljZSk7
CiAgICAgQVNTRVJUKGluZGV4ICE9IG5vdEZvdW5kKTsKIAotICAgIG1fc2xvdHNbaW5kZXhdLmNs
ZWFyKCk7CisgICAgbV9zbG90c1tpbmRleF0gPSBudWxscHRyOwogfQogCiB2b2lkIEdhbWVwYWRz
R3RrOjp1cGRhdGVHYW1lcGFkTGlzdChHYW1lcGFkTGlzdCogaW50bykKZGlmZiAtLWdpdCBhL1Nv
dXJjZS9XZWJDb3JlL3BsYXRmb3JtL2lvcy9QbGF0Zm9ybVNwZWVjaFN5bnRoZXNpemVySU9TLm1t
IGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vaW9zL1BsYXRmb3JtU3BlZWNoU3ludGhlc2l6ZXJJ
T1MubW0KaW5kZXggYWIxNGM3MDkwNTI5MjgyZGI0YzU1M2RmMWE1ZTU1NTFjYmU4MjcxNi4uZGMw
Y2FhODhhMDVlMDg0ZWEwOThjZTQxMGJhNmQyYWJkMzhkOTBjNyAxMDA2NDQKLS0tIGEvU291cmNl
L1dlYkNvcmUvcGxhdGZvcm0vaW9zL1BsYXRmb3JtU3BlZWNoU3ludGhlc2l6ZXJJT1MubW0KKysr
IGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vaW9zL1BsYXRmb3JtU3BlZWNoU3ludGhlc2l6ZXJJ
T1MubW0KQEAgLTE3OSw3ICsxNzksNyBAQCAtICh2b2lkKXNwZWVjaFN5bnRoZXNpemVyOihBVlNw
ZWVjaFN5bnRoZXNpemVyICopc3ludGhlc2l6ZXIgZGlkRmluaXNoU3BlZWNoVXR0ZQogICAgIAog
ICAgIC8vIENsZWFyIHRoZSBtX3V0dGVyYW5jZSB2YXJpYWJsZSBpbiBjYXNlIGZpbmlzaCBzcGVh
a2luZyBraWNrcyBvZmYgYSBuZXcgc3BlYWtpbmcgam9iIGltbWVkaWF0ZWx5LgogICAgIFJlZlB0
cjxXZWJDb3JlOjpQbGF0Zm9ybVNwZWVjaFN5bnRoZXNpc1V0dGVyYW5jZT4gcGxhdGZvcm1VdHRl
cmFuY2UgPSBtX3V0dGVyYW5jZTsKLSAgICBtX3V0dGVyYW5jZSA9IDA7CisgICAgbV91dHRlcmFu
Y2UgPSBudWxscHRyOwogICAgIAogICAgIG1fc3ludGhlc2l6ZXJPYmplY3QtPmNsaWVudCgpLT5k
aWRGaW5pc2hTcGVha2luZyhwbGF0Zm9ybVV0dGVyYW5jZSk7CiB9CkBAIC0yMTMsNyArMjEzLDcg
QEAgLSAodm9pZClzcGVlY2hTeW50aGVzaXplcjooQVZTcGVlY2hTeW50aGVzaXplciAqKXN5bnRo
ZXNpemVyIGRpZENhbmNlbFNwZWVjaFV0dGUKICAgICAKICAgICAvLyBDbGVhciB0aGUgbV91dHRl
cmFuY2UgdmFyaWFibGUgaW4gY2FzZSBmaW5pc2ggc3BlYWtpbmcga2lja3Mgb2ZmIGEgbmV3IHNw
ZWFraW5nIGpvYiBpbW1lZGlhdGVseS4KICAgICBSZWZQdHI8V2ViQ29yZTo6UGxhdGZvcm1TcGVl
Y2hTeW50aGVzaXNVdHRlcmFuY2U+IHBsYXRmb3JtVXR0ZXJhbmNlID0gbV91dHRlcmFuY2U7Ci0g
ICAgbV91dHRlcmFuY2UgPSAwOworICAgIG1fdXR0ZXJhbmNlID0gbnVsbHB0cjsKICAgICAKICAg
ICBtX3N5bnRoZXNpemVyT2JqZWN0LT5jbGllbnQoKS0+ZGlkRmluaXNoU3BlYWtpbmcocGxhdGZv
cm1VdHRlcmFuY2UpOwogfQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbW9j
ay9HZW9sb2NhdGlvbkNsaWVudE1vY2suY3BwIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbW9j
ay9HZW9sb2NhdGlvbkNsaWVudE1vY2suY3BwCmluZGV4IDgxODZhNmE1MjMzZWU4NWJlNjUyNjhi
NjhmMDU0NDdlODU1MjMzMDAuLmI3Y2ZiOWJlMDZkY2JmZmM3YzE2YjNjZmU3NDY1MDEzMGZhNzAw
ZTUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL21vY2svR2VvbG9jYXRpb25D
bGllbnRNb2NrLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9tb2NrL0dlb2xvY2F0
aW9uQ2xpZW50TW9jay5jcHAKQEAgLTEyNiw3ICsxMjYsNyBAQCB2b2lkIEdlb2xvY2F0aW9uQ2xp
ZW50TW9jazo6cGVybWlzc2lvblRpbWVyRmlyZWQoKQogCiB2b2lkIEdlb2xvY2F0aW9uQ2xpZW50
TW9jazo6cmVzZXQoKQogewotICAgIG1fbGFzdFBvc2l0aW9uID0gMDsKKyAgICBtX2xhc3RQb3Np
dGlvbiA9IG51bGxwdHI7CiAgICAgY2xlYXJFcnJvcigpOwogICAgIG1fcGVybWlzc2lvblN0YXRl
ID0gUGVybWlzc2lvblN0YXRlVW5zZXQ7CiB9CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9w
bGF0Zm9ybS9tb2NrL1BsYXRmb3JtU3BlZWNoU3ludGhlc2l6ZXJNb2NrLmNwcCBiL1NvdXJjZS9X
ZWJDb3JlL3BsYXRmb3JtL21vY2svUGxhdGZvcm1TcGVlY2hTeW50aGVzaXplck1vY2suY3BwCmlu
ZGV4IDM4MzgzNzJjNTc3OGVjMjcyYzhiNTVmODMxNTA2NTM4NGQ5Y2Y4NzQuLmMwYjRkZmEyYzZm
MjI0NGVhYTRkYTg4NjRkNWM0YjMyNjMyNTkyZGMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3Jl
L3BsYXRmb3JtL21vY2svUGxhdGZvcm1TcGVlY2hTeW50aGVzaXplck1vY2suY3BwCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL3BsYXRmb3JtL21vY2svUGxhdGZvcm1TcGVlY2hTeW50aGVzaXplck1vY2su
Y3BwCkBAIC00NSw3ICs0NSw3IEBAIHZvaWQgUGxhdGZvcm1TcGVlY2hTeW50aGVzaXplck1vY2s6
OnNwZWFraW5nRmluaXNoZWQoKQogewogICAgIEFTU0VSVChtX3V0dGVyYW5jZS5nZXQoKSk7CiAg
ICAgUmVmUHRyPFBsYXRmb3JtU3BlZWNoU3ludGhlc2lzVXR0ZXJhbmNlPiBwcm90ZWN0KG1fdXR0
ZXJhbmNlKTsKLSAgICBtX3V0dGVyYW5jZSA9IDA7CisgICAgbV91dHRlcmFuY2UgPSBudWxscHRy
OwogICAgIAogICAgIGNsaWVudCgpLT5kaWRGaW5pc2hTcGVha2luZyhwcm90ZWN0KTsKIH0KQEAg
LTc4LDcgKzc4LDcgQEAgdm9pZCBQbGF0Zm9ybVNwZWVjaFN5bnRoZXNpemVyTW9jazo6Y2FuY2Vs
KCkKICAgICAKICAgICBtX3NwZWFraW5nRmluaXNoZWRUaW1lci5zdG9wKCk7CiAgICAgY2xpZW50
KCktPnNwZWFraW5nRXJyb3JPY2N1cnJlZChtX3V0dGVyYW5jZSk7Ci0gICAgbV91dHRlcmFuY2Ug
PSAwOworICAgIG1fdXR0ZXJhbmNlID0gbnVsbHB0cjsKIH0KIAogdm9pZCBQbGF0Zm9ybVNwZWVj
aFN5bnRoZXNpemVyTW9jazo6cGF1c2UoKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxh
dGZvcm0vbmV0d29yay9jZi9SZXNvdXJjZVJlcXVlc3RDRk5ldC5jcHAgYi9Tb3VyY2UvV2ViQ29y
ZS9wbGF0Zm9ybS9uZXR3b3JrL2NmL1Jlc291cmNlUmVxdWVzdENGTmV0LmNwcAppbmRleCBjZGM3
ZDczNDZkNWE3YmZlMTk3MmNmYjc4NmJlY2NmMmUzZDM5ZTllLi5hNGQ0M2RmM2MwYTQyOGYxNzA2
MTgyZThhOGFhYmMwNWRkYTIzYTllIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9y
bS9uZXR3b3JrL2NmL1Jlc291cmNlUmVxdWVzdENGTmV0LmNwcAorKysgYi9Tb3VyY2UvV2ViQ29y
ZS9wbGF0Zm9ybS9uZXR3b3JrL2NmL1Jlc291cmNlUmVxdWVzdENGTmV0LmNwcApAQCAtMjk1LDcg
KzI5NSw3IEBAIHZvaWQgUmVzb3VyY2VSZXF1ZXN0Ojpkb1VwZGF0ZVJlc291cmNlUmVxdWVzdCgp
CiB2b2lkIFJlc291cmNlUmVxdWVzdDo6ZG9VcGRhdGVSZXNvdXJjZUhUVFBCb2R5KCkKIHsKICAg
ICBpZiAoIW1fY2ZSZXF1ZXN0KSB7Ci0gICAgICAgIG1faHR0cEJvZHkgPSAwOworICAgICAgICBt
X2h0dHBCb2R5ID0gbnVsbHB0cjsKICAgICAgICAgcmV0dXJuOwogICAgIH0KIApkaWZmIC0tZ2l0
IGEvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL0lubGluZUZsb3dCb3guY3BwIGIvU291cmNlL1dl
YkNvcmUvcmVuZGVyaW5nL0lubGluZUZsb3dCb3guY3BwCmluZGV4IDQxNjgyYzhlMmI2MGNiOTI4
ZTQ2MWI0ZWZmYWEzYmY3OWMzNjFjMjguLjJkNmZiNjk0NDhmOGYxYmI1OTQ0YzEwYmE1NDkwMTE1
NjdkNjc3MzcgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9JbmxpbmVGbG93
Qm94LmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvSW5saW5lRmxvd0JveC5jcHAK
QEAgLTk1NCw3ICs5NTQsNyBAQCB2b2lkIElubGluZUZsb3dCb3g6OmNvbXB1dGVPdmVyZmxvdyhM
YXlvdXRVbml0IGxpbmVUb3AsIExheW91dFVuaXQgbGluZUJvdHRvbSwgRwogICAgICAgICByZXR1
cm47CiAKICAgICBpZiAobV9vdmVyZmxvdykKLSAgICAgICAgbV9vdmVyZmxvdy5jbGVhcigpOwor
ICAgICAgICBtX292ZXJmbG93ID0gbnVsbHB0cjsKIAogICAgIC8vIFZpc3VhbCBvdmVyZmxvdyBq
dXN0IGluY2x1ZGVzIG92ZXJmbG93IGZvciBzdHVmZiB3ZSBuZWVkIHRvIHJlcGFpbnQgb3Vyc2Vs
dmVzLiAgU2VsZi1wYWludGluZyBsYXllcnMgYXJlIGlnbm9yZWQuCiAgICAgLy8gTGF5b3V0IG92
ZXJmbG93IGlzIHVzZWQgdG8gZGV0ZXJtaW5lIHNjcm9sbGluZyBleHRlbnQsIHNvIGl0IHN0aWxs
IGluY2x1ZGVzIGNoaWxkIGxheWVycyBhbmQgYWxzbyBmYWN0b3JzIGluCmRpZmYgLS1naXQgYS9T
b3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyQm94LmNwcCBiL1NvdXJjZS9XZWJDb3JlL3Jl
bmRlcmluZy9SZW5kZXJCb3guY3BwCmluZGV4IDUwMmRmNjZjMGQwZGU5OGE5YTQyY2Q5NGY3MGIy
MGI0ZTBiMmFjYmMuLjYxNzFkYjVlMGE4YTkyMjU3Y2JlMmQzMDdkNmY3NmRhMzY5YWRiMjQgMTAw
NjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJCb3guY3BwCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJCb3guY3BwCkBAIC00NDk3LDcgKzQ0OTcsNyBA
QCB2b2lkIFJlbmRlckJveDo6YWRkVmlzdWFsT3ZlcmZsb3coY29uc3QgTGF5b3V0UmVjdCYgcmVj
dCkKIAogdm9pZCBSZW5kZXJCb3g6OmNsZWFyT3ZlcmZsb3coKQogewotICAgIG1fb3ZlcmZsb3cu
Y2xlYXIoKTsKKyAgICBtX292ZXJmbG93ID0gbnVsbHB0cjsKICAgICBSZW5kZXJGbG93VGhyZWFk
KiBmbG93VGhyZWFkID0gZmxvd1RocmVhZENvbnRhaW5pbmdCbG9jaygpOwogICAgIGlmIChmbG93
VGhyZWFkKQogICAgICAgICBmbG93VGhyZWFkLT5jbGVhclJlZ2lvbnNPdmVyZmxvdyh0aGlzKTsK
ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJCb3hSZWdpb25JbmZv
LmggYi9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyQm94UmVnaW9uSW5mby5oCmluZGV4
IDYyMzYwOGQ2NzVkY2M2OTExZTI3ZGFmMjRhY2I4NDA5ZDQ2ZTE4YWYuLmVhMjNjMWVjOGVlMzc1
ZTdhNjExYzE0ZWMwNDE5ZjY1NmRhMTk3YjIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3Jl
bmRlcmluZy9SZW5kZXJCb3hSZWdpb25JbmZvLmgKKysrIGIvU291cmNlL1dlYkNvcmUvcmVuZGVy
aW5nL1JlbmRlckJveFJlZ2lvbkluZm8uaApAQCAtNTMsNyArNTMsNyBAQCBwdWJsaWM6CiAgICAg
dm9pZCBjbGVhck92ZXJmbG93KCkKICAgICB7CiAgICAgICAgIGlmIChtX292ZXJmbG93KQotICAg
ICAgICAgICAgbV9vdmVyZmxvdy5jbGVhcigpOworICAgICAgICAgICAgbV9vdmVyZmxvdyA9IG51
bGxwdHI7CiAgICAgfQogCiBwcml2YXRlOgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcmVu
ZGVyaW5nL1JlbmRlckNvdW50ZXIuY3BwIGIvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRl
ckNvdW50ZXIuY3BwCmluZGV4IDkxOGE0Zjg4YTIzZDk2ZDhhZTVlMjM2Njk1NjcxNzgwYTA5MzYy
N2UuLmM3NDU2MzlmOGEwYWJlNGQ4ZmRmNjgxMDU0YzE2ODUyMjk4NmVmMzYgMTAwNjQ0Ci0tLSBh
L1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJDb3VudGVyLmNwcAorKysgYi9Tb3VyY2Uv
V2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyQ291bnRlci5jcHAKQEAgLTE4Niw4ICsxODYsOCBAQCBz
dGF0aWMgYm9vbCBmaW5kUGxhY2VGb3JDb3VudGVyKFJlbmRlckVsZW1lbnQmIGNvdW50ZXJPd25l
ciwgY29uc3QgQXRvbWljU3RyaW5nJgogICAgIC8vIHRvd2FyZHMgdGhlIGJlZ2luaW5nIG9mIHRo
ZSBkb2N1bWVudCBmb3IgY291bnRlcnMgd2l0aCB0aGUgc2FtZSBpZGVudGlmaWVyIGFzIHRoZSBv
bmUKICAgICAvLyB3ZSBhcmUgdHJ5aW5nIHRvIGZpbmQgYSBwbGFjZSBmb3IuIFRoaXMgaXMgdGhl
IG5leHQgcmVuZGVyZXIgdG8gYmUgY2hlY2tlZC4KICAgICBSZW5kZXJFbGVtZW50KiBjdXJyZW50
UmVuZGVyZXIgPSBwcmV2aW91c0luUHJlT3JkZXIoY291bnRlck93bmVyKTsKLSAgICBwcmV2aW91
c1NpYmxpbmcgPSAwOwotICAgIFJlZlB0cjxDb3VudGVyTm9kZT4gcHJldmlvdXNTaWJsaW5nUHJv
dGVjdG9yID0gMDsKKyAgICBwcmV2aW91c1NpYmxpbmcgPSBudWxscHRyOworICAgIFJlZlB0cjxD
b3VudGVyTm9kZT4gcHJldmlvdXNTaWJsaW5nUHJvdGVjdG9yOwogCiAgICAgd2hpbGUgKGN1cnJl
bnRSZW5kZXJlcikgewogICAgICAgICBDb3VudGVyTm9kZSogY3VycmVudENvdW50ZXIgPSBtYWtl
Q291bnRlck5vZGUoKmN1cnJlbnRSZW5kZXJlciwgaWRlbnRpZmllciwgZmFsc2UpOwpAQCAtMjAz
LDcgKzIwMyw3IEBAIHN0YXRpYyBib29sIGZpbmRQbGFjZUZvckNvdW50ZXIoUmVuZGVyRWxlbWVu
dCYgY291bnRlck93bmVyLCBjb25zdCBBdG9taWNTdHJpbmcmCiAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgLy8gaGVuY2Ugd2UgYXJlIHRoZSBuZXh0IHNpYmxpbmcgb2YgdGhhdCBjb3VudGVy
IGlmIHRoYXQgcmVzZXQgaXMgbm90IGEgcm9vdCBvcgogICAgICAgICAgICAgICAgICAgICAgICAg
ICAgIC8vIHdlIGFyZSBhIHJvb3Qgbm9kZSBpZiB0aGF0IHJlc2V0IGlzIGEgcm9vdC4KICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICBwYXJlbnQgPSBjdXJyZW50Q291bnRlci0+cGFyZW50KCk7
Ci0gICAgICAgICAgICAgICAgICAgICAgICAgICAgcHJldmlvdXNTaWJsaW5nID0gcGFyZW50ID8g
Y3VycmVudENvdW50ZXIgOiAwOworICAgICAgICAgICAgICAgICAgICAgICAgICAgIHByZXZpb3Vz
U2libGluZyA9IHBhcmVudCA/IGN1cnJlbnRDb3VudGVyIDogbnVsbHB0cjsKICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICByZXR1cm4gcGFyZW50OwogICAgICAgICAgICAgICAgICAgICAgICAg
fQogICAgICAgICAgICAgICAgICAgICAgICAgLy8gV2UgYXJlIG5vdCBhIHJlc2V0IG5vZGUgb3Ig
dGhlIHByZXZpb3VzIHJlc2V0IG11c3QgYmUgb24gYW4gYW5jZXN0b3Igb2Ygb3VyIG93bmVyIHJl
bmRlcmVyCkBAIC0yMTMsNyArMjEzLDcgQEAgc3RhdGljIGJvb2wgZmluZFBsYWNlRm9yQ291bnRl
cihSZW5kZXJFbGVtZW50JiBjb3VudGVyT3duZXIsIGNvbnN0IEF0b21pY1N0cmluZyYKICAgICAg
ICAgICAgICAgICAgICAgICAgIC8vIEluIHRoZXNlIGNhc2VzIHRoZSBpZGVudGlmaWVkIHByZXZp
b3VzU2libGluZyB3aWxsIGJlIGludmFsaWQgYXMgaXRzIHBhcmVudCBpcyBkaWZmZXJlbnQgZnJv
bQogICAgICAgICAgICAgICAgICAgICAgICAgLy8gb3VyIGlkZW50aWZpZWQgcGFyZW50LgogICAg
ICAgICAgICAgICAgICAgICAgICAgaWYgKHByZXZpb3VzU2libGluZ1Byb3RlY3Rvci0+cGFyZW50
KCkgIT0gY3VycmVudENvdW50ZXIpCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgcHJldmlv
dXNTaWJsaW5nUHJvdGVjdG9yID0gMDsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICBwcmV2
aW91c1NpYmxpbmdQcm90ZWN0b3IgPSBudWxscHRyOwogCiAgICAgICAgICAgICAgICAgICAgICAg
ICBwcmV2aW91c1NpYmxpbmcgPSBwcmV2aW91c1NpYmxpbmdQcm90ZWN0b3IuZ2V0KCk7CiAgICAg
ICAgICAgICAgICAgICAgICAgICByZXR1cm4gdHJ1ZTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJD
b3JlL3JlbmRlcmluZy9SZW5kZXJNZW51TGlzdC5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJp
bmcvUmVuZGVyTWVudUxpc3QuY3BwCmluZGV4IGZmOWEyYzU4NmJiZDliZTk5Yzc3NTVlMjIyZTAw
Mzg2NDZjMTc0ZDYuLmRiOTk0OTljYmRmZjAzYTU1MTAxZDJhZDg2ZTE4Mzc2Y2ZhZmEyOGIgMTAw
NjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJNZW51TGlzdC5jcHAKKysr
IGIvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlck1lbnVMaXN0LmNwcApAQCAtODgsNyAr
ODgsNyBAQCBSZW5kZXJNZW51TGlzdDo6flJlbmRlck1lbnVMaXN0KCkKICNpZiAhUExBVEZPUk0o
SU9TKQogICAgIGlmIChtX3BvcHVwKQogICAgICAgICBtX3BvcHVwLT5kaXNjb25uZWN0Q2xpZW50
KCk7Ci0gICAgbV9wb3B1cCA9IDA7CisgICAgbV9wb3B1cCA9IG51bGxwdHI7CiAjZW5kaWYKIH0K
IApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlclNlYXJjaEZpZWxk
LmNwcCBiL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJTZWFyY2hGaWVsZC5jcHAKaW5k
ZXggZmE2ZTM5NjczMTY0OGVhMDUxYzY4MDZjMTkyNGRjMmNmOGJlNGMwMC4uODlkYzM0YzRmNDQ0
ZGNjNWM2YzllMDc1ZTE3ZDc3YzZlZDJkNDgwNSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUv
cmVuZGVyaW5nL1JlbmRlclNlYXJjaEZpZWxkLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9yZW5k
ZXJpbmcvUmVuZGVyU2VhcmNoRmllbGQuY3BwCkBAIC02Miw3ICs2Miw3IEBAIFJlbmRlclNlYXJj
aEZpZWxkOjp+UmVuZGVyU2VhcmNoRmllbGQoKQogewogICAgIGlmIChtX3NlYXJjaFBvcHVwKSB7
CiAgICAgICAgIG1fc2VhcmNoUG9wdXAtPnBvcHVwTWVudSgpLT5kaXNjb25uZWN0Q2xpZW50KCk7
Ci0gICAgICAgIG1fc2VhcmNoUG9wdXAgPSAwOworICAgICAgICBtX3NlYXJjaFBvcHVwID0gbnVs
bHB0cjsKICAgICB9CiB9CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9z
dHlsZS9GaWxsTGF5ZXIuaCBiL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9zdHlsZS9GaWxsTGF5
ZXIuaAppbmRleCA4YjA2Y2UzYjdlODc3ZTI1NTZmNjc2ODhhMzQzYWFmYzJkMTMxOGY5Li4wMzA5
ODYzZGFlNjBlNzhlNzY5NGIxNjllNjZiYmNlNWYxOWNjODA0IDEwMDY0NAotLS0gYS9Tb3VyY2Uv
V2ViQ29yZS9yZW5kZXJpbmcvc3R5bGUvRmlsbExheWVyLmgKKysrIGIvU291cmNlL1dlYkNvcmUv
cmVuZGVyaW5nL3N0eWxlL0ZpbGxMYXllci5oCkBAIC0xMjEsOCArMTIxLDggQEAgcHVibGljOgog
ICAgIHZvaWQgc2V0U2l6ZShGaWxsU2l6ZSBmKSB7IG1fc2l6ZVR5cGUgPSBmLnR5cGU7IG1fc2l6
ZUxlbmd0aCA9IGYuc2l6ZTsgfQogICAgIHZvaWQgc2V0TWFza1NvdXJjZVR5cGUoRU1hc2tTb3Vy
Y2VUeXBlIG0pIHsgbV9tYXNrU291cmNlVHlwZSA9IG07IG1fbWFza1NvdXJjZVR5cGVTZXQgPSB0
cnVlOyB9CiAKLSAgICB2b2lkIGNsZWFyTWFza0ltYWdlKCkgeyBtX21hc2tJbWFnZU9wZXJhdGlv
bi5jbGVhcigpOyB9Ci0gICAgdm9pZCBjbGVhckltYWdlKCkgeyBtX2ltYWdlLmNsZWFyKCk7IG1f
aW1hZ2VTZXQgPSBmYWxzZTsgfQorICAgIHZvaWQgY2xlYXJNYXNrSW1hZ2UoKSB7IG1fbWFza0lt
YWdlT3BlcmF0aW9uID0gbnVsbHB0cjsgfQorICAgIHZvaWQgY2xlYXJJbWFnZSgpIHsgbV9pbWFn
ZSA9IG51bGxwdHI7IG1faW1hZ2VTZXQgPSBmYWxzZTsgfQogICAgIHZvaWQgY2xlYXJYUG9zaXRp
b24oKSB7IG1feFBvc1NldCA9IGZhbHNlOyBtX2JhY2tncm91bmRPcmlnaW5TZXQgPSBmYWxzZTsg
fQogICAgIHZvaWQgY2xlYXJZUG9zaXRpb24oKSB7IG1feVBvc1NldCA9IGZhbHNlOyBtX2JhY2tn
cm91bmRPcmlnaW5TZXQgPSBmYWxzZTsgfQogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9y
ZW5kZXJpbmcvc3R5bGUvUmVuZGVyU3R5bGUuY3BwIGIvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5n
L3N0eWxlL1JlbmRlclN0eWxlLmNwcAppbmRleCA4N2M1OGU5YmZjN2Y0NGU0ZjJiOWMyNmYxZWY1
OWQ2OGYxMjA5ZmRjLi40N2ZlZTg5NTFjYzg2OWZmOTliYjIyZjY1OTdjMDdmMjRhZmYxZTExIDEw
MDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvc3R5bGUvUmVuZGVyU3R5bGUuY3Bw
CisrKyBiL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9zdHlsZS9SZW5kZXJTdHlsZS5jcHAKQEAg
LTk1MCw3ICs5NTAsNyBAQCB2b2lkIFJlbmRlclN0eWxlOjpzZXRRdW90ZXMoUGFzc1JlZlB0cjxR
dW90ZXNEYXRhPiBxKQogdm9pZCBSZW5kZXJTdHlsZTo6Y2xlYXJDdXJzb3JMaXN0KCkKIHsKICAg
ICBpZiAocmFyZUluaGVyaXRlZERhdGEtPmN1cnNvckRhdGEpCi0gICAgICAgIHJhcmVJbmhlcml0
ZWREYXRhLmFjY2VzcygpLT5jdXJzb3JEYXRhID0gMDsKKyAgICAgICAgcmFyZUluaGVyaXRlZERh
dGEuYWNjZXNzKCktPmN1cnNvckRhdGEgPSBudWxscHRyOwogfQogCiB2b2lkIFJlbmRlclN0eWxl
OjpjbGVhckNvbnRlbnQoKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvc3ZnL1NWR1RSZWZF
bGVtZW50LmNwcCBiL1NvdXJjZS9XZWJDb3JlL3N2Zy9TVkdUUmVmRWxlbWVudC5jcHAKaW5kZXgg
MjI1YTMwNDZhNDk5MmM5NzA1YmE3OTUwOTk1NjFiM2I5ZWJhZmZiZC4uZTNmYWQ4ZDU5MGM1NGRl
NmJlOTQ2NzljOTU3MTdiOTg1YWM3NGEyMSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvc3Zn
L1NWR1RSZWZFbGVtZW50LmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9zdmcvU1ZHVFJlZkVsZW1l
bnQuY3BwCkBAIC0xMDQsNyArMTA0LDcgQEAgdm9pZCBTVkdUUmVmVGFyZ2V0RXZlbnRMaXN0ZW5l
cjo6ZGV0YWNoKCkKIAogICAgIG1fdGFyZ2V0LT5yZW1vdmVFdmVudExpc3RlbmVyKGV2ZW50TmFt
ZXMoKS5ET01TdWJ0cmVlTW9kaWZpZWRFdmVudCwgdGhpcywgZmFsc2UpOwogICAgIG1fdGFyZ2V0
LT5yZW1vdmVFdmVudExpc3RlbmVyKGV2ZW50TmFtZXMoKS5ET01Ob2RlUmVtb3ZlZEZyb21Eb2N1
bWVudEV2ZW50LCB0aGlzLCBmYWxzZSk7Ci0gICAgbV90YXJnZXQuY2xlYXIoKTsKKyAgICBtX3Rh
cmdldCA9IG51bGxwdHI7CiB9CiAKIGJvb2wgU1ZHVFJlZlRhcmdldEV2ZW50TGlzdGVuZXI6Om9w
ZXJhdG9yPT0oY29uc3QgRXZlbnRMaXN0ZW5lciYgbGlzdGVuZXIpCmRpZmYgLS1naXQgYS9Tb3Vy
Y2UvV2ViQ29yZS90ZXN0aW5nL0ludGVybmFscy5jcHAgYi9Tb3VyY2UvV2ViQ29yZS90ZXN0aW5n
L0ludGVybmFscy5jcHAKaW5kZXggMWExMDUxNzQ3OWU4ZThlOTgxYTc0NTNhYmRhNmZkYzI0NzU3
NTFiNy4uNDc2ZDFlMjc1OWU2MDZmMjA3NjQ1ODIxMGRiNDkzM2M4MjMwNmU4MiAxMDA2NDQKLS0t
IGEvU291cmNlL1dlYkNvcmUvdGVzdGluZy9JbnRlcm5hbHMuY3BwCisrKyBiL1NvdXJjZS9XZWJD
b3JlL3Rlc3RpbmcvSW50ZXJuYWxzLmNwcApAQCAtMTcyMyw3ICsxNzIzLDcgQEAgdm9pZCBJbnRl
cm5hbHM6OmNsb3NlRHVtbXlJbnNwZWN0b3JGcm9udGVuZCgpCiAgICAgbV9mcm9udGVuZENoYW5u
ZWwgPSBudWxscHRyOwogCiAgICAgbV9mcm9udGVuZFdpbmRvdy0+Y2xvc2UobV9mcm9udGVuZFdp
bmRvdy0+c2NyaXB0RXhlY3V0aW9uQ29udGV4dCgpKTsKLSAgICBtX2Zyb250ZW5kV2luZG93LmNs
ZWFyKCk7CisgICAgbV9mcm9udGVuZFdpbmRvdyA9IG51bGxwdHI7CiB9CiAKIHZvaWQgSW50ZXJu
YWxzOjpzZXRKYXZhU2NyaXB0UHJvZmlsaW5nRW5hYmxlZChib29sIGVuYWJsZWQsIEV4Y2VwdGlv
bkNvZGUmIGVjKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvd29ya2Vycy9Xb3JrZXJFdmVu
dFF1ZXVlLmNwcCBiL1NvdXJjZS9XZWJDb3JlL3dvcmtlcnMvV29ya2VyRXZlbnRRdWV1ZS5jcHAK
aW5kZXggZjUyMGMxZGVlZmFiMWViMTRmMWI3ZmQ5MjQwZmU4NjQ3YWMyNGE4OS4uMDcyMTA3Njlm
ZDA2YmE5Y2U4N2FjNDY1MmM5OWUyYzE3OGQyODRmMSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNv
cmUvd29ya2Vycy9Xb3JrZXJFdmVudFF1ZXVlLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS93b3Jr
ZXJzL1dvcmtlckV2ZW50UXVldWUuY3BwCkBAIC02OCwxMyArNjgsMTMgQEAgcHVibGljOgogICAg
ICAgICAgICAgcmV0dXJuOwogICAgICAgICBtX2V2ZW50UXVldWUubV9ldmVudERpc3BhdGNoZXJN
YXAucmVtb3ZlKG1fZXZlbnQuZ2V0KCkpOwogICAgICAgICBtX2V2ZW50LT50YXJnZXQoKS0+ZGlz
cGF0Y2hFdmVudChtX2V2ZW50KTsKLSAgICAgICAgbV9ldmVudC5jbGVhcigpOworICAgICAgICBt
X2V2ZW50ID0gbnVsbHB0cjsKICAgICB9CiAKICAgICB2b2lkIGNhbmNlbCgpCiAgICAgewogICAg
ICAgICBtX2lzQ2FuY2VsbGVkID0gdHJ1ZTsKLSAgICAgICAgbV9ldmVudC5jbGVhcigpOworICAg
ICAgICBtX2V2ZW50ID0gbnVsbHB0cjsKICAgICB9CiAKIHByaXZhdGU6CmRpZmYgLS1naXQgYS9T
b3VyY2UvV2ViQ29yZS93b3JrZXJzL1dvcmtlck1lc3NhZ2luZ1Byb3h5LmNwcCBiL1NvdXJjZS9X
ZWJDb3JlL3dvcmtlcnMvV29ya2VyTWVzc2FnaW5nUHJveHkuY3BwCmluZGV4IDc4NDViNjFmYThk
Y2ZhZjlmNjdmYWEwZDk0MjVkMGY5YjJiNWQ2MTUuLmJkNzRlYWNlMDJjZDNjMTA2ZmRlYWJjN2U0
Y2RmNjE2OGEzZGJlMWUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3dvcmtlcnMvV29ya2Vy
TWVzc2FnaW5nUHJveHkuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3dvcmtlcnMvV29ya2VyTWVz
c2FnaW5nUHJveHkuY3BwCkBAIC0yNjQsNyArMjY0LDcgQEAgdm9pZCBXb3JrZXJNZXNzYWdpbmdQ
cm94eTo6d29ya2VyR2xvYmFsU2NvcGVEZXN0cm95ZWRJbnRlcm5hbCgpCiAgICAgLy8gV29ya2Vy
R2xvYmFsU2NvcGVEZXN0cm95ZWRUYXNrIGlzIGFsd2F5cyB0aGUgbGFzdCB0byBiZSBwZXJmb3Jt
ZWQsIHNvIHRoZSBwcm94eSBpcyBub3QgbmVlZGVkIGZvciBjb21tdW5pY2F0aW9uCiAgICAgLy8g
aW4gZWl0aGVyIHNpZGUgYW55IG1vcmUuIEhvd2V2ZXIsIHRoZSBXb3JrZXIgb2JqZWN0IG1heSBz
dGlsbCBleGlzdCwgYW5kIGl0IGFzc3VtZXMgdGhhdCB0aGUgcHJveHkgZXhpc3RzLCB0b28uCiAg
ICAgbV9hc2tlZFRvVGVybWluYXRlID0gdHJ1ZTsKLSAgICBtX3dvcmtlclRocmVhZCA9IDA7Cisg
ICAgbV93b3JrZXJUaHJlYWQgPSBudWxscHRyOwogCiAgICAgSW5zcGVjdG9ySW5zdHJ1bWVudGF0
aW9uOjp3b3JrZXJHbG9iYWxTY29wZVRlcm1pbmF0ZWQobV9zY3JpcHRFeGVjdXRpb25Db250ZXh0
LmdldCgpLCB0aGlzKTsKIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvd29ya2Vycy9Xb3Jr
ZXJUaHJlYWQuY3BwIGIvU291cmNlL1dlYkNvcmUvd29ya2Vycy9Xb3JrZXJUaHJlYWQuY3BwCmlu
ZGV4IDg3M2M4Mjk2ZTZlMmVmMTE3MTQyZTA1ZGY4OWY0YmM0NmExNGQ5MDQuLmU1MTU1NTI2Yzk4
ZTkxMDI5N2UwMWI4NmZlZDI4YjEyZjRkMDIyOTAgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3Jl
L3dvcmtlcnMvV29ya2VyVGhyZWFkLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS93b3JrZXJzL1dv
cmtlclRocmVhZC5jcHAKQEAgLTE3MSw3ICsxNzEsNyBAQCB2b2lkIFdvcmtlclRocmVhZDo6d29y
a2VyVGhyZWFkKCkKIAogICAgIC8vIFRoZSBiZWxvdyBhc3NpZ25tZW50IHdpbGwgZGVzdHJveSB0
aGUgY29udGV4dCwgd2hpY2ggd2lsbCBpbiB0dXJuIG5vdGlmeSBtZXNzYWdpbmcgcHJveHkuCiAg
ICAgLy8gV2UgY2Fubm90IGxldCBhbnkgb2JqZWN0cyBzdXJ2aXZlIHBhc3QgdGhyZWFkIGV4aXQs
IGJlY2F1c2Ugbm8gb3RoZXIgdGhyZWFkIHdpbGwgcnVuIEdDIG9yIG90aGVyd2lzZSBkZXN0cm95
IHRoZW0uCi0gICAgbV93b3JrZXJHbG9iYWxTY29wZSA9IDA7CisgICAgbV93b3JrZXJHbG9iYWxT
Y29wZSA9IG51bGxwdHI7CiAKICAgICAvLyBDbGVhbiB1cCBXZWJDb3JlOjpUaHJlYWRHbG9iYWxE
YXRhIGJlZm9yZSBXVEY6OldURlRocmVhZERhdGEgZ29lcyBhd2F5IQogICAgIHRocmVhZEdsb2Jh
bERhdGEoKS5kZXN0cm95KCk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS94bWwvWE1MSHR0
cFJlcXVlc3QuY3BwIGIvU291cmNlL1dlYkNvcmUveG1sL1hNTEh0dHBSZXF1ZXN0LmNwcAppbmRl
eCBjN2U4YzBiMmIwZmRkM2E3OWJhMDlkMmZkOTE1ZjMyMTVmZTZjNzI5Li40NzVkNmZiNGQ1NmJm
NjU3NWVmNTBjMWM1NDRkNTg4MzUwNWI5NDc1IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS94
bWwvWE1MSHR0cFJlcXVlc3QuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3htbC9YTUxIdHRwUmVx
dWVzdC5jcHAKQEAgLTI0NSw3ICsyNDUsNyBAQCBCbG9iKiBYTUxIdHRwUmVxdWVzdDo6cmVzcG9u
c2VCbG9iKCkKICAgICAgICAgICAgIGRhdGEuYXBwZW5kKG1fYmluYXJ5UmVzcG9uc2VCdWlsZGVy
LT5kYXRhKCksIG1fYmluYXJ5UmVzcG9uc2VCdWlsZGVyLT5zaXplKCkpOwogICAgICAgICAgICAg
U3RyaW5nIG5vcm1hbGl6ZWRDb250ZW50VHlwZSA9IEJsb2I6Om5vcm1hbGl6ZWRDb250ZW50VHlw
ZShyZXNwb25zZU1JTUVUeXBlKCkpOyAvLyByZXNwb25zZU1JTUVUeXBlIGRlZmF1bHRzIHRvIHRl
eHQveG1sIHdoaWNoIG1heSBiZSBpbmNvcnJlY3QuCiAgICAgICAgICAgICBtX3Jlc3BvbnNlQmxv
YiA9IEJsb2I6OmNyZWF0ZShXVEY6Om1vdmUoZGF0YSksIG5vcm1hbGl6ZWRDb250ZW50VHlwZSk7
Ci0gICAgICAgICAgICBtX2JpbmFyeVJlc3BvbnNlQnVpbGRlci5jbGVhcigpOworICAgICAgICAg
ICAgbV9iaW5hcnlSZXNwb25zZUJ1aWxkZXIgPSBudWxscHRyOwogICAgICAgICB9IGVsc2Ugewog
ICAgICAgICAgICAgLy8gSWYgd2UgZXJyb3JlZCBvdXQgb3IgZ290IG5vIGRhdGEsIHdlIHN0aWxs
IHJldHVybiBhIGJsb2IsIGp1c3QgYW4gZW1wdHkgb25lLgogICAgICAgICAgICAgbV9yZXNwb25z
ZUJsb2IgPSBCbG9iOjpjcmVhdGUoKTsKQEAgLTI2NSw3ICsyNjUsNyBAQCBBcnJheUJ1ZmZlciog
WE1MSHR0cFJlcXVlc3Q6OnJlc3BvbnNlQXJyYXlCdWZmZXIoKQogICAgICAgICAgICAgbV9yZXNw
b25zZUFycmF5QnVmZmVyID0gbV9iaW5hcnlSZXNwb25zZUJ1aWxkZXItPmNyZWF0ZUFycmF5QnVm
ZmVyKCk7CiAgICAgICAgIGVsc2UKICAgICAgICAgICAgIG1fcmVzcG9uc2VBcnJheUJ1ZmZlciA9
IEFycmF5QnVmZmVyOjpjcmVhdGUobnVsbHB0ciwgMCk7Ci0gICAgICAgIG1fYmluYXJ5UmVzcG9u
c2VCdWlsZGVyLmNsZWFyKCk7CisgICAgICAgIG1fYmluYXJ5UmVzcG9uc2VCdWlsZGVyID0gbnVs
bHB0cjsKICAgICB9CiAKICAgICByZXR1cm4gbV9yZXNwb25zZUFycmF5QnVmZmVyLmdldCgpOwpA
QCAtODY4LDggKzg2OCw4IEBAIHZvaWQgWE1MSHR0cFJlcXVlc3Q6OmNsZWFyUmVzcG9uc2VCdWZm
ZXJzKCkKICAgICBtX2NyZWF0ZWREb2N1bWVudCA9IGZhbHNlOwogICAgIG1fcmVzcG9uc2VEb2N1
bWVudCA9IG51bGxwdHI7CiAgICAgbV9yZXNwb25zZUJsb2IgPSBudWxscHRyOwotICAgIG1fYmlu
YXJ5UmVzcG9uc2VCdWlsZGVyLmNsZWFyKCk7Ci0gICAgbV9yZXNwb25zZUFycmF5QnVmZmVyLmNs
ZWFyKCk7CisgICAgbV9iaW5hcnlSZXNwb25zZUJ1aWxkZXIgPSBudWxscHRyOworICAgIG1fcmVz
cG9uc2VBcnJheUJ1ZmZlciA9IG51bGxwdHI7CiAgICAgbV9yZXNwb25zZUNhY2hlSXNWYWxpZCA9
IGZhbHNlOwogfQogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS94bWwvWFNMVFByb2Nlc3Nv
ci5jcHAgYi9Tb3VyY2UvV2ViQ29yZS94bWwvWFNMVFByb2Nlc3Nvci5jcHAKaW5kZXggMDY5Y2Nl
Y2I3YmYyYzk0MDA2ZGU5NDg1ZDE2MzI4NGU4NDA3OTFmYi4uNDkxZjEyYzk5ZDhhNWI0MjBhZmZj
MjkwNzdjNGIzZGUyMTNkNTQwOCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUveG1sL1hTTFRQ
cm9jZXNzb3IuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3htbC9YU0xUUHJvY2Vzc29yLmNwcApA
QCAtMTYyLDggKzE2Miw4IEBAIHZvaWQgWFNMVFByb2Nlc3Nvcjo6cmVtb3ZlUGFyYW1ldGVyKGNv
bnN0IFN0cmluZyYgLypuYW1lc3BhY2VVUkkqLywgY29uc3QgU3RyaW5nCiAKIHZvaWQgWFNMVFBy
b2Nlc3Nvcjo6cmVzZXQoKQogewotICAgIG1fc3R5bGVzaGVldC5jbGVhcigpOwotICAgIG1fc3R5
bGVzaGVldFJvb3ROb2RlLmNsZWFyKCk7CisgICAgbV9zdHlsZXNoZWV0ID0gbnVsbHB0cjsKKyAg
ICBtX3N0eWxlc2hlZXRSb290Tm9kZSA9IG51bGxwdHI7CiAgICAgbV9wYXJhbWV0ZXJzLmNsZWFy
KCk7CiB9CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvU3RvcmFnZS9TdG9yYWdlQXJlYVN5
bmMuY3BwIGIvU291cmNlL1dlYktpdC9TdG9yYWdlL1N0b3JhZ2VBcmVhU3luYy5jcHAKaW5kZXgg
ZDFlYjMyYTBkYTRjZDNiYmViNmY4OGM3NjE1ZTJiZmQ5Yjk3NzE4Ni4uYmExN2YxODk4MWUzYmU2
ZjE4NDBmOTA5OGE4YjFhYjE5MDA1M2Y1OSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9TdG9y
YWdlL1N0b3JhZ2VBcmVhU3luYy5jcHAKKysrIGIvU291cmNlL1dlYktpdC9TdG9yYWdlL1N0b3Jh
Z2VBcmVhU3luYy5jcHAKQEAgLTg4LDcgKzg4LDcgQEAgdm9pZCBTdG9yYWdlQXJlYVN5bmM6OnNj
aGVkdWxlRmluYWxTeW5jKCkKICAgICBBU1NFUlQoaXNNYWluVGhyZWFkKCkpOwogICAgIC8vIEZJ
WE1FOiBXZSBkbyB0aGlzIHRvIGF2b2lkIHJhY2VzLCBidXQgaXQnZCBiZSBiZXR0ZXIgdG8gbWFr
ZSB0aGluZ3Mgc2FmZSB3aXRob3V0IGJsb2NraW5nLgogICAgIGJsb2NrVW50aWxJbXBvcnRDb21w
bGV0ZSgpOwotICAgIG1fc3RvcmFnZUFyZWEgPSAwOyAgLy8gVGhpcyBpcyBkb25lIGluIGJsb2Nr
VW50aWxJbXBvcnRDb21wbGV0ZSgpIGJ1dCB0aGlzIGlzIGhlcmUgYXMgYSBmb3JtIG9mIGRvY3Vt
ZW50YXRpb24gdGhhdCB3ZSBtdXN0IGJlIGFic29sdXRlbHkgc3VyZSB0aGUgcmVmIGNvdW50IGN5
Y2xlIGlzIGJyb2tlbi4KKyAgICBtX3N0b3JhZ2VBcmVhID0gbnVsbHB0cjsgLy8gVGhpcyBpcyBk
b25lIGluIGJsb2NrVW50aWxJbXBvcnRDb21wbGV0ZSgpIGJ1dCB0aGlzIGlzIGhlcmUgYXMgYSBm
b3JtIG9mIGRvY3VtZW50YXRpb24gdGhhdCB3ZSBtdXN0IGJlIGFic29sdXRlbHkgc3VyZSB0aGUg
cmVmIGNvdW50IGN5Y2xlIGlzIGJyb2tlbi4KIAogICAgIGlmIChtX3N5bmNUaW1lci5pc0FjdGl2
ZSgpKQogICAgICAgICBtX3N5bmNUaW1lci5zdG9wKCk7CkBAIC0zNzUsNyArMzc1LDcgQEAgdm9p
ZCBTdG9yYWdlQXJlYVN5bmM6OmJsb2NrVW50aWxJbXBvcnRDb21wbGV0ZSgpCiAgICAgTXV0ZXhM
b2NrZXIgbG9ja2VyKG1faW1wb3J0TG9jayk7CiAgICAgd2hpbGUgKCFtX2ltcG9ydENvbXBsZXRl
KQogICAgICAgICBtX2ltcG9ydENvbmRpdGlvbi53YWl0KG1faW1wb3J0TG9jayk7Ci0gICAgbV9z
dG9yYWdlQXJlYSA9IDA7CisgICAgbV9zdG9yYWdlQXJlYSA9IG51bGxwdHI7CiB9CiAKIHZvaWQg
U3RvcmFnZUFyZWFTeW5jOjpzeW5jKGJvb2wgY2xlYXJJdGVtcywgY29uc3QgSGFzaE1hcDxTdHJp
bmcsIFN0cmluZz4mIGl0ZW1zKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9tYWMvUGx1Z2lu
cy9Ib3N0ZWQvV2ViSG9zdGVkTmV0c2NhcGVQbHVnaW5WaWV3Lm1tIGIvU291cmNlL1dlYktpdC9t
YWMvUGx1Z2lucy9Ib3N0ZWQvV2ViSG9zdGVkTmV0c2NhcGVQbHVnaW5WaWV3Lm1tCmluZGV4IDc2
MDA1ODM2OTBkNzk2MGM1ZDhhNTlhNzNlNzJkMDI1ZGIyY2ZmMzcuLmFjNDM0ZWMxYTlmMzQ4Yzcw
NWM4YmIwMTJjZTZhNGVjODk3ZWYzMGEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvbWFjL1Bs
dWdpbnMvSG9zdGVkL1dlYkhvc3RlZE5ldHNjYXBlUGx1Z2luVmlldy5tbQorKysgYi9Tb3VyY2Uv
V2ViS2l0L21hYy9QbHVnaW5zL0hvc3RlZC9XZWJIb3N0ZWROZXRzY2FwZVBsdWdpblZpZXcubW0K
QEAgLTI4MSw3ICsyODEsNyBAQCAtICh2b2lkKWRlc3Ryb3lQbHVnaW4KICAgICAgICAgfQogICAg
ICAgICAKICAgICAgICAgX3Byb3h5LT5kZXN0cm95KCk7Ci0gICAgICAgIF9wcm94eSA9IDA7Cisg
ICAgICAgIF9wcm94eSA9IG51bGxwdHI7CiAgICAgfQogICAgIAogICAgIF9wbHVnaW5MYXllciA9
IDA7CkBAIC00MzIsNyArNDMyLDcgQEAgLSAodm9pZClwbHVnaW5Ib3N0RGllZAogICAgICAgICBk
b3duY2FzdDxSZW5kZXJFbWJlZGRlZE9iamVjdD4oKl9lbGVtZW50LT5yZW5kZXJlcigpKS5zZXRQ
bHVnaW5VbmF2YWlsYWJpbGl0eVJlYXNvbihSZW5kZXJFbWJlZGRlZE9iamVjdDo6UGx1Z2luQ3Jh
c2hlZCk7CiAKICAgICBfcGx1Z2luTGF5ZXIgPSBuaWw7Ci0gICAgX3Byb3h5ID0gMDsKKyAgICBf
cHJveHkgPSBudWxscHRyOwogICAgIAogICAgIC8vIE5vIG5lZWQgZm9yIHVzIHRvIGJlIGxheWVy
IGJhY2tlZCBhbnltb3JlCiAgICAgc2VsZi53YW50c0xheWVyID0gTk87CmRpZmYgLS1naXQgYS9T
b3VyY2UvV2ViS2l0L21hYy9XZWJDb3JlU3VwcG9ydC9XZWJFZGl0b3JDbGllbnQubW0gYi9Tb3Vy
Y2UvV2ViS2l0L21hYy9XZWJDb3JlU3VwcG9ydC9XZWJFZGl0b3JDbGllbnQubW0KaW5kZXggNmNl
ZDE5NDEzODZiMGM2OTEwNjI2N2YxY2Q3NGQ4ZWMzYTE5ZDk1Ni4uYzE4OGI5ZDczOTU3YTRhMjMw
M2Q4NzAyMTgzMTMwNmNkNjAxM2IyOSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9tYWMvV2Vi
Q29yZVN1cHBvcnQvV2ViRWRpdG9yQ2xpZW50Lm1tCisrKyBiL1NvdXJjZS9XZWJLaXQvbWFjL1dl
YkNvcmVTdXBwb3J0L1dlYkVkaXRvckNsaWVudC5tbQpAQCAtMTE0Myw3ICsxMTQzLDcgQEAgdm9p
ZCBXZWJFZGl0b3JDbGllbnQ6OmRpZENoZWNrU3VjY2VlZChpbnQgc2VxdWVuY2UsIE5TQXJyYXkq
IHJlc3VsdHMpCiB7CiAgICAgQVNTRVJUX1VOVVNFRChzZXF1ZW5jZSwgc2VxdWVuY2UgPT0gbV90
ZXh0Q2hlY2tpbmdSZXF1ZXN0LT5kYXRhKCkuc2VxdWVuY2UoKSk7CiAgICAgbV90ZXh0Q2hlY2tp
bmdSZXF1ZXN0LT5kaWRTdWNjZWVkKGNvcmUocmVzdWx0cywgbV90ZXh0Q2hlY2tpbmdSZXF1ZXN0
LT5kYXRhKCkubWFzaygpKSk7Ci0gICAgbV90ZXh0Q2hlY2tpbmdSZXF1ZXN0LmNsZWFyKCk7Cisg
ICAgbV90ZXh0Q2hlY2tpbmdSZXF1ZXN0ID0gbnVsbHB0cjsKIH0KICNlbmRpZgogCmRpZmYgLS1n
aXQgYS9Tb3VyY2UvV2ViS2l0L21hYy9XZWJDb3JlU3VwcG9ydC9XZWJVc2VyTWVkaWFDbGllbnQu
bW0gYi9Tb3VyY2UvV2ViS2l0L21hYy9XZWJDb3JlU3VwcG9ydC9XZWJVc2VyTWVkaWFDbGllbnQu
bW0KaW5kZXggNjIyYmQ5ZGQzYWZlMDg5MmIxZGMyZGY1MGJhN2U0YjQzMjJiMTU5ZC4uMTdmMTY0
NzNlZDViOWQ0MzQ4MzBlZDdjNzI2OTg2NWQ3YTViMzUzZiAxMDA2NDQKLS0tIGEvU291cmNlL1dl
YktpdC9tYWMvV2ViQ29yZVN1cHBvcnQvV2ViVXNlck1lZGlhQ2xpZW50Lm1tCisrKyBiL1NvdXJj
ZS9XZWJLaXQvbWFjL1dlYkNvcmVTdXBwb3J0L1dlYlVzZXJNZWRpYUNsaWVudC5tbQpAQCAtMTQy
LDcgKzE0Miw3IEBAIC0gKHZvaWQpY2FuY2VsUmVxdWVzdAogICAgIGlmICghX3JlcXVlc3QpCiAg
ICAgICAgIHJldHVybjsKIAotICAgIF9yZXF1ZXN0ID0gMDsKKyAgICBfcmVxdWVzdCA9IG51bGxw
dHI7CiAjZW5kaWYKICAgICAKIH0KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvd2luL1dlYlZp
ZXcuY3BwIGIvU291cmNlL1dlYktpdC93aW4vV2ViVmlldy5jcHAKaW5kZXggNDM3NTI3MTI4ZDE1
NDFmYzY5ZTg3ZDA1OGNiOWU5MDYyYjYzNjIzZC4uYjc5ZTYzYzU0NjU1YjE3MzBmMDRlNmQ2YThl
MDc0NzRkNmRhYmIwMSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC93aW4vV2ViVmlldy5jcHAK
KysrIGIvU291cmNlL1dlYktpdC93aW4vV2ViVmlldy5jcHAKQEAgLTg1MSw4ICs4NTEsOCBAQCB2
b2lkIFdlYlZpZXc6OmRlbGV0ZUJhY2tpbmdTdG9yZSgpCiAgICAgICAgIEtpbGxUaW1lcihtX3Zp
ZXdXaW5kb3csIERlbGV0ZUJhY2tpbmdTdG9yZVRpbWVyKTsKICAgICAgICAgbV9kZWxldGVCYWNr
aW5nU3RvcmVUaW1lckFjdGl2ZSA9IGZhbHNlOwogICAgIH0KLSAgICBtX2JhY2tpbmdTdG9yZUJp
dG1hcC5jbGVhcigpOwotICAgIG1fYmFja2luZ1N0b3JlRGlydHlSZWdpb24uY2xlYXIoKTsKKyAg
ICBtX2JhY2tpbmdTdG9yZUJpdG1hcCA9IG51bGxwdHI7CisgICAgbV9iYWNraW5nU3RvcmVEaXJ0
eVJlZ2lvbiA9IG51bGxwdHI7CiAgICAgbV9iYWNraW5nU3RvcmVTaXplLmN4ID0gbV9iYWNraW5n
U3RvcmVTaXplLmN5ID0gMDsKIH0KIApAQCAtMTA3OSw3ICsxMDc5LDcgQEAgdm9pZCBXZWJWaWV3
Ojp1cGRhdGVCYWNraW5nU3RvcmUoRnJhbWVWaWV3KiBmcmFtZVZpZXcsIEhEQyBkYywgYm9vbCBi
YWNraW5nU3RvcmUKICAgICAgICAgaWYgKG1fdWlEZWxlZ2F0ZVByaXZhdGUpCiAgICAgICAgICAg
ICBtX3VpRGVsZWdhdGVQcml2YXRlLT53ZWJWaWV3UGFpbnRlZCh0aGlzKTsKIAotICAgICAgICBt
X2JhY2tpbmdTdG9yZURpcnR5UmVnaW9uLmNsZWFyKCk7CisgICAgICAgIG1fYmFja2luZ1N0b3Jl
RGlydHlSZWdpb24gPSBudWxscHRyOwogICAgIH0KIAogICAgIGlmICghZGMpCmRpZmYgLS1naXQg
YS9Tb3VyY2UvV2ViS2l0Mi9EYXRhYmFzZVByb2Nlc3MvSW5kZXhlZERCL1VuaXF1ZUlEQkRhdGFi
YXNlLmNwcCBiL1NvdXJjZS9XZWJLaXQyL0RhdGFiYXNlUHJvY2Vzcy9JbmRleGVkREIvVW5pcXVl
SURCRGF0YWJhc2UuY3BwCmluZGV4IDYxOTgwNWNkOWEyNjFlNzE1YjI3ODg4YzFiMWJlZjExOTMy
ZTNlY2QuLjNkMmNhNWJiYmZhYzY0YWViODE2ODBiYTg3NWY2MDdjODRlNGJkMWQgMTAwNjQ0Ci0t
LSBhL1NvdXJjZS9XZWJLaXQyL0RhdGFiYXNlUHJvY2Vzcy9JbmRleGVkREIvVW5pcXVlSURCRGF0
YWJhc2UuY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQyL0RhdGFiYXNlUHJvY2Vzcy9JbmRleGVkREIv
VW5pcXVlSURCRGF0YWJhc2UuY3BwCkBAIC0xNDcsNyArMTQ3LDcgQEAgdm9pZCBVbmlxdWVJREJE
YXRhYmFzZTo6c2h1dGRvd25CYWNraW5nU3RvcmUoVW5pcXVlSURCRGF0YWJhc2VTaHV0ZG93blR5
cGUgdHlwZSwKIHsKICAgICBBU1NFUlQoIVJ1bkxvb3A6OmlzTWFpbigpKTsKIAotICAgIG1fYmFj
a2luZ1N0b3JlLmNsZWFyKCk7CisgICAgbV9iYWNraW5nU3RvcmUgPSBudWxscHRyOwogCiAgICAg
aWYgKHR5cGUgPT0gVW5pcXVlSURCRGF0YWJhc2VTaHV0ZG93blR5cGU6OkRlbGV0ZVNodXRkb3du
KSB7CiAgICAgICAgIFN0cmluZyBkYkZpbGVuYW1lID0gVW5pcXVlSURCRGF0YWJhc2U6OmNhbGN1
bGF0ZUFic29sdXRlRGF0YWJhc2VGaWxlbmFtZShkYXRhYmFzZURpcmVjdG9yeSk7CmRpZmYgLS1n
aXQgYS9Tb3VyY2UvV2ViS2l0Mi9QbHVnaW5Qcm9jZXNzL1BsdWdpbkNvbnRyb2xsZXJQcm94eS5j
cHAgYi9Tb3VyY2UvV2ViS2l0Mi9QbHVnaW5Qcm9jZXNzL1BsdWdpbkNvbnRyb2xsZXJQcm94eS5j
cHAKaW5kZXggODhkNmQxNzdkYTg0NjFlZjhmNGUzMjNjYzZjNjJmZjlkY2Y0YzE4MS4uNGE5ZjQ2
N2U4NzhkZTgxYzY2MWJkZWQzNWQ3NjE2NjMwNjExYzQ3YyAxMDA2NDQKLS0tIGEvU291cmNlL1dl
YktpdDIvUGx1Z2luUHJvY2Vzcy9QbHVnaW5Db250cm9sbGVyUHJveHkuY3BwCisrKyBiL1NvdXJj
ZS9XZWJLaXQyL1BsdWdpblByb2Nlc3MvUGx1Z2luQ29udHJvbGxlclByb3h5LmNwcApAQCAtMTI2
LDcgKzEyNiw3IEBAIGJvb2wgUGx1Z2luQ29udHJvbGxlclByb3h5Ojppbml0aWFsaXplKGNvbnN0
IFBsdWdpbkNyZWF0aW9uUGFyYW1ldGVycyYgY3JlYXRpb25QCiAgICAgICAgIC8vIHVzZWQgYXMg
YW4gaWRlbnRpZmllciBzbyBpdCdzIE9LIHRvIGp1c3QgZ2V0IGEgd2VhayByZWZlcmVuY2UuCiAg
ICAgICAgIFBsdWdpbiogcGx1Z2luID0gbV9wbHVnaW4uZ2V0KCk7CiAgICAgICAgIAotICAgICAg
ICBtX3BsdWdpbiA9IDA7CisgICAgICAgIG1fcGx1Z2luID0gbnVsbHB0cjsKIAogICAgICAgICAv
LyBUaGlzIHdpbGwgZGVsZXRlIHRoZSBwbHVnLWluIGNvbnRyb2xsZXIgcHJveHkgb2JqZWN0Lgog
ICAgICAgICBtX2Nvbm5lY3Rpb24tPnJlbW92ZVBsdWdpbkNvbnRyb2xsZXJQcm94eSh0aGlzLCBw
bHVnaW4pOwpAQCAtMTU2LDcgKzE1Niw3IEBAIHZvaWQgUGx1Z2luQ29udHJvbGxlclByb3h5Ojpk
ZXN0cm95KCkKICAgICBQbHVnaW4qIHBsdWdpbiA9IG1fcGx1Z2luLmdldCgpOwogCiAgICAgbV9w
bHVnaW4tPmRlc3Ryb3lQbHVnaW4oKTsKLSAgICBtX3BsdWdpbiA9IDA7CisgICAgbV9wbHVnaW4g
PSBudWxscHRyOwogCiAgICAgcGxhdGZvcm1EZXN0cm95KCk7CiAKZGlmZiAtLWdpdCBhL1NvdXJj
ZS9XZWJLaXQyL1NoYXJlZC9DaGlsZFByb2Nlc3NQcm94eS5jcHAgYi9Tb3VyY2UvV2ViS2l0Mi9T
aGFyZWQvQ2hpbGRQcm9jZXNzUHJveHkuY3BwCmluZGV4IDM5MzA5ODk3OWU2OGVjMTI0NDBlMTI1
ZmNjM2EyNDJiMDdlNjg5N2QuLmQ5ZTA3ZWY0YzdkNjJkZTg2ZGZjNjk4ZjcwNTRmODhjNGE4NTMz
ODUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQyL1NoYXJlZC9DaGlsZFByb2Nlc3NQcm94eS5j
cHAKKysrIGIvU291cmNlL1dlYktpdDIvU2hhcmVkL0NoaWxkUHJvY2Vzc1Byb3h5LmNwcApAQCAt
NDIsNyArNDIsNyBAQCBDaGlsZFByb2Nlc3NQcm94eTo6fkNoaWxkUHJvY2Vzc1Byb3h5KCkKIAog
ICAgIGlmIChtX3Byb2Nlc3NMYXVuY2hlcikgewogICAgICAgICBtX3Byb2Nlc3NMYXVuY2hlci0+
aW52YWxpZGF0ZSgpOwotICAgICAgICBtX3Byb2Nlc3NMYXVuY2hlciA9IDA7CisgICAgICAgIG1f
cHJvY2Vzc0xhdW5jaGVyID0gbnVsbHB0cjsKICAgICB9CiB9CiAKZGlmZiAtLWdpdCBhL1NvdXJj
ZS9XZWJLaXQyL1NoYXJlZC9Db29yZGluYXRlZEdyYXBoaWNzL0Nvb3JkaW5hdGVkQmFja2luZ1N0
b3JlLmNwcCBiL1NvdXJjZS9XZWJLaXQyL1NoYXJlZC9Db29yZGluYXRlZEdyYXBoaWNzL0Nvb3Jk
aW5hdGVkQmFja2luZ1N0b3JlLmNwcAppbmRleCBiOWEwNWY5MDZlOWMxMWYwMjdlYTFhMTUyNWVl
NDNlY2ZkNWM1M2Q3Li5jNjZkMjhiNzUzOTc0YTA1NzQwY2I2YWY2OGUyYzQ4NDgxZDkzYzMyIDEw
MDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0Mi9TaGFyZWQvQ29vcmRpbmF0ZWRHcmFwaGljcy9Db29y
ZGluYXRlZEJhY2tpbmdTdG9yZS5jcHAKKysrIGIvU291cmNlL1dlYktpdDIvU2hhcmVkL0Nvb3Jk
aW5hdGVkR3JhcGhpY3MvQ29vcmRpbmF0ZWRCYWNraW5nU3RvcmUuY3BwCkBAIC01NSw3ICs1NSw3
IEBAIHZvaWQgQ29vcmRpbmF0ZWRCYWNraW5nU3RvcmVUaWxlOjpzd2FwQnVmZmVycyhUZXh0dXJl
TWFwcGVyKiB0ZXh0dXJlTWFwcGVyKQogICAgICAgICB0ZXh0dXJlLT5yZXNldChtX3RpbGVSZWN0
LnNpemUoKSwgbV9zdXJmYWNlLT5zdXBwb3J0c0FscGhhKCkpOwogCiAgICAgbV9zdXJmYWNlLT5j
b3B5VG9UZXh0dXJlKHRleHR1cmUsIG1fc291cmNlUmVjdCwgbV9zdXJmYWNlT2Zmc2V0KTsKLSAg
ICBtX3N1cmZhY2UuY2xlYXIoKTsKKyAgICBtX3N1cmZhY2UgPSBudWxscHRyOwogfQogCiB2b2lk
IENvb3JkaW5hdGVkQmFja2luZ1N0b3JlVGlsZTo6c2V0QmFja0J1ZmZlcihjb25zdCBJbnRSZWN0
JiB0aWxlUmVjdCwgY29uc3QgSW50UmVjdCYgc291cmNlUmVjdCwgUGFzc1JlZlB0cjxDb29yZGlu
YXRlZFN1cmZhY2U+IGJ1ZmZlciwgY29uc3QgSW50UG9pbnQmIG9mZnNldCkKZGlmZiAtLWdpdCBh
L1NvdXJjZS9XZWJLaXQyL1NoYXJlZC9Eb3dubG9hZHMvc291cC9Eb3dubG9hZFNvdXAuY3BwIGIv
U291cmNlL1dlYktpdDIvU2hhcmVkL0Rvd25sb2Fkcy9zb3VwL0Rvd25sb2FkU291cC5jcHAKaW5k
ZXggYzA5OWY4OWE0NTNiNTllN2Q0YzA3YmZhNGUyMDg3ODc4ZmM2Y2UwMC4uYTIyNDliYTRlMjc3
NDUyYTllMTY3MDlmYmMwODY3MDA0NTEwMTVmMCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdDIv
U2hhcmVkL0Rvd25sb2Fkcy9zb3VwL0Rvd25sb2FkU291cC5jcHAKKysrIGIvU291cmNlL1dlYktp
dDIvU2hhcmVkL0Rvd25sb2Fkcy9zb3VwL0Rvd25sb2FkU291cC5jcHAKQEAgLTI1Nyw3ICsyNTcs
NyBAQCB2b2lkIERvd25sb2FkOjpwbGF0Zm9ybUludmFsaWRhdGUoKQogICAgIGlmIChtX3Jlc291
cmNlSGFuZGxlKSB7CiAgICAgICAgIG1fcmVzb3VyY2VIYW5kbGUtPnNldENsaWVudCgwKTsKICAg
ICAgICAgbV9yZXNvdXJjZUhhbmRsZS0+Y2FuY2VsKCk7Ci0gICAgICAgIG1fcmVzb3VyY2VIYW5k
bGUgPSAwOworICAgICAgICBtX3Jlc291cmNlSGFuZGxlID0gbnVsbHB0cjsKICAgICB9CiAKICAg
ICBtX2Rvd25sb2FkQ2xpZW50ID0gbnVsbHB0cjsKQEAgLTI2NSw3ICsyNjUsNyBAQCB2b2lkIERv
d25sb2FkOjpwbGF0Zm9ybUludmFsaWRhdGUoKQogCiB2b2lkIERvd25sb2FkOjpwbGF0Zm9ybURp
ZEZpbmlzaCgpCiB7Ci0gICAgbV9yZXNvdXJjZUhhbmRsZSA9IDA7CisgICAgbV9yZXNvdXJjZUhh
bmRsZSA9IG51bGxwdHI7CiB9CiAKIHZvaWQgRG93bmxvYWQ6OnJlY2VpdmVkQ3JlZGVudGlhbChj
b25zdCBBdXRoZW50aWNhdGlvbkNoYWxsZW5nZSYsIGNvbnN0IENyZWRlbnRpYWwmKQpkaWZmIC0t
Z2l0IGEvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL0FQSS9lZmwvRXdrVmlldy5jcHAgYi9Tb3Vy
Y2UvV2ViS2l0Mi9VSVByb2Nlc3MvQVBJL2VmbC9Fd2tWaWV3LmNwcAppbmRleCA3N2I1MDFhODRk
ZjY0M2UxYmRlZTdlNTc0NWZmMTk0NDE0MjVhZjU5Li40NTg4NDY0NTc4NzM3NDczN2Q4M2JiYzQw
NWVlOGM3YmZlNzQ1ZmM5IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvQVBJ
L2VmbC9Fd2tWaWV3LmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvQVBJL2VmbC9F
d2tWaWV3LmNwcApAQCAtOTQwLDcgKzk0MCw3IEBAIHZvaWQgRXdrVmlldzo6aGlkZUNvbnRleHRN
ZW51KCkKICAgICBpZiAoc2QtPmFwaS0+Y29udGV4dF9tZW51X2hpZGUpCiAgICAgICAgIHNkLT5h
cGktPmNvbnRleHRfbWVudV9oaWRlKHNkKTsKIAotICAgIG1fY29udGV4dE1lbnUuY2xlYXIoKTsK
KyAgICBtX2NvbnRleHRNZW51ID0gbnVsbHB0cjsKIH0KIAogdm9pZCBFd2tWaWV3OjpyZXF1ZXN0
UG9wdXBNZW51KFdLUG9wdXBNZW51TGlzdGVuZXJSZWYgcG9wdXBNZW51TGlzdGVuZXIsIGNvbnN0
IFdLUmVjdCYgcmVjdCwgV0tQb3B1cEl0ZW1UZXh0RGlyZWN0aW9uIHRleHREaXJlY3Rpb24sIGRv
dWJsZSBwYWdlU2NhbGVGYWN0b3IsIFdLQXJyYXlSZWYgaXRlbXMsIGludDMyX3Qgc2VsZWN0ZWRJ
bmRleCkKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9BUEkvZ3RrL1dlYktp
dEZvcm1TdWJtaXNzaW9uUmVxdWVzdC5jcHAgYi9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvQVBJ
L2d0ay9XZWJLaXRGb3JtU3VibWlzc2lvblJlcXVlc3QuY3BwCmluZGV4IGQyZDVlNjgyMThmYTI2
MTM0ZDhkNmNiMzM4OGY0NWZjY2VhZWZhMjkuLjdhZjJhZWUxMGI3NTQ4ZjllZDdiYmY3ZWRjMjMz
YzQzZDE2OTUxNzUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9BUEkvZ3Rr
L1dlYktpdEZvcm1TdWJtaXNzaW9uUmVxdWVzdC5jcHAKKysrIGIvU291cmNlL1dlYktpdDIvVUlQ
cm9jZXNzL0FQSS9ndGsvV2ViS2l0Rm9ybVN1Ym1pc3Npb25SZXF1ZXN0LmNwcApAQCAtOTYsNyAr
OTYsNyBAQCBHSGFzaFRhYmxlKiB3ZWJraXRfZm9ybV9zdWJtaXNzaW9uX3JlcXVlc3RfZ2V0X3Rl
eHRfZmllbGRzKFdlYktpdEZvcm1TdWJtaXNzaW9uUgogICAgICAgICByZXR1cm4gcmVxdWVzdC0+
cHJpdi0+dmFsdWVzLmdldCgpOwogCiAgICAgaWYgKCFyZXF1ZXN0LT5wcml2LT53ZWJWYWx1ZXMt
PnNpemUoKSkKLSAgICAgICAgcmV0dXJuIDA7CisgICAgICAgIHJldHVybiBudWxscHRyOwogCiAg
ICAgcmVxdWVzdC0+cHJpdi0+dmFsdWVzID0gYWRvcHRHUmVmKGdfaGFzaF90YWJsZV9uZXdfZnVs
bChnX3N0cl9oYXNoLCBnX3N0cl9lcXVhbCwgZ19mcmVlLCBnX2ZyZWUpKTsKIApAQCAtMTA3LDcg
KzEwNyw3IEBAIEdIYXNoVGFibGUqIHdlYmtpdF9mb3JtX3N1Ym1pc3Npb25fcmVxdWVzdF9nZXRf
dGV4dF9maWVsZHMoV2ViS2l0Rm9ybVN1Ym1pc3Npb25SCiAgICAgICAgIGdfaGFzaF90YWJsZV9p
bnNlcnQocmVxdWVzdC0+cHJpdi0+dmFsdWVzLmdldCgpLCBnX3N0cmR1cChpdC0+a2V5LnV0Zjgo
KS5kYXRhKCkpLCBnX3N0cmR1cCh2YWx1ZS0+c3RyaW5nKCkudXRmOCgpLmRhdGEoKSkpOwogICAg
IH0KIAotICAgIHJlcXVlc3QtPnByaXYtPndlYlZhbHVlcyA9IDA7CisgICAgcmVxdWVzdC0+cHJp
di0+d2ViVmFsdWVzID0gbnVsbHB0cjsKIAogICAgIHJldHVybiByZXF1ZXN0LT5wcml2LT52YWx1
ZXMuZ2V0KCk7CiB9CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvQVBJL21h
Yy9XS1ZpZXcubW0gYi9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvQVBJL21hYy9XS1ZpZXcubW0K
aW5kZXggZDU1MTVhZTFmYzNmNDI5OWRhMTI0MzFhNDFhNzQ3ZTM4YTNlNDY1Ny4uZThkMjQ0OTU4
ZjA5ZGU1ZmRlYzllMWJjM2IxNGEyNjEwMjJlMzJhNiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktp
dDIvVUlQcm9jZXNzL0FQSS9tYWMvV0tWaWV3Lm1tCisrKyBiL1NvdXJjZS9XZWJLaXQyL1VJUHJv
Y2Vzcy9BUEkvbWFjL1dLVmlldy5tbQpAQCAtMzUyMCw3ICszNTIwLDcgQEAgLSAodm9pZClfc2V0
UHJvbWlzZWREYXRhRm9yQXR0YWNobWVudDooTlNTdHJpbmcgKilmaWxlbmFtZSB3aXRoRXh0ZW5z
aW9uOihOU1N0cmkKIAogLSAodm9pZClwYXN0ZWJvYXJkQ2hhbmdlZE93bmVyOihOU1Bhc3RlYm9h
cmQgKilwYXN0ZWJvYXJkCiB7Ci0gICAgX2RhdGEtPl9wcm9taXNlZEltYWdlID0gMDsKKyAgICBf
ZGF0YS0+X3Byb21pc2VkSW1hZ2UgPSBudWxscHRyOwogICAgIF9kYXRhLT5fcHJvbWlzZWRGaWxl
bmFtZSA9ICIiOwogICAgIF9kYXRhLT5fcHJvbWlzZWRVUkwgPSAiIjsKIH0KQEAgLTM1MzEsNyAr
MzUzMSw3IEBAIC0gKHZvaWQpcGFzdGVib2FyZDooTlNQYXN0ZWJvYXJkICopcGFzdGVib2FyZCBw
cm92aWRlRGF0YUZvclR5cGU6KE5TU3RyaW5nICopdHlwCiAKICAgICBpZiAoW3R5cGUgaXNFcXVh
bDpOU1RJRkZQYm9hcmRUeXBlXSAmJiBfZGF0YS0+X3Byb21pc2VkSW1hZ2UpIHsKICAgICAgICAg
W3Bhc3RlYm9hcmQgc2V0RGF0YTooTlNEYXRhICopX2RhdGEtPl9wcm9taXNlZEltYWdlLT5nZXRU
SUZGUmVwcmVzZW50YXRpb24oKSBmb3JUeXBlOk5TVElGRlBib2FyZFR5cGVdOwotICAgICAgICBf
ZGF0YS0+X3Byb21pc2VkSW1hZ2UgPSAwOworICAgICAgICBfZGF0YS0+X3Byb21pc2VkSW1hZ2Ug
PSBudWxscHRyOwogICAgIH0KIH0KIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdDIvVUlQcm9j
ZXNzL0luc3BlY3RvclNlcnZlci9XZWJTb2NrZXRTZXJ2ZXJDb25uZWN0aW9uLmNwcCBiL1NvdXJj
ZS9XZWJLaXQyL1VJUHJvY2Vzcy9JbnNwZWN0b3JTZXJ2ZXIvV2ViU29ja2V0U2VydmVyQ29ubmVj
dGlvbi5jcHAKaW5kZXggODA5N2FjMWE0Y2MxZTBkZGJmYWRmZjk5MGMzZTRlNTI3N2JmZTQwNi4u
OTRhMjRjOTBjMzg2NmFmNTk3ZWIwZDU5MWYzNjlmNzEwZGY2MDdjOCAxMDA2NDQKLS0tIGEvU291
cmNlL1dlYktpdDIvVUlQcm9jZXNzL0luc3BlY3RvclNlcnZlci9XZWJTb2NrZXRTZXJ2ZXJDb25u
ZWN0aW9uLmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvSW5zcGVjdG9yU2VydmVy
L1dlYlNvY2tldFNlcnZlckNvbm5lY3Rpb24uY3BwCkBAIC0xMjYsNyArMTI2LDcgQEAgdm9pZCBX
ZWJTb2NrZXRTZXJ2ZXJDb25uZWN0aW9uOjpzZW5kUmF3RGF0YShjb25zdCBjaGFyKiBkYXRhLCBz
aXplX3QgbGVuZ3RoKQogdm9pZCBXZWJTb2NrZXRTZXJ2ZXJDb25uZWN0aW9uOjpkaWRDbG9zZVNv
Y2tldFN0cmVhbShTb2NrZXRTdHJlYW1IYW5kbGUqKQogewogICAgIC8vIERlc3Ryb3kgdGhlIFNv
Y2tldFN0cmVhbUhhbmRsZSBub3cgdG8gcHJldmVudCBjbG9zaW5nIGFuIGFscmVhZHkgY2xvc2Vk
IHNvY2tldCBsYXRlci4KLSAgICBtX3NvY2tldC5jbGVhcigpOworICAgIG1fc29ja2V0ID0gbnVs
bHB0cjsKIAogICAgIC8vIFdlYiBTb2NrZXQgTW9kZS4KICAgICBpZiAobV9tb2RlID09IFdlYlNv
Y2tldCkKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9OZXR3b3JrL0N1c3Rv
bVByb3RvY29scy9tYWMvQ3VzdG9tUHJvdG9jb2xNYW5hZ2VyUHJveHlNYWMubW0gYi9Tb3VyY2Uv
V2ViS2l0Mi9VSVByb2Nlc3MvTmV0d29yay9DdXN0b21Qcm90b2NvbHMvbWFjL0N1c3RvbVByb3Rv
Y29sTWFuYWdlclByb3h5TWFjLm1tCmluZGV4IDk0MjUyOTlhMmVjNzNmOGJlMGQxOTlhMTEzYTJk
NmJiYThiNjE5NzQuLjUxM2IxZTBjZmY5N2ZiMTZmZTRhYmU5MWVhOGJmYTRkZGVjMTJiYTQgMTAw
NjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9OZXR3b3JrL0N1c3RvbVByb3RvY29s
cy9tYWMvQ3VzdG9tUHJvdG9jb2xNYW5hZ2VyUHJveHlNYWMubW0KKysrIGIvU291cmNlL1dlYktp
dDIvVUlQcm9jZXNzL05ldHdvcmsvQ3VzdG9tUHJvdG9jb2xzL21hYy9DdXN0b21Qcm90b2NvbE1h
bmFnZXJQcm94eU1hYy5tbQpAQCAtNzYsNyArNzYsNyBAQCAtIChpZClpbml0V2l0aEN1c3RvbVBy
b3RvY29sTWFuYWdlclByb3h5OihDdXN0b21Qcm90b2NvbE1hbmFnZXJQcm94eSopY3VzdG9tUHJv
dAogCiAtICh2b2lkKWRlYWxsb2MKIHsKLSAgICBfY29ubmVjdGlvbi5jbGVhcigpOworICAgIF9j
b25uZWN0aW9uID0gbnVsbHB0cjsKICAgICBbX3VybENvbm5lY3Rpb24gY2FuY2VsXTsKICAgICBb
X3VybENvbm5lY3Rpb24gcmVsZWFzZV07CiAgICAgW3N1cGVyIGRlYWxsb2NdOwpkaWZmIC0tZ2l0
IGEvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL1N0YXRpc3RpY3NSZXF1ZXN0LmNwcCBiL1NvdXJj
ZS9XZWJLaXQyL1VJUHJvY2Vzcy9TdGF0aXN0aWNzUmVxdWVzdC5jcHAKaW5kZXggYzBlYzQ4ZWUz
YmI5NjUyZGQ3ODg3ZTg0ZTg0OGYyMjRlMmZiZmIyMC4uODA2ZTEwZjAwZmYzZjE0NGYxN2ZiN2Iw
MjY4ZTExZmFjYTE2ZjE1OSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL1N0
YXRpc3RpY3NSZXF1ZXN0LmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvU3RhdGlz
dGljc1JlcXVlc3QuY3BwCkBAIC05NSw3ICs5NSw3IEBAIHZvaWQgU3RhdGlzdGljc1JlcXVlc3Q6
OmNvbXBsZXRlZFJlcXVlc3QodWludDY0X3QgcmVxdWVzdElELCBjb25zdCBTdGF0aXN0aWNzRGF0
CiAKICAgICBpZiAobV9vdXRzdGFuZGluZ1JlcXVlc3RzLmlzRW1wdHkoKSkgewogICAgICAgICBt
X2NhbGxiYWNrLT5wZXJmb3JtQ2FsbGJhY2tXaXRoUmV0dXJuVmFsdWUobV9yZXNwb25zZURpY3Rp
b25hcnkuZ2V0KCkpOwotICAgICAgICBtX2NhbGxiYWNrID0gMDsKKyAgICAgICAgbV9jYWxsYmFj
ayA9IG51bGxwdHI7CiAgICAgfQogfQogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9VSVBy
b2Nlc3MvV2ViRnJhbWVMaXN0ZW5lclByb3h5LmNwcCBiL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vz
cy9XZWJGcmFtZUxpc3RlbmVyUHJveHkuY3BwCmluZGV4IGU4MDEwZTViNjI2OTA1MWIyMzVlMGJj
M2EyM2Y3MGRlOTBmNzIzNGYuLjQwNjFkZDUyOTEzNGVkOGQ4ZDI1ZDY4ZDBjYzljNWU5NmU4Njk2
NjAgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9XZWJGcmFtZUxpc3RlbmVy
UHJveHkuY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9XZWJGcmFtZUxpc3RlbmVy
UHJveHkuY3BwCkBAIC00Miw3ICs0Miw3IEBAIFdlYkZyYW1lTGlzdGVuZXJQcm94eTo6fldlYkZy
YW1lTGlzdGVuZXJQcm94eSgpCiAKIHZvaWQgV2ViRnJhbWVMaXN0ZW5lclByb3h5OjppbnZhbGlk
YXRlKCkKIHsKLSAgICBtX2ZyYW1lID0gMDsKKyAgICBtX2ZyYW1lID0gbnVsbHB0cjsKIH0KIAog
dm9pZCBXZWJGcmFtZUxpc3RlbmVyUHJveHk6OnJlY2VpdmVkUG9saWN5RGVjaXNpb24oV2ViQ29y
ZTo6UG9saWN5QWN0aW9uIGFjdGlvbikKQEAgLTUxLDcgKzUxLDcgQEAgdm9pZCBXZWJGcmFtZUxp
c3RlbmVyUHJveHk6OnJlY2VpdmVkUG9saWN5RGVjaXNpb24oV2ViQ29yZTo6UG9saWN5QWN0aW9u
IGFjdGlvbikKICAgICAgICAgcmV0dXJuOwogCiAgICAgbV9mcmFtZS0+cmVjZWl2ZWRQb2xpY3lE
ZWNpc2lvbihhY3Rpb24sIG1fbGlzdGVuZXJJRCwgbV9uYXZpZ2F0aW9uLmdldCgpKTsKLSAgICBt
X2ZyYW1lID0gMDsKKyAgICBtX2ZyYW1lID0gbnVsbHB0cjsKIH0KIAogfSAvLyBuYW1lc3BhY2Ug
V2ViS2l0CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvV2ViRnJhbWVQcm94
eS5jcHAgYi9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvV2ViRnJhbWVQcm94eS5jcHAKaW5kZXgg
NDFiYjkxYTEzNjFiODg0YTI4ZDE5NGM5MmIxNzYyOGJkNDA2ZDIxNC4uNjkyOGFmYmM3MDJjNzBi
ZGYwOTc2M2Q3M2UwNmU2MmNiM2NhMzQyMSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdDIvVUlQ
cm9jZXNzL1dlYkZyYW1lUHJveHkuY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9X
ZWJGcmFtZVByb3h5LmNwcApAQCAtNTcsMTEgKzU3LDExIEBAIFdlYkZyYW1lUHJveHk6On5XZWJG
cmFtZVByb3h5KCkKIAogdm9pZCBXZWJGcmFtZVByb3h5Ojp3ZWJQcm9jZXNzV2lsbFNodXREb3du
KCkKIHsKLSAgICBtX3BhZ2UgPSAwOworICAgIG1fcGFnZSA9IG51bGxwdHI7CiAKICAgICBpZiAo
bV9hY3RpdmVMaXN0ZW5lcikgewogICAgICAgICBtX2FjdGl2ZUxpc3RlbmVyLT5pbnZhbGlkYXRl
KCk7Ci0gICAgICAgIG1fYWN0aXZlTGlzdGVuZXIgPSAwOworICAgICAgICBtX2FjdGl2ZUxpc3Rl
bmVyID0gbnVsbHB0cjsKICAgICB9CiB9CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL1VJ
UHJvY2Vzcy9XZWJPcGVuUGFuZWxSZXN1bHRMaXN0ZW5lclByb3h5LmNwcCBiL1NvdXJjZS9XZWJL
aXQyL1VJUHJvY2Vzcy9XZWJPcGVuUGFuZWxSZXN1bHRMaXN0ZW5lclByb3h5LmNwcAppbmRleCBk
ZDY2NjcxMTE4ZDI0OGY4NjIxYzJiOTg4ZWUzOGIxY2ZiMDNmOTYwLi5hMzc3ZTRhZjA4ZTI5N2Yz
YzJmYTc0NjA2YzllNTk0OGFlN2Q0MmU4IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0Mi9VSVBy
b2Nlc3MvV2ViT3BlblBhbmVsUmVzdWx0TGlzdGVuZXJQcm94eS5jcHAKKysrIGIvU291cmNlL1dl
YktpdDIvVUlQcm9jZXNzL1dlYk9wZW5QYW5lbFJlc3VsdExpc3RlbmVyUHJveHkuY3BwCkBAIC04
OSw3ICs4OSw3IEBAIHZvaWQgV2ViT3BlblBhbmVsUmVzdWx0TGlzdGVuZXJQcm94eTo6Y2FuY2Vs
KCkKIAogdm9pZCBXZWJPcGVuUGFuZWxSZXN1bHRMaXN0ZW5lclByb3h5OjppbnZhbGlkYXRlKCkK
IHsKLSAgICBtX3BhZ2UgPSAwOworICAgIG1fcGFnZSA9IG51bGxwdHI7CiB9CiAKIH0gLy8gbmFt
ZXNwYWNlIFdlYktpdApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL1dlYlBh
Z2VQcm94eS5jcHAgYi9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvV2ViUGFnZVByb3h5LmNwcApp
bmRleCBiZDEzYTMzYjE2OTI0Zjc0M2FkNjg2ZTdjOGYyNDYwMDFhYWUzZDhjLi43OWQyM2UwNTg0
ZjI5NDAzNDkwYjY3ZTAwOTFiMGVhZDM3ZmEzNWFmIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0
Mi9VSVByb2Nlc3MvV2ViUGFnZVByb3h5LmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nl
c3MvV2ViUGFnZVByb3h5LmNwcApAQCAtMzcwNiw3ICszNzA2LDcgQEAgdm9pZCBXZWJQYWdlUHJv
eHk6OnJ1bk9wZW5QYW5lbCh1aW50NjRfdCBmcmFtZUlELCBjb25zdCBGaWxlQ2hvb3NlclNldHRp
bmdzJiBzZXQKIHsKICAgICBpZiAobV9vcGVuUGFuZWxSZXN1bHRMaXN0ZW5lcikgewogICAgICAg
ICBtX29wZW5QYW5lbFJlc3VsdExpc3RlbmVyLT5pbnZhbGlkYXRlKCk7Ci0gICAgICAgIG1fb3Bl
blBhbmVsUmVzdWx0TGlzdGVuZXIgPSAwOworICAgICAgICBtX29wZW5QYW5lbFJlc3VsdExpc3Rl
bmVyID0gbnVsbHB0cjsKICAgICB9CiAKICAgICBXZWJGcmFtZVByb3h5KiBmcmFtZSA9IG1fcHJv
Y2Vzcy0+d2ViRnJhbWUoZnJhbWVJRCk7CkBAIC0zODA4LDcgKzM4MDgsNyBAQCB2b2lkIFdlYlBh
Z2VQcm94eTo6c2hvd0NvbG9yUGlja2VyKGNvbnN0IFdlYkNvcmU6OkNvbG9yJiBpbml0aWFsQ29s
b3IsIGNvbnN0IEludAogI2lmIEVOQUJMRShJTlBVVF9UWVBFX0NPTE9SX1BPUE9WRVIpCiAgICAg
Ly8gQSBuZXcgcG9wb3ZlciBjb2xvciB3ZWxsIG5lZWRzIHRvIGJlIGNyZWF0ZWQgKGFuZCB0aGUg
cHJldmlvdXMgb25lIGRlc3Ryb3llZCkgZm9yCiAgICAgLy8gZWFjaCBhY3RpdmF0aW9uIG9mIGEg
Y29sb3IgZWxlbWVudC4KLSAgICBtX2NvbG9yUGlja2VyID0gMDsKKyAgICBtX2NvbG9yUGlja2Vy
ID0gbnVsbHB0cjsKICNlbmRpZgogICAgIGlmICghbV9jb2xvclBpY2tlcikKICAgICAgICAgbV9j
b2xvclBpY2tlciA9IG1fcGFnZUNsaWVudC5jcmVhdGVDb2xvclBpY2tlcih0aGlzLCBpbml0aWFs
Q29sb3IsIGVsZW1lbnRSZWN0KTsKQEAgLTQzMDAsNyArNDMwMCw3IEBAIHZvaWQgV2ViUGFnZVBy
b3h5OjpkaWRDaG9vc2VGaWxlc0Zvck9wZW5QYW5lbChjb25zdCBWZWN0b3I8U3RyaW5nPiYgZmls
ZVVSTHMpCiAgICAgbV9wcm9jZXNzLT5zZW5kKE1lc3NhZ2VzOjpXZWJQYWdlOjpEaWRDaG9vc2VG
aWxlc0Zvck9wZW5QYW5lbChmaWxlVVJMcyksIG1fcGFnZUlEKTsKIAogICAgIG1fb3BlblBhbmVs
UmVzdWx0TGlzdGVuZXItPmludmFsaWRhdGUoKTsKLSAgICBtX29wZW5QYW5lbFJlc3VsdExpc3Rl
bmVyID0gMDsKKyAgICBtX29wZW5QYW5lbFJlc3VsdExpc3RlbmVyID0gbnVsbHB0cjsKIH0KIAog
dm9pZCBXZWJQYWdlUHJveHk6OmRpZENhbmNlbEZvck9wZW5QYW5lbCgpCkBAIC00MzExLDcgKzQz
MTEsNyBAQCB2b2lkIFdlYlBhZ2VQcm94eTo6ZGlkQ2FuY2VsRm9yT3BlblBhbmVsKCkKICAgICBt
X3Byb2Nlc3MtPnNlbmQoTWVzc2FnZXM6OldlYlBhZ2U6OkRpZENhbmNlbEZvck9wZW5QYW5lbCgp
LCBtX3BhZ2VJRCk7CiAgICAgCiAgICAgbV9vcGVuUGFuZWxSZXN1bHRMaXN0ZW5lci0+aW52YWxp
ZGF0ZSgpOwotICAgIG1fb3BlblBhbmVsUmVzdWx0TGlzdGVuZXIgPSAwOworICAgIG1fb3BlblBh
bmVsUmVzdWx0TGlzdGVuZXIgPSBudWxscHRyOwogfQogCiB2b2lkIFdlYlBhZ2VQcm94eTo6YWR2
YW5jZVRvTmV4dE1pc3NwZWxsaW5nKGJvb2wgc3RhcnRCZWZvcmVTZWxlY3Rpb24pCkBAIC00NzY3
LDcgKzQ3NjcsNyBAQCB2b2lkIFdlYlBhZ2VQcm94eTo6cHJpbnRGaW5pc2hlZENhbGxiYWNrKGNv
bnN0IFJlc291cmNlRXJyb3ImIHByaW50RXJyb3IsIHVpbnQ2NAogdm9pZCBXZWJQYWdlUHJveHk6
OmZvY3VzZWRGcmFtZUNoYW5nZWQodWludDY0X3QgZnJhbWVJRCkKIHsKICAgICBpZiAoIWZyYW1l
SUQpIHsKLSAgICAgICAgbV9mb2N1c2VkRnJhbWUgPSAwOworICAgICAgICBtX2ZvY3VzZWRGcmFt
ZSA9IG51bGxwdHI7CiAgICAgICAgIHJldHVybjsKICAgICB9CiAKQEAgLTQ3ODAsNyArNDc4MCw3
IEBAIHZvaWQgV2ViUGFnZVByb3h5Ojpmb2N1c2VkRnJhbWVDaGFuZ2VkKHVpbnQ2NF90IGZyYW1l
SUQpCiB2b2lkIFdlYlBhZ2VQcm94eTo6ZnJhbWVTZXRMYXJnZXN0RnJhbWVDaGFuZ2VkKHVpbnQ2
NF90IGZyYW1lSUQpCiB7CiAgICAgaWYgKCFmcmFtZUlEKSB7Ci0gICAgICAgIG1fZnJhbWVTZXRM
YXJnZXN0RnJhbWUgPSAwOworICAgICAgICBtX2ZyYW1lU2V0TGFyZ2VzdEZyYW1lID0gbnVsbHB0
cjsKICAgICAgICAgcmV0dXJuOwogICAgIH0KIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdDIv
VUlQcm9jZXNzL2lvcy9XS0dlb2xvY2F0aW9uUHJvdmlkZXJJT1MubW0gYi9Tb3VyY2UvV2ViS2l0
Mi9VSVByb2Nlc3MvaW9zL1dLR2VvbG9jYXRpb25Qcm92aWRlcklPUy5tbQppbmRleCBiYjZiYjYw
NTRmN2Y4NmI5YzYzZDY4NWU2NWVmNzlmOTIxYTNhYjFlLi5iZGQxMTRhMjQ0OGRmYWFhOTcxOTFh
NjI1ZDdjYTFiYjI2Nzc2MDI5IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3Mv
aW9zL1dLR2VvbG9jYXRpb25Qcm92aWRlcklPUy5tbQorKysgYi9Tb3VyY2UvV2ViS2l0Mi9VSVBy
b2Nlc3MvaW9zL1dLR2VvbG9jYXRpb25Qcm92aWRlcklPUy5tbQpAQCAtMTE4LDcgKzExOCw3IEBA
IC0odm9pZClfc3RvcFVwZGF0aW5nCiB7CiAgICAgX2lzV2ViQ29yZUdlb2xvY2F0aW9uQWN0aXZl
ID0gTk87CiAgICAgW19jb3JlTG9jYXRpb25Qcm92aWRlciBzdG9wXTsKLSAgICBfbGFzdEFjdGl2
ZVBvc2l0aW9uLmNsZWFyKCk7CisgICAgX2xhc3RBY3RpdmVQb3NpdGlvbiA9IG51bGxwdHI7CiB9
CiAKIC0odm9pZClfc2V0RW5hYmxlSGlnaEFjY3VyYWN5OihCT09MKWVuYWJsZUhpZ2hBY2N1cmFj
eQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9JbmplY3RlZEJ1bmRsZS9t
YWMvSW5qZWN0ZWRCdW5kbGVNYWMubW0gYi9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL0luamVj
dGVkQnVuZGxlL21hYy9JbmplY3RlZEJ1bmRsZU1hYy5tbQppbmRleCA0ZTg2YWYxOWQ1YzlhY2Ux
NjJkNDBlMjZkMDA0Mjc5MGVkMWM0OGEyLi4yODU3NWVmNzQ5YjJkZGIzZDkwZmUyOTRkYmEzNzEy
ZTU1NGU4OGQ5IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL0luamVjdGVk
QnVuZGxlL21hYy9JbmplY3RlZEJ1bmRsZU1hYy5tbQorKysgYi9Tb3VyY2UvV2ViS2l0Mi9XZWJQ
cm9jZXNzL0luamVjdGVkQnVuZGxlL21hYy9JbmplY3RlZEJ1bmRsZU1hYy5tbQpAQCAtNTUsNyAr
NTUsNyBAQCBib29sIEluamVjdGVkQnVuZGxlOjppbml0aWFsaXplKGNvbnN0IFdlYlByb2Nlc3ND
cmVhdGlvblBhcmFtZXRlcnMmIHBhcmFtZXRlcnMsCiAgICAgICAgICAgICByZXR1cm4gZmFsc2U7
CiAgICAgICAgIH0KIAotICAgICAgICBtX3NhbmRib3hFeHRlbnNpb24gPSAwOworICAgICAgICBt
X3NhbmRib3hFeHRlbnNpb24gPSBudWxscHRyOwogICAgIH0KICAgICAKICAgICBSZXRhaW5QdHI8
Q0ZTdHJpbmdSZWY+IGluamVjdGVkQnVuZGxlUGF0aFN0ciA9IG1fcGF0aC5jcmVhdGVDRlN0cmlu
ZygpOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9OZXR3b3JrL1dlYlJl
c291cmNlTG9hZGVyLmNwcCBiL1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvTmV0d29yay9XZWJS
ZXNvdXJjZUxvYWRlci5jcHAKaW5kZXggODNkNmNhOGFhYWZmNjI1ODMyZTM4MjAwMWNmNmIwMDgw
NjJkNjQ5ZS4uMjUzOTdjM2JjOGU2NzFjYmQ1NTAyMGUzY2Q2OTczYzZiYTBhMjllNyAxMDA2NDQK
LS0tIGEvU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9OZXR3b3JrL1dlYlJlc291cmNlTG9hZGVy
LmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL05ldHdvcmsvV2ViUmVzb3VyY2VM
b2FkZXIuY3BwCkBAIC03Niw3ICs3Niw3IEBAIHZvaWQgV2ViUmVzb3VyY2VMb2FkZXI6OmNhbmNl
bFJlc291cmNlTG9hZGVyKCkKIAogdm9pZCBXZWJSZXNvdXJjZUxvYWRlcjo6ZGV0YWNoRnJvbUNv
cmVMb2FkZXIoKQogewotICAgIG1fY29yZUxvYWRlciA9IDA7CisgICAgbV9jb3JlTG9hZGVyID0g
bnVsbHB0cjsKIH0KIAogdm9pZCBXZWJSZXNvdXJjZUxvYWRlcjo6d2lsbFNlbmRSZXF1ZXN0KGNv
bnN0IFJlc291cmNlUmVxdWVzdCYgcHJvcG9zZWRSZXF1ZXN0LCBjb25zdCBSZXNvdXJjZVJlc3Bv
bnNlJiByZWRpcmVjdFJlc3BvbnNlKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdDIvV2ViUHJv
Y2Vzcy9QbHVnaW5zL05ldHNjYXBlL05ldHNjYXBlUGx1Z2luLmNwcCBiL1NvdXJjZS9XZWJLaXQy
L1dlYlByb2Nlc3MvUGx1Z2lucy9OZXRzY2FwZS9OZXRzY2FwZVBsdWdpbi5jcHAKaW5kZXggMGE3
Yjc0ZGU1YzVjNjYyYmQ3ZDExODRjNDYzZmM5NjI2YWI0MWVjZC4uYTM2ZTRiNDEzNDVkZWIwMTM1
MGEyNDkwZTcwNTgwOGY5NTM0OTA2NyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdDIvV2ViUHJv
Y2Vzcy9QbHVnaW5zL05ldHNjYXBlL05ldHNjYXBlUGx1Z2luLmNwcAorKysgYi9Tb3VyY2UvV2Vi
S2l0Mi9XZWJQcm9jZXNzL1BsdWdpbnMvTmV0c2NhcGUvTmV0c2NhcGVQbHVnaW4uY3BwCkBAIC0y
NzcsNyArMjc3LDcgQEAgdm9pZCBOZXRzY2FwZVBsdWdpbjo6Y2FuY2VsU3RyZWFtTG9hZChOZXRz
Y2FwZVBsdWdpblN0cmVhbSogcGx1Z2luU3RyZWFtKQogdm9pZCBOZXRzY2FwZVBsdWdpbjo6cmVt
b3ZlUGx1Z2luU3RyZWFtKE5ldHNjYXBlUGx1Z2luU3RyZWFtKiBwbHVnaW5TdHJlYW0pCiB7CiAg
ICAgaWYgKHBsdWdpblN0cmVhbSA9PSBtX21hbnVhbFN0cmVhbSkgewotICAgICAgICBtX21hbnVh
bFN0cmVhbSA9IDA7CisgICAgICAgIG1fbWFudWFsU3RyZWFtID0gbnVsbHB0cjsKICAgICAgICAg
cmV0dXJuOwogICAgIH0KIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9Q
bHVnaW5zL1BERi9QREZQbHVnaW4ubW0gYi9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL1BsdWdp
bnMvUERGL1BERlBsdWdpbi5tbQppbmRleCBkY2NjNTQxMDVmYmE4NzE5ZTVmYzM4ZGY0YzUwMmRk
ZDI3MjllZWNkLi40NzA2MWQ2ZDYxNGQyNjFkNzMzOWY1NzBmZTZiNTgwMDA5NmYzZTk0IDEwMDY0
NAotLS0gYS9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL1BsdWdpbnMvUERGL1BERlBsdWdpbi5t
bQorKysgYi9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL1BsdWdpbnMvUERGL1BERlBsdWdpbi5t
bQpAQCAtMTEwMyw4ICsxMTAzLDggQEAgdm9pZCBQREZQbHVnaW46OmRlc3Ryb3koKQogICAgICAg
ICAgICAgZnJhbWVWaWV3LT5yZW1vdmVTY3JvbGxhYmxlQXJlYSh0aGlzKTsKICAgICB9CiAKLSAg
ICBtX2FjdGl2ZUFubm90YXRpb24gPSAwOwotICAgIG1fYW5ub3RhdGlvbkNvbnRhaW5lciA9IDA7
CisgICAgbV9hY3RpdmVBbm5vdGF0aW9uID0gbnVsbHB0cjsKKyAgICBtX2Fubm90YXRpb25Db250
YWluZXIgPSBudWxscHRyOwogCiAgICAgZGVzdHJveVNjcm9sbGJhcihIb3Jpem9udGFsU2Nyb2xs
YmFyKTsKICAgICBkZXN0cm95U2Nyb2xsYmFyKFZlcnRpY2FsU2Nyb2xsYmFyKTsKQEAgLTE2MDQs
MTQgKzE2MDQsMTQgQEAgdm9pZCBQREZQbHVnaW46OnNldEFjdGl2ZUFubm90YXRpb24oUERGQW5u
b3RhdGlvbiAqYW5ub3RhdGlvbikKIAogICAgIGlmIChhbm5vdGF0aW9uKSB7CiAgICAgICAgIGlm
IChbYW5ub3RhdGlvbiBpc0tpbmRPZkNsYXNzOnBkZkFubm90YXRpb25UZXh0V2lkZ2V0Q2xhc3Mo
KV0gJiYgc3RhdGljX2Nhc3Q8UERGQW5ub3RhdGlvblRleHRXaWRnZXQgKj4oYW5ub3RhdGlvbiku
aXNSZWFkT25seSkgewotICAgICAgICAgICAgbV9hY3RpdmVBbm5vdGF0aW9uID0gMDsKKyAgICAg
ICAgICAgIG1fYWN0aXZlQW5ub3RhdGlvbiA9IG51bGxwdHI7CiAgICAgICAgICAgICByZXR1cm47
CiAgICAgICAgIH0KIAogICAgICAgICBtX2FjdGl2ZUFubm90YXRpb24gPSBQREZQbHVnaW5Bbm5v
dGF0aW9uOjpjcmVhdGUoYW5ub3RhdGlvbiwgbV9wZGZMYXllckNvbnRyb2xsZXIuZ2V0KCksIHRo
aXMpOwogICAgICAgICBtX2FjdGl2ZUFubm90YXRpb24tPmF0dGFjaChtX2Fubm90YXRpb25Db250
YWluZXIuZ2V0KCkpOwogICAgIH0gZWxzZQotICAgICAgICBtX2FjdGl2ZUFubm90YXRpb24gPSAw
OworICAgICAgICBtX2FjdGl2ZUFubm90YXRpb24gPSBudWxscHRyOwogfQogCiBib29sIFBERlBs
dWdpbjo6c3VwcG9ydHNGb3JtcygpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9j
ZXNzL1BsdWdpbnMvUGx1Z2luVmlldy5jcHAgYi9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL1Bs
dWdpbnMvUGx1Z2luVmlldy5jcHAKaW5kZXggNmE4MzNmMTMxMTEzNTMwNzZhY2FlMTI4MTQzM2Iy
ZjUxMTliYjI0Ni4uMmEwZmQ5NzMxMzBiMjEyNjc4YjA1NTRjN2Q4YmViNTVjNjg1OTY4ZCAxMDA2
NDQKLS0tIGEvU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9QbHVnaW5zL1BsdWdpblZpZXcuY3Bw
CisrKyBiL1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvUGx1Z2lucy9QbHVnaW5WaWV3LmNwcApA
QCAtMTY2LDcgKzE2Niw3IEBAIHZvaWQgUGx1Z2luVmlldzo6U3RyZWFtOjpjYW5jZWwoKQogCiAg
ICAgbV9zdHJlYW1XYXNDYW5jZWxsZWQgPSB0cnVlOwogICAgIG1fbG9hZGVyLT5jYW5jZWwobV9s
b2FkZXItPmNhbmNlbGxlZEVycm9yKCkpOwotICAgIG1fbG9hZGVyID0gMDsKKyAgICBtX2xvYWRl
ciA9IG51bGxwdHI7CiB9CiAKIHN0YXRpYyBTdHJpbmcgYnVpbGRIVFRQSGVhZGVycyhjb25zdCBS
ZXNvdXJjZVJlc3BvbnNlJiByZXNwb25zZSwgbG9uZyBsb25nJiBleHBlY3RlZENvbnRlbnRMZW5n
dGgpCkBAIC02MDQsNyArNjA0LDcgQEAgdm9pZCBQbHVnaW5WaWV3Ojppbml0aWFsaXplUGx1Z2lu
KCkKIAogdm9pZCBQbHVnaW5WaWV3OjpkaWRGYWlsVG9Jbml0aWFsaXplUGx1Z2luKCkKIHsKLSAg
ICBtX3BsdWdpbiA9IDA7CisgICAgbV9wbHVnaW4gPSBudWxscHRyOwogCiAjaWYgRU5BQkxFKE5F
VFNDQVBFX1BMVUdJTl9BUEkpCiAgICAgU3RyaW5nIGZyYW1lVVJMU3RyaW5nID0gZnJhbWUoKS0+
bG9hZGVyKCkuZG9jdW1lbnRMb2FkZXIoKS0+cmVzcG9uc2VVUkwoKS5zdHJpbmcoKTsKZGlmZiAt
LWdpdCBhL1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvV2ViUGFnZS9XZWJQYWdlLmNwcCBiL1Nv
dXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvV2ViUGFnZS9XZWJQYWdlLmNwcAppbmRleCAxNTU0ZGJj
Zjc0OTZjNzZkOTcyMDMzYjhkMzkxMzY0YWI2ZmUxZWI4Li43YjhhOTI2MDA3ZGQxODA3ODg1ZGEy
ODExNmM4MmI5OGIzMTgzMjY0IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNz
L1dlYlBhZ2UvV2ViUGFnZS5jcHAKKysrIGIvU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9XZWJQ
YWdlL1dlYlBhZ2UuY3BwCkBAIC05MzAsMjMgKzkzMCwyMyBAQCB2b2lkIFdlYlBhZ2U6OmNsb3Nl
KCkKICAgICB9CiAKICNpZiBFTkFCTEUoRlVMTFNDUkVFTl9BUEkpCi0gICAgbV9mdWxsU2NyZWVu
TWFuYWdlciA9IDA7CisgICAgbV9mdWxsU2NyZWVuTWFuYWdlciA9IG51bGxwdHI7CiAjZW5kaWYK
IAogICAgIGlmIChtX2FjdGl2ZVBvcHVwTWVudSkgewogICAgICAgICBtX2FjdGl2ZVBvcHVwTWVu
dS0+ZGlzY29ubmVjdEZyb21QYWdlKCk7Ci0gICAgICAgIG1fYWN0aXZlUG9wdXBNZW51ID0gMDsK
KyAgICAgICAgbV9hY3RpdmVQb3B1cE1lbnUgPSBudWxscHRyOwogICAgIH0KIAogICAgIGlmICht
X2FjdGl2ZU9wZW5QYW5lbFJlc3VsdExpc3RlbmVyKSB7CiAgICAgICAgIG1fYWN0aXZlT3BlblBh
bmVsUmVzdWx0TGlzdGVuZXItPmRpc2Nvbm5lY3RGcm9tUGFnZSgpOwotICAgICAgICBtX2FjdGl2
ZU9wZW5QYW5lbFJlc3VsdExpc3RlbmVyID0gMDsKKyAgICAgICAgbV9hY3RpdmVPcGVuUGFuZWxS
ZXN1bHRMaXN0ZW5lciA9IG51bGxwdHI7CiAgICAgfQogCiAjaWYgRU5BQkxFKElOUFVUX1RZUEVf
Q09MT1IpCiAgICAgaWYgKG1fYWN0aXZlQ29sb3JDaG9vc2VyKSB7CiAgICAgICAgIG1fYWN0aXZl
Q29sb3JDaG9vc2VyLT5kaXNjb25uZWN0RnJvbVBhZ2UoKTsKLSAgICAgICAgbV9hY3RpdmVDb2xv
ckNob29zZXIgPSAwOworICAgICAgICBtX2FjdGl2ZUNvbG9yQ2hvb3NlciA9IG51bGxwdHI7CiAg
ICAgfQogI2VuZGlmCiAKQEAgLTMyNzAsNyArMzI3MCw3IEBAIHZvaWQgV2ViUGFnZTo6Y291bnRT
dHJpbmdNYXRjaGVzKGNvbnN0IFN0cmluZyYgc3RyaW5nLCB1aW50MzJfdCBvcHRpb25zLCB1aW50
MzJfCiB2b2lkIFdlYlBhZ2U6OmRpZENoYW5nZVNlbGVjdGVkSW5kZXhGb3JBY3RpdmVQb3B1cE1l
bnUoaW50MzJfdCBuZXdJbmRleCkKIHsKICAgICBjaGFuZ2VTZWxlY3RlZEluZGV4KG5ld0luZGV4
KTsKLSAgICBtX2FjdGl2ZVBvcHVwTWVudSA9IDA7CisgICAgbV9hY3RpdmVQb3B1cE1lbnUgPSBu
dWxscHRyOwogfQogCiB2b2lkIFdlYlBhZ2U6OmNoYW5nZVNlbGVjdGVkSW5kZXgoaW50MzJfdCBp
bmRleCkKQEAgLTMzMDYsMTIgKzMzMDYsMTIgQEAgdm9pZCBXZWJQYWdlOjpkaWRDaG9vc2VGaWxl
c0Zvck9wZW5QYW5lbChjb25zdCBWZWN0b3I8U3RyaW5nPiYgZmlsZXMpCiAgICAgICAgIHJldHVy
bjsKIAogICAgIG1fYWN0aXZlT3BlblBhbmVsUmVzdWx0TGlzdGVuZXItPmRpZENob29zZUZpbGVz
KGZpbGVzKTsKLSAgICBtX2FjdGl2ZU9wZW5QYW5lbFJlc3VsdExpc3RlbmVyID0gMDsKKyAgICBt
X2FjdGl2ZU9wZW5QYW5lbFJlc3VsdExpc3RlbmVyID0gbnVsbHB0cjsKIH0KIAogdm9pZCBXZWJQ
YWdlOjpkaWRDYW5jZWxGb3JPcGVuUGFuZWwoKQogewotICAgIG1fYWN0aXZlT3BlblBhbmVsUmVz
dWx0TGlzdGVuZXIgPSAwOworICAgIG1fYWN0aXZlT3BlblBhbmVsUmVzdWx0TGlzdGVuZXIgPSBu
dWxscHRyOwogfQogCiAjaWYgRU5BQkxFKFNBTkRCT1hfRVhURU5TSU9OUykKQEAgLTM0MTUsNyAr
MzQxNSw3IEBAIHZvaWQgV2ViUGFnZTo6ZGlkU2VsZWN0SXRlbUZyb21BY3RpdmVDb250ZXh0TWVu
dShjb25zdCBXZWJDb250ZXh0TWVudUl0ZW1EYXRhJiBpCiAgICAgICAgIHJldHVybjsKIAogICAg
IG1fY29udGV4dE1lbnUtPml0ZW1TZWxlY3RlZChpdGVtKTsKLSAgICBtX2NvbnRleHRNZW51ID0g
MDsKKyAgICBtX2NvbnRleHRNZW51ID0gbnVsbHB0cjsKIH0KICNlbmRpZgogCmRpZmYgLS1naXQg
YS9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL1dlYlBhZ2UvZ3RrL1dlYlByaW50T3BlcmF0aW9u
R3RrLmNwcCBiL1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvV2ViUGFnZS9ndGsvV2ViUHJpbnRP
cGVyYXRpb25HdGsuY3BwCmluZGV4IDU1ZWNkYjJiNDZlNjNhYmM4ZGYxYTEyYTgxMWQ1YTc1NWI3
M2EwOGEuLmI2MjA1ZGI5NDk1MDEzZTRhOGUyMjFjZDZiZmI2ZDg0OTgzODMwMTIgMTAwNjQ0Ci0t
LSBhL1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvV2ViUGFnZS9ndGsvV2ViUHJpbnRPcGVyYXRp
b25HdGsuY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvV2ViUGFnZS9ndGsvV2Vi
UHJpbnRPcGVyYXRpb25HdGsuY3BwCkBAIC02OTksNyArNjk5LDcgQEAgdm9pZCBXZWJQcmludE9w
ZXJhdGlvbkd0azo6cHJpbnRQYWdlc0RvbmUoKQogewogICAgIG1fcHJpbnRQYWdlc0lkbGVJZCA9
IDA7CiAgICAgZW5kUHJpbnQoKTsKLSAgICBtX2NhaXJvQ29udGV4dCA9IDA7CisgICAgbV9jYWly
b0NvbnRleHQgPSBudWxscHRyOwogfQogCiB2b2lkIFdlYlByaW50T3BlcmF0aW9uR3RrOjpwcmlu
dERvbmUoY29uc3QgV2ViQ29yZTo6UmVzb3VyY2VFcnJvciYgZXJyb3IpCmRpZmYgLS1naXQgYS9T
b3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL1dlYlBhZ2UvaW9zL1dlYlBhZ2VJT1MubW0gYi9Tb3Vy
Y2UvV2ViS2l0Mi9XZWJQcm9jZXNzL1dlYlBhZ2UvaW9zL1dlYlBhZ2VJT1MubW0KaW5kZXggMjNk
ZTgzZWZhZDY4OTQ2MjQ3NTYwZjgxMWQwODhjZDI5NzUyYTZhNy4uOWY0Y2VjNzIzMWRkNDYyNzE1
NjNkNTJiNmE0ZTJiOWQzMjc4ODdjNiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdDIvV2ViUHJv
Y2Vzcy9XZWJQYWdlL2lvcy9XZWJQYWdlSU9TLm1tCisrKyBiL1NvdXJjZS9XZWJLaXQyL1dlYlBy
b2Nlc3MvV2ViUGFnZS9pb3MvV2ViUGFnZUlPUy5tbQpAQCAtMTk3OCw3ICsxOTc4LDcgQEAgdm9p
ZCBXZWJQYWdlOjpzeW5jQXBwbHlBdXRvY29ycmVjdGlvbihjb25zdCBTdHJpbmcmIGNvcnJlY3Rp
b24sIGNvbnN0IFN0cmluZyYgb3IKICAgICAgICAgd2hpbGUgKHRleHRGb3JSYW5nZS5sZW5ndGgo
KSAmJiB0ZXh0Rm9yUmFuZ2UubGVuZ3RoKCkgPiBvcmlnaW5hbFRleHQubGVuZ3RoKCkgJiYgbG9v
cENvdW50IDwgbWF4UG9zaXRpb25zQXR0ZW1wdHMpIHsKICAgICAgICAgICAgIHBvc2l0aW9uID0g
cG9zaXRpb24ubmV4dCgpOwogICAgICAgICAgICAgaWYgKHBvc2l0aW9uLmlzTm90TnVsbCgpICYm
IHBvc2l0aW9uID49IGZyYW1lLnNlbGVjdGlvbigpLnNlbGVjdGlvbigpLnN0YXJ0KCkpCi0gICAg
ICAgICAgICAgICAgcmFuZ2UgPSBOVUxMOworICAgICAgICAgICAgICAgIHJhbmdlID0gbnVsbHB0
cjsKICAgICAgICAgICAgIGVsc2UKICAgICAgICAgICAgICAgICByYW5nZSA9IFJhbmdlOjpjcmVh
dGUoKmZyYW1lLmRvY3VtZW50KCksIHBvc2l0aW9uLCBmcmFtZS5zZWxlY3Rpb24oKS5zZWxlY3Rp
b24oKS5zdGFydCgpKTsKICAgICAgICAgICAgIHRleHRGb3JSYW5nZSA9IChyYW5nZSkgPyBwbGFp
blRleHRSZXBsYWNpbmdOb0JyZWFrU3BhY2UocmFuZ2UuZ2V0KCkpIDogZW1wdHlTdHJpbmcoKTsK
QEAgLTI0NTgsNyArMjQ1OCw3IEBAIHZvaWQgV2ViUGFnZTo6ZWxlbWVudERpZEJsdXIoV2ViQ29y
ZTo6Tm9kZSogbm9kZSkKICAgICAgICAgICAgICAgICBzZW5kKE1lc3NhZ2VzOjpXZWJQYWdlUHJv
eHk6OlN0b3BBc3Npc3RpbmdOb2RlKCkpOwogICAgICAgICAgICAgbV9oYXNQZW5kaW5nQmx1ck5v
dGlmaWNhdGlvbiA9IGZhbHNlOwogICAgICAgICB9KTsKLSAgICAgICAgbV9hc3Npc3RlZE5vZGUg
PSAwOworICAgICAgICBtX2Fzc2lzdGVkTm9kZSA9IG51bGxwdHI7CiAgICAgfQogfQogCmRpZmYg
LS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL1dlYlByb2Nlc3MuY3BwIGIvU291cmNl
L1dlYktpdDIvV2ViUHJvY2Vzcy9XZWJQcm9jZXNzLmNwcAppbmRleCBhOTdiYzIxYTk4MTU0OWFj
Y2Q3ZmVkZmIyODMzYWVjODRlZWRkMDdhLi5iNGM5ZTBlZTg4MWZlNzMxMDVkMzVlMWYxMDI0NDUx
YTNhMmI5MGVhIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL1dlYlByb2Nl
c3MuY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvV2ViUHJvY2Vzcy5jcHAKQEAg
LTEwMzQsNyArMTAzNCw3IEBAIHZvaWQgV2ViUHJvY2Vzczo6bmV0d29ya1Byb2Nlc3NDb25uZWN0
aW9uQ2xvc2VkKE5ldHdvcmtQcm9jZXNzQ29ubmVjdGlvbiogY29ubmVjCiAgICAgQVNTRVJUKG1f
bmV0d29ya1Byb2Nlc3NDb25uZWN0aW9uKTsKICAgICBBU1NFUlRfVU5VU0VEKGNvbm5lY3Rpb24s
IG1fbmV0d29ya1Byb2Nlc3NDb25uZWN0aW9uID09IGNvbm5lY3Rpb24pOwogCi0gICAgbV9uZXR3
b3JrUHJvY2Vzc0Nvbm5lY3Rpb24gPSAwOworICAgIG1fbmV0d29ya1Byb2Nlc3NDb25uZWN0aW9u
ID0gbnVsbHB0cjsKICAgICAKICAgICBtX3dlYlJlc291cmNlTG9hZFNjaGVkdWxlci0+bmV0d29y
a1Byb2Nlc3NDcmFzaGVkKCk7CiB9CkBAIC0xMDUxLDcgKzEwNTEsNyBAQCB2b2lkIFdlYlByb2Nl
c3M6OndlYlRvRGF0YWJhc2VQcm9jZXNzQ29ubmVjdGlvbkNsb3NlZChXZWJUb0RhdGFiYXNlUHJv
Y2Vzc0Nvbm5lYwogICAgIEFTU0VSVChtX3dlYlRvRGF0YWJhc2VQcm9jZXNzQ29ubmVjdGlvbik7
CiAgICAgQVNTRVJUKG1fd2ViVG9EYXRhYmFzZVByb2Nlc3NDb25uZWN0aW9uID09IGNvbm5lY3Rp
b24pOwogCi0gICAgbV93ZWJUb0RhdGFiYXNlUHJvY2Vzc0Nvbm5lY3Rpb24gPSAwOworICAgIG1f
d2ViVG9EYXRhYmFzZVByb2Nlc3NDb25uZWN0aW9uID0gbnVsbHB0cjsKIH0KIAogV2ViVG9EYXRh
YmFzZVByb2Nlc3NDb25uZWN0aW9uKiBXZWJQcm9jZXNzOjp3ZWJUb0RhdGFiYXNlUHJvY2Vzc0Nv
bm5lY3Rpb24oKQpkaWZmIC0tZ2l0IGEvVG9vbHMvQ2hhbmdlTG9nIGIvVG9vbHMvQ2hhbmdlTG9n
CmluZGV4IDk4NzYwY2NmNWE0MTk3NGIwOGM4MjA5OGU1NGQyODg4YWY0NzE3YTguLjY5ZWVmY2Y4
ODNmZDMxOGM2MTE3ZGVlMGZhZjBlYWM3YjM2NmQzZjEgMTAwNjQ0Ci0tLSBhL1Rvb2xzL0NoYW5n
ZUxvZworKysgYi9Ub29scy9DaGFuZ2VMb2cKQEAgLTEsMyArMSwxMiBAQAorMjAxNS0wNy0wMyAg
Q2hyaXMgRHVtZXogIDxjZHVtZXpAYXBwbGUuY29tPgorCisgICAgICAgIERyb3AgUmVmUHRyOjpj
bGVhcigpIG1ldGhvZAorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5j
Z2k/aWQ9MTQ2NTU2CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAg
ICAgICAgRHJvcCBSZWZQdHI6OmNsZWFyKCkgbWV0aG9kIGluIGZhdm9yIG9mICI9IG51bGxwdHI7
IiBwYXR0ZXJuLgorCiAyMDE1LTA3LTAzICBEYW4gQmVybnN0ZWluICA8bWl0ekBhcHBsZS5jb20+
CiAKICAgICAgICAgW1hjb2RlXSBVcGRhdGUgc29tZSBidWlsZCBzZXR0aW5ncyBhcyByZWNvbW1l
bmRlZCBieSBYY29kZSA3CmRpZmYgLS1naXQgYS9Ub29scy9EdW1wUmVuZGVyVHJlZS9tYWMvRHVt
cFJlbmRlclRyZWUubW0gYi9Ub29scy9EdW1wUmVuZGVyVHJlZS9tYWMvRHVtcFJlbmRlclRyZWUu
bW0KaW5kZXggYmNjZDRhOTExMmU2NzJjMWNjMmIyZDkzMGZmMGEzZWUwM2IwM2UwNi4uMjc2ZGY4
Yjg5MmVjNTI3YTc0NmJmM2ZhNmRkYzY0ZWFkMzc3N2MxNSAxMDA2NDQKLS0tIGEvVG9vbHMvRHVt
cFJlbmRlclRyZWUvbWFjL0R1bXBSZW5kZXJUcmVlLm1tCisrKyBiL1Rvb2xzL0R1bXBSZW5kZXJU
cmVlL21hYy9EdW1wUmVuZGVyVHJlZS5tbQpAQCAtMjA2NCw3ICsyMDY0LDcgQEAgc3RhdGljIHZv
aWQgcnVuVGVzdChjb25zdCBzdHJpbmcmIGlucHV0TGluZSkKICAgICBBU1NFUlQoQ0ZBcnJheUdl
dENvdW50KG9wZW5XaW5kb3dzUmVmKSA9PSAxKTsKICAgICBBU1NFUlQoQ0ZBcnJheUdldFZhbHVl
QXRJbmRleChvcGVuV2luZG93c1JlZiwgMCkgPT0gW1ttYWluRnJhbWUgd2ViVmlld10gd2luZG93
XSk7CiAKLSAgICBnVGVzdFJ1bm5lci5jbGVhcigpOworICAgIGdUZXN0UnVubmVyID0gbnVsbHB0
cjsKIAogICAgIGlmIChpZ25vcmVXZWJDb3JlTm9kZUxlYWtzKQogICAgICAgICBbV2ViQ29yZVN0
YXRpc3RpY3Mgc3RvcElnbm9yaW5nV2ViQ29yZU5vZGVMZWFrc107CmRpZmYgLS1naXQgYS9Ub29s
cy9EdW1wUmVuZGVyVHJlZS93aW4vRHVtcFJlbmRlclRyZWUuY3BwIGIvVG9vbHMvRHVtcFJlbmRl
clRyZWUvd2luL0R1bXBSZW5kZXJUcmVlLmNwcAppbmRleCBkOTg2Y2JmZDM3MzQwMjQ2NmY0MGI4
ZTY1YTQwNDY5YmVjZTBhOGRjLi5jODQzNTQ3MjNjYmE5NWY0YTE1YTQxNjA3NjMyOTNiZDY3NjY4
ZjI5IDEwMDY0NAotLS0gYS9Ub29scy9EdW1wUmVuZGVyVHJlZS93aW4vRHVtcFJlbmRlclRyZWUu
Y3BwCisrKyBiL1Rvb2xzL0R1bXBSZW5kZXJUcmVlL3dpbi9EdW1wUmVuZGVyVHJlZS5jcHAKQEAg
LTExODMsNyArMTE4Myw3IEBAIHN0YXRpYyB2b2lkIHJ1blRlc3QoY29uc3Qgc3RyaW5nJiBpbnB1
dExpbmUpCiAKIGV4aXQ6CiAgICAgcmVtb3ZlRm9udEZhbGxiYWNrSWZQcmVzZW50KGZhbGxiYWNr
UGF0aCk7Ci0gICAgOjpnVGVzdFJ1bm5lci5jbGVhcigpOworICAgIDo6Z1Rlc3RSdW5uZXIgPSBu
dWxscHRyOwogCiAgICAgZnB1dHMoIiNFT0ZcbiIsIHN0ZGVycik7CiAgICAgZmZsdXNoKHN0ZGVy
cik7CmRpZmYgLS1naXQgYS9Ub29scy9UZXN0V2ViS2l0QVBJL1Rlc3RzL1dURi9SZWZQdHIuY3Bw
IGIvVG9vbHMvVGVzdFdlYktpdEFQSS9UZXN0cy9XVEYvUmVmUHRyLmNwcAppbmRleCBmYzkyMjQ2
NzI3ODQ2NDFkMWQzNzQ5YzIwNzllMTViYmQzZTg3MjZjLi5iNzI2ZDdkZGYwM2NjMmZkNmEyMGUx
NGQ5YjQwMjNjZjI2YTdkNDM4IDEwMDY0NAotLS0gYS9Ub29scy9UZXN0V2ViS2l0QVBJL1Rlc3Rz
L1dURi9SZWZQdHIuY3BwCisrKyBiL1Rvb2xzL1Rlc3RXZWJLaXRBUEkvVGVzdHMvV1RGL1JlZlB0
ci5jcHAKQEAgLTEwMiw3ICsxMDIsNyBAQCBURVNUKFdURl9SZWZQdHIsIEJhc2ljKQogICAgIHsK
ICAgICAgICAgUmVmUHRyPFJlZkxvZ2dlcj4gcHRyKCZhKTsKICAgICAgICAgQVNTRVJUX0VRKCZh
LCBwdHIuZ2V0KCkpOwotICAgICAgICBwdHIuY2xlYXIoKTsKKyAgICAgICAgcHRyID0gbnVsbHB0
cjsKICAgICAgICAgQVNTRVJUX0VRKG51bGxwdHIsIHB0ci5nZXQoKSk7CiAgICAgfQogICAgIEFT
U0VSVF9TVFJFUSgicmVmKGEpIGRlcmVmKGEpICIsIHRha2VMb2dTdHIoKS5jX3N0cigpKTsK
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>256139</attachid>
            <date>2015-07-03 23:34:17 -0700</date>
            <delta_ts>2015-07-04 12:43:21 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-146556-20150703233321.patch</filename>
            <type>text/plain</type>
            <size>177741</size>
            <attacher name="Chris Dumez">cdumez</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTg2MjcxCmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlw
dENvcmUvQ2hhbmdlTG9nIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL0NoYW5nZUxvZwppbmRleCA3
NThjNmEzYWY4NTAzMTIzOGRiZjUzY2ZjMjg4NTc5ODM0OGUzYTJiLi4xMDE2ZTQ4ODM0ODAxMjg3
MDYxYjUxMzZjNmU4MzkxZWE4NGQxMzk2IDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENv
cmUvQ2hhbmdlTG9nCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9DaGFuZ2VMb2cKQEAgLTEs
MyArMSwxMiBAQAorMjAxNS0wNy0wMyAgQ2hyaXMgRHVtZXogIDxjZHVtZXpAYXBwbGUuY29tPgor
CisgICAgICAgIERyb3AgUmVmUHRyOjpjbGVhcigpIG1ldGhvZAorICAgICAgICBodHRwczovL2J1
Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTQ2NTU2CisKKyAgICAgICAgUmV2aWV3ZWQg
YnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgRHJvcCBSZWZQdHI6OmNsZWFyKCkgbWV0aG9k
IGluIGZhdm9yIG9mICI9IG51bGxwdHI7IiBwYXR0ZXJuLgorCiAyMDE1LTA3LTAzICBEYW4gQmVy
bnN0ZWluICA8bWl0ekBhcHBsZS5jb20+CiAKICAgICAgICAgW1hjb2RlXSBVcGRhdGUgc29tZSBi
dWlsZCBzZXR0aW5ncyBhcyByZWNvbW1lbmRlZCBieSBYY29kZSA3CmRpZmYgLS1naXQgYS9Tb3Vy
Y2UvV1RGL0NoYW5nZUxvZyBiL1NvdXJjZS9XVEYvQ2hhbmdlTG9nCmluZGV4IDcxMDIyNmE3ZTZj
Nzg3NjQ2YWZhMDllN2ViYmNlZDA4ZDg1M2I0N2MuLjlhNDkxMmEwMDJkYjcwYmUxMTk5M2UxNTcw
YzU0YmIzMjQ4MDBjYjggMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XVEYvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XVEYvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMTYgQEAKKzIwMTUtMDctMDMgIENocmlzIER1
bWV6ICA8Y2R1bWV6QGFwcGxlLmNvbT4KKworICAgICAgICBEcm9wIFJlZlB0cjo6Y2xlYXIoKSBt
ZXRob2QKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTE0
NjU1NgorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIERy
b3AgUmVmUHRyOjpjbGVhcigpIG1ldGhvZCBpbiBmYXZvciBvZiAiPSBudWxscHRyOyIgcGF0dGVy
bi4KKyAgICAgICAgQWxzbyBtYWRlIHRoZSAiPSBudWxscHRyOyIgcGF0dGVybiBhcyBlZmZpY2ll
bnQgYXMgY2xlYXIoKQorICAgICAgICBieSBwcm92aWRpbmcgYSBvcGVyYXRvcj0obnVsbHB0cl90
KSBvdmVybG9hZC4gTG9jYWwgbWljcm8tCisgICAgICAgIGJlbmNobWFya2luZyBzaG93ZWQgdGhh
dCAiPSBudWxscHRyOyIgdXNlZCB0byBiZSB+MS43JSBzbG93ZXIKKyAgICAgICAgdGhhbiBjbGVh
cigpLgorCiAyMDE1LTA3LTAzICBEYW4gQmVybnN0ZWluICA8bWl0ekBhcHBsZS5jb20+CiAKICAg
ICAgICAgW1hjb2RlXSBVcGRhdGUgc29tZSBidWlsZCBzZXR0aW5ncyBhcyByZWNvbW1lbmRlZCBi
eSBYY29kZSA3CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cgYi9Tb3VyY2Uv
V2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggY2ZhNDExOWI1YWM2NmMxMDk1YjRmMzY5MDZmYjliYWQ5
YTA4MmRjNy4uOWY0NmU2NGVlMWNkZmVjMTA3OTEzNGE1OGNkMzc1MzYwOTY0Zjk4OSAxMDA2NDQK
LS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1NvdXJjZS9XZWJDb3JlL0NoYW5n
ZUxvZwpAQCAtMSwzICsxLDEyIEBACisyMDE1LTA3LTAzICBDaHJpcyBEdW1leiAgPGNkdW1lekBh
cHBsZS5jb20+CisKKyAgICAgICAgRHJvcCBSZWZQdHI6OmNsZWFyKCkgbWV0aG9kCisgICAgICAg
IGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0xNDY1NTYKKworICAgICAg
ICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICBEcm9wIFJlZlB0cjo6Y2xl
YXIoKSBtZXRob2QgaW4gZmF2b3Igb2YgIj0gbnVsbHB0cjsiIHBhdHRlcm4uCisKIDIwMTUtMDct
MDMgIERhbiBCZXJuc3RlaW4gIDxtaXR6QGFwcGxlLmNvbT4KIAogICAgICAgICBUcmllZCB0byBm
aXggdGhlIGlPUyBidWlsZC4KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvQ2hhbmdlTG9nIGIv
U291cmNlL1dlYktpdC9DaGFuZ2VMb2cKaW5kZXggNzNhZDUwMDYxOWY1ZmQwOWJkNTUxMWNlNGZl
NTMyMjIxOWQyYzIyZi4uODY4NjgyMTcyNzUwMTkyYzZmZmQ0MzI2YzA5ODZlMWQ4Yjk4MzM0YyAx
MDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9DaGFuZ2VMb2cKKysrIGIvU291cmNlL1dlYktpdC9D
aGFuZ2VMb2cKQEAgLTEsMyArMSwxMiBAQAorMjAxNS0wNy0wMyAgQ2hyaXMgRHVtZXogIDxjZHVt
ZXpAYXBwbGUuY29tPgorCisgICAgICAgIERyb3AgUmVmUHRyOjpjbGVhcigpIG1ldGhvZAorICAg
ICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTQ2NTU2CisKKyAg
ICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgRHJvcCBSZWZQdHI6
OmNsZWFyKCkgbWV0aG9kIGluIGZhdm9yIG9mICI9IG51bGxwdHI7IiBwYXR0ZXJuLgorCiAyMDE1
LTA3LTAzICBEYW4gQmVybnN0ZWluICA8bWl0ekBhcHBsZS5jb20+CiAKICAgICAgICAgW1hjb2Rl
XSBVcGRhdGUgc29tZSBidWlsZCBzZXR0aW5ncyBhcyByZWNvbW1lbmRlZCBieSBYY29kZSA3CmRp
ZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L21hYy9DaGFuZ2VMb2cgYi9Tb3VyY2UvV2ViS2l0L21h
Yy9DaGFuZ2VMb2cKaW5kZXggYjFjMDhjNDcyYTY5MDVjNmJjOGUyYjkxOTNmZGI1NGQ4Zjk4YTQ0
Ny4uYjkxODRjNWNlYzgwZjg1YTEyYWUxYjZhNjA4MjVlNzhhNDQyY2RhYiAxMDA2NDQKLS0tIGEv
U291cmNlL1dlYktpdC9tYWMvQ2hhbmdlTG9nCisrKyBiL1NvdXJjZS9XZWJLaXQvbWFjL0NoYW5n
ZUxvZwpAQCAtMSwzICsxLDEyIEBACisyMDE1LTA3LTAzICBDaHJpcyBEdW1leiAgPGNkdW1lekBh
cHBsZS5jb20+CisKKyAgICAgICAgRHJvcCBSZWZQdHI6OmNsZWFyKCkgbWV0aG9kCisgICAgICAg
IGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0xNDY1NTYKKworICAgICAg
ICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICBEcm9wIFJlZlB0cjo6Y2xl
YXIoKSBtZXRob2QgaW4gZmF2b3Igb2YgIj0gbnVsbHB0cjsiIHBhdHRlcm4uCisKIDIwMTUtMDct
MDMgIERhbiBCZXJuc3RlaW4gIDxtaXR6QGFwcGxlLmNvbT4KIAogICAgICAgICBbWGNvZGVdIFVw
ZGF0ZSBzb21lIGJ1aWxkIHNldHRpbmdzIGFzIHJlY29tbWVuZGVkIGJ5IFhjb2RlIDcKZGlmZiAt
LWdpdCBhL1NvdXJjZS9XZWJLaXQvd2luL0NoYW5nZUxvZyBiL1NvdXJjZS9XZWJLaXQvd2luL0No
YW5nZUxvZwppbmRleCAxMTQyODU4YWM5NGI1NjZjNGIwZmMzOWJiODVjZDRlYjA3ZDk5ZWZkLi41
NjJhMTJiZjQ1ODIxMTI3YTZiMTg5YjRkZTVjNjYzZjY2YjdmOWU2IDEwMDY0NAotLS0gYS9Tb3Vy
Y2UvV2ViS2l0L3dpbi9DaGFuZ2VMb2cKKysrIGIvU291cmNlL1dlYktpdC93aW4vQ2hhbmdlTG9n
CkBAIC0xLDMgKzEsMTIgQEAKKzIwMTUtMDctMDMgIENocmlzIER1bWV6ICA8Y2R1bWV6QGFwcGxl
LmNvbT4KKworICAgICAgICBEcm9wIFJlZlB0cjo6Y2xlYXIoKSBtZXRob2QKKyAgICAgICAgaHR0
cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTE0NjU1NgorCisgICAgICAgIFJl
dmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIERyb3AgUmVmUHRyOjpjbGVhcigp
IG1ldGhvZCBpbiBmYXZvciBvZiAiPSBudWxscHRyOyIgcGF0dGVybi4KKwogMjAxNS0wNi0zMCAg
U2ltb24gRnJhc2VyICA8c2ltb24uZnJhc2VyQGFwcGxlLmNvbT4KIAogICAgICAgICBGaXggTWFj
IGFuZCBXaW5kb3dzIGJ1aWxkcy4KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL0NoYW5nZUxv
ZyBiL1NvdXJjZS9XZWJLaXQyL0NoYW5nZUxvZwppbmRleCA4MTcwYWM4MjVlMTJjZjQ1MzcyMDcz
MzE5MTZlZTdmNzVlNGI2OWMyLi45MzJjNGI3Mjg3ZWU4ZmUwYTA3NjBmZDBmYTQ3N2M5Njg5MTA4
YTJiIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0Mi9DaGFuZ2VMb2cKKysrIGIvU291cmNlL1dl
YktpdDIvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMTIgQEAKKzIwMTUtMDctMDMgIENocmlzIER1bWV6
ICA8Y2R1bWV6QGFwcGxlLmNvbT4KKworICAgICAgICBEcm9wIFJlZlB0cjo6Y2xlYXIoKSBtZXRo
b2QKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTE0NjU1
NgorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIERyb3Ag
UmVmUHRyOjpjbGVhcigpIG1ldGhvZCBpbiBmYXZvciBvZiAiPSBudWxscHRyOyIgcGF0dGVybi4g
ICAgICAgIAorCiAyMDE1LTA3LTAzICBEYW4gQmVybnN0ZWluICA8bWl0ekBhcHBsZS5jb20+CiAK
ICAgICAgICAgW1hjb2RlXSBVcGRhdGUgc29tZSBidWlsZCBzZXR0aW5ncyBhcyByZWNvbW1lbmRl
ZCBieSBYY29kZSA3CmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvQVBJL0pTVmFs
dWVSZWYuY3BwIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL0FQSS9KU1ZhbHVlUmVmLmNwcAppbmRl
eCA3NTlhNjVhOWM3ZGUzYzU2NjE5YWI0NzQ1NDgzNDg2ODhkY2M0N2MxLi41NDQwNWUyYWY1OTdj
MjQ4MjM2ZGVmNzY5ZThiYmM2MDI4OTc5ZDI2IDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlw
dENvcmUvQVBJL0pTVmFsdWVSZWYuY3BwCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9BUEkv
SlNWYWx1ZVJlZi5jcHAKQEAgLTQyMiw3ICs0MjIsNyBAQCBKU1N0cmluZ1JlZiBKU1ZhbHVlVG9T
dHJpbmdDb3B5KEpTQ29udGV4dFJlZiBjdHgsIEpTVmFsdWVSZWYgdmFsdWUsIEpTVmFsdWVSZWYq
CiAgICAgCiAgICAgUmVmUHRyPE9wYXF1ZUpTU3RyaW5nPiBzdHJpbmdSZWYoT3BhcXVlSlNTdHJp
bmc6OmNyZWF0ZShqc1ZhbHVlLnRvU3RyaW5nKGV4ZWMpLT52YWx1ZShleGVjKSkpOwogICAgIGlm
IChoYW5kbGVFeGNlcHRpb25JZk5lZWRlZChleGVjLCBleGNlcHRpb24pID09IEV4Y2VwdGlvblN0
YXR1czo6RGlkVGhyb3cpCi0gICAgICAgIHN0cmluZ1JlZi5jbGVhcigpOworICAgICAgICBzdHJp
bmdSZWYgPSBudWxscHRyOwogICAgIHJldHVybiBzdHJpbmdSZWYucmVsZWFzZSgpLmxlYWtSZWYo
KTsKIH0KIApkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL2J5dGVjb2RlL0NhbGxM
aW5rSW5mby5jcHAgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvYnl0ZWNvZGUvQ2FsbExpbmtJbmZv
LmNwcAppbmRleCA3MmEwYzI0MWRmY2NkMTY1ZDkwMzBkNWZhODRlZmI2OGY4MWY0YjM4Li5kOTIw
MDk4NzRhOTM4NTc3NzJjNDM2NmY0ZDAwOWI1NDZhMzNiOWFjIDEwMDY0NAotLS0gYS9Tb3VyY2Uv
SmF2YVNjcmlwdENvcmUvYnl0ZWNvZGUvQ2FsbExpbmtJbmZvLmNwcAorKysgYi9Tb3VyY2UvSmF2
YVNjcmlwdENvcmUvYnl0ZWNvZGUvQ2FsbExpbmtJbmZvLmNwcApAQCAtNDMsNyArNDMsNyBAQCB2
b2lkIENhbGxMaW5rSW5mbzo6Y2xlYXJTdHViKCkKICAgICAgICAgcmV0dXJuOwogCiAgICAgbV9z
dHViLT5jbGVhckNhbGxOb2Rlc0Zvcih0aGlzKTsKLSAgICBtX3N0dWIuY2xlYXIoKTsKKyAgICBt
X3N0dWIgPSBudWxscHRyOwogfQogCiB2b2lkIENhbGxMaW5rSW5mbzo6dW5saW5rKFJlcGF0Y2hC
dWZmZXImIHJlcGF0Y2hCdWZmZXIpCmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUv
Ynl0ZWNvZGUvU3RydWN0dXJlU3R1YkluZm8uaCBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ieXRl
Y29kZS9TdHJ1Y3R1cmVTdHViSW5mby5oCmluZGV4IGVjOGI3OWMxZjI4NTI1YmI0ODQ5NWRkMWJl
YzZmMTlmMTYyNTc0ZWYuLmQ0MDJhY2VlNTc5M2JiNGY3ODY2OTUxNzE2NDE0OGU4YTdhMjcxYzgg
MTAwNjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ieXRlY29kZS9TdHJ1Y3R1cmVTdHVi
SW5mby5oCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ieXRlY29kZS9TdHJ1Y3R1cmVTdHVi
SW5mby5oCkBAIC0xNDksOCArMTQ5LDggQEAgc3RydWN0IFN0cnVjdHVyZVN0dWJJbmZvIHsKICAg
ICB7CiAgICAgICAgIGRlcmVmKCk7CiAgICAgICAgIGFjY2Vzc1R5cGUgPSBhY2Nlc3NfdW5zZXQ7
Ci0gICAgICAgIHN0dWJSb3V0aW5lLmNsZWFyKCk7Ci0gICAgICAgIHdhdGNocG9pbnRzLmNsZWFy
KCk7CisgICAgICAgIHN0dWJSb3V0aW5lID0gbnVsbHB0cjsKKyAgICAgICAgd2F0Y2hwb2ludHMg
PSBudWxscHRyOwogICAgIH0KIAogICAgIHZvaWQgZGVyZWYoKTsKZGlmZiAtLWdpdCBhL1NvdXJj
ZS9KYXZhU2NyaXB0Q29yZS9kZWJ1Z2dlci9EZWJ1Z2dlci5jcHAgYi9Tb3VyY2UvSmF2YVNjcmlw
dENvcmUvZGVidWdnZXIvRGVidWdnZXIuY3BwCmluZGV4IDU3NDEwNjkyZTAwODAwNzc5NzhiMzdl
YjE2NzcwMzIzMzVjNGI0YzIuLmJjMWI1N2U1OTNhNzk5MzA3MTI4OTJkZTY1MDkzMTA2YTNhYTQ3
ZDEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9kZWJ1Z2dlci9EZWJ1Z2dlci5j
cHAKKysrIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL2RlYnVnZ2VyL0RlYnVnZ2VyLmNwcApAQCAt
MTE3LDcgKzExNyw3IEBAIHB1YmxpYzoKICAgICB7CiAgICAgICAgIGlmIChtX2RlYnVnZ2VyLm1f
Y3VycmVudERlYnVnZ2VyQ2FsbEZyYW1lKSB7CiAgICAgICAgICAgICBtX2RlYnVnZ2VyLm1fY3Vy
cmVudERlYnVnZ2VyQ2FsbEZyYW1lLT5pbnZhbGlkYXRlKCk7Ci0gICAgICAgICAgICBtX2RlYnVn
Z2VyLm1fY3VycmVudERlYnVnZ2VyQ2FsbEZyYW1lID0gMDsKKyAgICAgICAgICAgIG1fZGVidWdn
ZXIubV9jdXJyZW50RGVidWdnZXJDYWxsRnJhbWUgPSBudWxscHRyOwogICAgICAgICB9CiAgICAg
fQogCmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvZGZnL0RGR0dyYXBoLmggYi9T
b3VyY2UvSmF2YVNjcmlwdENvcmUvZGZnL0RGR0dyYXBoLmgKaW5kZXggMmNlN2Q2MGIyYTJmOGFm
N2EzMzVjNTY1MTA2OThkOTllNjcyODQxYi4uNTE0OGMyNmQ4ZTM3ZTc3MzI0NGU4ZDliMjQ0MzVi
MjNhYTMwMmUyNCAxMDA2NDQKLS0tIGEvU291cmNlL0phdmFTY3JpcHRDb3JlL2RmZy9ERkdHcmFw
aC5oCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9kZmcvREZHR3JhcGguaApAQCAtNDQ0LDcg
KzQ0NCw3IEBAIHB1YmxpYzoKICAgICAKICAgICB2b2lkIGtpbGxCbG9jayhCbG9ja0luZGV4IGJs
b2NrSW5kZXgpCiAgICAgewotICAgICAgICBtX2Jsb2Nrc1tibG9ja0luZGV4XS5jbGVhcigpOwor
ICAgICAgICBtX2Jsb2Nrc1tibG9ja0luZGV4XSA9IG51bGxwdHI7CiAgICAgfQogICAgIAogICAg
IHZvaWQga2lsbEJsb2NrKEJhc2ljQmxvY2sqIGJhc2ljQmxvY2spCmRpZmYgLS1naXQgYS9Tb3Vy
Y2UvSmF2YVNjcmlwdENvcmUvZGZnL0RGR09wZXJhdGlvbnMuY3BwIGIvU291cmNlL0phdmFTY3Jp
cHRDb3JlL2RmZy9ERkdPcGVyYXRpb25zLmNwcAppbmRleCBhOTlhM2ZhMTAyMDE4Y2JlODRlNGQx
Mzc0NTBkNzI1MGQ0ODdlZTA4Li42Zjk1MTJiYTUzNGM0OTBkNGJmOTk4YWY1ZDA4MjQ0MTJkYmI5
MTRlIDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvZGZnL0RGR09wZXJhdGlvbnMu
Y3BwCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9kZmcvREZHT3BlcmF0aW9ucy5jcHAKQEAg
LTE0NDcsNyArMTQ0Nyw3IEBAIGNoYXIqIEpJVF9PUEVSQVRJT04gdHJpZ2dlck9TUkVudHJ5Tm93
KAogICAgICAgICAKICAgICAgICAgLy8gT1NSIGVudHJ5IGZhaWxlZC4gT2ggbm8hIFRoaXMgaW1w
bGllcyB0aGF0IHdlIG5lZWQgdG8gcmV0cnkuIFdlIHJldHJ5CiAgICAgICAgIC8vIHdpdGhvdXQg
ZXhwb25lbnRpYWwgYmFja29mZiBhbmQgd2Ugb25seSBkbyB0aGlzIGZvciB0aGUgZW50cnkgY29k
ZSBibG9jay4KLSAgICAgICAgaml0Q29kZS0+b3NyRW50cnlCbG9jay5jbGVhcigpOworICAgICAg
ICBqaXRDb2RlLT5vc3JFbnRyeUJsb2NrID0gbnVsbHB0cjsKICAgICAgICAgaml0Q29kZS0+b3Ny
RW50cnlSZXRyeSA9IDA7CiAgICAgICAgIHJldHVybiAwOwogICAgIH0KZGlmZiAtLWdpdCBhL1Nv
dXJjZS9KYXZhU2NyaXB0Q29yZS9pbnNwZWN0b3IvQ29uc29sZU1lc3NhZ2UuY3BwIGIvU291cmNl
L0phdmFTY3JpcHRDb3JlL2luc3BlY3Rvci9Db25zb2xlTWVzc2FnZS5jcHAKaW5kZXggYTA0YTk3
ZGMzYjQ1MTQ4NTY3NzY0ZjRkMjhkMGYzYjJjMzhkMWUwNi4uOWFjMGRkZWUyZGM5MGJhZjgxOGZh
ZTNhMmQ0MTZkZDU4YWE5MTQ0NSAxMDA2NDQKLS0tIGEvU291cmNlL0phdmFTY3JpcHRDb3JlL2lu
c3BlY3Rvci9Db25zb2xlTWVzc2FnZS5jcHAKKysrIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL2lu
c3BlY3Rvci9Db25zb2xlTWVzc2FnZS5jcHAKQEAgLTI3Myw3ICsyNzMsNyBAQCB2b2lkIENvbnNv
bGVNZXNzYWdlOjpjbGVhcigpCiAgICAgICAgIG1fbWVzc2FnZSA9IEFTQ0lJTGl0ZXJhbCgiPG1l
c3NhZ2UgY29sbGVjdGVkPiIpOwogCiAgICAgaWYgKG1fYXJndW1lbnRzKQotICAgICAgICBtX2Fy
Z3VtZW50cy5jbGVhcigpOworICAgICAgICBtX2FyZ3VtZW50cyA9IG51bGxwdHI7CiB9CiAKIEpT
Qzo6RXhlY1N0YXRlKiBDb25zb2xlTWVzc2FnZTo6c2NyaXB0U3RhdGUoKSBjb25zdApkaWZmIC0t
Z2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL2luc3BlY3Rvci9KU0dsb2JhbE9iamVjdEluc3Bl
Y3RvckNvbnRyb2xsZXIuY3BwIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL2luc3BlY3Rvci9KU0ds
b2JhbE9iamVjdEluc3BlY3RvckNvbnRyb2xsZXIuY3BwCmluZGV4IDU3ZjUyYzU1NTQ3YTYzODg3
OWM4MmY0MGI2OGVjM2QyMmIzMmEwMzkuLjExZDg2ZWQzMjk3NTAzMTczNzE2YTg1ZDkzNTgwOGZj
Njc3YjVkNDggMTAwNjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9pbnNwZWN0b3IvSlNH
bG9iYWxPYmplY3RJbnNwZWN0b3JDb250cm9sbGVyLmNwcAorKysgYi9Tb3VyY2UvSmF2YVNjcmlw
dENvcmUvaW5zcGVjdG9yL0pTR2xvYmFsT2JqZWN0SW5zcGVjdG9yQ29udHJvbGxlci5jcHAKQEAg
LTEzMSw3ICsxMzEsNyBAQCB2b2lkIEpTR2xvYmFsT2JqZWN0SW5zcGVjdG9yQ29udHJvbGxlcjo6
ZGlzY29ubmVjdEZyb250ZW5kKERpc2Nvbm5lY3RSZWFzb24gcmVhcwogICAgIG1fYWdlbnRzLndp
bGxEZXN0cm95RnJvbnRlbmRBbmRCYWNrZW5kKHJlYXNvbik7CiAKICAgICBtX2JhY2tlbmREaXNw
YXRjaGVyLT5jbGVhckZyb250ZW5kKCk7Ci0gICAgbV9iYWNrZW5kRGlzcGF0Y2hlci5jbGVhcigp
OworICAgIG1fYmFja2VuZERpc3BhdGNoZXIgPSBudWxscHRyOwogICAgIG1fZnJvbnRlbmRDaGFu
bmVsID0gbnVsbHB0cjsKIAogICAgIG1faXNBdXRvbWF0aWNJbnNwZWN0aW9uID0gZmFsc2U7CmRp
ZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvaW5zcGVjdG9yL2FnZW50cy9JbnNwZWN0
b3JBZ2VudC5jcHAgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvaW5zcGVjdG9yL2FnZW50cy9JbnNw
ZWN0b3JBZ2VudC5jcHAKaW5kZXggYmYyNDFiYTc3ODJkOWMwOWNhNmRhZDM2MDkyYjgyMWE3MmE4
MzhhYS4uMDUzODY5MDFlNjFlN2ZiY2RlY2UwYmMxNTI5MGQ5ZjViYWNlMDE4OCAxMDA2NDQKLS0t
IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL2luc3BlY3Rvci9hZ2VudHMvSW5zcGVjdG9yQWdlbnQu
Y3BwCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9pbnNwZWN0b3IvYWdlbnRzL0luc3BlY3Rv
ckFnZW50LmNwcApAQCAtNTcsNyArNTcsNyBAQCB2b2lkIEluc3BlY3RvckFnZW50OjpkaWRDcmVh
dGVGcm9udGVuZEFuZEJhY2tlbmQoRnJvbnRlbmRDaGFubmVsKiBmcm9udGVuZENoYW5uZQogdm9p
ZCBJbnNwZWN0b3JBZ2VudDo6d2lsbERlc3Ryb3lGcm9udGVuZEFuZEJhY2tlbmQoRGlzY29ubmVj
dFJlYXNvbikKIHsKICAgICBtX2Zyb250ZW5kRGlzcGF0Y2hlciA9IG51bGxwdHI7Ci0gICAgbV9i
YWNrZW5kRGlzcGF0Y2hlci5jbGVhcigpOworICAgIG1fYmFja2VuZERpc3BhdGNoZXIgPSBudWxs
cHRyOwogCiAgICAgbV9wZW5kaW5nRXZhbHVhdGVUZXN0Q29tbWFuZHMuY2xlYXIoKTsKIApkaWZm
IC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL2luc3BlY3Rvci9hZ2VudHMvSW5zcGVjdG9y
Q29uc29sZUFnZW50LmNwcCBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9pbnNwZWN0b3IvYWdlbnRz
L0luc3BlY3RvckNvbnNvbGVBZ2VudC5jcHAKaW5kZXggODE0YTBjMTFjZjYwOGVjNjk4OTljZWJm
MWJhYzE0ZWFiYzE5YmFkNi4uOWZmZDA0ODRmMjgwNjJjMjliY2FkYjRiOWI5ZDM3MGIxZjcxMTM3
ZiAxMDA2NDQKLS0tIGEvU291cmNlL0phdmFTY3JpcHRDb3JlL2luc3BlY3Rvci9hZ2VudHMvSW5z
cGVjdG9yQ29uc29sZUFnZW50LmNwcAorKysgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvaW5zcGVj
dG9yL2FnZW50cy9JbnNwZWN0b3JDb25zb2xlQWdlbnQuY3BwCkBAIC02NCw3ICs2NCw3IEBAIHZv
aWQgSW5zcGVjdG9yQ29uc29sZUFnZW50OjpkaWRDcmVhdGVGcm9udGVuZEFuZEJhY2tlbmQoRnJv
bnRlbmRDaGFubmVsKiBmcm9udGVuCiB2b2lkIEluc3BlY3RvckNvbnNvbGVBZ2VudDo6d2lsbERl
c3Ryb3lGcm9udGVuZEFuZEJhY2tlbmQoRGlzY29ubmVjdFJlYXNvbikKIHsKICAgICBtX2Zyb250
ZW5kRGlzcGF0Y2hlciA9IG51bGxwdHI7Ci0gICAgbV9iYWNrZW5kRGlzcGF0Y2hlci5jbGVhcigp
OworICAgIG1fYmFja2VuZERpc3BhdGNoZXIgPSBudWxscHRyOwogCiAgICAgU3RyaW5nIGVycm9y
U3RyaW5nOwogICAgIGRpc2FibGUoZXJyb3JTdHJpbmcpOwpkaWZmIC0tZ2l0IGEvU291cmNlL0ph
dmFTY3JpcHRDb3JlL2luc3BlY3Rvci9hZ2VudHMvSW5zcGVjdG9yRGVidWdnZXJBZ2VudC5jcHAg
Yi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvaW5zcGVjdG9yL2FnZW50cy9JbnNwZWN0b3JEZWJ1Z2dl
ckFnZW50LmNwcAppbmRleCBhNzVlMGIyYjZlYzdlOGM5ZGRkNjc3ZmY5NDg1YzllOGZlOWRiZTRk
Li5mMGYwYjQ4ZGQ0ZDQ3Y2RlM2EwZjJhODgyMmM0NjMyNWRlNWFhYjRmIDEwMDY0NAotLS0gYS9T
b3VyY2UvSmF2YVNjcmlwdENvcmUvaW5zcGVjdG9yL2FnZW50cy9JbnNwZWN0b3JEZWJ1Z2dlckFn
ZW50LmNwcAorKysgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvaW5zcGVjdG9yL2FnZW50cy9JbnNw
ZWN0b3JEZWJ1Z2dlckFnZW50LmNwcApAQCAtNzcsNyArNzcsNyBAQCB2b2lkIEluc3BlY3RvckRl
YnVnZ2VyQWdlbnQ6OmRpZENyZWF0ZUZyb250ZW5kQW5kQmFja2VuZChGcm9udGVuZENoYW5uZWwq
IGZyb250ZQogdm9pZCBJbnNwZWN0b3JEZWJ1Z2dlckFnZW50Ojp3aWxsRGVzdHJveUZyb250ZW5k
QW5kQmFja2VuZChEaXNjb25uZWN0UmVhc29uIHJlYXNvbikKIHsKICAgICBtX2Zyb250ZW5kRGlz
cGF0Y2hlciA9IG51bGxwdHI7Ci0gICAgbV9iYWNrZW5kRGlzcGF0Y2hlci5jbGVhcigpOworICAg
IG1fYmFja2VuZERpc3BhdGNoZXIgPSBudWxscHRyOwogCiAgICAgYm9vbCBza2lwUmVjb21waWxl
ID0gcmVhc29uID09IERpc2Nvbm5lY3RSZWFzb246Okluc3BlY3RlZFRhcmdldERlc3Ryb3llZDsK
ICAgICBkaXNhYmxlKHNraXBSZWNvbXBpbGUpOwpkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3Jp
cHRDb3JlL2luc3BlY3Rvci9hZ2VudHMvSlNHbG9iYWxPYmplY3RSdW50aW1lQWdlbnQuY3BwIGIv
U291cmNlL0phdmFTY3JpcHRDb3JlL2luc3BlY3Rvci9hZ2VudHMvSlNHbG9iYWxPYmplY3RSdW50
aW1lQWdlbnQuY3BwCmluZGV4IDY1OGM2N2FiMTVmODk1MjA1YzU1YmI1Mjg5YzBiOWQyZTRlNDBj
NjAuLjQ2MDQ5ZjU2Yzc1YWQ3Mzk4ZjNjOWQwNzU4NDZjZTdhMWMxMjgyNjggMTAwNjQ0Ci0tLSBh
L1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9pbnNwZWN0b3IvYWdlbnRzL0pTR2xvYmFsT2JqZWN0UnVu
dGltZUFnZW50LmNwcAorKysgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvaW5zcGVjdG9yL2FnZW50
cy9KU0dsb2JhbE9iamVjdFJ1bnRpbWVBZ2VudC5jcHAKQEAgLTQ5LDcgKzQ5LDcgQEAgdm9pZCBK
U0dsb2JhbE9iamVjdFJ1bnRpbWVBZ2VudDo6ZGlkQ3JlYXRlRnJvbnRlbmRBbmRCYWNrZW5kKEZy
b250ZW5kQ2hhbm5lbCogZnIKIHZvaWQgSlNHbG9iYWxPYmplY3RSdW50aW1lQWdlbnQ6OndpbGxE
ZXN0cm95RnJvbnRlbmRBbmRCYWNrZW5kKERpc2Nvbm5lY3RSZWFzb24gcmVhc29uKQogewogICAg
IG1fZnJvbnRlbmREaXNwYXRjaGVyID0gbnVsbHB0cjsKLSAgICBtX2JhY2tlbmREaXNwYXRjaGVy
LmNsZWFyKCk7CisgICAgbV9iYWNrZW5kRGlzcGF0Y2hlciA9IG51bGxwdHI7CiAKICAgICBJbnNw
ZWN0b3JSdW50aW1lQWdlbnQ6OndpbGxEZXN0cm95RnJvbnRlbmRBbmRCYWNrZW5kKHJlYXNvbik7
CiB9CmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcGFyc2VyL1BhcnNlci5jcHAg
Yi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcGFyc2VyL1BhcnNlci5jcHAKaW5kZXggZGMwZjU1ZjEz
MmZhMGUxOGY4NDdhODU0YzhjZmY1NmIwYTYwOTQ5Zi4uYTNjNWUzMTIxOGIwMzkyZWU3NjE2ZmVk
NjFkOWQzOTUyYjRhNDhlNiAxMDA2NDQKLS0tIGEvU291cmNlL0phdmFTY3JpcHRDb3JlL3BhcnNl
ci9QYXJzZXIuY3BwCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9wYXJzZXIvUGFyc2VyLmNw
cApAQCAtNDkxLDcgKzQ5MSw3IEBAIHRlbXBsYXRlIDxjbGFzcyBUcmVlQnVpbGRlcj4gVHJlZUV4
cHJlc3Npb24gUGFyc2VyPExleGVyVHlwZT46OnBhcnNlVmFyRGVjbGFyYXRpCiAgICAgSlNUb2tl
biBsYXN0SWRlbnRUb2tlbjsgCiAgICAgZG8gewogICAgICAgICBsYXN0SWRlbnQgPSAwOwotICAg
ICAgICBsYXN0UGF0dGVybiA9IDA7CisgICAgICAgIGxhc3RQYXR0ZXJuID0gVHJlZURlc3RydWN0
dXJpbmdQYXR0ZXJuKDApOwogICAgICAgICBKU1Rva2VuTG9jYXRpb24gbG9jYXRpb24odG9rZW5M
b2NhdGlvbigpKTsKICAgICAgICAgbmV4dCgpOwogICAgICAgICBUcmVlRXhwcmVzc2lvbiBub2Rl
ID0gMDsKQEAgLTg5NCw3ICs4OTQsNyBAQCB0ZW1wbGF0ZSA8Y2xhc3MgVHJlZUJ1aWxkZXI+IFRy
ZWVTdGF0ZW1lbnQgUGFyc2VyPExleGVyVHlwZT46OnBhcnNlRm9yU3RhdGVtZW50KAogICAgICAg
ICAgICAgZGVjbHNFbmQgPSBsYXN0VG9rZW5FbmRQb3NpdGlvbigpOwogICAgICAgICAgICAgaWYg
KHBhdHRlcm4gJiYgKG1hdGNoKElOVE9LRU4pIHx8IChtYXRjaChJREVOVCkgJiYgKm1fdG9rZW4u
bV9kYXRhLmlkZW50ID09IG1fdm0tPnByb3BlcnR5TmFtZXMtPm9mKSkpCiAgICAgICAgICAgICAg
ICAgZ290byBlbnVtZXJhdGlvbkxvb3A7Ci0gICAgICAgICAgICBwYXR0ZXJuID0gMDsKKyAgICAg
ICAgICAgIHBhdHRlcm4gPSBUcmVlRGVzdHJ1Y3R1cmluZ1BhdHRlcm4oMCk7CiAgICAgICAgICAg
ICByZXN0b3JlU2F2ZVBvaW50KHNhdmVQb2ludCk7CiAgICAgICAgIH0KICAgICAgICAgbV9hbGxv
d3NJbiA9IGZhbHNlOwpkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUv
RXhlY3V0YWJsZS5jcHAgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9FeGVjdXRhYmxl
LmNwcAppbmRleCA2Y2IwOWIwMWIzODI1Yjg0NTZlOTVjMWFiYzlkZmYyYjgwNmU0MTE4Li41NTI0
MGZkOTFmN2JjNzg0MmYxM2U1OTI4MWQxMGQyMWQ4NmM0ZjUwIDEwMDY0NAotLS0gYS9Tb3VyY2Uv
SmF2YVNjcmlwdENvcmUvcnVudGltZS9FeGVjdXRhYmxlLmNwcAorKysgYi9Tb3VyY2UvSmF2YVNj
cmlwdENvcmUvcnVudGltZS9FeGVjdXRhYmxlLmNwcApAQCAtNTIsOCArNTIsOCBAQCB2b2lkIEV4
ZWN1dGFibGVCYXNlOjpkZXN0cm95KEpTQ2VsbCogY2VsbCkKIHZvaWQgRXhlY3V0YWJsZUJhc2U6
OmNsZWFyQ29kZSgpCiB7CiAjaWYgRU5BQkxFKEpJVCkKLSAgICBtX2ppdENvZGVGb3JDYWxsLmNs
ZWFyKCk7Ci0gICAgbV9qaXRDb2RlRm9yQ29uc3RydWN0LmNsZWFyKCk7CisgICAgbV9qaXRDb2Rl
Rm9yQ2FsbCA9IG51bGxwdHI7CisgICAgbV9qaXRDb2RlRm9yQ29uc3RydWN0ID0gbnVsbHB0cjsK
ICAgICBtX2ppdENvZGVGb3JDYWxsV2l0aEFyaXR5Q2hlY2sgPSBNYWNyb0Fzc2VtYmxlckNvZGVQ
dHIoKTsKICAgICBtX2ppdENvZGVGb3JDb25zdHJ1Y3RXaXRoQXJpdHlDaGVjayA9IE1hY3JvQXNz
ZW1ibGVyQ29kZVB0cigpOwogICAgIG1faml0Q29kZUZvckNhbGxXaXRoQXJpdHlDaGVja0FuZFBy
ZXNlcnZlUmVncyA9IE1hY3JvQXNzZW1ibGVyQ29kZVB0cigpOwpAQCAtNDY0LDcgKzQ2NCw3IEBA
IHZvaWQgRXZhbEV4ZWN1dGFibGU6OnVubGlua0NhbGxzKCkKIAogdm9pZCBFdmFsRXhlY3V0YWJs
ZTo6Y2xlYXJDb2RlKCkKIHsKLSAgICBtX2V2YWxDb2RlQmxvY2suY2xlYXIoKTsKKyAgICBtX2V2
YWxDb2RlQmxvY2sgPSBudWxscHRyOwogICAgIG1fdW5saW5rZWRFdmFsQ29kZUJsb2NrLmNsZWFy
KCk7CiAgICAgQmFzZTo6Y2xlYXJDb2RlKCk7CiB9CkBAIC01NDMsNyArNTQzLDcgQEAgdm9pZCBQ
cm9ncmFtRXhlY3V0YWJsZTo6dmlzaXRDaGlsZHJlbihKU0NlbGwqIGNlbGwsIFNsb3RWaXNpdG9y
JiB2aXNpdG9yKQogCiB2b2lkIFByb2dyYW1FeGVjdXRhYmxlOjpjbGVhckNvZGUoKQogewotICAg
IG1fcHJvZ3JhbUNvZGVCbG9jay5jbGVhcigpOworICAgIG1fcHJvZ3JhbUNvZGVCbG9jayA9IG51
bGxwdHI7CiAgICAgbV91bmxpbmtlZFByb2dyYW1Db2RlQmxvY2suY2xlYXIoKTsKICAgICBCYXNl
OjpjbGVhckNvZGUoKTsKIH0KQEAgLTU4Nyw4ICs1ODcsOCBAQCB2b2lkIEZ1bmN0aW9uRXhlY3V0
YWJsZTo6Y2xlYXJVbmxpbmtlZENvZGVGb3JSZWNvbXBpbGF0aW9uKCkKIAogdm9pZCBGdW5jdGlv
bkV4ZWN1dGFibGU6OmNsZWFyQ29kZSgpCiB7Ci0gICAgbV9jb2RlQmxvY2tGb3JDYWxsLmNsZWFy
KCk7Ci0gICAgbV9jb2RlQmxvY2tGb3JDb25zdHJ1Y3QuY2xlYXIoKTsKKyAgICBtX2NvZGVCbG9j
a0ZvckNhbGwgPSBudWxscHRyOworICAgIG1fY29kZUJsb2NrRm9yQ29uc3RydWN0ID0gbnVsbHB0
cjsKICAgICBCYXNlOjpjbGVhckNvZGUoKTsKIH0KIApkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFT
Y3JpcHRDb3JlL3J1bnRpbWUvSlNMb2NrLmNwcCBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50
aW1lL0pTTG9jay5jcHAKaW5kZXggMmU3OTk0Y2YyN2MzYzU0ZDVkNTdjMzcwMDBkZDE4MGVjNGRm
OWYwNS4uYzJlZTBhNTUzMmMwYjUxOTM2ODcxMDlkOWEzMmVjNGExNDQ1ZDhiZCAxMDA2NDQKLS0t
IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvSlNMb2NrLmNwcAorKysgYi9Tb3VyY2Uv
SmF2YVNjcmlwdENvcmUvcnVudGltZS9KU0xvY2suY3BwCkBAIC03Myw3ICs3Myw3IEBAIHZvaWQg
SlNMb2NrSG9sZGVyOjppbml0KCkKIEpTTG9ja0hvbGRlcjo6fkpTTG9ja0hvbGRlcigpCiB7CiAg
ICAgUmVmUHRyPEpTTG9jaz4gYXBpTG9jaygmbV92bS0+YXBpTG9jaygpKTsKLSAgICBtX3ZtLmNs
ZWFyKCk7CisgICAgbV92bSA9IG51bGxwdHI7CiAgICAgYXBpTG9jay0+dW5sb2NrKCk7CiB9CiAK
ZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL1N0cnVjdHVyZS5jcHAg
Yi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9TdHJ1Y3R1cmUuY3BwCmluZGV4IGY3NzFi
NjBiY2I2NWRlOGU1NGM2YTYxMWM3ZDI2Zjg2NTk4YjA3NGQuLjM5ODU4MDVjZjU1YzgzYzFkYTY1
NGExMzVjNDUxMGM3NTAxNzBiMTkgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9y
dW50aW1lL1N0cnVjdHVyZS5jcHAKKysrIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUv
U3RydWN0dXJlLmNwcApAQCAtNzM3LDcgKzczNyw3IEBAIHZvaWQgU3RydWN0dXJlOjpwaW4oKQog
ICAgIEFTU0VSVChwcm9wZXJ0eVRhYmxlKCkpOwogICAgIHNldElzUGlubmVkUHJvcGVydHlUYWJs
ZSh0cnVlKTsKICAgICBjbGVhclByZXZpb3VzSUQoKTsKLSAgICBtX25hbWVJblByZXZpb3VzLmNs
ZWFyKCk7CisgICAgbV9uYW1lSW5QcmV2aW91cyA9IG51bGxwdHI7CiB9CiAKIHZvaWQgU3RydWN0
dXJlOjphbGxvY2F0ZVJhcmVEYXRhKFZNJiB2bSkKZGlmZiAtLWdpdCBhL1NvdXJjZS9XVEYvd3Rm
L1JlZlB0ci5oIGIvU291cmNlL1dURi93dGYvUmVmUHRyLmgKaW5kZXggMjkxMWYwZGE5MDYyYjc2
Y2NkMmFkMTU0NDBiOWNkMjU4NWQ1ODg4Ni4uN2M4MzA1ZTM4ZWQ3MmI0NDc3ZGE1ZjJlMjI3NTA3
NjRhNzgzZTI2NCAxMDA2NDQKLS0tIGEvU291cmNlL1dURi93dGYvUmVmUHRyLmgKKysrIGIvU291
cmNlL1dURi93dGYvUmVmUHRyLmgKQEAgLTYwLDcgKzYwLDYgQEAgcHVibGljOgogCiAgICAgVCog
Z2V0KCkgY29uc3QgeyByZXR1cm4gbV9wdHI7IH0KICAgICAKLSAgICB2b2lkIGNsZWFyKCk7CiAg
ICAgUGFzc1JlZlB0cjxUPiByZWxlYXNlKCkgeyBQYXNzUmVmUHRyPFQ+IHRtcCA9IGFkb3B0UmVm
KG1fcHRyKTsgbV9wdHIgPSBudWxscHRyOyByZXR1cm4gdG1wOyB9CiAgICAgUmVmPFQ+IHJlbGVh
c2VOb25OdWxsKCkgeyBBU1NFUlQobV9wdHIpOyBSZWY8VD4gdG1wKGFkb3B0UmVmKCptX3B0cikp
OyBtX3B0ciA9IG51bGxwdHI7IHJldHVybiB0bXA7IH0KIApAQCAtNzcsNiArNzYsNyBAQCBwdWJs
aWM6CiAgICAgCiAgICAgUmVmUHRyJiBvcGVyYXRvcj0oY29uc3QgUmVmUHRyJik7CiAgICAgUmVm
UHRyJiBvcGVyYXRvcj0oVCopOworICAgIFJlZlB0ciYgb3BlcmF0b3I9KHN0ZDo6bnVsbHB0cl90
KTsKICAgICBSZWZQdHImIG9wZXJhdG9yPShjb25zdCBQYXNzUmVmUHRyPFQ+Jik7CiAgICAgdGVt
cGxhdGU8dHlwZW5hbWUgVT4gUmVmUHRyJiBvcGVyYXRvcj0oY29uc3QgUmVmUHRyPFU+Jik7CiAg
ICAgdGVtcGxhdGU8dHlwZW5hbWUgVT4gUmVmUHRyJiBvcGVyYXRvcj0oY29uc3QgUGFzc1JlZlB0
cjxVPiYpOwpAQCAtMTA5LDExICsxMDksNiBAQCB0ZW1wbGF0ZTx0eXBlbmFtZSBUPiB0ZW1wbGF0
ZTx0eXBlbmFtZSBVPiBpbmxpbmUgUmVmUHRyPFQ+OjpSZWZQdHIoUmVmPFU+JiYgcmVmZQogewog
fQogCi10ZW1wbGF0ZTx0eXBlbmFtZSBUPiBpbmxpbmUgdm9pZCBSZWZQdHI8VD46OmNsZWFyKCkK
LXsKLSAgICBkZXJlZklmTm90TnVsbChzdGQ6OmV4Y2hhbmdlKG1fcHRyLCBudWxscHRyKSk7Ci19
Ci0KIHRlbXBsYXRlPHR5cGVuYW1lIFQ+CiBpbmxpbmUgVCogUmVmUHRyPFQ+OjpsZWFrUmVmKCkK
IHsKQEAgLTE0MSw2ICsxMzYsMTIgQEAgdGVtcGxhdGU8dHlwZW5hbWUgVD4gaW5saW5lIFJlZlB0
cjxUPiYgUmVmUHRyPFQ+OjpvcGVyYXRvcj0oVCogb3B0cikKICAgICByZXR1cm4gKnRoaXM7CiB9
CiAKK3RlbXBsYXRlPHR5cGVuYW1lIFQ+IGlubGluZSBSZWZQdHI8VD4mIFJlZlB0cjxUPjo6b3Bl
cmF0b3I9KHN0ZDo6bnVsbHB0cl90KQoreworICAgIGRlcmVmSWZOb3ROdWxsKHN0ZDo6ZXhjaGFu
Z2UobV9wdHIsIG51bGxwdHIpKTsKKyAgICByZXR1cm4gKnRoaXM7Cit9CisKIHRlbXBsYXRlPHR5
cGVuYW1lIFQ+IGlubGluZSBSZWZQdHI8VD4mIFJlZlB0cjxUPjo6b3BlcmF0b3I9KGNvbnN0IFBh
c3NSZWZQdHI8VD4mIG8pCiB7CiAgICAgUmVmUHRyIHB0ciA9IG87CmRpZmYgLS1naXQgYS9Tb3Vy
Y2UvV1RGL3d0Zi90ZXh0L1N0cmluZ0J1aWxkZXIuaCBiL1NvdXJjZS9XVEYvd3RmL3RleHQvU3Ry
aW5nQnVpbGRlci5oCmluZGV4IGJlNWMxMTcyY2NjYjk5OGE0MTA1ODAzNDVhZjQwYzI5Y2IxMzQ5
OGUuLjFkYzRhYzYyMjk0MGMwYTUzNDJkNzZjOTIyYTM2ZGQ2MTgyYTkxZjggMTAwNjQ0Ci0tLSBh
L1NvdXJjZS9XVEYvd3RmL3RleHQvU3RyaW5nQnVpbGRlci5oCisrKyBiL1NvdXJjZS9XVEYvd3Rm
L3RleHQvU3RyaW5nQnVpbGRlci5oCkBAIC0yNjQsNyArMjY0LDcgQEAgcHVibGljOgogICAgIHsK
ICAgICAgICAgbV9sZW5ndGggPSAwOwogICAgICAgICBtX3N0cmluZyA9IFN0cmluZygpOwotICAg
ICAgICBtX2J1ZmZlciA9IDA7CisgICAgICAgIG1fYnVmZmVyID0gbnVsbHB0cjsKICAgICAgICAg
bV9idWZmZXJDaGFyYWN0ZXJzOCA9IDA7CiAgICAgICAgIG1faXM4Qml0ID0gdHJ1ZTsKICAgICB9
CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL2luZGV4ZWRkYi9JREJDdXJzb3Iu
Y3BwIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9pbmRleGVkZGIvSURCQ3Vyc29yLmNwcAppbmRl
eCBhMjBlMWUxYWNlMjQ5OTQ4NGRmNzQ1OTE5OGExMTFlMTg0MjkwZTZkLi5jNDAxMWRjMjc1NTVm
NDhmY2UyZDZkMmUxNjQwOGYxZDdhNzYxMzZmIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9N
b2R1bGVzL2luZGV4ZWRkYi9JREJDdXJzb3IuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL01vZHVs
ZXMvaW5kZXhlZGRiL0lEQkN1cnNvci5jcHAKQEAgLTI1OSw3ICsyNTksNyBAQCB2b2lkIElEQkN1
cnNvcjo6Y2xvc2UoKQogICAgIG1fdHJhbnNhY3Rpb25Ob3RpZmllci5jdXJzb3JGaW5pc2hlZCgp
OwogICAgIGlmIChtX3JlcXVlc3QpIHsKICAgICAgICAgbV9yZXF1ZXN0LT5maW5pc2hDdXJzb3Io
KTsKLSAgICAgICAgbV9yZXF1ZXN0LmNsZWFyKCk7CisgICAgICAgIG1fcmVxdWVzdCA9IG51bGxw
dHI7CiAgICAgfQogfQogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL2luZGV4
ZWRkYi9JREJEYXRhYmFzZUJhY2tlbmQuY3BwIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9pbmRl
eGVkZGIvSURCRGF0YWJhc2VCYWNrZW5kLmNwcAppbmRleCBmYzIzMTAyZGRhYTlhMzc3MDk0MGVm
NGViMDRjMTM4MDM4MzRkYzNmLi4wOWU0ZTI3YjhmOTA5ZTE3ODA5YjQ5ZDAzNGUzYjhjNGU0NWVm
NTM3IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL2luZGV4ZWRkYi9JREJEYXRh
YmFzZUJhY2tlbmQuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvaW5kZXhlZGRiL0lE
QkRhdGFiYXNlQmFja2VuZC5jcHAKQEAgLTMzMyw3ICszMzMsNyBAQCB2b2lkIElEQkRhdGFiYXNl
QmFja2VuZDo6dHJhbnNhY3Rpb25GaW5pc2hlZChJREJUcmFuc2FjdGlvbkJhY2tlbmQqIHJhd1Ry
YW5zYWN0aQogICAgIG1fdHJhbnNhY3Rpb25zLnJlbW92ZSh0cmFuc2FjdGlvbi0+aWQoKSk7CiAg
ICAgaWYgKHRyYW5zYWN0aW9uLT5tb2RlKCkgPT0gSW5kZXhlZERCOjpUcmFuc2FjdGlvbk1vZGU6
OlZlcnNpb25DaGFuZ2UpIHsKICAgICAgICAgQVNTRVJUKHRyYW5zYWN0aW9uLmdldCgpID09IG1f
cnVubmluZ1ZlcnNpb25DaGFuZ2VUcmFuc2FjdGlvbi5nZXQoKSk7Ci0gICAgICAgIG1fcnVubmlu
Z1ZlcnNpb25DaGFuZ2VUcmFuc2FjdGlvbi5jbGVhcigpOworICAgICAgICBtX3J1bm5pbmdWZXJz
aW9uQ2hhbmdlVHJhbnNhY3Rpb24gPSBudWxscHRyOwogICAgIH0KIH0KIApkaWZmIC0tZ2l0IGEv
U291cmNlL1dlYkNvcmUvTW9kdWxlcy9pbmRleGVkZGIvSURCT2JqZWN0U3RvcmUuY3BwIGIvU291
cmNlL1dlYkNvcmUvTW9kdWxlcy9pbmRleGVkZGIvSURCT2JqZWN0U3RvcmUuY3BwCmluZGV4IGU4
YmY5ZGRlZmU0OTdiNTYzZDk4ZjA4NTBlYWU4ZDQ4N2ViMjI1YjkuLmE2ZDI4MTQyZjYyMjIyMmY5
NDNmOGQ0ZTEzNWI0MjQ4MzEyMDMwMTkgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL01vZHVs
ZXMvaW5kZXhlZGRiL0lEQk9iamVjdFN0b3JlLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1
bGVzL2luZGV4ZWRkYi9JREJPYmplY3RTdG9yZS5jcHAKQEAgLTMzNyw3ICszMzcsNyBAQCBwcml2
YXRlOgogICAgICAgICAgICAgLy8gTm93IHRoYXQgd2UgYXJlIGRvbmUgaW5kZXhpbmcsIHRlbGwg
dGhlIGJhY2tlbmQgdG8gZ28KICAgICAgICAgICAgIC8vIGJhY2sgdG8gcHJvY2Vzc2luZyB0YXNr
cyBvZiB0eXBlIE5vcm1hbFRhc2suCiAgICAgICAgICAgICBtX2RhdGFiYXNlQmFja2VuZC0+c2V0
SW5kZXhlc1JlYWR5KG1fdHJhbnNhY3Rpb25JZCwgbV9vYmplY3RTdG9yZUlkLCBpbmRleElkcyk7
Ci0gICAgICAgICAgICBtX2RhdGFiYXNlQmFja2VuZC5jbGVhcigpOworICAgICAgICAgICAgbV9k
YXRhYmFzZUJhY2tlbmQgPSBudWxscHRyOwogICAgICAgICB9CiAKICAgICB9CmRpZmYgLS1naXQg
YS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL2luZGV4ZWRkYi9JREJPcGVuREJSZXF1ZXN0LmNwcCBi
L1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvaW5kZXhlZGRiL0lEQk9wZW5EQlJlcXVlc3QuY3BwCmlu
ZGV4IDYzNzgwN2VhZDk0Y2I3OGM5YzlkOTM1OGRlZDY3MGZmZjIwMTc3ZGMuLjcxNTc5YjA1OTU1
NjI0ZTAzZjJhZTE3MjdmYzUwNDY3OTI1MDQ3YjQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3Jl
L01vZHVsZXMvaW5kZXhlZGRiL0lEQk9wZW5EQlJlcXVlc3QuY3BwCisrKyBiL1NvdXJjZS9XZWJD
b3JlL01vZHVsZXMvaW5kZXhlZGRiL0lEQk9wZW5EQlJlcXVlc3QuY3BwCkBAIC0xNDIsNyArMTQy
LDcgQEAgYm9vbCBJREJPcGVuREJSZXF1ZXN0OjpkaXNwYXRjaEV2ZW50KFBhc3NSZWZQdHI8RXZl
bnQ+IGV2ZW50KQogICAgIC8vIElmIHRoZSBjb25uZWN0aW9uIGNsb3NlZCBiZXR3ZWVuIG9uVXBn
cmFkZU5lZWRlZCBhbmQgdGhlIGRlbGl2ZXJ5IG9mIHRoZSAic3VjY2VzcyIgZXZlbnQsCiAgICAg
Ly8gYW4gImVycm9yIiBldmVudCBzaG91bGQgYmUgZmlyZWQgaW5zdGVhZC4KICAgICBpZiAoZXZl
bnQtPnR5cGUoKSA9PSBldmVudE5hbWVzKCkuc3VjY2Vzc0V2ZW50ICYmIG1fcmVzdWx0LT50eXBl
KCkgPT0gSURCQW55OjpJREJEYXRhYmFzZVR5cGUgJiYgbV9yZXN1bHQtPmlkYkRhdGFiYXNlKCkt
PmlzQ2xvc2VQZW5kaW5nKCkpIHsKLSAgICAgICAgbV9yZXN1bHQuY2xlYXIoKTsKKyAgICAgICAg
bV9yZXN1bHQgPSBudWxscHRyOwogICAgICAgICBvbkVycm9yKElEQkRhdGFiYXNlRXJyb3I6OmNy
ZWF0ZShJREJEYXRhYmFzZUV4Y2VwdGlvbjo6QWJvcnRFcnJvciwgIlRoZSBjb25uZWN0aW9uIHdh
cyBjbG9zZWQuIikpOwogICAgICAgICByZXR1cm4gZmFsc2U7CiAgICAgfQpkaWZmIC0tZ2l0IGEv
U291cmNlL1dlYkNvcmUvTW9kdWxlcy9pbmRleGVkZGIvSURCUmVxdWVzdC5jcHAgYi9Tb3VyY2Uv
V2ViQ29yZS9Nb2R1bGVzL2luZGV4ZWRkYi9JREJSZXF1ZXN0LmNwcAppbmRleCA5ZTUwMWI0Zjg2
MjZiMDQwMTZkZWNkOTU4NjE2YTgxNTNmYTY1YWVmLi44NjRkZTUzNTc1MzExYjA5ZTI4Nzg0YTNk
YTY1YzgxZmY4YTg0NWFmIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL2luZGV4
ZWRkYi9JREJSZXF1ZXN0LmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL2luZGV4ZWRk
Yi9JREJSZXF1ZXN0LmNwcApAQCAtMTcwLDkgKzE3MCw5IEBAIHZvaWQgSURCUmVxdWVzdDo6YWJv
cnQoKQogICAgIG1fZW5xdWV1ZWRFdmVudHMuY2xlYXIoKTsKIAogICAgIG1fZXJyb3JDb2RlID0g
MDsKLSAgICBtX2Vycm9yLmNsZWFyKCk7CisgICAgbV9lcnJvciA9IG51bGxwdHI7CiAgICAgbV9l
cnJvck1lc3NhZ2UgPSBTdHJpbmcoKTsKLSAgICBtX3Jlc3VsdC5jbGVhcigpOworICAgIG1fcmVz
dWx0ID0gbnVsbHB0cjsKICAgICBvbkVycm9yKElEQkRhdGFiYXNlRXJyb3I6OmNyZWF0ZShJREJE
YXRhYmFzZUV4Y2VwdGlvbjo6QWJvcnRFcnJvcikpOwogICAgIG1fcmVxdWVzdEFib3J0ZWQgPSB0
cnVlOwogfQpAQCAtMTk0LDEwICsxOTQsMTAgQEAgdm9pZCBJREJSZXF1ZXN0OjpzZXRQZW5kaW5n
Q3Vyc29yKFBhc3NSZWZQdHI8SURCQ3Vyc29yPiBjdXJzb3IpCiAgICAgQVNTRVJUKGN1cnNvciA9
PSBnZXRSZXN1bHRDdXJzb3IoKSk7CiAKICAgICBtX3BlbmRpbmdDdXJzb3IgPSBjdXJzb3I7Ci0g
ICAgbV9yZXN1bHQuY2xlYXIoKTsKKyAgICBtX3Jlc3VsdCA9IG51bGxwdHI7CiAgICAgbV9yZWFk
eVN0YXRlID0gUEVORElORzsKICAgICBtX2Vycm9yQ29kZSA9IDA7Ci0gICAgbV9lcnJvci5jbGVh
cigpOworICAgIG1fZXJyb3IgPSBudWxscHRyOwogICAgIG1fZXJyb3JNZXNzYWdlID0gU3RyaW5n
KCk7CiAgICAgbV90cmFuc2FjdGlvbi0+cmVnaXN0ZXJSZXF1ZXN0KHRoaXMpOwogfQpAQCAtMjU2
LDcgKzI1Niw3IEBAIHZvaWQgSURCUmVxdWVzdDo6b25FcnJvcihQYXNzUmVmUHRyPElEQkRhdGFi
YXNlRXJyb3I+IGVycm9yKQogICAgIG1fZXJyb3JDb2RlID0gZXJyb3ItPmNvZGUoKTsKICAgICBt
X2Vycm9yTWVzc2FnZSA9IGVycm9yLT5tZXNzYWdlKCk7CiAgICAgbV9lcnJvciA9IERPTUVycm9y
OjpjcmVhdGUoSURCRGF0YWJhc2VFeGNlcHRpb246OmdldEVycm9yTmFtZShlcnJvci0+aWRiQ29k
ZSgpKSk7Ci0gICAgbV9wZW5kaW5nQ3Vyc29yLmNsZWFyKCk7CisgICAgbV9wZW5kaW5nQ3Vyc29y
ID0gbnVsbHB0cjsKICAgICBlbnF1ZXVlRXZlbnQoRXZlbnQ6OmNyZWF0ZShldmVudE5hbWVzKCku
ZXJyb3JFdmVudCwgdHJ1ZSwgdHJ1ZSkpOwogfQogCkBAIC00MDQsNyArNDA0LDcgQEAgdm9pZCBJ
REJSZXF1ZXN0OjpvblN1Y2Nlc3NJbnRlcm5hbChjb25zdCBEZXByZWNhdGVkOjpTY3JpcHRWYWx1
ZSYgdmFsdWUpCiAgICAgbV9yZXN1bHQgPSBJREJBbnk6OmNyZWF0ZSh2YWx1ZSk7CiAgICAgaWYg
KG1fcGVuZGluZ0N1cnNvcikgewogICAgICAgICBtX3BlbmRpbmdDdXJzb3ItPmNsb3NlKCk7Ci0g
ICAgICAgIG1fcGVuZGluZ0N1cnNvci5jbGVhcigpOworICAgICAgICBtX3BlbmRpbmdDdXJzb3Ig
PSBudWxscHRyOwogICAgIH0KICAgICBlbnF1ZXVlRXZlbnQoY3JlYXRlU3VjY2Vzc0V2ZW50KCkp
OwogfQpAQCAtNTUzLDcgKzU1Myw3IEBAIHZvaWQgSURCUmVxdWVzdDo6dHJhbnNhY3Rpb25EaWRG
aW5pc2hBbmREaXNwYXRjaCgpCiAgICAgQVNTRVJUKG1fdHJhbnNhY3Rpb24tPmlzVmVyc2lvbkNo
YW5nZSgpKTsKICAgICBBU1NFUlQobV9yZWFkeVN0YXRlID09IERPTkUpOwogICAgIEFTU0VSVChz
Y3JpcHRFeGVjdXRpb25Db250ZXh0KCkpOwotICAgIG1fdHJhbnNhY3Rpb24uY2xlYXIoKTsKKyAg
ICBtX3RyYW5zYWN0aW9uID0gbnVsbHB0cjsKICAgICBtX3JlYWR5U3RhdGUgPSBQRU5ESU5HOwog
fQogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL2luZGV4ZWRkYi9JREJUcmFu
c2FjdGlvbi5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL2luZGV4ZWRkYi9JREJUcmFuc2Fj
dGlvbi5jcHAKaW5kZXggOTk0OGJjNzJiYjI1MmVhZDgwNGVkMDM3MTUzZDI0MTRlYThiMWVhNy4u
NmVjMjlmYTY3ODRjNzhlN2IwNGJhMzA0ZTI0ODYzMDczOTJlZDg5YSAxMDA2NDQKLS0tIGEvU291
cmNlL1dlYkNvcmUvTW9kdWxlcy9pbmRleGVkZGIvSURCVHJhbnNhY3Rpb24uY3BwCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL01vZHVsZXMvaW5kZXhlZGRiL0lEQlRyYW5zYWN0aW9uLmNwcApAQCAtMjQw
LDcgKzI0MCw3IEBAIHZvaWQgSURCVHJhbnNhY3Rpb246Ok9wZW5DdXJzb3JOb3RpZmllcjo6Y3Vy
c29yRmluaXNoZWQoKQogICAgIGlmIChtX2N1cnNvcikgewogICAgICAgICBtX3RyYW5zYWN0aW9u
LT51bnJlZ2lzdGVyT3BlbkN1cnNvcihtX2N1cnNvcik7CiAgICAgICAgIG1fY3Vyc29yID0gbnVs
bHB0cjsKLSAgICAgICAgbV90cmFuc2FjdGlvbi5jbGVhcigpOworICAgICAgICBtX3RyYW5zYWN0
aW9uID0gbnVsbHB0cjsKICAgICB9CiB9CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL01v
ZHVsZXMvbWVkaWFzb3VyY2UvTWVkaWFTb3VyY2UuY3BwIGIvU291cmNlL1dlYkNvcmUvTW9kdWxl
cy9tZWRpYXNvdXJjZS9NZWRpYVNvdXJjZS5jcHAKaW5kZXggOTExNzBhYTRlODJhMDE3NWZkMmE0
MDFkYWU0NTQ5NzllNzBiYTJiNC4uYzQwZDZlMzAzNjllMzk5MTNjN2ZhOTc3MmMxZWQ2Y2YzMjQw
NGUxOSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9tZWRpYXNvdXJjZS9NZWRp
YVNvdXJjZS5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9tZWRpYXNvdXJjZS9NZWRp
YVNvdXJjZS5jcHAKQEAgLTM5NCw3ICszOTQsNyBAQCB2b2lkIE1lZGlhU291cmNlOjpzZXRSZWFk
eVN0YXRlKGNvbnN0IEF0b21pY1N0cmluZyYgc3RhdGUpCiAgICAgTE9HKE1lZGlhU291cmNlLCAi
TWVkaWFTb3VyY2U6OnNldFJlYWR5U3RhdGUoJXApIDogJXMgLT4gJXMiLCB0aGlzLCBvbGRTdGF0
ZS5zdHJpbmcoKS5hc2NpaSgpLmRhdGEoKSwgc3RhdGUuc3RyaW5nKCkuYXNjaWkoKS5kYXRhKCkp
OwogCiAgICAgaWYgKHN0YXRlID09IGNsb3NlZEtleXdvcmQoKSkgewotICAgICAgICBtX3ByaXZh
dGUuY2xlYXIoKTsKKyAgICAgICAgbV9wcml2YXRlID0gbnVsbHB0cjsKICAgICAgICAgbV9tZWRp
YUVsZW1lbnQgPSBudWxscHRyOwogICAgICAgICBtX2R1cmF0aW9uID0gTWVkaWFUaW1lOjppbnZh
bGlkVGltZSgpOwogICAgIH0KQEAgLTgxMSw3ICs4MTEsNyBAQCB2b2lkIE1lZGlhU291cmNlOjpz
dG9wKCkKICAgICBtX2FzeW5jRXZlbnRRdWV1ZS5jbG9zZSgpOwogICAgIGlmICghaXNDbG9zZWQo
KSkKICAgICAgICAgc2V0UmVhZHlTdGF0ZShjbG9zZWRLZXl3b3JkKCkpOwotICAgIG1fcHJpdmF0
ZS5jbGVhcigpOworICAgIG1fcHJpdmF0ZSA9IG51bGxwdHI7CiB9CiAKIGJvb2wgTWVkaWFTb3Vy
Y2U6OmNhblN1c3BlbmRGb3JQYWdlQ2FjaGUoKSBjb25zdApkaWZmIC0tZ2l0IGEvU291cmNlL1dl
YkNvcmUvTW9kdWxlcy9tZWRpYXN0cmVhbS9SVENTZXNzaW9uRGVzY3JpcHRpb25SZXF1ZXN0SW1w
bC5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL21lZGlhc3RyZWFtL1JUQ1Nlc3Npb25EZXNj
cmlwdGlvblJlcXVlc3RJbXBsLmNwcAppbmRleCBkNzEwZGMxOGY1ZTIzY2I2ZTEzMDhkZjI4ZjY1
NmE2ODliY2IwNmQ3Li4zMDEzMzRkY2Q1MTA4NWQzMjVmNTI0ZjhlZDk5NGFlY2I4ZTY4NDQzIDEw
MDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL21lZGlhc3RyZWFtL1JUQ1Nlc3Npb25E
ZXNjcmlwdGlvblJlcXVlc3RJbXBsLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL21l
ZGlhc3RyZWFtL1JUQ1Nlc3Npb25EZXNjcmlwdGlvblJlcXVlc3RJbXBsLmNwcApAQCAtOTcsOCAr
OTcsOCBAQCBib29sIFJUQ1Nlc3Npb25EZXNjcmlwdGlvblJlcXVlc3RJbXBsOjpjYW5TdXNwZW5k
Rm9yUGFnZUNhY2hlKCkgY29uc3QKIAogdm9pZCBSVENTZXNzaW9uRGVzY3JpcHRpb25SZXF1ZXN0
SW1wbDo6Y2xlYXIoKQogewotICAgIG1fc3VjY2Vzc0NhbGxiYWNrLmNsZWFyKCk7Ci0gICAgbV9l
cnJvckNhbGxiYWNrLmNsZWFyKCk7CisgICAgbV9zdWNjZXNzQ2FsbGJhY2sgPSBudWxscHRyOwor
ICAgIG1fZXJyb3JDYWxsYmFjayA9IG51bGxwdHI7CiB9CiAKIH0gLy8gbmFtZXNwYWNlIFdlYkNv
cmUKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvbWVkaWFzdHJlYW0vUlRDU3Rh
dHNSZXF1ZXN0SW1wbC5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL21lZGlhc3RyZWFtL1JU
Q1N0YXRzUmVxdWVzdEltcGwuY3BwCmluZGV4IGRlYjE5YTlhZjkwZGNmYzQ1NjM3Mzg2OGUxNWY4
ODM1ZGZiZTRjOGYuLmQwMDBiMTFkZjE3ZmVmMTAxMGUzODk5Yjc3MDIxY2U3OTIwMWY3ZTkgMTAw
NjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvbWVkaWFzdHJlYW0vUlRDU3RhdHNSZXF1
ZXN0SW1wbC5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9tZWRpYXN0cmVhbS9SVENT
dGF0c1JlcXVlc3RJbXBsLmNwcApAQCAtMTA0LDcgKzEwNCw3IEBAIGJvb2wgUlRDU3RhdHNSZXF1
ZXN0SW1wbDo6Y2FuU3VzcGVuZEZvclBhZ2VDYWNoZSgpIGNvbnN0CiAKIHZvaWQgUlRDU3RhdHNS
ZXF1ZXN0SW1wbDo6Y2xlYXIoKQogewotICAgIG1fc3VjY2Vzc0NhbGxiYWNrLmNsZWFyKCk7Cisg
ICAgbV9zdWNjZXNzQ2FsbGJhY2sgPSBudWxscHRyOwogfQogCiAKZGlmZiAtLWdpdCBhL1NvdXJj
ZS9XZWJDb3JlL01vZHVsZXMvbWVkaWFzdHJlYW0vUlRDVm9pZFJlcXVlc3RJbXBsLmNwcCBiL1Nv
dXJjZS9XZWJDb3JlL01vZHVsZXMvbWVkaWFzdHJlYW0vUlRDVm9pZFJlcXVlc3RJbXBsLmNwcApp
bmRleCA4MmY4YTEyMmRkMzA5ZTNhZDBlNDM5NGVjOWNjMzVlZTAwOWRhZDM3Li43MDZmOTA3NThm
ZGMxNWRjOTdlZmExYTVkMzExMmM0ZTJhYjQ5ZGE2IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29y
ZS9Nb2R1bGVzL21lZGlhc3RyZWFtL1JUQ1ZvaWRSZXF1ZXN0SW1wbC5jcHAKKysrIGIvU291cmNl
L1dlYkNvcmUvTW9kdWxlcy9tZWRpYXN0cmVhbS9SVENWb2lkUmVxdWVzdEltcGwuY3BwCkBAIC05
NCw4ICs5NCw4IEBAIGJvb2wgUlRDVm9pZFJlcXVlc3RJbXBsOjpjYW5TdXNwZW5kRm9yUGFnZUNh
Y2hlKCkgY29uc3QKIAogdm9pZCBSVENWb2lkUmVxdWVzdEltcGw6OmNsZWFyKCkKIHsKLSAgICBt
X3N1Y2Nlc3NDYWxsYmFjay5jbGVhcigpOwotICAgIG1fZXJyb3JDYWxsYmFjay5jbGVhcigpOwor
ICAgIG1fc3VjY2Vzc0NhbGxiYWNrID0gbnVsbHB0cjsKKyAgICBtX2Vycm9yQ2FsbGJhY2sgPSBu
dWxscHRyOwogfQogCiB9IC8vIG5hbWVzcGFjZSBXZWJDb3JlCmRpZmYgLS1naXQgYS9Tb3VyY2Uv
V2ViQ29yZS9Nb2R1bGVzL3dlYmF1ZGlvL0F1ZGlvQ29udGV4dC5jcHAgYi9Tb3VyY2UvV2ViQ29y
ZS9Nb2R1bGVzL3dlYmF1ZGlvL0F1ZGlvQ29udGV4dC5jcHAKaW5kZXggNWEzZGVhMGE1MDcxZDhk
YWZiY2RmZTA1NWE4ZDA1Y2Q4MDM0MGRhZi4uZmFhOTk2Yjc0Y2Y4YjBmYjJiMDQzMjJkYjE3YmE2
Njg2MzYwYzliOSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy93ZWJhdWRpby9B
dWRpb0NvbnRleHQuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvd2ViYXVkaW8vQXVk
aW9Db250ZXh0LmNwcApAQCAtMjMxLDcgKzIzMSw3IEBAIHZvaWQgQXVkaW9Db250ZXh0OjpjbGVh
cigpCiB7CiAgICAgLy8gV2UgaGF2ZSB0byByZWxlYXNlIG91ciByZWZlcmVuY2UgdG8gdGhlIGRl
c3RpbmF0aW9uIG5vZGUgYmVmb3JlIHRoZSBjb250ZXh0IHdpbGwgZXZlciBiZSBkZWxldGVkIHNp
bmNlIHRoZSBkZXN0aW5hdGlvbiBub2RlIGhvbGRzIGEgcmVmZXJlbmNlIHRvIHRoZSBjb250ZXh0
LgogICAgIGlmIChtX2Rlc3RpbmF0aW9uTm9kZSkKLSAgICAgICAgbV9kZXN0aW5hdGlvbk5vZGUu
Y2xlYXIoKTsKKyAgICAgICAgbV9kZXN0aW5hdGlvbk5vZGUgPSBudWxscHRyOwogCiAgICAgLy8g
QXVkaW8gdGhyZWFkIGlzIGRlYWQuIE5vYm9keSB3aWxsIHNjaGVkdWxlIG5vZGUgZGVsZXRpb24g
YWN0aW9uLiBMZXQncyBkbyBpdCBvdXJzZWx2ZXMuCiAgICAgZG8gewpkaWZmIC0tZ2l0IGEvU291
cmNlL1dlYkNvcmUvTW9kdWxlcy93ZWJkYXRhYmFzZS9TUUxUcmFuc2FjdGlvbkJhY2tlbmQuY3Bw
IGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy93ZWJkYXRhYmFzZS9TUUxUcmFuc2FjdGlvbkJhY2tl
bmQuY3BwCmluZGV4IGRhMjU0YjY1NGYyMzVlNWExODJlNGQ3Zjg0YzM5YTE1NWU0ZTgwZDYuLmQz
MTEzODBlNDQ4NTgxYWQ5ZTQzN2QyNDVlZWEyOWY2YTlmOWMwOTYgMTAwNjQ0Ci0tLSBhL1NvdXJj
ZS9XZWJDb3JlL01vZHVsZXMvd2ViZGF0YWJhc2UvU1FMVHJhbnNhY3Rpb25CYWNrZW5kLmNwcAor
KysgYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL3dlYmRhdGFiYXNlL1NRTFRyYW5zYWN0aW9uQmFj
a2VuZC5jcHAKQEAgLTg0NSw3ICs4NDUsNyBAQCB2b2lkIFNRTFRyYW5zYWN0aW9uQmFja2VuZDo6
cmVsZWFzZU9yaWdpbkxvY2tJZk5lZWRlZCgpCiB7CiAgICAgaWYgKG1fb3JpZ2luTG9jaykgewog
ICAgICAgICBtX29yaWdpbkxvY2stPnVubG9jaygpOwotICAgICAgICBtX29yaWdpbkxvY2suY2xl
YXIoKTsKKyAgICAgICAgbV9vcmlnaW5Mb2NrID0gbnVsbHB0cjsKICAgICB9CiB9CiAKZGlmZiAt
LWdpdCBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvd2Vic29ja2V0cy9Xb3JrZXJUaHJlYWRhYmxl
V2ViU29ja2V0Q2hhbm5lbC5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL3dlYnNvY2tldHMv
V29ya2VyVGhyZWFkYWJsZVdlYlNvY2tldENoYW5uZWwuY3BwCmluZGV4IGJjYmRhZjk0YzcwMTE3
YzNkMTQzOWE4NDNlYTdjYjAzMjhjMmVlODUuLjM0YjY0ZDc3YTBmNThkOGM1N2ZiYzA4MjYyYTky
MzM1NWE4ZWQxZDYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvd2Vic29ja2V0
cy9Xb3JrZXJUaHJlYWRhYmxlV2ViU29ja2V0Q2hhbm5lbC5jcHAKKysrIGIvU291cmNlL1dlYkNv
cmUvTW9kdWxlcy93ZWJzb2NrZXRzL1dvcmtlclRocmVhZGFibGVXZWJTb2NrZXRDaGFubmVsLmNw
cApAQCAtMTI2LDcgKzEyNiw3IEBAIHZvaWQgV29ya2VyVGhyZWFkYWJsZVdlYlNvY2tldENoYW5u
ZWw6OmZhaWwoY29uc3QgU3RyaW5nJiByZWFzb24pCiB2b2lkIFdvcmtlclRocmVhZGFibGVXZWJT
b2NrZXRDaGFubmVsOjpkaXNjb25uZWN0KCkKIHsKICAgICBtX2JyaWRnZS0+ZGlzY29ubmVjdCgp
OwotICAgIG1fYnJpZGdlLmNsZWFyKCk7CisgICAgbV9icmlkZ2UgPSBudWxscHRyOwogfQogCiB2
b2lkIFdvcmtlclRocmVhZGFibGVXZWJTb2NrZXRDaGFubmVsOjpzdXNwZW5kKCkKZGlmZiAtLWdp
dCBhL1NvdXJjZS9XZWJDb3JlL2FjY2Vzc2liaWxpdHkvYXRrL0FYT2JqZWN0Q2FjaGVBdGsuY3Bw
IGIvU291cmNlL1dlYkNvcmUvYWNjZXNzaWJpbGl0eS9hdGsvQVhPYmplY3RDYWNoZUF0ay5jcHAK
aW5kZXggMmYzNWY3NDA5NzhlNzgzNTc1MjE0YzQ5NWU0M2ViNDU1YzkyNzRhNC4uYmMzODQxMTgy
YWZiMDY3MTA4YTE2NzJlODFhMzI4YTRkZTI0ZDkyZCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNv
cmUvYWNjZXNzaWJpbGl0eS9hdGsvQVhPYmplY3RDYWNoZUF0ay5jcHAKKysrIGIvU291cmNlL1dl
YkNvcmUvYWNjZXNzaWJpbGl0eS9hdGsvQVhPYmplY3RDYWNoZUF0ay5jcHAKQEAgLTE1Myw3ICsx
NTMsNyBAQCBzdGF0aWMgdm9pZCBub3RpZnlDaGlsZHJlblNlbGVjdGlvbkNoYW5nZShBY2Nlc3Np
YmlsaXR5T2JqZWN0KiBvYmplY3QpCiAKICAgICBBY2Nlc3NpYmlsaXR5T2JqZWN0KiBsaXN0T2Jq
ZWN0ID0gZ2V0TGlzdE9iamVjdChvYmplY3QpOwogICAgIGlmICghbGlzdE9iamVjdCkgewotICAg
ICAgICBvbGRMaXN0T2JqZWN0LmdldCgpID0gMDsKKyAgICAgICAgb2xkTGlzdE9iamVjdC5nZXQo
KSA9IG51bGxwdHI7CiAgICAgICAgIHJldHVybjsKICAgICB9CiAKQEAgLTE2Niw3ICsxNjYsNyBA
QCBzdGF0aWMgdm9pZCBub3RpZnlDaGlsZHJlblNlbGVjdGlvbkNoYW5nZShBY2Nlc3NpYmlsaXR5
T2JqZWN0KiBvYmplY3QpCiAgICAgLy8gZnVydGhlciBjb21wYXJpc29ucyBtYWtlIHNlbnNlLiBP
dGhlcndpc2UsIGp1c3QgcmVzZXQKICAgICAvLyBvbGRGb2N1c2VkT2JqZWN0IHNvIGl0IHdvbid0
IGJlIHRha2VuIGludG8gYWNjb3VudC4KICAgICBpZiAob2xkTGlzdE9iamVjdC5nZXQoKSAhPSBs
aXN0T2JqZWN0KQotICAgICAgICBvbGRGb2N1c2VkT2JqZWN0LmdldCgpID0gMDsKKyAgICAgICAg
b2xkRm9jdXNlZE9iamVjdC5nZXQoKSA9IG51bGxwdHI7CiAKICAgICBBdGtPYmplY3QqIGF4SXRl
bSA9IGl0ZW0gPyBpdGVtLT53cmFwcGVyKCkgOiBudWxscHRyOwogICAgIEF0a09iamVjdCogYXhP
bGRGb2N1c2VkT2JqZWN0ID0gb2xkRm9jdXNlZE9iamVjdC5nZXQoKSA/IG9sZEZvY3VzZWRPYmpl
Y3QuZ2V0KCktPndyYXBwZXIoKSA6IG51bGxwdHI7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29y
ZS9iaW5kaW5ncy9qcy9TY3JpcHRDb250cm9sbGVyLmNwcCBiL1NvdXJjZS9XZWJDb3JlL2JpbmRp
bmdzL2pzL1NjcmlwdENvbnRyb2xsZXIuY3BwCmluZGV4IDNhYmRkMmI5ZGI1YTY5YWFjNDE4ZWEx
OWQyNWE0NGY1YmY1NzA4ZDMuLmM1MTk5Y2ZkZjc5YmRlNDNjZTRlNmZmMTBkNzA1NTEwZDY1NDc1
N2QgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL2pzL1NjcmlwdENvbnRyb2xs
ZXIuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL2pzL1NjcmlwdENvbnRyb2xsZXIu
Y3BwCkBAIC0xMDIsNyArMTAyLDcgQEAgU2NyaXB0Q29udHJvbGxlcjo6flNjcmlwdENvbnRyb2xs
ZXIoKQogICAgIGlmIChtX2NhY2hlYWJsZUJpbmRpbmdSb290T2JqZWN0KSB7CiAgICAgICAgIEpT
TG9ja0hvbGRlciBsb2NrKEpTRE9NV2luZG93QmFzZTo6Y29tbW9uVk0oKSk7CiAgICAgICAgIG1f
Y2FjaGVhYmxlQmluZGluZ1Jvb3RPYmplY3QtPmludmFsaWRhdGUoKTsKLSAgICAgICAgbV9jYWNo
ZWFibGVCaW5kaW5nUm9vdE9iamVjdCA9IDA7CisgICAgICAgIG1fY2FjaGVhYmxlQmluZGluZ1Jv
b3RPYmplY3QgPSBudWxscHRyOwogICAgIH0KIAogICAgIC8vIEl0J3MgbGlrZWx5IHRoYXQgZGVz
dHJveWluZyBtX3dpbmRvd1NoZWxscyB3aWxsIGNyZWF0ZSBhIGxvdCBvZiBnYXJiYWdlLgpAQCAt
NDg5LDcgKzQ4OSw3IEBAIHZvaWQgU2NyaXB0Q29udHJvbGxlcjo6Y2xlYXJTY3JpcHRPYmplY3Rz
KCkKIAogICAgIGlmIChtX2JpbmRpbmdSb290T2JqZWN0KSB7CiAgICAgICAgIG1fYmluZGluZ1Jv
b3RPYmplY3QtPmludmFsaWRhdGUoKTsKLSAgICAgICAgbV9iaW5kaW5nUm9vdE9iamVjdCA9IDA7
CisgICAgICAgIG1fYmluZGluZ1Jvb3RPYmplY3QgPSBudWxscHRyOwogICAgIH0KIAogI2lmIEVO
QUJMRShORVRTQ0FQRV9QTFVHSU5fQVBJKQpAQCAtNDk4LDcgKzQ5OCw3IEBAIHZvaWQgU2NyaXB0
Q29udHJvbGxlcjo6Y2xlYXJTY3JpcHRPYmplY3RzKCkKICAgICAgICAgLy8gc2NyaXB0IG9iamVj
dCBwcm9wZXJseS4KICAgICAgICAgLy8gVGhpcyBzaG91bGRuJ3QgY2F1c2UgYW55IHByb2JsZW1z
IGZvciBwbHVnaW5zIHNpbmNlIHRoZXkgc2hvdWxkIGhhdmUgYWxyZWFkeSBiZWVuIHN0b3BwZWQg
YW5kIGRlc3Ryb3llZCBhdCB0aGlzIHBvaW50LgogICAgICAgICBfTlBOX0RlYWxsb2NhdGVPYmpl
Y3QobV93aW5kb3dTY3JpcHROUE9iamVjdCk7Ci0gICAgICAgIG1fd2luZG93U2NyaXB0TlBPYmpl
Y3QgPSAwOworICAgICAgICBtX3dpbmRvd1NjcmlwdE5QT2JqZWN0ID0gbnVsbHB0cjsKICAgICB9
CiAjZW5kaWYKIH0KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL2pzL1dlYkNv
cmVKU0NsaWVudERhdGEuaCBiL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL2pzL1dlYkNvcmVKU0Ns
aWVudERhdGEuaAppbmRleCA2NTQ1MTMzNWQzZDhhOTIxZjU4MTYyMmMyOWU0OTAwMGI5YTYzNjZj
Li40MzAyZDY4ZTVjOGM2ZDc4N2Q0NzI2MjQxNGJjZWI5OGQyMmUwMTllIDEwMDY0NAotLS0gYS9T
b3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9qcy9XZWJDb3JlSlNDbGllbnREYXRhLmgKKysrIGIvU291
cmNlL1dlYkNvcmUvYmluZGluZ3MvanMvV2ViQ29yZUpTQ2xpZW50RGF0YS5oCkBAIC00NCw3ICs0
NCw3IEBAIHB1YmxpYzoKICAgICAgICAgQVNTRVJUKG1fd29ybGRTZXQuY29udGFpbnMobV9ub3Jt
YWxXb3JsZC5nZXQoKSkpOwogICAgICAgICBBU1NFUlQobV93b3JsZFNldC5zaXplKCkgPT0gMSk7
CiAgICAgICAgIEFTU0VSVChtX25vcm1hbFdvcmxkLT5oYXNPbmVSZWYoKSk7Ci0gICAgICAgIG1f
bm9ybWFsV29ybGQuY2xlYXIoKTsKKyAgICAgICAgbV9ub3JtYWxXb3JsZCA9IG51bGxwdHI7CiAg
ICAgICAgIEFTU0VSVChtX3dvcmxkU2V0LmlzRW1wdHkoKSk7CiAgICAgfQogCmRpZmYgLS1naXQg
YS9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9qcy9Xb3JrZXJTY3JpcHRDb250cm9sbGVyLmNwcCBi
L1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL2pzL1dvcmtlclNjcmlwdENvbnRyb2xsZXIuY3BwCmlu
ZGV4IDkwZTBmZjUxMDg4YWE2NTQ5M2RlZWNlNWM5NGY5YTBkYzAwN2NlY2EuLjI4YzllZjBmMjcw
M2YzMjNjNjFjOGYyMjQ1ODljYzY5ZDZkZDZiZTYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3Jl
L2JpbmRpbmdzL2pzL1dvcmtlclNjcmlwdENvbnRyb2xsZXIuY3BwCisrKyBiL1NvdXJjZS9XZWJD
b3JlL2JpbmRpbmdzL2pzL1dvcmtlclNjcmlwdENvbnRyb2xsZXIuY3BwCkBAIC02Miw3ICs2Miw3
IEBAIFdvcmtlclNjcmlwdENvbnRyb2xsZXI6On5Xb3JrZXJTY3JpcHRDb250cm9sbGVyKCkKIHsK
ICAgICBKU0xvY2tIb2xkZXIgbG9jayh2bSgpKTsKICAgICBtX3dvcmtlckdsb2JhbFNjb3BlV3Jh
cHBlci5jbGVhcigpOwotICAgIG1fdm0uY2xlYXIoKTsKKyAgICBtX3ZtID0gbnVsbHB0cjsKIH0K
IAogdm9pZCBXb3JrZXJTY3JpcHRDb250cm9sbGVyOjppbml0U2NyaXB0KCkKZGlmZiAtLWdpdCBh
L1NvdXJjZS9XZWJDb3JlL2JyaWRnZS9ydW50aW1lX29iamVjdC5jcHAgYi9Tb3VyY2UvV2ViQ29y
ZS9icmlkZ2UvcnVudGltZV9vYmplY3QuY3BwCmluZGV4IDkxZjA3YmM1MzdjZjBmM2YyMDMwZjVl
ZDRmZWVjNjMyNzI0ZWIyMzguLjVkMGZhNGY4MTJhOWFkZmI4ZjI2YTk3NTFlODlkNmViZGRlZmZk
NjIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2JyaWRnZS9ydW50aW1lX29iamVjdC5jcHAK
KysrIGIvU291cmNlL1dlYkNvcmUvYnJpZGdlL3J1bnRpbWVfb2JqZWN0LmNwcApAQCAtNTksNyAr
NTksNyBAQCB2b2lkIFJ1bnRpbWVPYmplY3Q6OmludmFsaWRhdGUoKQogICAgIEFTU0VSVChtX2lu
c3RhbmNlKTsKICAgICBpZiAobV9pbnN0YW5jZSkKICAgICAgICAgbV9pbnN0YW5jZS0+d2lsbElu
dmFsaWRhdGVSdW50aW1lT2JqZWN0KCk7Ci0gICAgbV9pbnN0YW5jZSA9IDA7CisgICAgbV9pbnN0
YW5jZSA9IG51bGxwdHI7CiB9CiAKIEVuY29kZWRKU1ZhbHVlIFJ1bnRpbWVPYmplY3Q6OmZhbGxi
YWNrT2JqZWN0R2V0dGVyKEV4ZWNTdGF0ZSogZXhlYywgSlNPYmplY3QqIHNsb3RCYXNlLCBFbmNv
ZGVkSlNWYWx1ZSwgUHJvcGVydHlOYW1lIHByb3BlcnR5TmFtZSkKZGlmZiAtLWdpdCBhL1NvdXJj
ZS9XZWJDb3JlL2NvbnRlbnRleHRlbnNpb25zL0NvbnRlbnRFeHRlbnNpb25QYXJzZXIuY3BwIGIv
U291cmNlL1dlYkNvcmUvY29udGVudGV4dGVuc2lvbnMvQ29udGVudEV4dGVuc2lvblBhcnNlci5j
cHAKaW5kZXggMDIyNjUyYjJkNjlmODkxY2VhNzM5NGExMDlkN2ZiZGY1MDEyYWIyNS4uN2JmNTZl
N2Q0YjJlNjc4NmMzM2Y3ZTg5NTJmYzg1NDcyODhiNWYyYiAxMDA2NDQKLS0tIGEvU291cmNlL1dl
YkNvcmUvY29udGVudGV4dGVuc2lvbnMvQ29udGVudEV4dGVuc2lvblBhcnNlci5jcHAKKysrIGIv
U291cmNlL1dlYkNvcmUvY29udGVudGV4dGVuc2lvbnMvQ29udGVudEV4dGVuc2lvblBhcnNlci5j
cHAKQEAgLTI3Nyw3ICsyNzcsNyBAQCBzdGQ6OmVycm9yX2NvZGUgcGFyc2VSdWxlTGlzdChjb25z
dCBTdHJpbmcmIHJ1bGVzLCBWZWN0b3I8Q29udGVudEV4dGVuc2lvblJ1bGU+JgogICAgIEV4ZWNT
dGF0ZSogZXhlYyA9IGdsb2JhbE9iamVjdC0+Z2xvYmFsRXhlYygpOwogICAgIGF1dG8gZXJyb3Ig
PSBsb2FkRW5jb2RlZFJ1bGVzKCpleGVjLCBydWxlcywgcnVsZUxpc3QpOwogCi0gICAgdm0uY2xl
YXIoKTsKKyAgICB2bSA9IG51bGxwdHI7CiAKICAgICBpZiAoZXJyb3IpCiAgICAgICAgIHJldHVy
biBlcnJvcjsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2Nzcy9DU1NQYXJzZXIuY3BwIGIv
U291cmNlL1dlYkNvcmUvY3NzL0NTU1BhcnNlci5jcHAKaW5kZXggNWU4ZjA1Y2UwODE2ZTcxNjBl
NTNlNDQzYTBiMTNlNDRiODQyZjU2Ny4uOWNjMzA4YjRmODNhMDkwOWZkMzNhZDMxMDZmOGY5NmNk
NGU1MDdhMSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvY3NzL0NTU1BhcnNlci5jcHAKKysr
IGIvU291cmNlL1dlYkNvcmUvY3NzL0NTU1BhcnNlci5jcHAKQEAgLTQ1MDIsMTUgKzQ1MDIsMTUg
QEAgdm9pZCBDU1NQYXJzZXI6OnBhcnNlRmlsbFBvc2l0aW9uKENTU1BhcnNlclZhbHVlTGlzdCYg
dmFsdWVMaXN0LCBSZWZQdHI8Q1NTVmFsdWUKICAgICBpZiAodmFsdWUyKQogICAgICAgICB2YWx1
ZUxpc3QubmV4dCgpOwogICAgIGVsc2UgewotICAgICAgICB2YWx1ZTEuY2xlYXIoKTsKKyAgICAg
ICAgdmFsdWUxID0gbnVsbHB0cjsKICAgICAgICAgcmV0dXJuOwogICAgIH0KIAogICAgIFJlZlB0
cjxDU1NQcmltaXRpdmVWYWx1ZT4gcGFyc2VkVmFsdWUxID0gZG93bmNhc3Q8Q1NTUHJpbWl0aXZl
VmFsdWU+KHZhbHVlMS5nZXQoKSk7CiAgICAgUmVmUHRyPENTU1ByaW1pdGl2ZVZhbHVlPiBwYXJz
ZWRWYWx1ZTIgPSBkb3duY2FzdDxDU1NQcmltaXRpdmVWYWx1ZT4odmFsdWUyLmdldCgpKTsKIAot
ICAgIHZhbHVlMS5jbGVhcigpOwotICAgIHZhbHVlMi5jbGVhcigpOworICAgIHZhbHVlMSA9IG51
bGxwdHI7CisgICAgdmFsdWUyID0gbnVsbHB0cjsKIAogICAgIC8vIFBlciBDU1MzIHN5bnRheCwg
PHBvc2l0aW9uPiBjYW4ndCBoYXZlICdjZW50ZXInIGFzIGl0cyBzZWNvbmQga2V5d29yZCBhcyB3
ZSBoYXZlIG1vcmUgYXJndW1lbnRzIHRvIGZvbGxvdy4KICAgICBpZiAocGFyc2VkVmFsdWUyLT5n
ZXRWYWx1ZUlEKCkgPT0gQ1NTVmFsdWVDZW50ZXIpCkBAIC00NTQ5LDcgKzQ1NDksNyBAQCB2b2lk
IENTU1BhcnNlcjo6cGFyc2UyVmFsdWVzRmlsbFBvc2l0aW9uKENTU1BhcnNlclZhbHVlTGlzdCYg
dmFsdWVMaXN0LCBSZWZQdHI8QwogICAgICAgICAgICAgdmFsdWVMaXN0Lm5leHQoKTsKICAgICAg
ICAgZWxzZSB7CiAgICAgICAgICAgICBpZiAoIWluU2hvcnRoYW5kKCkpIHsKLSAgICAgICAgICAg
ICAgICB2YWx1ZTEuY2xlYXIoKTsKKyAgICAgICAgICAgICAgICB2YWx1ZTEgPSBudWxscHRyOwog
ICAgICAgICAgICAgICAgIHJldHVybjsKICAgICAgICAgICAgIH0KICAgICAgICAgfQpAQCAtNzU4
Nyw4ICs3NTg3LDggQEAgc3RydWN0IFNoYWRvd1BhcnNlQ29udGV4dCB7CiAgICAgICAgIH0KIAog
ICAgICAgICAvLyBOb3cgcmVzZXQgZm9yIHRoZSBuZXh0IHNoYWRvdyB2YWx1ZS4KLSAgICAgICAg
eCA9IDA7Ci0gICAgICAgIHkgPSAwOworICAgICAgICB4ID0gbnVsbHB0cjsKKyAgICAgICAgeSA9
IG51bGxwdHI7CiAgICAgICAgIGJsdXIgPSBudWxscHRyOwogICAgICAgICBzcHJlYWQgPSBudWxs
cHRyOwogICAgICAgICBzdHlsZSA9IG51bGxwdHI7CkBAIC0xMjE4NCw3ICsxMjE4NCw3IEBAIFBh
c3NSZWZQdHI8Q1NTUnVsZVNvdXJjZURhdGE+IENTU1BhcnNlcjo6cG9wUnVsZURhdGEoKQogICAg
ICAgICByZXR1cm4gbnVsbHB0cjsKIAogICAgIEFTU0VSVCghbV9jdXJyZW50UnVsZURhdGFTdGFj
ay0+aXNFbXB0eSgpKTsKLSAgICBtX2N1cnJlbnRSdWxlRGF0YS5jbGVhcigpOworICAgIG1fY3Vy
cmVudFJ1bGVEYXRhID0gbnVsbHB0cjsKICAgICBSZWZQdHI8Q1NTUnVsZVNvdXJjZURhdGE+IGRh
dGEgPSBtX2N1cnJlbnRSdWxlRGF0YVN0YWNrLT5sYXN0KCk7CiAgICAgbV9jdXJyZW50UnVsZURh
dGFTdGFjay0+cmVtb3ZlTGFzdCgpOwogICAgIHJldHVybiBkYXRhLnJlbGVhc2UoKTsKQEAgLTEy
NjA1LDcgKzEyNjA1LDcgQEAgdm9pZCBDU1NQYXJzZXI6Om1hcmtSdWxlQm9keVN0YXJ0KCkKIHsK
ICAgICBpZiAoIWlzRXh0cmFjdGluZ1NvdXJjZURhdGEoKSkKICAgICAgICAgcmV0dXJuOwotICAg
IG1fY3VycmVudFJ1bGVEYXRhLmNsZWFyKCk7CisgICAgbV9jdXJyZW50UnVsZURhdGEgPSBudWxs
cHRyOwogICAgIHVuc2lnbmVkIG9mZnNldCA9IHRva2VuU3RhcnRPZmZzZXQoKTsKICAgICBpZiAo
dG9rZW5TdGFydENoYXIoKSA9PSAneycpCiAgICAgICAgICsrb2Zmc2V0OyAvLyBTa2lwIHRoZSBy
dWxlIGJvZHkgb3BlbmluZyBicmFjZS4KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2Nzcy9D
U1NWYWx1ZVBvb2wuY3BwIGIvU291cmNlL1dlYkNvcmUvY3NzL0NTU1ZhbHVlUG9vbC5jcHAKaW5k
ZXggMWY0MTMxMTVhMzZkMGY0OTQzY2I1MzdhOTk0Njg5ZGRjODZmZDlkMS4uYWUzZTBmZDRhZWI2
MGQ2ZGM4ODZkYzkxYjliMDA0YzVmNWM0OTFkYSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUv
Y3NzL0NTU1ZhbHVlUG9vbC5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvY3NzL0NTU1ZhbHVlUG9v
bC5jcHAKQEAgLTE1MywxMiArMTUzLDEyIEBAIHZvaWQgQ1NTVmFsdWVQb29sOjpkcmFpbigpCiAg
ICAgbV9mb250RmFtaWx5VmFsdWVDYWNoZS5jbGVhcigpOwogCiAgICAgZm9yIChpbnQgaSA9IDA7
IGkgPCBudW1DU1NWYWx1ZUtleXdvcmRzOyArK2kpCi0gICAgICAgIG1faWRlbnRpZmllclZhbHVl
Q2FjaGVbaV0gPSAwOworICAgICAgICBtX2lkZW50aWZpZXJWYWx1ZUNhY2hlW2ldID0gbnVsbHB0
cjsKIAogICAgIGZvciAoaW50IGkgPSAwOyBpIDwgbWF4aW11bUNhY2hlYWJsZUludGVnZXJWYWx1
ZTsgKytpKSB7Ci0gICAgICAgIG1fcGl4ZWxWYWx1ZUNhY2hlW2ldID0gMDsKLSAgICAgICAgbV9w
ZXJjZW50VmFsdWVDYWNoZVtpXSA9IDA7Ci0gICAgICAgIG1fbnVtYmVyVmFsdWVDYWNoZVtpXSA9
IDA7CisgICAgICAgIG1fcGl4ZWxWYWx1ZUNhY2hlW2ldID0gbnVsbHB0cjsKKyAgICAgICAgbV9w
ZXJjZW50VmFsdWVDYWNoZVtpXSA9IG51bGxwdHI7CisgICAgICAgIG1fbnVtYmVyVmFsdWVDYWNo
ZVtpXSA9IG51bGxwdHI7CiAgICAgfQogfQogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9j
c3MvU3R5bGVQcm9wZXJ0aWVzLmNwcCBiL1NvdXJjZS9XZWJDb3JlL2Nzcy9TdHlsZVByb3BlcnRp
ZXMuY3BwCmluZGV4IGI5MDkwOGQzMWQ4ZTFkYmY2YTU5NGQwNDc3OTg5MmRkMmFhN2EwNWMuLmRl
ZGQwNzAwN2FlNWU5NWUzYTRlNDg4NDIxZTg4YTVhZWQzN2QzNjQgMTAwNjQ0Ci0tLSBhL1NvdXJj
ZS9XZWJDb3JlL2Nzcy9TdHlsZVByb3BlcnRpZXMuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2Nz
cy9TdHlsZVByb3BlcnRpZXMuY3BwCkBAIC0zOTcsOSArMzk3LDkgQEAgU3RyaW5nIFN0eWxlUHJv
cGVydGllczo6Z2V0TGF5ZXJlZFNob3J0aGFuZFZhbHVlKGNvbnN0IFN0eWxlUHJvcGVydHlTaG9y
dGhhbmQmIHMKICAgICAgICAgICAgICAgICAgICAgLy8gQ29sb3Igb25seSBiZWxvbmdzIGluIHRo
ZSBsYXN0IGxheWVyLgogICAgICAgICAgICAgICAgICAgICBpZiAoc2hvcnRoYW5kLnByb3BlcnRp
ZXMoKVtqXSA9PSBDU1NQcm9wZXJ0eUJhY2tncm91bmRDb2xvcikgewogICAgICAgICAgICAgICAg
ICAgICAgICAgaWYgKGkgIT0gbnVtTGF5ZXJzIC0gMSkKLSAgICAgICAgICAgICAgICAgICAgICAg
ICAgICB2YWx1ZSA9IDA7CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgdmFsdWUgPSBudWxs
cHRyOwogICAgICAgICAgICAgICAgICAgICB9IGVsc2UgaWYgKGkpIC8vIE90aGVyIHNpbmdsZXRv
bnMgb25seSBiZWxvbmcgaW4gdGhlIGZpcnN0IGxheWVyLgotICAgICAgICAgICAgICAgICAgICAg
ICAgdmFsdWUgPSAwOworICAgICAgICAgICAgICAgICAgICAgICAgdmFsdWUgPSBudWxscHRyOwog
ICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgIH0KIApkaWZmIC0tZ2l0IGEvU291cmNlL1dl
YkNvcmUvY3NzL1ZpZXdwb3J0U3R5bGVSZXNvbHZlci5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9jc3Mv
Vmlld3BvcnRTdHlsZVJlc29sdmVyLmNwcAppbmRleCBmODllZmYwMDg2M2FjODlkYjc3OGRiMzIz
ZmU3ODUwMTU2NmFkZjA5Li5kYmI2Y2M0ZGY0NDA0MTVhNGJjNDBlMGM5ZTBkYWE2YzEyYTU2OWJh
IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9jc3MvVmlld3BvcnRTdHlsZVJlc29sdmVyLmNw
cAorKysgYi9Tb3VyY2UvV2ViQ29yZS9jc3MvVmlld3BvcnRTdHlsZVJlc29sdmVyLmNwcApAQCAt
NzEsNyArNzEsNyBAQCB2b2lkIFZpZXdwb3J0U3R5bGVSZXNvbHZlcjo6YWRkVmlld3BvcnRSdWxl
KFN0eWxlUnVsZVZpZXdwb3J0KiB2aWV3cG9ydFJ1bGUpCiAKIHZvaWQgVmlld3BvcnRTdHlsZVJl
c29sdmVyOjpjbGVhckRvY3VtZW50KCkKIHsKLSAgICBtX2RvY3VtZW50ID0gMDsKKyAgICBtX2Rv
Y3VtZW50ID0gbnVsbHB0cjsKIH0KIAogdm9pZCBWaWV3cG9ydFN0eWxlUmVzb2x2ZXI6OnJlc29s
dmUoKQpAQCAtOTQsNyArOTQsNyBAQCB2b2lkIFZpZXdwb3J0U3R5bGVSZXNvbHZlcjo6cmVzb2x2
ZSgpCiAgICAgbV9kb2N1bWVudC0+c2V0Vmlld3BvcnRBcmd1bWVudHMoYXJndW1lbnRzKTsKICAg
ICBtX2RvY3VtZW50LT51cGRhdGVWaWV3cG9ydEFyZ3VtZW50cygpOwogCi0gICAgbV9wcm9wZXJ0
eVNldCA9IDA7CisgICAgbV9wcm9wZXJ0eVNldCA9IG51bGxwdHI7CiB9CiAKIGZsb2F0IFZpZXdw
b3J0U3R5bGVSZXNvbHZlcjo6Z2V0Vmlld3BvcnRBcmd1bWVudFZhbHVlKENTU1Byb3BlcnR5SUQg
aWQpIGNvbnN0CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9kb20vRG9jdW1lbnQuY3BwIGIv
U291cmNlL1dlYkNvcmUvZG9tL0RvY3VtZW50LmNwcAppbmRleCBlNTAyNjY5NjEyZDdjNGM1ODI4
MzRhNGMxYjE5YmIwMzg5NGVkYWY5Li5mNjQwYjdjZmJkZjE0MTg5YzFlOTg4ZjRlYmFkYjRkYzUy
OGFlMWJhIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9kb20vRG9jdW1lbnQuY3BwCisrKyBi
L1NvdXJjZS9XZWJDb3JlL2RvbS9Eb2N1bWVudC5jcHAKQEAgLTI0MjQsNyArMjQyNCw3IEBAIHZv
aWQgRG9jdW1lbnQ6OmRldGFjaFBhcnNlcigpCiAgICAgaWYgKCFtX3BhcnNlcikKICAgICAgICAg
cmV0dXJuOwogICAgIG1fcGFyc2VyLT5kZXRhY2goKTsKLSAgICBtX3BhcnNlci5jbGVhcigpOwor
ICAgIG1fcGFyc2VyID0gbnVsbHB0cjsKIH0KIAogdm9pZCBEb2N1bWVudDo6Y2FuY2VsUGFyc2lu
ZygpCkBAIC01ODgyLDcgKzU4ODIsNyBAQCB2b2lkIERvY3VtZW50OjpjbGVhclNjcmlwdGVkQW5p
bWF0aW9uQ29udHJvbGxlcigpCiAgICAgLy8gRklYTUU6IGNvbnNpZGVyIHVzaW5nIEFjdGl2ZURP
TU9iamVjdC4KICAgICBpZiAobV9zY3JpcHRlZEFuaW1hdGlvbkNvbnRyb2xsZXIpCiAgICAgICAg
IG1fc2NyaXB0ZWRBbmltYXRpb25Db250cm9sbGVyLT5jbGVhckRvY3VtZW50UG9pbnRlcigpOwot
ICAgIG1fc2NyaXB0ZWRBbmltYXRpb25Db250cm9sbGVyLmNsZWFyKCk7CisgICAgbV9zY3JpcHRl
ZEFuaW1hdGlvbkNvbnRyb2xsZXIgPSBudWxscHRyOwogfQogI2VuZGlmCiAgICAgCkBAIC02MzAw
LDcgKzYzMDAsNyBAQCB2b2lkIERvY3VtZW50Ojp1cGRhdGVIb3ZlckFjdGl2ZVN0YXRlKGNvbnN0
IEhpdFRlc3RSZXF1ZXN0JiByZXF1ZXN0LCBFbGVtZW50KiBpbgogICAgICAgICAgICAgY3Vyci0+
c2V0QWN0aXZlKGZhbHNlKTsKICAgICAgICAgICAgIG1fdXNlckFjdGlvbkVsZW1lbnRzLnNldElu
QWN0aXZlQ2hhaW4oY3VyciwgZmFsc2UpOwogICAgICAgICB9Ci0gICAgICAgIG1fYWN0aXZlRWxl
bWVudC5jbGVhcigpOworICAgICAgICBtX2FjdGl2ZUVsZW1lbnQgPSBudWxscHRyOwogICAgIH0g
ZWxzZSB7CiAgICAgICAgIEVsZW1lbnQqIG5ld0FjdGl2ZUVsZW1lbnQgPSBpbm5lckVsZW1lbnRJ
bkRvY3VtZW50OwogICAgICAgICBpZiAoIW9sZEFjdGl2ZUVsZW1lbnQgJiYgbmV3QWN0aXZlRWxl
bWVudCAmJiByZXF1ZXN0LmFjdGl2ZSgpICYmICFyZXF1ZXN0LnRvdWNoTW92ZSgpKSB7CmRpZmYg
LS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9kb20vRG9jdW1lbnRNYXJrZXIuaCBiL1NvdXJjZS9XZWJD
b3JlL2RvbS9Eb2N1bWVudE1hcmtlci5oCmluZGV4IDQ3OTQ5ZmU4MGJkZDliMTFlNjhkYWU2MjU2
ZWEyYjMzMDZmYmI0NjMuLmVjNTI0ODk0MGMxNjdlZDFjNmNhMDJiMzFkYzRlNDczNzlhNTU0MTkg
MTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2RvbS9Eb2N1bWVudE1hcmtlci5oCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL2RvbS9Eb2N1bWVudE1hcmtlci5oCkBAIC0xMzEsNyArMTMxLDcgQEAgcHVi
bGljOgogICAgIERvY3VtZW50TWFya2VyRGV0YWlscyogZGV0YWlscygpIGNvbnN0OwogCiAgICAg
dm9pZCBzZXRBY3RpdmVNYXRjaChib29sKTsKLSAgICB2b2lkIGNsZWFyRGV0YWlscygpIHsgbV9k
ZXRhaWxzLmNsZWFyKCk7IH0KKyAgICB2b2lkIGNsZWFyRGV0YWlscygpIHsgbV9kZXRhaWxzID0g
bnVsbHB0cjsgfQogCiAgICAgLy8gT2Zmc2V0IG1vZGlmaWNhdGlvbnMgYXJlIGRvbmUgYnkgRG9j
dW1lbnRNYXJrZXJDb250cm9sbGVyLgogICAgIC8vIE90aGVyIGNsYXNzZXMgc2hvdWxkIG5vdCBj
YWxsIGZvbGxvd2luZyBzZXR0ZXJzLgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvZG9tL0Rv
Y3VtZW50U3R5bGVTaGVldENvbGxlY3Rpb24uY3BwIGIvU291cmNlL1dlYkNvcmUvZG9tL0RvY3Vt
ZW50U3R5bGVTaGVldENvbGxlY3Rpb24uY3BwCmluZGV4IDFjYmJlODUxNTUyNWUwYTE1MzJjMjI4
MzZmMGU3YjNhYTNiZWRlYmEuLjMyMmFjODRiZDMxYjZlYzJkMDMyZDE5YmZjMmFjYmYzOTMzZmI0
YTQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2RvbS9Eb2N1bWVudFN0eWxlU2hlZXRDb2xs
ZWN0aW9uLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9kb20vRG9jdW1lbnRTdHlsZVNoZWV0Q29s
bGVjdGlvbi5jcHAKQEAgLTEwNCw3ICsxMDQsNyBAQCBDU1NTdHlsZVNoZWV0KiBEb2N1bWVudFN0
eWxlU2hlZXRDb2xsZWN0aW9uOjpwYWdlVXNlclNoZWV0KCkKIHZvaWQgRG9jdW1lbnRTdHlsZVNo
ZWV0Q29sbGVjdGlvbjo6Y2xlYXJQYWdlVXNlclNoZWV0KCkKIHsKICAgICBpZiAobV9wYWdlVXNl
clNoZWV0KSB7Ci0gICAgICAgIG1fcGFnZVVzZXJTaGVldCA9IDA7CisgICAgICAgIG1fcGFnZVVz
ZXJTaGVldCA9IG51bGxwdHI7CiAgICAgICAgIG1fZG9jdW1lbnQuc3R5bGVSZXNvbHZlckNoYW5n
ZWQoRGVmZXJSZWNhbGNTdHlsZSk7CiAgICAgfQogfQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNv
cmUvZG9tL0VsZW1lbnQuY3BwIGIvU291cmNlL1dlYkNvcmUvZG9tL0VsZW1lbnQuY3BwCmluZGV4
IGJlODg0ZWI1NzFhNDAyZmJiODdiMWVkYWZjMmQ1YjQzMDI0ZjgzOTguLjZjOGM5ZTE3MGJjOWVi
NjFiYzU3YjAyMDAwOTk5MGZiMzI4YjMyOTQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2Rv
bS9FbGVtZW50LmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9kb20vRWxlbWVudC5jcHAKQEAgLTMy
MDcsNyArMzIwNyw3IEBAIHZvaWQgRWxlbWVudDo6Y2xvbmVBdHRyaWJ1dGVzRnJvbUVsZW1lbnQo
Y29uc3QgRWxlbWVudCYgb3RoZXIpCiAKICAgICBvdGhlci5zeW5jaHJvbml6ZUFsbEF0dHJpYnV0
ZXMoKTsKICAgICBpZiAoIW90aGVyLm1fZWxlbWVudERhdGEpIHsKLSAgICAgICAgbV9lbGVtZW50
RGF0YS5jbGVhcigpOworICAgICAgICBtX2VsZW1lbnREYXRhID0gbnVsbHB0cjsKICAgICAgICAg
cmV0dXJuOwogICAgIH0KIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvZG9tL011dGF0aW9u
T2JzZXJ2ZXJSZWdpc3RyYXRpb24uY3BwIGIvU291cmNlL1dlYkNvcmUvZG9tL011dGF0aW9uT2Jz
ZXJ2ZXJSZWdpc3RyYXRpb24uY3BwCmluZGV4IDQ0ZThmNzBmY2I2YzQ4NGNiYjAyYTc5ODM3YTMz
MjVjMjE3M2ZmMTQuLjcwYTMxZGVjYWMzNWYxZGVhYmY4OGQwZThhODg1ZmI3ZmE4MzQxM2QgMTAw
NjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2RvbS9NdXRhdGlvbk9ic2VydmVyUmVnaXN0cmF0aW9u
LmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9kb20vTXV0YXRpb25PYnNlcnZlclJlZ2lzdHJhdGlv
bi5jcHAKQEAgLTg5LDcgKzg5LDcgQEAgdm9pZCBNdXRhdGlvbk9ic2VydmVyUmVnaXN0cmF0aW9u
OjpjbGVhclRyYW5zaWVudFJlZ2lzdHJhdGlvbnMoKQogICAgIG1fdHJhbnNpZW50UmVnaXN0cmF0
aW9uTm9kZXMgPSBudWxscHRyOwogCiAgICAgQVNTRVJUKG1fcmVnaXN0cmF0aW9uTm9kZUtlZXBB
bGl2ZSk7Ci0gICAgbV9yZWdpc3RyYXRpb25Ob2RlS2VlcEFsaXZlID0gMDsgLy8gQmFsYW5jZWQg
aW4gb2JzZXJ2ZVN1YnRyZWVOb2RlV2lsbERldGFjaC4KKyAgICBtX3JlZ2lzdHJhdGlvbk5vZGVL
ZWVwQWxpdmUgPSBudWxscHRyOyAvLyBCYWxhbmNlZCBpbiBvYnNlcnZlU3VidHJlZU5vZGVXaWxs
RGV0YWNoLgogfQogCiB2b2lkIE11dGF0aW9uT2JzZXJ2ZXJSZWdpc3RyYXRpb246OnVucmVnaXN0
ZXJBbmREZWxldGUoTXV0YXRpb25PYnNlcnZlclJlZ2lzdHJhdGlvbiogcmVnaXN0cnkpCmRpZmYg
LS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9kb20vTm9kZUl0ZXJhdG9yLmNwcCBiL1NvdXJjZS9XZWJD
b3JlL2RvbS9Ob2RlSXRlcmF0b3IuY3BwCmluZGV4IDU4YjJiOWY2NGM3NmU3ZWM2OGE3NGZjZTZl
ZWM0NTc3NjhjNWZmYTMuLjYxYWUyOGY2ZjhlOTg5N2M0ZWE2MDFiMzUzY2RhMDkxZjQyMTRjZTIg
MTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2RvbS9Ob2RlSXRlcmF0b3IuY3BwCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL2RvbS9Ob2RlSXRlcmF0b3IuY3BwCkBAIC00NSw3ICs0NSw3IEBAIE5vZGVJ
dGVyYXRvcjo6Tm9kZVBvaW50ZXI6Ok5vZGVQb2ludGVyKFBhc3NSZWZQdHI8Tm9kZT4gbiwgYm9v
bCBiKQogCiB2b2lkIE5vZGVJdGVyYXRvcjo6Tm9kZVBvaW50ZXI6OmNsZWFyKCkKIHsKLSAgICBu
b2RlLmNsZWFyKCk7CisgICAgbm9kZSA9IG51bGxwdHI7CiB9CiAKIGJvb2wgTm9kZUl0ZXJhdG9y
OjpOb2RlUG9pbnRlcjo6bW92ZVRvTmV4dChOb2RlKiByb290KQpAQCAtMTUxLDcgKzE1MSw3IEBA
IHZvaWQgTm9kZUl0ZXJhdG9yOjpkZXRhY2goKQogewogICAgIHJvb3QoKS0+ZG9jdW1lbnQoKS5k
ZXRhY2hOb2RlSXRlcmF0b3IodGhpcyk7CiAgICAgbV9kZXRhY2hlZCA9IHRydWU7Ci0gICAgbV9y
ZWZlcmVuY2VOb2RlLm5vZGUuY2xlYXIoKTsKKyAgICBtX3JlZmVyZW5jZU5vZGUubm9kZSA9IG51
bGxwdHI7CiB9CiAKIHZvaWQgTm9kZUl0ZXJhdG9yOjpub2RlV2lsbEJlUmVtb3ZlZChOb2RlJiBy
ZW1vdmVkTm9kZSkKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2RvbS9Qb3NpdGlvbi5oIGIv
U291cmNlL1dlYkNvcmUvZG9tL1Bvc2l0aW9uLmgKaW5kZXggMGYzMTZkYTg1ODhhNTE5MjlmZDQ3
NTFjOWZjYjMzYjk5MTY3MzNlYi4uNjAzZTg4ZjNlYzFiMWFjM2FhOTIyOTA1YzAxMzgxMjM4NDIw
ZGRlYiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvZG9tL1Bvc2l0aW9uLmgKKysrIGIvU291
cmNlL1dlYkNvcmUvZG9tL1Bvc2l0aW9uLmgKQEAgLTkyLDcgKzkyLDcgQEAgcHVibGljOgogCiAg
ICAgQW5jaG9yVHlwZSBhbmNob3JUeXBlKCkgY29uc3QgeyByZXR1cm4gc3RhdGljX2Nhc3Q8QW5j
aG9yVHlwZT4obV9hbmNob3JUeXBlKTsgfQogCi0gICAgdm9pZCBjbGVhcigpIHsgbV9hbmNob3JO
b2RlLmNsZWFyKCk7IG1fb2Zmc2V0ID0gMDsgbV9hbmNob3JUeXBlID0gUG9zaXRpb25Jc09mZnNl
dEluQW5jaG9yOyBtX2lzTGVnYWN5RWRpdGluZ1Bvc2l0aW9uID0gZmFsc2U7IH0KKyAgICB2b2lk
IGNsZWFyKCkgeyBtX2FuY2hvck5vZGUgPSBudWxscHRyOyBtX29mZnNldCA9IDA7IG1fYW5jaG9y
VHlwZSA9IFBvc2l0aW9uSXNPZmZzZXRJbkFuY2hvcjsgbV9pc0xlZ2FjeUVkaXRpbmdQb3NpdGlv
biA9IGZhbHNlOyB9CiAKICAgICAvLyBUaGVzZSBhcmUgYWx3YXlzIERPTSBjb21wbGlhbnQgdmFs
dWVzLiAgRWRpdGluZyBwb3NpdGlvbnMgbGlrZSBbaW1nLCAwXSAoYWthIFtpbWcsIGJlZm9yZV0p
CiAgICAgLy8gd2lsbCByZXR1cm4gaW1nLT5wYXJlbnROb2RlKCkgYW5kIGltZy0+Y29tcHV0ZU5v
ZGVJbmRleCgpIGZyb20gdGhlc2UgZnVuY3Rpb25zLgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNv
cmUvZG9tL1Byb2Nlc3NpbmdJbnN0cnVjdGlvbi5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9kb20vUHJv
Y2Vzc2luZ0luc3RydWN0aW9uLmNwcAppbmRleCAzZWNiNjQ2MzljZmFiYTYwYTVkM2I2NmUyZmFk
ZTUwZGRjYjdmMWIwLi5iMzQzY2EzYTAxYWU4ZWVmZGI1OTdlNWQ0ZTIyZTI3Yjk5M2ZlZjkwIDEw
MDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9kb20vUHJvY2Vzc2luZ0luc3RydWN0aW9uLmNwcAor
KysgYi9Tb3VyY2UvV2ViQ29yZS9kb20vUHJvY2Vzc2luZ0luc3RydWN0aW9uLmNwcApAQCAtMjgx
LDcgKzI4MSw3IEBAIHZvaWQgUHJvY2Vzc2luZ0luc3RydWN0aW9uOjpyZW1vdmVkRnJvbShDb250
YWluZXJOb2RlJiBpbnNlcnRpb25Qb2ludCkKICAgICBpZiAobV9zaGVldCkgewogICAgICAgICBB
U1NFUlQobV9zaGVldC0+b3duZXJOb2RlKCkgPT0gdGhpcyk7CiAgICAgICAgIG1fc2hlZXQtPmNs
ZWFyT3duZXJOb2RlKCk7Ci0gICAgICAgIG1fc2hlZXQgPSAwOworICAgICAgICBtX3NoZWV0ID0g
bnVsbHB0cjsKICAgICB9CiAKICAgICAvLyBJZiB3ZSdyZSBpbiBkb2N1bWVudCB0ZWFyZG93biwg
dGhlbiB3ZSBkb24ndCBuZWVkIHRvIGRvIGFueSBub3RpZmljYXRpb24gb2Ygb3VyIHNoZWV0J3Mg
cmVtb3ZhbC4KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2RvbS9SYW5nZUJvdW5kYXJ5UG9p
bnQuaCBiL1NvdXJjZS9XZWJDb3JlL2RvbS9SYW5nZUJvdW5kYXJ5UG9pbnQuaAppbmRleCBiMDRk
YzA4YjU1YmYwMjFjY2RkZmIyNmFlZTVkMzg0YjExMjZhZTAzLi41YjE0YTNkZmMxZTJlMjlmMTQ3
OWJmNDZjOWNlOGJhZDdkYmVlYjE5IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9kb20vUmFu
Z2VCb3VuZGFyeVBvaW50LmgKKysrIGIvU291cmNlL1dlYkNvcmUvZG9tL1JhbmdlQm91bmRhcnlQ
b2ludC5oCkBAIC0xMTIsOSArMTEyLDkgQEAgaW5saW5lIGludCBSYW5nZUJvdW5kYXJ5UG9pbnQ6
Om9mZnNldCgpIGNvbnN0CiAKIGlubGluZSB2b2lkIFJhbmdlQm91bmRhcnlQb2ludDo6Y2xlYXIo
KQogewotICAgIG1fY29udGFpbmVyTm9kZS5jbGVhcigpOworICAgIG1fY29udGFpbmVyTm9kZSA9
IG51bGxwdHI7CiAgICAgbV9vZmZzZXRJbkNvbnRhaW5lciA9IDA7Ci0gICAgbV9jaGlsZEJlZm9y
ZUJvdW5kYXJ5ID0gMDsKKyAgICBtX2NoaWxkQmVmb3JlQm91bmRhcnkgPSBudWxscHRyOwogfQog
CiBpbmxpbmUgdm9pZCBSYW5nZUJvdW5kYXJ5UG9pbnQ6OnNldChQYXNzUmVmUHRyPE5vZGU+IGNv
bnRhaW5lciwgaW50IG9mZnNldCwgTm9kZSogY2hpbGRCZWZvcmUpCkBAIC0xNDksNyArMTQ5LDcg
QEAgaW5saW5lIHZvaWQgUmFuZ2VCb3VuZGFyeVBvaW50OjpzZXRUb1N0YXJ0T2ZOb2RlKFBhc3NS
ZWZQdHI8Tm9kZT4gY29udGFpbmVyKQogICAgIEFTU0VSVChjb250YWluZXIpOwogICAgIG1fY29u
dGFpbmVyTm9kZSA9IGNvbnRhaW5lcjsKICAgICBtX29mZnNldEluQ29udGFpbmVyID0gMDsKLSAg
ICBtX2NoaWxkQmVmb3JlQm91bmRhcnkgPSAwOworICAgIG1fY2hpbGRCZWZvcmVCb3VuZGFyeSA9
IG51bGxwdHI7CiB9CiAKIGlubGluZSB2b2lkIFJhbmdlQm91bmRhcnlQb2ludDo6c2V0VG9FbmRP
Zk5vZGUoUGFzc1JlZlB0cjxOb2RlPiBjb250YWluZXIpCkBAIC0xNTgsNyArMTU4LDcgQEAgaW5s
aW5lIHZvaWQgUmFuZ2VCb3VuZGFyeVBvaW50OjpzZXRUb0VuZE9mTm9kZShQYXNzUmVmUHRyPE5v
ZGU+IGNvbnRhaW5lcikKICAgICBtX2NvbnRhaW5lck5vZGUgPSBjb250YWluZXI7CiAgICAgaWYg
KG1fY29udGFpbmVyTm9kZS0+b2Zmc2V0SW5DaGFyYWN0ZXJzKCkpIHsKICAgICAgICAgbV9vZmZz
ZXRJbkNvbnRhaW5lciA9IG1fY29udGFpbmVyTm9kZS0+bWF4Q2hhcmFjdGVyT2Zmc2V0KCk7Ci0g
ICAgICAgIG1fY2hpbGRCZWZvcmVCb3VuZGFyeSA9IDA7CisgICAgICAgIG1fY2hpbGRCZWZvcmVC
b3VuZGFyeSA9IG51bGxwdHI7CiAgICAgfSBlbHNlIHsKICAgICAgICAgbV9jaGlsZEJlZm9yZUJv
dW5kYXJ5ID0gbV9jb250YWluZXJOb2RlLT5sYXN0Q2hpbGQoKTsKICAgICAgICAgbV9vZmZzZXRJ
bkNvbnRhaW5lciA9IG1fY2hpbGRCZWZvcmVCb3VuZGFyeSA/IGludmFsaWRPZmZzZXQgOiAwOwpk
aWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvZG9tL1NwYWNlU3BsaXRTdHJpbmcuaCBiL1NvdXJj
ZS9XZWJDb3JlL2RvbS9TcGFjZVNwbGl0U3RyaW5nLmgKaW5kZXggZWY1NjgwMWE3NzExZGY1YTJj
YjU1ODEzYmU1NjczZjE5MDMyOGU3My4uZjg1Yjk2NDIxMmQxZGE4ZTgwMmQxNjYwODk0NmMzNzdh
ZTBiNzg1ZCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvZG9tL1NwYWNlU3BsaXRTdHJpbmcu
aAorKysgYi9Tb3VyY2UvV2ViQ29yZS9kb20vU3BhY2VTcGxpdFN0cmluZy5oCkBAIC0xMDUsNyAr
MTA1LDcgQEAgcHVibGljOgogICAgIGJvb2wgb3BlcmF0b3IhPShjb25zdCBTcGFjZVNwbGl0U3Ry
aW5nJiBvdGhlcikgY29uc3QgeyByZXR1cm4gbV9kYXRhICE9IG90aGVyLm1fZGF0YTsgfQogCiAg
ICAgdm9pZCBzZXQoY29uc3QgQXRvbWljU3RyaW5nJiwgYm9vbCBzaG91bGRGb2xkQ2FzZSk7Ci0g
ICAgdm9pZCBjbGVhcigpIHsgbV9kYXRhLmNsZWFyKCk7IH0KKyAgICB2b2lkIGNsZWFyKCkgeyBt
X2RhdGEgPSBudWxscHRyOyB9CiAKICAgICBib29sIGNvbnRhaW5zKGNvbnN0IEF0b21pY1N0cmlu
ZyYgc3RyaW5nKSBjb25zdCB7IHJldHVybiBtX2RhdGEgJiYgbV9kYXRhLT5jb250YWlucyhzdHJp
bmcpOyB9CiAgICAgYm9vbCBjb250YWluc0FsbChjb25zdCBTcGFjZVNwbGl0U3RyaW5nJiBuYW1l
cykgY29uc3QgeyByZXR1cm4gIW5hbWVzLm1fZGF0YSB8fCAobV9kYXRhICYmIG1fZGF0YS0+Y29u
dGFpbnNBbGwoKm5hbWVzLm1fZGF0YSkpOyB9CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9k
b20vU3R5bGVkRWxlbWVudC5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9kb20vU3R5bGVkRWxlbWVudC5j
cHAKaW5kZXggNWIyNjk2NmI1YzM4N2I5Yzg4N2Y4MDA2ZTBkMjUwYTU4ZjY5M2QwOS4uMGVjMGQ3
ZjVhMGVlYTlkY2IxZThlNjVlNTY5ZDYyMGRjMmQyY2MwNCAxMDA2NDQKLS0tIGEvU291cmNlL1dl
YkNvcmUvZG9tL1N0eWxlZEVsZW1lbnQuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2RvbS9TdHls
ZWRFbGVtZW50LmNwcApAQCAtMTg1LDcgKzE4NSw3IEBAIGlubGluZSB2b2lkIFN0eWxlZEVsZW1l
bnQ6OnNldElubGluZVN0eWxlRnJvbVN0cmluZyhjb25zdCBBdG9taWNTdHJpbmcmIG5ld1N0eWxl
CiAgICAgLy8gV2UgcmVjb25zdHJ1Y3QgdGhlIHByb3BlcnR5IHNldCBpbnN0ZWFkIG9mIG11dGF0
aW5nIGlmIHRoZXJlIGlzIG5vIENTU09NIHdyYXBwZXIuCiAgICAgLy8gVGhpcyBtYWtlcyB3cmFw
cGVybGVzcyBwcm9wZXJ0eSBzZXRzIGltbXV0YWJsZSBhbmQgc28gY2FjaGVhYmxlLgogICAgIGlm
IChpbmxpbmVTdHlsZSAmJiAhaXM8TXV0YWJsZVN0eWxlUHJvcGVydGllcz4oKmlubGluZVN0eWxl
KSkKLSAgICAgICAgaW5saW5lU3R5bGUuY2xlYXIoKTsKKyAgICAgICAgaW5saW5lU3R5bGUgPSBu
dWxscHRyOwogCiAgICAgaWYgKCFpbmxpbmVTdHlsZSkKICAgICAgICAgaW5saW5lU3R5bGUgPSBD
U1NQYXJzZXI6OnBhcnNlSW5saW5lU3R5bGVEZWNsYXJhdGlvbihuZXdTdHlsZVN0cmluZywgdGhp
cyk7CkBAIC0yMDIsNyArMjAyLDcgQEAgdm9pZCBTdHlsZWRFbGVtZW50OjpzdHlsZUF0dHJpYnV0
ZUNoYW5nZWQoY29uc3QgQXRvbWljU3RyaW5nJiBuZXdTdHlsZVN0cmluZywgQXQKICAgICBpZiAo
bmV3U3R5bGVTdHJpbmcuaXNOdWxsKCkpIHsKICAgICAgICAgaWYgKFByb3BlcnR5U2V0Q1NTU3R5
bGVEZWNsYXJhdGlvbiogY3Nzb21XcmFwcGVyID0gaW5saW5lU3R5bGVDU1NPTVdyYXBwZXIoKSkK
ICAgICAgICAgICAgIGNzc29tV3JhcHBlci0+Y2xlYXJQYXJlbnRFbGVtZW50KCk7Ci0gICAgICAg
IGVuc3VyZVVuaXF1ZUVsZW1lbnREYXRhKCkubV9pbmxpbmVTdHlsZS5jbGVhcigpOworICAgICAg
ICBlbnN1cmVVbmlxdWVFbGVtZW50RGF0YSgpLm1faW5saW5lU3R5bGUgPSBudWxscHRyOwogICAg
IH0gZWxzZSBpZiAocmVhc29uID09IE1vZGlmaWVkQnlDbG9uaW5nIHx8IGRvY3VtZW50KCkuY29u
dGVudFNlY3VyaXR5UG9saWN5KCktPmFsbG93SW5saW5lU3R5bGUoZG9jdW1lbnQoKS51cmwoKSwg
c3RhcnRMaW5lTnVtYmVyKSkKICAgICAgICAgc2V0SW5saW5lU3R5bGVGcm9tU3RyaW5nKG5ld1N0
eWxlU3RyaW5nKTsKIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvZG9tL2RlZmF1bHQvUGxh
dGZvcm1NZXNzYWdlUG9ydENoYW5uZWwuY3BwIGIvU291cmNlL1dlYkNvcmUvZG9tL2RlZmF1bHQv
UGxhdGZvcm1NZXNzYWdlUG9ydENoYW5uZWwuY3BwCmluZGV4IGM2ODYxMWZjOGZjN2JlY2ZhZGY4
ZDg0ODNiMTRmZjkwOGNmNDYxZmEuLmM0MTc0ODYzNzQ5MTczNjczM2Y3YzI5MWE0NmU1YTlkMTdi
N2QyNzYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2RvbS9kZWZhdWx0L1BsYXRmb3JtTWVz
c2FnZVBvcnRDaGFubmVsLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9kb20vZGVmYXVsdC9QbGF0
Zm9ybU1lc3NhZ2VQb3J0Q2hhbm5lbC5jcHAKQEAgLTE4Myw5ICsxODMsOSBAQCB2b2lkIFBsYXRm
b3JtTWVzc2FnZVBvcnRDaGFubmVsOjpjbG9zZUludGVybmFsKCkKIHsKICAgICBNdXRleExvY2tl
ciBsb2NrKG1fbXV0ZXgpOwogICAgIC8vIERpc2VudGFuZ2xlIG91cnNlbHZlcyBmcm9tIHRoZSBv
dGhlciBlbmQuIFdlIHN0aWxsIG1haW50YWluIGEgcmVmZXJlbmNlIHRvIG91ciBpbmNvbWluZyBx
dWV1ZSwgc2luY2UgcHJldmlvdXNseS1leGlzdGluZyBtZXNzYWdlcyBzaG91bGQgc3RpbGwgYmUg
ZGVsaXZlcmVkLgotICAgIG1fcmVtb3RlUG9ydCA9IDA7Ci0gICAgbV9lbnRhbmdsZWRDaGFubmVs
ID0gMDsKLSAgICBtX291dGdvaW5nUXVldWUgPSAwOworICAgIG1fcmVtb3RlUG9ydCA9IG51bGxw
dHI7CisgICAgbV9lbnRhbmdsZWRDaGFubmVsID0gbnVsbHB0cjsKKyAgICBtX291dGdvaW5nUXVl
dWUgPSBudWxscHRyOwogfQogCiB9IC8vIG5hbWVzcGFjZSBXZWJDb3JlCmRpZmYgLS1naXQgYS9T
b3VyY2UvV2ViQ29yZS9lZGl0aW5nL0FsdGVybmF0aXZlVGV4dENvbnRyb2xsZXIuY3BwIGIvU291
cmNlL1dlYkNvcmUvZWRpdGluZy9BbHRlcm5hdGl2ZVRleHRDb250cm9sbGVyLmNwcAppbmRleCBm
NWJjOTQ4OTFjYWY3ZTcwOTdhMDNlMjcyOWU3MjhmMjYzNmYwOGJkLi4yNzVlNDMwZWI3M2MxNGNh
MmNmZjMzYzY1Nzc2MWU0NjE5ZTVlYWU5IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9lZGl0
aW5nL0FsdGVybmF0aXZlVGV4dENvbnRyb2xsZXIuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2Vk
aXRpbmcvQWx0ZXJuYXRpdmVUZXh0Q29udHJvbGxlci5jcHAKQEAgLTE0Nyw3ICsxNDcsNyBAQCB2
b2lkIEFsdGVybmF0aXZlVGV4dENvbnRyb2xsZXI6OnN0YXJ0QWx0ZXJuYXRpdmVUZXh0VUlUaW1l
cihBbHRlcm5hdGl2ZVRleHRUeXBlCiAKICAgICAvLyBJZiB0eXBlIGlzIFBhbmVsVHlwZVJldmVy
c2lvbiwgdGhlbiB0aGUgbmV3IHJhbmdlIGhhcyBiZWVuIHNldC4gU28gd2Ugc2hvdWxkbid0IGNs
ZWFyIGl0LgogICAgIGlmICh0eXBlID09IEFsdGVybmF0aXZlVGV4dFR5cGVDb3JyZWN0aW9uKQot
ICAgICAgICBtX2FsdGVybmF0aXZlVGV4dEluZm8ucmFuZ2VXaXRoQWx0ZXJuYXRpdmUuY2xlYXIo
KTsKKyAgICAgICAgbV9hbHRlcm5hdGl2ZVRleHRJbmZvLnJhbmdlV2l0aEFsdGVybmF0aXZlID0g
bnVsbHB0cjsKICAgICBtX2FsdGVybmF0aXZlVGV4dEluZm8udHlwZSA9IHR5cGU7CiAgICAgbV90
aW1lci5zdGFydE9uZVNob3QoY29ycmVjdGlvblBhbmVsVGltZXJJbnRlcnZhbCk7CiB9CkBAIC0x
NTUsNyArMTU1LDcgQEAgdm9pZCBBbHRlcm5hdGl2ZVRleHRDb250cm9sbGVyOjpzdGFydEFsdGVy
bmF0aXZlVGV4dFVJVGltZXIoQWx0ZXJuYXRpdmVUZXh0VHlwZQogdm9pZCBBbHRlcm5hdGl2ZVRl
eHRDb250cm9sbGVyOjpzdG9wQWx0ZXJuYXRpdmVUZXh0VUlUaW1lcigpCiB7CiAgICAgbV90aW1l
ci5zdG9wKCk7Ci0gICAgbV9hbHRlcm5hdGl2ZVRleHRJbmZvLnJhbmdlV2l0aEFsdGVybmF0aXZl
LmNsZWFyKCk7CisgICAgbV9hbHRlcm5hdGl2ZVRleHRJbmZvLnJhbmdlV2l0aEFsdGVybmF0aXZl
ID0gbnVsbHB0cjsKIH0KIAogdm9pZCBBbHRlcm5hdGl2ZVRleHRDb250cm9sbGVyOjpzdG9wUGVu
ZGluZ0NvcnJlY3Rpb24oY29uc3QgVmlzaWJsZVNlbGVjdGlvbiYgb2xkU2VsZWN0aW9uKQpAQCAt
MTgzLDcgKzE4Myw3IEBAIHZvaWQgQWx0ZXJuYXRpdmVUZXh0Q29udHJvbGxlcjo6YXBwbHlQZW5k
aW5nQ29ycmVjdGlvbihjb25zdCBWaXNpYmxlU2VsZWN0aW9uJiBzCiAgICAgaWYgKGRvQXBwbHlD
b3JyZWN0aW9uKQogICAgICAgICBoYW5kbGVBbHRlcm5hdGl2ZVRleHRVSVJlc3VsdChkaXNtaXNz
U29vbihSZWFzb25Gb3JEaXNtaXNzaW5nQWx0ZXJuYXRpdmVUZXh0QWNjZXB0ZWQpKTsgCiAgICAg
ZWxzZQotICAgICAgICBtX2FsdGVybmF0aXZlVGV4dEluZm8ucmFuZ2VXaXRoQWx0ZXJuYXRpdmUu
Y2xlYXIoKTsKKyAgICAgICAgbV9hbHRlcm5hdGl2ZVRleHRJbmZvLnJhbmdlV2l0aEFsdGVybmF0
aXZlID0gbnVsbHB0cjsKIH0KIAogYm9vbCBBbHRlcm5hdGl2ZVRleHRDb250cm9sbGVyOjpoYXNQ
ZW5kaW5nQ29ycmVjdGlvbigpIGNvbnN0CkBAIC0zNTksNyArMzU5LDcgQEAgdm9pZCBBbHRlcm5h
dGl2ZVRleHRDb250cm9sbGVyOjp0aW1lckZpcmVkKCkKICAgICAgICAgVmVjdG9yPFN0cmluZz4g
c3VnZ2VzdGlvbnM7CiAgICAgICAgIHRleHRDaGVja2VyKCktPmdldEd1ZXNzZXNGb3JXb3JkKG1f
YWx0ZXJuYXRpdmVUZXh0SW5mby5vcmlnaW5hbFRleHQsIHBhcmFncmFwaFRleHQsIHN1Z2dlc3Rp
b25zKTsKICAgICAgICAgaWYgKHN1Z2dlc3Rpb25zLmlzRW1wdHkoKSkgewotICAgICAgICAgICAg
bV9hbHRlcm5hdGl2ZVRleHRJbmZvLnJhbmdlV2l0aEFsdGVybmF0aXZlLmNsZWFyKCk7CisgICAg
ICAgICAgICBtX2FsdGVybmF0aXZlVGV4dEluZm8ucmFuZ2VXaXRoQWx0ZXJuYXRpdmUgPSBudWxs
cHRyOwogICAgICAgICAgICAgYnJlYWs7CiAgICAgICAgIH0KICAgICAgICAgU3RyaW5nIHRvcFN1
Z2dlc3Rpb24gPSBzdWdnZXN0aW9ucy5maXJzdCgpOwpAQCAtNDIyLDcgKzQyMiw3IEBAIHZvaWQg
QWx0ZXJuYXRpdmVUZXh0Q29udHJvbGxlcjo6aGFuZGxlQWx0ZXJuYXRpdmVUZXh0VUlSZXN1bHQo
Y29uc3QgU3RyaW5nJiByZXN1CiAgICAgICAgIGJyZWFrOwogICAgIH0KIAotICAgIG1fYWx0ZXJu
YXRpdmVUZXh0SW5mby5yYW5nZVdpdGhBbHRlcm5hdGl2ZS5jbGVhcigpOworICAgIG1fYWx0ZXJu
YXRpdmVUZXh0SW5mby5yYW5nZVdpdGhBbHRlcm5hdGl2ZSA9IG51bGxwdHI7CiB9CiAKIGJvb2wg
QWx0ZXJuYXRpdmVUZXh0Q29udHJvbGxlcjo6aXNBdXRvbWF0aWNTcGVsbGluZ0NvcnJlY3Rpb25F
bmFibGVkKCkKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2VkaXRpbmcvQXBwbHlCbG9ja0Vs
ZW1lbnRDb21tYW5kLmNwcCBiL1NvdXJjZS9XZWJDb3JlL2VkaXRpbmcvQXBwbHlCbG9ja0VsZW1l
bnRDb21tYW5kLmNwcAppbmRleCA0MzNlOTUzNjY0ZjcwMWQxMjEyNmZiNDAzYTY3Y2JmYmE3ZjRm
MDg4Li4yMWFiZTcxY2M4ZWRkNTBmMTYzNGYwNDMzMGE4YzEyYmNjOTE2NWVlIDEwMDY0NAotLS0g
YS9Tb3VyY2UvV2ViQ29yZS9lZGl0aW5nL0FwcGx5QmxvY2tFbGVtZW50Q29tbWFuZC5jcHAKKysr
IGIvU291cmNlL1dlYkNvcmUvZWRpdGluZy9BcHBseUJsb2NrRWxlbWVudENvbW1hbmQuY3BwCkBA
IC0xNDMsNyArMTQzLDcgQEAgdm9pZCBBcHBseUJsb2NrRWxlbWVudENvbW1hbmQ6OmZvcm1hdFNl
bGVjdGlvbihjb25zdCBWaXNpYmxlUG9zaXRpb24mIHN0YXJ0T2ZTZWwKICAgICAgICAgLy8gRG9u
J3QgcHV0IHRoZSBuZXh0IHBhcmFncmFwaCBpbiB0aGUgYmxvY2txdW90ZSB3ZSBqdXN0IGNyZWF0
ZWQgZm9yIHRoaXMgcGFyYWdyYXBoIHVubGVzcyAKICAgICAgICAgLy8gdGhlIG5leHQgcGFyYWdy
YXBoIGlzIGluIHRoZSBzYW1lIGNlbGwuCiAgICAgICAgIGlmIChlbmNsb3NpbmdDZWxsICYmIGVu
Y2xvc2luZ0NlbGwgIT0gZW5jbG9zaW5nTm9kZU9mVHlwZShlbmRPZk5leHRQYXJhZ3JhcGguZGVl
cEVxdWl2YWxlbnQoKSwgJmlzVGFibGVDZWxsKSkKLSAgICAgICAgICAgIGJsb2NrcXVvdGVGb3JO
ZXh0SW5kZW50ID0gMDsKKyAgICAgICAgICAgIGJsb2NrcXVvdGVGb3JOZXh0SW5kZW50ID0gbnVs
bHB0cjsKIAogICAgICAgICAvLyBpbmRlbnRJbnRvQmxvY2txdW90ZSBjb3VsZCBtb3ZlIG1vcmUg
dGhhbiBvbmUgcGFyYWdyYXBoIGlmIHRoZSBwYXJhZ3JhcGgKICAgICAgICAgLy8gaXMgaW4gYSBs
aXN0IGl0ZW0gb3IgYSB0YWJsZS4gQXMgYSByZXN1bHQsIGVuZEFmdGVyU2VsZWN0aW9uIGNvdWxk
IHJlZmVyIHRvIGEgcG9zaXRpb24KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2VkaXRpbmcv
RGVsZXRlU2VsZWN0aW9uQ29tbWFuZC5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9lZGl0aW5nL0RlbGV0
ZVNlbGVjdGlvbkNvbW1hbmQuY3BwCmluZGV4IGViM2E1ZjMwYTAzZjI4NGUyMjYwZmY0OGZiYTlm
MWI5OTlhZDk5MjcuLmM2NDkxZDI2OTI2NWU1YWI2Y2U5NjVlYWE5NTM0MWI2NTQ0N2QxYWUgMTAw
NjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2VkaXRpbmcvRGVsZXRlU2VsZWN0aW9uQ29tbWFuZC5j
cHAKKysrIGIvU291cmNlL1dlYkNvcmUvZWRpdGluZy9EZWxldGVTZWxlY3Rpb25Db21tYW5kLmNw
cApAQCAtMzAyLDcgKzMwMiw3IEBAIHZvaWQgRGVsZXRlU2VsZWN0aW9uQ29tbWFuZDo6c2F2ZVR5
cGluZ1N0eWxlU3RhdGUoKQogICAgIGlmIChlbmNsb3NpbmdOb2RlT2ZUeXBlKG1fc2VsZWN0aW9u
VG9EZWxldGUuc3RhcnQoKSwgaXNNYWlsQmxvY2txdW90ZSkpCiAgICAgICAgIG1fZGVsZXRlSW50
b0Jsb2NrcXVvdGVTdHlsZSA9IEVkaXRpbmdTdHlsZTo6Y3JlYXRlKG1fc2VsZWN0aW9uVG9EZWxl
dGUuZW5kKCkpOwogICAgIGVsc2UKLSAgICAgICAgbV9kZWxldGVJbnRvQmxvY2txdW90ZVN0eWxl
ID0gMDsKKyAgICAgICAgbV9kZWxldGVJbnRvQmxvY2txdW90ZVN0eWxlID0gbnVsbHB0cjsKIH0K
IAogYm9vbCBEZWxldGVTZWxlY3Rpb25Db21tYW5kOjpoYW5kbGVTcGVjaWFsQ2FzZUJSRGVsZXRl
KCkKQEAgLTcyOCwxMSArNzI4LDExIEBAIHZvaWQgRGVsZXRlU2VsZWN0aW9uQ29tbWFuZDo6Y2Fs
Y3VsYXRlVHlwaW5nU3R5bGVBZnRlckRlbGV0ZSgpCiAgICAgLy8gSWYgd2UgZGVsZXRlZCBpbnRv
IGEgYmxvY2txdW90ZSwgYnV0IGFyZSBub3cgbm8gbG9uZ2VyIGluIGEgYmxvY2txdW90ZSwgdXNl
IHRoZSBhbHRlcm5hdGUgdHlwaW5nIHN0eWxlCiAgICAgaWYgKG1fZGVsZXRlSW50b0Jsb2NrcXVv
dGVTdHlsZSAmJiAhZW5jbG9zaW5nTm9kZU9mVHlwZShtX2VuZGluZ1Bvc2l0aW9uLCBpc01haWxC
bG9ja3F1b3RlLCBDYW5Dcm9zc0VkaXRpbmdCb3VuZGFyeSkpCiAgICAgICAgIG1fdHlwaW5nU3R5
bGUgPSBtX2RlbGV0ZUludG9CbG9ja3F1b3RlU3R5bGU7Ci0gICAgbV9kZWxldGVJbnRvQmxvY2tx
dW90ZVN0eWxlID0gMDsKKyAgICBtX2RlbGV0ZUludG9CbG9ja3F1b3RlU3R5bGUgPSBudWxscHRy
OwogCiAgICAgbV90eXBpbmdTdHlsZS0+cHJlcGFyZVRvQXBwbHlBdChtX2VuZGluZ1Bvc2l0aW9u
KTsKICAgICBpZiAobV90eXBpbmdTdHlsZS0+aXNFbXB0eSgpKQotICAgICAgICBtX3R5cGluZ1N0
eWxlID0gMDsKKyAgICAgICAgbV90eXBpbmdTdHlsZSA9IG51bGxwdHI7CiAgICAgLy8gVGhpcyBp
cyB3aGVyZSB3ZSd2ZSBkZWxldGVkIGFsbCB0cmFjZXMgb2YgYSBzdHlsZSBidXQgbm90IGEgd2hv
bGUgcGFyYWdyYXBoICh0aGF0J3MgaGFuZGxlZCBhYm92ZSkuCiAgICAgLy8gSW4gdGhpcyBjYXNl
IGlmIHdlIHN0YXJ0IHR5cGluZywgdGhlIG5ldyBjaGFyYWN0ZXJzIHNob3VsZCBoYXZlIHRoZSBz
YW1lIHN0eWxlIGFzIHRoZSBqdXN0IGRlbGV0ZWQgb25lcywKICAgICAvLyBidXQsIGlmIHdlIGNo
YW5nZSB0aGUgc2VsZWN0aW9uLCBjb21lIGJhY2sgYW5kIHN0YXJ0IHR5cGluZyB0aGF0IHN0eWxl
IHNob3VsZCBiZSBsb3N0LiAgQWxzbyBzZWUgCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9l
ZGl0aW5nL0VkaXRpbmdTdHlsZS5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9lZGl0aW5nL0VkaXRpbmdT
dHlsZS5jcHAKaW5kZXggNWNmMTJjZDliNzM4YTFkZDc0MGQ1ZWNkNTViZDU5NzJkOWVkMjY2MS4u
MTdhYWIyOTViYTZiOTJkYWUyYTcyNDRkYzE1NjhlZmYyZjU1NzQ3YSAxMDA2NDQKLS0tIGEvU291
cmNlL1dlYkNvcmUvZWRpdGluZy9FZGl0aW5nU3R5bGUuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3Jl
L2VkaXRpbmcvRWRpdGluZ1N0eWxlLmNwcApAQCAtNjM4LDcgKzYzOCw3IEBAIHZvaWQgRWRpdGlu
Z1N0eWxlOjpvdmVycmlkZVR5cGluZ1N0eWxlQXQoY29uc3QgRWRpdGluZ1N0eWxlJiBzdHlsZSwg
Y29uc3QgUG9zaXRpCiAKIHZvaWQgRWRpdGluZ1N0eWxlOjpjbGVhcigpCiB7Ci0gICAgbV9tdXRh
YmxlU3R5bGUuY2xlYXIoKTsKKyAgICBtX211dGFibGVTdHlsZSA9IG51bGxwdHI7CiAgICAgbV9z
aG91bGRVc2VGaXhlZERlZmF1bHRGb250U2l6ZSA9IGZhbHNlOwogICAgIG1fZm9udFNpemVEZWx0
YSA9IE5vRm9udERlbHRhOwogICAgIHNldFVuZGVybGluZUNoYW5nZShUZXh0RGVjb3JhdGlvbkNo
YW5nZTo6Tm9uZSk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9lZGl0aW5nL0VkaXRvci5j
cHAgYi9Tb3VyY2UvV2ViQ29yZS9lZGl0aW5nL0VkaXRvci5jcHAKaW5kZXggYTNjM2M5YzNiNDM0
NDI5NzUxZjczZWYxOTI4YzQxOWM5NWQ1YTk3Yy4uZTc2ODdlYzI0NjUwMDVkYjU3NDZmZTZjNGFk
ZjZjMTU4Njg3YjM3NCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvZWRpdGluZy9FZGl0b3Iu
Y3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2VkaXRpbmcvRWRpdG9yLmNwcApAQCAtODI4LDcgKzgy
OCw3IEBAIHZvaWQgRWRpdG9yOjpyZW1vdmVGb3JtYXR0aW5nQW5kU3R5bGUoKQogCiB2b2lkIEVk
aXRvcjo6Y2xlYXJMYXN0RWRpdENvbW1hbmQoKSAKIHsKLSAgICBtX2xhc3RFZGl0Q29tbWFuZC5j
bGVhcigpOworICAgIG1fbGFzdEVkaXRDb21tYW5kID0gbnVsbHB0cjsKIH0KICNpZiBQTEFURk9S
TShJT1MpCiAvLyBJZiB0aGUgc2VsZWN0aW9uIGlzIGFkanVzdGVkIGZyb20gVUlLaXQgd2l0aG91
dCBjbG9zaW5nIHRoZSB0eXBpbmcsIHRoZSB0eXBpbmcgY29tbWFuZCBtYXkKQEAgLTEwNjYsNyAr
MTA2Niw3IEBAIHZvaWQgRWRpdG9yOjp1bmFwcGxpZWRFZGl0aW5nKFBhc3NSZWZQdHI8RWRpdENv
bW1hbmRDb21wb3NpdGlvbj4gY21kKQogCiAgICAgbV9hbHRlcm5hdGl2ZVRleHRDb250cm9sbGVy
LT5yZXNwb25kVG9VbmFwcGxpZWRFZGl0aW5nKGNtZC5nZXQoKSk7CiAKLSAgICBtX2xhc3RFZGl0
Q29tbWFuZCA9IDA7CisgICAgbV9sYXN0RWRpdENvbW1hbmQgPSBudWxscHRyOwogICAgIGlmIChj
bGllbnQoKSkKICAgICAgICAgY2xpZW50KCktPnJlZ2lzdGVyUmVkb1N0ZXAoY21kKTsKICAgICBy
ZXNwb25kVG9DaGFuZ2VkQ29udGVudHMobmV3U2VsZWN0aW9uKTsKQEAgLTEwODQsNyArMTA4NCw3
IEBAIHZvaWQgRWRpdG9yOjpyZWFwcGxpZWRFZGl0aW5nKFBhc3NSZWZQdHI8RWRpdENvbW1hbmRD
b21wb3NpdGlvbj4gY21kKQogICAgIAogICAgIHVwZGF0ZUVkaXRvclVJTm93SWZTY2hlZHVsZWQo
KTsKIAotICAgIG1fbGFzdEVkaXRDb21tYW5kID0gMDsKKyAgICBtX2xhc3RFZGl0Q29tbWFuZCA9
IG51bGxwdHI7CiAgICAgaWYgKGNsaWVudCgpKQogICAgICAgICBjbGllbnQoKS0+cmVnaXN0ZXJV
bmRvU3RlcChjbWQpOwogICAgIHJlc3BvbmRUb0NoYW5nZWRDb250ZW50cyhuZXdTZWxlY3Rpb24p
OwpAQCAtMTcyNyw3ICsxNzI3LDcgQEAgdm9pZCBFZGl0b3I6OnNldENvbXBvc2l0aW9uKGNvbnN0
IFN0cmluZyYgdGV4dCwgU2V0Q29tcG9zaXRpb25Nb2RlIG1vZGUpCiAgICAgaWYgKHRleHQuaXNF
bXB0eSgpICYmIG1vZGUgIT0gQ2FuY2VsQ29tcG9zaXRpb24pCiAgICAgICAgIFR5cGluZ0NvbW1h
bmQ6OmRlbGV0ZVNlbGVjdGlvbihkb2N1bWVudCgpLCAwKTsKIAotICAgIG1fY29tcG9zaXRpb25O
b2RlID0gMDsKKyAgICBtX2NvbXBvc2l0aW9uTm9kZSA9IG51bGxwdHI7CiAgICAgbV9jdXN0b21D
b21wb3NpdGlvblVuZGVybGluZXMuY2xlYXIoKTsKIAogICAgIGluc2VydFRleHRGb3JDb25maXJt
ZWRDb21wb3NpdGlvbih0ZXh0KTsKQEAgLTE4MDIsNyArMTgwMiw3IEBAIHZvaWQgRWRpdG9yOjpz
ZXRDb21wb3NpdGlvbihjb25zdCBTdHJpbmcmIHRleHQsIGNvbnN0IFZlY3RvcjxDb21wb3NpdGlv
blVuZGVybGluCiAgICAgaWYgKHRleHQuaXNFbXB0eSgpKQogICAgICAgICBUeXBpbmdDb21tYW5k
OjpkZWxldGVTZWxlY3Rpb24oZG9jdW1lbnQoKSwgVHlwaW5nQ29tbWFuZDo6UHJldmVudFNwZWxs
Q2hlY2tpbmcpOwogCi0gICAgbV9jb21wb3NpdGlvbk5vZGUgPSAwOworICAgIG1fY29tcG9zaXRp
b25Ob2RlID0gbnVsbHB0cjsKICAgICBtX2N1c3RvbUNvbXBvc2l0aW9uVW5kZXJsaW5lcy5jbGVh
cigpOwogCiAgICAgaWYgKCF0ZXh0LmlzRW1wdHkoKSkgewpkaWZmIC0tZ2l0IGEvU291cmNlL1dl
YkNvcmUvZWRpdGluZy9GcmFtZVNlbGVjdGlvbi5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9lZGl0aW5n
L0ZyYW1lU2VsZWN0aW9uLmNwcAppbmRleCBiMGUyNTM1ODdmZDhhZGNkZTM0ZDhiYjIxYWIzYWVm
Yjg2M2Q2YjgyLi5mYTA4ODM3MTI1MzcxYTExY2I4Nzk5OGZhNGExNTcxZGQxODRmYjMzIDEwMDY0
NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9lZGl0aW5nL0ZyYW1lU2VsZWN0aW9uLmNwcAorKysgYi9T
b3VyY2UvV2ViQ29yZS9lZGl0aW5nL0ZyYW1lU2VsZWN0aW9uLmNwcApAQCAtMTM1OSw3ICsxMzU5
LDcgQEAgdm9pZCBGcmFtZVNlbGVjdGlvbjo6cHJlcGFyZUZvckRlc3RydWN0aW9uKCkKICAgICAg
ICAgdmlldy0+Y2xlYXJTZWxlY3Rpb24oKTsKIAogICAgIHNldFNlbGVjdGlvbldpdGhvdXRVcGRh
dGluZ0FwcGVhcmFuY2UoVmlzaWJsZVNlbGVjdGlvbigpLCBkZWZhdWx0U2V0U2VsZWN0aW9uT3B0
aW9ucygpLCBBbGlnbkN1cnNvck9uU2Nyb2xsSWZOZWVkZWQsIENoYXJhY3RlckdyYW51bGFyaXR5
KTsKLSAgICBtX3ByZXZpb3VzQ2FyZXROb2RlLmNsZWFyKCk7CisgICAgbV9wcmV2aW91c0NhcmV0
Tm9kZSA9IG51bGxwdHI7CiB9CiAKIHZvaWQgRnJhbWVTZWxlY3Rpb246OnNldFN0YXJ0KGNvbnN0
IFZpc2libGVQb3NpdGlvbiAmcG9zLCBFVXNlclRyaWdnZXJlZCB0cmlnZ2VyKQpkaWZmIC0tZ2l0
IGEvU291cmNlL1dlYkNvcmUvZWRpdGluZy9GcmFtZVNlbGVjdGlvbi5oIGIvU291cmNlL1dlYkNv
cmUvZWRpdGluZy9GcmFtZVNlbGVjdGlvbi5oCmluZGV4IGVkODc5NmVmMDMxMDI4YzdiZjI5MGJl
MzQ4OGQ5ODY5YjIzZWU5YjIuLjMxMGE3NGFhYjlkMmY1MWRmYTcxYmQxYWQ5NjYzNDgzN2I2MTI1
YzAgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2VkaXRpbmcvRnJhbWVTZWxlY3Rpb24uaAor
KysgYi9Tb3VyY2UvV2ViQ29yZS9lZGl0aW5nL0ZyYW1lU2VsZWN0aW9uLmgKQEAgLTM1OSw3ICsz
NTksNyBAQCBpbmxpbmUgRWRpdGluZ1N0eWxlKiBGcmFtZVNlbGVjdGlvbjo6dHlwaW5nU3R5bGUo
KSBjb25zdAogCiBpbmxpbmUgdm9pZCBGcmFtZVNlbGVjdGlvbjo6Y2xlYXJUeXBpbmdTdHlsZSgp
CiB7Ci0gICAgbV90eXBpbmdTdHlsZS5jbGVhcigpOworICAgIG1fdHlwaW5nU3R5bGUgPSBudWxs
cHRyOwogfQogCiBpbmxpbmUgdm9pZCBGcmFtZVNlbGVjdGlvbjo6c2V0VHlwaW5nU3R5bGUoUGFz
c1JlZlB0cjxFZGl0aW5nU3R5bGU+IHN0eWxlKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUv
ZWRpdGluZy9JbmRlbnRPdXRkZW50Q29tbWFuZC5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9lZGl0aW5n
L0luZGVudE91dGRlbnRDb21tYW5kLmNwcAppbmRleCBiMjM4Zjg3OTMxNTZjNzI5NzJlNWE3Y2Rl
M2FhY2RlMzljZTAxYjBmLi5lYzRkMjcyNDQ3ZWNhYjc1NjUwNDE5N2Q2NzU1MjcyZDhiOGNmNjMx
IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9lZGl0aW5nL0luZGVudE91dGRlbnRDb21tYW5k
LmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9lZGl0aW5nL0luZGVudE91dGRlbnRDb21tYW5kLmNw
cApAQCAtMjMyLDcgKzIzMiw3IEBAIHZvaWQgSW5kZW50T3V0ZGVudENvbW1hbmQ6OmZvcm1hdFNl
bGVjdGlvbihjb25zdCBWaXNpYmxlUG9zaXRpb24mIHN0YXJ0T2ZTZWxlY3RpCiB2b2lkIEluZGVu
dE91dGRlbnRDb21tYW5kOjpmb3JtYXRSYW5nZShjb25zdCBQb3NpdGlvbiYgc3RhcnQsIGNvbnN0
IFBvc2l0aW9uJiBlbmQsIGNvbnN0IFBvc2l0aW9uJiwgUmVmUHRyPEVsZW1lbnQ+JiBibG9ja3F1
b3RlRm9yTmV4dEluZGVudCkKIHsKICAgICBpZiAodHJ5SW5kZW50aW5nQXNMaXN0SXRlbShzdGFy
dCwgZW5kKSkKLSAgICAgICAgYmxvY2txdW90ZUZvck5leHRJbmRlbnQgPSAwOworICAgICAgICBi
bG9ja3F1b3RlRm9yTmV4dEluZGVudCA9IG51bGxwdHI7CiAgICAgZWxzZQogICAgICAgICBpbmRl
bnRJbnRvQmxvY2txdW90ZShzdGFydCwgZW5kLCBibG9ja3F1b3RlRm9yTmV4dEluZGVudCk7CiB9
CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9lZGl0aW5nL1JlcGxhY2VTZWxlY3Rpb25Db21t
YW5kLmNwcCBiL1NvdXJjZS9XZWJDb3JlL2VkaXRpbmcvUmVwbGFjZVNlbGVjdGlvbkNvbW1hbmQu
Y3BwCmluZGV4IDJlMjVlZWYwZWM2MGI1N2ZlZjIzOWQ0MzljYjFlZTkxNDY2MWM4MDIuLmVlZTIy
MGM4NmY5OGE1ZTdkMjg5OWM0MzNmYTkxZjAwMDA1NDZiZTMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9X
ZWJDb3JlL2VkaXRpbmcvUmVwbGFjZVNlbGVjdGlvbkNvbW1hbmQuY3BwCisrKyBiL1NvdXJjZS9X
ZWJDb3JlL2VkaXRpbmcvUmVwbGFjZVNlbGVjdGlvbkNvbW1hbmQuY3BwCkBAIC0zNTQsOCArMzU0
LDggQEAgaW5saW5lIHZvaWQgUmVwbGFjZVNlbGVjdGlvbkNvbW1hbmQ6Okluc2VydGVkTm9kZXM6
OndpbGxSZW1vdmVOb2RlUHJlc2VydmluZ0NoaWwKIGlubGluZSB2b2lkIFJlcGxhY2VTZWxlY3Rp
b25Db21tYW5kOjpJbnNlcnRlZE5vZGVzOjp3aWxsUmVtb3ZlTm9kZShOb2RlKiBub2RlKQogewog
ICAgIGlmIChtX2ZpcnN0Tm9kZUluc2VydGVkID09IG5vZGUgJiYgbV9sYXN0Tm9kZUluc2VydGVk
ID09IG5vZGUpIHsKLSAgICAgICAgbV9maXJzdE5vZGVJbnNlcnRlZCA9IDA7Ci0gICAgICAgIG1f
bGFzdE5vZGVJbnNlcnRlZCA9IDA7CisgICAgICAgIG1fZmlyc3ROb2RlSW5zZXJ0ZWQgPSBudWxs
cHRyOworICAgICAgICBtX2xhc3ROb2RlSW5zZXJ0ZWQgPSBudWxscHRyOwogICAgIH0gZWxzZSBp
ZiAobV9maXJzdE5vZGVJbnNlcnRlZCA9PSBub2RlKQogICAgICAgICBtX2ZpcnN0Tm9kZUluc2Vy
dGVkID0gTm9kZVRyYXZlcnNhbDo6bmV4dFNraXBwaW5nQ2hpbGRyZW4oKm1fZmlyc3ROb2RlSW5z
ZXJ0ZWQpOwogICAgIGVsc2UgaWYgKG1fbGFzdE5vZGVJbnNlcnRlZCA9PSBub2RlKQpkaWZmIC0t
Z2l0IGEvU291cmNlL1dlYkNvcmUvZWRpdGluZy9TcGVsbENoZWNrZXIuY3BwIGIvU291cmNlL1dl
YkNvcmUvZWRpdGluZy9TcGVsbENoZWNrZXIuY3BwCmluZGV4IDhiNGQ1NDExOWMwMTNjNDg1ZWY0
NGViOTMzNzU3MzkyOGM2NDgwZGIuLjAzZjJlNTEwNDgzNTIxNTIwZDI5Yjc3ZTc2OGRmYzkzYmFh
NDA1OTMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2VkaXRpbmcvU3BlbGxDaGVja2VyLmNw
cAorKysgYi9Tb3VyY2UvV2ViQ29yZS9lZGl0aW5nL1NwZWxsQ2hlY2tlci5jcHAKQEAgLTIxNCw3
ICsyMTQsNyBAQCB2b2lkIFNwZWxsQ2hlY2tlcjo6ZGlkQ2hlY2soaW50IHNlcXVlbmNlLCBjb25z
dCBWZWN0b3I8VGV4dENoZWNraW5nUmVzdWx0PiYgcmVzdQogICAgIGlmIChtX2xhc3RQcm9jZXNz
ZWRTZXF1ZW5jZSA8IHNlcXVlbmNlKQogICAgICAgICBtX2xhc3RQcm9jZXNzZWRTZXF1ZW5jZSA9
IHNlcXVlbmNlOwogCi0gICAgbV9wcm9jZXNzaW5nUmVxdWVzdC5jbGVhcigpOworICAgIG1fcHJv
Y2Vzc2luZ1JlcXVlc3QgPSBudWxscHRyOwogICAgIGlmICghbV9yZXF1ZXN0UXVldWUuaXNFbXB0
eSgpKQogICAgICAgICBtX3RpbWVyVG9Qcm9jZXNzUXVldWVkUmVxdWVzdC5zdGFydE9uZVNob3Qo
MCk7CiB9CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9lZGl0aW5nL1RleHRDaGVja2luZ0hl
bHBlci5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9lZGl0aW5nL1RleHRDaGVja2luZ0hlbHBlci5jcHAK
aW5kZXggMDI0ZDJhZDdjMjRmNDE0ZTUxZmUxNjY2Y2Y5MDkyNzIxM2RlZjE3MC4uZTk2MTM0ZDc4
YTkyYmIwNWU3ZjJlZDc3MDliOGNjYTRjNGFjYTNiNSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNv
cmUvZWRpdGluZy9UZXh0Q2hlY2tpbmdIZWxwZXIuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2Vk
aXRpbmcvVGV4dENoZWNraW5nSGVscGVyLmNwcApAQCAtMTQ2LDcgKzE0Niw3IEBAIHZvaWQgVGV4
dENoZWNraW5nUGFyYWdyYXBoOjpleHBhbmRSYW5nZVRvTmV4dEVuZCgpCiB2b2lkIFRleHRDaGVj
a2luZ1BhcmFncmFwaDo6aW52YWxpZGF0ZVBhcmFncmFwaFJhbmdlVmFsdWVzKCkKIHsKICAgICBt
X2NoZWNraW5nU3RhcnQgPSBtX2NoZWNraW5nRW5kID0gLTE7Ci0gICAgbV9vZmZzZXRBc1Jhbmdl
ID0gMDsKKyAgICBtX29mZnNldEFzUmFuZ2UgPSBudWxscHRyOwogICAgIG1fdGV4dCA9IFN0cmlu
ZygpOwogfQogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9maWxlYXBpL0ZpbGVSZWFkZXIu
Y3BwIGIvU291cmNlL1dlYkNvcmUvZmlsZWFwaS9GaWxlUmVhZGVyLmNwcAppbmRleCA3ZjRjMDVk
MjkzNTY0Zjk4NGJmYjhiZDMwMmU5ZmE0OGJjNjM4NjY1Li42MWZjMmRlNjFhZWY4YTNlYmIwODg0
ZDc0MDc2ZTZiM2JkMWQwYjEzIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9maWxlYXBpL0Zp
bGVSZWFkZXIuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2ZpbGVhcGkvRmlsZVJlYWRlci5jcHAK
QEAgLTE0MCw3ICsxNDAsNyBAQCB2b2lkIEZpbGVSZWFkZXI6OnJlYWRJbnRlcm5hbChCbG9iKiBi
bG9iLCBGaWxlUmVhZGVyTG9hZGVyOjpSZWFkVHlwZSB0eXBlLCBFeGNlcAogICAgIG1fYmxvYiA9
IGJsb2I7CiAgICAgbV9yZWFkVHlwZSA9IHR5cGU7CiAgICAgbV9zdGF0ZSA9IExPQURJTkc7Ci0g
ICAgbV9lcnJvciA9IDA7CisgICAgbV9lcnJvciA9IG51bGxwdHI7CiAKICAgICBtX2xvYWRlciA9
IHN0ZDo6bWFrZV91bmlxdWU8RmlsZVJlYWRlckxvYWRlcj4obV9yZWFkVHlwZSwgdGhpcyk7CiAg
ICAgbV9sb2FkZXItPnNldEVuY29kaW5nKG1fZW5jb2RpbmcpOwpkaWZmIC0tZ2l0IGEvU291cmNl
L1dlYkNvcmUvZmlsZWFwaS9GaWxlUmVhZGVyTG9hZGVyLmNwcCBiL1NvdXJjZS9XZWJDb3JlL2Zp
bGVhcGkvRmlsZVJlYWRlckxvYWRlci5jcHAKaW5kZXggOTRlMGE0YTdjYjQxMGJhZmUzYWVlZDM4
ZmI2Y2UyZmNlMjlhZTI2YS4uZDhmZmMxMDIzMzVmMWIyNWQ1NzJkYjZiMjc1YTc0NDQ1MjdlYTJk
OSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvZmlsZWFwaS9GaWxlUmVhZGVyTG9hZGVyLmNw
cAorKysgYi9Tb3VyY2UvV2ViQ29yZS9maWxlYXBpL0ZpbGVSZWFkZXJMb2FkZXIuY3BwCkBAIC0x
MjEsMTEgKzEyMSwxMSBAQCB2b2lkIEZpbGVSZWFkZXJMb2FkZXI6OnRlcm1pbmF0ZSgpCiAKIHZv
aWQgRmlsZVJlYWRlckxvYWRlcjo6Y2xlYW51cCgpCiB7Ci0gICAgbV9sb2FkZXIgPSAwOworICAg
IG1fbG9hZGVyID0gbnVsbHB0cjsKIAogICAgIC8vIElmIHdlIGdldCBhbnkgZXJyb3IsIHdlIGRv
IG5vdCBuZWVkIHRvIGtlZXAgYSBidWZmZXIgYXJvdW5kLgogICAgIGlmIChtX2Vycm9yQ29kZSkg
ewotICAgICAgICBtX3Jhd0RhdGEgPSAwOworICAgICAgICBtX3Jhd0RhdGEgPSBudWxscHRyOwog
ICAgICAgICBtX3N0cmluZ1Jlc3VsdCA9ICIiOwogICAgIH0KIH0KZGlmZiAtLWdpdCBhL1NvdXJj
ZS9XZWJDb3JlL2hpc3RvcnkvSGlzdG9yeUl0ZW0uY3BwIGIvU291cmNlL1dlYkNvcmUvaGlzdG9y
eS9IaXN0b3J5SXRlbS5jcHAKaW5kZXggMjI5YmFiOGU3YTIzYWMwNWMwYWQwNWU3ZWQ0MzE1N2Rj
ZDdlOGIwMy4uODI5NTczZjdkNzliNmE5Mjc1MmI2YTA3YmI4YjU3OTA5NjMyZGJkMSAxMDA2NDQK
LS0tIGEvU291cmNlL1dlYkNvcmUvaGlzdG9yeS9IaXN0b3J5SXRlbS5jcHAKKysrIGIvU291cmNl
L1dlYkNvcmUvaGlzdG9yeS9IaXN0b3J5SXRlbS5jcHAKQEAgLTE5NiwxMCArMTk2LDEwIEBAIHZv
aWQgSGlzdG9yeUl0ZW06OnJlc2V0KCkKIAogICAgIG1faXRlbVNlcXVlbmNlTnVtYmVyID0gZ2Vu
ZXJhdGVTZXF1ZW5jZU51bWJlcigpOwogCi0gICAgbV9zdGF0ZU9iamVjdCA9IDA7CisgICAgbV9z
dGF0ZU9iamVjdCA9IG51bGxwdHI7CiAgICAgbV9kb2N1bWVudFNlcXVlbmNlTnVtYmVyID0gZ2Vu
ZXJhdGVTZXF1ZW5jZU51bWJlcigpOwogCi0gICAgbV9mb3JtRGF0YSA9IDA7CisgICAgbV9mb3Jt
RGF0YSA9IG51bGxwdHI7CiAgICAgbV9mb3JtQ29udGVudFR5cGUgPSBTdHJpbmcoKTsKIAogICAg
IGNsZWFyQ2hpbGRyZW4oKTsKQEAgLTUyNCw3ICs1MjQsNyBAQCB2b2lkIEhpc3RvcnlJdGVtOjpz
ZXRGb3JtSW5mb0Zyb21SZXF1ZXN0KGNvbnN0IFJlc291cmNlUmVxdWVzdCYgcmVxdWVzdCkKICAg
ICAgICAgbV9mb3JtRGF0YSA9IHJlcXVlc3QuaHR0cEJvZHkoKTsKICAgICAgICAgbV9mb3JtQ29u
dGVudFR5cGUgPSByZXF1ZXN0Lmh0dHBDb250ZW50VHlwZSgpOwogICAgIH0gZWxzZSB7Ci0gICAg
ICAgIG1fZm9ybURhdGEgPSAwOworICAgICAgICBtX2Zvcm1EYXRhID0gbnVsbHB0cjsKICAgICAg
ICAgbV9mb3JtQ29udGVudFR5cGUgPSBTdHJpbmcoKTsKICAgICB9CiB9CmRpZmYgLS1naXQgYS9T
b3VyY2UvV2ViQ29yZS9odG1sL0Jhc2VDaG9vc2VyT25seURhdGVBbmRUaW1lSW5wdXRUeXBlLmNw
cCBiL1NvdXJjZS9XZWJDb3JlL2h0bWwvQmFzZUNob29zZXJPbmx5RGF0ZUFuZFRpbWVJbnB1dFR5
cGUuY3BwCmluZGV4IGU5YTZjYzAzOTNjNTA1NTY4ZDUxMzQzYzY1N2E2YmRiYWQxYTk1MjMuLmRi
ZWEwZTk5YmQ5MzRjN2RiZGVhNTJkMjVkMDFjMmY4MTc1ZGMxZDAgMTAwNjQ0Ci0tLSBhL1NvdXJj
ZS9XZWJDb3JlL2h0bWwvQmFzZUNob29zZXJPbmx5RGF0ZUFuZFRpbWVJbnB1dFR5cGUuY3BwCisr
KyBiL1NvdXJjZS9XZWJDb3JlL2h0bWwvQmFzZUNob29zZXJPbmx5RGF0ZUFuZFRpbWVJbnB1dFR5
cGUuY3BwCkBAIC05OCw3ICs5OCw3IEBAIHZvaWQgQmFzZUNob29zZXJPbmx5RGF0ZUFuZFRpbWVJ
bnB1dFR5cGU6OmRpZENob29zZVZhbHVlKGNvbnN0IFN0cmluZyYgdmFsdWUpCiAKIHZvaWQgQmFz
ZUNob29zZXJPbmx5RGF0ZUFuZFRpbWVJbnB1dFR5cGU6OmRpZEVuZENob29zZXIoKQogewotICAg
IG1fZGF0ZVRpbWVDaG9vc2VyLmNsZWFyKCk7CisgICAgbV9kYXRlVGltZUNob29zZXIgPSBudWxs
cHRyOwogfQogCiB2b2lkIEJhc2VDaG9vc2VyT25seURhdGVBbmRUaW1lSW5wdXRUeXBlOjpjbG9z
ZURhdGVUaW1lQ2hvb3NlcigpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9odG1sL0ZUUERp
cmVjdG9yeURvY3VtZW50LmNwcCBiL1NvdXJjZS9XZWJDb3JlL2h0bWwvRlRQRGlyZWN0b3J5RG9j
dW1lbnQuY3BwCmluZGV4IGU3NTUzZDc0MzAzZGQ5NGRiMjYxMGRjZGQyYTE4MGY0ZjhlYjIwOWUu
LjAwZGU5ZmY1NzFhOGUzOGUyYzJkOGNjNWU5YzFiYzdjMjM5N2VlNjkgMTAwNjQ0Ci0tLSBhL1Nv
dXJjZS9XZWJDb3JlL2h0bWwvRlRQRGlyZWN0b3J5RG9jdW1lbnQuY3BwCisrKyBiL1NvdXJjZS9X
ZWJDb3JlL2h0bWwvRlRQRGlyZWN0b3J5RG9jdW1lbnQuY3BwCkBAIC00MTEsNyArNDExLDcgQEAg
dm9pZCBGVFBEaXJlY3RvcnlEb2N1bWVudFBhcnNlcjo6ZmluaXNoKCkKICAgICAgICAgbV9jYXJy
eU92ZXIgPSBTdHJpbmcoKTsKICAgICB9CiAKLSAgICBtX3RhYmxlRWxlbWVudCA9IDA7CisgICAg
bV90YWJsZUVsZW1lbnQgPSBudWxscHRyOwogICAgIGZhc3RGcmVlKG1fYnVmZmVyKTsKIAogICAg
IEhUTUxEb2N1bWVudFBhcnNlcjo6ZmluaXNoKCk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29y
ZS9odG1sL0ZpbGVJbnB1dFR5cGUuY3BwIGIvU291cmNlL1dlYkNvcmUvaHRtbC9GaWxlSW5wdXRU
eXBlLmNwcAppbmRleCBhM2QzYjZiNzExZmZlMWU4YWExYWZkZmZjMTg2ZWJjMGFmNTJjMTQ3Li40
ODlkNzk5MzhmY2ZkMjI2ZmM5OTRjMjYwZTZlNTUzNTNjNTRhZjI5IDEwMDY0NAotLS0gYS9Tb3Vy
Y2UvV2ViQ29yZS9odG1sL0ZpbGVJbnB1dFR5cGUuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2h0
bWwvRmlsZUlucHV0VHlwZS5jcHAKQEAgLTI1MCw3ICsyNTAsNyBAQCB2b2lkIEZpbGVJbnB1dFR5
cGU6OnNldFZhbHVlKGNvbnN0IFN0cmluZyYsIGJvb2wsIFRleHRGaWVsZEV2ZW50QmVoYXZpb3Ip
CiB7CiAgICAgLy8gRklYTUU6IFNob3VsZCB3ZSBjbGVhciB0aGUgZmlsZSBsaXN0LCBvciByZXBs
YWNlIGl0IHdpdGggYSBuZXcgZW1wdHkgb25lIGhlcmU/IFRoaXMgaXMgb2JzZXJ2YWJsZSBmcm9t
IEphdmFTY3JpcHQgdGhyb3VnaCBjdXN0b20gcHJvcGVydGllcy4KICAgICBtX2ZpbGVMaXN0LT5j
bGVhcigpOwotICAgIG1faWNvbi5jbGVhcigpOworICAgIG1faWNvbiA9IG51bGxwdHI7CiAgICAg
ZWxlbWVudCgpLnNldE5lZWRzU3R5bGVSZWNhbGMoKTsKIH0KIApkaWZmIC0tZ2l0IGEvU291cmNl
L1dlYkNvcmUvaHRtbC9IVE1MQ2FudmFzRWxlbWVudC5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9odG1s
L0hUTUxDYW52YXNFbGVtZW50LmNwcAppbmRleCA4NmQ0NWE0OGEwYzc2MmRhYjcyNmZkOTk2YWY3
MjQ2YzgxODc4NjYzLi5jZTVkN2IyYTVmMjdmNGM3NmY1MTBkNmVmNTk1ZTMwYWEyNTRhMzJhIDEw
MDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxDYW52YXNFbGVtZW50LmNwcAorKysg
Yi9Tb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxDYW52YXNFbGVtZW50LmNwcApAQCAtNDIzLDcgKzQy
Myw3IEBAIHZvaWQgSFRNTENhbnZhc0VsZW1lbnQ6Om1ha2VQcmVzZW50YXRpb25Db3B5KCkKIAog
dm9pZCBIVE1MQ2FudmFzRWxlbWVudDo6Y2xlYXJQcmVzZW50YXRpb25Db3B5KCkKIHsKLSAgICBt
X3ByZXNlbnRlZEltYWdlLmNsZWFyKCk7CisgICAgbV9wcmVzZW50ZWRJbWFnZSA9IG51bGxwdHI7
CiB9CiAKIHZvaWQgSFRNTENhbnZhc0VsZW1lbnQ6OnNldFN1cmZhY2VTaXplKGNvbnN0IEludFNp
emUmIHNpemUpCkBAIC02NDQsNyArNjQ0LDcgQEAgdm9pZCBIVE1MQ2FudmFzRWxlbWVudDo6Y2xl
YXJJbWFnZUJ1ZmZlcigpIGNvbnN0CiAKIHZvaWQgSFRNTENhbnZhc0VsZW1lbnQ6OmNsZWFyQ29w
aWVkSW1hZ2UoKQogewotICAgIG1fY29waWVkSW1hZ2UuY2xlYXIoKTsKKyAgICBtX2NvcGllZElt
YWdlID0gbnVsbHB0cjsKICAgICBtX2RpZENsZWFySW1hZ2VCdWZmZXIgPSBmYWxzZTsKIH0KIApk
aWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvaHRtbC9IVE1MTGlua0VsZW1lbnQuY3BwIGIvU291
cmNlL1dlYkNvcmUvaHRtbC9IVE1MTGlua0VsZW1lbnQuY3BwCmluZGV4IGMyM2VkZmYzYTJhYWVj
ZjFiMGRjMGE2NWU5ODQ5ZDU5OTJkNmFiMjcuLmU0ZTEyODExYzg0NTEzMjAzOGQ4N2NmM2JjNmM4
NDQ2MzNmMDBlZTEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTExpbmtFbGVt
ZW50LmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxMaW5rRWxlbWVudC5jcHAKQEAg
LTI2NCw3ICsyNjQsNyBAQCB2b2lkIEhUTUxMaW5rRWxlbWVudDo6Y2xlYXJTaGVldCgpCiAgICAg
QVNTRVJUKG1fc2hlZXQpOwogICAgIEFTU0VSVChtX3NoZWV0LT5vd25lck5vZGUoKSA9PSB0aGlz
KTsKICAgICBtX3NoZWV0LT5jbGVhck93bmVyTm9kZSgpOwotICAgIG1fc2hlZXQgPSAwOworICAg
IG1fc2hlZXQgPSBudWxscHRyOwogfQogCiBOb2RlOjpJbnNlcnRpb25Ob3RpZmljYXRpb25SZXF1
ZXN0IEhUTUxMaW5rRWxlbWVudDo6aW5zZXJ0ZWRJbnRvKENvbnRhaW5lck5vZGUmIGluc2VydGlv
blBvaW50KQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvaHRtbC9IVE1MTWVkaWFFbGVtZW50
LmNwcCBiL1NvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTE1lZGlhRWxlbWVudC5jcHAKaW5kZXggNGZl
YWViOTdjOTljMTg1MTU0ZDdmMzk5MzdmNGJlNWM2YzQzODNlMS4uZGQ4ODkyZjNjYjRjZDc4ZGQ0
ZmRmNzgwZmUyZTA1MWRhMmRjNDk2NiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvaHRtbC9I
VE1MTWVkaWFFbGVtZW50LmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxNZWRpYUVs
ZW1lbnQuY3BwCkBAIC00NTcsNyArNDU3LDcgQEAgSFRNTE1lZGlhRWxlbWVudDo6fkhUTUxNZWRp
YUVsZW1lbnQoKQogCiAgICAgaWYgKG1fbWVkaWFDb250cm9sbGVyKSB7CiAgICAgICAgIG1fbWVk
aWFDb250cm9sbGVyLT5yZW1vdmVNZWRpYUVsZW1lbnQodGhpcyk7Ci0gICAgICAgIG1fbWVkaWFD
b250cm9sbGVyID0gMDsKKyAgICAgICAgbV9tZWRpYUNvbnRyb2xsZXIgPSBudWxscHRyOwogICAg
IH0KIAogI2lmIEVOQUJMRShNRURJQV9TT1VSQ0UpCkBAIC05NDIsNyArOTQyLDcgQEAgdm9pZCBI
VE1MTWVkaWFFbGVtZW50OjpwcmVwYXJlRm9yTG9hZCgpCiAKICAgICAvLyAxIC0gQWJvcnQgYW55
IGFscmVhZHktcnVubmluZyBpbnN0YW5jZSBvZiB0aGUgcmVzb3VyY2Ugc2VsZWN0aW9uIGFsZ29y
aXRobSBmb3IgdGhpcyBlbGVtZW50LgogICAgIG1fbG9hZFN0YXRlID0gV2FpdGluZ0ZvclNvdXJj
ZTsKLSAgICBtX2N1cnJlbnRTb3VyY2VOb2RlID0gMDsKKyAgICBtX2N1cnJlbnRTb3VyY2VOb2Rl
ID0gbnVsbHB0cjsKIAogICAgIC8vIDIgLSBJZiB0aGVyZSBhcmUgYW55IHRhc2tzIGZyb20gdGhl
IG1lZGlhIGVsZW1lbnQncyBtZWRpYSBlbGVtZW50IGV2ZW50IHRhc2sgc291cmNlIGluIAogICAg
IC8vIG9uZSBvZiB0aGUgdGFzayBxdWV1ZXMsIHRoZW4gcmVtb3ZlIHRob3NlIHRhc2tzLgpAQCAt
MTAwNiw3ICsxMDA2LDcgQEAgdm9pZCBIVE1MTWVkaWFFbGVtZW50OjpwcmVwYXJlRm9yTG9hZCgp
CiAgICAgc2V0UGxheWJhY2tSYXRlKGRlZmF1bHRQbGF5YmFja1JhdGUoKSk7CiAKICAgICAvLyA2
IC0gU2V0IHRoZSBlcnJvciBhdHRyaWJ1dGUgdG8gbnVsbCBhbmQgdGhlIGF1dG9wbGF5aW5nIGZs
YWcgdG8gdHJ1ZS4KLSAgICBtX2Vycm9yID0gMDsKKyAgICBtX2Vycm9yID0gbnVsbHB0cjsKICAg
ICBtX2F1dG9wbGF5aW5nID0gdHJ1ZTsKIAogICAgIC8vIDcgLSBJbnZva2UgdGhlIG1lZGlhIGVs
ZW1lbnQncyByZXNvdXJjZSBzZWxlY3Rpb24gYWxnb3JpdGhtLgpAQCAtMTEwMSw3ICsxMTAxLDcg
QEAgdm9pZCBIVE1MTWVkaWFFbGVtZW50OjpzZWxlY3RNZWRpYVJlc291cmNlKCkKICAgICAgICAg
aWYgKGF1dG8gZmlyc3RTb3VyY2UgPSBjaGlsZHJlbk9mVHlwZTxIVE1MU291cmNlRWxlbWVudD4o
KnRoaXMpLmZpcnN0KCkpIHsKICAgICAgICAgICAgIG1vZGUgPSBjaGlsZHJlbjsKICAgICAgICAg
ICAgIG1fbmV4dENoaWxkTm9kZVRvQ29uc2lkZXIgPSBmaXJzdFNvdXJjZTsKLSAgICAgICAgICAg
IG1fY3VycmVudFNvdXJjZU5vZGUgPSAwOworICAgICAgICAgICAgbV9jdXJyZW50U291cmNlTm9k
ZSA9IG51bGxwdHI7CiAgICAgICAgIH0gZWxzZSB7CiAgICAgICAgICAgICAvLyBPdGhlcndpc2Ug
dGhlIG1lZGlhIGVsZW1lbnQgaGFzIG5laXRoZXIgYSBzcmMgYXR0cmlidXRlIG5vciBhIHNvdXJj
ZSBlbGVtZW50IAogICAgICAgICAgICAgLy8gY2hpbGQ6IHNldCB0aGUgbmV0d29ya1N0YXRlIHRv
IE5FVFdPUktfRU1QVFksIGFuZCBhYm9ydCB0aGVzZSBzdGVwczsgdGhlIApAQCAtMTI3Nyw3ICsx
Mjc3LDcgQEAgdm9pZCBIVE1MTWVkaWFFbGVtZW50Ojpsb2FkUmVzb3VyY2UoY29uc3QgVVJMJiBp
bml0aWFsVVJMLCBDb250ZW50VHlwZSYgY29udGVudFQKICAgICAgICAgZWxzZSB7CiAgICAgICAg
ICAgICAvLyBGb3JnZXQgb3VyIHJlZmVyZW5jZSB0byB0aGUgTWVkaWFTb3VyY2UsIHNvIHdlIGxl
YXZlIGl0IGFsb25lCiAgICAgICAgICAgICAvLyB3aGlsZSBwcm9jZXNzaW5nIHJlbWFpbmRlciBv
ZiBsb2FkIGZhaWx1cmUuCi0gICAgICAgICAgICBtX21lZGlhU291cmNlID0gMDsKKyAgICAgICAg
ICAgIG1fbWVkaWFTb3VyY2UgPSBudWxscHRyOwogICAgICAgICAgICAgbWVkaWFMb2FkaW5nRmFp
bGVkKE1lZGlhUGxheWVyOjpGb3JtYXRFcnJvcik7CiAgICAgICAgIH0KICAgICB9IGVsc2UKQEAg
LTE4MDAsNyArMTgwMCw3IEBAIHZvaWQgSFRNTE1lZGlhRWxlbWVudDo6bm9uZVN1cHBvcnRlZCgp
CiAKICAgICBzdG9wUGVyaW9kaWNUaW1lcnMoKTsKICAgICBtX2xvYWRTdGF0ZSA9IFdhaXRpbmdG
b3JTb3VyY2U7Ci0gICAgbV9jdXJyZW50U291cmNlTm9kZSA9IDA7CisgICAgbV9jdXJyZW50U291
cmNlTm9kZSA9IG51bGxwdHI7CiAKICAgICAvLyA0LjguMTAuNSAKICAgICAvLyA2IC0gUmVhY2hp
bmcgdGhpcyBzdGVwIGluZGljYXRlcyB0aGF0IHRoZSBtZWRpYSByZXNvdXJjZSBmYWlsZWQgdG8g
bG9hZCBvciB0aGF0IHRoZSBnaXZlbiAKQEAgLTI5MzksNyArMjkzOSw3IEBAIHZvaWQgSFRNTE1l
ZGlhRWxlbWVudDo6Y2xvc2VNZWRpYVNvdXJjZSgpCiAgICAgICAgIHJldHVybjsKIAogICAgIG1f
bWVkaWFTb3VyY2UtPmNsb3NlKCk7Ci0gICAgbV9tZWRpYVNvdXJjZSA9IDA7CisgICAgbV9tZWRp
YVNvdXJjZSA9IG51bGxwdHI7CiB9CiAjZW5kaWYKIApAQCAtNDExMiw4ICs0MTEyLDggQEAgY2hl
Y2tfYWdhaW46CiAgICAgICAgIG1fY3VycmVudFNvdXJjZU5vZGUgPSBzb3VyY2U7CiAgICAgICAg
IG1fbmV4dENoaWxkTm9kZVRvQ29uc2lkZXIgPSBzb3VyY2UtPm5leHRTaWJsaW5nKCk7CiAgICAg
fSBlbHNlIHsKLSAgICAgICAgbV9jdXJyZW50U291cmNlTm9kZSA9IDA7Ci0gICAgICAgIG1fbmV4
dENoaWxkTm9kZVRvQ29uc2lkZXIgPSAwOworICAgICAgICBtX2N1cnJlbnRTb3VyY2VOb2RlID0g
bnVsbHB0cjsKKyAgICAgICAgbV9uZXh0Q2hpbGROb2RlVG9Db25zaWRlciA9IG51bGxwdHI7CiAg
ICAgfQogCiAjaWYgIUxPR19ESVNBQkxFRApAQCAtNDE5Myw3ICs0MTkzLDcgQEAgdm9pZCBIVE1M
TWVkaWFFbGVtZW50Ojpzb3VyY2VXYXNSZW1vdmVkKEhUTUxTb3VyY2VFbGVtZW50KiBzb3VyY2Up
CiAgICAgICAgIC8vIENsZWFyIHRoZSBjdXJyZW50IHNvdXJjZSBub2RlIHBvaW50ZXIsIGJ1dCBk
b24ndCBjaGFuZ2UgdGhlIG1vdmllIGFzIHRoZSBzcGVjIHNheXM6CiAgICAgICAgIC8vIDQuOC44
IC0gRHluYW1pY2FsbHkgbW9kaWZ5aW5nIGEgc291cmNlIGVsZW1lbnQgYW5kIGl0cyBhdHRyaWJ1
dGUgd2hlbiB0aGUgZWxlbWVudCBpcyBhbHJlYWR5IAogICAgICAgICAvLyBpbnNlcnRlZCBpbiBh
IHZpZGVvIG9yIGF1ZGlvIGVsZW1lbnQgd2lsbCBoYXZlIG5vIGVmZmVjdC4KLSAgICAgICAgbV9j
dXJyZW50U291cmNlTm9kZSA9IDA7CisgICAgICAgIG1fY3VycmVudFNvdXJjZU5vZGUgPSBudWxs
cHRyOwogICAgICAgICBMT0coTWVkaWEsICJIVE1MTWVkaWFFbGVtZW50Ojpzb3VyY2VSZW1vdmVk
KCVwKSAtIG1fY3VycmVudFNvdXJjZU5vZGUgc2V0IHRvIDAiLCB0aGlzKTsKICAgICB9CiB9CkBA
IC00Nzk1LDcgKzQ3OTUsNyBAQCB2b2lkIEhUTUxNZWRpYUVsZW1lbnQ6OnVzZXJDYW5jZWxsZWRM
b2FkKCkKICAgICBzZXRTaG91bGREZWxheUxvYWRFdmVudChmYWxzZSk7CiAKICAgICAvLyA2IC0g
QWJvcnQgdGhlIG92ZXJhbGwgcmVzb3VyY2Ugc2VsZWN0aW9uIGFsZ29yaXRobS4KLSAgICBtX2N1
cnJlbnRTb3VyY2VOb2RlID0gMDsKKyAgICBtX2N1cnJlbnRTb3VyY2VOb2RlID0gbnVsbHB0cjsK
IAogICAgIC8vIFJlc2V0IG1fcmVhZHlTdGF0ZSBzaW5jZSBtX3BsYXllciBpcyBnb25lLgogICAg
IG1fcmVhZHlTdGF0ZSA9IEhBVkVfTk9USElORzsKQEAgLTQ4MTIsOCArNDgxMiw4IEBAIHZvaWQg
SFRNTE1lZGlhRWxlbWVudDo6Y2xlYXJNZWRpYVBsYXllcihpbnQgZmxhZ3MpCiAKICNpZiBVU0Uo
UExBVEZPUk1fVEVYVF9UUkFDS19NRU5VKQogICAgIGlmIChwbGF0Zm9ybVRleHRUcmFja01lbnUo
KSkgewotICAgICAgICBtX3BsYXRmb3JtTWVudS0+c2V0Q2xpZW50KDApOwotICAgICAgICBtX3Bs
YXRmb3JtTWVudSA9IDA7CisgICAgICAgIG1fcGxhdGZvcm1NZW51LT5zZXRDbGllbnQobnVsbHB0
cik7CisgICAgICAgIG1fcGxhdGZvcm1NZW51ID0gbnVsbHB0cjsKICAgICB9CiAjZW5kaWYKIApk
aWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvaHRtbC9IVE1MUGx1Z0luRWxlbWVudC5jcHAgYi9T
b3VyY2UvV2ViQ29yZS9odG1sL0hUTUxQbHVnSW5FbGVtZW50LmNwcAppbmRleCAyMjA0NmVhODQz
NTU2YzQ4MGYxM2I3OTU2MzJlNzkzY2ZhNzQzYTk5Li5kNzg2ZGY0ZmU4NzEwM2Y1MjAxM2FiN2Q3
Nzk5NzEwNDVkYTJjOTYxIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxQbHVn
SW5FbGVtZW50LmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxQbHVnSW5FbGVtZW50
LmNwcApAQCAtMTA0LDcgKzEwNCw3IEBAIGJvb2wgSFRNTFBsdWdJbkVsZW1lbnQ6OndpbGxSZXNw
b25kVG9Nb3VzZUNsaWNrRXZlbnRzKCkKIAogdm9pZCBIVE1MUGx1Z0luRWxlbWVudDo6d2lsbERl
dGFjaFJlbmRlcmVycygpCiB7Ci0gICAgbV9pbnN0YW5jZS5jbGVhcigpOworICAgIG1faW5zdGFu
Y2UgPSBudWxscHRyOwogCiAgICAgaWYgKG1faXNDYXB0dXJpbmdNb3VzZUV2ZW50cykgewogICAg
ICAgICBpZiAoRnJhbWUqIGZyYW1lID0gZG9jdW1lbnQoKS5mcmFtZSgpKQpAQCAtMTIyLDcgKzEy
Miw3IEBAIHZvaWQgSFRNTFBsdWdJbkVsZW1lbnQ6OndpbGxEZXRhY2hSZW5kZXJlcnMoKQogCiB2
b2lkIEhUTUxQbHVnSW5FbGVtZW50OjpyZXNldEluc3RhbmNlKCkKIHsKLSAgICBtX2luc3RhbmNl
LmNsZWFyKCk7CisgICAgbV9pbnN0YW5jZSA9IG51bGxwdHI7CiB9CiAKIFBhc3NSZWZQdHI8SlND
OjpCaW5kaW5nczo6SW5zdGFuY2U+IEhUTUxQbHVnSW5FbGVtZW50OjpnZXRJbnN0YW5jZSgpCmRp
ZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxUYWJsZUVsZW1lbnQuY3BwIGIvU291
cmNlL1dlYkNvcmUvaHRtbC9IVE1MVGFibGVFbGVtZW50LmNwcAppbmRleCA0ZmI2NTY5YWUyMWU5
NTczNjM3MDAyMzYwY2EzM2Y5YjUxNzJjNTVkLi43NDU3MzYxYjZlMTI1ZWFlZjk2NWFmNTQ1MzNi
ZjMzZjY4NDZlYWE3IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxUYWJsZUVs
ZW1lbnQuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTFRhYmxlRWxlbWVudC5jcHAK
QEAgLTQwMiw3ICs0MDIsNyBAQCB2b2lkIEhUTUxUYWJsZUVsZW1lbnQ6OnBhcnNlQXR0cmlidXRl
KGNvbnN0IFF1YWxpZmllZE5hbWUmIG5hbWUsIGNvbnN0IEF0b21pY1N0cgogICAgICAgICBIVE1M
RWxlbWVudDo6cGFyc2VBdHRyaWJ1dGUobmFtZSwgdmFsdWUpOwogCiAgICAgaWYgKGJvcmRlcnNC
ZWZvcmUgIT0gY2VsbEJvcmRlcnMoKSB8fCBvbGRQYWRkaW5nICE9IG1fcGFkZGluZykgewotICAg
ICAgICBtX3NoYXJlZENlbGxTdHlsZSA9IDA7CisgICAgICAgIG1fc2hhcmVkQ2VsbFN0eWxlID0g
bnVsbHB0cjsKICAgICAgICAgYm9vbCBjZWxsQ2hhbmdlZCA9IGZhbHNlOwogICAgICAgICBmb3Ig
KE5vZGUqIGNoaWxkID0gZmlyc3RDaGlsZCgpOyBjaGlsZDsgY2hpbGQgPSBjaGlsZC0+bmV4dFNp
YmxpbmcoKSkKICAgICAgICAgICAgIGNlbGxDaGFuZ2VkIHw9IHNldFRhYmxlQ2VsbHNDaGFuZ2Vk
KGNoaWxkKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2h0bWwvUGx1Z2luRG9jdW1lbnQu
Y3BwIGIvU291cmNlL1dlYkNvcmUvaHRtbC9QbHVnaW5Eb2N1bWVudC5jcHAKaW5kZXggNzc5NmMy
N2IzZGMxODcyY2I2MTFiNzg2NTFkNDIyNWVhMjM2MzQ5OC4uZTk2NzcwOTBmNGMzODUzYTdjZmYy
MDhiMjNjMzFkYzlkMjU0NDgyMSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvaHRtbC9QbHVn
aW5Eb2N1bWVudC5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvaHRtbC9QbHVnaW5Eb2N1bWVudC5j
cHAKQEAgLTE2OCw4ICsxNjgsOCBAQCB2b2lkIFBsdWdpbkRvY3VtZW50OjpzZXRQbHVnaW5FbGVt
ZW50KFBhc3NSZWZQdHI8SFRNTFBsdWdJbkVsZW1lbnQ+IGVsZW1lbnQpCiB2b2lkIFBsdWdpbkRv
Y3VtZW50OjpkZXRhY2hGcm9tUGx1Z2luRWxlbWVudCgpCiB7CiAgICAgLy8gUmVsZWFzZSB0aGUg
cGx1Z2luIEVsZW1lbnQgc28gdGhhdCB3ZSBkb24ndCBoYXZlIGEgY2lyY3VsYXIgcmVmZXJlbmNl
LgotICAgIG1fcGx1Z2luRWxlbWVudCA9IDA7Ci0gICAgZnJhbWUoKS0+bG9hZGVyKCkuY2xpZW50
KCkucmVkaXJlY3REYXRhVG9QbHVnaW4oMCk7CisgICAgbV9wbHVnaW5FbGVtZW50ID0gbnVsbHB0
cjsKKyAgICBmcmFtZSgpLT5sb2FkZXIoKS5jbGllbnQoKS5yZWRpcmVjdERhdGFUb1BsdWdpbihu
dWxscHRyKTsKIH0KIAogdm9pZCBQbHVnaW5Eb2N1bWVudDo6Y2FuY2VsTWFudWFsUGx1Z2luTG9h
ZCgpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9odG1sL1RleHRGaWVsZElucHV0VHlwZS5j
cHAgYi9Tb3VyY2UvV2ViQ29yZS9odG1sL1RleHRGaWVsZElucHV0VHlwZS5jcHAKaW5kZXggNGIy
OGFhOGRhMmQxYTU1ZGQ5ZWE0MjBlNDE0MmUxNGU3MzFiNzljNS4uZWFlM2RiMjllZWUzYzJkZTk1
ZmU3MTgwYzU0NmZmOGU3ZTJhNzY3ZSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvaHRtbC9U
ZXh0RmllbGRJbnB1dFR5cGUuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2h0bWwvVGV4dEZpZWxk
SW5wdXRUeXBlLmNwcApAQCAtNDYyLDcgKzQ2Miw3IEBAIHZvaWQgVGV4dEZpZWxkSW5wdXRUeXBl
Ojp1cGRhdGVQbGFjZWhvbGRlclRleHQoKQogICAgIGlmIChwbGFjZWhvbGRlclRleHQuaXNFbXB0
eSgpKSB7CiAgICAgICAgIGlmIChtX3BsYWNlaG9sZGVyKSB7CiAgICAgICAgICAgICBtX3BsYWNl
aG9sZGVyLT5wYXJlbnROb2RlKCktPnJlbW92ZUNoaWxkKG1fcGxhY2Vob2xkZXIuZ2V0KCksIEFT
U0VSVF9OT19FWENFUFRJT04pOwotICAgICAgICAgICAgbV9wbGFjZWhvbGRlci5jbGVhcigpOwor
ICAgICAgICAgICAgbV9wbGFjZWhvbGRlciA9IG51bGxwdHI7CiAgICAgICAgIH0KICAgICAgICAg
cmV0dXJuOwogICAgIH0KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2h0bWwvVmFsaWRhdGlv
bk1lc3NhZ2UuY3BwIGIvU291cmNlL1dlYkNvcmUvaHRtbC9WYWxpZGF0aW9uTWVzc2FnZS5jcHAK
aW5kZXggNTNiNjc1YmMyYjQ5NDY3NGU3YmZjNWJhMzliNjliNjZmODk1ZjBiOC4uZjYxZTFiNWVm
ZTI3MDkzMWRhYjBlYzJlZWRmMGYzNGJkNzc4MmI5NiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNv
cmUvaHRtbC9WYWxpZGF0aW9uTWVzc2FnZS5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvaHRtbC9W
YWxpZGF0aW9uTWVzc2FnZS5jcHAKQEAgLTIzNSwxMCArMjM1LDEwIEBAIHZvaWQgVmFsaWRhdGlv
bk1lc3NhZ2U6OmRlbGV0ZUJ1YmJsZVRyZWUoKQogewogICAgIEFTU0VSVCghdmFsaWRhdGlvbk1l
c3NhZ2VDbGllbnQoKSk7CiAgICAgaWYgKG1fYnViYmxlKSB7Ci0gICAgICAgIG1fbWVzc2FnZUhl
YWRpbmcgPSAwOwotICAgICAgICBtX21lc3NhZ2VCb2R5ID0gMDsKKyAgICAgICAgbV9tZXNzYWdl
SGVhZGluZyA9IG51bGxwdHI7CisgICAgICAgIG1fbWVzc2FnZUJvZHkgPSBudWxscHRyOwogICAg
ICAgICBtX2VsZW1lbnQtPnVzZXJBZ2VudFNoYWRvd1Jvb3QoKS0+cmVtb3ZlQ2hpbGQobV9idWJi
bGUuZ2V0KCksIEFTU0VSVF9OT19FWENFUFRJT04pOwotICAgICAgICBtX2J1YmJsZSA9IDA7Cisg
ICAgICAgIG1fYnViYmxlID0gbnVsbHB0cjsKICAgICB9CiAgICAgbV9tZXNzYWdlID0gU3RyaW5n
KCk7CiB9CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9odG1sL2NhbnZhcy9XZWJHTFByb2dy
YW0uY3BwIGIvU291cmNlL1dlYkNvcmUvaHRtbC9jYW52YXMvV2ViR0xQcm9ncmFtLmNwcAppbmRl
eCA5MmMwNTExOTAxZDMwNmMzODUzOWQ1NTMzOThmMTUwMmIzZjBhZGFjLi4xYjc1MmU2ZTBmZGI0
YmE2M2M5M2JjMmU3NTMwNjI1NjVjMmQ0Y2Q3IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9o
dG1sL2NhbnZhcy9XZWJHTFByb2dyYW0uY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2h0bWwvY2Fu
dmFzL1dlYkdMUHJvZ3JhbS5jcHAKQEAgLTU4LDExICs1OCwxMSBAQCB2b2lkIFdlYkdMUHJvZ3Jh
bTo6ZGVsZXRlT2JqZWN0SW1wbChHcmFwaGljc0NvbnRleHQzRCogY29udGV4dDNkLCBQbGF0Zm9y
bTNET2JqZQogICAgIGNvbnRleHQzZC0+ZGVsZXRlUHJvZ3JhbShvYmopOwogICAgIGlmIChtX3Zl
cnRleFNoYWRlcikgewogICAgICAgICBtX3ZlcnRleFNoYWRlci0+b25EZXRhY2hlZChjb250ZXh0
M2QpOwotICAgICAgICBtX3ZlcnRleFNoYWRlciA9IDA7CisgICAgICAgIG1fdmVydGV4U2hhZGVy
ID0gbnVsbHB0cjsKICAgICB9CiAgICAgaWYgKG1fZnJhZ21lbnRTaGFkZXIpIHsKICAgICAgICAg
bV9mcmFnbWVudFNoYWRlci0+b25EZXRhY2hlZChjb250ZXh0M2QpOwotICAgICAgICBtX2ZyYWdt
ZW50U2hhZGVyID0gMDsKKyAgICAgICAgbV9mcmFnbWVudFNoYWRlciA9IG51bGxwdHI7CiAgICAg
fQogfQogCkBAIC0xNDgsMTIgKzE0OCwxMiBAQCBib29sIFdlYkdMUHJvZ3JhbTo6ZGV0YWNoU2hh
ZGVyKFdlYkdMU2hhZGVyKiBzaGFkZXIpCiAgICAgY2FzZSBHcmFwaGljc0NvbnRleHQzRDo6VkVS
VEVYX1NIQURFUjoKICAgICAgICAgaWYgKG1fdmVydGV4U2hhZGVyICE9IHNoYWRlcikKICAgICAg
ICAgICAgIHJldHVybiBmYWxzZTsKLSAgICAgICAgbV92ZXJ0ZXhTaGFkZXIgPSAwOworICAgICAg
ICBtX3ZlcnRleFNoYWRlciA9IG51bGxwdHI7CiAgICAgICAgIHJldHVybiB0cnVlOwogICAgIGNh
c2UgR3JhcGhpY3NDb250ZXh0M0Q6OkZSQUdNRU5UX1NIQURFUjoKICAgICAgICAgaWYgKG1fZnJh
Z21lbnRTaGFkZXIgIT0gc2hhZGVyKQogICAgICAgICAgICAgcmV0dXJuIGZhbHNlOwotICAgICAg
ICBtX2ZyYWdtZW50U2hhZGVyID0gMDsKKyAgICAgICAgbV9mcmFnbWVudFNoYWRlciA9IG51bGxw
dHI7CiAgICAgICAgIHJldHVybiB0cnVlOwogICAgIGRlZmF1bHQ6CiAgICAgICAgIHJldHVybiBm
YWxzZTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2h0bWwvY2FudmFzL1dlYkdMUmVuZGVy
aW5nQ29udGV4dEJhc2UuY3BwIGIvU291cmNlL1dlYkNvcmUvaHRtbC9jYW52YXMvV2ViR0xSZW5k
ZXJpbmdDb250ZXh0QmFzZS5jcHAKaW5kZXggYjY2YjY2OTA0YjE0ZmZkZTJmMzM5YWQ2ZGEyNzZm
NmQ3NmMxYjRhMy4uN2ExY2ZmM2YyODNhODg4NmMxNzIzYWEwM2ZkZjk3MTkxY2VkZmU1OCAxMDA2
NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvaHRtbC9jYW52YXMvV2ViR0xSZW5kZXJpbmdDb250ZXh0
QmFzZS5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvaHRtbC9jYW52YXMvV2ViR0xSZW5kZXJpbmdD
b250ZXh0QmFzZS5jcHAKQEAgLTQ5NCwxMCArNDk0LDEwIEBAIHZvaWQgV2ViR0xSZW5kZXJpbmdD
b250ZXh0QmFzZTo6aW5pdGlhbGl6ZU5ld0NvbnRleHQoKQogICAgIG1fdW5wYWNrRmxpcFkgPSBm
YWxzZTsKICAgICBtX3VucGFja1ByZW11bHRpcGx5QWxwaGEgPSBmYWxzZTsKICAgICBtX3VucGFj
a0NvbG9yc3BhY2VDb252ZXJzaW9uID0gR3JhcGhpY3NDb250ZXh0M0Q6OkJST1dTRVJfREVGQVVM
VF9XRUJHTDsKLSAgICBtX2JvdW5kQXJyYXlCdWZmZXIgPSAwOwotICAgIG1fY3VycmVudFByb2dy
YW0gPSAwOwotICAgIG1fZnJhbWVidWZmZXJCaW5kaW5nID0gMDsKLSAgICBtX3JlbmRlcmJ1ZmZl
ckJpbmRpbmcgPSAwOworICAgIG1fYm91bmRBcnJheUJ1ZmZlciA9IG51bGxwdHI7CisgICAgbV9j
dXJyZW50UHJvZ3JhbSA9IG51bGxwdHI7CisgICAgbV9mcmFtZWJ1ZmZlckJpbmRpbmcgPSBudWxs
cHRyOworICAgIG1fcmVuZGVyYnVmZmVyQmluZGluZyA9IG51bGxwdHI7CiAgICAgbV9kZXB0aE1h
c2sgPSB0cnVlOwogICAgIG1fc3RlbmNpbEVuYWJsZWQgPSBmYWxzZTsKICAgICBtX3N0ZW5jaWxN
YXNrID0gMHhGRkZGRkZGRjsKQEAgLTYyMyw3ICs2MjMsNyBAQCB2b2lkIFdlYkdMUmVuZGVyaW5n
Q29udGV4dEJhc2U6OmRlc3Ryb3lHcmFwaGljc0NvbnRleHQzRCgpCiAgICAgaWYgKG1fY29udGV4
dCkgewogICAgICAgICBtX2NvbnRleHQtPnNldENvbnRleHRMb3N0Q2FsbGJhY2sobnVsbHB0cik7
CiAgICAgICAgIG1fY29udGV4dC0+c2V0RXJyb3JNZXNzYWdlQ2FsbGJhY2sobnVsbHB0cik7Ci0g
ICAgICAgIG1fY29udGV4dC5jbGVhcigpOworICAgICAgICBtX2NvbnRleHQgPSBudWxscHRyOwog
ICAgIH0KIH0KIApAQCAtMTQ3OSw3ICsxNDc5LDcgQEAgdm9pZCBXZWJHTFJlbmRlcmluZ0NvbnRl
eHRCYXNlOjpkZWxldGVCdWZmZXIoV2ViR0xCdWZmZXIqIGJ1ZmZlcikKICAgICBpZiAoIWRlbGV0
ZU9iamVjdChidWZmZXIpKQogICAgICAgICByZXR1cm47CiAgICAgaWYgKG1fYm91bmRBcnJheUJ1
ZmZlciA9PSBidWZmZXIpCi0gICAgICAgIG1fYm91bmRBcnJheUJ1ZmZlciA9IDA7CisgICAgICAg
IG1fYm91bmRBcnJheUJ1ZmZlciA9IG51bGxwdHI7CiAKICAgICBtX2JvdW5kVmVydGV4QXJyYXlP
YmplY3QtPnVuYmluZEJ1ZmZlcihidWZmZXIpOwogfQpAQCAtMTQ4OSw3ICsxNDg5LDcgQEAgdm9p
ZCBXZWJHTFJlbmRlcmluZ0NvbnRleHRCYXNlOjpkZWxldGVGcmFtZWJ1ZmZlcihXZWJHTEZyYW1l
YnVmZmVyKiBmcmFtZWJ1ZmZlcikKICAgICBpZiAoIWRlbGV0ZU9iamVjdChmcmFtZWJ1ZmZlcikp
CiAgICAgICAgIHJldHVybjsKICAgICBpZiAoZnJhbWVidWZmZXIgPT0gbV9mcmFtZWJ1ZmZlckJp
bmRpbmcpIHsKLSAgICAgICAgbV9mcmFtZWJ1ZmZlckJpbmRpbmcgPSAwOworICAgICAgICBtX2Zy
YW1lYnVmZmVyQmluZGluZyA9IG51bGxwdHI7CiAgICAgICAgIG1fY29udGV4dC0+YmluZEZyYW1l
YnVmZmVyKEdyYXBoaWNzQ29udGV4dDNEOjpGUkFNRUJVRkZFUiwgMCk7CiAgICAgfQogfQpAQCAt
MTUwNiw3ICsxNTA2LDcgQEAgdm9pZCBXZWJHTFJlbmRlcmluZ0NvbnRleHRCYXNlOjpkZWxldGVS
ZW5kZXJidWZmZXIoV2ViR0xSZW5kZXJidWZmZXIqIHJlbmRlcmJ1ZmYKICAgICBpZiAoIWRlbGV0
ZU9iamVjdChyZW5kZXJidWZmZXIpKQogICAgICAgICByZXR1cm47CiAgICAgaWYgKHJlbmRlcmJ1
ZmZlciA9PSBtX3JlbmRlcmJ1ZmZlckJpbmRpbmcpCi0gICAgICAgIG1fcmVuZGVyYnVmZmVyQmlu
ZGluZyA9IDA7CisgICAgICAgIG1fcmVuZGVyYnVmZmVyQmluZGluZyA9IG51bGxwdHI7CiAgICAg
aWYgKG1fZnJhbWVidWZmZXJCaW5kaW5nKQogICAgICAgICBtX2ZyYW1lYnVmZmVyQmluZGluZy0+
cmVtb3ZlQXR0YWNobWVudEZyb21Cb3VuZEZyYW1lYnVmZmVyKHJlbmRlcmJ1ZmZlcik7CiB9CmRp
ZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9odG1sL2NhbnZhcy9XZWJHTFZlcnRleEFycmF5T2Jq
ZWN0QmFzZS5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9odG1sL2NhbnZhcy9XZWJHTFZlcnRleEFycmF5
T2JqZWN0QmFzZS5jcHAKaW5kZXggZjZkOGRhNjZlODAxNDc5NzhmODE3NTdjNjNiZTQ2ZWFjNjk1
NTg0OS4uZjM5YzBkZGQyMjc3OWQwNWYxNjBkMTk3OTU2MzE4YTYwMGViOTNjYyAxMDA2NDQKLS0t
IGEvU291cmNlL1dlYkNvcmUvaHRtbC9jYW52YXMvV2ViR0xWZXJ0ZXhBcnJheU9iamVjdEJhc2Uu
Y3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2h0bWwvY2FudmFzL1dlYkdMVmVydGV4QXJyYXlPYmpl
Y3RCYXNlLmNwcApAQCAtNzYsNyArNzYsNyBAQCB2b2lkIFdlYkdMVmVydGV4QXJyYXlPYmplY3RC
YXNlOjp1bmJpbmRCdWZmZXIoUGFzc1JlZlB0cjxXZWJHTEJ1ZmZlcj4gYnVmZmVyKQogewogICAg
IGlmIChtX2JvdW5kRWxlbWVudEFycmF5QnVmZmVyID09IGJ1ZmZlcikgewogICAgICAgICBtX2Jv
dW5kRWxlbWVudEFycmF5QnVmZmVyLT5vbkRldGFjaGVkKGNvbnRleHQoKS0+Z3JhcGhpY3NDb250
ZXh0M0QoKSk7Ci0gICAgICAgIG1fYm91bmRFbGVtZW50QXJyYXlCdWZmZXIgPSAwOworICAgICAg
ICBtX2JvdW5kRWxlbWVudEFycmF5QnVmZmVyID0gbnVsbHB0cjsKICAgICB9CiAgICAgCiAgICAg
Zm9yIChzaXplX3QgaSA9IDA7IGkgPCBtX3ZlcnRleEF0dHJpYlN0YXRlLnNpemUoKTsgKytpKSB7
CkBAIC05NSw3ICs5NSw3IEBAIHZvaWQgV2ViR0xWZXJ0ZXhBcnJheU9iamVjdEJhc2U6OnVuYmlu
ZEJ1ZmZlcihQYXNzUmVmUHRyPFdlYkdMQnVmZmVyPiBidWZmZXIpCiAgICAgICAgICAgICAgICAg
c3RhdGUub3JpZ2luYWxTdHJpZGUgPSAwOwogICAgICAgICAgICAgICAgIHN0YXRlLm9mZnNldCA9
IDA7CiAgICAgICAgICAgICB9IGVsc2UKLSAgICAgICAgICAgICAgICBzdGF0ZS5idWZmZXJCaW5k
aW5nID0gMDsKKyAgICAgICAgICAgICAgICBzdGF0ZS5idWZmZXJCaW5kaW5nID0gbnVsbHB0cjsK
ICAgICAgICAgfQogICAgIH0KIH0KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2h0bWwvdHJh
Y2svVGV4dFRyYWNrLmNwcCBiL1NvdXJjZS9XZWJDb3JlL2h0bWwvdHJhY2svVGV4dFRyYWNrLmNw
cAppbmRleCA3NGVjZjE2ZDcwOTc2NmY0YWYxZjQ1ZGMyMDZjMmRlYzYzMzZhNmYxLi4yYTEzM2E1
ZmNlYWZlM2M3YjNiYzE4NmFkMmI4NTcwZjYxMmVkMzE5IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2Vi
Q29yZS9odG1sL3RyYWNrL1RleHRUcmFjay5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvaHRtbC90
cmFjay9UZXh0VHJhY2suY3BwCkBAIC0yNDUsNyArMjQ1LDcgQEAgVGV4dFRyYWNrQ3VlTGlzdCog
VGV4dFRyYWNrOjpjdWVzKCkKICAgICAvLyBodHRwOi8vd3d3LndoYXR3Zy5vcmcvc3BlY3Mvd2Vi
LWFwcHMvY3VycmVudC13b3JrLyNkb20tdGV4dHRyYWNrLWN1ZXMKICAgICBpZiAobV9tb2RlICE9
IGRpc2FibGVkS2V5d29yZCgpKQogICAgICAgICByZXR1cm4gZW5zdXJlVGV4dFRyYWNrQ3VlTGlz
dCgpOwotICAgIHJldHVybiAwOworICAgIHJldHVybiBudWxscHRyOwogfQogCiB2b2lkIFRleHRU
cmFjazo6cmVtb3ZlQWxsQ3VlcygpCkBAIC0yNTcsOSArMjU3LDkgQEAgdm9pZCBUZXh0VHJhY2s6
OnJlbW92ZUFsbEN1ZXMoKQogICAgICAgICBtX2NsaWVudC0+dGV4dFRyYWNrUmVtb3ZlQ3Vlcyh0
aGlzLCBtX2N1ZXMuZ2V0KCkpOwogICAgIAogICAgIGZvciAoc2l6ZV90IGkgPSAwOyBpIDwgbV9j
dWVzLT5sZW5ndGgoKTsgKytpKQotICAgICAgICBtX2N1ZXMtPml0ZW0oaSktPnNldFRyYWNrKDAp
OworICAgICAgICBtX2N1ZXMtPml0ZW0oaSktPnNldFRyYWNrKG51bGxwdHIpOwogICAgIAotICAg
IG1fY3VlcyA9IDA7CisgICAgbV9jdWVzID0gbnVsbHB0cjsKIH0KIAogVGV4dFRyYWNrQ3VlTGlz
dCogVGV4dFRyYWNrOjphY3RpdmVDdWVzKCkgY29uc3QKQEAgLTI3Miw3ICsyNzIsNyBAQCBUZXh0
VHJhY2tDdWVMaXN0KiBUZXh0VHJhY2s6OmFjdGl2ZUN1ZXMoKSBjb25zdAogICAgIC8vIGh0dHA6
Ly93d3cud2hhdHdnLm9yZy9zcGVjcy93ZWItYXBwcy9jdXJyZW50LXdvcmsvI2RvbS10ZXh0dHJh
Y2stYWN0aXZlY3VlcwogICAgIGlmIChtX2N1ZXMgJiYgbV9tb2RlICE9IGRpc2FibGVkS2V5d29y
ZCgpKQogICAgICAgICByZXR1cm4gbV9jdWVzLT5hY3RpdmVDdWVzKCk7Ci0gICAgcmV0dXJuIDA7
CisgICAgcmV0dXJuIG51bGxwdHI7CiB9CiAKIHZvaWQgVGV4dFRyYWNrOjphZGRDdWUoUGFzc1Jl
ZlB0cjxUZXh0VHJhY2tDdWU+IHBycEN1ZSwgRXhjZXB0aW9uQ29kZSYgZWMpCmRpZmYgLS1naXQg
YS9Tb3VyY2UvV2ViQ29yZS9odG1sL3RyYWNrL1ZUVEN1ZS5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9o
dG1sL3RyYWNrL1ZUVEN1ZS5jcHAKaW5kZXggMzRhMmVlNzk2YTg4ODAwNjkwMzI4ODNjMzFlYjhm
ZjE1ZTc0N2JkMy4uMGI5YzcxNzkzMGJmMDY3YjVlYTIzZTUxNDMxZjlmY2VhOTdkNmJiNSAxMDA2
NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvaHRtbC90cmFjay9WVFRDdWUuY3BwCisrKyBiL1NvdXJj
ZS9XZWJDb3JlL2h0bWwvdHJhY2svVlRUQ3VlLmNwcApAQCAtNDgyLDcgKzQ4Miw3IEBAIHZvaWQg
VlRUQ3VlOjpzZXRUZXh0KGNvbnN0IFN0cmluZyYgdGV4dCkKICAgICB3aWxsQ2hhbmdlKCk7CiAg
ICAgLy8gQ2xlYXIgdGhlIGRvY3VtZW50IGZyYWdtZW50IGJ1dCBkb24ndCBib3RoZXIgdG8gY3Jl
YXRlIGl0IGFnYWluIGp1c3QgeWV0IGFzIHdlIGNhbiBkbyB0aGF0CiAgICAgLy8gd2hlbiBpdCBp
cyByZXF1ZXN0ZWQuCi0gICAgbV93ZWJWVFROb2RlVHJlZSA9IDA7CisgICAgbV93ZWJWVFROb2Rl
VHJlZSA9IG51bGxwdHI7CiAgICAgbV9jb250ZW50ID0gdGV4dDsKICAgICBkaWRDaGFuZ2UoKTsK
IH0KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9JbnNwZWN0b3JBcHBsaWNh
dGlvbkNhY2hlQWdlbnQuY3BwIGIvU291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL0luc3BlY3RvckFw
cGxpY2F0aW9uQ2FjaGVBZ2VudC5jcHAKaW5kZXggZmQ0Y2FmNjIxNDExOWE4NDQ3YzAyOTQ1NzQw
NGYxZjUyYmM4ZTM3YS4uMmRjZDI2ZTk5YmYzYTA3YTY3NjA4YWFlMTJkNTc0NDM5MDVhNjI2NSAx
MDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL0luc3BlY3RvckFwcGxpY2F0aW9u
Q2FjaGVBZ2VudC5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL0luc3BlY3RvckFw
cGxpY2F0aW9uQ2FjaGVBZ2VudC5jcHAKQEAgLTU4LDcgKzU4LDcgQEAgdm9pZCBJbnNwZWN0b3JB
cHBsaWNhdGlvbkNhY2hlQWdlbnQ6OmRpZENyZWF0ZUZyb250ZW5kQW5kQmFja2VuZChGcm9udGVu
ZENoYW5uZWwKIHZvaWQgSW5zcGVjdG9yQXBwbGljYXRpb25DYWNoZUFnZW50Ojp3aWxsRGVzdHJv
eUZyb250ZW5kQW5kQmFja2VuZChJbnNwZWN0b3I6OkRpc2Nvbm5lY3RSZWFzb24pCiB7CiAgICAg
bV9mcm9udGVuZERpc3BhdGNoZXIgPSBudWxscHRyOwotICAgIG1fYmFja2VuZERpc3BhdGNoZXIu
Y2xlYXIoKTsKKyAgICBtX2JhY2tlbmREaXNwYXRjaGVyID0gbnVsbHB0cjsKIAogICAgIG1faW5z
dHJ1bWVudGluZ0FnZW50cy0+c2V0SW5zcGVjdG9yQXBwbGljYXRpb25DYWNoZUFnZW50KG51bGxw
dHIpOwogfQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL0luc3BlY3RvckNT
U0FnZW50LmNwcCBiL1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9JbnNwZWN0b3JDU1NBZ2VudC5j
cHAKaW5kZXggYTkwODNkMDgxNDI3YjljMDE5MTg5ZTZjNDliODE0NjJlZjM2MzU5ZS4uM2QwNjIw
ODM0ZWIyOGNkZmQwNmI1OGNkNjYyNmJhM2MxNDhlNzE5MSAxMDA2NDQKLS0tIGEvU291cmNlL1dl
YkNvcmUvaW5zcGVjdG9yL0luc3BlY3RvckNTU0FnZW50LmNwcAorKysgYi9Tb3VyY2UvV2ViQ29y
ZS9pbnNwZWN0b3IvSW5zcGVjdG9yQ1NTQWdlbnQuY3BwCkBAIC0zNjAsNyArMzYwLDcgQEAgdm9p
ZCBJbnNwZWN0b3JDU1NBZ2VudDo6ZGlkQ3JlYXRlRnJvbnRlbmRBbmRCYWNrZW5kKEluc3BlY3Rv
cjo6RnJvbnRlbmRDaGFubmVsKgogdm9pZCBJbnNwZWN0b3JDU1NBZ2VudDo6d2lsbERlc3Ryb3lG
cm9udGVuZEFuZEJhY2tlbmQoSW5zcGVjdG9yOjpEaXNjb25uZWN0UmVhc29uKQogewogICAgIG1f
ZnJvbnRlbmREaXNwYXRjaGVyID0gbnVsbHB0cjsKLSAgICBtX2JhY2tlbmREaXNwYXRjaGVyLmNs
ZWFyKCk7CisgICAgbV9iYWNrZW5kRGlzcGF0Y2hlciA9IG51bGxwdHI7CiAKICAgICByZXNldE5v
blBlcnNpc3RlbnREYXRhKCk7CiB9CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0
b3IvSW5zcGVjdG9yQ29udHJvbGxlci5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvSW5z
cGVjdG9yQ29udHJvbGxlci5jcHAKaW5kZXggZjIzYTVlYTBlZTU2ZDA1ZTE0NDUxMDZhNzI1YWMx
Yzk2YTQ2OGU5OS4uYmM4MGJjYTI5Yzk1MTQ3NzdkYTA0ZGMxY2FlMWI3NTFjZjlmZjhhZiAxMDA2
NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL0luc3BlY3RvckNvbnRyb2xsZXIuY3Bw
CisrKyBiL1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9JbnNwZWN0b3JDb250cm9sbGVyLmNwcApA
QCAtMjYzLDcgKzI2Myw3IEBAIHZvaWQgSW5zcGVjdG9yQ29udHJvbGxlcjo6ZGlzY29ubmVjdEZy
b250ZW5kKERpc2Nvbm5lY3RSZWFzb24gcmVhc29uKQogICAgIG1fYWdlbnRzLndpbGxEZXN0cm95
RnJvbnRlbmRBbmRCYWNrZW5kKHJlYXNvbik7CiAKICAgICBtX2JhY2tlbmREaXNwYXRjaGVyLT5j
bGVhckZyb250ZW5kKCk7Ci0gICAgbV9iYWNrZW5kRGlzcGF0Y2hlci5jbGVhcigpOworICAgIG1f
YmFja2VuZERpc3BhdGNoZXIgPSBudWxscHRyOwogICAgIG1fZnJvbnRlbmRDaGFubmVsID0gbnVs
bHB0cjsKIAogICAgIG1faXNBdXRvbWF0aWNJbnNwZWN0aW9uID0gZmFsc2U7CmRpZmYgLS1naXQg
YS9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvSW5zcGVjdG9yRE9NQWdlbnQuY3BwIGIvU291cmNl
L1dlYkNvcmUvaW5zcGVjdG9yL0luc3BlY3RvckRPTUFnZW50LmNwcAppbmRleCAwZWQyYzVjMDRm
YWEzYjFjYzhiYjA1ZDQ5YWQ5NmE2ZDE5NzEyY2ExLi43MTlmNzYxZGU1NmQ5MDkxNTRhZjE2MjE2
MGUwMmExNDZjYTYyNjJkIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvSW5z
cGVjdG9yRE9NQWdlbnQuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9JbnNwZWN0
b3JET01BZ2VudC5jcHAKQEAgLTIzOCw3ICsyMzgsNyBAQCB2b2lkIEluc3BlY3RvckRPTUFnZW50
OjpkaWRDcmVhdGVGcm9udGVuZEFuZEJhY2tlbmQoSW5zcGVjdG9yOjpGcm9udGVuZENoYW5uZWwq
CiB2b2lkIEluc3BlY3RvckRPTUFnZW50Ojp3aWxsRGVzdHJveUZyb250ZW5kQW5kQmFja2VuZChJ
bnNwZWN0b3I6OkRpc2Nvbm5lY3RSZWFzb24pCiB7CiAgICAgbV9mcm9udGVuZERpc3BhdGNoZXIg
PSBudWxscHRyOwotICAgIG1fYmFja2VuZERpc3BhdGNoZXIuY2xlYXIoKTsKKyAgICBtX2JhY2tl
bmREaXNwYXRjaGVyID0gbnVsbHB0cjsKIAogICAgIG1faGlzdG9yeS5yZXNldCgpOwogICAgIG1f
ZG9tRWRpdG9yLnJlc2V0KCk7CkBAIC0yNzIsNyArMjcyLDcgQEAgdm9pZCBJbnNwZWN0b3JET01B
Z2VudDo6cmVzZXQoKQogICAgIGRpc2NhcmRCaW5kaW5ncygpOwogICAgIGlmIChtX3JldmFsaWRh
dGVTdHlsZUF0dHJUYXNrKQogICAgICAgICBtX3JldmFsaWRhdGVTdHlsZUF0dHJUYXNrLT5yZXNl
dCgpOwotICAgIG1fZG9jdW1lbnQgPSAwOworICAgIG1fZG9jdW1lbnQgPSBudWxscHRyOwogfQog
CiB2b2lkIEluc3BlY3RvckRPTUFnZW50OjpzZXRET01MaXN0ZW5lcihET01MaXN0ZW5lciogbGlz
dGVuZXIpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvSW5zcGVjdG9yRE9N
RGVidWdnZXJBZ2VudC5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvSW5zcGVjdG9yRE9N
RGVidWdnZXJBZ2VudC5jcHAKaW5kZXggZjc3OGRkOTYyY2IyZGRjMTYwNjMxNzQ2YTk5NWJkZGEw
YTliMjc4Yi4uZDUxZDRiZWFlOTEyMjM1MDdiNmM0NDY3Nzk0NGNiMjdiYTM2YzQ2NCAxMDA2NDQK
LS0tIGEvU291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL0luc3BlY3RvckRPTURlYnVnZ2VyQWdlbnQu
Y3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9JbnNwZWN0b3JET01EZWJ1Z2dlckFn
ZW50LmNwcApAQCAtMTA5LDcgKzEwOSw3IEBAIHZvaWQgSW5zcGVjdG9yRE9NRGVidWdnZXJBZ2Vu
dDo6ZGlkQ3JlYXRlRnJvbnRlbmRBbmRCYWNrZW5kKEluc3BlY3Rvcjo6RnJvbnRlbmRDCiAKIHZv
aWQgSW5zcGVjdG9yRE9NRGVidWdnZXJBZ2VudDo6d2lsbERlc3Ryb3lGcm9udGVuZEFuZEJhY2tl
bmQoSW5zcGVjdG9yOjpEaXNjb25uZWN0UmVhc29uKQogewotICAgIG1fYmFja2VuZERpc3BhdGNo
ZXIuY2xlYXIoKTsKKyAgICBtX2JhY2tlbmREaXNwYXRjaGVyID0gbnVsbHB0cjsKIAogICAgIGRp
c2FibGUoKTsKIH0KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9JbnNwZWN0
b3JET01TdG9yYWdlQWdlbnQuY3BwIGIvU291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL0luc3BlY3Rv
ckRPTVN0b3JhZ2VBZ2VudC5jcHAKaW5kZXggYjE2ODdjZjU0ODUzZjYyMmY1MmE2NzY4YzkyY2Nm
NDI1OGU3YTVmMS4uMDRhZjg4YmNlM2RjMDA1MTQ4NWIzZTJhNTBkOTcxNjAxN2MyZjY5ZiAxMDA2
NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL0luc3BlY3RvckRPTVN0b3JhZ2VBZ2Vu
dC5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL0luc3BlY3RvckRPTVN0b3JhZ2VB
Z2VudC5jcHAKQEAgLTc2LDcgKzc2LDcgQEAgdm9pZCBJbnNwZWN0b3JET01TdG9yYWdlQWdlbnQ6
OmRpZENyZWF0ZUZyb250ZW5kQW5kQmFja2VuZChJbnNwZWN0b3I6OkZyb250ZW5kQ2gKIHZvaWQg
SW5zcGVjdG9yRE9NU3RvcmFnZUFnZW50Ojp3aWxsRGVzdHJveUZyb250ZW5kQW5kQmFja2VuZChJ
bnNwZWN0b3I6OkRpc2Nvbm5lY3RSZWFzb24pCiB7CiAgICAgbV9mcm9udGVuZERpc3BhdGNoZXIg
PSBudWxscHRyOwotICAgIG1fYmFja2VuZERpc3BhdGNoZXIuY2xlYXIoKTsKKyAgICBtX2JhY2tl
bmREaXNwYXRjaGVyID0gbnVsbHB0cjsKIAogICAgIEVycm9yU3RyaW5nIHVudXNlZDsKICAgICBk
aXNhYmxlKHVudXNlZCk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvSW5z
cGVjdG9yRGF0YWJhc2VBZ2VudC5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvSW5zcGVj
dG9yRGF0YWJhc2VBZ2VudC5jcHAKaW5kZXggOTEzNGRmZTQ3Yzc5YzZjNmVmNDQxMzQ0NTIwYjcw
NDZlMWQ1ZGMxMy4uYmUyN2Y5NTYxNDQ1OWZiZmZkMWIwMmQ0ODVjZjFkNzdkZWQ5NjZlZCAxMDA2
NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL0luc3BlY3RvckRhdGFiYXNlQWdlbnQu
Y3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9JbnNwZWN0b3JEYXRhYmFzZUFnZW50
LmNwcApAQCAtMjMxLDcgKzIzMSw3IEBAIHZvaWQgSW5zcGVjdG9yRGF0YWJhc2VBZ2VudDo6ZGlk
Q3JlYXRlRnJvbnRlbmRBbmRCYWNrZW5kKEluc3BlY3Rvcjo6RnJvbnRlbmRDaGFuCiB2b2lkIElu
c3BlY3RvckRhdGFiYXNlQWdlbnQ6OndpbGxEZXN0cm95RnJvbnRlbmRBbmRCYWNrZW5kKEluc3Bl
Y3Rvcjo6RGlzY29ubmVjdFJlYXNvbikKIHsKICAgICBtX2Zyb250ZW5kRGlzcGF0Y2hlciA9IG51
bGxwdHI7Ci0gICAgbV9iYWNrZW5kRGlzcGF0Y2hlci5jbGVhcigpOworICAgIG1fYmFja2VuZERp
c3BhdGNoZXIgPSBudWxscHRyOwogCiAgICAgRXJyb3JTdHJpbmcgdW51c2VkOwogICAgIGRpc2Fi
bGUodW51c2VkKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9JbnNwZWN0
b3JJbmRleGVkREJBZ2VudC5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvSW5zcGVjdG9y
SW5kZXhlZERCQWdlbnQuY3BwCmluZGV4IDliZjEyOTExNmM0ZGM4MGEwODYzMWMwNGQ3MDdiMTgz
YWI4YmNhY2YuLjE3MmZiNTgxMjgwMjBhM2FlNTVkNjVkNGYwOGY1N2FlMTZhMGVjZjcgMTAwNjQ0
Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9JbnNwZWN0b3JJbmRleGVkREJBZ2VudC5j
cHAKKysrIGIvU291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL0luc3BlY3RvckluZGV4ZWREQkFnZW50
LmNwcApAQCAtNTgyLDcgKzU4Miw3IEBAIHZvaWQgSW5zcGVjdG9ySW5kZXhlZERCQWdlbnQ6OmRp
ZENyZWF0ZUZyb250ZW5kQW5kQmFja2VuZChJbnNwZWN0b3I6OkZyb250ZW5kQ2hhCiAKIHZvaWQg
SW5zcGVjdG9ySW5kZXhlZERCQWdlbnQ6OndpbGxEZXN0cm95RnJvbnRlbmRBbmRCYWNrZW5kKElu
c3BlY3Rvcjo6RGlzY29ubmVjdFJlYXNvbikKIHsKLSAgICBtX2JhY2tlbmREaXNwYXRjaGVyLmNs
ZWFyKCk7CisgICAgbV9iYWNrZW5kRGlzcGF0Y2hlciA9IG51bGxwdHI7CiAKICAgICBFcnJvclN0
cmluZyB1bnVzZWQ7CiAgICAgZGlzYWJsZSh1bnVzZWQpOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dl
YkNvcmUvaW5zcGVjdG9yL0luc3BlY3RvckxheWVyVHJlZUFnZW50LmNwcCBiL1NvdXJjZS9XZWJD
b3JlL2luc3BlY3Rvci9JbnNwZWN0b3JMYXllclRyZWVBZ2VudC5jcHAKaW5kZXggYmU2NDQ5NmU0
NjM4ZDAwYzNlYzI4OTA4NjU2YWU2NzdhNzM4OTc1OC4uZjZlNDFmYWM4MjhhYzZjNGY3NzYwNjVh
ZGY3YTNkYmY4ZDc4YmUwNCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL0lu
c3BlY3RvckxheWVyVHJlZUFnZW50LmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3Iv
SW5zcGVjdG9yTGF5ZXJUcmVlQWdlbnQuY3BwCkBAIC02NSw3ICs2NSw3IEBAIHZvaWQgSW5zcGVj
dG9yTGF5ZXJUcmVlQWdlbnQ6OmRpZENyZWF0ZUZyb250ZW5kQW5kQmFja2VuZChJbnNwZWN0b3I6
OkZyb250ZW5kQ2hhCiB2b2lkIEluc3BlY3RvckxheWVyVHJlZUFnZW50Ojp3aWxsRGVzdHJveUZy
b250ZW5kQW5kQmFja2VuZChJbnNwZWN0b3I6OkRpc2Nvbm5lY3RSZWFzb24pCiB7CiAgICAgbV9m
cm9udGVuZERpc3BhdGNoZXIgPSBudWxscHRyOwotICAgIG1fYmFja2VuZERpc3BhdGNoZXIuY2xl
YXIoKTsKKyAgICBtX2JhY2tlbmREaXNwYXRjaGVyID0gbnVsbHB0cjsKIAogICAgIEVycm9yU3Ry
aW5nIHVudXNlZDsKICAgICBkaXNhYmxlKHVudXNlZCk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2Vi
Q29yZS9pbnNwZWN0b3IvSW5zcGVjdG9yT3ZlcmxheS5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9pbnNw
ZWN0b3IvSW5zcGVjdG9yT3ZlcmxheS5jcHAKaW5kZXggNmQzYTBmM2NhNzI2NWExYWZmOGMzMjhh
NWYzZjZiNzljMzMxZDhkNC4uZmFlYTdjZWYyYzYzMmVlNTEwMmNkZjJiNjU0NDk3YWI4MDdiZTE3
NyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL0luc3BlY3Rvck92ZXJsYXku
Y3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9JbnNwZWN0b3JPdmVybGF5LmNwcApA
QCAtMjQzLDkgKzI0Myw5IEBAIHZvaWQgSW5zcGVjdG9yT3ZlcmxheTo6c2V0UGF1c2VkSW5EZWJ1
Z2dlck1lc3NhZ2UoY29uc3QgU3RyaW5nKiBtZXNzYWdlKQogCiB2b2lkIEluc3BlY3Rvck92ZXJs
YXk6OmhpZGVIaWdobGlnaHQoKQogewotICAgIG1faGlnaGxpZ2h0Tm9kZS5jbGVhcigpOwotICAg
IG1faGlnaGxpZ2h0Tm9kZUxpc3QuY2xlYXIoKTsKLSAgICBtX2hpZ2hsaWdodFF1YWQucmVzZXQo
KTsKKyAgICBtX2hpZ2hsaWdodE5vZGUgPSBudWxscHRyOworICAgIG1faGlnaGxpZ2h0Tm9kZUxp
c3QgPSBudWxscHRyOworICAgIG1faGlnaGxpZ2h0UXVhZCA9IG51bGxwdHI7CiAgICAgdXBkYXRl
KCk7CiB9CiAKQEAgLTI1Myw3ICsyNTMsNyBAQCB2b2lkIEluc3BlY3Rvck92ZXJsYXk6OmhpZ2hs
aWdodE5vZGVMaXN0KFBhc3NSZWZQdHI8Tm9kZUxpc3Q+IG5vZGVzLCBjb25zdCBIaWdobAogewog
ICAgIG1fbm9kZUhpZ2hsaWdodENvbmZpZyA9IGhpZ2hsaWdodENvbmZpZzsKICAgICBtX2hpZ2hs
aWdodE5vZGVMaXN0ID0gbm9kZXM7Ci0gICAgbV9oaWdobGlnaHROb2RlLmNsZWFyKCk7CisgICAg
bV9oaWdobGlnaHROb2RlID0gbnVsbHB0cjsKICAgICB1cGRhdGUoKTsKIH0KIApAQCAtMjYxLDcg
KzI2MSw3IEBAIHZvaWQgSW5zcGVjdG9yT3ZlcmxheTo6aGlnaGxpZ2h0Tm9kZShOb2RlKiBub2Rl
LCBjb25zdCBIaWdobGlnaHRDb25maWcmIGhpZ2hsaWdoCiB7CiAgICAgbV9ub2RlSGlnaGxpZ2h0
Q29uZmlnID0gaGlnaGxpZ2h0Q29uZmlnOwogICAgIG1faGlnaGxpZ2h0Tm9kZSA9IG5vZGU7Ci0g
ICAgbV9oaWdobGlnaHROb2RlTGlzdC5jbGVhcigpOworICAgIG1faGlnaGxpZ2h0Tm9kZUxpc3Qg
PSBudWxscHRyOwogICAgIHVwZGF0ZSgpOwogfQogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29y
ZS9pbnNwZWN0b3IvSW5zcGVjdG9yUGFnZUFnZW50LmNwcCBiL1NvdXJjZS9XZWJDb3JlL2luc3Bl
Y3Rvci9JbnNwZWN0b3JQYWdlQWdlbnQuY3BwCmluZGV4IDZmNTJiZmFlMGI1MjNjOTZmMTRlNTc0
MTcyMjY5NWExNzU1MWNhOGEuLjNlOWZlYmVmYjU0ZmU0NDhhYzg4MDc2ZDk5NmY5YThhZDA3YTVi
OWEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9JbnNwZWN0b3JQYWdlQWdl
bnQuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9JbnNwZWN0b3JQYWdlQWdlbnQu
Y3BwCkBAIC0zNDgsNyArMzQ4LDcgQEAgdm9pZCBJbnNwZWN0b3JQYWdlQWdlbnQ6OmRpZENyZWF0
ZUZyb250ZW5kQW5kQmFja2VuZChJbnNwZWN0b3I6OkZyb250ZW5kQ2hhbm5lbCoKIHZvaWQgSW5z
cGVjdG9yUGFnZUFnZW50Ojp3aWxsRGVzdHJveUZyb250ZW5kQW5kQmFja2VuZChJbnNwZWN0b3I6
OkRpc2Nvbm5lY3RSZWFzb24pCiB7CiAgICAgbV9mcm9udGVuZERpc3BhdGNoZXIgPSBudWxscHRy
OwotICAgIG1fYmFja2VuZERpc3BhdGNoZXIuY2xlYXIoKTsKKyAgICBtX2JhY2tlbmREaXNwYXRj
aGVyID0gbnVsbHB0cjsKIAogICAgIEVycm9yU3RyaW5nIHVudXNlZDsKICAgICBkaXNhYmxlKHVu
dXNlZCk7CkBAIC0zNzQsNyArMzc0LDcgQEAgdm9pZCBJbnNwZWN0b3JQYWdlQWdlbnQ6OmVuYWJs
ZShFcnJvclN0cmluZyYpCiB2b2lkIEluc3BlY3RvclBhZ2VBZ2VudDo6ZGlzYWJsZShFcnJvclN0
cmluZyYpCiB7CiAgICAgbV9lbmFibGVkID0gZmFsc2U7Ci0gICAgbV9zY3JpcHRzVG9FdmFsdWF0
ZU9uTG9hZC5jbGVhcigpOworICAgIG1fc2NyaXB0c1RvRXZhbHVhdGVPbkxvYWQgPSBudWxscHRy
OwogICAgIG1faW5zdHJ1bWVudGluZ0FnZW50cy0+c2V0SW5zcGVjdG9yUGFnZUFnZW50KG51bGxw
dHIpOwogCiAgICAgRXJyb3JTdHJpbmcgdW51c2VkOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNv
cmUvaW5zcGVjdG9yL0luc3BlY3RvclJlcGxheUFnZW50LmNwcCBiL1NvdXJjZS9XZWJDb3JlL2lu
c3BlY3Rvci9JbnNwZWN0b3JSZXBsYXlBZ2VudC5jcHAKaW5kZXggNjRjYjgxMTdjNzk4MWRhYzQz
NGY0M2NiZjNiZmQ5ZTMzMTI4NDdhMS4uMTgxYTYwOTgyYWY3MjZjMjQ0YTRjMWIzM2Q2YmM4N2My
OWI1MDU4NSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL0luc3BlY3RvclJl
cGxheUFnZW50LmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvSW5zcGVjdG9yUmVw
bGF5QWdlbnQuY3BwCkBAIC0xOTMsNyArMTkzLDcgQEAgdm9pZCBJbnNwZWN0b3JSZXBsYXlBZ2Vu
dDo6ZGlkQ3JlYXRlRnJvbnRlbmRBbmRCYWNrZW5kKEluc3BlY3Rvcjo6RnJvbnRlbmRDaGFubmUK
IHZvaWQgSW5zcGVjdG9yUmVwbGF5QWdlbnQ6OndpbGxEZXN0cm95RnJvbnRlbmRBbmRCYWNrZW5k
KEluc3BlY3Rvcjo6RGlzY29ubmVjdFJlYXNvbikKIHsKICAgICBtX2Zyb250ZW5kRGlzcGF0Y2hl
ciA9IG51bGxwdHI7Ci0gICAgbV9iYWNrZW5kRGlzcGF0Y2hlci5jbGVhcigpOworICAgIG1fYmFj
a2VuZERpc3BhdGNoZXIgPSBudWxscHRyOwogCiAgICAgbV9pbnN0cnVtZW50aW5nQWdlbnRzLT5z
ZXRJbnNwZWN0b3JSZXBsYXlBZ2VudChudWxscHRyKTsKIApkaWZmIC0tZ2l0IGEvU291cmNlL1dl
YkNvcmUvaW5zcGVjdG9yL0luc3BlY3RvclJlc291cmNlQWdlbnQuY3BwIGIvU291cmNlL1dlYkNv
cmUvaW5zcGVjdG9yL0luc3BlY3RvclJlc291cmNlQWdlbnQuY3BwCmluZGV4IDg1NDQ4OWMwNGY5
NzRkOTdjZDM2NjRhZWFhZDQ1ZmUwMWJiMWVmMDEuLjdiNTZhMGZmOWQxNThmNmJhOGIxMzUzYTBi
YWIyZTRkMGU4OWExZDcgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9JbnNw
ZWN0b3JSZXNvdXJjZUFnZW50LmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvSW5z
cGVjdG9yUmVzb3VyY2VBZ2VudC5jcHAKQEAgLTE4MSw3ICsxODEsNyBAQCB2b2lkIEluc3BlY3Rv
clJlc291cmNlQWdlbnQ6OmRpZENyZWF0ZUZyb250ZW5kQW5kQmFja2VuZChJbnNwZWN0b3I6OkZy
b250ZW5kQ2hhbgogdm9pZCBJbnNwZWN0b3JSZXNvdXJjZUFnZW50Ojp3aWxsRGVzdHJveUZyb250
ZW5kQW5kQmFja2VuZChJbnNwZWN0b3I6OkRpc2Nvbm5lY3RSZWFzb24pCiB7CiAgICAgbV9mcm9u
dGVuZERpc3BhdGNoZXIgPSBudWxscHRyOwotICAgIG1fYmFja2VuZERpc3BhdGNoZXIuY2xlYXIo
KTsKKyAgICBtX2JhY2tlbmREaXNwYXRjaGVyID0gbnVsbHB0cjsKIAogICAgIEVycm9yU3RyaW5n
IHVudXNlZDsKICAgICBkaXNhYmxlKHVudXNlZCk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29y
ZS9pbnNwZWN0b3IvSW5zcGVjdG9yU3R5bGVTaGVldC5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9pbnNw
ZWN0b3IvSW5zcGVjdG9yU3R5bGVTaGVldC5jcHAKaW5kZXggYjQ3YzY1NGQzZDc2MmNlNDVkY2Zl
NGYxNDRiNGM5NjU3ZWNjOWZjNC4uMDZlYzFiNmYyZjY0NGMyYzFkMDZkM2ZlZTlhYmUxMjhmYzBh
NWY4YyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL0luc3BlY3RvclN0eWxl
U2hlZXQuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9JbnNwZWN0b3JTdHlsZVNo
ZWV0LmNwcApAQCAtMTI2MSw3ICsxMjYxLDcgQEAgdm9pZCBJbnNwZWN0b3JTdHlsZVNoZWV0Rm9y
SW5saW5lU3R5bGU6OmRpZE1vZGlmeUVsZW1lbnRBdHRyaWJ1dGUoKQogICAgIG1faXNTdHlsZVRl
eHRWYWxpZCA9IGZhbHNlOwogICAgIGlmIChtX2VsZW1lbnQtPmlzU3R5bGVkRWxlbWVudCgpICYm
IG1fZWxlbWVudC0+c3R5bGUoKSAhPSBtX2luc3BlY3RvclN0eWxlLT5jc3NTdHlsZSgpKQogICAg
ICAgICBtX2luc3BlY3RvclN0eWxlID0gSW5zcGVjdG9yU3R5bGU6OmNyZWF0ZShJbnNwZWN0b3JD
U1NJZChpZCgpLCAwKSwgaW5saW5lU3R5bGUoKSwgdGhpcyk7Ci0gICAgbV9ydWxlU291cmNlRGF0
YS5jbGVhcigpOworICAgIG1fcnVsZVNvdXJjZURhdGEgPSBudWxscHRyOwogfQogCiBib29sIElu
c3BlY3RvclN0eWxlU2hlZXRGb3JJbmxpbmVTdHlsZTo6Z2V0VGV4dChTdHJpbmcqIHJlc3VsdCkg
Y29uc3QKQEAgLTEyODUsNyArMTI4NSw3IEBAIGJvb2wgSW5zcGVjdG9yU3R5bGVTaGVldEZvcklu
bGluZVN0eWxlOjpzZXRTdHlsZVRleHQoQ1NTU3R5bGVEZWNsYXJhdGlvbiogc3R5bGUsCiAKICAg
ICBtX3N0eWxlVGV4dCA9IHRleHQ7CiAgICAgbV9pc1N0eWxlVGV4dFZhbGlkID0gdHJ1ZTsKLSAg
ICBtX3J1bGVTb3VyY2VEYXRhLmNsZWFyKCk7CisgICAgbV9ydWxlU291cmNlRGF0YSA9IG51bGxw
dHI7CiAgICAgcmV0dXJuICFlYzsKIH0KIApAQCAtMTMwNCw3ICsxMzA0LDcgQEAgYm9vbCBJbnNw
ZWN0b3JTdHlsZVNoZWV0Rm9ySW5saW5lU3R5bGU6OmVuc3VyZVBhcnNlZERhdGFSZWFkeSgpCiAg
ICAgLy8gVGhlICJzdHlsZSIgcHJvcGVydHkgdmFsdWUgY2FuIGdldCBjaGFuZ2VkIGluZGlyZWN0
bHksIGUuZy4gdmlhIGVsZW1lbnQuc3R5bGUuYm9yZGVyV2lkdGggPSAiMnB4Ii4KICAgICBjb25z
dCBTdHJpbmcmIGN1cnJlbnRTdHlsZVRleHQgPSBlbGVtZW50U3R5bGVUZXh0KCk7CiAgICAgaWYg
KG1fc3R5bGVUZXh0ICE9IGN1cnJlbnRTdHlsZVRleHQpIHsKLSAgICAgICAgbV9ydWxlU291cmNl
RGF0YS5jbGVhcigpOworICAgICAgICBtX3J1bGVTb3VyY2VEYXRhID0gbnVsbHB0cjsKICAgICAg
ICAgbV9zdHlsZVRleHQgPSBjdXJyZW50U3R5bGVUZXh0OwogICAgICAgICBtX2lzU3R5bGVUZXh0
VmFsaWQgPSB0cnVlOwogICAgIH0KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rv
ci9JbnNwZWN0b3JUaW1lbGluZUFnZW50LmNwcCBiL1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9J
bnNwZWN0b3JUaW1lbGluZUFnZW50LmNwcAppbmRleCAwZTMyYmM1ZTYzODk4YWZmOGVkMmIwNmFi
YjBmN2ExYmE5ODAwOGE0Li5mNTc1NmEyZDFlYTgzODcxMTUwZDUyMWY4ZWZmMTQ5YTIzYWM3OGNi
IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvSW5zcGVjdG9yVGltZWxpbmVB
Z2VudC5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL0luc3BlY3RvclRpbWVsaW5l
QWdlbnQuY3BwCkBAIC0xMDMsNyArMTAzLDcgQEAgdm9pZCBJbnNwZWN0b3JUaW1lbGluZUFnZW50
OjpkaWRDcmVhdGVGcm9udGVuZEFuZEJhY2tlbmQoSW5zcGVjdG9yOjpGcm9udGVuZENoYW4KIHZv
aWQgSW5zcGVjdG9yVGltZWxpbmVBZ2VudDo6d2lsbERlc3Ryb3lGcm9udGVuZEFuZEJhY2tlbmQo
SW5zcGVjdG9yOjpEaXNjb25uZWN0UmVhc29uIHJlYXNvbikKIHsKICAgICBtX2Zyb250ZW5kRGlz
cGF0Y2hlciA9IG51bGxwdHI7Ci0gICAgbV9iYWNrZW5kRGlzcGF0Y2hlci5jbGVhcigpOworICAg
IG1fYmFja2VuZERpc3BhdGNoZXIgPSBudWxscHRyOwogCiAgICAgbV9pbnN0cnVtZW50aW5nQWdl
bnRzLT5zZXRQZXJzaXN0ZW50SW5zcGVjdG9yVGltZWxpbmVBZ2VudChudWxscHRyKTsKIApkaWZm
IC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL0luc3BlY3RvcldvcmtlckFnZW50LmNw
cCBiL1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9JbnNwZWN0b3JXb3JrZXJBZ2VudC5jcHAKaW5k
ZXggZGViYzY5ODc5NWQ5OGM0MmI4ZWIxOGMxMGZkYTJhMjVmODVmMmU5Yi4uNWUyMWYzNWJiNDgw
M2JlYjFlYTJkNTk4NGI0MmQwODY2NDVkOTE4MSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUv
aW5zcGVjdG9yL0luc3BlY3RvcldvcmtlckFnZW50LmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9p
bnNwZWN0b3IvSW5zcGVjdG9yV29ya2VyQWdlbnQuY3BwCkBAIC0xMjcsNyArMTI3LDcgQEAgdm9p
ZCBJbnNwZWN0b3JXb3JrZXJBZ2VudDo6d2lsbERlc3Ryb3lGcm9udGVuZEFuZEJhY2tlbmQoSW5z
cGVjdG9yOjpEaXNjb25uZWN0UmUKICAgICBkaXNhYmxlKHVudXNlZCk7CiAKICAgICBtX2Zyb250
ZW5kRGlzcGF0Y2hlciA9IG51bGxwdHI7Ci0gICAgbV9iYWNrZW5kRGlzcGF0Y2hlci5jbGVhcigp
OworICAgIG1fYmFja2VuZERpc3BhdGNoZXIgPSBudWxscHRyOwogfQogCiB2b2lkIEluc3BlY3Rv
cldvcmtlckFnZW50OjplbmFibGUoRXJyb3JTdHJpbmcmKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dl
YkNvcmUvaW5zcGVjdG9yL1BhZ2VSdW50aW1lQWdlbnQuY3BwIGIvU291cmNlL1dlYkNvcmUvaW5z
cGVjdG9yL1BhZ2VSdW50aW1lQWdlbnQuY3BwCmluZGV4IDkzZGI1NzJhN2YwNDU1MDViOWU1MTVl
NTA5MGM0ZmMwYjUwMjFlMmQuLmUyNDQ1YWJmNDQzZDA4ZjQzODRhMDM5YmM5ZTU1ZDhkNWYzZjcx
MmIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9QYWdlUnVudGltZUFnZW50
LmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvUGFnZVJ1bnRpbWVBZ2VudC5jcHAK
QEAgLTY5LDcgKzY5LDcgQEAgdm9pZCBQYWdlUnVudGltZUFnZW50OjpkaWRDcmVhdGVGcm9udGVu
ZEFuZEJhY2tlbmQoSW5zcGVjdG9yOjpGcm9udGVuZENoYW5uZWwqIGYKIHZvaWQgUGFnZVJ1bnRp
bWVBZ2VudDo6d2lsbERlc3Ryb3lGcm9udGVuZEFuZEJhY2tlbmQoSW5zcGVjdG9yOjpEaXNjb25u
ZWN0UmVhc29uIHJlYXNvbikKIHsKICAgICBtX2Zyb250ZW5kRGlzcGF0Y2hlciA9IG51bGxwdHI7
Ci0gICAgbV9iYWNrZW5kRGlzcGF0Y2hlci5jbGVhcigpOworICAgIG1fYmFja2VuZERpc3BhdGNo
ZXIgPSBudWxscHRyOwogCiAgICAgU3RyaW5nIHVudXNlZDsKICAgICBkaXNhYmxlKHVudXNlZCk7
CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvV2ViSW5qZWN0ZWRTY3JpcHRN
YW5hZ2VyLmNwcCBiL1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9XZWJJbmplY3RlZFNjcmlwdE1h
bmFnZXIuY3BwCmluZGV4IDlmNGFmNDI2OTNlYzU3NTk1MzEzMzk0NDYwYjE5MDVkZmUwYWQ1ODcu
LjU2MTk2ZjBhZTM3MWVmNDQzYzA1MjNlYjMxYmI2ZmM1ZWFmM2U1YjEgMTAwNjQ0Ci0tLSBhL1Nv
dXJjZS9XZWJDb3JlL2luc3BlY3Rvci9XZWJJbmplY3RlZFNjcmlwdE1hbmFnZXIuY3BwCisrKyBi
L1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9XZWJJbmplY3RlZFNjcmlwdE1hbmFnZXIuY3BwCkBA
IC00NCw3ICs0NCw3IEBAIHZvaWQgV2ViSW5qZWN0ZWRTY3JpcHRNYW5hZ2VyOjpkaXNjb25uZWN0
KCkKICAgICBJbmplY3RlZFNjcmlwdE1hbmFnZXI6OmRpc2Nvbm5lY3QoKTsKIAogICAgIG1fY29t
bWFuZExpbmVBUElIb3N0LT5kaXNjb25uZWN0KCk7Ci0gICAgbV9jb21tYW5kTGluZUFQSUhvc3Qu
Y2xlYXIoKTsKKyAgICBtX2NvbW1hbmRMaW5lQVBJSG9zdCA9IG51bGxwdHI7CiB9CiAKIHZvaWQg
V2ViSW5qZWN0ZWRTY3JpcHRNYW5hZ2VyOjpkaWRDcmVhdGVJbmplY3RlZFNjcmlwdChJbmplY3Rl
ZFNjcmlwdCBpbmplY3RlZFNjcmlwdCkKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2luc3Bl
Y3Rvci9Xb3JrZXJJbnNwZWN0b3JDb250cm9sbGVyLmNwcCBiL1NvdXJjZS9XZWJDb3JlL2luc3Bl
Y3Rvci9Xb3JrZXJJbnNwZWN0b3JDb250cm9sbGVyLmNwcAppbmRleCBmMWZlNDEwMDVhZGZlYTRi
YzAxZTBhZDViNzdmNThmMGI5NmMyNzBkLi5kODM0ZTBlYTlmNWEzMDBhODMyNGY0YWYxZDY2NmQz
YjkwNmFjNjUyIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvV29ya2VySW5z
cGVjdG9yQ29udHJvbGxlci5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL1dvcmtl
ckluc3BlY3RvckNvbnRyb2xsZXIuY3BwCkBAIC0xMjYsNyArMTI2LDcgQEAgdm9pZCBXb3JrZXJJ
bnNwZWN0b3JDb250cm9sbGVyOjpkaXNjb25uZWN0RnJvbnRlbmQoSW5zcGVjdG9yOjpEaXNjb25u
ZWN0UmVhc29uIHIKIAogICAgIG1fYWdlbnRzLndpbGxEZXN0cm95RnJvbnRlbmRBbmRCYWNrZW5k
KHJlYXNvbik7CiAgICAgbV9iYWNrZW5kRGlzcGF0Y2hlci0+Y2xlYXJGcm9udGVuZCgpOwotICAg
IG1fYmFja2VuZERpc3BhdGNoZXIuY2xlYXIoKTsKKyAgICBtX2JhY2tlbmREaXNwYXRjaGVyID0g
bnVsbHB0cjsKICAgICBtX2Zyb250ZW5kQ2hhbm5lbCA9IG51bGxwdHI7CiB9CiAKZGlmZiAtLWdp
dCBhL1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9Xb3JrZXJSdW50aW1lQWdlbnQuY3BwIGIvU291
cmNlL1dlYkNvcmUvaW5zcGVjdG9yL1dvcmtlclJ1bnRpbWVBZ2VudC5jcHAKaW5kZXggMjA2YTQx
ZjVmYjQyY2QxNWEzMzZjY2IzOTRiMmVhYzUxZGU1NGZmYS4uMTIyMmU1NTI3OThiYjYzNzM5OWY4
YWU3NTdiNGZmNGZkYmQyZTUwZCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvaW5zcGVjdG9y
L1dvcmtlclJ1bnRpbWVBZ2VudC5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL1dv
cmtlclJ1bnRpbWVBZ2VudC5jcHAKQEAgLTYwLDcgKzYwLDcgQEAgdm9pZCBXb3JrZXJSdW50aW1l
QWdlbnQ6OmRpZENyZWF0ZUZyb250ZW5kQW5kQmFja2VuZChJbnNwZWN0b3I6OkZyb250ZW5kQ2hh
bm5lbCoKIAogdm9pZCBXb3JrZXJSdW50aW1lQWdlbnQ6OndpbGxEZXN0cm95RnJvbnRlbmRBbmRC
YWNrZW5kKEluc3BlY3Rvcjo6RGlzY29ubmVjdFJlYXNvbiByZWFzb24pCiB7Ci0gICAgbV9iYWNr
ZW5kRGlzcGF0Y2hlci5jbGVhcigpOworICAgIG1fYmFja2VuZERpc3BhdGNoZXIgPSBudWxscHRy
OwogCiAgICAgSW5zcGVjdG9yUnVudGltZUFnZW50Ojp3aWxsRGVzdHJveUZyb250ZW5kQW5kQmFj
a2VuZChyZWFzb24pOwogfQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvbG9hZGVyL0RvY3Vt
ZW50TG9hZGVyLmNwcCBiL1NvdXJjZS9XZWJDb3JlL2xvYWRlci9Eb2N1bWVudExvYWRlci5jcHAK
aW5kZXggNWVjNDdhYzMxZjMzNWIzNWFlZTI4NzcyMmRiNjBjNTQ0NmQxYmI4YS4uN2NhMWYyMzg2
NmU2ZDE3NzVjMDZhNTJhY2UzMjIyYzIxMTU0YjQ5NSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNv
cmUvbG9hZGVyL0RvY3VtZW50TG9hZGVyLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9sb2FkZXIv
RG9jdW1lbnRMb2FkZXIuY3BwCkBAIC0xNTI0LDcgKzE1MjQsNyBAQCB2b2lkIERvY3VtZW50TG9h
ZGVyOjpnZXRJY29uTG9hZERlY2lzaW9uRm9ySWNvblVSTChjb25zdCBTdHJpbmcmIHVybFN0cmlu
ZykKIHZvaWQgRG9jdW1lbnRMb2FkZXI6OmNvbnRpbnVlSWNvbkxvYWRXaXRoRGVjaXNpb24oSWNv
bkxvYWREZWNpc2lvbiBkZWNpc2lvbikKIHsKICAgICBBU1NFUlQobV9pY29uTG9hZERlY2lzaW9u
Q2FsbGJhY2spOwotICAgIG1faWNvbkxvYWREZWNpc2lvbkNhbGxiYWNrID0gMDsKKyAgICBtX2lj
b25Mb2FkRGVjaXNpb25DYWxsYmFjayA9IG51bGxwdHI7CiAgICAgaWYgKG1fZnJhbWUpCiAgICAg
ICAgIG1fZnJhbWUtPmxvYWRlcigpLmljb24oKS5jb250aW51ZUxvYWRXaXRoRGVjaXNpb24oZGVj
aXNpb24pOwogfQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvbG9hZGVyL0RvY3VtZW50VGhy
ZWFkYWJsZUxvYWRlci5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9sb2FkZXIvRG9jdW1lbnRUaHJlYWRh
YmxlTG9hZGVyLmNwcAppbmRleCAxZTg2ZmFjMWJkZjgyOWE2M2UxNjkwYWYyYTNlNDc1MjYzMjA3
ZDFjLi5iMGU1ODk4YmJjZjgwZjlmZmE5ZDI4NjU0YjI3NGVjZmFiODI5ZmYxIDEwMDY0NAotLS0g
YS9Tb3VyY2UvV2ViQ29yZS9sb2FkZXIvRG9jdW1lbnRUaHJlYWRhYmxlTG9hZGVyLmNwcAorKysg
Yi9Tb3VyY2UvV2ViQ29yZS9sb2FkZXIvRG9jdW1lbnRUaHJlYWRhYmxlTG9hZGVyLmNwcApAQCAt
NjQsNyArNjQsNyBAQCBQYXNzUmVmUHRyPERvY3VtZW50VGhyZWFkYWJsZUxvYWRlcj4gRG9jdW1l
bnRUaHJlYWRhYmxlTG9hZGVyOjpjcmVhdGUoRG9jdW1lbnQmCiB7CiAgICAgUmVmUHRyPERvY3Vt
ZW50VGhyZWFkYWJsZUxvYWRlcj4gbG9hZGVyID0gYWRvcHRSZWYobmV3IERvY3VtZW50VGhyZWFk
YWJsZUxvYWRlcihkb2N1bWVudCwgY2xpZW50LCBMb2FkQXN5bmNocm9ub3VzbHksIHJlcXVlc3Qs
IG9wdGlvbnMpKTsKICAgICBpZiAoIWxvYWRlci0+bV9yZXNvdXJjZSkKLSAgICAgICAgbG9hZGVy
ID0gMDsKKyAgICAgICAgbG9hZGVyID0gbnVsbHB0cjsKICAgICByZXR1cm4gbG9hZGVyLnJlbGVh
c2UoKTsKIH0KIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvbG9hZGVyL0RvY3VtZW50V3Jp
dGVyLmNwcCBiL1NvdXJjZS9XZWJDb3JlL2xvYWRlci9Eb2N1bWVudFdyaXRlci5jcHAKaW5kZXgg
Y2M1MTM5M2MxMGY2MzZiZDc2ZWQxMDk4YjNlYmNjMzZjNDIyYzExMS4uYTFjMzc3ZjhlMWIzNDYw
N2QyNTc1NDE1YWNmYTRhYmNmOTEwYjQzMSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvbG9h
ZGVyL0RvY3VtZW50V3JpdGVyLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9sb2FkZXIvRG9jdW1l
bnRXcml0ZXIuY3BwCkBAIC05MCw3ICs5MCw3IEBAIHZvaWQgRG9jdW1lbnRXcml0ZXI6OnJlcGxh
Y2VEb2N1bWVudChjb25zdCBTdHJpbmcmIHNvdXJjZSwgRG9jdW1lbnQqIG93bmVyRG9jdW1lCiAK
IHZvaWQgRG9jdW1lbnRXcml0ZXI6OmNsZWFyKCkKIHsKLSAgICBtX2RlY29kZXIgPSAwOworICAg
IG1fZGVjb2RlciA9IG51bGxwdHI7CiAgICAgbV9oYXNSZWNlaXZlZFNvbWVEYXRhID0gZmFsc2U7
CiAgICAgaWYgKCFtX2VuY29kaW5nV2FzQ2hvc2VuQnlVc2VyKQogICAgICAgICBtX2VuY29kaW5n
ID0gU3RyaW5nKCk7CkBAIC0yNDUsNyArMjQ1LDcgQEAgdm9pZCBEb2N1bWVudFdyaXRlcjo6ZW5k
KCkKICAgICBpZiAoIW1fcGFyc2VyKQogICAgICAgICByZXR1cm47CiAgICAgbV9wYXJzZXItPmZp
bmlzaCgpOwotICAgIG1fcGFyc2VyID0gMDsKKyAgICBtX3BhcnNlciA9IG51bGxwdHI7CiB9CiAK
IHZvaWQgRG9jdW1lbnRXcml0ZXI6OnNldEVuY29kaW5nKGNvbnN0IFN0cmluZyYgbmFtZSwgYm9v
bCB1c2VyQ2hvc2VuKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvbG9hZGVyL0ZyYW1lTG9h
ZGVyLmNwcCBiL1NvdXJjZS9XZWJDb3JlL2xvYWRlci9GcmFtZUxvYWRlci5jcHAKaW5kZXggNTIy
YjE1N2RiY2JlYzBiNTAxMWY5NWU4NjY2NmE5ZTIwYzY5YmZjZC4uM2JkYjYyMWQ3ZGFiNTYzNmUw
MDllOTVhMWMzYjBiN2Y5Y2JmMzg4YiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvbG9hZGVy
L0ZyYW1lTG9hZGVyLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9sb2FkZXIvRnJhbWVMb2FkZXIu
Y3BwCkBAIC02OTIsNyArNjkyLDcgQEAgdm9pZCBGcmFtZUxvYWRlcjo6ZGlkQmVnaW5Eb2N1bWVu
dChib29sIGRpc3BhdGNoKQogCiAgICAgaWYgKG1fcGVuZGluZ1N0YXRlT2JqZWN0KSB7CiAgICAg
ICAgIG1fZnJhbWUuZG9jdW1lbnQoKS0+c3RhdGVQb3BwZWQobV9wZW5kaW5nU3RhdGVPYmplY3Qu
Z2V0KCkpOwotICAgICAgICBtX3BlbmRpbmdTdGF0ZU9iamVjdC5jbGVhcigpOworICAgICAgICBt
X3BlbmRpbmdTdGF0ZU9iamVjdCA9IG51bGxwdHI7CiAgICAgfQogCiAgICAgaWYgKGRpc3BhdGNo
KQpAQCAtODE4LDcgKzgxOCw3IEBAIHZvaWQgRnJhbWVMb2FkZXI6OmNoZWNrQ29tcGxldGVkKCkK
IAogICAgIC8vIE9LLCBjb21wbGV0ZWQuCiAgICAgbV9pc0NvbXBsZXRlID0gdHJ1ZTsKLSAgICBt
X3JlcXVlc3RlZEhpc3RvcnlJdGVtID0gMDsKKyAgICBtX3JlcXVlc3RlZEhpc3RvcnlJdGVtID0g
bnVsbHB0cjsKICAgICBtX2ZyYW1lLmRvY3VtZW50KCktPnNldFJlYWR5U3RhdGUoRG9jdW1lbnQ6
OkNvbXBsZXRlKTsKIAogI2lmIFBMQVRGT1JNKElPUykKQEAgLTExMzcsNyArMTEzNyw3IEBAIHZv
aWQgRnJhbWVMb2FkZXI6OnNldHVwRm9yUmVwbGFjZSgpCiAgICAgbV9jbGllbnQucmV2ZXJ0VG9Q
cm92aXNpb25hbFN0YXRlKG1fZG9jdW1lbnRMb2FkZXIuZ2V0KCkpOwogICAgIHNldFN0YXRlKEZy
YW1lU3RhdGVQcm92aXNpb25hbCk7CiAgICAgbV9wcm92aXNpb25hbERvY3VtZW50TG9hZGVyID0g
bV9kb2N1bWVudExvYWRlcjsKLSAgICBtX2RvY3VtZW50TG9hZGVyID0gMDsKKyAgICBtX2RvY3Vt
ZW50TG9hZGVyID0gbnVsbHB0cjsKICAgICBkZXRhY2hDaGlsZHJlbigpOwogfQogCmRpZmYgLS1n
aXQgYS9Tb3VyY2UvV2ViQ29yZS9sb2FkZXIvUHJvZ3Jlc3NUcmFja2VyLmNwcCBiL1NvdXJjZS9X
ZWJDb3JlL2xvYWRlci9Qcm9ncmVzc1RyYWNrZXIuY3BwCmluZGV4IDA0MDU0ZGU0ZWFiMzk1MWY5
NWUwN2U5ZGVkMzJkYzkxNmZkN2VlMDYuLmQ1NmNhMDVkYjk5MGIzMGE2YjA3ZDEyZmIyYzA5ZTk5
NmI3OTcyMGYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2xvYWRlci9Qcm9ncmVzc1RyYWNr
ZXIuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2xvYWRlci9Qcm9ncmVzc1RyYWNrZXIuY3BwCkBA
IC0xMTMsNyArMTEzLDcgQEAgdm9pZCBQcm9ncmVzc1RyYWNrZXI6OnJlc2V0KCkKICAgICBtX2xh
c3ROb3RpZmllZFByb2dyZXNzVGltZSA9IHN0ZDo6Y2hyb25vOjpzdGVhZHlfY2xvY2s6OnRpbWVf
cG9pbnQoKTsKICAgICBtX2ZpbmFsUHJvZ3Jlc3NDaGFuZ2VkU2VudCA9IGZhbHNlOwogICAgIG1f
bnVtUHJvZ3Jlc3NUcmFja2VkRnJhbWVzID0gMDsKLSAgICBtX29yaWdpbmF0aW5nUHJvZ3Jlc3NG
cmFtZSA9IDA7CisgICAgbV9vcmlnaW5hdGluZ1Byb2dyZXNzRnJhbWUgPSBudWxscHRyOwogCiAg
ICAgbV9oZWFydGJlYXRzV2l0aE5vUHJvZ3Jlc3MgPSAwOwogICAgIG1fdG90YWxCeXRlc1JlY2Vp
dmVkQmVmb3JlUHJldmlvdXNIZWFydGJlYXQgPSAwOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNv
cmUvbG9hZGVyL1Jlc291cmNlTG9hZGVyLmNwcCBiL1NvdXJjZS9XZWJDb3JlL2xvYWRlci9SZXNv
dXJjZUxvYWRlci5jcHAKaW5kZXggNDMxYTBjYjFkNDQ1YmUyZmY1OTAzZDYyMzU0NzY2YWFjY2U0
MzUzNi4uMTY2YTQ1NGMxMDkwYmE4YmQyZGRjMGNjYzdiYTIwMzEzMmE5MTM4MCAxMDA2NDQKLS0t
IGEvU291cmNlL1dlYkNvcmUvbG9hZGVyL1Jlc291cmNlTG9hZGVyLmNwcAorKysgYi9Tb3VyY2Uv
V2ViQ29yZS9sb2FkZXIvUmVzb3VyY2VMb2FkZXIuY3BwCkBAIC05MCw4ICs5MCw4IEBAIHZvaWQg
UmVzb3VyY2VMb2FkZXI6OnJlbGVhc2VSZXNvdXJjZXMoKQogICAgIC8vIGhhcyBiZWVuIGRlYWxs
b2NhdGVkIGFuZCBhbHNvIHRvIGF2b2lkIHJlZW50ZXJpbmcgdGhpcyBtZXRob2QuCiAgICAgUmVm
PFJlc291cmNlTG9hZGVyPiBwcm90ZWN0KCp0aGlzKTsKIAotICAgIG1fZnJhbWUgPSAwOwotICAg
IG1fZG9jdW1lbnRMb2FkZXIgPSAwOworICAgIG1fZnJhbWUgPSBudWxscHRyOworICAgIG1fZG9j
dW1lbnRMb2FkZXIgPSBudWxscHRyOwogICAgIAogICAgIC8vIFdlIG5lZWQgdG8gc2V0IHJlYWNo
ZWRUZXJtaW5hbFN0YXRlIHRvIHRydWUgYmVmb3JlIHdlIHJlbGVhc2UKICAgICAvLyB0aGUgcmVz
b3VyY2VzIHRvIHByZXZlbnQgYSBkb3VibGUgZGVhbGxvYyBvZiBXZWJWaWV3IDxyZGFyOi8vcHJv
YmxlbS80MzcyNjI4PgpAQCAtMTA0LDExICsxMDQsMTEgQEAgdm9pZCBSZXNvdXJjZUxvYWRlcjo6
cmVsZWFzZVJlc291cmNlcygpCiAgICAgICAgIC8vIENsZWFyIG91dCB0aGUgUmVzb3VyY2VIYW5k
bGUncyBjbGllbnQgc28gdGhhdCBpdCBkb2Vzbid0IHRyeSB0byBjYWxsCiAgICAgICAgIC8vIHVz
IGJhY2sgYWZ0ZXIgd2UgcmVsZWFzZSBpdCwgdW5sZXNzIGl0IGhhcyBiZWVuIHJlcGxhY2VkIGJ5
IHNvbWVvbmUgZWxzZS4KICAgICAgICAgaWYgKG1faGFuZGxlLT5jbGllbnQoKSA9PSB0aGlzKQot
ICAgICAgICAgICAgbV9oYW5kbGUtPnNldENsaWVudCgwKTsKLSAgICAgICAgbV9oYW5kbGUgPSAw
OworICAgICAgICAgICAgbV9oYW5kbGUtPnNldENsaWVudChudWxscHRyKTsKKyAgICAgICAgbV9o
YW5kbGUgPSBudWxscHRyOwogICAgIH0KIAotICAgIG1fcmVzb3VyY2VEYXRhID0gMDsKKyAgICBt
X3Jlc291cmNlRGF0YSA9IG51bGxwdHI7CiAgICAgbV9kZWZlcnJlZFJlcXVlc3QgPSBSZXNvdXJj
ZVJlcXVlc3QoKTsKIH0KIApAQCAtMjI1LDcgKzIyNSw3IEBAIHZvaWQgUmVzb3VyY2VMb2FkZXI6
OnNldERlZmVyc0xvYWRpbmcoYm9vbCBkZWZlcnMpCiBGcmFtZUxvYWRlciogUmVzb3VyY2VMb2Fk
ZXI6OmZyYW1lTG9hZGVyKCkgY29uc3QKIHsKICAgICBpZiAoIW1fZnJhbWUpCi0gICAgICAgIHJl
dHVybiAwOworICAgICAgICByZXR1cm4gbnVsbHB0cjsKICAgICByZXR1cm4gJm1fZnJhbWUtPmxv
YWRlcigpOwogfQogCkBAIC0yNDQsNyArMjQ0LDcgQEAgdm9pZCBSZXNvdXJjZUxvYWRlcjo6c2V0
RGF0YUJ1ZmZlcmluZ1BvbGljeShEYXRhQnVmZmVyaW5nUG9saWN5IGRhdGFCdWZmZXJpbmdQb2wK
IAogICAgIC8vIFJlc2V0IGFueSBhbHJlYWR5IGJ1ZmZlcmVkIGRhdGEKICAgICBpZiAoZGF0YUJ1
ZmZlcmluZ1BvbGljeSA9PSBEb05vdEJ1ZmZlckRhdGEpCi0gICAgICAgIG1fcmVzb3VyY2VEYXRh
ID0gMDsKKyAgICAgICAgbV9yZXNvdXJjZURhdGEgPSBudWxscHRyOwogfQogICAgIAogdm9pZCBS
ZXNvdXJjZUxvYWRlcjo6d2lsbFN3aXRjaFRvU3Vic3RpdHV0ZVJlc291cmNlKCkKQEAgLTUzMCw3
ICs1MzAsNyBAQCB2b2lkIFJlc291cmNlTG9hZGVyOjpjYW5jZWwoY29uc3QgUmVzb3VyY2VFcnJv
ciYgZXJyb3IpCiAgICAgICAgIG1fZG9jdW1lbnRMb2FkZXItPmNhbmNlbFBlbmRpbmdTdWJzdGl0
dXRlTG9hZCh0aGlzKTsKICAgICAgICAgaWYgKG1faGFuZGxlKSB7CiAgICAgICAgICAgICBtX2hh
bmRsZS0+Y2FuY2VsKCk7Ci0gICAgICAgICAgICBtX2hhbmRsZSA9IDA7CisgICAgICAgICAgICBt
X2hhbmRsZSA9IG51bGxwdHI7CiAgICAgICAgIH0KICAgICAgICAgY2xlYW51cEZvckVycm9yKG5v
bk51bGxFcnJvcik7CiAgICAgfQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvbG9hZGVyL2Fw
cGNhY2hlL0FwcGxpY2F0aW9uQ2FjaGVHcm91cC5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9sb2FkZXIv
YXBwY2FjaGUvQXBwbGljYXRpb25DYWNoZUdyb3VwLmNwcAppbmRleCA2MjdjMGZlNzllNzVlMDgz
OWM2NjE5Y2E3NGFiOTcwOTE4OTg5MmE2Li41OWJjYWM5YTEwMGJiYzU0MzhhZDQwMzI3ZmY3ZmZj
ZDM5ODk3MDYzIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9sb2FkZXIvYXBwY2FjaGUvQXBw
bGljYXRpb25DYWNoZUdyb3VwLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9sb2FkZXIvYXBwY2Fj
aGUvQXBwbGljYXRpb25DYWNoZUdyb3VwLmNwcApAQCAtMzI3LDcgKzMyNyw3IEBAIHZvaWQgQXBw
bGljYXRpb25DYWNoZUdyb3VwOjpzdG9wTG9hZGluZygpCiAgICAgICAgIG1fbWFuaWZlc3RIYW5k
bGUtPnNldENsaWVudCgwKTsKIAogICAgICAgICBtX21hbmlmZXN0SGFuZGxlLT5jYW5jZWwoKTsK
LSAgICAgICAgbV9tYW5pZmVzdEhhbmRsZSA9IDA7CisgICAgICAgIG1fbWFuaWZlc3RIYW5kbGUg
PSBudWxscHRyOwogICAgIH0KICAgICAKICAgICBpZiAobV9jdXJyZW50SGFuZGxlKSB7CkBAIC0z
MzgsMTEgKzMzOCwxMSBAQCB2b2lkIEFwcGxpY2F0aW9uQ2FjaGVHcm91cDo6c3RvcExvYWRpbmco
KQogICAgICAgICBtX2N1cnJlbnRIYW5kbGUtPnNldENsaWVudCgwKTsKIAogICAgICAgICBtX2N1
cnJlbnRIYW5kbGUtPmNhbmNlbCgpOwotICAgICAgICBtX2N1cnJlbnRIYW5kbGUgPSAwOworICAg
ICAgICBtX2N1cnJlbnRIYW5kbGUgPSBudWxscHRyOwogICAgIH0gICAgCiAKICAgICAvLyBGSVhN
RTogUmVzZXR0aW5nIGp1c3QgYSB0aW55IHBhcnQgb2YgdGhlIHN0YXRlIGluIHRoaXMgZnVuY3Rp
b24gaXMgY29uZnVzaW5nLiBDYWxsZXJzIGhhdmUgdG8gdGFrZSBjYXJlIG9mIGEgbG90IG1vcmUu
Ci0gICAgbV9jYWNoZUJlaW5nVXBkYXRlZCA9IDA7CisgICAgbV9jYWNoZUJlaW5nVXBkYXRlZCA9
IG51bGxwdHI7CiAgICAgbV9wZW5kaW5nRW50cmllcy5jbGVhcigpOwogfSAgICAKIApAQCAtNTIx
LDcgKzUyMSw3IEBAIHZvaWQgQXBwbGljYXRpb25DYWNoZUdyb3VwOjpkaWRSZWNlaXZlUmVzcG9u
c2UoUmVzb3VyY2VIYW5kbGUqIGhhbmRsZSwgY29uc3QgUmVzCiAgICAgICAgICAgICBtX2NhY2hl
QmVpbmdVcGRhdGVkLT5hZGRSZXNvdXJjZShBcHBsaWNhdGlvbkNhY2hlUmVzb3VyY2U6OmNyZWF0
ZSh1cmwsIG5ld2VzdENhY2hlZFJlc291cmNlLT5yZXNwb25zZSgpLCB0eXBlLCBuZXdlc3RDYWNo
ZWRSZXNvdXJjZS0+ZGF0YSgpLCBuZXdlc3RDYWNoZWRSZXNvdXJjZS0+cGF0aCgpKSk7CiAgICAg
ICAgICAgICBtX3BlbmRpbmdFbnRyaWVzLnJlbW92ZShtX2N1cnJlbnRIYW5kbGUtPmZpcnN0UmVx
dWVzdCgpLnVybCgpKTsKICAgICAgICAgICAgIG1fY3VycmVudEhhbmRsZS0+Y2FuY2VsKCk7Ci0g
ICAgICAgICAgICBtX2N1cnJlbnRIYW5kbGUgPSAwOworICAgICAgICAgICAgbV9jdXJyZW50SGFu
ZGxlID0gbnVsbHB0cjsKICAgICAgICAgICAgIC8vIExvYWQgdGhlIG5leHQgcmVzb3VyY2UsIGlm
IGFueS4KICAgICAgICAgICAgIHN0YXJ0TG9hZGluZ0VudHJ5KCk7CiAgICAgICAgICAgICByZXR1
cm47CkBAIC01MzgsNyArNTM4LDcgQEAgdm9pZCBBcHBsaWNhdGlvbkNhY2hlR3JvdXA6OmRpZFJl
Y2VpdmVSZXNwb25zZShSZXNvdXJjZUhhbmRsZSogaGFuZGxlLCBjb25zdCBSZXMKICAgICAgICAg
fSBlbHNlIGlmIChyZXNwb25zZS5odHRwU3RhdHVzQ29kZSgpID09IDQwNCB8fCByZXNwb25zZS5o
dHRwU3RhdHVzQ29kZSgpID09IDQxMCkgewogICAgICAgICAgICAgLy8gU2tpcCB0aGlzIHJlc291
cmNlLiBJdCBpcyBkcm9wcGVkIGZyb20gdGhlIGNhY2hlLgogICAgICAgICAgICAgbV9jdXJyZW50
SGFuZGxlLT5jYW5jZWwoKTsKLSAgICAgICAgICAgIG1fY3VycmVudEhhbmRsZSA9IDA7CisgICAg
ICAgICAgICBtX2N1cnJlbnRIYW5kbGUgPSBudWxscHRyOwogICAgICAgICAgICAgbV9wZW5kaW5n
RW50cmllcy5yZW1vdmUodXJsKTsKICAgICAgICAgICAgIC8vIExvYWQgdGhlIG5leHQgcmVzb3Vy
Y2UsIGlmIGFueS4KICAgICAgICAgICAgIHN0YXJ0TG9hZGluZ0VudHJ5KCk7CkBAIC01NTEsNyAr
NTUxLDcgQEAgdm9pZCBBcHBsaWNhdGlvbkNhY2hlR3JvdXA6OmRpZFJlY2VpdmVSZXNwb25zZShS
ZXNvdXJjZUhhbmRsZSogaGFuZGxlLCBjb25zdCBSZXMKICAgICAgICAgICAgIG1fY2FjaGVCZWlu
Z1VwZGF0ZWQtPmFkZFJlc291cmNlKEFwcGxpY2F0aW9uQ2FjaGVSZXNvdXJjZTo6Y3JlYXRlKHVy
bCwgbmV3ZXN0Q2FjaGVkUmVzb3VyY2UtPnJlc3BvbnNlKCksIHR5cGUsIG5ld2VzdENhY2hlZFJl
c291cmNlLT5kYXRhKCksIG5ld2VzdENhY2hlZFJlc291cmNlLT5wYXRoKCkpKTsKICAgICAgICAg
ICAgIG1fcGVuZGluZ0VudHJpZXMucmVtb3ZlKG1fY3VycmVudEhhbmRsZS0+Zmlyc3RSZXF1ZXN0
KCkudXJsKCkpOwogICAgICAgICAgICAgbV9jdXJyZW50SGFuZGxlLT5jYW5jZWwoKTsKLSAgICAg
ICAgICAgIG1fY3VycmVudEhhbmRsZSA9IDA7CisgICAgICAgICAgICBtX2N1cnJlbnRIYW5kbGUg
PSBudWxscHRyOwogICAgICAgICAgICAgLy8gTG9hZCB0aGUgbmV4dCByZXNvdXJjZSwgaWYgYW55
LgogICAgICAgICAgICAgc3RhcnRMb2FkaW5nRW50cnkoKTsKICAgICAgICAgfQpAQCAtNTk1LDcg
KzU5NSw3IEBAIHZvaWQgQXBwbGljYXRpb25DYWNoZUdyb3VwOjpkaWRGaW5pc2hMb2FkaW5nKFJl
c291cmNlSGFuZGxlKiBoYW5kbGUsIGRvdWJsZSBmaW5pCiAgICAgQVNTRVJUKG1fY2FjaGVCZWlu
Z1VwZGF0ZWQpOwogCiAgICAgbV9jYWNoZUJlaW5nVXBkYXRlZC0+YWRkUmVzb3VyY2UobV9jdXJy
ZW50UmVzb3VyY2UucmVsZWFzZSgpKTsKLSAgICBtX2N1cnJlbnRIYW5kbGUgPSAwOworICAgIG1f
Y3VycmVudEhhbmRsZSA9IG51bGxwdHI7CiAKICAgICAvLyBXaGlsZSBkb3dubG9hZGluZyBjaGVj
ayB0byBzZWUgaWYgd2UgaGF2ZSBleGNlZWRlZCB0aGUgYXZhaWxhYmxlIHF1b3RhLgogICAgIC8v
IFdlIGNhbiBzdG9wIGltbWVkaWF0ZWx5IGlmIHdlIGhhdmUgYWxyZWFkeSBwcmV2aW91c2x5IGZh
aWxlZApAQCAtNjAzLDcgKzYwMyw3IEBAIHZvaWQgQXBwbGljYXRpb25DYWNoZUdyb3VwOjpkaWRG
aW5pc2hMb2FkaW5nKFJlc291cmNlSGFuZGxlKiBoYW5kbGUsIGRvdWJsZSBmaW5pCiAgICAgLy8g
b2YgdGhlIHF1b3RhIGJlaW5nIHJlYWNoZWQgYW5kIGRlY2lkZWQgbm90IHRvIGluY3JlYXNlIGl0
IHRoZW4uCiAgICAgLy8gRklYTUU6IFNob3VsZCB3ZSBicmVhayBlYXJsaWVyIGFuZCBwcmV2ZW50
IHJlZG93bmxvYWRpbmcgb24gbGF0ZXIgcGFnZSBsb2Fkcz8KICAgICBpZiAobV9vcmlnaW5RdW90
YUV4Y2VlZGVkUHJldmlvdXNseSAmJiBtX2F2YWlsYWJsZVNwYWNlSW5RdW90YSA8IG1fY2FjaGVC
ZWluZ1VwZGF0ZWQtPmVzdGltYXRlZFNpemVJblN0b3JhZ2UoKSkgewotICAgICAgICBtX2N1cnJl
bnRSZXNvdXJjZSA9IDA7CisgICAgICAgIG1fY3VycmVudFJlc291cmNlID0gbnVsbHB0cjsKICAg
ICAgICAgbV9mcmFtZS0+ZG9jdW1lbnQoKS0+YWRkQ29uc29sZU1lc3NhZ2UoTWVzc2FnZVNvdXJj
ZTo6QXBwQ2FjaGUsIE1lc3NhZ2VMZXZlbDo6RXJyb3IsIEFTQ0lJTGl0ZXJhbCgiQXBwbGljYXRp
b24gQ2FjaGUgdXBkYXRlIGZhaWxlZCwgYmVjYXVzZSBzaXplIHF1b3RhIHdhcyBleGNlZWRlZC4i
KSk7CiAgICAgICAgIGNhY2hlVXBkYXRlRmFpbGVkKCk7CiAgICAgICAgIHJldHVybjsKQEAgLTYz
MSw3ICs2MzEsNyBAQCB2b2lkIEFwcGxpY2F0aW9uQ2FjaGVHcm91cDo6ZGlkRmFpbChSZXNvdXJj
ZUhhbmRsZSogaGFuZGxlLCBjb25zdCBSZXNvdXJjZUVycm9yJgogICAgICAgICB1cmwucmVtb3Zl
RnJhZ21lbnRJZGVudGlmaWVyKCk7CiAKICAgICBBU1NFUlQoIW1fY3VycmVudFJlc291cmNlIHx8
ICFtX3BlbmRpbmdFbnRyaWVzLmNvbnRhaW5zKHVybCkpOwotICAgIG1fY3VycmVudFJlc291cmNl
ID0gMDsKKyAgICBtX2N1cnJlbnRSZXNvdXJjZSA9IG51bGxwdHI7CiAgICAgbV9wZW5kaW5nRW50
cmllcy5yZW1vdmUodXJsKTsKIAogICAgIGlmICgodHlwZSAmIEFwcGxpY2F0aW9uQ2FjaGVSZXNv
dXJjZTo6RXhwbGljaXQpIHx8ICh0eXBlICYgQXBwbGljYXRpb25DYWNoZVJlc291cmNlOjpGYWxs
YmFjaykpIHsKQEAgLTY5NSw3ICs2OTUsNyBAQCB2b2lkIEFwcGxpY2F0aW9uQ2FjaGVHcm91cDo6
ZGlkRmluaXNoTG9hZGluZ01hbmlmZXN0KCkKICAgICAgICAgcmV0dXJuOwogICAgIH0KIAotICAg
IG1fbWFuaWZlc3RIYW5kbGUgPSAwOworICAgIG1fbWFuaWZlc3RIYW5kbGUgPSBudWxscHRyOwog
CiAgICAgLy8gQ2hlY2sgaWYgdGhlIG1hbmlmZXN0IHdhcyBub3QgbW9kaWZpZWQuCiAgICAgaWYg
KGlzVXBncmFkZUF0dGVtcHQpIHsKQEAgLTcwNiw3ICs3MDYsNyBAQCB2b2lkIEFwcGxpY2F0aW9u
Q2FjaGVHcm91cDo6ZGlkRmluaXNoTG9hZGluZ01hbmlmZXN0KCkKICAgICAgICAgICAgIChuZXdl
c3RNYW5pZmVzdC0+ZGF0YSgpLT5zaXplKCkgPT0gbV9tYW5pZmVzdFJlc291cmNlLT5kYXRhKCkt
PnNpemUoKSAmJiAhbWVtY21wKG5ld2VzdE1hbmlmZXN0LT5kYXRhKCktPmRhdGEoKSwgbV9tYW5p
ZmVzdFJlc291cmNlLT5kYXRhKCktPmRhdGEoKSwgbmV3ZXN0TWFuaWZlc3QtPmRhdGEoKS0+c2l6
ZSgpKSkpIHsKIAogICAgICAgICAgICAgbV9jb21wbGV0aW9uVHlwZSA9IE5vVXBkYXRlOwotICAg
ICAgICAgICAgbV9tYW5pZmVzdFJlc291cmNlID0gMDsKKyAgICAgICAgICAgIG1fbWFuaWZlc3RS
ZXNvdXJjZSA9IG51bGxwdHI7CiAgICAgICAgICAgICBkZWxpdmVyRGVsYXllZE1haW5SZXNvdXJj
ZXMoKTsKIAogICAgICAgICAgICAgcmV0dXJuOwpAQCAtNzgyLDcgKzc4Miw3IEBAIHZvaWQgQXBw
bGljYXRpb25DYWNoZUdyb3VwOjpkaWRSZWFjaE9yaWdpblF1b3RhKGludDY0X3QgdG90YWxTcGFj
ZU5lZWRlZCkKIHZvaWQgQXBwbGljYXRpb25DYWNoZUdyb3VwOjpjYWNoZVVwZGF0ZUZhaWxlZCgp
CiB7CiAgICAgc3RvcExvYWRpbmcoKTsKLSAgICBtX21hbmlmZXN0UmVzb3VyY2UgPSAwOworICAg
IG1fbWFuaWZlc3RSZXNvdXJjZSA9IG51bGxwdHI7CiAKICAgICAvLyBXYWl0IGZvciBtYXN0ZXIg
cmVzb3VyY2UgbG9hZHMgdG8gZmluaXNoLgogICAgIG1fY29tcGxldGlvblR5cGUgPSBGYWlsdXJl
OwpAQCAtODA3LDcgKzgwNyw3IEBAIHZvaWQgQXBwbGljYXRpb25DYWNoZUdyb3VwOjptYW5pZmVz
dE5vdEZvdW5kKCkKICAgICBzdG9wTG9hZGluZygpOwogCiAgICAgQVNTRVJUKG1fcGVuZGluZ0Vu
dHJpZXMuaXNFbXB0eSgpKTsKLSAgICBtX21hbmlmZXN0UmVzb3VyY2UgPSAwOworICAgIG1fbWFu
aWZlc3RSZXNvdXJjZSA9IG51bGxwdHI7CiAKICAgICB3aGlsZSAoIW1fcGVuZGluZ01hc3RlclJl
c291cmNlTG9hZGVycy5pc0VtcHR5KCkpIHsKICAgICAgICAgSGFzaFNldDxEb2N1bWVudExvYWRl
cio+OjppdGVyYXRvciBpdCA9IG1fcGVuZGluZ01hc3RlclJlc291cmNlTG9hZGVycy5iZWdpbigp
OwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvbG9hZGVyL2NhY2hlL0NhY2hlZENTU1N0eWxl
U2hlZXQuY3BwIGIvU291cmNlL1dlYkNvcmUvbG9hZGVyL2NhY2hlL0NhY2hlZENTU1N0eWxlU2hl
ZXQuY3BwCmluZGV4IDdjMmZlN2Q4OTI0ZjRmOTBlY2RkNTgyMDY2YWZlMjdjMDlmMzA4YzEuLjZk
MTE4ODAxYWY4MjY4NDVmYjYxOTkyNzA0NGFmOWIyYjJkMjM2YzQgMTAwNjQ0Ci0tLSBhL1NvdXJj
ZS9XZWJDb3JlL2xvYWRlci9jYWNoZS9DYWNoZWRDU1NTdHlsZVNoZWV0LmNwcAorKysgYi9Tb3Vy
Y2UvV2ViQ29yZS9sb2FkZXIvY2FjaGUvQ2FjaGVkQ1NTU3R5bGVTaGVldC5jcHAKQEAgLTEzOCw3
ICsxMzgsNyBAQCB2b2lkIENhY2hlZENTU1N0eWxlU2hlZXQ6OmRlc3Ryb3lEZWNvZGVkRGF0YSgp
CiAgICAgICAgIHJldHVybjsKIAogICAgIG1fcGFyc2VkU3R5bGVTaGVldENhY2hlLT5yZW1vdmVk
RnJvbU1lbW9yeUNhY2hlKCk7Ci0gICAgbV9wYXJzZWRTdHlsZVNoZWV0Q2FjaGUuY2xlYXIoKTsK
KyAgICBtX3BhcnNlZFN0eWxlU2hlZXRDYWNoZSA9IG51bGxwdHI7CiAKICAgICBzZXREZWNvZGVk
U2l6ZSgwKTsKIH0KQEAgLTE0NiwxMSArMTQ2LDExIEBAIHZvaWQgQ2FjaGVkQ1NTU3R5bGVTaGVl
dDo6ZGVzdHJveURlY29kZWREYXRhKCkKIFBhc3NSZWZQdHI8U3R5bGVTaGVldENvbnRlbnRzPiBD
YWNoZWRDU1NTdHlsZVNoZWV0OjpyZXN0b3JlUGFyc2VkU3R5bGVTaGVldChjb25zdCBDU1NQYXJz
ZXJDb250ZXh0JiBjb250ZXh0LCBDYWNoZVBvbGljeSBjYWNoZVBvbGljeSkKIHsKICAgICBpZiAo
IW1fcGFyc2VkU3R5bGVTaGVldENhY2hlKQotICAgICAgICByZXR1cm4gMDsKKyAgICAgICAgcmV0
dXJuIG51bGxwdHI7CiAgICAgaWYgKCFtX3BhcnNlZFN0eWxlU2hlZXRDYWNoZS0+c3VicmVzb3Vy
Y2VzQWxsb3dSZXVzZShjYWNoZVBvbGljeSkpIHsKICAgICAgICAgbV9wYXJzZWRTdHlsZVNoZWV0
Q2FjaGUtPnJlbW92ZWRGcm9tTWVtb3J5Q2FjaGUoKTsKLSAgICAgICAgbV9wYXJzZWRTdHlsZVNo
ZWV0Q2FjaGUuY2xlYXIoKTsKLSAgICAgICAgcmV0dXJuIDA7CisgICAgICAgIG1fcGFyc2VkU3R5
bGVTaGVldENhY2hlID0gbnVsbHB0cjsKKyAgICAgICAgcmV0dXJuIG51bGxwdHI7CiAgICAgfQog
CiAgICAgQVNTRVJUKG1fcGFyc2VkU3R5bGVTaGVldENhY2hlLT5pc0NhY2hlYWJsZSgpKTsKQEAg
LTE1OCw3ICsxNTgsNyBAQCBQYXNzUmVmUHRyPFN0eWxlU2hlZXRDb250ZW50cz4gQ2FjaGVkQ1NT
U3R5bGVTaGVldDo6cmVzdG9yZVBhcnNlZFN0eWxlU2hlZXQoY29ucwogCiAgICAgLy8gQ29udGV4
dHMgbXVzdCBiZSBpZGVudGljYWwgc28gd2Uga25vdyB3ZSB3b3VsZCBnZXQgdGhlIHNhbWUgZXhh
Y3QgcmVzdWx0IGlmIHdlIHBhcnNlZCBhZ2Fpbi4KICAgICBpZiAobV9wYXJzZWRTdHlsZVNoZWV0
Q2FjaGUtPnBhcnNlckNvbnRleHQoKSAhPSBjb250ZXh0KQotICAgICAgICByZXR1cm4gMDsKKyAg
ICAgICAgcmV0dXJuIG51bGxwdHI7CiAKICAgICBkaWRBY2Nlc3NEZWNvZGVkRGF0YShtb25vdG9u
aWNhbGx5SW5jcmVhc2luZ1RpbWUoKSk7CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2xv
YWRlci9jYWNoZS9DYWNoZWRJbWFnZS5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9sb2FkZXIvY2FjaGUv
Q2FjaGVkSW1hZ2UuY3BwCmluZGV4IDUyNzY5ZGI5NmNlMTdkZWFkNzIwNDFhNzY4MWJhNmYyYTBh
ZDU5ODkuLmRmMzM2NzVjNjNiNWRiNGFmMDNlMzI5MzdjOTFhOWQ3MzQwNGE3MGEgMTAwNjQ0Ci0t
LSBhL1NvdXJjZS9XZWJDb3JlL2xvYWRlci9jYWNoZS9DYWNoZWRJbWFnZS5jcHAKKysrIGIvU291
cmNlL1dlYkNvcmUvbG9hZGVyL2NhY2hlL0NhY2hlZEltYWdlLmNwcApAQCAtMzY1LDggKzM2NSw4
IEBAIGlubGluZSB2b2lkIENhY2hlZEltYWdlOjpjbGVhckltYWdlKCkKICAgICAvLyBJZiBvdXIg
SW1hZ2UgaGFzIGFuIG9ic2VydmVyLCBpdCdzIGFsd2F5cyB1cyBzbyB3ZSBuZWVkIHRvIGNsZWFy
IHRoZSBiYWNrIHBvaW50ZXIKICAgICAvLyBiZWZvcmUgZHJvcHBpbmcgb3VyIHJlZmVyZW5jZS4K
ICAgICBpZiAobV9pbWFnZSkKLSAgICAgICAgbV9pbWFnZS0+c2V0SW1hZ2VPYnNlcnZlcigwKTsK
LSAgICBtX2ltYWdlLmNsZWFyKCk7CisgICAgICAgIG1faW1hZ2UtPnNldEltYWdlT2JzZXJ2ZXIo
bnVsbHB0cik7CisgICAgbV9pbWFnZSA9IG51bGxwdHI7CiB9CiAKIHZvaWQgQ2FjaGVkSW1hZ2U6
OmFkZEluY3JlbWVudGFsRGF0YUJ1ZmZlcihTaGFyZWRCdWZmZXImIGRhdGEpCkBAIC00NTgsNyAr
NDU4LDcgQEAgdm9pZCBDYWNoZWRJbWFnZTo6ZGVzdHJveURlY29kZWREYXRhKCkKIHsKICAgICBi
b29sIGNhbkRlbGV0ZUltYWdlID0gIW1faW1hZ2UgfHwgKG1faW1hZ2UtPmhhc09uZVJlZigpICYm
IG1faW1hZ2UtPmlzQml0bWFwSW1hZ2UoKSk7CiAgICAgaWYgKGNhbkRlbGV0ZUltYWdlICYmICFp
c0xvYWRpbmcoKSAmJiAhaGFzQ2xpZW50cygpKSB7Ci0gICAgICAgIG1faW1hZ2UgPSAwOworICAg
ICAgICBtX2ltYWdlID0gbnVsbHB0cjsKICAgICAgICAgc2V0RGVjb2RlZFNpemUoMCk7CiAgICAg
fSBlbHNlIGlmIChtX2ltYWdlICYmICFlcnJvck9jY3VycmVkKCkpCiAgICAgICAgIG1faW1hZ2Ut
PmRlc3Ryb3lEZWNvZGVkRGF0YSgpOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvbG9hZGVy
L2NhY2hlL0NhY2hlZFJhd1Jlc291cmNlLmNwcCBiL1NvdXJjZS9XZWJDb3JlL2xvYWRlci9jYWNo
ZS9DYWNoZWRSYXdSZXNvdXJjZS5jcHAKaW5kZXggM2MxYjI5NTU0YjE5YzA1ZTJmZTkxZWIwN2Uw
ZTU1MmMyZjk4YThmNC4uNTRiYmRlMWFjOGVjODcxNDhhOTUzZDNkZDc3ODJhN2IzZTMyNDU2NSAx
MDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvbG9hZGVyL2NhY2hlL0NhY2hlZFJhd1Jlc291cmNl
LmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9sb2FkZXIvY2FjaGUvQ2FjaGVkUmF3UmVzb3VyY2Uu
Y3BwCkBAIC0yNjgsNyArMjY4LDcgQEAgYm9vbCBDYWNoZWRSYXdSZXNvdXJjZTo6Y2FuUmV1c2Uo
Y29uc3QgUmVzb3VyY2VSZXF1ZXN0JiBuZXdSZXF1ZXN0KSBjb25zdAogCiB2b2lkIENhY2hlZFJh
d1Jlc291cmNlOjpjbGVhcigpCiB7Ci0gICAgbV9kYXRhLmNsZWFyKCk7CisgICAgbV9kYXRhID0g
bnVsbHB0cjsKICAgICBzZXRFbmNvZGVkU2l6ZSgwKTsKICAgICBpZiAobV9sb2FkZXIpCiAgICAg
ICAgIG1fbG9hZGVyLT5jbGVhclJlc291cmNlRGF0YSgpOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dl
YkNvcmUvbG9hZGVyL2NhY2hlL0NhY2hlZFJlc291cmNlLmNwcCBiL1NvdXJjZS9XZWJDb3JlL2xv
YWRlci9jYWNoZS9DYWNoZWRSZXNvdXJjZS5jcHAKaW5kZXggZjQ0MzFiZjNkZGFmY2QyZmI3MDM4
MzdjNmY3Y2NkMDEzMDc1MTFmMC4uM2JlZjIxZThkOTg5ODhhMDM4ZGViN2UxMGUwZWY0ZTNjZWY0
M2E2YiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvbG9hZGVyL2NhY2hlL0NhY2hlZFJlc291
cmNlLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9sb2FkZXIvY2FjaGUvQ2FjaGVkUmVzb3VyY2Uu
Y3BwCkBAIC0zMTcsNyArMzE3LDcgQEAgdm9pZCBDYWNoZWRSZXNvdXJjZTo6ZXJyb3IoQ2FjaGVk
UmVzb3VyY2U6OlN0YXR1cyBzdGF0dXMpCiB7CiAgICAgc2V0U3RhdHVzKHN0YXR1cyk7CiAgICAg
QVNTRVJUKGVycm9yT2NjdXJyZWQoKSk7Ci0gICAgbV9kYXRhLmNsZWFyKCk7CisgICAgbV9kYXRh
ID0gbnVsbHB0cjsKIAogICAgIHNldExvYWRpbmcoZmFsc2UpOwogICAgIGNoZWNrTm90aWZ5KCk7
CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9sb2FkZXIvaWNvbi9JY29uUmVjb3JkLmNwcCBi
L1NvdXJjZS9XZWJDb3JlL2xvYWRlci9pY29uL0ljb25SZWNvcmQuY3BwCmluZGV4IGQ0YmMwZDFh
MTlmMzcwNjJiZjdjYTU4ZWRjNjQyYmZlZTYyMDVhODguLmU3ZjFkNGIyMzM0NjEwNjk0ZGQzMWVl
N2VjNDQwNDdmODM3M2I3NjUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2xvYWRlci9pY29u
L0ljb25SZWNvcmQuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2xvYWRlci9pY29uL0ljb25SZWNv
cmQuY3BwCkBAIC03MSw3ICs3MSw3IEBAIHZvaWQgSWNvblJlY29yZDo6c2V0SW1hZ2VEYXRhKFBh
c3NSZWZQdHI8U2hhcmVkQnVmZmVyPiBkYXRhKQogICAgIC8vIENvcHkgdGhlIHByb3ZpZGVkIGRh
dGEgaW50byB0aGUgYnVmZmVyIG9mIHRoZSBuZXcgSW1hZ2Ugb2JqZWN0LgogICAgIGlmICghbV9p
bWFnZS0+c2V0RGF0YShkYXRhLCB0cnVlKSkgewogICAgICAgICBMT0coSWNvbkRhdGFiYXNlLCAi
TWFudWFsIGltYWdlIGRhdGEgZm9yIGljb25VUkwgJyVzJyBGQUlMRUQgLSBpdCB3YXMgcHJvYmFi
bHkgaW52YWxpZCBpbWFnZSBkYXRhIiwgbV9pY29uVVJMLmFzY2lpKCkuZGF0YSgpKTsKLSAgICAg
ICAgbV9pbWFnZS5jbGVhcigpOworICAgICAgICBtX2ltYWdlID0gbnVsbHB0cjsKICAgICB9CiAg
ICAgCiAgICAgbV9kYXRhU2V0ID0gdHJ1ZTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3Bh
Z2UvRXZlbnRIYW5kbGVyLmNwcCBiL1NvdXJjZS9XZWJDb3JlL3BhZ2UvRXZlbnRIYW5kbGVyLmNw
cAppbmRleCA2NTRhNGZlYzc3Mzc5NzIzZDdiNjFmMzYxNjdhYmEyNWU4OTQ1MDljLi4zYWE2NmQ5
YmM4MTRlYzNiZmRiZDM0YzlkNzVlM2U3MzU2MTE1NGUzIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2Vi
Q29yZS9wYWdlL0V2ZW50SGFuZGxlci5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvcGFnZS9FdmVu
dEhhbmRsZXIuY3BwCkBAIC00ODUsNyArNDg1LDcgQEAgdm9pZCBFdmVudEhhbmRsZXI6OmNsZWFy
KCkKICAgICBtX21vdXNlUG9zaXRpb25Jc1Vua25vd24gPSB0cnVlOwogICAgIG1fbGFzdEtub3du
TW91c2VQb3NpdGlvbiA9IEludFBvaW50KCk7CiAgICAgbV9sYXN0S25vd25Nb3VzZUdsb2JhbFBv
c2l0aW9uID0gSW50UG9pbnQoKTsKLSAgICBtX21vdXNlUHJlc3NOb2RlID0gMDsKKyAgICBtX21v
dXNlUHJlc3NOb2RlID0gbnVsbHB0cjsKICAgICBtX21vdXNlUHJlc3NlZCA9IGZhbHNlOwogICAg
IG1fY2FwdHVyZXNEcmFnZ2luZyA9IGZhbHNlOwogICAgIG1fY2FwdHVyaW5nTW91c2VFdmVudHNF
bGVtZW50ID0gbnVsbHB0cjsKQEAgLTQ5NCw3ICs0OTQsNyBAQCB2b2lkIEV2ZW50SGFuZGxlcjo6
Y2xlYXIoKQogI2VuZGlmCiAjaWYgRU5BQkxFKFRPVUNIX0VWRU5UUykgJiYgIUVOQUJMRShJT1Nf
VE9VQ0hfRVZFTlRTKQogICAgIG1fb3JpZ2luYXRpbmdUb3VjaFBvaW50VGFyZ2V0cy5jbGVhcigp
OwotICAgIG1fb3JpZ2luYXRpbmdUb3VjaFBvaW50RG9jdW1lbnQuY2xlYXIoKTsKKyAgICBtX29y
aWdpbmF0aW5nVG91Y2hQb2ludERvY3VtZW50ID0gbnVsbHB0cjsKICAgICBtX29yaWdpbmF0aW5n
VG91Y2hQb2ludFRhcmdldEtleSA9IDA7CiAjZW5kaWYKICAgICBtX21heE1vdXNlTW92ZWREdXJh
dGlvbiA9IDA7CkBAIC0zOTk0LDcgKzM5OTQsNyBAQCBib29sIEV2ZW50SGFuZGxlcjo6aGFuZGxl
VG91Y2hFdmVudChjb25zdCBQbGF0Zm9ybVRvdWNoRXZlbnQmIGV2ZW50KQogICAgIH0KICAgICBt
X3RvdWNoUHJlc3NlZCA9IHRvdWNoZXMtPmxlbmd0aCgpID4gMDsKICAgICBpZiAoYWxsVG91Y2hS
ZWxlYXNlZCkKLSAgICAgICAgbV9vcmlnaW5hdGluZ1RvdWNoUG9pbnREb2N1bWVudC5jbGVhcigp
OworICAgICAgICBtX29yaWdpbmF0aW5nVG91Y2hQb2ludERvY3VtZW50ID0gbnVsbHB0cjsKIAog
ICAgIC8vIE5vdyBpdGVyYXRlIHRoZSBjaGFuZ2VkVG91Y2hlcyBsaXN0IGFuZCBtX3RhcmdldHMg
d2l0aGluIGl0LCBzZW5kaW5nIGV2ZW50cyB0byB0aGUgdGFyZ2V0cyBhcyByZXF1aXJlZC4KICAg
ICBib29sIHN3YWxsb3dlZEV2ZW50ID0gZmFsc2U7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29y
ZS9wYWdlL1BhZ2UuY3BwIGIvU291cmNlL1dlYkNvcmUvcGFnZS9QYWdlLmNwcAppbmRleCAxZDNk
Y2MyYjU2Mzk2MjE0ZTlmODBmNzJjOGUzM2VhMTg5YjkzYWQyLi5mODZkODFmZDA1MzBhMDNjNjI2
MjIxMTZjOTBiZmU5MDU2NzE2N2IwIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wYWdlL1Bh
Z2UuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BhZ2UvUGFnZS5jcHAKQEAgLTUxNiw3ICs1MTYs
NyBAQCB2b2lkIFBhZ2U6OnJlZnJlc2hQbHVnaW5zKGJvb2wgcmVsb2FkKQogICAgIFZlY3RvcjxS
ZWY8RnJhbWU+PiBmcmFtZXNOZWVkaW5nUmVsb2FkOwogCiAgICAgZm9yIChhdXRvJiBwYWdlIDog
KmFsbFBhZ2VzKSB7Ci0gICAgICAgIHBhZ2UtPm1fcGx1Z2luRGF0YS5jbGVhcigpOworICAgICAg
ICBwYWdlLT5tX3BsdWdpbkRhdGEgPSBudWxscHRyOwogCiAgICAgICAgIGlmICghcmVsb2FkKQog
ICAgICAgICAgICAgY29udGludWU7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9y
bS9hdWRpby9tYWMvQ0FSaW5nQnVmZmVyLmNwcCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2F1
ZGlvL21hYy9DQVJpbmdCdWZmZXIuY3BwCmluZGV4IGY3NmU4ZGY5MDZiNWE2MWU1N2M3NzVjNGNl
NmQyY2M0NGJjOGFhNTIuLjA1NDQyYWRjNDVlOTc3ODk5MzE1MjA1YzM3MmU2MTk2MDEyNzlkMzcg
MTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2F1ZGlvL21hYy9DQVJpbmdCdWZm
ZXIuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2F1ZGlvL21hYy9DQVJpbmdCdWZm
ZXIuY3BwCkBAIC04Niw3ICs4Niw3IEBAIHZvaWQgQ0FSaW5nQnVmZmVyOjphbGxvY2F0ZSh1aW50
MzJfdCBjaGFubmVsQ291bnQsIHNpemVfdCBieXRlc1BlckZyYW1lLCBzaXplX3QKIHZvaWQgQ0FS
aW5nQnVmZmVyOjpkZWFsbG9jYXRlKCkKIHsKICAgICBpZiAobV9idWZmZXJzKQotICAgICAgICBt
X2J1ZmZlcnMuY2xlYXIoKTsKKyAgICAgICAgbV9idWZmZXJzID0gbnVsbHB0cjsKIAogICAgIG1f
Y2hhbm5lbENvdW50ID0gMDsKICAgICBtX2NhcGFjaXR5Qnl0ZXMgPSAwOwpkaWZmIC0tZ2l0IGEv
U291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvRm9udC5jcHAgYi9Tb3VyY2UvV2ViQ29y
ZS9wbGF0Zm9ybS9ncmFwaGljcy9Gb250LmNwcAppbmRleCA2MDNlYmE4MWYwMTBmZWYwYjA5ZWE5
NDdhZTg4NmE1MTk5OGI1YWNjLi5kOTI2NWI1OGQyYmUyNGFkNzE0NzNhYmE1YjIzYjUyNmQwOTEz
NzJlIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9Gb250LmNw
cAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9Gb250LmNwcApAQCAtMzYz
LDcgKzM2Myw3IEBAIGNvbnN0IE9wZW5UeXBlTWF0aERhdGEqIEZvbnQ6Om1hdGhEYXRhKCkgY29u
c3QKICAgICBpZiAoIW1fbWF0aERhdGEpIHsKICAgICAgICAgbV9tYXRoRGF0YSA9IE9wZW5UeXBl
TWF0aERhdGE6OmNyZWF0ZShtX3BsYXRmb3JtRGF0YSk7CiAgICAgICAgIGlmICghbV9tYXRoRGF0
YS0+aGFzTWF0aERhdGEoKSkKLSAgICAgICAgICAgIG1fbWF0aERhdGEuY2xlYXIoKTsKKyAgICAg
ICAgICAgIG1fbWF0aERhdGEgPSBudWxscHRyOwogICAgIH0KICAgICByZXR1cm4gbV9tYXRoRGF0
YS5nZXQoKTsKIH0KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNz
L0ZvbnRDYWNoZS5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9Gb250Q2Fj
aGUuY3BwCmluZGV4IGE2YzQwNDk5NDhjZjM2MzIxYjczZGQ1MTFiOTE4YTJhOGFhZTA0NWMuLjhk
MWE4MzU5ZDY5Y2I3MGU0YzIwYjVlYTgzMjg3NjVhNmJjZDQ2MzQgMTAwNjQ0Ci0tLSBhL1NvdXJj
ZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL0ZvbnRDYWNoZS5jcHAKKysrIGIvU291cmNlL1dl
YkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvRm9udENhY2hlLmNwcApAQCAtMzIwLDcgKzMyMCw3IEBA
IFBhc3NSZWZQdHI8T3BlblR5cGVWZXJ0aWNhbERhdGE+IEZvbnRDYWNoZTo6Z2V0VmVydGljYWxE
YXRhKGNvbnN0IEZvbnRGaWxlS2V5JiBrCiAKICAgICBSZWZQdHI8T3BlblR5cGVWZXJ0aWNhbERh
dGE+IHZlcnRpY2FsRGF0YSA9IE9wZW5UeXBlVmVydGljYWxEYXRhOjpjcmVhdGUocGxhdGZvcm1E
YXRhKTsKICAgICBpZiAoIXZlcnRpY2FsRGF0YS0+aXNPcGVuVHlwZSgpKQotICAgICAgICB2ZXJ0
aWNhbERhdGEuY2xlYXIoKTsKKyAgICAgICAgdmVydGljYWxEYXRhID0gbnVsbHB0cjsKICAgICBm
b250VmVydGljYWxEYXRhQ2FjaGUuc2V0KGtleSwgdmVydGljYWxEYXRhKTsKICAgICByZXR1cm4g
dmVydGljYWxEYXRhOwogfQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3Jh
cGhpY3MvR3JhcGhpY3NDb250ZXh0LmNwcCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBo
aWNzL0dyYXBoaWNzQ29udGV4dC5jcHAKaW5kZXggZDM4YzFmYWY3NzUyNTgzM2YzN2UzY2I2MTc4
YmI0YzZmNjdjYzM5OS4uZTZiMzdmZGU1Zjk1ZWMwMmMyZjdkNjhhNjFmNDBmNDdhNzdmMjczMSAx
MDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvR3JhcGhpY3NDb250
ZXh0LmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9HcmFwaGljc0Nv
bnRleHQuY3BwCkBAIC0xNzgsOCArMTc4LDggQEAgdm9pZCBHcmFwaGljc0NvbnRleHQ6OnNldFN0
cm9rZUNvbG9yKGNvbnN0IENvbG9yJiBjb2xvciwgQ29sb3JTcGFjZSBjb2xvclNwYWNlKQogewog
ICAgIG1fc3RhdGUuc3Ryb2tlQ29sb3IgPSBjb2xvcjsKICAgICBtX3N0YXRlLnN0cm9rZUNvbG9y
U3BhY2UgPSBjb2xvclNwYWNlOwotICAgIG1fc3RhdGUuc3Ryb2tlR3JhZGllbnQuY2xlYXIoKTsK
LSAgICBtX3N0YXRlLnN0cm9rZVBhdHRlcm4uY2xlYXIoKTsKKyAgICBtX3N0YXRlLnN0cm9rZUdy
YWRpZW50ID0gbnVsbHB0cjsKKyAgICBtX3N0YXRlLnN0cm9rZVBhdHRlcm4gPSBudWxscHRyOwog
ICAgIHNldFBsYXRmb3JtU3Ryb2tlQ29sb3IoY29sb3IsIGNvbG9yU3BhY2UpOwogfQogCkBAIC0y
NDUsOCArMjQ1LDggQEAgdm9pZCBHcmFwaGljc0NvbnRleHQ6OnNldEZpbGxDb2xvcihjb25zdCBD
b2xvciYgY29sb3IsIENvbG9yU3BhY2UgY29sb3JTcGFjZSkKIHsKICAgICBtX3N0YXRlLmZpbGxD
b2xvciA9IGNvbG9yOwogICAgIG1fc3RhdGUuZmlsbENvbG9yU3BhY2UgPSBjb2xvclNwYWNlOwot
ICAgIG1fc3RhdGUuZmlsbEdyYWRpZW50LmNsZWFyKCk7Ci0gICAgbV9zdGF0ZS5maWxsUGF0dGVy
bi5jbGVhcigpOworICAgIG1fc3RhdGUuZmlsbEdyYWRpZW50ID0gbnVsbHB0cjsKKyAgICBtX3N0
YXRlLmZpbGxQYXR0ZXJuID0gbnVsbHB0cjsKICAgICBzZXRQbGF0Zm9ybUZpbGxDb2xvcihjb2xv
ciwgY29sb3JTcGFjZSk7CiB9CiAKQEAgLTI2OSwyNiArMjY5LDI2IEBAIHZvaWQgR3JhcGhpY3ND
b250ZXh0OjpzZXRBbnRpYWxpYXNlZEZvbnREaWxhdGlvbkVuYWJsZWQoYm9vbCBhbnRpYWxpYXNl
ZEZvbnREaWxhCiAKIHZvaWQgR3JhcGhpY3NDb250ZXh0OjpzZXRTdHJva2VQYXR0ZXJuKFJlZjxQ
YXR0ZXJuPiYmIHBhdHRlcm4pCiB7Ci0gICAgbV9zdGF0ZS5zdHJva2VHcmFkaWVudC5jbGVhcigp
OworICAgIG1fc3RhdGUuc3Ryb2tlR3JhZGllbnQgPSBudWxscHRyOwogICAgIG1fc3RhdGUuc3Ry
b2tlUGF0dGVybiA9IFdURjo6bW92ZShwYXR0ZXJuKTsKIH0KIAogdm9pZCBHcmFwaGljc0NvbnRl
eHQ6OnNldEZpbGxQYXR0ZXJuKFJlZjxQYXR0ZXJuPiYmIHBhdHRlcm4pCiB7Ci0gICAgbV9zdGF0
ZS5maWxsR3JhZGllbnQuY2xlYXIoKTsKKyAgICBtX3N0YXRlLmZpbGxHcmFkaWVudCA9IG51bGxw
dHI7CiAgICAgbV9zdGF0ZS5maWxsUGF0dGVybiA9IFdURjo6bW92ZShwYXR0ZXJuKTsKIH0KIAog
dm9pZCBHcmFwaGljc0NvbnRleHQ6OnNldFN0cm9rZUdyYWRpZW50KFJlZjxHcmFkaWVudD4mJiBn
cmFkaWVudCkKIHsKICAgICBtX3N0YXRlLnN0cm9rZUdyYWRpZW50ID0gV1RGOjptb3ZlKGdyYWRp
ZW50KTsKLSAgICBtX3N0YXRlLnN0cm9rZVBhdHRlcm4uY2xlYXIoKTsKKyAgICBtX3N0YXRlLnN0
cm9rZVBhdHRlcm4gPSBudWxscHRyOwogfQogCiB2b2lkIEdyYXBoaWNzQ29udGV4dDo6c2V0Rmls
bEdyYWRpZW50KFJlZjxHcmFkaWVudD4mJiBncmFkaWVudCkKIHsKICAgICBtX3N0YXRlLmZpbGxH
cmFkaWVudCA9IFdURjo6bW92ZShncmFkaWVudCk7Ci0gICAgbV9zdGF0ZS5maWxsUGF0dGVybi5j
bGVhcigpOworICAgIG1fc3RhdGUuZmlsbFBhdHRlcm4gPSBudWxscHRyOwogfQogCiB2b2lkIEdy
YXBoaWNzQ29udGV4dDo6YmVnaW5UcmFuc3BhcmVuY3lMYXllcihmbG9hdCBvcGFjaXR5KQpkaWZm
IC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvTWVkaWFQbGF5ZXIuY3Bw
IGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvTWVkaWFQbGF5ZXIuY3BwCmluZGV4
IDI5NGE3NmQ5Zjg2ZWYyZTc3NTBkMzZhODNhOTg3ZDc2MGQ0MGIxZDIuLjAxMjc5NWU0NjViZWEw
NGQwZjg3ZTcyNzdlNzRlMGZlNWI1ODcyYjEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3Bs
YXRmb3JtL2dyYXBoaWNzL01lZGlhUGxheWVyLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0
Zm9ybS9ncmFwaGljcy9NZWRpYVBsYXllci5jcHAKQEAgLTMxNCwxMCArMzE0LDEwIEBAIGJvb2wg
TWVkaWFQbGF5ZXI6OmxvYWQoY29uc3QgVVJMJiB1cmwsIGNvbnN0IENvbnRlbnRUeXBlJiBjb250
ZW50VHlwZSwgY29uc3QgU3RyCiAgICAgbV9jb250ZW50TUlNRVR5cGVXYXNJbmZlcnJlZEZyb21F
eHRlbnNpb24gPSBmYWxzZTsKIAogI2lmIEVOQUJMRShNRURJQV9TT1VSQ0UpCi0gICAgbV9tZWRp
YVNvdXJjZSA9IDA7CisgICAgbV9tZWRpYVNvdXJjZSA9IG51bGxwdHI7CiAjZW5kaWYKICNpZiBF
TkFCTEUoTUVESUFfU1RSRUFNKQotICAgIG1fbWVkaWFTdHJlYW0gPSAwOworICAgIG1fbWVkaWFT
dHJlYW0gPSBudWxscHRyOwogI2VuZGlmCiAKICAgICAvLyBJZiB0aGUgTUlNRSB0eXBlIGlzIG1p
c3Npbmcgb3IgaXMgbm90IG1lYW5pbmdmdWwsIHRyeSB0byBmaWd1cmUgaXQgb3V0IGZyb20gdGhl
IFVSTC4KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2NhL0dy
YXBoaWNzTGF5ZXJDQS5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9jYS9H
cmFwaGljc0xheWVyQ0EuY3BwCmluZGV4IDgyYzA3NjkxMjdiZjllNTE2OWRhZTQ4ZGZiNGIyODkw
MmZlOTA2YzAuLjM0ZjRjZTEwM2E5MzZlM2EwMTFiODVjZmI0ZGZlZWNkNjE1MmM4ZTggMTAwNjQ0
Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2NhL0dyYXBoaWNzTGF5ZXJD
QS5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvY2EvR3JhcGhpY3NM
YXllckNBLmNwcApAQCAtMjIwOCw3ICsyMjA4LDcgQEAgdm9pZCBHcmFwaGljc0xheWVyQ0E6OnVw
ZGF0ZUNvbnRlbnRzSW1hZ2UoKQogICAgIH0gZWxzZSB7CiAgICAgICAgIC8vIE5vIGltYWdlLgog
ICAgICAgICAvLyBtX2NvbnRlbnRzTGF5ZXIgd2lsbCBiZSByZW1vdmVkIHZpYSB1cGRhdGVTdWJs
YXllckxpc3QuCi0gICAgICAgIG1fY29udGVudHNMYXllciA9IDA7CisgICAgICAgIG1fY29udGVu
dHNMYXllciA9IG51bGxwdHI7CiAgICAgfQogfQogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29y
ZS9wbGF0Zm9ybS9ncmFwaGljcy9jYWlyby9CYWNraW5nU3RvcmVCYWNrZW5kQ2Fpcm9YMTEuY3Bw
IGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvY2Fpcm8vQmFja2luZ1N0b3JlQmFj
a2VuZENhaXJvWDExLmNwcAppbmRleCA3Yjg2MzFhZjBhOWQ4ZjRhZTkwNjNiMjc5ZTQwY2VlMzQ1
NDljZmE0Li40MzdkYWZjODJmZDIyZWNiZjA2MDQ3YTNjMjg2ODllYmUwMjIzNmQyIDEwMDY0NAot
LS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9jYWlyby9CYWNraW5nU3RvcmVC
YWNrZW5kQ2Fpcm9YMTEuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNz
L2NhaXJvL0JhY2tpbmdTdG9yZUJhY2tlbmRDYWlyb1gxMS5jcHAKQEAgLTQzLDcgKzQzLDcgQEAg
QmFja2luZ1N0b3JlQmFja2VuZENhaXJvWDExOjpCYWNraW5nU3RvcmVCYWNrZW5kQ2Fpcm9YMTEo
dW5zaWduZWQgbG9uZyByb290V2luZG8KIEJhY2tpbmdTdG9yZUJhY2tlbmRDYWlyb1gxMTo6fkJh
Y2tpbmdTdG9yZUJhY2tlbmRDYWlyb1gxMSgpCiB7CiAgICAgLy8gVGhlIHBpeG1hcCBuZWVkcyB0
byBleGlzdCB3aGVuIHRoZSBzdXJmYWNlIGlzIGRlc3Ryb3llZCwgc28gYmVnaW4gYnkgY2xlYXJp
bmcgaXQuCi0gICAgbV9zdXJmYWNlLmNsZWFyKCk7CisgICAgbV9zdXJmYWNlID0gbnVsbHB0cjsK
IH0KIAogdm9pZCBCYWNraW5nU3RvcmVCYWNrZW5kQ2Fpcm9YMTE6OnNjcm9sbChjb25zdCBJbnRS
ZWN0JiBzY3JvbGxSZWN0LCBjb25zdCBJbnRTaXplJiBzY3JvbGxPZmZzZXQpCmRpZmYgLS1naXQg
YS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9jYWlyby9CaXRtYXBJbWFnZUNhaXJv
LmNwcCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2NhaXJvL0JpdG1hcEltYWdl
Q2Fpcm8uY3BwCmluZGV4IDI2ZGY1ZGYzYWJhNDkwNzYwMTI3ODljMjY2ZmE5NjAyNzc1YmUyZGUu
LmYwZDNhN2E3MmRiOTJmZGUxZDFiNWY5OTM4YjNjMGMxZTdhZDYxZjEgMTAwNjQ0Ci0tLSBhL1Nv
dXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2NhaXJvL0JpdG1hcEltYWdlQ2Fpcm8uY3Bw
CisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2NhaXJvL0JpdG1hcEltYWdl
Q2Fpcm8uY3BwCkBAIC0xNTksNyArMTU5LDcgQEAgYm9vbCBGcmFtZURhdGE6OmNsZWFyKGJvb2wg
Y2xlYXJNZXRhZGF0YSkKICAgICAgICAgbV9oYXZlTWV0YWRhdGEgPSBmYWxzZTsKIAogICAgIGlm
IChtX2ZyYW1lKSB7Ci0gICAgICAgIG1fZnJhbWUuY2xlYXIoKTsKKyAgICAgICAgbV9mcmFtZSA9
IG51bGxwdHI7CiAgICAgICAgIHJldHVybiB0cnVlOwogICAgIH0KICAgICByZXR1cm4gZmFsc2U7
CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9maWx0ZXJzL0Zp
bHRlckVmZmVjdC5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9maWx0ZXJz
L0ZpbHRlckVmZmVjdC5jcHAKaW5kZXggNzYyNzAwODAzMGQ3ZWZhZTZlMDgwZTY4NzU4ZGMxNjBl
YWMyYzBiOS4uYzk4ZDViOTg1YWYzYmIxZTViMGMwYzIyNmJiNDVmYzYwNTRmNDMzYyAxMDA2NDQK
LS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvZmlsdGVycy9GaWx0ZXJFZmZl
Y3QuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2ZpbHRlcnMvRmls
dGVyRWZmZWN0LmNwcApAQCAtMjQ1LDEyICsyNDUsMTIgQEAgdm9pZCBGaWx0ZXJFZmZlY3Q6OmNs
ZWFyUmVzdWx0KCkKICAgICBpZiAobV9pbWFnZUJ1ZmZlclJlc3VsdCkKICAgICAgICAgbV9pbWFn
ZUJ1ZmZlclJlc3VsdC5yZXNldCgpOwogICAgIGlmIChtX3VubXVsdGlwbGllZEltYWdlUmVzdWx0
KQotICAgICAgICBtX3VubXVsdGlwbGllZEltYWdlUmVzdWx0LmNsZWFyKCk7CisgICAgICAgIG1f
dW5tdWx0aXBsaWVkSW1hZ2VSZXN1bHQgPSBudWxscHRyOwogICAgIGlmIChtX3ByZW11bHRpcGxp
ZWRJbWFnZVJlc3VsdCkKLSAgICAgICAgbV9wcmVtdWx0aXBsaWVkSW1hZ2VSZXN1bHQuY2xlYXIo
KTsKKyAgICAgICAgbV9wcmVtdWx0aXBsaWVkSW1hZ2VSZXN1bHQgPSBudWxscHRyOwogI2lmIEVO
QUJMRShPUEVOQ0wpCiAgICAgaWYgKG1fb3BlbkNMSW1hZ2VSZXN1bHQpCi0gICAgICAgIG1fb3Bl
bkNMSW1hZ2VSZXN1bHQuY2xlYXIoKTsKKyAgICAgICAgbV9vcGVuQ0xJbWFnZVJlc3VsdCA9IG51
bGxwdHI7CiAjZW5kaWYKIH0KIApAQCAtNTQwLDcgKzU0MCw3IEBAIHZvaWQgRmlsdGVyRWZmZWN0
Ojp0cmFuc2Zvcm1SZXN1bHRDb2xvclNwYWNlKENvbG9yU3BhY2UgZHN0Q29sb3JTcGFjZSkKICNp
ZiBFTkFCTEUoT1BFTkNMKQogICAgIGlmIChvcGVuQ0xJbWFnZSgpKSB7CiAgICAgICAgIGlmICht
X2ltYWdlQnVmZmVyUmVzdWx0KQotICAgICAgICAgICAgbV9pbWFnZUJ1ZmZlclJlc3VsdC5jbGVh
cigpOworICAgICAgICAgICAgbV9pbWFnZUJ1ZmZlclJlc3VsdCA9IG51bGxwdHI7CiAgICAgICAg
IEZpbHRlckNvbnRleHRPcGVuQ0wqIGNvbnRleHQgPSBGaWx0ZXJDb250ZXh0T3BlbkNMOjpjb250
ZXh0KCk7CiAgICAgICAgIEFTU0VSVChjb250ZXh0KTsKICAgICAgICAgY29udGV4dC0+b3BlbkNM
VHJhbnNmb3JtQ29sb3JTcGFjZShtX29wZW5DTEltYWdlUmVzdWx0LCBhYnNvbHV0ZVBhaW50UmVj
dCgpLCBtX3Jlc3VsdENvbG9yU3BhY2UsIGRzdENvbG9yU3BhY2UpOwpAQCAtNTU4LDkgKzU1OCw5
IEBAIHZvaWQgRmlsdGVyRWZmZWN0Ojp0cmFuc2Zvcm1SZXN1bHRDb2xvclNwYWNlKENvbG9yU3Bh
Y2UgZHN0Q29sb3JTcGFjZSkKICAgICBtX3Jlc3VsdENvbG9yU3BhY2UgPSBkc3RDb2xvclNwYWNl
OwogCiAgICAgaWYgKG1fdW5tdWx0aXBsaWVkSW1hZ2VSZXN1bHQpCi0gICAgICAgIG1fdW5tdWx0
aXBsaWVkSW1hZ2VSZXN1bHQuY2xlYXIoKTsKKyAgICAgICAgbV91bm11bHRpcGxpZWRJbWFnZVJl
c3VsdCA9IG51bGxwdHI7CiAgICAgaWYgKG1fcHJlbXVsdGlwbGllZEltYWdlUmVzdWx0KQotICAg
ICAgICBtX3ByZW11bHRpcGxpZWRJbWFnZVJlc3VsdC5jbGVhcigpOworICAgICAgICBtX3ByZW11
bHRpcGxpZWRJbWFnZVJlc3VsdCA9IG51bGxwdHI7CiAjZW5kaWYKIH0KIApkaWZmIC0tZ2l0IGEv
U291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvZ3N0cmVhbWVyL0ltYWdlR1N0cmVhbWVy
Q2Fpcm8uY3BwIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvZ3N0cmVhbWVyL0lt
YWdlR1N0cmVhbWVyQ2Fpcm8uY3BwCmluZGV4IDA2ZmFlY2ExOWJhMjUzZWE3ODM3MGY1ODU0NGFi
ZjFhY2IyZTUyNWUuLmVlMjcyNzdmZjBiN2U5MDMzZjRiOTMzNjAyOGFjZjQyMThiMjBhNWYgMTAw
NjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2dzdHJlYW1lci9JbWFn
ZUdTdHJlYW1lckNhaXJvLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGlj
cy9nc3RyZWFtZXIvSW1hZ2VHU3RyZWFtZXJDYWlyby5jcHAKQEAgLTcxLDkgKzcxLDcgQEAgSW1h
Z2VHU3RyZWFtZXI6OkltYWdlR1N0cmVhbWVyKEdzdFNhbXBsZSogc2FtcGxlKQogSW1hZ2VHU3Ry
ZWFtZXI6On5JbWFnZUdTdHJlYW1lcigpCiB7CiAgICAgaWYgKG1faW1hZ2UpCi0gICAgICAgIG1f
aW1hZ2UuY2xlYXIoKTsKLQotICAgIG1faW1hZ2UgPSAwOworICAgICAgICBtX2ltYWdlID0gbnVs
bHB0cjsKIAogICAgIC8vIFdlIGtlZXAgdGhlIGJ1ZmZlciBtZW1vcnkgbWFwcGVkIHVudGlsIHRo
ZSBpbWFnZSBpcyBkZXN0cm95ZWQgYmVjYXVzZSB0aGUgaW50ZXJuYWwKICAgICAvLyBjYWlyb19z
dXJmYWNlX3Qgd2FzIGNyZWF0ZWQgdXNpbmcgY2Fpcm9faW1hZ2Vfc3VyZmFjZV9jcmVhdGVfZm9y
X2RhdGEoKS4KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2dz
dHJlYW1lci9XZWJLaXRXZWJTb3VyY2VHU3RyZWFtZXIuY3BwIGIvU291cmNlL1dlYkNvcmUvcGxh
dGZvcm0vZ3JhcGhpY3MvZ3N0cmVhbWVyL1dlYktpdFdlYlNvdXJjZUdTdHJlYW1lci5jcHAKaW5k
ZXggOTM0ZGFmOGNiNmQ1OThjN2VlYjZhN2QyNmM3NGY0MjFhZjY3OTRhMC4uYzJkYTM3MDY0NWFi
ODA2MDYzMTAwMGZlYmYzNjYyOTBlM2FjN2U4ZCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUv
cGxhdGZvcm0vZ3JhcGhpY3MvZ3N0cmVhbWVyL1dlYktpdFdlYlNvdXJjZUdTdHJlYW1lci5jcHAK
KysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvZ3N0cmVhbWVyL1dlYktpdFdl
YlNvdXJjZUdTdHJlYW1lci5jcHAKQEAgLTExNjksOCArMTE2OSw3IEBAIFJlc291cmNlSGFuZGxl
U3RyZWFtaW5nQ2xpZW50Ojp+UmVzb3VyY2VIYW5kbGVTdHJlYW1pbmdDbGllbnQoKQogewogICAg
IGlmIChtX3Jlc291cmNlKSB7CiAgICAgICAgIG1fcmVzb3VyY2UtPmNhbmNlbCgpOwotICAgICAg
ICBtX3Jlc291cmNlLnJlbGVhc2UoKTsKLSAgICAgICAgbV9yZXNvdXJjZSA9IDA7CisgICAgICAg
IG1fcmVzb3VyY2UgPSBudWxscHRyOwogICAgIH0KIH0KIApkaWZmIC0tZ2l0IGEvU291cmNlL1dl
YkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvdGV4bWFwL0JpdG1hcFRleHR1cmVHTC5jcHAgYi9Tb3Vy
Y2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy90ZXhtYXAvQml0bWFwVGV4dHVyZUdMLmNwcApp
bmRleCA5NzVjMzhmMmZmNGIxOTE4MjhkN2QxZWNlMTZlNGQ2MDliMDkwYmY2Li4wZTUyZDdiNGIy
NTg0NWE2MDM4ZGI0NWVkOGY4YTlhYmQ0YWVmOTk0IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29y
ZS9wbGF0Zm9ybS9ncmFwaGljcy90ZXhtYXAvQml0bWFwVGV4dHVyZUdMLmNwcAorKysgYi9Tb3Vy
Y2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy90ZXhtYXAvQml0bWFwVGV4dHVyZUdMLmNwcApA
QCAtMjc4LDcgKzI3OCw3IEBAIFBhc3NSZWZQdHI8Qml0bWFwVGV4dHVyZT4gQml0bWFwVGV4dHVy
ZUdMOjphcHBseUZpbHRlcnMoVGV4dHVyZU1hcHBlciogdGV4dHVyZU1hCiAgICAgICAgICAgICB0
ZXhtYXBHTC0+ZHJhd0ZpbHRlcmVkKCpyZXN1bHRTdXJmYWNlLmdldCgpLCBzcGFyZVN1cmZhY2Uu
Z2V0KCksICpmaWx0ZXIsIGopOwogICAgICAgICAgICAgaWYgKCFqICYmIGZpbHRlci0+dHlwZSgp
ID09IEZpbHRlck9wZXJhdGlvbjo6RFJPUF9TSEFET1cpIHsKICAgICAgICAgICAgICAgICBzcGFy
ZVN1cmZhY2UgPSByZXN1bHRTdXJmYWNlOwotICAgICAgICAgICAgICAgIHJlc3VsdFN1cmZhY2Uu
Y2xlYXIoKTsKKyAgICAgICAgICAgICAgICByZXN1bHRTdXJmYWNlID0gbnVsbHB0cjsKICAgICAg
ICAgICAgIH0KICAgICAgICAgICAgIHN0ZDo6c3dhcChyZXN1bHRTdXJmYWNlLCBpbnRlcm1lZGlh
dGVTdXJmYWNlKTsKICAgICAgICAgfQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZv
cm0vZ3JhcGhpY3MvdGV4bWFwL0dyYXBoaWNzTGF5ZXJUZXh0dXJlTWFwcGVyLmNwcCBiL1NvdXJj
ZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL3RleG1hcC9HcmFwaGljc0xheWVyVGV4dHVyZU1h
cHBlci5jcHAKaW5kZXggOWVlNGE3ODRjODU3YWIxY2YxMjZkYTJjYjEyZGFmYWViYzA5ZGU3ZS4u
ZDUzNDcwNDRlODhjMDhlZGJhNGQ0NjA0NjlmM2Y5MDdhMDBiOWRjMSAxMDA2NDQKLS0tIGEvU291
cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvdGV4bWFwL0dyYXBoaWNzTGF5ZXJUZXh0dXJl
TWFwcGVyLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy90ZXhtYXAv
R3JhcGhpY3NMYXllclRleHR1cmVNYXBwZXIuY3BwCkBAIC0zMDEsOCArMzAxLDggQEAgdm9pZCBH
cmFwaGljc0xheWVyVGV4dHVyZU1hcHBlcjo6c2V0Q29udGVudHNUb0ltYWdlKEltYWdlKiBpbWFn
ZSkKICAgICAgICAgICAgIG1fY29tcG9zaXRlZEltYWdlID0gVGV4dHVyZU1hcHBlclRpbGVkQmFj
a2luZ1N0b3JlOjpjcmVhdGUoKTsKICAgICAgICAgbV9jb21wb3NpdGVkSW1hZ2UtPnNldENvbnRl
bnRzVG9JbWFnZShpbWFnZSk7CiAgICAgfSBlbHNlIHsKLSAgICAgICAgbV9jb21wb3NpdGVkTmF0
aXZlSW1hZ2VQdHIgPSAwOwotICAgICAgICBtX2NvbXBvc2l0ZWRJbWFnZSA9IDA7CisgICAgICAg
IG1fY29tcG9zaXRlZE5hdGl2ZUltYWdlUHRyID0gbnVsbHB0cjsKKyAgICAgICAgbV9jb21wb3Np
dGVkSW1hZ2UgPSBudWxscHRyOwogICAgIH0KIAogICAgIHNldENvbnRlbnRzVG9QbGF0Zm9ybUxh
eWVyKG1fY29tcG9zaXRlZEltYWdlLmdldCgpLCBDb250ZW50c0xheWVyRm9ySW1hZ2UpOwpkaWZm
IC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvdGV4bWFwL1RleHR1cmVN
YXBwZXJHTC5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy90ZXhtYXAvVGV4
dHVyZU1hcHBlckdMLmNwcAppbmRleCAwYmNlOGM3NDIwZDdkMGE0NGIzMDllMjZmNTY2YTkyMTkz
ZTQ4NjBhLi40YzU0ODA1NjIzNWUzOThmYWM5ODM2MGZlOWNiZjYyNWM3NWExZDA1IDEwMDY0NAot
LS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy90ZXhtYXAvVGV4dHVyZU1hcHBl
ckdMLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy90ZXhtYXAvVGV4
dHVyZU1hcHBlckdMLmNwcApAQCAtNjkxLDcgKzY5MSw3IEBAIHZvaWQgVGV4dHVyZU1hcHBlckdM
OjpiaW5kRGVmYXVsdFN1cmZhY2UoKQogICAgIGRhdGEoKS5wcm9qZWN0aW9uTWF0cml4ID0gY3Jl
YXRlUHJvamVjdGlvbk1hdHJpeCh2aWV3cG9ydFNpemUsIGRhdGEoKS5QYWludEZsYWdzICYgUGFp
bnRpbmdNaXJyb3JlZCk7CiAgICAgbV9jb250ZXh0M0QtPnZpZXdwb3J0KGRhdGEoKS52aWV3cG9y
dFswXSwgZGF0YSgpLnZpZXdwb3J0WzFdLCB2aWV3cG9ydFNpemUud2lkdGgoKSwgdmlld3BvcnRT
aXplLmhlaWdodCgpKTsKICAgICBtX2NsaXBTdGFjay5hcHBseShtX2NvbnRleHQzRC5nZXQoKSk7
Ci0gICAgZGF0YSgpLmN1cnJlbnRTdXJmYWNlLmNsZWFyKCk7CisgICAgZGF0YSgpLmN1cnJlbnRT
dXJmYWNlID0gbnVsbHB0cjsKIH0KIAogdm9pZCBUZXh0dXJlTWFwcGVyR0w6OmJpbmRTdXJmYWNl
KEJpdG1hcFRleHR1cmUgKnN1cmZhY2UpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0
Zm9ybS9ncmFwaGljcy90ZXhtYXAvVGV4dHVyZU1hcHBlckxheWVyLmNwcCBiL1NvdXJjZS9XZWJD
b3JlL3BsYXRmb3JtL2dyYXBoaWNzL3RleG1hcC9UZXh0dXJlTWFwcGVyTGF5ZXIuY3BwCmluZGV4
IGM4NjQyMDIyYTNhYzE0NjU3NzA4ODFmMTI0ODdmZjdkZGJiNTQ0ZDguLjM0NTUzOTg3MDI0YTZl
NzVmZDlkMWUzOTA2ODE3OGI5ZWQ3MjNhMmIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3Bs
YXRmb3JtL2dyYXBoaWNzL3RleG1hcC9UZXh0dXJlTWFwcGVyTGF5ZXIuY3BwCisrKyBiL1NvdXJj
ZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL3RleG1hcC9UZXh0dXJlTWFwcGVyTGF5ZXIuY3Bw
CkBAIC00MDgsNyArNDA4LDcgQEAgdm9pZCBUZXh0dXJlTWFwcGVyTGF5ZXI6OnBhaW50V2l0aElu
dGVybWVkaWF0ZVN1cmZhY2UoY29uc3QgVGV4dHVyZU1hcHBlclBhaW50T3AKIAogICAgIGlmIChy
ZXBsaWNhU3VyZmFjZSAmJiBvcHRpb25zLm9wYWNpdHkgPT0gMSkgewogICAgICAgICBjb21taXRT
dXJmYWNlKG9wdGlvbnMsIHJlcGxpY2FTdXJmYWNlLCByZWN0LCAxKTsKLSAgICAgICAgcmVwbGlj
YVN1cmZhY2UuY2xlYXIoKTsKKyAgICAgICAgcmVwbGljYVN1cmZhY2UgPSBudWxscHRyOwogICAg
IH0KIAogICAgIG1haW5TdXJmYWNlID0gcGFpbnRJbnRvU3VyZmFjZShwYWludE9wdGlvbnMsIHJl
Y3Quc2l6ZSgpKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNz
L3RleG1hcC9UZXh0dXJlTWFwcGVyVGlsZWRCYWNraW5nU3RvcmUuY3BwIGIvU291cmNlL1dlYkNv
cmUvcGxhdGZvcm0vZ3JhcGhpY3MvdGV4bWFwL1RleHR1cmVNYXBwZXJUaWxlZEJhY2tpbmdTdG9y
ZS5jcHAKaW5kZXggMjA4MDQ2MjM5M2JkYmI5Y2IwMTQ4MjI4Mzk0ZThiMmY2NWYwYzZkNy4uZDM1
NzEwYTY5MjgxYTgyMDYxNmRlMzEyMTMzYzRkM2M3ZmY5MTdlOCAxMDA2NDQKLS0tIGEvU291cmNl
L1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvdGV4bWFwL1RleHR1cmVNYXBwZXJUaWxlZEJhY2tp
bmdTdG9yZS5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvdGV4bWFw
L1RleHR1cmVNYXBwZXJUaWxlZEJhY2tpbmdTdG9yZS5jcHAKQEAgLTM5LDcgKzM5LDcgQEAgdm9p
ZCBUZXh0dXJlTWFwcGVyVGlsZWRCYWNraW5nU3RvcmU6OnVwZGF0ZUNvbnRlbnRzRnJvbUltYWdl
SWZOZWVkZWQoVGV4dHVyZU1hcHAKICAgICAgICAgcmV0dXJuOwogCiAgICAgdXBkYXRlQ29udGVu
dHModGV4dHVyZU1hcHBlciwgbV9pbWFnZS5nZXQoKSwgbV9pbWFnZS0+c2l6ZSgpLCBlbmNsb3Np
bmdJbnRSZWN0KG1faW1hZ2UtPnJlY3QoKSksIEJpdG1hcFRleHR1cmU6OlVwZGF0ZUNhbm5vdE1v
ZGlmeU9yaWdpbmFsSW1hZ2VEYXRhKTsKLSAgICBtX2ltYWdlLmNsZWFyKCk7CisgICAgbV9pbWFn
ZSA9IG51bGxwdHI7CiB9CiAKIFRyYW5zZm9ybWF0aW9uTWF0cml4IFRleHR1cmVNYXBwZXJUaWxl
ZEJhY2tpbmdTdG9yZTo6YWRqdXN0ZWRUcmFuc2Zvcm1Gb3JSZWN0KGNvbnN0IEZsb2F0UmVjdCYg
dGFyZ2V0UmVjdCkKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNz
L3RleG1hcC9jb29yZGluYXRlZC9Db29yZGluYXRlZEdyYXBoaWNzTGF5ZXIuY3BwIGIvU291cmNl
L1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvdGV4bWFwL2Nvb3JkaW5hdGVkL0Nvb3JkaW5hdGVk
R3JhcGhpY3NMYXllci5jcHAKaW5kZXggZTJlMWY0YWI4ZmExOTk2NGZmNmRmY2Q1MmM3YjdkN2Vk
OTE4Y2FiMC4uZmFhMTY1ZWFlNjM4MjFlYzNkMTM5ZDE4ZWZlZjE3ZGFlMDI4NzhlMCAxMDA2NDQK
LS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvdGV4bWFwL2Nvb3JkaW5hdGVk
L0Nvb3JkaW5hdGVkR3JhcGhpY3NMYXllci5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZv
cm0vZ3JhcGhpY3MvdGV4bWFwL2Nvb3JkaW5hdGVkL0Nvb3JkaW5hdGVkR3JhcGhpY3NMYXllci5j
cHAKQEAgLTQ3MCw4ICs0NzAsOCBAQCB2b2lkIENvb3JkaW5hdGVkR3JhcGhpY3NMYXllcjo6c2V0
Q29udGVudHNUb0ltYWdlKEltYWdlKiBpbWFnZSkKICAgICAgICAgbV9jb21wb3NpdGVkSW1hZ2Ug
PSBpbWFnZTsKICAgICAgICAgbV9jb21wb3NpdGVkTmF0aXZlSW1hZ2VQdHIgPSBuZXdOYXRpdmVJ
bWFnZVB0cjsKICAgICB9IGVsc2UgewotICAgICAgICBtX2NvbXBvc2l0ZWRJbWFnZSA9IDA7Ci0g
ICAgICAgIG1fY29tcG9zaXRlZE5hdGl2ZUltYWdlUHRyID0gMDsKKyAgICAgICAgbV9jb21wb3Np
dGVkSW1hZ2UgPSBudWxscHRyOworICAgICAgICBtX2NvbXBvc2l0ZWROYXRpdmVJbWFnZVB0ciA9
IG51bGxwdHI7CiAgICAgfQogCiAgICAgR3JhcGhpY3NMYXllcjo6c2V0Q29udGVudHNUb0ltYWdl
KGltYWdlKTsKQEAgLTgyMCw3ICs4MjAsNyBAQCB2b2lkIENvb3JkaW5hdGVkR3JhcGhpY3NMYXll
cjo6cmVsZWFzZUltYWdlQmFja2luZ0lmTmVlZGVkKCkKIAogICAgIEFTU0VSVChtX2Nvb3JkaW5h
dG9yKTsKICAgICBtX2Nvb3JkaW5hdGVkSW1hZ2VCYWNraW5nLT5yZW1vdmVIb3N0KHRoaXMpOwot
ICAgIG1fY29vcmRpbmF0ZWRJbWFnZUJhY2tpbmcuY2xlYXIoKTsKKyAgICBtX2Nvb3JkaW5hdGVk
SW1hZ2VCYWNraW5nID0gbnVsbHB0cjsKICAgICBtX2xheWVyU3RhdGUuaW1hZ2VJRCA9IEludmFs
aWRDb29yZGluYXRlZEltYWdlQmFja2luZ0lEOwogICAgIG1fbGF5ZXJTdGF0ZS5pbWFnZUNoYW5n
ZWQgPSB0cnVlOwogfQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhp
Y3MvdGV4bWFwL2Nvb3JkaW5hdGVkL0Nvb3JkaW5hdGVkSW1hZ2VCYWNraW5nLmNwcCBiL1NvdXJj
ZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL3RleG1hcC9jb29yZGluYXRlZC9Db29yZGluYXRl
ZEltYWdlQmFja2luZy5jcHAKaW5kZXggZDIyYjE1ZWRkMzBhZjllYTA5YzI0Njg1NjIyYjAzOTNi
NWI1NTI5My4uZTI2MTUwZmVlZTllMjc5YmEzMzIwNzBkZTg0YmY0MjQ5ZmYyMzFlNyAxMDA2NDQK
LS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvdGV4bWFwL2Nvb3JkaW5hdGVk
L0Nvb3JkaW5hdGVkSW1hZ2VCYWNraW5nLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9y
bS9ncmFwaGljcy90ZXhtYXAvY29vcmRpbmF0ZWQvQ29vcmRpbmF0ZWRJbWFnZUJhY2tpbmcuY3Bw
CkBAIC0xNDEsNyArMTQxLDcgQEAgdm9pZCBDb29yZGluYXRlZEltYWdlQmFja2luZzo6cmVsZWFz
ZVN1cmZhY2VJZk5lZWRlZCgpCiB7CiAgICAgLy8gV2UgbXVzdCBrZWVwIG1fc3VyZmFjZSB1bnRp
bCBVSSBQcm9jZXNzIHJlYWRzIG1fc3VyZmFjZS4KICAgICAvLyBJZiBtX3N1cmZhY2UgZXhpc3Rz
LCBpdCB3YXMgY3JlYXRlZCBpbiB0aGUgcHJldmlvdXMgdXBkYXRlLgotICAgIG1fc3VyZmFjZS5j
bGVhcigpOworICAgIG1fc3VyZmFjZSA9IG51bGxwdHI7CiB9CiAKIHN0YXRpYyBjb25zdCBkb3Vi
bGUgY2xlYXJDb250ZW50c1RpbWVySW50ZXJ2YWwgPSAzOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dl
YkNvcmUvcGxhdGZvcm0vZ3RrL0dhbWVwYWRzR3RrLmNwcCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRm
b3JtL2d0ay9HYW1lcGFkc0d0ay5jcHAKaW5kZXggMjZmOWJlNjJjNzY0NjNjNmUwODFmY2VmZTc5
NmIyZWFmMTc1OTU4ZC4uOWZiMjlmMmI5NTQ2ZmMxODM5YzRlYThlYjU3ODRhOGE1NjIzMjM0OSAx
MDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3RrL0dhbWVwYWRzR3RrLmNwcAor
KysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ndGsvR2FtZXBhZHNHdGsuY3BwCkBAIC0xNTUs
NyArMTU1LDcgQEAgdm9pZCBHYW1lcGFkc0d0azo6dW5yZWdpc3RlckRldmljZShTdHJpbmcgZGV2
aWNlRmlsZSkKICAgICBzaXplX3QgaW5kZXggPSBtX3Nsb3RzLmZpbmQoZ2FtZXBhZERldmljZSk7
CiAgICAgQVNTRVJUKGluZGV4ICE9IG5vdEZvdW5kKTsKIAotICAgIG1fc2xvdHNbaW5kZXhdLmNs
ZWFyKCk7CisgICAgbV9zbG90c1tpbmRleF0gPSBudWxscHRyOwogfQogCiB2b2lkIEdhbWVwYWRz
R3RrOjp1cGRhdGVHYW1lcGFkTGlzdChHYW1lcGFkTGlzdCogaW50bykKZGlmZiAtLWdpdCBhL1Nv
dXJjZS9XZWJDb3JlL3BsYXRmb3JtL2lvcy9QbGF0Zm9ybVNwZWVjaFN5bnRoZXNpemVySU9TLm1t
IGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vaW9zL1BsYXRmb3JtU3BlZWNoU3ludGhlc2l6ZXJJ
T1MubW0KaW5kZXggYWIxNGM3MDkwNTI5MjgyZGI0YzU1M2RmMWE1ZTU1NTFjYmU4MjcxNi4uZGMw
Y2FhODhhMDVlMDg0ZWEwOThjZTQxMGJhNmQyYWJkMzhkOTBjNyAxMDA2NDQKLS0tIGEvU291cmNl
L1dlYkNvcmUvcGxhdGZvcm0vaW9zL1BsYXRmb3JtU3BlZWNoU3ludGhlc2l6ZXJJT1MubW0KKysr
IGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vaW9zL1BsYXRmb3JtU3BlZWNoU3ludGhlc2l6ZXJJ
T1MubW0KQEAgLTE3OSw3ICsxNzksNyBAQCAtICh2b2lkKXNwZWVjaFN5bnRoZXNpemVyOihBVlNw
ZWVjaFN5bnRoZXNpemVyICopc3ludGhlc2l6ZXIgZGlkRmluaXNoU3BlZWNoVXR0ZQogICAgIAog
ICAgIC8vIENsZWFyIHRoZSBtX3V0dGVyYW5jZSB2YXJpYWJsZSBpbiBjYXNlIGZpbmlzaCBzcGVh
a2luZyBraWNrcyBvZmYgYSBuZXcgc3BlYWtpbmcgam9iIGltbWVkaWF0ZWx5LgogICAgIFJlZlB0
cjxXZWJDb3JlOjpQbGF0Zm9ybVNwZWVjaFN5bnRoZXNpc1V0dGVyYW5jZT4gcGxhdGZvcm1VdHRl
cmFuY2UgPSBtX3V0dGVyYW5jZTsKLSAgICBtX3V0dGVyYW5jZSA9IDA7CisgICAgbV91dHRlcmFu
Y2UgPSBudWxscHRyOwogICAgIAogICAgIG1fc3ludGhlc2l6ZXJPYmplY3QtPmNsaWVudCgpLT5k
aWRGaW5pc2hTcGVha2luZyhwbGF0Zm9ybVV0dGVyYW5jZSk7CiB9CkBAIC0yMTMsNyArMjEzLDcg
QEAgLSAodm9pZClzcGVlY2hTeW50aGVzaXplcjooQVZTcGVlY2hTeW50aGVzaXplciAqKXN5bnRo
ZXNpemVyIGRpZENhbmNlbFNwZWVjaFV0dGUKICAgICAKICAgICAvLyBDbGVhciB0aGUgbV91dHRl
cmFuY2UgdmFyaWFibGUgaW4gY2FzZSBmaW5pc2ggc3BlYWtpbmcga2lja3Mgb2ZmIGEgbmV3IHNw
ZWFraW5nIGpvYiBpbW1lZGlhdGVseS4KICAgICBSZWZQdHI8V2ViQ29yZTo6UGxhdGZvcm1TcGVl
Y2hTeW50aGVzaXNVdHRlcmFuY2U+IHBsYXRmb3JtVXR0ZXJhbmNlID0gbV91dHRlcmFuY2U7Ci0g
ICAgbV91dHRlcmFuY2UgPSAwOworICAgIG1fdXR0ZXJhbmNlID0gbnVsbHB0cjsKICAgICAKICAg
ICBtX3N5bnRoZXNpemVyT2JqZWN0LT5jbGllbnQoKS0+ZGlkRmluaXNoU3BlYWtpbmcocGxhdGZv
cm1VdHRlcmFuY2UpOwogfQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbW9j
ay9HZW9sb2NhdGlvbkNsaWVudE1vY2suY3BwIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbW9j
ay9HZW9sb2NhdGlvbkNsaWVudE1vY2suY3BwCmluZGV4IDgxODZhNmE1MjMzZWU4NWJlNjUyNjhi
NjhmMDU0NDdlODU1MjMzMDAuLmI3Y2ZiOWJlMDZkY2JmZmM3YzE2YjNjZmU3NDY1MDEzMGZhNzAw
ZTUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL21vY2svR2VvbG9jYXRpb25D
bGllbnRNb2NrLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9tb2NrL0dlb2xvY2F0
aW9uQ2xpZW50TW9jay5jcHAKQEAgLTEyNiw3ICsxMjYsNyBAQCB2b2lkIEdlb2xvY2F0aW9uQ2xp
ZW50TW9jazo6cGVybWlzc2lvblRpbWVyRmlyZWQoKQogCiB2b2lkIEdlb2xvY2F0aW9uQ2xpZW50
TW9jazo6cmVzZXQoKQogewotICAgIG1fbGFzdFBvc2l0aW9uID0gMDsKKyAgICBtX2xhc3RQb3Np
dGlvbiA9IG51bGxwdHI7CiAgICAgY2xlYXJFcnJvcigpOwogICAgIG1fcGVybWlzc2lvblN0YXRl
ID0gUGVybWlzc2lvblN0YXRlVW5zZXQ7CiB9CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9w
bGF0Zm9ybS9tb2NrL1BsYXRmb3JtU3BlZWNoU3ludGhlc2l6ZXJNb2NrLmNwcCBiL1NvdXJjZS9X
ZWJDb3JlL3BsYXRmb3JtL21vY2svUGxhdGZvcm1TcGVlY2hTeW50aGVzaXplck1vY2suY3BwCmlu
ZGV4IDM4MzgzNzJjNTc3OGVjMjcyYzhiNTVmODMxNTA2NTM4NGQ5Y2Y4NzQuLmMwYjRkZmEyYzZm
MjI0NGVhYTRkYTg4NjRkNWM0YjMyNjMyNTkyZGMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3Jl
L3BsYXRmb3JtL21vY2svUGxhdGZvcm1TcGVlY2hTeW50aGVzaXplck1vY2suY3BwCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL3BsYXRmb3JtL21vY2svUGxhdGZvcm1TcGVlY2hTeW50aGVzaXplck1vY2su
Y3BwCkBAIC00NSw3ICs0NSw3IEBAIHZvaWQgUGxhdGZvcm1TcGVlY2hTeW50aGVzaXplck1vY2s6
OnNwZWFraW5nRmluaXNoZWQoKQogewogICAgIEFTU0VSVChtX3V0dGVyYW5jZS5nZXQoKSk7CiAg
ICAgUmVmUHRyPFBsYXRmb3JtU3BlZWNoU3ludGhlc2lzVXR0ZXJhbmNlPiBwcm90ZWN0KG1fdXR0
ZXJhbmNlKTsKLSAgICBtX3V0dGVyYW5jZSA9IDA7CisgICAgbV91dHRlcmFuY2UgPSBudWxscHRy
OwogICAgIAogICAgIGNsaWVudCgpLT5kaWRGaW5pc2hTcGVha2luZyhwcm90ZWN0KTsKIH0KQEAg
LTc4LDcgKzc4LDcgQEAgdm9pZCBQbGF0Zm9ybVNwZWVjaFN5bnRoZXNpemVyTW9jazo6Y2FuY2Vs
KCkKICAgICAKICAgICBtX3NwZWFraW5nRmluaXNoZWRUaW1lci5zdG9wKCk7CiAgICAgY2xpZW50
KCktPnNwZWFraW5nRXJyb3JPY2N1cnJlZChtX3V0dGVyYW5jZSk7Ci0gICAgbV91dHRlcmFuY2Ug
PSAwOworICAgIG1fdXR0ZXJhbmNlID0gbnVsbHB0cjsKIH0KIAogdm9pZCBQbGF0Zm9ybVNwZWVj
aFN5bnRoZXNpemVyTW9jazo6cGF1c2UoKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxh
dGZvcm0vbmV0d29yay9jZi9SZXNvdXJjZVJlcXVlc3RDRk5ldC5jcHAgYi9Tb3VyY2UvV2ViQ29y
ZS9wbGF0Zm9ybS9uZXR3b3JrL2NmL1Jlc291cmNlUmVxdWVzdENGTmV0LmNwcAppbmRleCBjZGM3
ZDczNDZkNWE3YmZlMTk3MmNmYjc4NmJlY2NmMmUzZDM5ZTllLi5hNGQ0M2RmM2MwYTQyOGYxNzA2
MTgyZThhOGFhYmMwNWRkYTIzYTllIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9y
bS9uZXR3b3JrL2NmL1Jlc291cmNlUmVxdWVzdENGTmV0LmNwcAorKysgYi9Tb3VyY2UvV2ViQ29y
ZS9wbGF0Zm9ybS9uZXR3b3JrL2NmL1Jlc291cmNlUmVxdWVzdENGTmV0LmNwcApAQCAtMjk1LDcg
KzI5NSw3IEBAIHZvaWQgUmVzb3VyY2VSZXF1ZXN0Ojpkb1VwZGF0ZVJlc291cmNlUmVxdWVzdCgp
CiB2b2lkIFJlc291cmNlUmVxdWVzdDo6ZG9VcGRhdGVSZXNvdXJjZUhUVFBCb2R5KCkKIHsKICAg
ICBpZiAoIW1fY2ZSZXF1ZXN0KSB7Ci0gICAgICAgIG1faHR0cEJvZHkgPSAwOworICAgICAgICBt
X2h0dHBCb2R5ID0gbnVsbHB0cjsKICAgICAgICAgcmV0dXJuOwogICAgIH0KIApkaWZmIC0tZ2l0
IGEvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL0lubGluZUZsb3dCb3guY3BwIGIvU291cmNlL1dl
YkNvcmUvcmVuZGVyaW5nL0lubGluZUZsb3dCb3guY3BwCmluZGV4IDQxNjgyYzhlMmI2MGNiOTI4
ZTQ2MWI0ZWZmYWEzYmY3OWMzNjFjMjguLjJkNmZiNjk0NDhmOGYxYmI1OTQ0YzEwYmE1NDkwMTE1
NjdkNjc3MzcgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9JbmxpbmVGbG93
Qm94LmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvSW5saW5lRmxvd0JveC5jcHAK
QEAgLTk1NCw3ICs5NTQsNyBAQCB2b2lkIElubGluZUZsb3dCb3g6OmNvbXB1dGVPdmVyZmxvdyhM
YXlvdXRVbml0IGxpbmVUb3AsIExheW91dFVuaXQgbGluZUJvdHRvbSwgRwogICAgICAgICByZXR1
cm47CiAKICAgICBpZiAobV9vdmVyZmxvdykKLSAgICAgICAgbV9vdmVyZmxvdy5jbGVhcigpOwor
ICAgICAgICBtX292ZXJmbG93ID0gbnVsbHB0cjsKIAogICAgIC8vIFZpc3VhbCBvdmVyZmxvdyBq
dXN0IGluY2x1ZGVzIG92ZXJmbG93IGZvciBzdHVmZiB3ZSBuZWVkIHRvIHJlcGFpbnQgb3Vyc2Vs
dmVzLiAgU2VsZi1wYWludGluZyBsYXllcnMgYXJlIGlnbm9yZWQuCiAgICAgLy8gTGF5b3V0IG92
ZXJmbG93IGlzIHVzZWQgdG8gZGV0ZXJtaW5lIHNjcm9sbGluZyBleHRlbnQsIHNvIGl0IHN0aWxs
IGluY2x1ZGVzIGNoaWxkIGxheWVycyBhbmQgYWxzbyBmYWN0b3JzIGluCmRpZmYgLS1naXQgYS9T
b3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyQm94LmNwcCBiL1NvdXJjZS9XZWJDb3JlL3Jl
bmRlcmluZy9SZW5kZXJCb3guY3BwCmluZGV4IDUwMmRmNjZjMGQwZGU5OGE5YTQyY2Q5NGY3MGIy
MGI0ZTBiMmFjYmMuLjYxNzFkYjVlMGE4YTkyMjU3Y2JlMmQzMDdkNmY3NmRhMzY5YWRiMjQgMTAw
NjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJCb3guY3BwCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJCb3guY3BwCkBAIC00NDk3LDcgKzQ0OTcsNyBA
QCB2b2lkIFJlbmRlckJveDo6YWRkVmlzdWFsT3ZlcmZsb3coY29uc3QgTGF5b3V0UmVjdCYgcmVj
dCkKIAogdm9pZCBSZW5kZXJCb3g6OmNsZWFyT3ZlcmZsb3coKQogewotICAgIG1fb3ZlcmZsb3cu
Y2xlYXIoKTsKKyAgICBtX292ZXJmbG93ID0gbnVsbHB0cjsKICAgICBSZW5kZXJGbG93VGhyZWFk
KiBmbG93VGhyZWFkID0gZmxvd1RocmVhZENvbnRhaW5pbmdCbG9jaygpOwogICAgIGlmIChmbG93
VGhyZWFkKQogICAgICAgICBmbG93VGhyZWFkLT5jbGVhclJlZ2lvbnNPdmVyZmxvdyh0aGlzKTsK
ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJCb3hSZWdpb25JbmZv
LmggYi9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyQm94UmVnaW9uSW5mby5oCmluZGV4
IDYyMzYwOGQ2NzVkY2M2OTExZTI3ZGFmMjRhY2I4NDA5ZDQ2ZTE4YWYuLmVhMjNjMWVjOGVlMzc1
ZTdhNjExYzE0ZWMwNDE5ZjY1NmRhMTk3YjIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3Jl
bmRlcmluZy9SZW5kZXJCb3hSZWdpb25JbmZvLmgKKysrIGIvU291cmNlL1dlYkNvcmUvcmVuZGVy
aW5nL1JlbmRlckJveFJlZ2lvbkluZm8uaApAQCAtNTMsNyArNTMsNyBAQCBwdWJsaWM6CiAgICAg
dm9pZCBjbGVhck92ZXJmbG93KCkKICAgICB7CiAgICAgICAgIGlmIChtX292ZXJmbG93KQotICAg
ICAgICAgICAgbV9vdmVyZmxvdy5jbGVhcigpOworICAgICAgICAgICAgbV9vdmVyZmxvdyA9IG51
bGxwdHI7CiAgICAgfQogCiBwcml2YXRlOgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcmVu
ZGVyaW5nL1JlbmRlckNvdW50ZXIuY3BwIGIvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRl
ckNvdW50ZXIuY3BwCmluZGV4IDkxOGE0Zjg4YTIzZDk2ZDhhZTVlMjM2Njk1NjcxNzgwYTA5MzYy
N2UuLmM3NDU2MzlmOGEwYWJlNGQ4ZmRmNjgxMDU0YzE2ODUyMjk4NmVmMzYgMTAwNjQ0Ci0tLSBh
L1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJDb3VudGVyLmNwcAorKysgYi9Tb3VyY2Uv
V2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyQ291bnRlci5jcHAKQEAgLTE4Niw4ICsxODYsOCBAQCBz
dGF0aWMgYm9vbCBmaW5kUGxhY2VGb3JDb3VudGVyKFJlbmRlckVsZW1lbnQmIGNvdW50ZXJPd25l
ciwgY29uc3QgQXRvbWljU3RyaW5nJgogICAgIC8vIHRvd2FyZHMgdGhlIGJlZ2luaW5nIG9mIHRo
ZSBkb2N1bWVudCBmb3IgY291bnRlcnMgd2l0aCB0aGUgc2FtZSBpZGVudGlmaWVyIGFzIHRoZSBv
bmUKICAgICAvLyB3ZSBhcmUgdHJ5aW5nIHRvIGZpbmQgYSBwbGFjZSBmb3IuIFRoaXMgaXMgdGhl
IG5leHQgcmVuZGVyZXIgdG8gYmUgY2hlY2tlZC4KICAgICBSZW5kZXJFbGVtZW50KiBjdXJyZW50
UmVuZGVyZXIgPSBwcmV2aW91c0luUHJlT3JkZXIoY291bnRlck93bmVyKTsKLSAgICBwcmV2aW91
c1NpYmxpbmcgPSAwOwotICAgIFJlZlB0cjxDb3VudGVyTm9kZT4gcHJldmlvdXNTaWJsaW5nUHJv
dGVjdG9yID0gMDsKKyAgICBwcmV2aW91c1NpYmxpbmcgPSBudWxscHRyOworICAgIFJlZlB0cjxD
b3VudGVyTm9kZT4gcHJldmlvdXNTaWJsaW5nUHJvdGVjdG9yOwogCiAgICAgd2hpbGUgKGN1cnJl
bnRSZW5kZXJlcikgewogICAgICAgICBDb3VudGVyTm9kZSogY3VycmVudENvdW50ZXIgPSBtYWtl
Q291bnRlck5vZGUoKmN1cnJlbnRSZW5kZXJlciwgaWRlbnRpZmllciwgZmFsc2UpOwpAQCAtMjAz
LDcgKzIwMyw3IEBAIHN0YXRpYyBib29sIGZpbmRQbGFjZUZvckNvdW50ZXIoUmVuZGVyRWxlbWVu
dCYgY291bnRlck93bmVyLCBjb25zdCBBdG9taWNTdHJpbmcmCiAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgLy8gaGVuY2Ugd2UgYXJlIHRoZSBuZXh0IHNpYmxpbmcgb2YgdGhhdCBjb3VudGVy
IGlmIHRoYXQgcmVzZXQgaXMgbm90IGEgcm9vdCBvcgogICAgICAgICAgICAgICAgICAgICAgICAg
ICAgIC8vIHdlIGFyZSBhIHJvb3Qgbm9kZSBpZiB0aGF0IHJlc2V0IGlzIGEgcm9vdC4KICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICBwYXJlbnQgPSBjdXJyZW50Q291bnRlci0+cGFyZW50KCk7
Ci0gICAgICAgICAgICAgICAgICAgICAgICAgICAgcHJldmlvdXNTaWJsaW5nID0gcGFyZW50ID8g
Y3VycmVudENvdW50ZXIgOiAwOworICAgICAgICAgICAgICAgICAgICAgICAgICAgIHByZXZpb3Vz
U2libGluZyA9IHBhcmVudCA/IGN1cnJlbnRDb3VudGVyIDogbnVsbHB0cjsKICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICByZXR1cm4gcGFyZW50OwogICAgICAgICAgICAgICAgICAgICAgICAg
fQogICAgICAgICAgICAgICAgICAgICAgICAgLy8gV2UgYXJlIG5vdCBhIHJlc2V0IG5vZGUgb3Ig
dGhlIHByZXZpb3VzIHJlc2V0IG11c3QgYmUgb24gYW4gYW5jZXN0b3Igb2Ygb3VyIG93bmVyIHJl
bmRlcmVyCkBAIC0yMTMsNyArMjEzLDcgQEAgc3RhdGljIGJvb2wgZmluZFBsYWNlRm9yQ291bnRl
cihSZW5kZXJFbGVtZW50JiBjb3VudGVyT3duZXIsIGNvbnN0IEF0b21pY1N0cmluZyYKICAgICAg
ICAgICAgICAgICAgICAgICAgIC8vIEluIHRoZXNlIGNhc2VzIHRoZSBpZGVudGlmaWVkIHByZXZp
b3VzU2libGluZyB3aWxsIGJlIGludmFsaWQgYXMgaXRzIHBhcmVudCBpcyBkaWZmZXJlbnQgZnJv
bQogICAgICAgICAgICAgICAgICAgICAgICAgLy8gb3VyIGlkZW50aWZpZWQgcGFyZW50LgogICAg
ICAgICAgICAgICAgICAgICAgICAgaWYgKHByZXZpb3VzU2libGluZ1Byb3RlY3Rvci0+cGFyZW50
KCkgIT0gY3VycmVudENvdW50ZXIpCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgcHJldmlv
dXNTaWJsaW5nUHJvdGVjdG9yID0gMDsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICBwcmV2
aW91c1NpYmxpbmdQcm90ZWN0b3IgPSBudWxscHRyOwogCiAgICAgICAgICAgICAgICAgICAgICAg
ICBwcmV2aW91c1NpYmxpbmcgPSBwcmV2aW91c1NpYmxpbmdQcm90ZWN0b3IuZ2V0KCk7CiAgICAg
ICAgICAgICAgICAgICAgICAgICByZXR1cm4gdHJ1ZTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJD
b3JlL3JlbmRlcmluZy9SZW5kZXJNZW51TGlzdC5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJp
bmcvUmVuZGVyTWVudUxpc3QuY3BwCmluZGV4IGZmOWEyYzU4NmJiZDliZTk5Yzc3NTVlMjIyZTAw
Mzg2NDZjMTc0ZDYuLmRiOTk0OTljYmRmZjAzYTU1MTAxZDJhZDg2ZTE4Mzc2Y2ZhZmEyOGIgMTAw
NjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJNZW51TGlzdC5jcHAKKysr
IGIvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlck1lbnVMaXN0LmNwcApAQCAtODgsNyAr
ODgsNyBAQCBSZW5kZXJNZW51TGlzdDo6flJlbmRlck1lbnVMaXN0KCkKICNpZiAhUExBVEZPUk0o
SU9TKQogICAgIGlmIChtX3BvcHVwKQogICAgICAgICBtX3BvcHVwLT5kaXNjb25uZWN0Q2xpZW50
KCk7Ci0gICAgbV9wb3B1cCA9IDA7CisgICAgbV9wb3B1cCA9IG51bGxwdHI7CiAjZW5kaWYKIH0K
IApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlclNlYXJjaEZpZWxk
LmNwcCBiL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJTZWFyY2hGaWVsZC5jcHAKaW5k
ZXggZmE2ZTM5NjczMTY0OGVhMDUxYzY4MDZjMTkyNGRjMmNmOGJlNGMwMC4uODlkYzM0YzRmNDQ0
ZGNjNWM2YzllMDc1ZTE3ZDc3YzZlZDJkNDgwNSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUv
cmVuZGVyaW5nL1JlbmRlclNlYXJjaEZpZWxkLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9yZW5k
ZXJpbmcvUmVuZGVyU2VhcmNoRmllbGQuY3BwCkBAIC02Miw3ICs2Miw3IEBAIFJlbmRlclNlYXJj
aEZpZWxkOjp+UmVuZGVyU2VhcmNoRmllbGQoKQogewogICAgIGlmIChtX3NlYXJjaFBvcHVwKSB7
CiAgICAgICAgIG1fc2VhcmNoUG9wdXAtPnBvcHVwTWVudSgpLT5kaXNjb25uZWN0Q2xpZW50KCk7
Ci0gICAgICAgIG1fc2VhcmNoUG9wdXAgPSAwOworICAgICAgICBtX3NlYXJjaFBvcHVwID0gbnVs
bHB0cjsKICAgICB9CiB9CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9z
dHlsZS9GaWxsTGF5ZXIuaCBiL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9zdHlsZS9GaWxsTGF5
ZXIuaAppbmRleCA4YjA2Y2UzYjdlODc3ZTI1NTZmNjc2ODhhMzQzYWFmYzJkMTMxOGY5Li4wMzA5
ODYzZGFlNjBlNzhlNzY5NGIxNjllNjZiYmNlNWYxOWNjODA0IDEwMDY0NAotLS0gYS9Tb3VyY2Uv
V2ViQ29yZS9yZW5kZXJpbmcvc3R5bGUvRmlsbExheWVyLmgKKysrIGIvU291cmNlL1dlYkNvcmUv
cmVuZGVyaW5nL3N0eWxlL0ZpbGxMYXllci5oCkBAIC0xMjEsOCArMTIxLDggQEAgcHVibGljOgog
ICAgIHZvaWQgc2V0U2l6ZShGaWxsU2l6ZSBmKSB7IG1fc2l6ZVR5cGUgPSBmLnR5cGU7IG1fc2l6
ZUxlbmd0aCA9IGYuc2l6ZTsgfQogICAgIHZvaWQgc2V0TWFza1NvdXJjZVR5cGUoRU1hc2tTb3Vy
Y2VUeXBlIG0pIHsgbV9tYXNrU291cmNlVHlwZSA9IG07IG1fbWFza1NvdXJjZVR5cGVTZXQgPSB0
cnVlOyB9CiAKLSAgICB2b2lkIGNsZWFyTWFza0ltYWdlKCkgeyBtX21hc2tJbWFnZU9wZXJhdGlv
bi5jbGVhcigpOyB9Ci0gICAgdm9pZCBjbGVhckltYWdlKCkgeyBtX2ltYWdlLmNsZWFyKCk7IG1f
aW1hZ2VTZXQgPSBmYWxzZTsgfQorICAgIHZvaWQgY2xlYXJNYXNrSW1hZ2UoKSB7IG1fbWFza0lt
YWdlT3BlcmF0aW9uID0gbnVsbHB0cjsgfQorICAgIHZvaWQgY2xlYXJJbWFnZSgpIHsgbV9pbWFn
ZSA9IG51bGxwdHI7IG1faW1hZ2VTZXQgPSBmYWxzZTsgfQogICAgIHZvaWQgY2xlYXJYUG9zaXRp
b24oKSB7IG1feFBvc1NldCA9IGZhbHNlOyBtX2JhY2tncm91bmRPcmlnaW5TZXQgPSBmYWxzZTsg
fQogICAgIHZvaWQgY2xlYXJZUG9zaXRpb24oKSB7IG1feVBvc1NldCA9IGZhbHNlOyBtX2JhY2tn
cm91bmRPcmlnaW5TZXQgPSBmYWxzZTsgfQogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9y
ZW5kZXJpbmcvc3R5bGUvUmVuZGVyU3R5bGUuY3BwIGIvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5n
L3N0eWxlL1JlbmRlclN0eWxlLmNwcAppbmRleCA4N2M1OGU5YmZjN2Y0NGU0ZjJiOWMyNmYxZWY1
OWQ2OGYxMjA5ZmRjLi40N2ZlZTg5NTFjYzg2OWZmOTliYjIyZjY1OTdjMDdmMjRhZmYxZTExIDEw
MDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvc3R5bGUvUmVuZGVyU3R5bGUuY3Bw
CisrKyBiL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9zdHlsZS9SZW5kZXJTdHlsZS5jcHAKQEAg
LTk1MCw3ICs5NTAsNyBAQCB2b2lkIFJlbmRlclN0eWxlOjpzZXRRdW90ZXMoUGFzc1JlZlB0cjxR
dW90ZXNEYXRhPiBxKQogdm9pZCBSZW5kZXJTdHlsZTo6Y2xlYXJDdXJzb3JMaXN0KCkKIHsKICAg
ICBpZiAocmFyZUluaGVyaXRlZERhdGEtPmN1cnNvckRhdGEpCi0gICAgICAgIHJhcmVJbmhlcml0
ZWREYXRhLmFjY2VzcygpLT5jdXJzb3JEYXRhID0gMDsKKyAgICAgICAgcmFyZUluaGVyaXRlZERh
dGEuYWNjZXNzKCktPmN1cnNvckRhdGEgPSBudWxscHRyOwogfQogCiB2b2lkIFJlbmRlclN0eWxl
OjpjbGVhckNvbnRlbnQoKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvc3ZnL1NWR1RSZWZF
bGVtZW50LmNwcCBiL1NvdXJjZS9XZWJDb3JlL3N2Zy9TVkdUUmVmRWxlbWVudC5jcHAKaW5kZXgg
MjI1YTMwNDZhNDk5MmM5NzA1YmE3OTUwOTk1NjFiM2I5ZWJhZmZiZC4uZTNmYWQ4ZDU5MGM1NGRl
NmJlOTQ2NzljOTU3MTdiOTg1YWM3NGEyMSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvc3Zn
L1NWR1RSZWZFbGVtZW50LmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9zdmcvU1ZHVFJlZkVsZW1l
bnQuY3BwCkBAIC0xMDQsNyArMTA0LDcgQEAgdm9pZCBTVkdUUmVmVGFyZ2V0RXZlbnRMaXN0ZW5l
cjo6ZGV0YWNoKCkKIAogICAgIG1fdGFyZ2V0LT5yZW1vdmVFdmVudExpc3RlbmVyKGV2ZW50TmFt
ZXMoKS5ET01TdWJ0cmVlTW9kaWZpZWRFdmVudCwgdGhpcywgZmFsc2UpOwogICAgIG1fdGFyZ2V0
LT5yZW1vdmVFdmVudExpc3RlbmVyKGV2ZW50TmFtZXMoKS5ET01Ob2RlUmVtb3ZlZEZyb21Eb2N1
bWVudEV2ZW50LCB0aGlzLCBmYWxzZSk7Ci0gICAgbV90YXJnZXQuY2xlYXIoKTsKKyAgICBtX3Rh
cmdldCA9IG51bGxwdHI7CiB9CiAKIGJvb2wgU1ZHVFJlZlRhcmdldEV2ZW50TGlzdGVuZXI6Om9w
ZXJhdG9yPT0oY29uc3QgRXZlbnRMaXN0ZW5lciYgbGlzdGVuZXIpCmRpZmYgLS1naXQgYS9Tb3Vy
Y2UvV2ViQ29yZS90ZXN0aW5nL0ludGVybmFscy5jcHAgYi9Tb3VyY2UvV2ViQ29yZS90ZXN0aW5n
L0ludGVybmFscy5jcHAKaW5kZXggMWExMDUxNzQ3OWU4ZThlOTgxYTc0NTNhYmRhNmZkYzI0NzU3
NTFiNy4uNDc2ZDFlMjc1OWU2MDZmMjA3NjQ1ODIxMGRiNDkzM2M4MjMwNmU4MiAxMDA2NDQKLS0t
IGEvU291cmNlL1dlYkNvcmUvdGVzdGluZy9JbnRlcm5hbHMuY3BwCisrKyBiL1NvdXJjZS9XZWJD
b3JlL3Rlc3RpbmcvSW50ZXJuYWxzLmNwcApAQCAtMTcyMyw3ICsxNzIzLDcgQEAgdm9pZCBJbnRl
cm5hbHM6OmNsb3NlRHVtbXlJbnNwZWN0b3JGcm9udGVuZCgpCiAgICAgbV9mcm9udGVuZENoYW5u
ZWwgPSBudWxscHRyOwogCiAgICAgbV9mcm9udGVuZFdpbmRvdy0+Y2xvc2UobV9mcm9udGVuZFdp
bmRvdy0+c2NyaXB0RXhlY3V0aW9uQ29udGV4dCgpKTsKLSAgICBtX2Zyb250ZW5kV2luZG93LmNs
ZWFyKCk7CisgICAgbV9mcm9udGVuZFdpbmRvdyA9IG51bGxwdHI7CiB9CiAKIHZvaWQgSW50ZXJu
YWxzOjpzZXRKYXZhU2NyaXB0UHJvZmlsaW5nRW5hYmxlZChib29sIGVuYWJsZWQsIEV4Y2VwdGlv
bkNvZGUmIGVjKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvd29ya2Vycy9Xb3JrZXJFdmVu
dFF1ZXVlLmNwcCBiL1NvdXJjZS9XZWJDb3JlL3dvcmtlcnMvV29ya2VyRXZlbnRRdWV1ZS5jcHAK
aW5kZXggZjUyMGMxZGVlZmFiMWViMTRmMWI3ZmQ5MjQwZmU4NjQ3YWMyNGE4OS4uMDcyMTA3Njlm
ZDA2YmE5Y2U4N2FjNDY1MmM5OWUyYzE3OGQyODRmMSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNv
cmUvd29ya2Vycy9Xb3JrZXJFdmVudFF1ZXVlLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS93b3Jr
ZXJzL1dvcmtlckV2ZW50UXVldWUuY3BwCkBAIC02OCwxMyArNjgsMTMgQEAgcHVibGljOgogICAg
ICAgICAgICAgcmV0dXJuOwogICAgICAgICBtX2V2ZW50UXVldWUubV9ldmVudERpc3BhdGNoZXJN
YXAucmVtb3ZlKG1fZXZlbnQuZ2V0KCkpOwogICAgICAgICBtX2V2ZW50LT50YXJnZXQoKS0+ZGlz
cGF0Y2hFdmVudChtX2V2ZW50KTsKLSAgICAgICAgbV9ldmVudC5jbGVhcigpOworICAgICAgICBt
X2V2ZW50ID0gbnVsbHB0cjsKICAgICB9CiAKICAgICB2b2lkIGNhbmNlbCgpCiAgICAgewogICAg
ICAgICBtX2lzQ2FuY2VsbGVkID0gdHJ1ZTsKLSAgICAgICAgbV9ldmVudC5jbGVhcigpOworICAg
ICAgICBtX2V2ZW50ID0gbnVsbHB0cjsKICAgICB9CiAKIHByaXZhdGU6CmRpZmYgLS1naXQgYS9T
b3VyY2UvV2ViQ29yZS93b3JrZXJzL1dvcmtlck1lc3NhZ2luZ1Byb3h5LmNwcCBiL1NvdXJjZS9X
ZWJDb3JlL3dvcmtlcnMvV29ya2VyTWVzc2FnaW5nUHJveHkuY3BwCmluZGV4IDc4NDViNjFmYThk
Y2ZhZjlmNjdmYWEwZDk0MjVkMGY5YjJiNWQ2MTUuLmJkNzRlYWNlMDJjZDNjMTA2ZmRlYWJjN2U0
Y2RmNjE2OGEzZGJlMWUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3dvcmtlcnMvV29ya2Vy
TWVzc2FnaW5nUHJveHkuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3dvcmtlcnMvV29ya2VyTWVz
c2FnaW5nUHJveHkuY3BwCkBAIC0yNjQsNyArMjY0LDcgQEAgdm9pZCBXb3JrZXJNZXNzYWdpbmdQ
cm94eTo6d29ya2VyR2xvYmFsU2NvcGVEZXN0cm95ZWRJbnRlcm5hbCgpCiAgICAgLy8gV29ya2Vy
R2xvYmFsU2NvcGVEZXN0cm95ZWRUYXNrIGlzIGFsd2F5cyB0aGUgbGFzdCB0byBiZSBwZXJmb3Jt
ZWQsIHNvIHRoZSBwcm94eSBpcyBub3QgbmVlZGVkIGZvciBjb21tdW5pY2F0aW9uCiAgICAgLy8g
aW4gZWl0aGVyIHNpZGUgYW55IG1vcmUuIEhvd2V2ZXIsIHRoZSBXb3JrZXIgb2JqZWN0IG1heSBz
dGlsbCBleGlzdCwgYW5kIGl0IGFzc3VtZXMgdGhhdCB0aGUgcHJveHkgZXhpc3RzLCB0b28uCiAg
ICAgbV9hc2tlZFRvVGVybWluYXRlID0gdHJ1ZTsKLSAgICBtX3dvcmtlclRocmVhZCA9IDA7Cisg
ICAgbV93b3JrZXJUaHJlYWQgPSBudWxscHRyOwogCiAgICAgSW5zcGVjdG9ySW5zdHJ1bWVudGF0
aW9uOjp3b3JrZXJHbG9iYWxTY29wZVRlcm1pbmF0ZWQobV9zY3JpcHRFeGVjdXRpb25Db250ZXh0
LmdldCgpLCB0aGlzKTsKIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvd29ya2Vycy9Xb3Jr
ZXJUaHJlYWQuY3BwIGIvU291cmNlL1dlYkNvcmUvd29ya2Vycy9Xb3JrZXJUaHJlYWQuY3BwCmlu
ZGV4IDg3M2M4Mjk2ZTZlMmVmMTE3MTQyZTA1ZGY4OWY0YmM0NmExNGQ5MDQuLmU1MTU1NTI2Yzk4
ZTkxMDI5N2UwMWI4NmZlZDI4YjEyZjRkMDIyOTAgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3Jl
L3dvcmtlcnMvV29ya2VyVGhyZWFkLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS93b3JrZXJzL1dv
cmtlclRocmVhZC5jcHAKQEAgLTE3MSw3ICsxNzEsNyBAQCB2b2lkIFdvcmtlclRocmVhZDo6d29y
a2VyVGhyZWFkKCkKIAogICAgIC8vIFRoZSBiZWxvdyBhc3NpZ25tZW50IHdpbGwgZGVzdHJveSB0
aGUgY29udGV4dCwgd2hpY2ggd2lsbCBpbiB0dXJuIG5vdGlmeSBtZXNzYWdpbmcgcHJveHkuCiAg
ICAgLy8gV2UgY2Fubm90IGxldCBhbnkgb2JqZWN0cyBzdXJ2aXZlIHBhc3QgdGhyZWFkIGV4aXQs
IGJlY2F1c2Ugbm8gb3RoZXIgdGhyZWFkIHdpbGwgcnVuIEdDIG9yIG90aGVyd2lzZSBkZXN0cm95
IHRoZW0uCi0gICAgbV93b3JrZXJHbG9iYWxTY29wZSA9IDA7CisgICAgbV93b3JrZXJHbG9iYWxT
Y29wZSA9IG51bGxwdHI7CiAKICAgICAvLyBDbGVhbiB1cCBXZWJDb3JlOjpUaHJlYWRHbG9iYWxE
YXRhIGJlZm9yZSBXVEY6OldURlRocmVhZERhdGEgZ29lcyBhd2F5IQogICAgIHRocmVhZEdsb2Jh
bERhdGEoKS5kZXN0cm95KCk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS94bWwvWE1MSHR0
cFJlcXVlc3QuY3BwIGIvU291cmNlL1dlYkNvcmUveG1sL1hNTEh0dHBSZXF1ZXN0LmNwcAppbmRl
eCBjN2U4YzBiMmIwZmRkM2E3OWJhMDlkMmZkOTE1ZjMyMTVmZTZjNzI5Li40NzVkNmZiNGQ1NmJm
NjU3NWVmNTBjMWM1NDRkNTg4MzUwNWI5NDc1IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS94
bWwvWE1MSHR0cFJlcXVlc3QuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3htbC9YTUxIdHRwUmVx
dWVzdC5jcHAKQEAgLTI0NSw3ICsyNDUsNyBAQCBCbG9iKiBYTUxIdHRwUmVxdWVzdDo6cmVzcG9u
c2VCbG9iKCkKICAgICAgICAgICAgIGRhdGEuYXBwZW5kKG1fYmluYXJ5UmVzcG9uc2VCdWlsZGVy
LT5kYXRhKCksIG1fYmluYXJ5UmVzcG9uc2VCdWlsZGVyLT5zaXplKCkpOwogICAgICAgICAgICAg
U3RyaW5nIG5vcm1hbGl6ZWRDb250ZW50VHlwZSA9IEJsb2I6Om5vcm1hbGl6ZWRDb250ZW50VHlw
ZShyZXNwb25zZU1JTUVUeXBlKCkpOyAvLyByZXNwb25zZU1JTUVUeXBlIGRlZmF1bHRzIHRvIHRl
eHQveG1sIHdoaWNoIG1heSBiZSBpbmNvcnJlY3QuCiAgICAgICAgICAgICBtX3Jlc3BvbnNlQmxv
YiA9IEJsb2I6OmNyZWF0ZShXVEY6Om1vdmUoZGF0YSksIG5vcm1hbGl6ZWRDb250ZW50VHlwZSk7
Ci0gICAgICAgICAgICBtX2JpbmFyeVJlc3BvbnNlQnVpbGRlci5jbGVhcigpOworICAgICAgICAg
ICAgbV9iaW5hcnlSZXNwb25zZUJ1aWxkZXIgPSBudWxscHRyOwogICAgICAgICB9IGVsc2Ugewog
ICAgICAgICAgICAgLy8gSWYgd2UgZXJyb3JlZCBvdXQgb3IgZ290IG5vIGRhdGEsIHdlIHN0aWxs
IHJldHVybiBhIGJsb2IsIGp1c3QgYW4gZW1wdHkgb25lLgogICAgICAgICAgICAgbV9yZXNwb25z
ZUJsb2IgPSBCbG9iOjpjcmVhdGUoKTsKQEAgLTI2NSw3ICsyNjUsNyBAQCBBcnJheUJ1ZmZlciog
WE1MSHR0cFJlcXVlc3Q6OnJlc3BvbnNlQXJyYXlCdWZmZXIoKQogICAgICAgICAgICAgbV9yZXNw
b25zZUFycmF5QnVmZmVyID0gbV9iaW5hcnlSZXNwb25zZUJ1aWxkZXItPmNyZWF0ZUFycmF5QnVm
ZmVyKCk7CiAgICAgICAgIGVsc2UKICAgICAgICAgICAgIG1fcmVzcG9uc2VBcnJheUJ1ZmZlciA9
IEFycmF5QnVmZmVyOjpjcmVhdGUobnVsbHB0ciwgMCk7Ci0gICAgICAgIG1fYmluYXJ5UmVzcG9u
c2VCdWlsZGVyLmNsZWFyKCk7CisgICAgICAgIG1fYmluYXJ5UmVzcG9uc2VCdWlsZGVyID0gbnVs
bHB0cjsKICAgICB9CiAKICAgICByZXR1cm4gbV9yZXNwb25zZUFycmF5QnVmZmVyLmdldCgpOwpA
QCAtODY4LDggKzg2OCw4IEBAIHZvaWQgWE1MSHR0cFJlcXVlc3Q6OmNsZWFyUmVzcG9uc2VCdWZm
ZXJzKCkKICAgICBtX2NyZWF0ZWREb2N1bWVudCA9IGZhbHNlOwogICAgIG1fcmVzcG9uc2VEb2N1
bWVudCA9IG51bGxwdHI7CiAgICAgbV9yZXNwb25zZUJsb2IgPSBudWxscHRyOwotICAgIG1fYmlu
YXJ5UmVzcG9uc2VCdWlsZGVyLmNsZWFyKCk7Ci0gICAgbV9yZXNwb25zZUFycmF5QnVmZmVyLmNs
ZWFyKCk7CisgICAgbV9iaW5hcnlSZXNwb25zZUJ1aWxkZXIgPSBudWxscHRyOworICAgIG1fcmVz
cG9uc2VBcnJheUJ1ZmZlciA9IG51bGxwdHI7CiAgICAgbV9yZXNwb25zZUNhY2hlSXNWYWxpZCA9
IGZhbHNlOwogfQogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS94bWwvWFNMVFByb2Nlc3Nv
ci5jcHAgYi9Tb3VyY2UvV2ViQ29yZS94bWwvWFNMVFByb2Nlc3Nvci5jcHAKaW5kZXggMDY5Y2Nl
Y2I3YmYyYzk0MDA2ZGU5NDg1ZDE2MzI4NGU4NDA3OTFmYi4uNDkxZjEyYzk5ZDhhNWI0MjBhZmZj
MjkwNzdjNGIzZGUyMTNkNTQwOCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUveG1sL1hTTFRQ
cm9jZXNzb3IuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3htbC9YU0xUUHJvY2Vzc29yLmNwcApA
QCAtMTYyLDggKzE2Miw4IEBAIHZvaWQgWFNMVFByb2Nlc3Nvcjo6cmVtb3ZlUGFyYW1ldGVyKGNv
bnN0IFN0cmluZyYgLypuYW1lc3BhY2VVUkkqLywgY29uc3QgU3RyaW5nCiAKIHZvaWQgWFNMVFBy
b2Nlc3Nvcjo6cmVzZXQoKQogewotICAgIG1fc3R5bGVzaGVldC5jbGVhcigpOwotICAgIG1fc3R5
bGVzaGVldFJvb3ROb2RlLmNsZWFyKCk7CisgICAgbV9zdHlsZXNoZWV0ID0gbnVsbHB0cjsKKyAg
ICBtX3N0eWxlc2hlZXRSb290Tm9kZSA9IG51bGxwdHI7CiAgICAgbV9wYXJhbWV0ZXJzLmNsZWFy
KCk7CiB9CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvU3RvcmFnZS9TdG9yYWdlQXJlYVN5
bmMuY3BwIGIvU291cmNlL1dlYktpdC9TdG9yYWdlL1N0b3JhZ2VBcmVhU3luYy5jcHAKaW5kZXgg
ZDFlYjMyYTBkYTRjZDNiYmViNmY4OGM3NjE1ZTJiZmQ5Yjk3NzE4Ni4uYmExN2YxODk4MWUzYmU2
ZjE4NDBmOTA5OGE4YjFhYjE5MDA1M2Y1OSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9TdG9y
YWdlL1N0b3JhZ2VBcmVhU3luYy5jcHAKKysrIGIvU291cmNlL1dlYktpdC9TdG9yYWdlL1N0b3Jh
Z2VBcmVhU3luYy5jcHAKQEAgLTg4LDcgKzg4LDcgQEAgdm9pZCBTdG9yYWdlQXJlYVN5bmM6OnNj
aGVkdWxlRmluYWxTeW5jKCkKICAgICBBU1NFUlQoaXNNYWluVGhyZWFkKCkpOwogICAgIC8vIEZJ
WE1FOiBXZSBkbyB0aGlzIHRvIGF2b2lkIHJhY2VzLCBidXQgaXQnZCBiZSBiZXR0ZXIgdG8gbWFr
ZSB0aGluZ3Mgc2FmZSB3aXRob3V0IGJsb2NraW5nLgogICAgIGJsb2NrVW50aWxJbXBvcnRDb21w
bGV0ZSgpOwotICAgIG1fc3RvcmFnZUFyZWEgPSAwOyAgLy8gVGhpcyBpcyBkb25lIGluIGJsb2Nr
VW50aWxJbXBvcnRDb21wbGV0ZSgpIGJ1dCB0aGlzIGlzIGhlcmUgYXMgYSBmb3JtIG9mIGRvY3Vt
ZW50YXRpb24gdGhhdCB3ZSBtdXN0IGJlIGFic29sdXRlbHkgc3VyZSB0aGUgcmVmIGNvdW50IGN5
Y2xlIGlzIGJyb2tlbi4KKyAgICBtX3N0b3JhZ2VBcmVhID0gbnVsbHB0cjsgLy8gVGhpcyBpcyBk
b25lIGluIGJsb2NrVW50aWxJbXBvcnRDb21wbGV0ZSgpIGJ1dCB0aGlzIGlzIGhlcmUgYXMgYSBm
b3JtIG9mIGRvY3VtZW50YXRpb24gdGhhdCB3ZSBtdXN0IGJlIGFic29sdXRlbHkgc3VyZSB0aGUg
cmVmIGNvdW50IGN5Y2xlIGlzIGJyb2tlbi4KIAogICAgIGlmIChtX3N5bmNUaW1lci5pc0FjdGl2
ZSgpKQogICAgICAgICBtX3N5bmNUaW1lci5zdG9wKCk7CkBAIC0zNzUsNyArMzc1LDcgQEAgdm9p
ZCBTdG9yYWdlQXJlYVN5bmM6OmJsb2NrVW50aWxJbXBvcnRDb21wbGV0ZSgpCiAgICAgTXV0ZXhM
b2NrZXIgbG9ja2VyKG1faW1wb3J0TG9jayk7CiAgICAgd2hpbGUgKCFtX2ltcG9ydENvbXBsZXRl
KQogICAgICAgICBtX2ltcG9ydENvbmRpdGlvbi53YWl0KG1faW1wb3J0TG9jayk7Ci0gICAgbV9z
dG9yYWdlQXJlYSA9IDA7CisgICAgbV9zdG9yYWdlQXJlYSA9IG51bGxwdHI7CiB9CiAKIHZvaWQg
U3RvcmFnZUFyZWFTeW5jOjpzeW5jKGJvb2wgY2xlYXJJdGVtcywgY29uc3QgSGFzaE1hcDxTdHJp
bmcsIFN0cmluZz4mIGl0ZW1zKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9tYWMvUGx1Z2lu
cy9Ib3N0ZWQvV2ViSG9zdGVkTmV0c2NhcGVQbHVnaW5WaWV3Lm1tIGIvU291cmNlL1dlYktpdC9t
YWMvUGx1Z2lucy9Ib3N0ZWQvV2ViSG9zdGVkTmV0c2NhcGVQbHVnaW5WaWV3Lm1tCmluZGV4IDc2
MDA1ODM2OTBkNzk2MGM1ZDhhNTlhNzNlNzJkMDI1ZGIyY2ZmMzcuLmFjNDM0ZWMxYTlmMzQ4Yzcw
NWM4YmIwMTJjZTZhNGVjODk3ZWYzMGEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvbWFjL1Bs
dWdpbnMvSG9zdGVkL1dlYkhvc3RlZE5ldHNjYXBlUGx1Z2luVmlldy5tbQorKysgYi9Tb3VyY2Uv
V2ViS2l0L21hYy9QbHVnaW5zL0hvc3RlZC9XZWJIb3N0ZWROZXRzY2FwZVBsdWdpblZpZXcubW0K
QEAgLTI4MSw3ICsyODEsNyBAQCAtICh2b2lkKWRlc3Ryb3lQbHVnaW4KICAgICAgICAgfQogICAg
ICAgICAKICAgICAgICAgX3Byb3h5LT5kZXN0cm95KCk7Ci0gICAgICAgIF9wcm94eSA9IDA7Cisg
ICAgICAgIF9wcm94eSA9IG51bGxwdHI7CiAgICAgfQogICAgIAogICAgIF9wbHVnaW5MYXllciA9
IDA7CkBAIC00MzIsNyArNDMyLDcgQEAgLSAodm9pZClwbHVnaW5Ib3N0RGllZAogICAgICAgICBk
b3duY2FzdDxSZW5kZXJFbWJlZGRlZE9iamVjdD4oKl9lbGVtZW50LT5yZW5kZXJlcigpKS5zZXRQ
bHVnaW5VbmF2YWlsYWJpbGl0eVJlYXNvbihSZW5kZXJFbWJlZGRlZE9iamVjdDo6UGx1Z2luQ3Jh
c2hlZCk7CiAKICAgICBfcGx1Z2luTGF5ZXIgPSBuaWw7Ci0gICAgX3Byb3h5ID0gMDsKKyAgICBf
cHJveHkgPSBudWxscHRyOwogICAgIAogICAgIC8vIE5vIG5lZWQgZm9yIHVzIHRvIGJlIGxheWVy
IGJhY2tlZCBhbnltb3JlCiAgICAgc2VsZi53YW50c0xheWVyID0gTk87CmRpZmYgLS1naXQgYS9T
b3VyY2UvV2ViS2l0L21hYy9XZWJDb3JlU3VwcG9ydC9XZWJFZGl0b3JDbGllbnQubW0gYi9Tb3Vy
Y2UvV2ViS2l0L21hYy9XZWJDb3JlU3VwcG9ydC9XZWJFZGl0b3JDbGllbnQubW0KaW5kZXggNmNl
ZDE5NDEzODZiMGM2OTEwNjI2N2YxY2Q3NGQ4ZWMzYTE5ZDk1Ni4uYzE4OGI5ZDczOTU3YTRhMjMw
M2Q4NzAyMTgzMTMwNmNkNjAxM2IyOSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9tYWMvV2Vi
Q29yZVN1cHBvcnQvV2ViRWRpdG9yQ2xpZW50Lm1tCisrKyBiL1NvdXJjZS9XZWJLaXQvbWFjL1dl
YkNvcmVTdXBwb3J0L1dlYkVkaXRvckNsaWVudC5tbQpAQCAtMTE0Myw3ICsxMTQzLDcgQEAgdm9p
ZCBXZWJFZGl0b3JDbGllbnQ6OmRpZENoZWNrU3VjY2VlZChpbnQgc2VxdWVuY2UsIE5TQXJyYXkq
IHJlc3VsdHMpCiB7CiAgICAgQVNTRVJUX1VOVVNFRChzZXF1ZW5jZSwgc2VxdWVuY2UgPT0gbV90
ZXh0Q2hlY2tpbmdSZXF1ZXN0LT5kYXRhKCkuc2VxdWVuY2UoKSk7CiAgICAgbV90ZXh0Q2hlY2tp
bmdSZXF1ZXN0LT5kaWRTdWNjZWVkKGNvcmUocmVzdWx0cywgbV90ZXh0Q2hlY2tpbmdSZXF1ZXN0
LT5kYXRhKCkubWFzaygpKSk7Ci0gICAgbV90ZXh0Q2hlY2tpbmdSZXF1ZXN0LmNsZWFyKCk7Cisg
ICAgbV90ZXh0Q2hlY2tpbmdSZXF1ZXN0ID0gbnVsbHB0cjsKIH0KICNlbmRpZgogCmRpZmYgLS1n
aXQgYS9Tb3VyY2UvV2ViS2l0L21hYy9XZWJDb3JlU3VwcG9ydC9XZWJVc2VyTWVkaWFDbGllbnQu
bW0gYi9Tb3VyY2UvV2ViS2l0L21hYy9XZWJDb3JlU3VwcG9ydC9XZWJVc2VyTWVkaWFDbGllbnQu
bW0KaW5kZXggNjIyYmQ5ZGQzYWZlMDg5MmIxZGMyZGY1MGJhN2U0YjQzMjJiMTU5ZC4uMTdmMTY0
NzNlZDViOWQ0MzQ4MzBlZDdjNzI2OTg2NWQ3YTViMzUzZiAxMDA2NDQKLS0tIGEvU291cmNlL1dl
YktpdC9tYWMvV2ViQ29yZVN1cHBvcnQvV2ViVXNlck1lZGlhQ2xpZW50Lm1tCisrKyBiL1NvdXJj
ZS9XZWJLaXQvbWFjL1dlYkNvcmVTdXBwb3J0L1dlYlVzZXJNZWRpYUNsaWVudC5tbQpAQCAtMTQy
LDcgKzE0Miw3IEBAIC0gKHZvaWQpY2FuY2VsUmVxdWVzdAogICAgIGlmICghX3JlcXVlc3QpCiAg
ICAgICAgIHJldHVybjsKIAotICAgIF9yZXF1ZXN0ID0gMDsKKyAgICBfcmVxdWVzdCA9IG51bGxw
dHI7CiAjZW5kaWYKICAgICAKIH0KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvd2luL1BsdWdp
bnMvUGx1Z2luU3RyZWFtLmNwcCBiL1NvdXJjZS9XZWJLaXQvd2luL1BsdWdpbnMvUGx1Z2luU3Ry
ZWFtLmNwcAppbmRleCAxODBlZDQzZTQ0MGVlODQ1NDA3ODZlOTE4ZDc4N2JhYzE2ODdhZjM0Li42
ZDMwY2I1Yjc5ZjhhMDFlZGQ1YmIzODY2ZGU4ODYyNWYxYjMyZGVkIDEwMDY0NAotLS0gYS9Tb3Vy
Y2UvV2ViS2l0L3dpbi9QbHVnaW5zL1BsdWdpblN0cmVhbS5jcHAKKysrIGIvU291cmNlL1dlYktp
dC93aW4vUGx1Z2lucy9QbHVnaW5TdHJlYW0uY3BwCkBAIC0xMTcsNyArMTE3LDcgQEAgdm9pZCBQ
bHVnaW5TdHJlYW06OnN0b3AoKQogCiAgICAgaWYgKG1fbG9hZGVyKSB7CiAgICAgICAgIG1fbG9h
ZGVyLT5jYW5jZWwoKTsKLSAgICAgICAgbV9sb2FkZXIgPSAwOworICAgICAgICBtX2xvYWRlciA9
IG51bGxwdHI7CiAgICAgfQogCiAgICAgbV9jbGllbnQgPSAwOwpAQCAtMzk4LDcgKzM5OCw3IEBA
IHZvaWQgUGx1Z2luU3RyZWFtOjpzZW5kSmF2YVNjcmlwdFN0cmVhbShjb25zdCBVUkwmIHJlcXVl
c3RVUkwsIGNvbnN0IENTdHJpbmcmIHJlCiAgICAgICAgICAgICByZXR1cm47CiAgICAgfQogCi0g
ICAgbV9sb2FkZXIgPSAwOworICAgIG1fbG9hZGVyID0gbnVsbHB0cjsKIAogICAgIGRlc3Ryb3lT
dHJlYW0ocmVzdWx0U3RyaW5nLmlzTnVsbCgpID8gTlBSRVNfTkVUV09SS19FUlIgOiBOUFJFU19E
T05FKTsKIH0KQEAgLTQ1MSw3ICs0NTEsNyBAQCB2b2lkIFBsdWdpblN0cmVhbTo6ZGlkRmFpbChO
ZXRzY2FwZVBsdWdJblN0cmVhbUxvYWRlciogbG9hZGVyLCBjb25zdCBSZXNvdXJjZUVycgogCiAg
ICAgZGVzdHJveVN0cmVhbShOUFJFU19ORVRXT1JLX0VSUik7CiAKLSAgICBtX2xvYWRlciA9IDA7
CisgICAgbV9sb2FkZXIgPSBudWxscHRyOwogfQogCiB2b2lkIFBsdWdpblN0cmVhbTo6ZGlkRmlu
aXNoTG9hZGluZyhOZXRzY2FwZVBsdWdJblN0cmVhbUxvYWRlciogbG9hZGVyKQpAQCAtNDY0LDcg
KzQ2NCw3IEBAIHZvaWQgUGx1Z2luU3RyZWFtOjpkaWRGaW5pc2hMb2FkaW5nKE5ldHNjYXBlUGx1
Z0luU3RyZWFtTG9hZGVyKiBsb2FkZXIpCiAKICAgICBkZXN0cm95U3RyZWFtKE5QUkVTX0RPTkUp
OwogCi0gICAgbV9sb2FkZXIgPSAwOworICAgIG1fbG9hZGVyID0gbnVsbHB0cjsKIH0KIAogYm9v
bCBQbHVnaW5TdHJlYW06OndhbnRzQWxsU3RyZWFtcygpIGNvbnN0CkBAIC00NzIsMTEgKzQ3Miwx
MSBAQCBib29sIFBsdWdpblN0cmVhbTo6d2FudHNBbGxTdHJlYW1zKCkgY29uc3QKICAgICBpZiAo
IW1fcGx1Z2luRnVuY3MtPmdldHZhbHVlKQogICAgICAgICByZXR1cm4gZmFsc2U7CiAKLSAgICB2
b2lkKiByZXN1bHQgPSAwOworICAgIHZvaWQqIHJlc3VsdCA9IG51bGxwdHI7CiAgICAgaWYgKG1f
cGx1Z2luRnVuY3MtPmdldHZhbHVlKG1faW5zdGFuY2UsIE5QUFZwbHVnaW5XYW50c0FsbE5ldHdv
cmtTdHJlYW1zLCAmcmVzdWx0KSAhPSBOUEVSUl9OT19FUlJPUikKICAgICAgICAgcmV0dXJuIGZh
bHNlOwogCi0gICAgcmV0dXJuIHJlc3VsdCAhPSAwOworICAgIHJldHVybiAhIXJlc3VsdDsKIH0K
IAogfQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC93aW4vUGx1Z2lucy9QbHVnaW5WaWV3LmNw
cCBiL1NvdXJjZS9XZWJLaXQvd2luL1BsdWdpbnMvUGx1Z2luVmlldy5jcHAKaW5kZXggMzI2NzJi
YzdlODQ4MjJiY2YzMTQ5YmNhNDgxMGU3YmZlOTlhYjdkNi4uMDU5MjFjMmFkMWYyNDBhOTQ0Y2Mw
YTM5YmUyYzlhYWVjOTIwNmE0MSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC93aW4vUGx1Z2lu
cy9QbHVnaW5WaWV3LmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0L3dpbi9QbHVnaW5zL1BsdWdpblZp
ZXcuY3BwCkBAIC0xODcsNyArMTg3LDcgQEAgdm9pZCBQbHVnaW5WaWV3Ojppbml0KCkKICAgICBM
T0coUGx1Z2lucywgIlBsdWdpblZpZXc6OmluaXQoKTogSW5pdGlhbGl6aW5nIHBsdWctaW4gJyVz
JyIsIG1fcGx1Z2luLT5uYW1lKCkudXRmOCgpLmRhdGEoKSk7CiAKICAgICBpZiAoIW1fcGx1Z2lu
LT5sb2FkKCkpIHsKLSAgICAgICAgbV9wbHVnaW4gPSAwOworICAgICAgICBtX3BsdWdpbiA9IG51
bGxwdHI7CiAgICAgICAgIG1fc3RhdHVzID0gUGx1Z2luU3RhdHVzQ2FuTm90TG9hZFBsdWdpbjsK
ICAgICAgICAgcmV0dXJuOwogICAgIH0KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvd2luL1dl
YkZyYW1lUG9saWN5TGlzdGVuZXIuY3BwIGIvU291cmNlL1dlYktpdC93aW4vV2ViRnJhbWVQb2xp
Y3lMaXN0ZW5lci5jcHAKaW5kZXggMDZiMDA1NDNiOGRmNDczZjE3NjdlMTAzNzYzOWI2NDEzNjMy
ZjA2OS4uNDgyOGU0ZDliODE1YTQ5ZDExNjE3ZTFlMjMwMjk3NzkyM2Y3ZDI0MyAxMDA2NDQKLS0t
IGEvU291cmNlL1dlYktpdC93aW4vV2ViRnJhbWVQb2xpY3lMaXN0ZW5lci5jcHAKKysrIGIvU291
cmNlL1dlYktpdC93aW4vV2ViRnJhbWVQb2xpY3lMaXN0ZW5lci5jcHAKQEAgLTEyNiw2ICsxMjYs
NiBAQCB2b2lkIFdlYkZyYW1lUG9saWN5TGlzdGVuZXI6OnJlY2VpdmVkUG9saWN5RGVjaXNpb24o
UG9saWN5QWN0aW9uIGFjdGlvbikKIAogdm9pZCBXZWJGcmFtZVBvbGljeUxpc3RlbmVyOjppbnZh
bGlkYXRlKCkKIHsKLSAgICBtX2ZyYW1lID0gMDsKKyAgICBtX2ZyYW1lID0gbnVsbHB0cjsKIH0K
IApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC93aW4vV2ViVmlldy5jcHAgYi9Tb3VyY2UvV2Vi
S2l0L3dpbi9XZWJWaWV3LmNwcAppbmRleCA0Mzc1MjcxMjhkMTU0MWZjNjllODdkMDU4Y2I5ZTkw
NjJiNjM2MjNkLi5hYTExMjgyYjYwM2JkNWI4NGNhYTFmNGM3NDBhOTRkMWRmZGFjMWU4IDEwMDY0
NAotLS0gYS9Tb3VyY2UvV2ViS2l0L3dpbi9XZWJWaWV3LmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0
L3dpbi9XZWJWaWV3LmNwcApAQCAtODUxLDggKzg1MSw4IEBAIHZvaWQgV2ViVmlldzo6ZGVsZXRl
QmFja2luZ1N0b3JlKCkKICAgICAgICAgS2lsbFRpbWVyKG1fdmlld1dpbmRvdywgRGVsZXRlQmFj
a2luZ1N0b3JlVGltZXIpOwogICAgICAgICBtX2RlbGV0ZUJhY2tpbmdTdG9yZVRpbWVyQWN0aXZl
ID0gZmFsc2U7CiAgICAgfQotICAgIG1fYmFja2luZ1N0b3JlQml0bWFwLmNsZWFyKCk7Ci0gICAg
bV9iYWNraW5nU3RvcmVEaXJ0eVJlZ2lvbi5jbGVhcigpOworICAgIG1fYmFja2luZ1N0b3JlQml0
bWFwID0gbnVsbHB0cjsKKyAgICBtX2JhY2tpbmdTdG9yZURpcnR5UmVnaW9uID0gbnVsbHB0cjsK
ICAgICBtX2JhY2tpbmdTdG9yZVNpemUuY3ggPSBtX2JhY2tpbmdTdG9yZVNpemUuY3kgPSAwOwog
fQogCkBAIC0xMDc5LDcgKzEwNzksNyBAQCB2b2lkIFdlYlZpZXc6OnVwZGF0ZUJhY2tpbmdTdG9y
ZShGcmFtZVZpZXcqIGZyYW1lVmlldywgSERDIGRjLCBib29sIGJhY2tpbmdTdG9yZQogICAgICAg
ICBpZiAobV91aURlbGVnYXRlUHJpdmF0ZSkKICAgICAgICAgICAgIG1fdWlEZWxlZ2F0ZVByaXZh
dGUtPndlYlZpZXdQYWludGVkKHRoaXMpOwogCi0gICAgICAgIG1fYmFja2luZ1N0b3JlRGlydHlS
ZWdpb24uY2xlYXIoKTsKKyAgICAgICAgbV9iYWNraW5nU3RvcmVEaXJ0eVJlZ2lvbiA9IG51bGxw
dHI7CiAgICAgfQogCiAgICAgaWYgKCFkYykKQEAgLTE3MzIsNyArMTczMiw3IEBAIGJvb2wgV2Vi
Vmlldzo6Z2VzdHVyZShXUEFSQU0gd1BhcmFtLCBMUEFSQU0gbFBhcmFtKQogCiAgICAgICAgIGJy
ZWFrOwogICAgIGNhc2UgR0lEX0VORDoKLSAgICAgICAgbV9nZXN0dXJlVGFyZ2V0Tm9kZSA9IDA7
CisgICAgICAgIG1fZ2VzdHVyZVRhcmdldE5vZGUgPSBudWxscHRyOwogICAgICAgICBicmVhazsK
ICAgICBjYXNlIEdJRF9QQU46IHsKICAgICAgICAgaWYgKGdpLmR3RmxhZ3MgJiBHRl9CRUdJTikg
ewpAQCAtNjYyOCw3ICs2NjI4LDcgQEAgdm9pZCBXZWJWaWV3OjpzZXRBY2NlbGVyYXRlZENvbXBv
c2l0aW5nKGJvb2wgYWNjZWxlcmF0ZWQpCiAgICAgICAgIEFTU0VSVChtX2xheWVyVHJlZUhvc3Qp
OwogICAgICAgICBtX2xheWVyVHJlZUhvc3QtPnNldENsaWVudCgwKTsKICAgICAgICAgbV9sYXll
clRyZWVIb3N0LT5zZXRXaW5kb3coMCk7Ci0gICAgICAgIG1fbGF5ZXJUcmVlSG9zdCA9IDA7Cisg
ICAgICAgIG1fbGF5ZXJUcmVlSG9zdCA9IG51bGxwdHI7CiAgICAgICAgIG1fYmFja2luZ0xheWVy
ID0gbnVsbHB0cjsKICAgICAgICAgbV9pc0FjY2VsZXJhdGVkQ29tcG9zaXRpbmcgPSBmYWxzZTsK
ICAgICB9CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9EYXRhYmFzZVByb2Nlc3MvSW5kZXhl
ZERCL1VuaXF1ZUlEQkRhdGFiYXNlLmNwcCBiL1NvdXJjZS9XZWJLaXQyL0RhdGFiYXNlUHJvY2Vz
cy9JbmRleGVkREIvVW5pcXVlSURCRGF0YWJhc2UuY3BwCmluZGV4IDYxOTgwNWNkOWEyNjFlNzE1
YjI3ODg4YzFiMWJlZjExOTMyZTNlY2QuLjNkMmNhNWJiYmZhYzY0YWViODE2ODBiYTg3NWY2MDdj
ODRlNGJkMWQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQyL0RhdGFiYXNlUHJvY2Vzcy9JbmRl
eGVkREIvVW5pcXVlSURCRGF0YWJhc2UuY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQyL0RhdGFiYXNl
UHJvY2Vzcy9JbmRleGVkREIvVW5pcXVlSURCRGF0YWJhc2UuY3BwCkBAIC0xNDcsNyArMTQ3LDcg
QEAgdm9pZCBVbmlxdWVJREJEYXRhYmFzZTo6c2h1dGRvd25CYWNraW5nU3RvcmUoVW5pcXVlSURC
RGF0YWJhc2VTaHV0ZG93blR5cGUgdHlwZSwKIHsKICAgICBBU1NFUlQoIVJ1bkxvb3A6OmlzTWFp
bigpKTsKIAotICAgIG1fYmFja2luZ1N0b3JlLmNsZWFyKCk7CisgICAgbV9iYWNraW5nU3RvcmUg
PSBudWxscHRyOwogCiAgICAgaWYgKHR5cGUgPT0gVW5pcXVlSURCRGF0YWJhc2VTaHV0ZG93blR5
cGU6OkRlbGV0ZVNodXRkb3duKSB7CiAgICAgICAgIFN0cmluZyBkYkZpbGVuYW1lID0gVW5pcXVl
SURCRGF0YWJhc2U6OmNhbGN1bGF0ZUFic29sdXRlRGF0YWJhc2VGaWxlbmFtZShkYXRhYmFzZURp
cmVjdG9yeSk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9QbHVnaW5Qcm9jZXNzL1BsdWdp
bkNvbnRyb2xsZXJQcm94eS5jcHAgYi9Tb3VyY2UvV2ViS2l0Mi9QbHVnaW5Qcm9jZXNzL1BsdWdp
bkNvbnRyb2xsZXJQcm94eS5jcHAKaW5kZXggODhkNmQxNzdkYTg0NjFlZjhmNGUzMjNjYzZjNjJm
ZjlkY2Y0YzE4MS4uNGE5ZjQ2N2U4NzhkZTgxYzY2MWJkZWQzNWQ3NjE2NjMwNjExYzQ3YyAxMDA2
NDQKLS0tIGEvU291cmNlL1dlYktpdDIvUGx1Z2luUHJvY2Vzcy9QbHVnaW5Db250cm9sbGVyUHJv
eHkuY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQyL1BsdWdpblByb2Nlc3MvUGx1Z2luQ29udHJvbGxl
clByb3h5LmNwcApAQCAtMTI2LDcgKzEyNiw3IEBAIGJvb2wgUGx1Z2luQ29udHJvbGxlclByb3h5
Ojppbml0aWFsaXplKGNvbnN0IFBsdWdpbkNyZWF0aW9uUGFyYW1ldGVycyYgY3JlYXRpb25QCiAg
ICAgICAgIC8vIHVzZWQgYXMgYW4gaWRlbnRpZmllciBzbyBpdCdzIE9LIHRvIGp1c3QgZ2V0IGEg
d2VhayByZWZlcmVuY2UuCiAgICAgICAgIFBsdWdpbiogcGx1Z2luID0gbV9wbHVnaW4uZ2V0KCk7
CiAgICAgICAgIAotICAgICAgICBtX3BsdWdpbiA9IDA7CisgICAgICAgIG1fcGx1Z2luID0gbnVs
bHB0cjsKIAogICAgICAgICAvLyBUaGlzIHdpbGwgZGVsZXRlIHRoZSBwbHVnLWluIGNvbnRyb2xs
ZXIgcHJveHkgb2JqZWN0LgogICAgICAgICBtX2Nvbm5lY3Rpb24tPnJlbW92ZVBsdWdpbkNvbnRy
b2xsZXJQcm94eSh0aGlzLCBwbHVnaW4pOwpAQCAtMTU2LDcgKzE1Niw3IEBAIHZvaWQgUGx1Z2lu
Q29udHJvbGxlclByb3h5OjpkZXN0cm95KCkKICAgICBQbHVnaW4qIHBsdWdpbiA9IG1fcGx1Z2lu
LmdldCgpOwogCiAgICAgbV9wbHVnaW4tPmRlc3Ryb3lQbHVnaW4oKTsKLSAgICBtX3BsdWdpbiA9
IDA7CisgICAgbV9wbHVnaW4gPSBudWxscHRyOwogCiAgICAgcGxhdGZvcm1EZXN0cm95KCk7CiAK
ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL1NoYXJlZC9DaGlsZFByb2Nlc3NQcm94eS5jcHAg
Yi9Tb3VyY2UvV2ViS2l0Mi9TaGFyZWQvQ2hpbGRQcm9jZXNzUHJveHkuY3BwCmluZGV4IDM5MzA5
ODk3OWU2OGVjMTI0NDBlMTI1ZmNjM2EyNDJiMDdlNjg5N2QuLmQ5ZTA3ZWY0YzdkNjJkZTg2ZGZj
Njk4ZjcwNTRmODhjNGE4NTMzODUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQyL1NoYXJlZC9D
aGlsZFByb2Nlc3NQcm94eS5jcHAKKysrIGIvU291cmNlL1dlYktpdDIvU2hhcmVkL0NoaWxkUHJv
Y2Vzc1Byb3h5LmNwcApAQCAtNDIsNyArNDIsNyBAQCBDaGlsZFByb2Nlc3NQcm94eTo6fkNoaWxk
UHJvY2Vzc1Byb3h5KCkKIAogICAgIGlmIChtX3Byb2Nlc3NMYXVuY2hlcikgewogICAgICAgICBt
X3Byb2Nlc3NMYXVuY2hlci0+aW52YWxpZGF0ZSgpOwotICAgICAgICBtX3Byb2Nlc3NMYXVuY2hl
ciA9IDA7CisgICAgICAgIG1fcHJvY2Vzc0xhdW5jaGVyID0gbnVsbHB0cjsKICAgICB9CiB9CiAK
ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL1NoYXJlZC9Db29yZGluYXRlZEdyYXBoaWNzL0Nv
b3JkaW5hdGVkQmFja2luZ1N0b3JlLmNwcCBiL1NvdXJjZS9XZWJLaXQyL1NoYXJlZC9Db29yZGlu
YXRlZEdyYXBoaWNzL0Nvb3JkaW5hdGVkQmFja2luZ1N0b3JlLmNwcAppbmRleCBiOWEwNWY5MDZl
OWMxMWYwMjdlYTFhMTUyNWVlNDNlY2ZkNWM1M2Q3Li5jNjZkMjhiNzUzOTc0YTA1NzQwY2I2YWY2
OGUyYzQ4NDgxZDkzYzMyIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0Mi9TaGFyZWQvQ29vcmRp
bmF0ZWRHcmFwaGljcy9Db29yZGluYXRlZEJhY2tpbmdTdG9yZS5jcHAKKysrIGIvU291cmNlL1dl
YktpdDIvU2hhcmVkL0Nvb3JkaW5hdGVkR3JhcGhpY3MvQ29vcmRpbmF0ZWRCYWNraW5nU3RvcmUu
Y3BwCkBAIC01NSw3ICs1NSw3IEBAIHZvaWQgQ29vcmRpbmF0ZWRCYWNraW5nU3RvcmVUaWxlOjpz
d2FwQnVmZmVycyhUZXh0dXJlTWFwcGVyKiB0ZXh0dXJlTWFwcGVyKQogICAgICAgICB0ZXh0dXJl
LT5yZXNldChtX3RpbGVSZWN0LnNpemUoKSwgbV9zdXJmYWNlLT5zdXBwb3J0c0FscGhhKCkpOwog
CiAgICAgbV9zdXJmYWNlLT5jb3B5VG9UZXh0dXJlKHRleHR1cmUsIG1fc291cmNlUmVjdCwgbV9z
dXJmYWNlT2Zmc2V0KTsKLSAgICBtX3N1cmZhY2UuY2xlYXIoKTsKKyAgICBtX3N1cmZhY2UgPSBu
dWxscHRyOwogfQogCiB2b2lkIENvb3JkaW5hdGVkQmFja2luZ1N0b3JlVGlsZTo6c2V0QmFja0J1
ZmZlcihjb25zdCBJbnRSZWN0JiB0aWxlUmVjdCwgY29uc3QgSW50UmVjdCYgc291cmNlUmVjdCwg
UGFzc1JlZlB0cjxDb29yZGluYXRlZFN1cmZhY2U+IGJ1ZmZlciwgY29uc3QgSW50UG9pbnQmIG9m
ZnNldCkKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL1NoYXJlZC9Eb3dubG9hZHMvc291cC9E
b3dubG9hZFNvdXAuY3BwIGIvU291cmNlL1dlYktpdDIvU2hhcmVkL0Rvd25sb2Fkcy9zb3VwL0Rv
d25sb2FkU291cC5jcHAKaW5kZXggYzA5OWY4OWE0NTNiNTllN2Q0YzA3YmZhNGUyMDg3ODc4ZmM2
Y2UwMC4uYTIyNDliYTRlMjc3NDUyYTllMTY3MDlmYmMwODY3MDA0NTEwMTVmMCAxMDA2NDQKLS0t
IGEvU291cmNlL1dlYktpdDIvU2hhcmVkL0Rvd25sb2Fkcy9zb3VwL0Rvd25sb2FkU291cC5jcHAK
KysrIGIvU291cmNlL1dlYktpdDIvU2hhcmVkL0Rvd25sb2Fkcy9zb3VwL0Rvd25sb2FkU291cC5j
cHAKQEAgLTI1Nyw3ICsyNTcsNyBAQCB2b2lkIERvd25sb2FkOjpwbGF0Zm9ybUludmFsaWRhdGUo
KQogICAgIGlmIChtX3Jlc291cmNlSGFuZGxlKSB7CiAgICAgICAgIG1fcmVzb3VyY2VIYW5kbGUt
PnNldENsaWVudCgwKTsKICAgICAgICAgbV9yZXNvdXJjZUhhbmRsZS0+Y2FuY2VsKCk7Ci0gICAg
ICAgIG1fcmVzb3VyY2VIYW5kbGUgPSAwOworICAgICAgICBtX3Jlc291cmNlSGFuZGxlID0gbnVs
bHB0cjsKICAgICB9CiAKICAgICBtX2Rvd25sb2FkQ2xpZW50ID0gbnVsbHB0cjsKQEAgLTI2NSw3
ICsyNjUsNyBAQCB2b2lkIERvd25sb2FkOjpwbGF0Zm9ybUludmFsaWRhdGUoKQogCiB2b2lkIERv
d25sb2FkOjpwbGF0Zm9ybURpZEZpbmlzaCgpCiB7Ci0gICAgbV9yZXNvdXJjZUhhbmRsZSA9IDA7
CisgICAgbV9yZXNvdXJjZUhhbmRsZSA9IG51bGxwdHI7CiB9CiAKIHZvaWQgRG93bmxvYWQ6OnJl
Y2VpdmVkQ3JlZGVudGlhbChjb25zdCBBdXRoZW50aWNhdGlvbkNoYWxsZW5nZSYsIGNvbnN0IENy
ZWRlbnRpYWwmKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL0FQSS9lZmwv
RXdrVmlldy5jcHAgYi9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvQVBJL2VmbC9Fd2tWaWV3LmNw
cAppbmRleCA3N2I1MDFhODRkZjY0M2UxYmRlZTdlNTc0NWZmMTk0NDE0MjVhZjU5Li40NTg4NDY0
NTc4NzM3NDczN2Q4M2JiYzQwNWVlOGM3YmZlNzQ1ZmM5IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2Vi
S2l0Mi9VSVByb2Nlc3MvQVBJL2VmbC9Fd2tWaWV3LmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0Mi9V
SVByb2Nlc3MvQVBJL2VmbC9Fd2tWaWV3LmNwcApAQCAtOTQwLDcgKzk0MCw3IEBAIHZvaWQgRXdr
Vmlldzo6aGlkZUNvbnRleHRNZW51KCkKICAgICBpZiAoc2QtPmFwaS0+Y29udGV4dF9tZW51X2hp
ZGUpCiAgICAgICAgIHNkLT5hcGktPmNvbnRleHRfbWVudV9oaWRlKHNkKTsKIAotICAgIG1fY29u
dGV4dE1lbnUuY2xlYXIoKTsKKyAgICBtX2NvbnRleHRNZW51ID0gbnVsbHB0cjsKIH0KIAogdm9p
ZCBFd2tWaWV3OjpyZXF1ZXN0UG9wdXBNZW51KFdLUG9wdXBNZW51TGlzdGVuZXJSZWYgcG9wdXBN
ZW51TGlzdGVuZXIsIGNvbnN0IFdLUmVjdCYgcmVjdCwgV0tQb3B1cEl0ZW1UZXh0RGlyZWN0aW9u
IHRleHREaXJlY3Rpb24sIGRvdWJsZSBwYWdlU2NhbGVGYWN0b3IsIFdLQXJyYXlSZWYgaXRlbXMs
IGludDMyX3Qgc2VsZWN0ZWRJbmRleCkKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL1VJUHJv
Y2Vzcy9BUEkvZ3RrL1dlYktpdEZvcm1TdWJtaXNzaW9uUmVxdWVzdC5jcHAgYi9Tb3VyY2UvV2Vi
S2l0Mi9VSVByb2Nlc3MvQVBJL2d0ay9XZWJLaXRGb3JtU3VibWlzc2lvblJlcXVlc3QuY3BwCmlu
ZGV4IGQyZDVlNjgyMThmYTI2MTM0ZDhkNmNiMzM4OGY0NWZjY2VhZWZhMjkuLjdhZjJhZWUxMGI3
NTQ4ZjllZDdiYmY3ZWRjMjMzYzQzZDE2OTUxNzUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQy
L1VJUHJvY2Vzcy9BUEkvZ3RrL1dlYktpdEZvcm1TdWJtaXNzaW9uUmVxdWVzdC5jcHAKKysrIGIv
U291cmNlL1dlYktpdDIvVUlQcm9jZXNzL0FQSS9ndGsvV2ViS2l0Rm9ybVN1Ym1pc3Npb25SZXF1
ZXN0LmNwcApAQCAtOTYsNyArOTYsNyBAQCBHSGFzaFRhYmxlKiB3ZWJraXRfZm9ybV9zdWJtaXNz
aW9uX3JlcXVlc3RfZ2V0X3RleHRfZmllbGRzKFdlYktpdEZvcm1TdWJtaXNzaW9uUgogICAgICAg
ICByZXR1cm4gcmVxdWVzdC0+cHJpdi0+dmFsdWVzLmdldCgpOwogCiAgICAgaWYgKCFyZXF1ZXN0
LT5wcml2LT53ZWJWYWx1ZXMtPnNpemUoKSkKLSAgICAgICAgcmV0dXJuIDA7CisgICAgICAgIHJl
dHVybiBudWxscHRyOwogCiAgICAgcmVxdWVzdC0+cHJpdi0+dmFsdWVzID0gYWRvcHRHUmVmKGdf
aGFzaF90YWJsZV9uZXdfZnVsbChnX3N0cl9oYXNoLCBnX3N0cl9lcXVhbCwgZ19mcmVlLCBnX2Zy
ZWUpKTsKIApAQCAtMTA3LDcgKzEwNyw3IEBAIEdIYXNoVGFibGUqIHdlYmtpdF9mb3JtX3N1Ym1p
c3Npb25fcmVxdWVzdF9nZXRfdGV4dF9maWVsZHMoV2ViS2l0Rm9ybVN1Ym1pc3Npb25SCiAgICAg
ICAgIGdfaGFzaF90YWJsZV9pbnNlcnQocmVxdWVzdC0+cHJpdi0+dmFsdWVzLmdldCgpLCBnX3N0
cmR1cChpdC0+a2V5LnV0ZjgoKS5kYXRhKCkpLCBnX3N0cmR1cCh2YWx1ZS0+c3RyaW5nKCkudXRm
OCgpLmRhdGEoKSkpOwogICAgIH0KIAotICAgIHJlcXVlc3QtPnByaXYtPndlYlZhbHVlcyA9IDA7
CisgICAgcmVxdWVzdC0+cHJpdi0+d2ViVmFsdWVzID0gbnVsbHB0cjsKIAogICAgIHJldHVybiBy
ZXF1ZXN0LT5wcml2LT52YWx1ZXMuZ2V0KCk7CiB9CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0
Mi9VSVByb2Nlc3MvQVBJL21hYy9XS1ZpZXcubW0gYi9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3Mv
QVBJL21hYy9XS1ZpZXcubW0KaW5kZXggZDU1MTVhZTFmYzNmNDI5OWRhMTI0MzFhNDFhNzQ3ZTM4
YTNlNDY1Ny4uZThkMjQ0OTU4ZjA5ZGU1ZmRlYzllMWJjM2IxNGEyNjEwMjJlMzJhNiAxMDA2NDQK
LS0tIGEvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL0FQSS9tYWMvV0tWaWV3Lm1tCisrKyBiL1Nv
dXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9BUEkvbWFjL1dLVmlldy5tbQpAQCAtMzUyMCw3ICszNTIw
LDcgQEAgLSAodm9pZClfc2V0UHJvbWlzZWREYXRhRm9yQXR0YWNobWVudDooTlNTdHJpbmcgKilm
aWxlbmFtZSB3aXRoRXh0ZW5zaW9uOihOU1N0cmkKIAogLSAodm9pZClwYXN0ZWJvYXJkQ2hhbmdl
ZE93bmVyOihOU1Bhc3RlYm9hcmQgKilwYXN0ZWJvYXJkCiB7Ci0gICAgX2RhdGEtPl9wcm9taXNl
ZEltYWdlID0gMDsKKyAgICBfZGF0YS0+X3Byb21pc2VkSW1hZ2UgPSBudWxscHRyOwogICAgIF9k
YXRhLT5fcHJvbWlzZWRGaWxlbmFtZSA9ICIiOwogICAgIF9kYXRhLT5fcHJvbWlzZWRVUkwgPSAi
IjsKIH0KQEAgLTM1MzEsNyArMzUzMSw3IEBAIC0gKHZvaWQpcGFzdGVib2FyZDooTlNQYXN0ZWJv
YXJkICopcGFzdGVib2FyZCBwcm92aWRlRGF0YUZvclR5cGU6KE5TU3RyaW5nICopdHlwCiAKICAg
ICBpZiAoW3R5cGUgaXNFcXVhbDpOU1RJRkZQYm9hcmRUeXBlXSAmJiBfZGF0YS0+X3Byb21pc2Vk
SW1hZ2UpIHsKICAgICAgICAgW3Bhc3RlYm9hcmQgc2V0RGF0YTooTlNEYXRhICopX2RhdGEtPl9w
cm9taXNlZEltYWdlLT5nZXRUSUZGUmVwcmVzZW50YXRpb24oKSBmb3JUeXBlOk5TVElGRlBib2Fy
ZFR5cGVdOwotICAgICAgICBfZGF0YS0+X3Byb21pc2VkSW1hZ2UgPSAwOworICAgICAgICBfZGF0
YS0+X3Byb21pc2VkSW1hZ2UgPSBudWxscHRyOwogICAgIH0KIH0KIApkaWZmIC0tZ2l0IGEvU291
cmNlL1dlYktpdDIvVUlQcm9jZXNzL0luc3BlY3RvclNlcnZlci9XZWJTb2NrZXRTZXJ2ZXJDb25u
ZWN0aW9uLmNwcCBiL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9JbnNwZWN0b3JTZXJ2ZXIvV2Vi
U29ja2V0U2VydmVyQ29ubmVjdGlvbi5jcHAKaW5kZXggODA5N2FjMWE0Y2MxZTBkZGJmYWRmZjk5
MGMzZTRlNTI3N2JmZTQwNi4uOTRhMjRjOTBjMzg2NmFmNTk3ZWIwZDU5MWYzNjlmNzEwZGY2MDdj
OCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL0luc3BlY3RvclNlcnZlci9X
ZWJTb2NrZXRTZXJ2ZXJDb25uZWN0aW9uLmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nl
c3MvSW5zcGVjdG9yU2VydmVyL1dlYlNvY2tldFNlcnZlckNvbm5lY3Rpb24uY3BwCkBAIC0xMjYs
NyArMTI2LDcgQEAgdm9pZCBXZWJTb2NrZXRTZXJ2ZXJDb25uZWN0aW9uOjpzZW5kUmF3RGF0YShj
b25zdCBjaGFyKiBkYXRhLCBzaXplX3QgbGVuZ3RoKQogdm9pZCBXZWJTb2NrZXRTZXJ2ZXJDb25u
ZWN0aW9uOjpkaWRDbG9zZVNvY2tldFN0cmVhbShTb2NrZXRTdHJlYW1IYW5kbGUqKQogewogICAg
IC8vIERlc3Ryb3kgdGhlIFNvY2tldFN0cmVhbUhhbmRsZSBub3cgdG8gcHJldmVudCBjbG9zaW5n
IGFuIGFscmVhZHkgY2xvc2VkIHNvY2tldCBsYXRlci4KLSAgICBtX3NvY2tldC5jbGVhcigpOwor
ICAgIG1fc29ja2V0ID0gbnVsbHB0cjsKIAogICAgIC8vIFdlYiBTb2NrZXQgTW9kZS4KICAgICBp
ZiAobV9tb2RlID09IFdlYlNvY2tldCkKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL1VJUHJv
Y2Vzcy9OZXR3b3JrL0N1c3RvbVByb3RvY29scy9tYWMvQ3VzdG9tUHJvdG9jb2xNYW5hZ2VyUHJv
eHlNYWMubW0gYi9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvTmV0d29yay9DdXN0b21Qcm90b2Nv
bHMvbWFjL0N1c3RvbVByb3RvY29sTWFuYWdlclByb3h5TWFjLm1tCmluZGV4IDk0MjUyOTlhMmVj
NzNmOGJlMGQxOTlhMTEzYTJkNmJiYThiNjE5NzQuLjUxM2IxZTBjZmY5N2ZiMTZmZTRhYmU5MWVh
OGJmYTRkZGVjMTJiYTQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9OZXR3
b3JrL0N1c3RvbVByb3RvY29scy9tYWMvQ3VzdG9tUHJvdG9jb2xNYW5hZ2VyUHJveHlNYWMubW0K
KysrIGIvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL05ldHdvcmsvQ3VzdG9tUHJvdG9jb2xzL21h
Yy9DdXN0b21Qcm90b2NvbE1hbmFnZXJQcm94eU1hYy5tbQpAQCAtNzYsNyArNzYsNyBAQCAtIChp
ZClpbml0V2l0aEN1c3RvbVByb3RvY29sTWFuYWdlclByb3h5OihDdXN0b21Qcm90b2NvbE1hbmFn
ZXJQcm94eSopY3VzdG9tUHJvdAogCiAtICh2b2lkKWRlYWxsb2MKIHsKLSAgICBfY29ubmVjdGlv
bi5jbGVhcigpOworICAgIF9jb25uZWN0aW9uID0gbnVsbHB0cjsKICAgICBbX3VybENvbm5lY3Rp
b24gY2FuY2VsXTsKICAgICBbX3VybENvbm5lY3Rpb24gcmVsZWFzZV07CiAgICAgW3N1cGVyIGRl
YWxsb2NdOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL1N0YXRpc3RpY3NS
ZXF1ZXN0LmNwcCBiL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9TdGF0aXN0aWNzUmVxdWVzdC5j
cHAKaW5kZXggYzBlYzQ4ZWUzYmI5NjUyZGQ3ODg3ZTg0ZTg0OGYyMjRlMmZiZmIyMC4uODA2ZTEw
ZjAwZmYzZjE0NGYxN2ZiN2IwMjY4ZTExZmFjYTE2ZjE1OSAxMDA2NDQKLS0tIGEvU291cmNlL1dl
YktpdDIvVUlQcm9jZXNzL1N0YXRpc3RpY3NSZXF1ZXN0LmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0
Mi9VSVByb2Nlc3MvU3RhdGlzdGljc1JlcXVlc3QuY3BwCkBAIC05NSw3ICs5NSw3IEBAIHZvaWQg
U3RhdGlzdGljc1JlcXVlc3Q6OmNvbXBsZXRlZFJlcXVlc3QodWludDY0X3QgcmVxdWVzdElELCBj
b25zdCBTdGF0aXN0aWNzRGF0CiAKICAgICBpZiAobV9vdXRzdGFuZGluZ1JlcXVlc3RzLmlzRW1w
dHkoKSkgewogICAgICAgICBtX2NhbGxiYWNrLT5wZXJmb3JtQ2FsbGJhY2tXaXRoUmV0dXJuVmFs
dWUobV9yZXNwb25zZURpY3Rpb25hcnkuZ2V0KCkpOwotICAgICAgICBtX2NhbGxiYWNrID0gMDsK
KyAgICAgICAgbV9jYWxsYmFjayA9IG51bGxwdHI7CiAgICAgfQogfQogCmRpZmYgLS1naXQgYS9T
b3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvV2ViRnJhbWVMaXN0ZW5lclByb3h5LmNwcCBiL1NvdXJj
ZS9XZWJLaXQyL1VJUHJvY2Vzcy9XZWJGcmFtZUxpc3RlbmVyUHJveHkuY3BwCmluZGV4IGU4MDEw
ZTViNjI2OTA1MWIyMzVlMGJjM2EyM2Y3MGRlOTBmNzIzNGYuLjQwNjFkZDUyOTEzNGVkOGQ4ZDI1
ZDY4ZDBjYzljNWU5NmU4Njk2NjAgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vz
cy9XZWJGcmFtZUxpc3RlbmVyUHJveHkuY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vz
cy9XZWJGcmFtZUxpc3RlbmVyUHJveHkuY3BwCkBAIC00Miw3ICs0Miw3IEBAIFdlYkZyYW1lTGlz
dGVuZXJQcm94eTo6fldlYkZyYW1lTGlzdGVuZXJQcm94eSgpCiAKIHZvaWQgV2ViRnJhbWVMaXN0
ZW5lclByb3h5OjppbnZhbGlkYXRlKCkKIHsKLSAgICBtX2ZyYW1lID0gMDsKKyAgICBtX2ZyYW1l
ID0gbnVsbHB0cjsKIH0KIAogdm9pZCBXZWJGcmFtZUxpc3RlbmVyUHJveHk6OnJlY2VpdmVkUG9s
aWN5RGVjaXNpb24oV2ViQ29yZTo6UG9saWN5QWN0aW9uIGFjdGlvbikKQEAgLTUxLDcgKzUxLDcg
QEAgdm9pZCBXZWJGcmFtZUxpc3RlbmVyUHJveHk6OnJlY2VpdmVkUG9saWN5RGVjaXNpb24oV2Vi
Q29yZTo6UG9saWN5QWN0aW9uIGFjdGlvbikKICAgICAgICAgcmV0dXJuOwogCiAgICAgbV9mcmFt
ZS0+cmVjZWl2ZWRQb2xpY3lEZWNpc2lvbihhY3Rpb24sIG1fbGlzdGVuZXJJRCwgbV9uYXZpZ2F0
aW9uLmdldCgpKTsKLSAgICBtX2ZyYW1lID0gMDsKKyAgICBtX2ZyYW1lID0gbnVsbHB0cjsKIH0K
IAogfSAvLyBuYW1lc3BhY2UgV2ViS2l0CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9VSVBy
b2Nlc3MvV2ViRnJhbWVQcm94eS5jcHAgYi9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvV2ViRnJh
bWVQcm94eS5jcHAKaW5kZXggNDFiYjkxYTEzNjFiODg0YTI4ZDE5NGM5MmIxNzYyOGJkNDA2ZDIx
NC4uNjkyOGFmYmM3MDJjNzBiZGYwOTc2M2Q3M2UwNmU2MmNiM2NhMzQyMSAxMDA2NDQKLS0tIGEv
U291cmNlL1dlYktpdDIvVUlQcm9jZXNzL1dlYkZyYW1lUHJveHkuY3BwCisrKyBiL1NvdXJjZS9X
ZWJLaXQyL1VJUHJvY2Vzcy9XZWJGcmFtZVByb3h5LmNwcApAQCAtNTcsMTEgKzU3LDExIEBAIFdl
YkZyYW1lUHJveHk6On5XZWJGcmFtZVByb3h5KCkKIAogdm9pZCBXZWJGcmFtZVByb3h5Ojp3ZWJQ
cm9jZXNzV2lsbFNodXREb3duKCkKIHsKLSAgICBtX3BhZ2UgPSAwOworICAgIG1fcGFnZSA9IG51
bGxwdHI7CiAKICAgICBpZiAobV9hY3RpdmVMaXN0ZW5lcikgewogICAgICAgICBtX2FjdGl2ZUxp
c3RlbmVyLT5pbnZhbGlkYXRlKCk7Ci0gICAgICAgIG1fYWN0aXZlTGlzdGVuZXIgPSAwOworICAg
ICAgICBtX2FjdGl2ZUxpc3RlbmVyID0gbnVsbHB0cjsKICAgICB9CiB9CiAKZGlmZiAtLWdpdCBh
L1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9XZWJPcGVuUGFuZWxSZXN1bHRMaXN0ZW5lclByb3h5
LmNwcCBiL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9XZWJPcGVuUGFuZWxSZXN1bHRMaXN0ZW5l
clByb3h5LmNwcAppbmRleCBkZDY2NjcxMTE4ZDI0OGY4NjIxYzJiOTg4ZWUzOGIxY2ZiMDNmOTYw
Li5hMzc3ZTRhZjA4ZTI5N2YzYzJmYTc0NjA2YzllNTk0OGFlN2Q0MmU4IDEwMDY0NAotLS0gYS9T
b3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvV2ViT3BlblBhbmVsUmVzdWx0TGlzdGVuZXJQcm94eS5j
cHAKKysrIGIvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL1dlYk9wZW5QYW5lbFJlc3VsdExpc3Rl
bmVyUHJveHkuY3BwCkBAIC04OSw3ICs4OSw3IEBAIHZvaWQgV2ViT3BlblBhbmVsUmVzdWx0TGlz
dGVuZXJQcm94eTo6Y2FuY2VsKCkKIAogdm9pZCBXZWJPcGVuUGFuZWxSZXN1bHRMaXN0ZW5lclBy
b3h5OjppbnZhbGlkYXRlKCkKIHsKLSAgICBtX3BhZ2UgPSAwOworICAgIG1fcGFnZSA9IG51bGxw
dHI7CiB9CiAKIH0gLy8gbmFtZXNwYWNlIFdlYktpdApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktp
dDIvVUlQcm9jZXNzL1dlYlBhZ2VQcm94eS5jcHAgYi9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3Mv
V2ViUGFnZVByb3h5LmNwcAppbmRleCBiZDEzYTMzYjE2OTI0Zjc0M2FkNjg2ZTdjOGYyNDYwMDFh
YWUzZDhjLi43OWQyM2UwNTg0ZjI5NDAzNDkwYjY3ZTAwOTFiMGVhZDM3ZmEzNWFmIDEwMDY0NAot
LS0gYS9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvV2ViUGFnZVByb3h5LmNwcAorKysgYi9Tb3Vy
Y2UvV2ViS2l0Mi9VSVByb2Nlc3MvV2ViUGFnZVByb3h5LmNwcApAQCAtMzcwNiw3ICszNzA2LDcg
QEAgdm9pZCBXZWJQYWdlUHJveHk6OnJ1bk9wZW5QYW5lbCh1aW50NjRfdCBmcmFtZUlELCBjb25z
dCBGaWxlQ2hvb3NlclNldHRpbmdzJiBzZXQKIHsKICAgICBpZiAobV9vcGVuUGFuZWxSZXN1bHRM
aXN0ZW5lcikgewogICAgICAgICBtX29wZW5QYW5lbFJlc3VsdExpc3RlbmVyLT5pbnZhbGlkYXRl
KCk7Ci0gICAgICAgIG1fb3BlblBhbmVsUmVzdWx0TGlzdGVuZXIgPSAwOworICAgICAgICBtX29w
ZW5QYW5lbFJlc3VsdExpc3RlbmVyID0gbnVsbHB0cjsKICAgICB9CiAKICAgICBXZWJGcmFtZVBy
b3h5KiBmcmFtZSA9IG1fcHJvY2Vzcy0+d2ViRnJhbWUoZnJhbWVJRCk7CkBAIC0zODA4LDcgKzM4
MDgsNyBAQCB2b2lkIFdlYlBhZ2VQcm94eTo6c2hvd0NvbG9yUGlja2VyKGNvbnN0IFdlYkNvcmU6
OkNvbG9yJiBpbml0aWFsQ29sb3IsIGNvbnN0IEludAogI2lmIEVOQUJMRShJTlBVVF9UWVBFX0NP
TE9SX1BPUE9WRVIpCiAgICAgLy8gQSBuZXcgcG9wb3ZlciBjb2xvciB3ZWxsIG5lZWRzIHRvIGJl
IGNyZWF0ZWQgKGFuZCB0aGUgcHJldmlvdXMgb25lIGRlc3Ryb3llZCkgZm9yCiAgICAgLy8gZWFj
aCBhY3RpdmF0aW9uIG9mIGEgY29sb3IgZWxlbWVudC4KLSAgICBtX2NvbG9yUGlja2VyID0gMDsK
KyAgICBtX2NvbG9yUGlja2VyID0gbnVsbHB0cjsKICNlbmRpZgogICAgIGlmICghbV9jb2xvclBp
Y2tlcikKICAgICAgICAgbV9jb2xvclBpY2tlciA9IG1fcGFnZUNsaWVudC5jcmVhdGVDb2xvclBp
Y2tlcih0aGlzLCBpbml0aWFsQ29sb3IsIGVsZW1lbnRSZWN0KTsKQEAgLTQzMDAsNyArNDMwMCw3
IEBAIHZvaWQgV2ViUGFnZVByb3h5OjpkaWRDaG9vc2VGaWxlc0Zvck9wZW5QYW5lbChjb25zdCBW
ZWN0b3I8U3RyaW5nPiYgZmlsZVVSTHMpCiAgICAgbV9wcm9jZXNzLT5zZW5kKE1lc3NhZ2VzOjpX
ZWJQYWdlOjpEaWRDaG9vc2VGaWxlc0Zvck9wZW5QYW5lbChmaWxlVVJMcyksIG1fcGFnZUlEKTsK
IAogICAgIG1fb3BlblBhbmVsUmVzdWx0TGlzdGVuZXItPmludmFsaWRhdGUoKTsKLSAgICBtX29w
ZW5QYW5lbFJlc3VsdExpc3RlbmVyID0gMDsKKyAgICBtX29wZW5QYW5lbFJlc3VsdExpc3RlbmVy
ID0gbnVsbHB0cjsKIH0KIAogdm9pZCBXZWJQYWdlUHJveHk6OmRpZENhbmNlbEZvck9wZW5QYW5l
bCgpCkBAIC00MzExLDcgKzQzMTEsNyBAQCB2b2lkIFdlYlBhZ2VQcm94eTo6ZGlkQ2FuY2VsRm9y
T3BlblBhbmVsKCkKICAgICBtX3Byb2Nlc3MtPnNlbmQoTWVzc2FnZXM6OldlYlBhZ2U6OkRpZENh
bmNlbEZvck9wZW5QYW5lbCgpLCBtX3BhZ2VJRCk7CiAgICAgCiAgICAgbV9vcGVuUGFuZWxSZXN1
bHRMaXN0ZW5lci0+aW52YWxpZGF0ZSgpOwotICAgIG1fb3BlblBhbmVsUmVzdWx0TGlzdGVuZXIg
PSAwOworICAgIG1fb3BlblBhbmVsUmVzdWx0TGlzdGVuZXIgPSBudWxscHRyOwogfQogCiB2b2lk
IFdlYlBhZ2VQcm94eTo6YWR2YW5jZVRvTmV4dE1pc3NwZWxsaW5nKGJvb2wgc3RhcnRCZWZvcmVT
ZWxlY3Rpb24pCkBAIC00NzY3LDcgKzQ3NjcsNyBAQCB2b2lkIFdlYlBhZ2VQcm94eTo6cHJpbnRG
aW5pc2hlZENhbGxiYWNrKGNvbnN0IFJlc291cmNlRXJyb3ImIHByaW50RXJyb3IsIHVpbnQ2NAog
dm9pZCBXZWJQYWdlUHJveHk6OmZvY3VzZWRGcmFtZUNoYW5nZWQodWludDY0X3QgZnJhbWVJRCkK
IHsKICAgICBpZiAoIWZyYW1lSUQpIHsKLSAgICAgICAgbV9mb2N1c2VkRnJhbWUgPSAwOworICAg
ICAgICBtX2ZvY3VzZWRGcmFtZSA9IG51bGxwdHI7CiAgICAgICAgIHJldHVybjsKICAgICB9CiAK
QEAgLTQ3ODAsNyArNDc4MCw3IEBAIHZvaWQgV2ViUGFnZVByb3h5Ojpmb2N1c2VkRnJhbWVDaGFu
Z2VkKHVpbnQ2NF90IGZyYW1lSUQpCiB2b2lkIFdlYlBhZ2VQcm94eTo6ZnJhbWVTZXRMYXJnZXN0
RnJhbWVDaGFuZ2VkKHVpbnQ2NF90IGZyYW1lSUQpCiB7CiAgICAgaWYgKCFmcmFtZUlEKSB7Ci0g
ICAgICAgIG1fZnJhbWVTZXRMYXJnZXN0RnJhbWUgPSAwOworICAgICAgICBtX2ZyYW1lU2V0TGFy
Z2VzdEZyYW1lID0gbnVsbHB0cjsKICAgICAgICAgcmV0dXJuOwogICAgIH0KIApkaWZmIC0tZ2l0
IGEvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL2lvcy9XS0dlb2xvY2F0aW9uUHJvdmlkZXJJT1Mu
bW0gYi9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvaW9zL1dLR2VvbG9jYXRpb25Qcm92aWRlcklP
Uy5tbQppbmRleCBiYjZiYjYwNTRmN2Y4NmI5YzYzZDY4NWU2NWVmNzlmOTIxYTNhYjFlLi5iZGQx
MTRhMjQ0OGRmYWFhOTcxOTFhNjI1ZDdjYTFiYjI2Nzc2MDI5IDEwMDY0NAotLS0gYS9Tb3VyY2Uv
V2ViS2l0Mi9VSVByb2Nlc3MvaW9zL1dLR2VvbG9jYXRpb25Qcm92aWRlcklPUy5tbQorKysgYi9T
b3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvaW9zL1dLR2VvbG9jYXRpb25Qcm92aWRlcklPUy5tbQpA
QCAtMTE4LDcgKzExOCw3IEBAIC0odm9pZClfc3RvcFVwZGF0aW5nCiB7CiAgICAgX2lzV2ViQ29y
ZUdlb2xvY2F0aW9uQWN0aXZlID0gTk87CiAgICAgW19jb3JlTG9jYXRpb25Qcm92aWRlciBzdG9w
XTsKLSAgICBfbGFzdEFjdGl2ZVBvc2l0aW9uLmNsZWFyKCk7CisgICAgX2xhc3RBY3RpdmVQb3Np
dGlvbiA9IG51bGxwdHI7CiB9CiAKIC0odm9pZClfc2V0RW5hYmxlSGlnaEFjY3VyYWN5OihCT09M
KWVuYWJsZUhpZ2hBY2N1cmFjeQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdDIvV2ViUHJvY2Vz
cy9JbmplY3RlZEJ1bmRsZS9tYWMvSW5qZWN0ZWRCdW5kbGVNYWMubW0gYi9Tb3VyY2UvV2ViS2l0
Mi9XZWJQcm9jZXNzL0luamVjdGVkQnVuZGxlL21hYy9JbmplY3RlZEJ1bmRsZU1hYy5tbQppbmRl
eCA0ZTg2YWYxOWQ1YzlhY2UxNjJkNDBlMjZkMDA0Mjc5MGVkMWM0OGEyLi4yODU3NWVmNzQ5YjJk
ZGIzZDkwZmUyOTRkYmEzNzEyZTU1NGU4OGQ5IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0Mi9X
ZWJQcm9jZXNzL0luamVjdGVkQnVuZGxlL21hYy9JbmplY3RlZEJ1bmRsZU1hYy5tbQorKysgYi9T
b3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL0luamVjdGVkQnVuZGxlL21hYy9JbmplY3RlZEJ1bmRs
ZU1hYy5tbQpAQCAtNTUsNyArNTUsNyBAQCBib29sIEluamVjdGVkQnVuZGxlOjppbml0aWFsaXpl
KGNvbnN0IFdlYlByb2Nlc3NDcmVhdGlvblBhcmFtZXRlcnMmIHBhcmFtZXRlcnMsCiAgICAgICAg
ICAgICByZXR1cm4gZmFsc2U7CiAgICAgICAgIH0KIAotICAgICAgICBtX3NhbmRib3hFeHRlbnNp
b24gPSAwOworICAgICAgICBtX3NhbmRib3hFeHRlbnNpb24gPSBudWxscHRyOwogICAgIH0KICAg
ICAKICAgICBSZXRhaW5QdHI8Q0ZTdHJpbmdSZWY+IGluamVjdGVkQnVuZGxlUGF0aFN0ciA9IG1f
cGF0aC5jcmVhdGVDRlN0cmluZygpOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdDIvV2ViUHJv
Y2Vzcy9OZXR3b3JrL1dlYlJlc291cmNlTG9hZGVyLmNwcCBiL1NvdXJjZS9XZWJLaXQyL1dlYlBy
b2Nlc3MvTmV0d29yay9XZWJSZXNvdXJjZUxvYWRlci5jcHAKaW5kZXggODNkNmNhOGFhYWZmNjI1
ODMyZTM4MjAwMWNmNmIwMDgwNjJkNjQ5ZS4uMjUzOTdjM2JjOGU2NzFjYmQ1NTAyMGUzY2Q2OTcz
YzZiYTBhMjllNyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9OZXR3b3Jr
L1dlYlJlc291cmNlTG9hZGVyLmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL05l
dHdvcmsvV2ViUmVzb3VyY2VMb2FkZXIuY3BwCkBAIC03Niw3ICs3Niw3IEBAIHZvaWQgV2ViUmVz
b3VyY2VMb2FkZXI6OmNhbmNlbFJlc291cmNlTG9hZGVyKCkKIAogdm9pZCBXZWJSZXNvdXJjZUxv
YWRlcjo6ZGV0YWNoRnJvbUNvcmVMb2FkZXIoKQogewotICAgIG1fY29yZUxvYWRlciA9IDA7Cisg
ICAgbV9jb3JlTG9hZGVyID0gbnVsbHB0cjsKIH0KIAogdm9pZCBXZWJSZXNvdXJjZUxvYWRlcjo6
d2lsbFNlbmRSZXF1ZXN0KGNvbnN0IFJlc291cmNlUmVxdWVzdCYgcHJvcG9zZWRSZXF1ZXN0LCBj
b25zdCBSZXNvdXJjZVJlc3BvbnNlJiByZWRpcmVjdFJlc3BvbnNlKQpkaWZmIC0tZ2l0IGEvU291
cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9QbHVnaW5zL05ldHNjYXBlL05ldHNjYXBlUGx1Z2luLmNw
cCBiL1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvUGx1Z2lucy9OZXRzY2FwZS9OZXRzY2FwZVBs
dWdpbi5jcHAKaW5kZXggMGE3Yjc0ZGU1YzVjNjYyYmQ3ZDExODRjNDYzZmM5NjI2YWI0MWVjZC4u
YTM2ZTRiNDEzNDVkZWIwMTM1MGEyNDkwZTcwNTgwOGY5NTM0OTA2NyAxMDA2NDQKLS0tIGEvU291
cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9QbHVnaW5zL05ldHNjYXBlL05ldHNjYXBlUGx1Z2luLmNw
cAorKysgYi9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL1BsdWdpbnMvTmV0c2NhcGUvTmV0c2Nh
cGVQbHVnaW4uY3BwCkBAIC0yNzcsNyArMjc3LDcgQEAgdm9pZCBOZXRzY2FwZVBsdWdpbjo6Y2Fu
Y2VsU3RyZWFtTG9hZChOZXRzY2FwZVBsdWdpblN0cmVhbSogcGx1Z2luU3RyZWFtKQogdm9pZCBO
ZXRzY2FwZVBsdWdpbjo6cmVtb3ZlUGx1Z2luU3RyZWFtKE5ldHNjYXBlUGx1Z2luU3RyZWFtKiBw
bHVnaW5TdHJlYW0pCiB7CiAgICAgaWYgKHBsdWdpblN0cmVhbSA9PSBtX21hbnVhbFN0cmVhbSkg
ewotICAgICAgICBtX21hbnVhbFN0cmVhbSA9IDA7CisgICAgICAgIG1fbWFudWFsU3RyZWFtID0g
bnVsbHB0cjsKICAgICAgICAgcmV0dXJuOwogICAgIH0KIApkaWZmIC0tZ2l0IGEvU291cmNlL1dl
YktpdDIvV2ViUHJvY2Vzcy9QbHVnaW5zL1BERi9QREZQbHVnaW4ubW0gYi9Tb3VyY2UvV2ViS2l0
Mi9XZWJQcm9jZXNzL1BsdWdpbnMvUERGL1BERlBsdWdpbi5tbQppbmRleCBkY2NjNTQxMDVmYmE4
NzE5ZTVmYzM4ZGY0YzUwMmRkZDI3MjllZWNkLi40NzA2MWQ2ZDYxNGQyNjFkNzMzOWY1NzBmZTZi
NTgwMDA5NmYzZTk0IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL1BsdWdp
bnMvUERGL1BERlBsdWdpbi5tbQorKysgYi9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL1BsdWdp
bnMvUERGL1BERlBsdWdpbi5tbQpAQCAtMTEwMyw4ICsxMTAzLDggQEAgdm9pZCBQREZQbHVnaW46
OmRlc3Ryb3koKQogICAgICAgICAgICAgZnJhbWVWaWV3LT5yZW1vdmVTY3JvbGxhYmxlQXJlYSh0
aGlzKTsKICAgICB9CiAKLSAgICBtX2FjdGl2ZUFubm90YXRpb24gPSAwOwotICAgIG1fYW5ub3Rh
dGlvbkNvbnRhaW5lciA9IDA7CisgICAgbV9hY3RpdmVBbm5vdGF0aW9uID0gbnVsbHB0cjsKKyAg
ICBtX2Fubm90YXRpb25Db250YWluZXIgPSBudWxscHRyOwogCiAgICAgZGVzdHJveVNjcm9sbGJh
cihIb3Jpem9udGFsU2Nyb2xsYmFyKTsKICAgICBkZXN0cm95U2Nyb2xsYmFyKFZlcnRpY2FsU2Ny
b2xsYmFyKTsKQEAgLTE2MDQsMTQgKzE2MDQsMTQgQEAgdm9pZCBQREZQbHVnaW46OnNldEFjdGl2
ZUFubm90YXRpb24oUERGQW5ub3RhdGlvbiAqYW5ub3RhdGlvbikKIAogICAgIGlmIChhbm5vdGF0
aW9uKSB7CiAgICAgICAgIGlmIChbYW5ub3RhdGlvbiBpc0tpbmRPZkNsYXNzOnBkZkFubm90YXRp
b25UZXh0V2lkZ2V0Q2xhc3MoKV0gJiYgc3RhdGljX2Nhc3Q8UERGQW5ub3RhdGlvblRleHRXaWRn
ZXQgKj4oYW5ub3RhdGlvbikuaXNSZWFkT25seSkgewotICAgICAgICAgICAgbV9hY3RpdmVBbm5v
dGF0aW9uID0gMDsKKyAgICAgICAgICAgIG1fYWN0aXZlQW5ub3RhdGlvbiA9IG51bGxwdHI7CiAg
ICAgICAgICAgICByZXR1cm47CiAgICAgICAgIH0KIAogICAgICAgICBtX2FjdGl2ZUFubm90YXRp
b24gPSBQREZQbHVnaW5Bbm5vdGF0aW9uOjpjcmVhdGUoYW5ub3RhdGlvbiwgbV9wZGZMYXllckNv
bnRyb2xsZXIuZ2V0KCksIHRoaXMpOwogICAgICAgICBtX2FjdGl2ZUFubm90YXRpb24tPmF0dGFj
aChtX2Fubm90YXRpb25Db250YWluZXIuZ2V0KCkpOwogICAgIH0gZWxzZQotICAgICAgICBtX2Fj
dGl2ZUFubm90YXRpb24gPSAwOworICAgICAgICBtX2FjdGl2ZUFubm90YXRpb24gPSBudWxscHRy
OwogfQogCiBib29sIFBERlBsdWdpbjo6c3VwcG9ydHNGb3JtcygpCmRpZmYgLS1naXQgYS9Tb3Vy
Y2UvV2ViS2l0Mi9XZWJQcm9jZXNzL1BsdWdpbnMvUGx1Z2luVmlldy5jcHAgYi9Tb3VyY2UvV2Vi
S2l0Mi9XZWJQcm9jZXNzL1BsdWdpbnMvUGx1Z2luVmlldy5jcHAKaW5kZXggNmE4MzNmMTMxMTEz
NTMwNzZhY2FlMTI4MTQzM2IyZjUxMTliYjI0Ni4uMmEwZmQ5NzMxMzBiMjEyNjc4YjA1NTRjN2Q4
YmViNTVjNjg1OTY4ZCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9QbHVn
aW5zL1BsdWdpblZpZXcuY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvUGx1Z2lu
cy9QbHVnaW5WaWV3LmNwcApAQCAtMTY2LDcgKzE2Niw3IEBAIHZvaWQgUGx1Z2luVmlldzo6U3Ry
ZWFtOjpjYW5jZWwoKQogCiAgICAgbV9zdHJlYW1XYXNDYW5jZWxsZWQgPSB0cnVlOwogICAgIG1f
bG9hZGVyLT5jYW5jZWwobV9sb2FkZXItPmNhbmNlbGxlZEVycm9yKCkpOwotICAgIG1fbG9hZGVy
ID0gMDsKKyAgICBtX2xvYWRlciA9IG51bGxwdHI7CiB9CiAKIHN0YXRpYyBTdHJpbmcgYnVpbGRI
VFRQSGVhZGVycyhjb25zdCBSZXNvdXJjZVJlc3BvbnNlJiByZXNwb25zZSwgbG9uZyBsb25nJiBl
eHBlY3RlZENvbnRlbnRMZW5ndGgpCkBAIC02MDQsNyArNjA0LDcgQEAgdm9pZCBQbHVnaW5WaWV3
Ojppbml0aWFsaXplUGx1Z2luKCkKIAogdm9pZCBQbHVnaW5WaWV3OjpkaWRGYWlsVG9Jbml0aWFs
aXplUGx1Z2luKCkKIHsKLSAgICBtX3BsdWdpbiA9IDA7CisgICAgbV9wbHVnaW4gPSBudWxscHRy
OwogCiAjaWYgRU5BQkxFKE5FVFNDQVBFX1BMVUdJTl9BUEkpCiAgICAgU3RyaW5nIGZyYW1lVVJM
U3RyaW5nID0gZnJhbWUoKS0+bG9hZGVyKCkuZG9jdW1lbnRMb2FkZXIoKS0+cmVzcG9uc2VVUkwo
KS5zdHJpbmcoKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvV2ViUGFn
ZS9XZWJQYWdlLmNwcCBiL1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvV2ViUGFnZS9XZWJQYWdl
LmNwcAppbmRleCAxNTU0ZGJjZjc0OTZjNzZkOTcyMDMzYjhkMzkxMzY0YWI2ZmUxZWI4Li43Yjhh
OTI2MDA3ZGQxODA3ODg1ZGEyODExNmM4MmI5OGIzMTgzMjY0IDEwMDY0NAotLS0gYS9Tb3VyY2Uv
V2ViS2l0Mi9XZWJQcm9jZXNzL1dlYlBhZ2UvV2ViUGFnZS5jcHAKKysrIGIvU291cmNlL1dlYktp
dDIvV2ViUHJvY2Vzcy9XZWJQYWdlL1dlYlBhZ2UuY3BwCkBAIC05MzAsMjMgKzkzMCwyMyBAQCB2
b2lkIFdlYlBhZ2U6OmNsb3NlKCkKICAgICB9CiAKICNpZiBFTkFCTEUoRlVMTFNDUkVFTl9BUEkp
Ci0gICAgbV9mdWxsU2NyZWVuTWFuYWdlciA9IDA7CisgICAgbV9mdWxsU2NyZWVuTWFuYWdlciA9
IG51bGxwdHI7CiAjZW5kaWYKIAogICAgIGlmIChtX2FjdGl2ZVBvcHVwTWVudSkgewogICAgICAg
ICBtX2FjdGl2ZVBvcHVwTWVudS0+ZGlzY29ubmVjdEZyb21QYWdlKCk7Ci0gICAgICAgIG1fYWN0
aXZlUG9wdXBNZW51ID0gMDsKKyAgICAgICAgbV9hY3RpdmVQb3B1cE1lbnUgPSBudWxscHRyOwog
ICAgIH0KIAogICAgIGlmIChtX2FjdGl2ZU9wZW5QYW5lbFJlc3VsdExpc3RlbmVyKSB7CiAgICAg
ICAgIG1fYWN0aXZlT3BlblBhbmVsUmVzdWx0TGlzdGVuZXItPmRpc2Nvbm5lY3RGcm9tUGFnZSgp
OwotICAgICAgICBtX2FjdGl2ZU9wZW5QYW5lbFJlc3VsdExpc3RlbmVyID0gMDsKKyAgICAgICAg
bV9hY3RpdmVPcGVuUGFuZWxSZXN1bHRMaXN0ZW5lciA9IG51bGxwdHI7CiAgICAgfQogCiAjaWYg
RU5BQkxFKElOUFVUX1RZUEVfQ09MT1IpCiAgICAgaWYgKG1fYWN0aXZlQ29sb3JDaG9vc2VyKSB7
CiAgICAgICAgIG1fYWN0aXZlQ29sb3JDaG9vc2VyLT5kaXNjb25uZWN0RnJvbVBhZ2UoKTsKLSAg
ICAgICAgbV9hY3RpdmVDb2xvckNob29zZXIgPSAwOworICAgICAgICBtX2FjdGl2ZUNvbG9yQ2hv
b3NlciA9IG51bGxwdHI7CiAgICAgfQogI2VuZGlmCiAKQEAgLTMyNzAsNyArMzI3MCw3IEBAIHZv
aWQgV2ViUGFnZTo6Y291bnRTdHJpbmdNYXRjaGVzKGNvbnN0IFN0cmluZyYgc3RyaW5nLCB1aW50
MzJfdCBvcHRpb25zLCB1aW50MzJfCiB2b2lkIFdlYlBhZ2U6OmRpZENoYW5nZVNlbGVjdGVkSW5k
ZXhGb3JBY3RpdmVQb3B1cE1lbnUoaW50MzJfdCBuZXdJbmRleCkKIHsKICAgICBjaGFuZ2VTZWxl
Y3RlZEluZGV4KG5ld0luZGV4KTsKLSAgICBtX2FjdGl2ZVBvcHVwTWVudSA9IDA7CisgICAgbV9h
Y3RpdmVQb3B1cE1lbnUgPSBudWxscHRyOwogfQogCiB2b2lkIFdlYlBhZ2U6OmNoYW5nZVNlbGVj
dGVkSW5kZXgoaW50MzJfdCBpbmRleCkKQEAgLTMzMDYsMTIgKzMzMDYsMTIgQEAgdm9pZCBXZWJQ
YWdlOjpkaWRDaG9vc2VGaWxlc0Zvck9wZW5QYW5lbChjb25zdCBWZWN0b3I8U3RyaW5nPiYgZmls
ZXMpCiAgICAgICAgIHJldHVybjsKIAogICAgIG1fYWN0aXZlT3BlblBhbmVsUmVzdWx0TGlzdGVu
ZXItPmRpZENob29zZUZpbGVzKGZpbGVzKTsKLSAgICBtX2FjdGl2ZU9wZW5QYW5lbFJlc3VsdExp
c3RlbmVyID0gMDsKKyAgICBtX2FjdGl2ZU9wZW5QYW5lbFJlc3VsdExpc3RlbmVyID0gbnVsbHB0
cjsKIH0KIAogdm9pZCBXZWJQYWdlOjpkaWRDYW5jZWxGb3JPcGVuUGFuZWwoKQogewotICAgIG1f
YWN0aXZlT3BlblBhbmVsUmVzdWx0TGlzdGVuZXIgPSAwOworICAgIG1fYWN0aXZlT3BlblBhbmVs
UmVzdWx0TGlzdGVuZXIgPSBudWxscHRyOwogfQogCiAjaWYgRU5BQkxFKFNBTkRCT1hfRVhURU5T
SU9OUykKQEAgLTM0MTUsNyArMzQxNSw3IEBAIHZvaWQgV2ViUGFnZTo6ZGlkU2VsZWN0SXRlbUZy
b21BY3RpdmVDb250ZXh0TWVudShjb25zdCBXZWJDb250ZXh0TWVudUl0ZW1EYXRhJiBpCiAgICAg
ICAgIHJldHVybjsKIAogICAgIG1fY29udGV4dE1lbnUtPml0ZW1TZWxlY3RlZChpdGVtKTsKLSAg
ICBtX2NvbnRleHRNZW51ID0gMDsKKyAgICBtX2NvbnRleHRNZW51ID0gbnVsbHB0cjsKIH0KICNl
bmRpZgogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL1dlYlBhZ2UvZ3Rr
L1dlYlByaW50T3BlcmF0aW9uR3RrLmNwcCBiL1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvV2Vi
UGFnZS9ndGsvV2ViUHJpbnRPcGVyYXRpb25HdGsuY3BwCmluZGV4IDU1ZWNkYjJiNDZlNjNhYmM4
ZGYxYTEyYTgxMWQ1YTc1NWI3M2EwOGEuLmI2MjA1ZGI5NDk1MDEzZTRhOGUyMjFjZDZiZmI2ZDg0
OTgzODMwMTIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvV2ViUGFnZS9n
dGsvV2ViUHJpbnRPcGVyYXRpb25HdGsuY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nl
c3MvV2ViUGFnZS9ndGsvV2ViUHJpbnRPcGVyYXRpb25HdGsuY3BwCkBAIC02OTksNyArNjk5LDcg
QEAgdm9pZCBXZWJQcmludE9wZXJhdGlvbkd0azo6cHJpbnRQYWdlc0RvbmUoKQogewogICAgIG1f
cHJpbnRQYWdlc0lkbGVJZCA9IDA7CiAgICAgZW5kUHJpbnQoKTsKLSAgICBtX2NhaXJvQ29udGV4
dCA9IDA7CisgICAgbV9jYWlyb0NvbnRleHQgPSBudWxscHRyOwogfQogCiB2b2lkIFdlYlByaW50
T3BlcmF0aW9uR3RrOjpwcmludERvbmUoY29uc3QgV2ViQ29yZTo6UmVzb3VyY2VFcnJvciYgZXJy
b3IpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL1dlYlBhZ2UvaW9zL1dl
YlBhZ2VJT1MubW0gYi9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL1dlYlBhZ2UvaW9zL1dlYlBh
Z2VJT1MubW0KaW5kZXggMjNkZTgzZWZhZDY4OTQ2MjQ3NTYwZjgxMWQwODhjZDI5NzUyYTZhNy4u
OWY0Y2VjNzIzMWRkNDYyNzE1NjNkNTJiNmE0ZTJiOWQzMjc4ODdjNiAxMDA2NDQKLS0tIGEvU291
cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9XZWJQYWdlL2lvcy9XZWJQYWdlSU9TLm1tCisrKyBiL1Nv
dXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvV2ViUGFnZS9pb3MvV2ViUGFnZUlPUy5tbQpAQCAtMTk3
OCw3ICsxOTc4LDcgQEAgdm9pZCBXZWJQYWdlOjpzeW5jQXBwbHlBdXRvY29ycmVjdGlvbihjb25z
dCBTdHJpbmcmIGNvcnJlY3Rpb24sIGNvbnN0IFN0cmluZyYgb3IKICAgICAgICAgd2hpbGUgKHRl
eHRGb3JSYW5nZS5sZW5ndGgoKSAmJiB0ZXh0Rm9yUmFuZ2UubGVuZ3RoKCkgPiBvcmlnaW5hbFRl
eHQubGVuZ3RoKCkgJiYgbG9vcENvdW50IDwgbWF4UG9zaXRpb25zQXR0ZW1wdHMpIHsKICAgICAg
ICAgICAgIHBvc2l0aW9uID0gcG9zaXRpb24ubmV4dCgpOwogICAgICAgICAgICAgaWYgKHBvc2l0
aW9uLmlzTm90TnVsbCgpICYmIHBvc2l0aW9uID49IGZyYW1lLnNlbGVjdGlvbigpLnNlbGVjdGlv
bigpLnN0YXJ0KCkpCi0gICAgICAgICAgICAgICAgcmFuZ2UgPSBOVUxMOworICAgICAgICAgICAg
ICAgIHJhbmdlID0gbnVsbHB0cjsKICAgICAgICAgICAgIGVsc2UKICAgICAgICAgICAgICAgICBy
YW5nZSA9IFJhbmdlOjpjcmVhdGUoKmZyYW1lLmRvY3VtZW50KCksIHBvc2l0aW9uLCBmcmFtZS5z
ZWxlY3Rpb24oKS5zZWxlY3Rpb24oKS5zdGFydCgpKTsKICAgICAgICAgICAgIHRleHRGb3JSYW5n
ZSA9IChyYW5nZSkgPyBwbGFpblRleHRSZXBsYWNpbmdOb0JyZWFrU3BhY2UocmFuZ2UuZ2V0KCkp
IDogZW1wdHlTdHJpbmcoKTsKQEAgLTI0NTgsNyArMjQ1OCw3IEBAIHZvaWQgV2ViUGFnZTo6ZWxl
bWVudERpZEJsdXIoV2ViQ29yZTo6Tm9kZSogbm9kZSkKICAgICAgICAgICAgICAgICBzZW5kKE1l
c3NhZ2VzOjpXZWJQYWdlUHJveHk6OlN0b3BBc3Npc3RpbmdOb2RlKCkpOwogICAgICAgICAgICAg
bV9oYXNQZW5kaW5nQmx1ck5vdGlmaWNhdGlvbiA9IGZhbHNlOwogICAgICAgICB9KTsKLSAgICAg
ICAgbV9hc3Npc3RlZE5vZGUgPSAwOworICAgICAgICBtX2Fzc2lzdGVkTm9kZSA9IG51bGxwdHI7
CiAgICAgfQogfQogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL1dlYlBy
b2Nlc3MuY3BwIGIvU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9XZWJQcm9jZXNzLmNwcAppbmRl
eCBhOTdiYzIxYTk4MTU0OWFjY2Q3ZmVkZmIyODMzYWVjODRlZWRkMDdhLi5iNGM5ZTBlZTg4MWZl
NzMxMDVkMzVlMWYxMDI0NDUxYTNhMmI5MGVhIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0Mi9X
ZWJQcm9jZXNzL1dlYlByb2Nlc3MuY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3Mv
V2ViUHJvY2Vzcy5jcHAKQEAgLTEwMzQsNyArMTAzNCw3IEBAIHZvaWQgV2ViUHJvY2Vzczo6bmV0
d29ya1Byb2Nlc3NDb25uZWN0aW9uQ2xvc2VkKE5ldHdvcmtQcm9jZXNzQ29ubmVjdGlvbiogY29u
bmVjCiAgICAgQVNTRVJUKG1fbmV0d29ya1Byb2Nlc3NDb25uZWN0aW9uKTsKICAgICBBU1NFUlRf
VU5VU0VEKGNvbm5lY3Rpb24sIG1fbmV0d29ya1Byb2Nlc3NDb25uZWN0aW9uID09IGNvbm5lY3Rp
b24pOwogCi0gICAgbV9uZXR3b3JrUHJvY2Vzc0Nvbm5lY3Rpb24gPSAwOworICAgIG1fbmV0d29y
a1Byb2Nlc3NDb25uZWN0aW9uID0gbnVsbHB0cjsKICAgICAKICAgICBtX3dlYlJlc291cmNlTG9h
ZFNjaGVkdWxlci0+bmV0d29ya1Byb2Nlc3NDcmFzaGVkKCk7CiB9CkBAIC0xMDUxLDcgKzEwNTEs
NyBAQCB2b2lkIFdlYlByb2Nlc3M6OndlYlRvRGF0YWJhc2VQcm9jZXNzQ29ubmVjdGlvbkNsb3Nl
ZChXZWJUb0RhdGFiYXNlUHJvY2Vzc0Nvbm5lYwogICAgIEFTU0VSVChtX3dlYlRvRGF0YWJhc2VQ
cm9jZXNzQ29ubmVjdGlvbik7CiAgICAgQVNTRVJUKG1fd2ViVG9EYXRhYmFzZVByb2Nlc3NDb25u
ZWN0aW9uID09IGNvbm5lY3Rpb24pOwogCi0gICAgbV93ZWJUb0RhdGFiYXNlUHJvY2Vzc0Nvbm5l
Y3Rpb24gPSAwOworICAgIG1fd2ViVG9EYXRhYmFzZVByb2Nlc3NDb25uZWN0aW9uID0gbnVsbHB0
cjsKIH0KIAogV2ViVG9EYXRhYmFzZVByb2Nlc3NDb25uZWN0aW9uKiBXZWJQcm9jZXNzOjp3ZWJU
b0RhdGFiYXNlUHJvY2Vzc0Nvbm5lY3Rpb24oKQpkaWZmIC0tZ2l0IGEvVG9vbHMvQ2hhbmdlTG9n
IGIvVG9vbHMvQ2hhbmdlTG9nCmluZGV4IDk4NzYwY2NmNWE0MTk3NGIwOGM4MjA5OGU1NGQyODg4
YWY0NzE3YTguLjY5ZWVmY2Y4ODNmZDMxOGM2MTE3ZGVlMGZhZjBlYWM3YjM2NmQzZjEgMTAwNjQ0
Ci0tLSBhL1Rvb2xzL0NoYW5nZUxvZworKysgYi9Ub29scy9DaGFuZ2VMb2cKQEAgLTEsMyArMSwx
MiBAQAorMjAxNS0wNy0wMyAgQ2hyaXMgRHVtZXogIDxjZHVtZXpAYXBwbGUuY29tPgorCisgICAg
ICAgIERyb3AgUmVmUHRyOjpjbGVhcigpIG1ldGhvZAorICAgICAgICBodHRwczovL2J1Z3Mud2Vi
a2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTQ2NTU2CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9C
T0RZIChPT1BTISkuCisKKyAgICAgICAgRHJvcCBSZWZQdHI6OmNsZWFyKCkgbWV0aG9kIGluIGZh
dm9yIG9mICI9IG51bGxwdHI7IiBwYXR0ZXJuLgorCiAyMDE1LTA3LTAzICBEYW4gQmVybnN0ZWlu
ICA8bWl0ekBhcHBsZS5jb20+CiAKICAgICAgICAgW1hjb2RlXSBVcGRhdGUgc29tZSBidWlsZCBz
ZXR0aW5ncyBhcyByZWNvbW1lbmRlZCBieSBYY29kZSA3CmRpZmYgLS1naXQgYS9Ub29scy9EdW1w
UmVuZGVyVHJlZS9tYWMvRHVtcFJlbmRlclRyZWUubW0gYi9Ub29scy9EdW1wUmVuZGVyVHJlZS9t
YWMvRHVtcFJlbmRlclRyZWUubW0KaW5kZXggYmNjZDRhOTExMmU2NzJjMWNjMmIyZDkzMGZmMGEz
ZWUwM2IwM2UwNi4uMjc2ZGY4Yjg5MmVjNTI3YTc0NmJmM2ZhNmRkYzY0ZWFkMzc3N2MxNSAxMDA2
NDQKLS0tIGEvVG9vbHMvRHVtcFJlbmRlclRyZWUvbWFjL0R1bXBSZW5kZXJUcmVlLm1tCisrKyBi
L1Rvb2xzL0R1bXBSZW5kZXJUcmVlL21hYy9EdW1wUmVuZGVyVHJlZS5tbQpAQCAtMjA2NCw3ICsy
MDY0LDcgQEAgc3RhdGljIHZvaWQgcnVuVGVzdChjb25zdCBzdHJpbmcmIGlucHV0TGluZSkKICAg
ICBBU1NFUlQoQ0ZBcnJheUdldENvdW50KG9wZW5XaW5kb3dzUmVmKSA9PSAxKTsKICAgICBBU1NF
UlQoQ0ZBcnJheUdldFZhbHVlQXRJbmRleChvcGVuV2luZG93c1JlZiwgMCkgPT0gW1ttYWluRnJh
bWUgd2ViVmlld10gd2luZG93XSk7CiAKLSAgICBnVGVzdFJ1bm5lci5jbGVhcigpOworICAgIGdU
ZXN0UnVubmVyID0gbnVsbHB0cjsKIAogICAgIGlmIChpZ25vcmVXZWJDb3JlTm9kZUxlYWtzKQog
ICAgICAgICBbV2ViQ29yZVN0YXRpc3RpY3Mgc3RvcElnbm9yaW5nV2ViQ29yZU5vZGVMZWFrc107
CmRpZmYgLS1naXQgYS9Ub29scy9EdW1wUmVuZGVyVHJlZS93aW4vRHVtcFJlbmRlclRyZWUuY3Bw
IGIvVG9vbHMvRHVtcFJlbmRlclRyZWUvd2luL0R1bXBSZW5kZXJUcmVlLmNwcAppbmRleCBkOTg2
Y2JmZDM3MzQwMjQ2NmY0MGI4ZTY1YTQwNDY5YmVjZTBhOGRjLi5jODQzNTQ3MjNjYmE5NWY0YTE1
YTQxNjA3NjMyOTNiZDY3NjY4ZjI5IDEwMDY0NAotLS0gYS9Ub29scy9EdW1wUmVuZGVyVHJlZS93
aW4vRHVtcFJlbmRlclRyZWUuY3BwCisrKyBiL1Rvb2xzL0R1bXBSZW5kZXJUcmVlL3dpbi9EdW1w
UmVuZGVyVHJlZS5jcHAKQEAgLTExODMsNyArMTE4Myw3IEBAIHN0YXRpYyB2b2lkIHJ1blRlc3Qo
Y29uc3Qgc3RyaW5nJiBpbnB1dExpbmUpCiAKIGV4aXQ6CiAgICAgcmVtb3ZlRm9udEZhbGxiYWNr
SWZQcmVzZW50KGZhbGxiYWNrUGF0aCk7Ci0gICAgOjpnVGVzdFJ1bm5lci5jbGVhcigpOworICAg
IDo6Z1Rlc3RSdW5uZXIgPSBudWxscHRyOwogCiAgICAgZnB1dHMoIiNFT0ZcbiIsIHN0ZGVycik7
CiAgICAgZmZsdXNoKHN0ZGVycik7CmRpZmYgLS1naXQgYS9Ub29scy9UZXN0V2ViS2l0QVBJL1Rl
c3RzL1dURi9SZWZQdHIuY3BwIGIvVG9vbHMvVGVzdFdlYktpdEFQSS9UZXN0cy9XVEYvUmVmUHRy
LmNwcAppbmRleCBmYzkyMjQ2NzI3ODQ2NDFkMWQzNzQ5YzIwNzllMTViYmQzZTg3MjZjLi5iNzI2
ZDdkZGYwM2NjMmZkNmEyMGUxNGQ5YjQwMjNjZjI2YTdkNDM4IDEwMDY0NAotLS0gYS9Ub29scy9U
ZXN0V2ViS2l0QVBJL1Rlc3RzL1dURi9SZWZQdHIuY3BwCisrKyBiL1Rvb2xzL1Rlc3RXZWJLaXRB
UEkvVGVzdHMvV1RGL1JlZlB0ci5jcHAKQEAgLTEwMiw3ICsxMDIsNyBAQCBURVNUKFdURl9SZWZQ
dHIsIEJhc2ljKQogICAgIHsKICAgICAgICAgUmVmUHRyPFJlZkxvZ2dlcj4gcHRyKCZhKTsKICAg
ICAgICAgQVNTRVJUX0VRKCZhLCBwdHIuZ2V0KCkpOwotICAgICAgICBwdHIuY2xlYXIoKTsKKyAg
ICAgICAgcHRyID0gbnVsbHB0cjsKICAgICAgICAgQVNTRVJUX0VRKG51bGxwdHIsIHB0ci5nZXQo
KSk7CiAgICAgfQogICAgIEFTU0VSVF9TVFJFUSgicmVmKGEpIGRlcmVmKGEpICIsIHRha2VMb2dT
dHIoKS5jX3N0cigpKTsK
</data>

          </attachment>
      

    </bug>

</bugzilla>